aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt5
-rw-r--r--cmake/platform/win/settings.cmake10
-rw-r--r--dep/CMakeLists.txt3
-rw-r--r--dep/PackageList.txt4
-rw-r--r--dep/mysqllite/CMakeLists.txt261
-rw-r--r--dep/mysqllite/COPYING339
-rw-r--r--dep/mysqllite/README2254
-rw-r--r--dep/mysqllite/VERSION4
-rw-r--r--dep/mysqllite/cmake/character_sets.cmake43
-rw-r--r--dep/mysqllite/cmake/mysql_version.cmake107
-rw-r--r--dep/mysqllite/cmake/os/Windows.cmake142
-rw-r--r--dep/mysqllite/cmake/os/WindowsCache.cmake356
-rw-r--r--dep/mysqllite/cmake/stack_direction.c31
-rw-r--r--dep/mysqllite/cmake/versioninfo.rc.in23
-rw-r--r--dep/mysqllite/config.h.cmake618
-rw-r--r--dep/mysqllite/configure.cmake1101
-rw-r--r--dep/mysqllite/dbug/dbug.c2284
-rw-r--r--dep/mysqllite/dbug/dbug_long.h160
-rw-r--r--dep/mysqllite/dbug/monty.doc9
-rw-r--r--dep/mysqllite/dbug/user.r1213
-rw-r--r--dep/mysqllite/include/decimal.h107
-rw-r--r--dep/mysqllite/include/errmsg.h108
-rw-r--r--dep/mysqllite/include/internal/atomic/gcc_builtins.h42
-rw-r--r--dep/mysqllite/include/internal/atomic/generic-msvc.h134
-rw-r--r--dep/mysqllite/include/internal/atomic/nolock.h69
-rw-r--r--dep/mysqllite/include/internal/atomic/rwlock.h100
-rw-r--r--dep/mysqllite/include/internal/atomic/solaris.h72
-rw-r--r--dep/mysqllite/include/internal/atomic/x86-gcc.h145
-rw-r--r--dep/mysqllite/include/internal/base64.h48
-rw-r--r--dep/mysqllite/include/internal/hash.h108
-rw-r--r--dep/mysqllite/include/internal/lf.h265
-rw-r--r--dep/mysqllite/include/internal/my_aes.h70
-rw-r--r--dep/mysqllite/include/internal/my_alarm.h58
-rw-r--r--dep/mysqllite/include/internal/my_atomic.h287
-rw-r--r--dep/mysqllite/include/internal/my_base.h572
-rw-r--r--dep/mysqllite/include/internal/my_bit.h105
-rw-r--r--dep/mysqllite/include/internal/my_bitmap.h142
-rw-r--r--dep/mysqllite/include/internal/my_handler.h130
-rw-r--r--dep/mysqllite/include/internal/my_libwrap.h31
-rw-r--r--dep/mysqllite/include/internal/my_md5.h59
-rw-r--r--dep/mysqllite/include/internal/my_nosys.h52
-rw-r--r--dep/mysqllite/include/internal/my_rdtsc.h129
-rw-r--r--dep/mysqllite/include/internal/my_stacktrace.h64
-rw-r--r--dep/mysqllite/include/internal/my_time.h170
-rw-r--r--dep/mysqllite/include/internal/my_tree.h96
-rw-r--r--dep/mysqllite/include/internal/my_uctype.h1483
-rw-r--r--dep/mysqllite/include/internal/myisampack.h242
-rw-r--r--dep/mysqllite/include/internal/mysql_version.h.in30
-rw-r--r--dep/mysqllite/include/internal/mysys_err.h93
-rw-r--r--dep/mysqllite/include/internal/password.h32
-rw-r--r--dep/mysqllite/include/internal/probes_mysql.h13
-rw-r--r--dep/mysqllite/include/internal/probes_mysql_nodtrace.h129
-rw-r--r--dep/mysqllite/include/internal/queues.h75
-rw-r--r--dep/mysqllite/include/internal/rijndael.h46
-rw-r--r--dep/mysqllite/include/internal/sha1.h104
-rw-r--r--dep/mysqllite/include/internal/t_ctype.h254
-rw-r--r--dep/mysqllite/include/internal/thr_alarm.h110
-rw-r--r--dep/mysqllite/include/internal/thr_lock.h163
-rw-r--r--dep/mysqllite/include/internal/violite.h241
-rw-r--r--dep/mysqllite/include/keycache.h146
-rw-r--r--dep/mysqllite/include/m_ctype.h660
-rw-r--r--dep/mysqllite/include/m_string.h295
-rw-r--r--dep/mysqllite/include/my_alloc.h60
-rw-r--r--dep/mysqllite/include/my_attribute.h69
-rw-r--r--dep/mysqllite/include/my_compiler.h145
-rw-r--r--dep/mysqllite/include/my_dbug.h194
-rw-r--r--dep/mysqllite/include/my_dir.h109
-rw-r--r--dep/mysqllite/include/my_getopt.h123
-rw-r--r--dep/mysqllite/include/my_global.h1483
-rw-r--r--dep/mysqllite/include/my_list.h45
-rw-r--r--dep/mysqllite/include/my_net.h110
-rw-r--r--dep/mysqllite/include/my_pthread.h943
-rw-r--r--dep/mysqllite/include/my_sys.h959
-rw-r--r--dep/mysqllite/include/my_xml.h89
-rw-r--r--dep/mysqllite/include/mysql.h713
-rw-r--r--dep/mysqllite/include/mysql/client_plugin.h163
-rw-r--r--dep/mysqllite/include/mysql/innodb_priv.h36
-rw-r--r--dep/mysqllite/include/mysql/plugin.h633
-rw-r--r--dep/mysqllite/include/mysql/plugin_audit.h138
-rw-r--r--dep/mysqllite/include/mysql/plugin_auth.h125
-rw-r--r--dep/mysqllite/include/mysql/plugin_auth_common.h105
-rw-r--r--dep/mysqllite/include/mysql/plugin_ftparser.h211
-rw-r--r--dep/mysqllite/include/mysql/psi/mysql_file.h1434
-rw-r--r--dep/mysqllite/include/mysql/psi/mysql_thread.h1071
-rw-r--r--dep/mysqllite/include/mysql/psi/psi.h1312
-rw-r--r--dep/mysqllite/include/mysql/psi/psi_abi_v1.h26
-rw-r--r--dep/mysqllite/include/mysql/psi/psi_abi_v2.h26
-rw-r--r--dep/mysqllite/include/mysql/service_my_snprintf.h101
-rw-r--r--dep/mysqllite/include/mysql/service_thd_alloc.h130
-rw-r--r--dep/mysqllite/include/mysql/service_thd_wait.h83
-rw-r--r--dep/mysqllite/include/mysql/service_thread_scheduler.h65
-rw-r--r--dep/mysqllite/include/mysql/services.h32
-rw-r--r--dep/mysqllite/include/mysql_com.h572
-rw-r--r--dep/mysqllite/include/mysql_embed.h31
-rw-r--r--dep/mysqllite/include/mysql_time.h55
-rw-r--r--dep/mysqllite/include/mysqld_ername.h708
-rw-r--r--dep/mysqllite/include/mysqld_error.h710
-rw-r--r--dep/mysqllite/include/plugin.h633
-rw-r--r--dep/mysqllite/include/plugin_audit.h138
-rw-r--r--dep/mysqllite/include/plugin_ftparser.h211
-rw-r--r--dep/mysqllite/include/sql_common.h113
-rw-r--r--dep/mysqllite/include/sql_state.h220
-rw-r--r--dep/mysqllite/include/sslopt-case.h32
-rw-r--r--dep/mysqllite/include/sslopt-longopts.h49
-rw-r--r--dep/mysqllite/include/sslopt-vars.h35
-rw-r--r--dep/mysqllite/include/typelib.h44
-rw-r--r--dep/mysqllite/libmysql/client_settings.h65
-rw-r--r--dep/mysqllite/libmysql/errmsg.c125
-rw-r--r--dep/mysqllite/libmysql/get_password.c209
-rw-r--r--dep/mysqllite/libmysql/libmysql.c4832
-rw-r--r--dep/mysqllite/libmysql/libmysql_exports.def107
-rw-r--r--dep/mysqllite/mysys/ChangeLog221
-rw-r--r--dep/mysqllite/mysys/array.c383
-rw-r--r--dep/mysqllite/mysys/base64.c311
-rw-r--r--dep/mysqllite/mysys/charset-def.c354
-rw-r--r--dep/mysqllite/mysys/charset.c937
-rw-r--r--dep/mysqllite/mysys/checksum.c35
-rw-r--r--dep/mysqllite/mysys/default.c1217
-rw-r--r--dep/mysqllite/mysys/errors.c119
-rw-r--r--dep/mysqllite/mysys/hash.c769
-rw-r--r--dep/mysqllite/mysys/lf_alloc-pin.c527
-rw-r--r--dep/mysqllite/mysys/lf_dynarray.c207
-rw-r--r--dep/mysqllite/mysys/lf_hash.c503
-rw-r--r--dep/mysqllite/mysys/list.c114
-rw-r--r--dep/mysqllite/mysys/md5.c325
-rw-r--r--dep/mysqllite/mysys/mf_arr_appstr.c61
-rw-r--r--dep/mysqllite/mysys/mf_cache.c121
-rw-r--r--dep/mysqllite/mysys/mf_dirname.c154
-rw-r--r--dep/mysqllite/mysys/mf_fn_ext.c54
-rw-r--r--dep/mysqllite/mysys/mf_format.c142
-rw-r--r--dep/mysqllite/mysys/mf_getdate.c81
-rw-r--r--dep/mysqllite/mysys/mf_iocache.c1949
-rw-r--r--dep/mysqllite/mysys/mf_iocache2.c472
-rw-r--r--dep/mysqllite/mysys/mf_keycache.c4523
-rw-r--r--dep/mysqllite/mysys/mf_keycaches.c361
-rw-r--r--dep/mysqllite/mysys/mf_loadpath.c55
-rw-r--r--dep/mysqllite/mysys/mf_pack.c460
-rw-r--r--dep/mysqllite/mysys/mf_path.c120
-rw-r--r--dep/mysqllite/mysys/mf_qsort.c216
-rw-r--r--dep/mysqllite/mysys/mf_qsort2.c19
-rw-r--r--dep/mysqllite/mysys/mf_radix.c54
-rw-r--r--dep/mysqllite/mysys/mf_same.c40
-rw-r--r--dep/mysqllite/mysys/mf_sort.c41
-rw-r--r--dep/mysqllite/mysys/mf_soundex.c105
-rw-r--r--dep/mysqllite/mysys/mf_tempdir.c95
-rw-r--r--dep/mysqllite/mysys/mf_tempfile.c177
-rw-r--r--dep/mysqllite/mysys/mf_unixpath.c36
-rw-r--r--dep/mysqllite/mysys/mf_wcomp.c89
-rw-r--r--dep/mysqllite/mysys/mulalloc.c63
-rw-r--r--dep/mysqllite/mysys/my_access.c201
-rw-r--r--dep/mysqllite/mysys/my_aes.c227
-rw-r--r--dep/mysqllite/mysys/my_alarm.c32
-rw-r--r--dep/mysqllite/mysys/my_alloc.c436
-rw-r--r--dep/mysqllite/mysys/my_atomic.c67
-rw-r--r--dep/mysqllite/mysys/my_bit.c64
-rw-r--r--dep/mysqllite/mysys/my_bitmap.c932
-rw-r--r--dep/mysqllite/mysys/my_chsize.c107
-rw-r--r--dep/mysqllite/mysys/my_compress.c264
-rw-r--r--dep/mysqllite/mysys/my_conio.c222
-rw-r--r--dep/mysqllite/mysys/my_copy.c144
-rw-r--r--dep/mysqllite/mysys/my_create.c73
-rw-r--r--dep/mysqllite/mysys/my_delete.c125
-rw-r--r--dep/mysqllite/mysys/my_div.c37
-rw-r--r--dep/mysqllite/mysys/my_error.c290
-rw-r--r--dep/mysqllite/mysys/my_file.c135
-rw-r--r--dep/mysqllite/mysys/my_fopen.c358
-rw-r--r--dep/mysqllite/mysys/my_fstream.c194
-rw-r--r--dep/mysqllite/mysys/my_gethostbyname.c111
-rw-r--r--dep/mysqllite/mysys/my_gethwaddr.c226
-rw-r--r--dep/mysqllite/mysys/my_getncpus.c49
-rw-r--r--dep/mysqllite/mysys/my_getopt.c1419
-rw-r--r--dep/mysqllite/mysys/my_getpagesize.c40
-rw-r--r--dep/mysqllite/mysys/my_getsystime.c226
-rw-r--r--dep/mysqllite/mysys/my_getwd.c167
-rw-r--r--dep/mysqllite/mysys/my_handler.c604
-rw-r--r--dep/mysqllite/mysys/my_handler_errors.h71
-rw-r--r--dep/mysqllite/mysys/my_init.c607
-rw-r--r--dep/mysqllite/mysys/my_largepage.c166
-rw-r--r--dep/mysqllite/mysys/my_lib.c424
-rw-r--r--dep/mysqllite/mysys/my_libwrap.c41
-rw-r--r--dep/mysqllite/mysys/my_lock.c223
-rw-r--r--dep/mysqllite/mysys/my_lockmem.c98
-rw-r--r--dep/mysqllite/mysys/my_malloc.c162
-rw-r--r--dep/mysqllite/mysys/my_memmem.c83
-rw-r--r--dep/mysqllite/mysys/my_mess.c34
-rw-r--r--dep/mysqllite/mysys/my_mkdir.c42
-rw-r--r--dep/mysqllite/mysys/my_mmap.c88
-rw-r--r--dep/mysqllite/mysys/my_new.cc58
-rw-r--r--dep/mysqllite/mysys/my_once.c119
-rw-r--r--dep/mysqllite/mysys/my_open.c192
-rw-r--r--dep/mysqllite/mysys/my_port.c40
-rw-r--r--dep/mysqllite/mysys/my_pread.c206
-rw-r--r--dep/mysqllite/mysys/my_pthread.c469
-rw-r--r--dep/mysqllite/mysys/my_quick.c81
-rw-r--r--dep/mysqllite/mysys/my_rdtsc.c962
-rw-r--r--dep/mysqllite/mysys/my_read.c97
-rw-r--r--dep/mysqllite/mysys/my_redel.c124
-rw-r--r--dep/mysqllite/mysys/my_rename.c79
-rw-r--r--dep/mysqllite/mysys/my_seek.c102
-rw-r--r--dep/mysqllite/mysys/my_sleep.c35
-rw-r--r--dep/mysqllite/mysys/my_static.c135
-rw-r--r--dep/mysqllite/mysys/my_static.h50
-rw-r--r--dep/mysqllite/mysys/my_symlink.c167
-rw-r--r--dep/mysqllite/mysys/my_symlink2.c183
-rw-r--r--dep/mysqllite/mysys/my_sync.c175
-rw-r--r--dep/mysqllite/mysys/my_thr_init.c533
-rw-r--r--dep/mysqllite/mysys/my_wincond.c369
-rw-r--r--dep/mysqllite/mysys/my_windac.c223
-rw-r--r--dep/mysqllite/mysys/my_winerr.c123
-rw-r--r--dep/mysqllite/mysys/my_winfile.c681
-rw-r--r--dep/mysqllite/mysys/my_winthread.c192
-rw-r--r--dep/mysqllite/mysys/my_write.c100
-rw-r--r--dep/mysqllite/mysys/mysys_priv.h107
-rw-r--r--dep/mysqllite/mysys/ptr_cmp.c223
-rw-r--r--dep/mysqllite/mysys/queues.c687
-rw-r--r--dep/mysqllite/mysys/rijndael.c1379
-rw-r--r--dep/mysqllite/mysys/sha1.c422
-rw-r--r--dep/mysqllite/mysys/stacktrace.c714
-rw-r--r--dep/mysqllite/mysys/string.c182
-rw-r--r--dep/mysqllite/mysys/thr_alarm.c972
-rw-r--r--dep/mysqllite/mysys/thr_lock.c1688
-rw-r--r--dep/mysqllite/mysys/thr_mutex.c503
-rw-r--r--dep/mysqllite/mysys/thr_rwlock.c472
-rw-r--r--dep/mysqllite/mysys/tree.c757
-rw-r--r--dep/mysqllite/mysys/typelib.c388
-rw-r--r--dep/mysqllite/sql-common/client.c4273
-rw-r--r--dep/mysqllite/sql-common/client_plugin.c471
-rw-r--r--dep/mysqllite/sql-common/my_time.c1256
-rw-r--r--dep/mysqllite/sql-common/pack.c121
-rw-r--r--dep/mysqllite/sql/net_serv.cc1186
-rw-r--r--dep/mysqllite/sql/password.c562
-rw-r--r--dep/mysqllite/strings/CHARSET_INFO.txt281
-rw-r--r--dep/mysqllite/strings/README82
-rw-r--r--dep/mysqllite/strings/bchange.c38
-rw-r--r--dep/mysqllite/strings/bmove_upp.c32
-rw-r--r--dep/mysqllite/strings/ctype-big5.c6983
-rw-r--r--dep/mysqllite/strings/ctype-bin.c579
-rw-r--r--dep/mysqllite/strings/ctype-cp932.c34889
-rw-r--r--dep/mysqllite/strings/ctype-czech.c639
-rw-r--r--dep/mysqllite/strings/ctype-euc_kr.c10072
-rw-r--r--dep/mysqllite/strings/ctype-extra.c8649
-rw-r--r--dep/mysqllite/strings/ctype-gb2312.c6474
-rw-r--r--dep/mysqllite/strings/ctype-gbk.c10869
-rw-r--r--dep/mysqllite/strings/ctype-latin1.c782
-rw-r--r--dep/mysqllite/strings/ctype-mb.c1369
-rw-r--r--dep/mysqllite/strings/ctype-simple.c1704
-rw-r--r--dep/mysqllite/strings/ctype-tis620.c965
-rw-r--r--dep/mysqllite/strings/ctype-uca.c11462
-rw-r--r--dep/mysqllite/strings/ctype-ucs2.c3190
-rw-r--r--dep/mysqllite/strings/ctype-utf8.c5238
-rw-r--r--dep/mysqllite/strings/ctype-win1250ch.c715
-rw-r--r--dep/mysqllite/strings/ctype.c430
-rw-r--r--dep/mysqllite/strings/decimal.c3128
-rw-r--r--dep/mysqllite/strings/dtoa.c2793
-rw-r--r--dep/mysqllite/strings/int2str.c164
-rw-r--r--dep/mysqllite/strings/is_prefix.c32
-rw-r--r--dep/mysqllite/strings/latin2.def478
-rw-r--r--dep/mysqllite/strings/llstr.c40
-rw-r--r--dep/mysqllite/strings/longlong2str.c143
-rw-r--r--dep/mysqllite/strings/my_strchr.c104
-rw-r--r--dep/mysqllite/strings/my_strtoll10.c236
-rw-r--r--dep/mysqllite/strings/my_vsnprintf.c681
-rw-r--r--dep/mysqllite/strings/str2int.c201
-rw-r--r--dep/mysqllite/strings/str_alloc.c33
-rw-r--r--dep/mysqllite/strings/strappend.c39
-rw-r--r--dep/mysqllite/strings/strcend.c36
-rw-r--r--dep/mysqllite/strings/strcont.c44
-rw-r--r--dep/mysqllite/strings/strend.c37
-rw-r--r--dep/mysqllite/strings/strfill.c34
-rw-r--r--dep/mysqllite/strings/strmake.c54
-rw-r--r--dep/mysqllite/strings/strmov.c37
-rw-r--r--dep/mysqllite/strings/strnlen.c34
-rw-r--r--dep/mysqllite/strings/strnmov.c34
-rw-r--r--dep/mysqllite/strings/strxmov.c50
-rw-r--r--dep/mysqllite/strings/strxnmov.c63
-rw-r--r--dep/mysqllite/strings/t_ctype.h258
-rw-r--r--dep/mysqllite/strings/xml.c496
-rw-r--r--dep/mysqllite/vio/vio.c291
-rw-r--r--dep/mysqllite/vio/vio_priv.h69
-rw-r--r--dep/mysqllite/vio/viosocket.c1100
-rw-r--r--dep/mysqllite/vio/viossl.c252
-rw-r--r--dep/mysqllite/vio/viosslfactories.c315
282 files changed, 1 insertions, 198742 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2341cb7b96d..5e91c7da4ec 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,10 +58,7 @@ find_package(OpenSSL REQUIRED)
find_package(Threads REQUIRED)
include(ConfigureBoost)
-
-if( NOT USE_MYSQL_SOURCES )
- find_package(MySQL REQUIRED)
-endif()
+find_package(MySQL REQUIRED)
if( UNIX )
find_package(Readline)
diff --git a/cmake/platform/win/settings.cmake b/cmake/platform/win/settings.cmake
index f57f84c6a45..c68d7bc51cc 100644
--- a/cmake/platform/win/settings.cmake
+++ b/cmake/platform/win/settings.cmake
@@ -1,17 +1,7 @@
-# Platform-specfic options
-option(USE_MYSQL_SOURCES "Use included MySQL-sources to build libraries" 1)
-
# Package overloads
set(BZIP2_LIBRARIES "bzip2")
set(ZLIB_LIBRARIES "zlib")
-if( USE_MYSQL_SOURCES )
- set(MYSQL_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/dep/mysqllite/include)
- set(MYSQL_LIBRARY "libmysql")
- set( MYSQL_FOUND 1 )
- message(STATUS "Using supplied MySQL sources")
-endif()
-
# check the CMake preload parameters (commented out by default)
# overload CMAKE_INSTALL_PREFIX if not being set properly
diff --git a/dep/CMakeLists.txt b/dep/CMakeLists.txt
index ae1044969e0..7494eef517b 100644
--- a/dep/CMakeLists.txt
+++ b/dep/CMakeLists.txt
@@ -21,9 +21,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
- if(USE_MYSQL_SOURCES AND SERVERS)
- add_subdirectory(mysqllite)
- endif()
if(TOOLS)
add_subdirectory(bzip2)
endif()
diff --git a/dep/PackageList.txt b/dep/PackageList.txt
index b7286fecf12..158eb415013 100644
--- a/dep/PackageList.txt
+++ b/dep/PackageList.txt
@@ -20,10 +20,6 @@ libMPQ (a library for reading MPQ files)
https://libmpq.org/
Version: 1.0.4
-MySQL (the world's most popular open source database software)
- http://www.mysql.com/
- Version: 5.5.9 (GA)
-
SFMT (SIMD-oriented Fast Mersenne Twister)
Based on http://agner.org/random/
Version: 2010-Aug-03
diff --git a/dep/mysqllite/CMakeLists.txt b/dep/mysqllite/CMakeLists.txt
deleted file mode 100644
index 75210efc262..00000000000
--- a/dep/mysqllite/CMakeLists.txt
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright (C) 2006 MySQL AB
-# Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
-#
-# This file is free software; as a special exception the author 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.
-
-# Include the platform-specific file.
-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/os/Windows.cmake)
-
-# Add macros
-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/character_sets.cmake)
-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/mysql_version.cmake)
-
-# Advanced options (mostly useless, but usually still in config.h, so they need to be set...)
-set(CYBOZU OFF)
-set(BACKUP_TEST OFF)
-set(ENABLED_LOCAL_INFILE ON)
-set(WITH_FAST_MUTEXES OFF)
-
-# Handle useful options - hardcode to ON/OFF
-set(ENABLED_PROFILING OFF)
-set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_DEBUG ENABLED_DEBUG_SYNC)
-
-# Set DBUG_OFF and other optional release-only flags for non-debug project types
-foreach(BUILD_TYPE RELEASE RELWITHDEBINFO MINSIZEREL)
- set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_${BUILD_TYPE} DBUG_OFF)
- if(WITH_FAST_MUTEXES)
- set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_${BUILD_TYPE} "MY_PTHREAD_FASTMUTEX=1")
- endif()
-endforeach()
-
-# Set commonly used variables
-set(DEFAULT_MYSQL_HOME "C:/Program Files/MySQL/MySQL Server ${MYSQL_BASE_VERSION}" )
-set(SHAREDIR share)
-set(DEFAULT_BASEDIR "${DEFAULT_MYSQL_HOME}")
-set(MYSQL_DATADIR "${DEFAULT_MYSQL_HOME}/data")
-set(DEFAULT_CHARSET_HOME "${DEFAULT_MYSQL_HOME}")
-set(PLUGINDIR "${DEFAULT_MYSQL_HOME}/lib/plugin")
-
-set(COMPILATION_COMMENT "Source distribution lite for TrinityCore")
-
-# Run platform tests
-include(${CMAKE_CURRENT_SOURCE_DIR}/configure.cmake)
-
-# Use system openssl.
-add_definitions(-DHAVE_OPENSSL)
-
-include_directories(
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_BINARY_DIR}
- ${OPENSSL_INCLUDE_DIR}
- ${CMAKE_SOURCE_DIR}/dep/zlib
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- ${CMAKE_CURRENT_SOURCE_DIR}/include/internal
- ${CMAKE_CURRENT_SOURCE_DIR}/dbug
- ${CMAKE_CURRENT_SOURCE_DIR}/strings
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys
- ${CMAKE_CURRENT_SOURCE_DIR}/libmysql
-)
-
-set(DBUG_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/dbug/dbug.c
-)
-
-set(STRINGS_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/bchange.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/bmove_upp.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-big5.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-bin.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-cp932.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-czech.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-euc_kr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-extra.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-gb2312.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-gbk.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-latin1.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-mb.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-simple.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-tis620.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-uca.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-ucs2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-utf8.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype-win1250ch.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/ctype.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/decimal.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/dtoa.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/int2str.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/is_prefix.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/llstr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/longlong2str.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/my_strtoll10.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/my_vsnprintf.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/str2int.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/str_alloc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strcend.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strend.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strfill.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strmake.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strmov.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strnmov.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strxmov.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strxnmov.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/xml.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/my_strchr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strcont.c
- ${CMAKE_CURRENT_SOURCE_DIR}/strings/strappend.c
-)
-if(NOT HAVE_STRNLEN)
- # OSX does not have strnlen
- set(STRINGS_SOURCES ${STRINGS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/strings/strnlen.c)
-endif()
-
-set(VIO_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/vio/vio.c
- ${CMAKE_CURRENT_SOURCE_DIR}/vio/viosocket.c
- ${CMAKE_CURRENT_SOURCE_DIR}/vio/viossl.c
- ${CMAKE_CURRENT_SOURCE_DIR}/vio/viosslfactories.c
-)
-
-set(MYSYS_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/array.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/charset-def.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/charset.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/checksum.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/default.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/errors.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/hash.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/list.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/md5.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_cache.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_dirname.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_fn_ext.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_format.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_getdate.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_iocache.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_iocache2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_keycache.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_keycaches.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_loadpath.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_pack.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_path.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_qsort.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_qsort2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_radix.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_same.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_sort.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_soundex.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_arr_appstr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_tempdir.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_tempfile.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_unixpath.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mf_wcomp.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/mulalloc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_access.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_aes.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_alloc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_bit.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_bitmap.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_chsize.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_compress.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_copy.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_create.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_delete.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_div.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_error.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_file.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_fopen.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_fstream.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_gethostbyname.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_gethwaddr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getopt.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getsystime.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getwd.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_handler.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_init.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lib.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lock.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_malloc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mess.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mkdir.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_mmap.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_once.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_open.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_pread.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_pthread.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_quick.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_read.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_redel.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_rename.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_seek.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_sleep.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_static.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_symlink.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_symlink2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_sync.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_thr_init.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_write.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/ptr_cmp.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/queues.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/stacktrace.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/rijndael.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/sha1.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/string.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_alarm.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_lock.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_mutex.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/thr_rwlock.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/tree.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/typelib.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/base64.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_memmem.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getpagesize.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_alloc-pin.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_dynarray.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/lf_hash.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_atomic.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_getncpus.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_rdtsc.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winthread.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_wincond.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winerr.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_winfile.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_windac.c
- ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_conio.c
-)
-if(HAVE_ALARM)
- set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_alarm.c)
-endif()
-if(HAVE_LARGE_PAGES)
- set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_largepage.c)
-endif()
-if(HAVE_MLOCK)
- set(MYSYS_SOURCES ${MYSYS_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/mysys/my_lockmem.c)
-endif()
-
-set(CLIENT_SOURCES
- ${CMAKE_CURRENT_SOURCE_DIR}/libmysql/get_password.c
- ${CMAKE_CURRENT_SOURCE_DIR}/libmysql/libmysql.c
- ${CMAKE_CURRENT_SOURCE_DIR}/libmysql/errmsg.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sql-common/client.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sql-common/my_time.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sql-common/client_plugin.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sql/net_serv.cc
- ${CMAKE_CURRENT_SOURCE_DIR}/sql-common/pack.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sql/password.c
-)
-
-configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/my_config.h)
-configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/internal/mysql_version.h.in ${CMAKE_BINARY_DIR}/mysql_version.h)
-
-add_version_info(libmysql CLIENT_SOURCES)
-add_library(libmysql SHARED ${CLIENT_SOURCES} ${DBUG_SOURCES} ${MYSYS_SOURCES} ${STRINGS_SOURCES} ${VIO_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/libmysql/libmysql_exports.def)
-target_link_libraries(libmysql zlib ${OPENSSL_LIBRARIES} ${OPENSSL_EXTRA_LIBRARIES} ws2_32)
-
-install(TARGETS libmysql RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}")
diff --git a/dep/mysqllite/COPYING b/dep/mysqllite/COPYING
deleted file mode 100644
index d511905c164..00000000000
--- a/dep/mysqllite/COPYING
+++ /dev/null
@@ -1,339 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program 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.
-
- This program 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 this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
diff --git a/dep/mysqllite/README b/dep/mysqllite/README
deleted file mode 100644
index 769313d7e61..00000000000
--- a/dep/mysqllite/README
+++ /dev/null
@@ -1,2254 +0,0 @@
-MySQL Server
-
-This is a release of MySQL, a dual-license SQL database server.
-For the avoidance of doubt, this particular copy of the software
-is released under the version 2 of the GNU General Public License.
-MySQL is brought to you by the MySQL team at Oracle.
-
-Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
-
-License information can be found in the COPYING file.
-
-This distribution may include materials developed by third
-parties. For license and attribution notices for these
-materials, please refer to the documentation that accompanies
-this distribution (see the Licenses for Third-Party Components
-appendix). A copy of the license/notices is also reproduced
-below.
-
-GPLv2 Disclaimer
-For the avoidance of doubt, except that if any license choice
-other than GPL or LGPL is available it will apply instead,
-Oracle elects to use only the General Public License version 2
-(GPLv2) at this time for any software where a choice of GPL
-license versions is made available with the language indicating
-that GPLv2 or any later version may be used, or where a choice
-of which version of the GPL is applied is otherwise unspecified.
-
-For further information about MySQL or additional documentation,
-see:
-- The latest information about MySQL: http://www.mysql.com
-- The current MySQL documentation: http://dev.mysql.com/doc
-
-Some Reference Manual sections of special interest:
-- If you are migrating from an older version of MySQL, please
- read the "Upgrading from..." section.
-- To see what MySQL can do, take a look at the features section.
-- For installation instructions, see the Installing and Upgrading
- chapter.
-- For the new features/bugfix history, see the MySQL Change History
- appendix.
-- For currently known bugs, see the Errors and Common Problems
- appendix.
-
-You can browse the MySQL Reference Manual online or download it
-in any of several formats at the URL given earlier in this file.
-Source distributions include a local copy of the manual in the
-Docs directory.
-
-********************************************************************
-
-Third-Party Component Notices
-
-*********************************************************************
-
-%%The following software may be included in this product:
-FindGTest.cmake (part of CMake 2.8.0)
-
-Use of any of this software is governed by the terms of the license below:
-
-# Copyright 2009 Kitware, Inc.
-# Copyright 2009 Philip Lowman
-# Copyright 2009 Daniel Blezek
-#
-# Distributed under the OSI-approved BSD License (the "License");
-# see accompanying file Copyright.txt for details.
-#
-# This software is distributed WITHOUT ANY WARRANTY; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the License for more information.
-#===========================================================================
-# (To distributed this file outside of CMake, substitute the full
-# License text for the above reference.)
-#
-# Thanks to Daniel Blezek for the GTEST_ADD_TESTS code
-
-
-Text of Copyright.txt mentioned above:
-
-CMake - Cross Platform Makefile Generator
-Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-* Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-* Neither the names of Kitware, Inc., the Insight Software Consortium,
- nor the names of their contributors may be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-Cmake
-
-Use of any of this software is governed by the terms of the license below:
-
-CMake is distributed under BSD License
-
- Copyright (c) 2008, Kitware, Inc.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Kitware, Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY Kitware, Inc. "AS IS" AND ANY EXPRESS OR
- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL Kitware Inc. BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
- IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGE.
-
-Additional License(s)
-
-cmake-2.4.8/Utilities/cmtar/compat/gethostname.c:
- gethostname.c: minimal substitute for missing gethostname() function
- created 2000-Mar-02 jmk
- requires SVR4 uname() and -lc
-
- by Jim Knoble
- Copyright ? 2000 Jim Knoble
-
- Permission to use, copy, modify, distribute, and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies and
- that both that copyright notice and this permission notice appear in
- supporting documentation.
-
- This software is 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. In no event shall the author(s) be liable for any
- claim, damages or other liability, whether in an action of contract,
- tort or otherwise, arising from, out of or in connection with the
- software or the use or other dealings in the software.
-
-----------------------------------
-
-* Originally written by Steven M. Bellovin while
-* at the University of North Carolina at Chapel Hill. Later tweaked by
-* a couple of people on Usenet. Completely overhauled by Rich $alz
-* and Jim Berets in August, 1990.
-*
-* This code is in the public domain and has no copyright.
-
--------------------------------
-
- THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
- You may freely copy it for use as a template for your own field types.
- If you develop a field type that might be of general use, please send
- it back to the ncurses maintainers for inclusion in the next version.
-
-**************************************************************************
-
- * Author : Per Foreby, perf@efd.lth.se
- * Author : Juergen Pfeifer, juergen.pfeifer@gmx.net
-
-**************************************************************************
-
-----------------------------------------
-
- Copyright (c) 2002 Insight Consortium. All rights reserved.
- See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for
- details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
---------------------------------------------
-
- Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software
- Foundation, Inc.
-
- This program 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, or (at your option)
- any later version.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-
- As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison.
-
----------------------------------------------------
-
-cmake-2.4.8/Utilities/cmzlib/zlib.h:
- zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.1.4, March 11th, 2002
-
- Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source
- distribution.
-
- Jean-loup Gailly Mark Adler
-
-----------------------------------------------
-
- This source code was modified by Martin Hedenfalk for use in Curl. His
- latest changes were done 2000-09-18.
-
- It has since been patched away like a madman by Daniel Stenberg to make it
- better applied to curl conditions, and to make it not use globals, pollute
- name space and more. This source code awaits a rewrite to work around the
- paragraph 2 in the BSD licenses as explained below.
-
- Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Hgskolan
- It has since been patched and modified a lot by Daniel Stenberg to make it
- better applied to curl conditions, and to make it not use globals, pollute
- name space and more. This source code awaits a rewrite to work around the
- paragraph 2 in the BSD licenses as explained below.
-
- Copyright (c) 1998, 1999 Kungliga Tekniska Hgskolan
- (Royal Institute of Technology, Stockholm, Sweden).
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- 3. Neither the name of the Institute nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
----------------------------------------------
-
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
- WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
- CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
-
---------------------------------------------------
-
-cmake-2.4.8/Utilities/cmcurl/inet_pton.c,
-cmake-2.4.8/Source/CTest/Curl/inet_pton.c:
- This is from the BIND 4.9.4 release, modified to compile by itself
-
- Copyright (c) 1996 by Internet Software Consortium.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
- DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, 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 THIS SOFTWARE.
-
--------------------------------------------------------
-
-* Copyright (C) 2001 by Eric Kidd. All rights reserved.
-* Copyright (C) 2001 by Luke Howard. All rights reserved.
-* Copyright (C) 2002 Ximian, Inc.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions
-* are met:
-* 1. Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* 3. The name of the author may not be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
-* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-* SUCH DAMAGE.
-
----------------------------------------------------
-
- Copyright (c) 1994
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Chuck Karish of Mindcraft, Inc.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
- Copyright (c) 1985, 1986 The Regents of the University of California.
- All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- James A. Woods, derived from original work by Spencer Thomas
- and Joseph Orost.
-
-------------------------------------------------
-
- Copyright (c) 1989, 1993, 1994
- The Regents of the University of California. All rights reserved.
-
- This code is derived from software contributed to Berkeley by
- Guido van Rossum.
-
- Copyright (c) 1990 The Regents of the University of California.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the University of
- California, Berkeley and its contributors.
- 4. Neither the name of the University nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-------------------------------------------------------
-
- Project ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
-
- Copyright (C) 1998 - 2004, Daniel Stenberg, , et al.
-
- Copyright (C) 2004, Daniel Stenberg, , et al.
-
- This software is licensed as described in the file COPYING, which
- you should have received as part of this distribution. The terms
- are also available at http://curl.haxx.se/docs/copyright.html.
-
- You may opt to use, copy, modify, merge, publish, distribute and/or sell
- copies of the Software, and permit persons to whom the Software is
- furnished to do so, under the terms of the COPYING file.
-
- This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- KIND, either express or implied.
-
-------------------------------------------------------------
-
-***************************************************************************
- Copyright (c) 1998 Free Software Foundation, Inc.
- Copyright (c) 1998,2000 Free Software Foundation, Inc.
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, distribute with modifications, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is furnished
- to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS 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. IN
- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
- Except as contained in this notice, the name(s) of the above copyright
- holders shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-***************************************************************************
-
-------------------------------------------------------
-
- Copyright (c) 1997 Todd C. Miller
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. The name of the author may not be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
- THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR
- ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-Fred Fish's Dbug Library
-
-Use of any of this software is governed by the terms of the license below:
-
- * N O T I C E *
- * *
- * Copyright Abandoned, 1987, Fred Fish *
- * *
- * *
- * This previously copyrighted work has been placed into the public *
- * domain by the author and may be freely used for any purpose, *
- * private or commercial. *
- * *
- * Because of the number of inquiries I was receiving about the use *
- * of this product in commercially developed works I have decided to *
- * simply make it public domain to further its unrestricted use. I *
- * specifically would be most happy to see this material become a *
- * part of the standard Unix distributions by AT&T and the Berkeley *
- * Computer Science Research Group, and a standard part of the GNU *
- * system from the Free Software Foundation. *
- * *
- * I would appreciate it, as a courtesy, if this notice is left in *
- * all copies and derivative works. Thank you. *
- * *
- * The author makes no warranty of any kind with respect to this *
- * product and explicitly disclaims any implied warranties of mer- *
- * chantability or fitness for any particular purpose. *
-
-***************************************************************************
-
-%%The following software may be included in this product:
-dbug_analyze.c (part of Fred Fish's Dbug Library)
-
-Use of any of this software is governed by the terms of the license below:
-
-* Copyright Abandoned, 1987, Fred Fish *
-* *
-* *
-* This previously copyrighted work has been placed into the public *
-* domain by the author and may be freely used for any purpose, *
-* private or commercial. *
-* *
-* Because of the number of inquiries I was receiving about the use *
-* of this product in commercially developed works I have decided to *
-* simply make it public domain to further its unrestricted use. I *
-* specifically would be most happy to see this material become a *
-* part of the standard Unix distributions by AT&T and the Berkeley *
-* Computer Science Research Group, and a standard part of the GNU *
-* system from the Free Software Foundation. *
-* *
-* I would appreciate it, as a courtesy, if this notice is left in *
-* all copies and derivative works. Thank you. *
-* *
-* The author makes no warranty of any kind with respect to this *
-* product and explicitly disclaims any implied warranties of mer- *
-* chantability or fitness for any particular purpose. *
-
-***************************************************************************
-
-%%The following software may be included in this product:
-GNU Libtool, only ltmain.sh, libtool, auto-gen fil
-
-Use of any of this software is governed by the terms of the license below:
-
-ltmain.sh inclusion:
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007 Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit , 1996
-#
-# This program 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.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-libtool inclusion:
-# libtoolT - Provide generalized library-building support services.
-# Generated automatically by (GNU mysql 5.1.30)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-# 2006, 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit , 1996
-#
-# This program 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.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-Auto-generated files:
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building
-# support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-# 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit , 1996
-#
-# This program 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.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-Additional License(s)
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-innochecksum.c
-
-Use of any of this software is governed by the terms of the license below:
-
-GNU GENERAL PUBLIC LICENSE
-
-Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
-Preamble
-
-The licenses for most software are designed to take away your freedom to share
-and change it. By contrast, the GNU General Public License is intended to
-guarantee your freedom to share and change free software--to make sure the
-software is free for all its users. This General Public License applies to most
-of the Free Software Foundation's software and to any other program whose
-authors commit to using it. (Some other Free Software Foundation software is
-covered by the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our
-General Public Licenses are designed to make sure that you have the freedom to
-distribute copies of free software (and charge for this service if you wish),
-that you receive source code or can get it if you want it, that you can change
-the software or use pieces of it in new free programs; and that you know you can
-do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to deny
-you these rights or to ask you to surrender the rights. These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for a
-fee, you must give the recipients all the rights that you have. You must make
-sure that they, too, receive or can get the source code. And you must show them
-these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2) offer
-you this license which gives you legal permission to copy, distribute and/or
-modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software. If the
-software is modified by someone else and passed on, we want its recipients to
-know that what they have is not the original, so that any problems introduced by
-others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We wish
-to avoid the danger that redistributors of a free program will individually
-obtain patent licenses, in effect making the program proprietary. To prevent
-this, we have made it clear that any patent must be licensed for everyone's free
-use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification follow.
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms of
-this General Public License. The "Program", below, refers to any such program or
-work, and a "work based on the Program" means either the Program or any
-derivative work under copyright law: that is to say, a work containing the
-Program or a portion of it, either verbatim or with modifications and/or
-translated into another language. (Hereinafter, translation is included without
-limitation in the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not covered by
-this License; they are outside its scope. The act of running the Program is not
-restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made by
-running the Program). Whether that is true depends on what the Program does.
-
-1. You may copy and distribute verbatim copies of the Program's source code as
-you receive it, in any medium, provided that you conspicuously and appropriately
-publish on each copy an appropriate copyright notice and disclaimer of warranty;
-keep intact all the notices that refer to this License and to the absence of any
-warranty; and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you may at
-your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it, thus
-forming a work based on the Program, and copy and distribute such modifications
-or work under the terms of Section 1 above, provided that you also meet all of
-these conditions:
-
- a) You must cause the modified files to carry prominent notices stating that
-you changed the files and the date of any change.
- b) You must cause any work that you distribute or publish, that in whole or
-in part contains or is derived from the Program or any part thereof, to be
-licensed as a whole at no charge to all third parties under the terms of this
-License.
- c) If the modified program normally reads commands interactively when run,
-you must cause it, when started running for such interactive use in the most
-ordinary way, to print or display an announcement including an appropriate
-copyright notice and a notice that there is no warranty (or else, saying that
-you provide a warranty) and that users may redistribute the program under these
-conditions, and telling the user how to view a copy of this License. (Exception:
-if the Program itself is interactive but does not normally print such an
-announcement, your work based on the Program is not required to print an
-announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable
-sections of that work are not derived from the Program, and can be reasonably
-considered independent and separate works in themselves, then this License, and
-its terms, do not apply to those sections when you distribute them as separate
-works. But when you distribute the same sections as part of a whole which is a
-work based on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the entire whole,
-and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise the
-right to control the distribution of derivative or collective works based on the
-Program.
-
-In addition, mere aggregation of another work not based on the Program with the
-Program (or with a work based on the Program) on a volume of a storage or
-distribution medium does not bring the other work under the scope of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under Section
-2) in object code or executable form under the terms of Sections 1 and 2 above
-provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable source
-code, which must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange; or,
- b) Accompany it with a written offer, valid for at least three years, to
-give any third party, for a charge no more than your cost of physically
-performing source distribution, a complete machine-readable copy of the
-corresponding source code, to be distributed under the terms of Sections 1 and 2
-above on a medium customarily used for software interchange; or,
- c) Accompany it with the information you received as to the offer to
-distribute corresponding source code. (This alternative is allowed only for
-noncommercial distribution and only if you received the program in object code
-or executable form with such an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for making
-modifications to it. For an executable work, complete source code means all the
-source code for all modules it contains, plus any associated interface
-definition files, plus the scripts used to control compilation and installation
-of the executable. However, as a special exception, the source code distributed
-need not include anything that is normally distributed (in either source or
-binary form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component itself
-accompanies the executable.
-
-If distribution of executable or object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the source code
-from the same place counts as distribution of the source code, even though third
-parties are not compelled to copy the source along with the object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License. Any attempt otherwise to copy, modify,
-sublicense or distribute the Program is void, and will automatically terminate
-your rights under this License. However, parties who have received copies, or
-rights, from you under this License will not have their licenses terminated so
-long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the Program
-or its derivative works. These actions are prohibited by law if you do not
-accept this License. Therefore, by modifying or distributing the Program (or any
-work based on the Program), you indicate your acceptance of this License to do
-so, and all its terms and conditions for copying, distributing or modifying the
-Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the Program),
-the recipient automatically receives a license from the original licensor to
-copy, distribute or modify the Program subject to these terms and conditions.
-You may not impose any further restrictions on the recipients' exercise of the
-rights granted herein. You are not responsible for enforcing compliance by third
-parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent infringement
-or for any other reason (not limited to patent issues), conditions are imposed
-on you (whether by court order, agreement or otherwise) that contradict the
-conditions of this License, they do not excuse you from the conditions of this
-License. If you cannot distribute so as to satisfy simultaneously your
-obligations under this License and any other pertinent obligations, then as a
-consequence you may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by all those
-who receive copies directly or indirectly through you, then the only way you
-could satisfy both it and this License would be to refrain entirely from
-distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and the
-section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices. Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose that
-choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original copyright
-holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded. In such
-case, this License incorporates the limitation as if written in the body of this
-License.
-
-9. The Free Software Foundation may publish revised and/or new versions of the
-General Public License from time to time. Such new versions will be similar in
-spirit to the present version, but may differ in detail to address new problems
-or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies
-a version number of this License which applies to it and "any later version",
-you have the option of following the terms and conditions either of that version
-or of any later version published by the Free Software Foundation. If the
-Program does not specify a version number of this License, you may choose any
-version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission. For software which is copyrighted by the Free Software Foundation,
-write to the Free Software Foundation; we sometimes make exceptions for this.
-Our decision will be guided by the two goals of preserving the free status of
-all derivatives of our free software and of promoting the sharing and reuse of
-software generally.
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE
-PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
-IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS
-IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
-NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
-ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
-SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY
-TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
-THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
-PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-END OF TERMS AND CONDITIONS
-How to Apply These Terms to Your New Programs
-
-If you develop a new program, and you want it to be of the greatest possible use
-to the public, the best way to achieve this is to make it free software which
-everyone can redistribute and change under these terms.
-
-To do so, attach the following notices to the program. It is safest to attach
-them to the start of each source file to most effectively convey the exclusion
-of warranty; and each file should have at least the "copyright" line and a
-pointer to where the full notice is found.
-
-one line to give the program's name and an idea of what it does.
-Copyright (C) yyyy name of author
-
-This program 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.
-
-This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this when it
-starts in an interactive mode:
-
-Gnomovision version 69, Copyright (C) year name of author
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
-type `show w'. This is free software, and you are welcome
-to redistribute it under certain conditions; type `show c'
-for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may be
-called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your school,
-if any, to sign a "copyright disclaimer" for the program, if necessary. Here is
-a sample; alter the names:
-
-Yoyodyne, Inc., hereby disclaims all copyright
-interest in the program `Gnomovision'
-(which makes passes at compilers) written
-by James Hacker.
-
-signature of Ty Coon, 1 April 1989
-Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may consider
-it more useful to permit linking proprietary applications with the library. If
-this is what you want to do, use the GNU Lesser General Public License instead
-of this License.
-
-Additional Documentation License(s)
-
-innochecksum.c is documented in the MySQL Reference
-Manual at http://dev.mysql.com/doc/refman/5.1/en/innochecksum.html
-The Reference Manual is not licensed under the GPL; rather, it
-is offered under normal copyright, but with permission to
-copy/redistribute electronically.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-lib_sql.cc
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- * Copyright (c) 2000
- * SWsoft company
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
-
- This code was modified by the MySQL team
-*/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-libevent
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- * Copyright (c) 2000-2004 Niels Provos
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-Additional License(s)
-
-http://creativecommons.org/licenses/publicdomain
-
-***************************************************************************
-
-%%The following software may be included in this product:
-Async DNS Library
-
-Use of any of this software is governed by the terms of the license below:
-
-/* Async DNS Library
- * Adam Langley
- * http://www.imperialviolet.org/eventdns.html
- * Public Domain code
- *
- * This software is Public Domain. To view a copy of the public domain dedication,
- * visit http://creativecommons.org/licenses/publicdomain/ or send a letter to
- * Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
- *
- * I ask and expect, but do not require, that all derivative works contain an
- * attribution similar to:
- * Parts developed by Adam Langley
- *
- * You may wish to replace the word "Parts" with something else depending on
- * the amount of original code.
- *
- * (Derivative works does not include programs which link against, run or include
- * the source verbatim in their source distributions)
- *
- * Version: 0.1b
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-log.c
-
-Use of any of this software is governed by the terms of the license below:
-
-/* $OpenBSD: err.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */
-
-/*
- * log.c
- *
- * Based on err.c, which was adapted from OpenBSD libc *err* *warn* code.
- *
- * Copyright (c) 2005 Nick Mathewson
- *
- * Copyright (c) 2000 Dug Song
- *
- * Copyright (c) 1993
- * The Regents of the University of California. All rights
-reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-min_heap.h
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- * Copyright (c) 2006 Maxim Yegorushkin
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-win32.c
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- * Copyright 2000-2002 Niels Provos
- * Copyright 2003 Michael A. Davis
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-regex++
-
-Use of any of this software is governed by the terms of the license below:
-
-Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved.
-This software is not subject to any license of the American Telephone
-and Telegraph Company or of the Regents of the University of California.
-
-Permission is granted to anyone to use this software for any purpose on
-any computer system, and to alter it and redistribute it, subject
-to the following restrictions:
-
-1. The author is not responsible for the consequences of use of this
- software, no matter how awful, even if they arise from flaws in it.
-
-2. The origin of this software must not be misrepresented, either by
- explicit claim or by omission. Since few users ever read sources,
- credits must appear in the documentation.
-
-3. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original software. Since few users
- ever read sources, credits must appear in the documentation.
-
-4. This notice may not be removed or altered.
-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-/*-
- * Copyright (c) 1994
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * @(#)COPYRIGHT 8.1 (Berkeley) 3/16/94
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-Richard A. O'Keefe strings package
-
-Use of any of this software is governed by the terms of the license below:
-
-These files are in the public domain. This includes getopt.c, which
-is the work of Henry Spencer, University of Toronto Zoology, who says of
-it "None of this software is derived from Bell software. I had no access
-to the source for Bell's versions at the time I wrote it. This software
-is hereby explicitly placed in the public domain. It may be used for
-any purpose on any machine by anyone." I would greatly prefer it if *my*
-material received no military use.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-t_ctype.h
-
-Use of any of this software is governed by the terms of the license below:
-
-http://bioinfo.mbb.yale.edu/genome/yeast/cluster/database/mysql/include/t_ctype.h
-
-/*
- Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved.
- Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved.
- Permission to use, copy, modify, distribute and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies.
- Smaphan Raruenrom and Pruet Boonma makes no representations about
- the suitability of this software for any purpose. It is provided
- "as is" without express or implied warranty.
-*/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-SHA-1 in C
-
-Use of any of this software is governed by the terms of the license below:
-
- SHA-1 in C
- By Steve Reid
- 100% Public Domain
-
-Additional License(s)
-
-100% Public Domain
-
-***************************************************************************
-
-%%The following software may be included in this product:
-TCMalloc (part of google-perftools)
-
-Use of any of this software is governed by the terms of the license below:
-
-# Copyright (c) 1998-2006, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Additional License(s)
-
-*** File src/tests/ptmalloc/thread-m.h contains this GPLv2 (or later)
-text:
-
-/* Basic platform-independent macro definitions for mutexes and
- thread-specific data.
- Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Wolfram Gloger , 1996.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The GNU C Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite
- 330, Boston, MA 02111-1307, USA. */
-
-
-
-*** File src/tests/ptmalloc/malloc-machine.h contains this BSD like text:
-
-/* Basic platform-independent macro definitions for mutexes,
- thread-specific data and parameters for malloc.
- Posix threads (pthreads) version.
- Copyright (C) 2004 Wolfram Gloger .
-
-Permission to use, copy, modify, distribute, and sell this software
-and its documentation for any purpose is hereby granted without fee,
-provided that (i) the above copyright notices and this permission
-notice appear in all copies of the software and related documentation,
-and (ii) the name of Wolfram Gloger may not be used in any advertising
-or publicity relating to the software.
-
-THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
-EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
-IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL,
-INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
-DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY
-OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-*/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-The tz database
-
-Use of any of this software is governed by the terms of the license below:
-
-Sources for Time Zone and Daylight Saving Time Data
-@(#)tz-link.htm 7.54
-
-Please send corrections to this web page to the time zone mailing list.
-The tz database
-
-The public-domain time zone database contains code and data that represent the
-history of local time for many representative locations around the globe. It is
-updated periodically to reflect changes made by political bodies to time zone
-boundaries, UTC offsets, and daylight-saving rules. This database (often called
-tz or zoneinfo) is used by several implementations, including the GNU C Library
-used in GNU/Linux, FreeBSD, NetBSD, OpenBSD, Cygwin, DJGPP, HP-UX, IRIX, Mac OS
-X, OpenVMS, Solaris, Tru64, and UnixWare.
-
-Each location in the database represents a national region where all clocks
-keeping local time have agreed since 1970. Locations are identified by continent
-or ocean and then by the name of the location, which is typically the largest
-city within the region. For example, America/New_York represents most of the US
-eastern time zone; America/Phoenix represents most of Arizona, which uses
-mountain time without daylight saving time (DST); America/Detroit represents
-most of Michigan, which uses eastern time but with different DST rules in 1975;
-and other entries represent smaller regions like Starke County, Indiana, which
-switched from central to eastern time in 1991 and switched back in 2006. To use
-the database on an extended POSIX implementation set the TZ environment variable
-to the location's full name, e.g., TZ="America/New_York".
-
-In the tz database's FTP distribution the code is in the file tzcodeC.tar.gz,
-where C is the code's version; similarly, the data are in tzdataD.tar.gz, where
-D is the data's version. The following shell commands download these files to a
-GNU/Linux or similar host; see the downloaded README file for what to do next.
-
-wget 'ftp://elsie.nci.nih.gov/pub/tz*.tar.gz'
-gzip -dc tzcode*.tar.gz | tar -xf -
-gzip -dc tzdata*.tar.gz | tar -xf -
-
-The code lets you compile the tz source files into machine-readable binary
-files, one for each location. It also lets you read a tz binary file and
-interpret time stamps for that location.
-
-The data are by no means authoritative. If you find errors, please send changes
-to the time zone mailing list. You can also subscribe to the mailing list,
-retrieve the archive of old messages (in gzip compressed format), or retrieve
-archived older versions of code and data; there is also a smaller HTTP mirror.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-UnicodeData.txt
-
-Use of any of this software is governed by the terms of the license below:
-
-Unicode Terms of Use
-
- For the general privacy policy governing access to this site, see the
- Unicode Privacy Policy. For trademark usage, see the Unicode
- Consortium (R) Trademarks and Logo Policy.
- Notice to End User: Terms of Use
- Carefully read the following legal agreement ("Agreement"). Use or
- copying of the software and/or codes provided with this agreement (The
- "Software") constitutes your acceptance of these terms
-
- 1. Unicode Copyright.
- 1. Copyright (c) 1991-2008 Unicode, Inc. All rights reserved.
- 2. Certain documents and files on this website contain a
- legend indicating that "Modification is permitted." Any person
- is hereby authorized, without fee, to modify such documents
- and files to create derivative works conforming to the
- Unicode (R) Standard, subject to Terms and Conditions herein.
- 3. Any person is hereby authorized, without fee, to view, use,
- reproduce, and distribute all documents and files solely for
- informational purposes in the creation of products supporting
- the Unicode Standard, subject to the Terms and Conditions
- herein.
- 4. Further specifications of rights and restrictions
- pertaining to the use of the particular set of data files
- known as the "Unicode Character Database" can be found in
- Exhibit 1.
- 5. Each version of the Unicode Standard has further
- specifications of rights and restrictions of use. For the book
- editions, these are found on the back of the title page. For
- the online edition, certain files (such as the PDF files for
- book chapters and code charts) carry specific restrictions.
- All other files are covered under these general Terms of Use.
- To request a permission to reproduce any part of the Unicode
- Standard, please contact the Unicode Consortium.
- 6. No license is granted to "mirror" the Unicode website where
- a fee is charged for access to the "mirror" site.
- 7. Modification is not permitted with respect to this
- document. All copies of this document must be verbatim.
- 2. Restricted Rights Legend. Any technical data or software which is
- licensed to the United States of America, its agencies and/or
- instrumentalities under this Agreement is commercial technical data
- or commercial computer software developed exclusively at private
- expense as defined in FAR 2.101, or DFARS 252.227-7014 (June 1995),
- as applicable. For technical data, use, duplication, or disclosure
- by the Government is subject to restrictions as set forth in DFARS
- 202.227-7015 Technical Data, Commercial and Items (Nov 1995) and
- this Agreement. For Software, in accordance with FAR 12-212 or DFARS
- 227-7202, as applicable, use, duplication or disclosure by the
- Government is subject to the restrictions set forth in this
- Agreement.
- 3. Warranties and Disclaimers.
- 1. This publication and/or website may include technical or
- typographical errors or other inaccuracies . Changes are
- periodically added to the information herein; these changes
- will be incorporated in new editions of the publication and/or
- website. Unicode may make improvements and/or changes in the
- product(s) and/or program(s) described in this publication
- and/or website at any time.
- 2. If this file has been purchased on magnetic or optical
- media from Unicode, Inc. the sole and exclusive remedy for any
- claim will be exchange of the defective media within ninety
- (90) days of original purchase.
- 3. EXCEPT AS PROVIDED IN SECTION C.2, THIS PUBLICATION AND/OR
- SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
- EITHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
- LIMITED TO, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- PARTICULAR PURPOSE, OR NON-INFRINGEMENT. UNICODE AND ITS
- LICENSORS ASSUME NO RESPONSIBILITY FOR ERRORS OR OMISSIONS IN
- THIS PUBLICATION AND/OR SOFTWARE OR OTHER DOCUMENTS WHICH ARE
- REFERENCED BY OR LINKED TO THIS PUBLICATION OR THE UNICODE
- WEBSITE.
- 4. Waiver of Damages. In no event shall Unicode or its licensors be
- liable for any special, incidental, indirect or consequential
- damages of any kind, or any damages whatsoever, whether or not
- Unicode was advised of the possibility of the damage, including,
- without limitation, those resulting from the following: loss of use,
- data or profits, in connection with the use, modification or
- distribution of this information or its derivatives.
- 5. Trademarks.
- 1. Unicode and the Unicode logo are registered trademarks of
- Unicode, Inc.
- 2. This site contains product names and corporate names of
- other companies. All product names and company names and logos
- mentioned herein are the trademarks or registered trademarks
- of their respective owners. Other products and corporate names
- mentioned herein which are trademarks of a third party are
- used only for explanation and for the owners' benefit and with
- no intent to infringe.
- 3. Use of third party products or information referred to
- herein is at the user's risk.
- 6. Miscellaneous.
- 1. Jurisdiction and Venue. This server is operated from a
- location in the State of California, United States of America.
- Unicode makes no representation that the materials are
- appropriate for use in other locations. If you access this
- server from other locations, you are responsible for
- compliance with local laws. This Agreement, all use of this
- site and any claims and damages resulting from use of this
- site are governed solely by the laws of the State of
- California without regard to any principles which would apply
- the laws of a different jurisdiction. The user agrees that any
- disputes regarding this site shall be resolved solely in the
- courts located in Santa Clara County, California. The user
- agrees said courts have personal jurisdiction and agree to
- waive any right to transfer the dispute to any other forum.
- 2. Modification by Unicode Unicode shall have the right to
- modify this Agreement at any time by posting it to this site.
- The user may not assign any part of this Agreement without
- Unicode's prior written consent.
- 3. Taxes. The user agrees to pay any taxes arising from access
- to this website or use of the information herein, except for
- those based on Unicode's net income.
- 4. Severability. If any provision of this Agreement is
- declared invalid or unenforceable, the remaining provisions of
- this Agreement shall remain in effect.
- 5. Entire Agreement. This Agreement constitutes the entire
- agreement between the parties.
-
-EXHIBIT 1
-UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
-
- Unicode Data Files include all data files under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
-published in the Unicode Standard or under the directories
-http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
-http://www.unicode.org/cldr/data/.
-
- NOTICE TO USER: Carefully read the following legal agreement. BY
-DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
-("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
-AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU
-DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES
-OR SOFTWARE.
-
- COPYRIGHT AND PERMISSION NOTICE
-
- Copyright (c) 1991-2008 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.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-zlib
-
-Use of any of this software is governed by the terms of the license below:
-
-/* zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.2.3, July 18th, 2005
-
- Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly jloup@gzip.org
- Mark Adler madler@alumni.caltech.edu
-
-*/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-dtoa.c
-
-Use of any of this software is governed by the terms of the license below:
-
-/****************************************************************
-
- This file incorporates work covered by the following copyright and
- permission notice:
-
- The author of this software is David M. Gay.
-
- Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose without fee is hereby granted, provided that this entire
- notice is included in all copies of any software which is or includes a copy
- or modification of this software and in all copies of the supporting
- documentation for such software.
-
- THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
-
- ***************************************************************/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-getarg.{c,h}
-
-Use of any of this software is governed by the terms of the license below:
-
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- * Copyright (c) 1997, 1999 Kungliga Tekniska H366gskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-MD5 message-digest algorithm (md5_hash.cpp)
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * The code has been modified by Mikael Ronstroem to handle
- * calculating a hash value of a key that is always a multiple
- * of 4 bytes long. Word 0 of the calculated 4-word hash value
- * is returned as the hash value.
- */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-nt_servc.{cc,h}
-
-Use of any of this software is governed by the terms of the license below:
-
-/**
- @file
-
- @brief
- Windows NT Service class library.
-
- Copyright Abandoned 1998 Irena Pancirov - Irnet Snc
- This file is public domain and comes with NO WARRANTY of any kind
-*/
-
-***************************************************************************
-
-%%The following software may be included in this product:
-GNU Readline
-
-Use of any of this software is governed by the terms of the license below:
-
-GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program 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.
-
- This program 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 this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- , 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
-
-***************************************************************************
-
-%%The following software may be included in this product:
-pstack (part of GNU Binutils)
-
-Use of any of this software is governed by the terms of the license below:
-
-pstack is comprised of various .c and .h files; all begin like this:
-
-/* bucomm.h -- binutils common include file.
- Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
-
-This file is part of GNU Binutils.
-
-This program 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.
-
-This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA. */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-libiberty.h (part of pstack GNU Binutils)
-
-Use of any of this software is governed by the terms of the license below:
-
-See
-http://www.koders.com/c/fid99F596804BBE22C076522B848D5575F142079064.aspx
-
-/* Function declarations for libiberty.
- Written by Cygnus Support, 1994.
-
- The libiberty library provides a number of functions which are
- missing on some operating systems. We do not declare those here,
- to avoid conflicts with the system header files on operating
- systems that do support those functions. In this file we only
- declare those functions which are specific to libiberty. */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-ieee.h (part of pstack GNU Binutils)
-
-Use of any of this software is governed by the terms of the license below:
-
-See
-http://src.opensolaris.org/source/xref//sfw/usr/src/cmd/gdb/gdb-6.3/include/ieee.h
-
-
-/* IEEE Standard 695-1980 "Universal Format for Object Modules"
- header file
- Contributed by Cygnus Support. */
-
-***************************************************************************
-
-%%The following software may be included in this product:
-pstack.c (part of pstack GNU Binutils)
-
-Use of any of this software is governed by the terms of the license below:
-
-/*
- pstack.c -- asynchronous stack trace of a running process
- Copyright (c) 1999 Ross Thompson
- Author: Ross Thompson
- Critical bug fix: Tim Waugh
-*/
-
-/*
- This file 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.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*/
-
-**********************************************************************
diff --git a/dep/mysqllite/VERSION b/dep/mysqllite/VERSION
deleted file mode 100644
index f85cac84d7e..00000000000
--- a/dep/mysqllite/VERSION
+++ /dev/null
@@ -1,4 +0,0 @@
-MYSQL_VERSION_MAJOR=5
-MYSQL_VERSION_MINOR=5
-MYSQL_VERSION_PATCH=9
-MYSQL_VERSION_EXTRA=
diff --git a/dep/mysqllite/cmake/character_sets.cmake b/dep/mysqllite/cmake/character_sets.cmake
deleted file mode 100644
index 6b7df9039c8..00000000000
--- a/dep/mysqllite/cmake/character_sets.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (C) 2009 Sun Microsystems, Inc
-#
-# This program 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; version 2 of the License.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-#Charsets and collations
-IF(NOT DEFAULT_CHARSET)
-SET(DEFAULT_CHARSET "latin1")
-ENDIF()
-
-IF(NOT DEFAULT_COLLATIONS)
-SET(DEFAULT_COLLATION "latin1_swedish_ci")
-ENDIF()
-
-SET(CHARSETS_AVAILABLE
-binary armscii8 ascii big5 cp1250 cp1251 cp1256 cp1257
-cp850 cp852 cp866 cp932 dec8 euckr gb2312 gbk geostd8
-greek hebrew hp8 keybcs2 koi8r koi8u
-latin1 latin2 latin5 latin7 macce macroman
-swe7 tis620 ucs2 utf8 utf8mb4 utf16 utf32)
-
-SET(MYSQL_DEFAULT_CHARSET_NAME "${DEFAULT_CHARSET}")
-SET(MYSQL_DEFAULT_COLLATION_NAME "${DEFAULT_COLLATION}")
-
-FOREACH(cs in ${CHARSETS_AVAILABLE})
- SET(HAVE_CHARSET_${cs} 1)
-ENDFOREACH()
-
-SET(HAVE_UCA_COLLATIONS 1)
-
-SET(HAVE_UTF8_GENERAL_CS 1)
-SET(USE_MB 1)
-SET(USE_MB_IDENT 1)
diff --git a/dep/mysqllite/cmake/mysql_version.cmake b/dep/mysqllite/cmake/mysql_version.cmake
deleted file mode 100644
index 3c20f77e9d3..00000000000
--- a/dep/mysqllite/cmake/mysql_version.cmake
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (C) 2009 Sun Microsystems, Inc
-#
-# This program 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; version 2 of the License.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-#
-# Global constants, only to be changed between major releases.
-#
-
-SET(SHARED_LIB_MAJOR_VERSION "16")
-SET(PROTOCOL_VERSION "10")
-SET(DOT_FRM_VERSION "6")
-
-# Generate "something" to trigger cmake rerun when VERSION changes
-CONFIGURE_FILE(
- ${CMAKE_CURRENT_SOURCE_DIR}/VERSION
- ${CMAKE_CURRENT_BINARY_DIR}/VERSION.dep
-)
-
-# Read value for a variable from VERSION.
-
-MACRO(MYSQL_GET_CONFIG_VALUE keyword var)
- IF(NOT ${var})
- FILE (STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/VERSION str REGEX "^[ ]*${keyword}=")
- IF(str)
- STRING(REPLACE "${keyword}=" "" str ${str})
- STRING(REGEX REPLACE "[ ].*" "" str "${str}")
- SET(${var} ${str})
- ENDIF()
- ENDIF()
-ENDMACRO()
-
-
-# Read mysql version for configure script
-
-MACRO(GET_MYSQL_VERSION)
- MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_MAJOR" MAJOR_VERSION)
- MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_MINOR" MINOR_VERSION)
- MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_PATCH" PATCH_VERSION)
- MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_EXTRA" EXTRA_VERSION)
-
- IF(NOT MAJOR_VERSION OR NOT MINOR_VERSION OR NOT PATCH_VERSION)
- MESSAGE(FATAL_ERROR "VERSION file cannot be parsed.")
- ENDIF()
-
- SET(VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}${EXTRA_VERSION}")
- MESSAGE("-- MySQL ${VERSION}")
- SET(MYSQL_BASE_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}" CACHE INTERNAL "MySQL Base version")
- SET(MYSQL_NO_DASH_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
- STRING(REPLACE "-" "_" MYSQL_RPM_VERSION "${VERSION}")
- MATH(EXPR MYSQL_VERSION_ID "10000*${MAJOR_VERSION} + 100*${MINOR_VERSION} + ${PATCH_VERSION}")
-ENDMACRO()
-
-# Get mysql version and other interesting variables
-GET_MYSQL_VERSION()
-
-SET(MYSQL_TCP_PORT_DEFAULT "3306")
-
-IF(NOT MYSQL_TCP_PORT)
- SET(MYSQL_TCP_PORT ${MYSQL_TCP_PORT_DEFAULT})
- SET(MYSQL_TCP_PORT_DEFAULT "0")
-ELSEIF(MYSQL_TCP_PORT EQUAL MYSQL_TCP_PORT_DEFAULT)
- SET(MYSQL_TCP_PORT_DEFAULT "0")
-ENDIF()
-
-
-IF(NOT MYSQL_UNIX_ADDR)
- SET(MYSQL_UNIX_ADDR "/tmp/mysql.sock")
-ENDIF()
-IF(NOT COMPILATION_COMMENT)
- SET(COMPILATION_COMMENT "Source distribution lite for Trinity Core")
-ENDIF()
-
-# Windows 'date' command has unpredictable output, so cannot rely on it to
-# set MYSQL_COPYRIGHT_YEAR - if someone finds a portable way to do so then
-# it might be useful
-# EXECUTE_PROCESS(COMMAND "date" "/T" OUTPUT_VARIABLE TMP_DATE)
-# STRING(REGEX REPLACE "(..)/(..)/..(..).*" "\\3\\2\\1" MYSQL_COPYRIGHT_YEAR ${TMP_DATE})
-
-# Add version information to the exe and dll files
-# Refer to http://msdn.microsoft.com/en-us/library/aa381058(VS.85).aspx
-# for more info.
-IF(MSVC)
- GET_FILENAME_COMPONENT(MYSQL_CMAKE_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
-
- SET(FILETYPE VFT_DLL)
- CONFIGURE_FILE(${MYSQL_CMAKE_SCRIPT_DIR}/versioninfo.rc.in
- ${CMAKE_CURRENT_BINARY_DIR}/versioninfo_dll.rc)
-
- FUNCTION(ADD_VERSION_INFO target sources_var)
- SET(rcfile ${CMAKE_CURRENT_BINARY_DIR}/versioninfo_dll.rc)
- SET(${sources_var} ${${sources_var}} ${rcfile} PARENT_SCOPE)
- ENDFUNCTION()
-ELSE()
- FUNCTION(ADD_VERSION_INFO)
- ENDFUNCTION()
-ENDIF()
diff --git a/dep/mysqllite/cmake/os/Windows.cmake b/dep/mysqllite/cmake/os/Windows.cmake
deleted file mode 100644
index 19c230cc3d5..00000000000
--- a/dep/mysqllite/cmake/os/Windows.cmake
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (C) 2010 Sun Microsystems, Inc
-#
-# This program 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; version 2 of the License.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-# This file includes Windows specific hacks, mostly around compiler flags
-
-INCLUDE (CheckCSourceCompiles)
-INCLUDE (CheckCXXSourceCompiles)
-INCLUDE (CheckStructHasMember)
-INCLUDE (CheckLibraryExists)
-INCLUDE (CheckFunctionExists)
-INCLUDE (CheckCCompilerFlag)
-INCLUDE (CheckCSourceRuns)
-INCLUDE (CheckSymbolExists)
-INCLUDE (CheckTypeSize)
-
-# avoid running system checks by using pre-cached check results
-# system checks are expensive on VS since every tiny program is to be compiled in
-# a VC solution.
-GET_FILENAME_COMPONENT(_SCRIPT_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
-INCLUDE(${_SCRIPT_DIR}/WindowsCache.cmake)
-
-
-# OS display name (version_compile_os etc).
-# Used by the test suite to ignore bugs on some platforms,
-IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
- SET(SYSTEM_TYPE "Win64")
-ELSE()
- SET(SYSTEM_TYPE "Win32")
-ENDIF()
-
-# Intel compiler is almost Visual C++
-# (same compile flags etc). Set MSVC flag
-IF(CMAKE_C_COMPILER MATCHES "icl")
- SET(MSVC TRUE)
-ENDIF()
-
-ADD_DEFINITIONS("-D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
-ADD_DEFINITIONS("-D_WIN32_WINNT=0x0501")
-# Speed up build process excluding unused header files
-ADD_DEFINITIONS("-DWIN32_LEAN_AND_MEAN")
-
-# Adjust compiler and linker flags
-IF(MINGW AND CMAKE_SIZEOF_VOID_P EQUAL 4)
- # mininal architecture flags, i486 enables GCC atomics
- ADD_DEFINITIONS(-march=i486)
-ENDIF()
-
-IF(MSVC)
- # Remove support for exceptions
- FOREACH(flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_INIT)
- STRING(REPLACE "/EHsc" "" "${flag}" "${${flag}}")
- ENDFOREACH()
-
- # Fix CMake's predefined huge stack size
- STRING(REGEX REPLACE "/STACK:([^ ]+)" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
-
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805 /wd4996 /wd4244 /wd4267 /wd4090")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805 /wd4996 /we4099 /wd4244 /wd4267")
-ENDIF()
-
-# System checks
-SET(SIGNAL_WITH_VIO_CLOSE 1) # Something that runtime team needs
-
-# IPv6 constants appeared in Vista SDK first. We need to define them in any case if they are
-# not in headers, to handle dual mode sockets correctly.
-CHECK_SYMBOL_EXISTS(IPPROTO_IPV6 "winsock2.h" HAVE_IPPROTO_IPV6)
-IF(NOT HAVE_IPPROTO_IPV6)
- SET(HAVE_IPPROTO_IPV6 41)
-ENDIF()
-CHECK_SYMBOL_EXISTS(IPV6_V6ONLY "winsock2.h;ws2ipdef.h" HAVE_IPV6_V6ONLY)
-IF(NOT HAVE_IPV6_V6ONLY)
- SET(IPV6_V6ONLY 27)
-ENDIF()
-
-# Some standard functions exist there under different
-# names (e.g popen is _popen or strok_r is _strtok_s)
-# If a replacement function exists, HAVE_FUNCTION is
-# defined to 1. CMake variable <function_name> will also
-# be defined to the replacement name.
-# So for example, CHECK_FUNCTION_REPLACEMENT(popen _popen)
-# will define HAVE_POPEN to 1 and set variable named popen
-# to _popen. If the header template, one needs to have
-# cmakedefine popen @popen@ which will expand to
-# define popen _popen after CONFIGURE_FILE
-
-MACRO(CHECK_FUNCTION_REPLACEMENT function replacement)
- STRING(TOUPPER ${function} function_upper)
- CHECK_FUNCTION_EXISTS(${function} HAVE_${function_upper})
- IF(NOT HAVE_${function_upper})
- CHECK_FUNCTION_EXISTS(${replacement} HAVE_${replacement})
- IF(HAVE_${replacement})
- SET(HAVE_${function_upper} 1 )
- SET(${function} ${replacement})
- ENDIF()
- ENDIF()
-ENDMACRO()
-MACRO(CHECK_SYMBOL_REPLACEMENT symbol replacement header)
- STRING(TOUPPER ${symbol} symbol_upper)
- CHECK_SYMBOL_EXISTS(${symbol} ${header} HAVE_${symbol_upper})
- IF(NOT HAVE_${symbol_upper})
- CHECK_SYMBOL_EXISTS(${replacement} ${header} HAVE_${replacement})
- IF(HAVE_${replacement})
- SET(HAVE_${symbol_upper} 1)
- SET(${symbol} ${replacement})
- ENDIF()
- ENDIF()
-ENDMACRO()
-
-CHECK_SYMBOL_REPLACEMENT(S_IROTH _S_IREAD sys/stat.h)
-CHECK_SYMBOL_REPLACEMENT(S_IFIFO _S_IFIFO sys/stat.h)
-CHECK_SYMBOL_REPLACEMENT(SIGQUIT SIGTERM signal.h)
-CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h)
-CHECK_SYMBOL_REPLACEMENT(isnan _isnan float.h)
-CHECK_SYMBOL_REPLACEMENT(finite _finite float.h)
-CHECK_FUNCTION_REPLACEMENT(popen _popen)
-CHECK_FUNCTION_REPLACEMENT(pclose _pclose)
-CHECK_FUNCTION_REPLACEMENT(access _access)
-CHECK_FUNCTION_REPLACEMENT(strcasecmp _stricmp)
-CHECK_FUNCTION_REPLACEMENT(strncasecmp _strnicmp)
-CHECK_FUNCTION_REPLACEMENT(snprintf _snprintf)
-CHECK_FUNCTION_REPLACEMENT(strtok_r strtok_s)
-CHECK_FUNCTION_REPLACEMENT(strtoll _strtoi64)
-CHECK_FUNCTION_REPLACEMENT(strtoull _strtoui64)
-CHECK_FUNCTION_REPLACEMENT(vsnprintf _vsnprintf)
-CHECK_TYPE_SIZE(ssize_t SIZE_OF_SSIZE_T)
-IF(NOT HAVE_SIZE_OF_SSIZE_T)
- SET(ssize_t SSIZE_T)
-ENDIF()
-
-SET(FN_NO_CASE_SENSE 1)
diff --git a/dep/mysqllite/cmake/os/WindowsCache.cmake b/dep/mysqllite/cmake/os/WindowsCache.cmake
deleted file mode 100644
index ff068bfeaf6..00000000000
--- a/dep/mysqllite/cmake/os/WindowsCache.cmake
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright (C) 2010 Sun Microsystems, Inc
-#
-# This program 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; version 2 of the License.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-# Avoid system checks on Windows by pre-caching results. Most of the system checks
-# are not relevant for Windows anyway and it takes lot more time to run them,
-# since CMake to creates a Visual Studio project for each tiny test.
-# Note that only we cache values on VC++ only, MinGW would give slightly
-# different results.
-
-IF(MSVC)
-SET(HAVE_ACCESS 1 CACHE INTERNAL "")
-SET(HAVE_AIO_H CACHE INTERNAL "")
-SET(HAVE_AIO_READ CACHE INTERNAL "")
-SET(HAVE_ALARM CACHE INTERNAL "")
-SET(HAVE_ALLOCA_H CACHE INTERNAL "")
-SET(HAVE_ARPA_INET_H CACHE INTERNAL "")
-SET(HAVE_ASM_MSR_H CACHE INTERNAL "")
-SET(HAVE_BACKTRACE CACHE INTERNAL "")
-SET(HAVE_BACKTRACE_SYMBOLS CACHE INTERNAL "")
-SET(HAVE_BACKTRACE_SYMBOLS_FD CACHE INTERNAL "")
-SET(HAVE_BFILL CACHE INTERNAL "")
-SET(HAVE_BMOVE CACHE INTERNAL "")
-SET(HAVE_BSD_SIGNALS CACHE INTERNAL "")
-SET(HAVE_BSEARCH 1 CACHE INTERNAL "")
-SET(HAVE_BSS_START CACHE INTERNAL "")
-SET(HAVE_BZERO CACHE INTERNAL "")
-SET(HAVE_CHOWN CACHE INTERNAL "")
-SET(HAVE_CLOCK_GETTIME CACHE INTERNAL "")
-SET(HAVE_COMPRESS CACHE INTERNAL "")
-SET(HAVE_CRYPT CACHE INTERNAL "")
-SET(HAVE_CRYPT_H CACHE INTERNAL "")
-SET(HAVE_CUSERID CACHE INTERNAL "")
-SET(HAVE_CXX_NEW 1 CACHE INTERNAL "")
-SET(HAVE_DECL_MADVISE CACHE INTERNAL "")
-SET(HAVE_DIRECTIO CACHE INTERNAL "")
-SET(HAVE_DIRENT_H CACHE INTERNAL "")
-SET(HAVE_DLERROR CACHE INTERNAL "")
-SET(HAVE_DLFCN_H CACHE INTERNAL "")
-SET(HAVE_DLOPEN CACHE INTERNAL "")
-SET(HAVE_DOPRNT CACHE INTERNAL "")
-SET(HAVE_EXECINFO_H CACHE INTERNAL "")
-SET(HAVE_FCHMOD CACHE INTERNAL "")
-SET(HAVE_FCNTL CACHE INTERNAL "")
-SET(HAVE_FCNTL_H 1 CACHE INTERNAL "")
-SET(HAVE_FCNTL_NONBLOCK CACHE INTERNAL "")
-SET(HAVE_FCONVERT CACHE INTERNAL "")
-SET(HAVE_FDATASYNC CACHE INTERNAL "")
-SET(HAVE_DECL_FDATASYNC CACHE INTERNAL "")
-SET(HAVE_FENV_H CACHE INTERNAL "")
-SET(HAVE_FESETROUND CACHE INTERNAL "")
-SET(HAVE_FGETLN CACHE INTERNAL "")
-SET(HAVE_FINITE CACHE INTERNAL "")
-SET(HAVE_FINITE_IN_MATH_H CACHE INTERNAL "")
-SET(HAVE_FLOATINGPOINT_H CACHE INTERNAL "")
-SET(HAVE_FLOAT_H 1 CACHE INTERNAL "")
-SET(HAVE_FLOCKFILE CACHE INTERNAL "")
-SET(HAVE_FNMATCH_H CACHE INTERNAL "")
-SET(HAVE_FPSETMASK CACHE INTERNAL "")
-SET(HAVE_FPU_CONTROL_H CACHE INTERNAL "")
-SET(HAVE_FSEEKO CACHE INTERNAL "")
-SET(HAVE_FSYNC CACHE INTERNAL "")
-SET(HAVE_FTIME 1 CACHE INTERNAL "")
-SET(HAVE_FTRUNCATE CACHE INTERNAL "")
-SET(HAVE_GETADDRINFO 1 CACHE INTERNAL "")
-SET(HAVE_GETCWD 1 CACHE INTERNAL "")
-SET(HAVE_GETHOSTBYADDR_R CACHE INTERNAL "")
-SET(HAVE_GETHOSTBYNAME_R CACHE INTERNAL "")
-SET(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE CACHE INTERNAL "")
-SET(HAVE_GETHOSTBYNAME_R_RETURN_INT CACHE INTERNAL "")
-SET(HAVE_GETHRTIME CACHE INTERNAL "")
-SET(HAVE_GETLINE CACHE INTERNAL "")
-SET(HAVE_GETNAMEINFO CACHE INTERNAL "")
-SET(HAVE_GETPAGESIZE CACHE INTERNAL "")
-SET(HAVE_GETPASS CACHE INTERNAL "")
-SET(HAVE_GETPASSPHRASE CACHE INTERNAL "")
-SET(HAVE_GETPWNAM CACHE INTERNAL "")
-SET(HAVE_GETPWUID CACHE INTERNAL "")
-SET(HAVE_GETRLIMIT CACHE INTERNAL "")
-SET(HAVE_GETRUSAGE CACHE INTERNAL "")
-SET(HAVE_GETTIMEOFDAY CACHE INTERNAL "")
-SET(HAVE_GETWD CACHE INTERNAL "")
-SET(HAVE_GMTIME_R CACHE INTERNAL "")
-SET(HAVE_GRP_H CACHE INTERNAL "")
-SET(HAVE_IA64INTRIN_H CACHE INTERNAL "")
-SET(HAVE_IEEEFP_H CACHE INTERNAL "")
-SET(HAVE_INDEX CACHE INTERNAL "")
-SET(HAVE_INITGROUPS CACHE INTERNAL "")
-SET(HAVE_INTTYPES_H CACHE INTERNAL "")
-SET(HAVE_IPPROTO_IPV6 CACHE INTERNAL "")
-SET(HAVE_IPV6 TRUE CACHE INTERNAL "")
-SET(HAVE_IPV6_V6ONLY 1 CACHE INTERNAL "")
-SET(HAVE_ISINF CACHE INTERNAL "")
-SET(HAVE_ISNAN CACHE INTERNAL "")
-SET(HAVE_ISSETUGID CACHE INTERNAL "")
-SET(HAVE_LANGINFO_H CACHE INTERNAL "")
-SET(HAVE_LDIV 1 CACHE INTERNAL "")
-SET(HAVE_LIMITS_H 1 CACHE INTERNAL "")
-SET(HAVE_LOCALE_H 1 CACHE INTERNAL "")
-SET(HAVE_LOCALTIME_R CACHE INTERNAL "")
-SET(HAVE_LOG2 CACHE INTERNAL "")
-SET(HAVE_LONGJMP 1 CACHE INTERNAL "")
-SET(HAVE_LRAND48 CACHE INTERNAL "")
-SET(HAVE_LSTAT CACHE INTERNAL "")
-SET(HAVE_MADVISE CACHE INTERNAL "")
-SET(HAVE_MALLINFO CACHE INTERNAL "")
-SET(HAVE_MALLOC_H 1 CACHE INTERNAL "")
-SET(HAVE_MEMALIGN CACHE INTERNAL "")
-SET(HAVE_MEMCPY 1 CACHE INTERNAL "")
-SET(HAVE_MEMMOVE 1 CACHE INTERNAL "")
-SET(HAVE_MEMORY_H 1 CACHE INTERNAL "")
-SET(HAVE_MKSTEMP CACHE INTERNAL "")
-SET(HAVE_MLOCK CACHE INTERNAL "")
-SET(HAVE_MLOCKALL CACHE INTERNAL "")
-SET(HAVE_MMAP CACHE INTERNAL "")
-SET(HAVE_MMAP64 CACHE INTERNAL "")
-SET(HAVE_NETINET_IN6_H CACHE INTERNAL "")
-SET(HAVE_NETINET_IN_H CACHE INTERNAL "")
-SET(HAVE_NL_LANGINFO CACHE INTERNAL "")
-SET(HAVE_PASE_ENVIRONMENT CACHE INTERNAL "")
-SET(HAVE_PATHS_H CACHE INTERNAL "")
-SET(HAVE_PCLOSE CACHE INTERNAL "")
-SET(HAVE_PERROR 1 CACHE INTERNAL "")
-SET(HAVE_PEERCRED CACHE INTERNAL "")
-SET(HAVE_POLL_H CACHE INTERNAL "")
-SET(HAVE_POPEN CACHE INTERNAL "")
-SET(HAVE_POLL CACHE INTERNAL "")
-SET(HAVE_PORT_CREATE CACHE INTERNAL "")
-SET(HAVE_PORT_H CACHE INTERNAL "")
-SET(HAVE_POSIX_FALLOCATE CACHE INTERNAL "")
-SET(HAVE_POSIX_SIGNALS CACHE INTERNAL "")
-SET(HAVE_PREAD CACHE INTERNAL "")
-SET(HAVE_PRINTSTACK CACHE INTERNAL "")
-SET(HAVE_PTHREAD_ATTR_CREATE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_ATTR_GETSTACKSIZE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_ATTR_SETSCOPE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_ATTR_SETSTACKSIZE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_CONDATTR_CREATE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_CONDATTR_SETCLOCK CACHE INTERNAL "")
-SET(HAVE_PTHREAD_INIT CACHE INTERNAL "")
-SET(HAVE_PTHREAD_KEY_DELETE CACHE INTERNAL "")
-SET(HAVE_PTHREAD_RWLOCK_RDLOCK CACHE INTERNAL "")
-SET(HAVE_PTHREAD_SIGMASK CACHE INTERNAL "")
-SET(HAVE_PTHREAD_THREADMASK CACHE INTERNAL "")
-SET(HAVE_PTHREAD_YIELD_NP CACHE INTERNAL "")
-SET(HAVE_PTHREAD_YIELD_ZERO_ARG CACHE INTERNAL "")
-SET(HAVE_PUTENV 1 CACHE INTERNAL "")
-SET(HAVE_PWD_H CACHE INTERNAL "")
-SET(HAVE_RDTSCLL CACHE INTERNAL "")
-SET(HAVE_READDIR_R CACHE INTERNAL "")
-SET(HAVE_READLINK CACHE INTERNAL "")
-SET(HAVE_READ_REAL_TIME CACHE INTERNAL "")
-SET(HAVE_REALPATH CACHE INTERNAL "")
-SET(HAVE_REGCOMP CACHE INTERNAL "")
-SET(HAVE_RENAME 1 CACHE INTERNAL "")
-SET(HAVE_RE_COMP CACHE INTERNAL "")
-SET(HAVE_RINT CACHE INTERNAL "")
-SET(HAVE_RWLOCK_INIT CACHE INTERNAL "")
-SET(HAVE_SCHED_H CACHE INTERNAL "")
-SET(HAVE_SCHED_YIELD CACHE INTERNAL "")
-SET(HAVE_SELECT 1 CACHE INTERNAL "")
-SET(HAVE_SELECT_H CACHE INTERNAL "")
-SET(HAVE_SEMAPHORE_H CACHE INTERNAL "")
-SET(HAVE_SETENV CACHE INTERNAL "")
-SET(HAVE_SETFD CACHE INTERNAL "")
-SET(HAVE_SETLOCALE 1 CACHE INTERNAL "")
-SET(HAVE_SHMAT CACHE INTERNAL "")
-SET(HAVE_SHMCTL CACHE INTERNAL "")
-SET(HAVE_SHMDT CACHE INTERNAL "")
-SET(HAVE_SHMGET CACHE INTERNAL "")
-SET(HAVE_SIGACTION CACHE INTERNAL "")
-SET(HAVE_SIGADDSET CACHE INTERNAL "")
-SET(HAVE_SIGEMPTYSET CACHE INTERNAL "")
-SET(HAVE_SIGHOLD CACHE INTERNAL "")
-SET(HAVE_SIGINT 1 CACHE INTERNAL "")
-SET(HAVE_SIGPIPE CACHE INTERNAL "")
-SET(HAVE_SIGQUIT CACHE INTERNAL "")
-SET(HAVE_SIGSET CACHE INTERNAL "")
-SET(HAVE_SIGTERM 1 CACHE INTERNAL "")
-SET(HAVE_SIGTHREADMASK CACHE INTERNAL "")
-SET(HAVE_SIGWAIT CACHE INTERNAL "")
-SET(HAVE_SIZEOF_BOOL FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_CHAR TRUE CACHE INTERNAL "")
-SET(SIZEOF_CHAR 1 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_CHARP TRUE CACHE INTERNAL "")
-SET(SIZEOF_CHARP ${CMAKE_SIZEOF_VOID_P} CACHE INTERNAL "")
-SET(HAVE_SIZEOF_IN6_ADDR TRUE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_INT TRUE CACHE INTERNAL "")
-SET(SIZEOF_INT 4 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_INT16 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_INT32 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_INT64 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_INT8 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_LONG TRUE CACHE INTERNAL "")
-SET(SIZEOF_LONG 4 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_LONG_LONG TRUE CACHE INTERNAL "")
-SET(SIZEOF_LONG_LONG 8 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_MODE_T FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_OFF_T TRUE CACHE INTERNAL "")
-SET(SIZEOF_OFF_T 4 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_SHORT TRUE CACHE INTERNAL "")
-SET(SIZEOF_SHORT 2 CACHE INTERNAL "")
-SET(HAVE_SIZEOF_SIGSET_T FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_SIZE_T TRUE CACHE INTERNAL "")
-SET(SIZEOF_SIZE_T ${CMAKE_SIZEOF_VOID_P} CACHE INTERNAL "")
-SET(HAVE_SIZEOF_SOCKADDR_IN6 TRUE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_SOCKLEN_T FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UCHAR FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UINT FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UINT16 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UINT32 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UINT64 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_UINT8 FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_ULONG FALSE CACHE INTERNAL "")
-SET(HAVE_SIZEOF_U_INT32_T FALSE CACHE INTERNAL "")
-SET(HAVE_SIZE_OF_SSIZE_T FALSE CACHE INTERNAL "")
-SET(HAVE_SLEEP CACHE INTERNAL "")
-SET(HAVE_SNPRINTF CACHE INTERNAL "")
-SET(HAVE_SOCKADDR_STORAGE_SS_FAMILY 1 CACHE INTERNAL "")
-SET(HAVE_SOLARIS_STYLE_GETHOST CACHE INTERNAL "")
-SET(STACK_DIRECTION -1 CACHE INTERNAL "")
-SET(HAVE_STDARG_H 1 CACHE INTERNAL "")
-SET(HAVE_STDDEF_H 1 CACHE INTERNAL "")
-SET(HAVE_STDINT_H CACHE INTERNAL "")
-SET(HAVE_STDLIB_H 1 CACHE INTERNAL "")
-SET(HAVE_STPCPY CACHE INTERNAL "")
-SET(HAVE_STRCASECMP CACHE INTERNAL "")
-SET(HAVE_STRCOLL 1 CACHE INTERNAL "")
-SET(HAVE_STRDUP 1 CACHE INTERNAL "")
-SET(HAVE_STRERROR 1 CACHE INTERNAL "")
-SET(HAVE_STRINGS_H CACHE INTERNAL "")
-SET(HAVE_STRING_H 1 CACHE INTERNAL "")
-SET(HAVE_STRLCAT CACHE INTERNAL "")
-SET(HAVE_STRLCPY CACHE INTERNAL "")
-SET(HAVE_STRNCASECMP CACHE INTERNAL "")
-IF(MSVC_VERSION GREATER 1310)
-SET(HAVE_STRNLEN 1 CACHE INTERNAL "")
-ENDIF()
-SET(HAVE_STRPBRK 1 CACHE INTERNAL "")
-SET(HAVE_STRSEP CACHE INTERNAL "")
-SET(HAVE_STRSIGNAL CACHE INTERNAL "")
-SET(HAVE_STRSTR 1 CACHE INTERNAL "")
-SET(HAVE_STRTOK_R CACHE INTERNAL "")
-SET(HAVE_STRTOL 1 CACHE INTERNAL "")
-SET(HAVE_STRTOLL CACHE INTERNAL "")
-SET(HAVE_STRTOUL 1 CACHE INTERNAL "")
-SET(HAVE_STRTOULL CACHE INTERNAL "")
-SET(HAVE_SVR3_SIGNALS CACHE INTERNAL "")
-SET(HAVE_SYNCH_H CACHE INTERNAL "")
-SET(HAVE_SYSENT_H CACHE INTERNAL "")
-SET(HAVE_SYS_CDEFS_H CACHE INTERNAL "")
-SET(HAVE_SYS_DIR_H CACHE INTERNAL "")
-SET(HAVE_SYS_ERRLIST CACHE INTERNAL "")
-SET(HAVE_SYS_FILE_H CACHE INTERNAL "")
-SET(HAVE_SYS_FPU_H CACHE INTERNAL "")
-SET(HAVE_SYS_IOCTL_H CACHE INTERNAL "")
-SET(HAVE_SYS_IPC_H CACHE INTERNAL "")
-SET(HAVE_SYS_MALLOC_H CACHE INTERNAL "")
-SET(HAVE_SYS_MMAN_H CACHE INTERNAL "")
-SET(HAVE_SYS_PARAM_H CACHE INTERNAL "")
-SET(HAVE_SYS_PRCTL_H CACHE INTERNAL "")
-SET(HAVE_SYS_PTEM_H CACHE INTERNAL "")
-SET(HAVE_SYS_PTE_H CACHE INTERNAL "")
-SET(HAVE_SYS_RESOURCE_H CACHE INTERNAL "")
-SET(HAVE_SYS_SELECT_H CACHE INTERNAL "")
-SET(HAVE_SYS_SHM_H CACHE INTERNAL "")
-SET(HAVE_SYS_SOCKET_H CACHE INTERNAL "")
-SET(HAVE_SYS_STAT_H 1 CACHE INTERNAL "")
-SET(HAVE_SYS_STREAM_H CACHE INTERNAL "")
-SET(HAVE_SYS_TERMCAP_H CACHE INTERNAL "")
-SET(HAVE_SYS_TIMEB_H 1 CACHE INTERNAL "")
-SET(HAVE_SYS_TIMES_H CACHE INTERNAL "")
-SET(HAVE_SYS_TIME_H CACHE INTERNAL "")
-SET(HAVE_SYS_TYPES_H 1 CACHE INTERNAL "")
-SET(HAVE_SYS_UN_H CACHE INTERNAL "")
-SET(HAVE_SYS_UTIME_H 1 CACHE INTERNAL "")
-SET(HAVE_SYS_VADVISE_H CACHE INTERNAL "")
-SET(HAVE_SYS_WAIT_H CACHE INTERNAL "")
-SET(HAVE_TCGETATTR CACHE INTERNAL "")
-SET(HAVE_TELL 1 CACHE INTERNAL "")
-SET(HAVE_TEMPNAM 1 CACHE INTERNAL "")
-SET(HAVE_TERMCAP_H CACHE INTERNAL "")
-SET(HAVE_TERMIOS_H CACHE INTERNAL "")
-SET(HAVE_TERMIO_H CACHE INTERNAL "")
-SET(HAVE_TERM_H CACHE INTERNAL "")
-SET(HAVE_THR_SETCONCURRENCY CACHE INTERNAL "")
-SET(HAVE_THR_YIELD CACHE INTERNAL "")
-SET(HAVE_TIME 1 CACHE INTERNAL "")
-SET(HAVE_TIMES CACHE INTERNAL "")
-SET(HAVE_TIMESPEC_TS_SEC CACHE INTERNAL "")
-SET(HAVE_TIME_H 1 CACHE INTERNAL "")
-SET(HAVE_TZNAME 1 CACHE INTERNAL "")
-SET(HAVE_UNISTD_H CACHE INTERNAL "")
-SET(HAVE_UTIME_H CACHE INTERNAL "")
-SET(HAVE_VALLOC CACHE INTERNAL "")
-SET(HAVE_VARARGS_H 1 CACHE INTERNAL "")
-SET(HAVE_VASPRINTF CACHE INTERNAL "")
-SET(HAVE_VPRINTF 1 CACHE INTERNAL "")
-IF(MSVC_VERSION GREATER 1310)
-SET(HAVE_VSNPRINTF 1 CACHE INTERNAL "")
-ENDIF()
-SET(HAVE_WEAK_SYMBOL CACHE INTERNAL "")
-SET(HAVE_WORDS_BIGENDIAN TRUE CACHE INTERNAL "")
-SET(WORDS_BIGENDIAN CACHE INTERNAL "")
-SET(HAVE__S_IFIFO 1 CACHE INTERNAL "")
-SET(HAVE__S_IREAD 1 CACHE INTERNAL "")
-SET(HAVE__finite 1 CACHE INTERNAL "")
-SET(HAVE__isnan 1 CACHE INTERNAL "")
-SET(HAVE__pclose 1 CACHE INTERNAL "")
-SET(HAVE__popen 1 CACHE INTERNAL "")
-SET(HAVE__snprintf 1 CACHE INTERNAL "")
-SET(HAVE__stricmp 1 CACHE INTERNAL "")
-SET(HAVE__strnicmp 1 CACHE INTERNAL "")
-SET(HAVE__strtoi64 1 CACHE INTERNAL "")
-SET(HAVE__strtoui64 1 CACHE INTERNAL "")
-IF(MSVC_VERSION GREATER 1310)
- SET(HAVE_strtok_s 1 CACHE INTERNAL "")
-ENDIF()
-SET(STDC_HEADERS CACHE 1 INTERNAL "")
-SET(STRUCT_DIRENT_HAS_D_INO CACHE INTERNAL "")
-SET(STRUCT_DIRENT_HAS_D_INO CACHE INTERNAL "")
-SET(STRUCT_DIRENT_HAS_D_NAMLEN CACHE INTERNAL "")
-SET(TIME_WITH_SYS_TIME CACHE INTERNAL "")
-SET(TIOCSTAT_IN_SYS_IOCTL CACHE INTERNAL "")
-SET(HAVE_S_IROTH CACHE INTERNAL "")
-SET(HAVE_S_IFIFO CACHE INTERNAL "")
-SET(QSORT_TYPE_IS_VOID 1 CACHE INTERNAL "")
-SET(SIGNAL_RETURN_TYPE_IS_VOID 1 CACHE INTERNAL "")
-SET(C_HAS_inline CACHE INTERNAL "")
-SET(C_HAS___inline 1 CACHE INTERNAL "")
-SET(FIONREAD_IN_SYS_IOCTL CACHE INTERNAL "")
-SET(GWINSZ_IN_SYS_IOCTL CACHE INTERNAL "")
-SET(HAVE_CXXABI_H CACHE INTERNAL "")
-SET(HAVE_NDIR_H CACHE INTERNAL "")
-SET(HAVE_SYS_NDIR_H CACHE INTERNAL "")
-SET(HAVE_SYS_NDIR_H CACHE INTERNAL "")
-SET(HAVE_ASM_TERMBITS_H CACHE INTERNAL "")
-SET(HAVE_TERMBITS_H CACHE INTERNAL "")
-SET(HAVE_VIS_H CACHE INTERNAL "")
-SET(HAVE_WCHAR_H 1 CACHE INTERNAL "")
-SET(HAVE_WCTYPE_H 1 CACHE INTERNAL "")
-SET(HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP CACHE INTERNAL "")
-SET(HAVE_SOCKADDR_IN_SIN_LEN CACHE INTERNAL "")
-SET(HAVE_SOCKADDR_IN6_SIN6_LEN CACHE INTERNAL "")
-ENDIF()
diff --git a/dep/mysqllite/cmake/stack_direction.c b/dep/mysqllite/cmake/stack_direction.c
deleted file mode 100644
index 11bcf803bfa..00000000000
--- a/dep/mysqllite/cmake/stack_direction.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-/* Check stack direction (0-down, 1-up) */
-int f(int *a)
-{
- int b;
- return(&b > a)?1:0;
-}
-/*
- Prevent compiler optimizations by calling function
- through pointer.
-*/
-volatile int (*ptr_f)(int *) = f;
-int main()
-{
- int a;
- return ptr_f(&a);
-} \ No newline at end of file
diff --git a/dep/mysqllite/cmake/versioninfo.rc.in b/dep/mysqllite/cmake/versioninfo.rc.in
deleted file mode 100644
index 11cedc38a39..00000000000
--- a/dep/mysqllite/cmake/versioninfo.rc.in
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <windows.h>
-VS_VERSION_INFO VERSIONINFO
-FILEVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,0
-PRODUCTVERSION @MAJOR_VERSION@,@MINOR_VERSION@,@PATCH_VERSION@,0
-FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
-FILEFLAGS 0
-FILEOS VOS__WINDOWS32
-FILETYPE @FILETYPE@
-FILESUBTYPE VFT2_UNKNOWN
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904E4"
- BEGIN
- VALUE "FileVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.0\0"
- VALUE "ProductVersion", "@MAJOR_VERSION@.@MINOR_VERSION@.@PATCH_VERSION@.0\0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1252
- END
-END
diff --git a/dep/mysqllite/config.h.cmake b/dep/mysqllite/config.h.cmake
deleted file mode 100644
index 204e1032410..00000000000
--- a/dep/mysqllite/config.h.cmake
+++ /dev/null
@@ -1,618 +0,0 @@
-/* Copyright (C) 2009, 2011, Oracle and/or its affiliates. All rights
- reserved
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#ifndef MY_CONFIG_H
-#define MY_CONFIG_H
-#cmakedefine DOT_FRM_VERSION @DOT_FRM_VERSION@
-/* Headers we may want to use. */
-#cmakedefine STDC_HEADERS 1
-#cmakedefine _GNU_SOURCE 1
-#cmakedefine HAVE_ALLOCA_H 1
-#cmakedefine HAVE_AIO_H 1
-#cmakedefine HAVE_ARPA_INET_H 1
-#cmakedefine HAVE_ASM_MSR_H 1
-#cmakedefine HAVE_ASM_TERMBITS_H 1
-#cmakedefine HAVE_BSEARCH 1
-#cmakedefine HAVE_CRYPT_H 1
-#cmakedefine HAVE_CURSES_H 1
-#cmakedefine HAVE_CXXABI_H 1
-#cmakedefine HAVE_NCURSES_H 1
-#cmakedefine HAVE_NDIR_H 1
-#cmakedefine HAVE_DIRENT_H 1
-#cmakedefine HAVE_DLFCN_H 1
-#cmakedefine HAVE_EXECINFO_H 1
-#cmakedefine HAVE_FCNTL_H 1
-#cmakedefine HAVE_FENV_H 1
-#cmakedefine HAVE_FLOAT_H 1
-#cmakedefine HAVE_FLOATINGPOINT_H 1
-#cmakedefine HAVE_FNMATCH_H 1
-#cmakedefine HAVE_FPU_CONTROL_H 1
-#cmakedefine HAVE_GRP_H 1
-#cmakedefine HAVE_EXPLICIT_TEMPLATE_INSTANTIATION 1
-#cmakedefine HAVE_IA64INTRIN_H 1
-#cmakedefine HAVE_IEEEFP_H 1
-#cmakedefine HAVE_INTTYPES_H 1
-#cmakedefine HAVE_LIMITS_H 1
-#cmakedefine HAVE_LOCALE_H 1
-#cmakedefine HAVE_MALLOC_H 1
-#cmakedefine HAVE_MEMORY_H 1
-#cmakedefine HAVE_NETINET_IN_H 1
-#cmakedefine HAVE_PATHS_H 1
-#cmakedefine HAVE_POLL_H 1
-#cmakedefine HAVE_PORT_H 1
-#cmakedefine HAVE_PWD_H 1
-#cmakedefine HAVE_SCHED_H 1
-#cmakedefine HAVE_SELECT_H 1
-#cmakedefine HAVE_SOLARIS_LARGE_PAGES 1
-#cmakedefine HAVE_STDDEF_H 1
-#cmakedefine HAVE_STDLIB_H 1
-#cmakedefine HAVE_STDARG_H 1
-#cmakedefine HAVE_STRINGS_H 1
-#cmakedefine HAVE_STRING_H 1
-#cmakedefine HAVE_STDINT_H 1
-#cmakedefine HAVE_SEMAPHORE_H 1
-#cmakedefine HAVE_SYNCH_H 1
-#cmakedefine HAVE_SYSENT_H 1
-#cmakedefine HAVE_SYS_DIR_H 1
-#cmakedefine HAVE_SYS_CDEFS_H 1
-#cmakedefine HAVE_SYS_FILE_H 1
-#cmakedefine HAVE_SYS_FPU_H 1
-#cmakedefine HAVE_SYS_IOCTL_H 1
-#cmakedefine HAVE_SYS_IPC_H 1
-#cmakedefine HAVE_SYS_MALLOC_H 1
-#cmakedefine HAVE_SYS_MMAN_H 1
-#cmakedefine HAVE_SYS_NDIR_H 1
-#cmakedefine HAVE_SYS_PTE_H 1
-#cmakedefine HAVE_SYS_PTEM_H 1
-#cmakedefine HAVE_SYS_PRCTL_H 1
-#cmakedefine HAVE_SYS_RESOURCE_H 1
-#cmakedefine HAVE_SYS_SELECT_H 1
-#cmakedefine HAVE_SYS_SHM_H 1
-#cmakedefine HAVE_SYS_SOCKET_H 1
-#cmakedefine HAVE_SYS_STAT_H 1
-#cmakedefine HAVE_SYS_STREAM_H 1
-#cmakedefine HAVE_SYS_TERMCAP_H 1
-#cmakedefine HAVE_SYS_TIMEB_H 1
-#cmakedefine HAVE_SYS_TIMES_H 1
-#cmakedefine HAVE_SYS_TIME_H 1
-#cmakedefine HAVE_SYS_TYPES_H 1
-#cmakedefine HAVE_SYS_UN_H 1
-#cmakedefine HAVE_SYS_VADVISE_H 1
-#cmakedefine HAVE_TERM_H 1
-#cmakedefine HAVE_TERMBITS_H 1
-#cmakedefine HAVE_TERMIOS_H 1
-#cmakedefine HAVE_TERMIO_H 1
-#cmakedefine HAVE_TERMCAP_H 1
-#cmakedefine HAVE_TIME_H 1
-#cmakedefine HAVE_UNISTD_H 1
-#cmakedefine HAVE_UTIME_H 1
-#cmakedefine HAVE_VARARGS_H 1
-#cmakedefine HAVE_VIS_H 1
-#cmakedefine HAVE_SYS_UTIME_H 1
-#cmakedefine HAVE_SYS_WAIT_H 1
-#cmakedefine HAVE_SYS_PARAM_H 1
-
-/* Libraries */
-#cmakedefine HAVE_LIBPTHREAD 1
-#cmakedefine HAVE_LIBM 1
-#cmakedefine HAVE_LIBDL 1
-#cmakedefine HAVE_LIBRT 1
-#cmakedefine HAVE_LIBSOCKET 1
-#cmakedefine HAVE_LIBNSL 1
-#cmakedefine HAVE_LIBCRYPT 1
-#cmakedefine HAVE_LIBMTMALLOC 1
-#cmakedefine HAVE_LIBWRAP 1
-/* Does "struct timespec" have a "sec" and "nsec" field? */
-#cmakedefine HAVE_TIMESPEC_TS_SEC 1
-
-/* Readline */
-#cmakedefine HAVE_HIST_ENTRY 1
-#cmakedefine USE_LIBEDIT_INTERFACE 1
-#cmakedefine USE_NEW_READLINE_INTERFACE 1
-
-#cmakedefine FIONREAD_IN_SYS_IOCTL 1
-#cmakedefine GWINSZ_IN_SYS_IOCTL 1
-#cmakedefine TIOCSTAT_IN_SYS_IOCTL 1
-
-/* Functions we may want to use. */
-#cmakedefine HAVE_AIOWAIT 1
-#cmakedefine HAVE_ALARM 1
-#cmakedefine HAVE_ALLOCA 1
-#cmakedefine HAVE_BFILL 1
-#cmakedefine HAVE_BMOVE 1
-#cmakedefine HAVE_BZERO 1
-#cmakedefine HAVE_INDEX 1
-#cmakedefine HAVE_CHOWN 1
-#cmakedefine HAVE_CLOCK_GETTIME 1
-#cmakedefine HAVE_CRYPT 1
-#cmakedefine HAVE_CUSERID 1
-#cmakedefine HAVE_CXX_NEW 1
-#cmakedefine HAVE_DIRECTIO 1
-#cmakedefine HAVE_DLERROR 1
-#cmakedefine HAVE_DLOPEN 1
-#cmakedefine HAVE_DOPRNT 1
-#cmakedefine HAVE_FCHMOD 1
-#cmakedefine HAVE_FCNTL 1
-#cmakedefine HAVE_FCONVERT 1
-#cmakedefine HAVE_FDATASYNC 1
-#cmakedefine HAVE_FESETROUND 1
-#cmakedefine HAVE_FINITE 1
-#cmakedefine HAVE_FP_EXCEPT 1
-#cmakedefine HAVE_FPSETMASK 1
-#cmakedefine HAVE_FSEEKO 1
-#cmakedefine HAVE_FSYNC 1
-#cmakedefine HAVE_FTIME 1
-#cmakedefine HAVE_GETADDRINFO 1
-#cmakedefine HAVE_GETCWD 1
-#cmakedefine HAVE_GETHOSTBYADDR_R 1
-#cmakedefine HAVE_GETHOSTBYNAME_R 1
-#cmakedefine HAVE_GETHRTIME 1
-#cmakedefine HAVE_GETLINE 1
-#cmakedefine HAVE_GETNAMEINFO 1
-#cmakedefine HAVE_GETPAGESIZE 1
-#cmakedefine HAVE_GETPASS 1
-#cmakedefine HAVE_GETPASSPHRASE 1
-#cmakedefine HAVE_GETPWNAM 1
-#cmakedefine HAVE_GETPWUID 1
-#cmakedefine HAVE_GETRLIMIT 1
-#cmakedefine HAVE_GETRUSAGE 1
-#cmakedefine HAVE_GETTIMEOFDAY 1
-#cmakedefine HAVE_GETWD 1
-#cmakedefine HAVE_GMTIME_R 1
-#cmakedefine gmtime_r @gmtime_r@
-#cmakedefine HAVE_INITGROUPS 1
-#cmakedefine HAVE_ISSETUGID 1
-#cmakedefine HAVE_ISNAN 1
-#cmakedefine HAVE_ISINF 1
-#cmakedefine HAVE_LARGE_PAGE_OPTION 1
-#cmakedefine HAVE_LDIV 1
-#cmakedefine HAVE_LRAND48 1
-#cmakedefine HAVE_LOCALTIME_R 1
-#cmakedefine HAVE_LOG2 1
-#cmakedefine HAVE_LONGJMP 1
-#cmakedefine HAVE_LSTAT 1
-#cmakedefine HAVE_MEMALIGN 1
-/* #cmakedefine HAVE_MLOCK 1 see Bug#54662 */
-#cmakedefine HAVE_NPTL 1
-#cmakedefine HAVE_NL_LANGINFO 1
-#cmakedefine HAVE_MADVISE 1
-#cmakedefine HAVE_DECL_MADVISE 1
-#cmakedefine HAVE_DECL_TGOTO 1
-#cmakedefine HAVE_DECL_MHA_MAPSIZE_VA
-#cmakedefine HAVE_MALLINFO 1
-#cmakedefine HAVE_MEMCPY 1
-#cmakedefine HAVE_MEMMOVE 1
-#cmakedefine HAVE_MKSTEMP 1
-#cmakedefine HAVE_MLOCKALL 1
-#cmakedefine HAVE_MMAP 1
-#cmakedefine HAVE_MMAP64 1
-#cmakedefine HAVE_PERROR 1
-#cmakedefine HAVE_POLL 1
-#cmakedefine HAVE_PORT_CREATE 1
-#cmakedefine HAVE_POSIX_FALLOCATE 1
-#cmakedefine HAVE_PREAD 1
-#cmakedefine HAVE_PAUSE_INSTRUCTION 1
-#cmakedefine HAVE_FAKE_PAUSE_INSTRUCTION 1
-#cmakedefine HAVE_RDTSCLL 1
-#cmakedefine HAVE_READ_REAL_TIME 1
-#cmakedefine HAVE_PTHREAD_ATTR_CREATE 1
-#cmakedefine HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
-#cmakedefine HAVE_PTHREAD_ATTR_SETPRIO 1
-#cmakedefine HAVE_PTHREAD_ATTR_SETSCHEDPARAM 1
-#cmakedefine HAVE_PTHREAD_ATTR_SETSCOPE 1
-#cmakedefine HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
-#cmakedefine HAVE_PTHREAD_CONDATTR_CREATE 1
-#cmakedefine HAVE_PTHREAD_CONDATTR_SETCLOCK 1
-#cmakedefine HAVE_PTHREAD_INIT 1
-#cmakedefine HAVE_PTHREAD_KEY_DELETE 1
-#cmakedefine HAVE_PTHREAD_KEY_DELETE 1
-#cmakedefine HAVE_PTHREAD_KILL 1
-#cmakedefine HAVE_PTHREAD_RWLOCK_RDLOCK 1
-#cmakedefine HAVE_PTHREAD_SETPRIO_NP 1
-#cmakedefine HAVE_PTHREAD_SETSCHEDPARAM 1
-#cmakedefine HAVE_PTHREAD_SIGMASK 1
-#cmakedefine HAVE_PTHREAD_THREADMASK 1
-#cmakedefine HAVE_PTHREAD_YIELD_NP 1
-#cmakedefine HAVE_PTHREAD_YIELD_ZERO_ARG 1
-#cmakedefine PTHREAD_ONCE_INITIALIZER @PTHREAD_ONCE_INITIALIZER@
-#cmakedefine HAVE_PUTENV 1
-#cmakedefine HAVE_RE_COMP 1
-#cmakedefine HAVE_REGCOMP 1
-#cmakedefine HAVE_READDIR_R 1
-#cmakedefine HAVE_READLINK 1
-#cmakedefine HAVE_REALPATH 1
-#cmakedefine HAVE_RENAME 1
-#cmakedefine HAVE_RINT 1
-#cmakedefine HAVE_RWLOCK_INIT 1
-#cmakedefine HAVE_SCHED_YIELD 1
-#cmakedefine HAVE_SELECT 1
-#cmakedefine HAVE_SETFD 1
-#cmakedefine HAVE_SETENV 1
-#cmakedefine HAVE_SETLOCALE 1
-#cmakedefine HAVE_SIGADDSET 1
-#cmakedefine HAVE_SIGEMPTYSET 1
-#cmakedefine HAVE_SIGHOLD 1
-#cmakedefine HAVE_SIGSET 1
-#cmakedefine HAVE_SIGSET_T 1
-#cmakedefine HAVE_SIGACTION 1
-#cmakedefine HAVE_SIGTHREADMASK 1
-#cmakedefine HAVE_SIGWAIT 1
-#cmakedefine HAVE_SLEEP 1
-#cmakedefine HAVE_SNPRINTF 1
-#cmakedefine HAVE_STPCPY 1
-#cmakedefine HAVE_STRERROR 1
-#cmakedefine HAVE_STRCOLL 1
-#cmakedefine HAVE_STRSIGNAL 1
-#cmakedefine HAVE_STRLCPY 1
-#cmakedefine HAVE_STRLCAT 1
-#cmakedefine HAVE_FGETLN 1
-#cmakedefine HAVE_STRNLEN 1
-#cmakedefine HAVE_STRPBRK 1
-#cmakedefine HAVE_STRSEP 1
-#cmakedefine HAVE_STRSTR 1
-#cmakedefine HAVE_STRTOK_R 1
-#cmakedefine HAVE_STRTOL 1
-#cmakedefine HAVE_STRTOLL 1
-#cmakedefine HAVE_STRTOUL 1
-#cmakedefine HAVE_STRTOULL 1
-#cmakedefine HAVE_SHMAT 1
-#cmakedefine HAVE_SHMCTL 1
-#cmakedefine HAVE_SHMDT 1
-#cmakedefine HAVE_SHMGET 1
-#cmakedefine HAVE_TELL 1
-#cmakedefine HAVE_TEMPNAM 1
-#cmakedefine HAVE_THR_SETCONCURRENCY 1
-#cmakedefine HAVE_THR_YIELD 1
-#cmakedefine HAVE_TIME 1
-#cmakedefine HAVE_TIMES 1
-#cmakedefine HAVE_VALLOC 1
-#define HAVE_VIO_READ_BUFF 1
-#cmakedefine HAVE_VASPRINTF 1
-#cmakedefine HAVE_VPRINTF 1
-#cmakedefine HAVE_VSNPRINTF 1
-#cmakedefine HAVE_FTRUNCATE 1
-#cmakedefine HAVE_TZNAME 1
-#cmakedefine HAVE_AIO_READ 1
-/* Symbols we may use */
-#cmakedefine HAVE_SYS_ERRLIST 1
-/* used by stacktrace functions */
-#cmakedefine HAVE_BSS_START 1
-#cmakedefine HAVE_BACKTRACE 1
-#cmakedefine HAVE_BACKTRACE_SYMBOLS 1
-#cmakedefine HAVE_BACKTRACE_SYMBOLS_FD 1
-#cmakedefine HAVE_PRINTSTACK 1
-#cmakedefine HAVE_STRUCT_SOCKADDR_IN6 1
-#cmakedefine HAVE_STRUCT_IN6_ADDR 1
-#cmakedefine HAVE_NETINET_IN6_H 1
-#cmakedefine HAVE_IPV6 1
-#cmakedefine ss_family @ss_family@
-#cmakedefine HAVE_SOCKADDR_IN_SIN_LEN 1
-#cmakedefine HAVE_SOCKADDR_IN6_SIN6_LEN 1
-#cmakedefine HAVE_TIMESPEC_TS_SEC 1
-#cmakedefine STRUCT_DIRENT_HAS_D_INO 1
-#cmakedefine STRUCT_DIRENT_HAS_D_NAMLEN 1
-#cmakedefine SPRINTF_RETURNS_INT 1
-
-#define USE_MB 1
-#define USE_MB_IDENT 1
-
-#cmakedefine HAVE_VALGRIND
-
-/* Types we may use */
-#ifdef __APPLE__
- /*
- Special handling required for OSX to support universal binaries that
- mix 32 and 64 bit architectures.
- */
- #if(__LP64__)
- #define SIZEOF_LONG 8
- #else
- #define SIZEOF_LONG 4
- #endif
- #define SIZEOF_VOIDP SIZEOF_LONG
- #define SIZEOF_CHARP SIZEOF_LONG
- #define SIZEOF_SIZE_T SIZEOF_LONG
-#else
-/* No indentation, to fetch the lines from verification scripts */
-#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
-#cmakedefine SIZEOF_VOIDP @SIZEOF_VOIDP@
-#cmakedefine SIZEOF_CHARP @SIZEOF_CHARP@
-#cmakedefine SIZEOF_SIZE_T @SIZEOF_CHARP@
-#endif
-
-#cmakedefine SIZEOF_CHAR @SIZEOF_CHAR@
-#define HAVE_CHAR 1
-#define HAVE_LONG 1
-#define HAVE_CHARP 1
-#cmakedefine SIZEOF_SHORT @SIZEOF_SHORT@
-#define HAVE_SHORT 1
-#cmakedefine SIZEOF_INT @SIZEOF_INT@
-#define HAVE_INT 1
-#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
-#cmakedefine HAVE_LONG_LONG 1
-#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@
-#cmakedefine HAVE_OFF_T 1
-#cmakedefine SIZEOF_SIGSET_T @SIZEOF_SIGSET_T@
-#cmakedefine HAVE_SIGSET_T 1
-#cmakedefine HAVE_SIZE_T 1
-#cmakedefine SIZEOF_UCHAR @SIZEOF_UCHAR@
-#cmakedefine HAVE_UCHAR 1
-#cmakedefine SIZEOF_UINT @SIZEOF_UINT@
-#cmakedefine HAVE_UINT 1
-#cmakedefine SIZEOF_ULONG @SIZEOF_ULONG@
-#cmakedefine HAVE_ULONG 1
-#cmakedefine SIZEOF_INT8 @SIZEOF_INT8@
-#cmakedefine HAVE_INT8 1
-#cmakedefine SIZEOF_UINT8 @SIZEOF_UINT8@
-#cmakedefine HAVE_UINT8 1
-#cmakedefine SIZEOF_INT16 @SIZEOF_INT16@
-#cmakedefine HAVE_INT16 1
-#cmakedefine SIZEOF_UINT16 @SIZEOF_UINT16@
-#cmakedefine HAVE_UINT16 1
-#cmakedefine SIZEOF_INT32 @SIZEOF_INT32@
-#cmakedefine HAVE_INT32 1
-#cmakedefine SIZEOF_UINT32 @SIZEOF_UINT32@
-#cmakedefine HAVE_UINT32 1
-#cmakedefine SIZEOF_U_INT32_T @SIZEOF_U_INT32_T@
-#cmakedefine HAVE_U_INT32_T 1
-#cmakedefine SIZEOF_INT64 @SIZEOF_INT64@
-#cmakedefine HAVE_INT64 1
-#cmakedefine SIZEOF_UINT64 @SIZEOF_UINT64@
-#cmakedefine HAVE_UINT64 1
-#cmakedefine SIZEOF_BOOL @SIZEOF_BOOL@
-#cmakedefine HAVE_BOOL 1
-
-#cmakedefine SOCKET_SIZE_TYPE @SOCKET_SIZE_TYPE@
-
-#cmakedefine HAVE_MBSTATE_T
-
-#define MAX_INDEXES 64
-
-#cmakedefine QSORT_TYPE_IS_VOID 1
-#cmakedefine RETQSORTTYPE @RETQSORTTYPE@
-
-#cmakedefine SIGNAL_RETURN_TYPE_IS_VOID 1
-#cmakedefine RETSIGTYPE @RETSIGTYPE@
-#cmakedefine VOID_SIGHANDLER 1
-#define STRUCT_RLIMIT struct rlimit
-
-#ifdef __APPLE__
- #if __BIG_ENDIAN
- #define WORDS_BIGENDIAN 1
- #endif
-#else
-#cmakedefine WORDS_BIGENDIAN 1
-#endif
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler calls
- it, or to nothing if 'inline' is not supported under any name. */
-#cmakedefine C_HAS_inline 1
-#if !(C_HAS_inline)
-#ifndef __cplusplus
-# define inline @C_INLINE@
-#endif
-#endif
-
-
-#cmakedefine TARGET_OS_LINUX 1
-
-#cmakedefine HAVE_WCTYPE_H 1
-#cmakedefine HAVE_WCHAR_H 1
-#cmakedefine HAVE_LANGINFO_H 1
-#cmakedefine HAVE_MBRLEN
-#cmakedefine HAVE_MBSCMP
-#cmakedefine HAVE_MBSRTOWCS
-#cmakedefine HAVE_WCRTOMB
-#cmakedefine HAVE_MBRTOWC
-#cmakedefine HAVE_WCSCOLL
-#cmakedefine HAVE_WCSDUP
-#cmakedefine HAVE_WCWIDTH
-#cmakedefine HAVE_WCTYPE
-#cmakedefine HAVE_ISWLOWER 1
-#cmakedefine HAVE_ISWUPPER 1
-#cmakedefine HAVE_TOWLOWER 1
-#cmakedefine HAVE_TOWUPPER 1
-#cmakedefine HAVE_ISWCTYPE 1
-#cmakedefine HAVE_WCHAR_T 1
-#cmakedefine HAVE_WCTYPE_T 1
-#cmakedefine HAVE_WINT_T 1
-
-
-#cmakedefine HAVE_STRCASECMP 1
-#cmakedefine HAVE_STRNCASECMP 1
-#cmakedefine HAVE_STRDUP 1
-#cmakedefine HAVE_LANGINFO_CODESET
-#cmakedefine HAVE_TCGETATTR 1
-#cmakedefine HAVE_FLOCKFILE 1
-
-#cmakedefine HAVE_WEAK_SYMBOL 1
-#cmakedefine HAVE_ABI_CXA_DEMANGLE 1
-
-
-#cmakedefine HAVE_POSIX_SIGNALS 1
-#cmakedefine HAVE_BSD_SIGNALS 1
-#cmakedefine HAVE_SVR3_SIGNALS 1
-#cmakedefine HAVE_V7_SIGNALS 1
-
-
-#cmakedefine HAVE_SOLARIS_STYLE_GETHOST 1
-#cmakedefine HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE 1
-#cmakedefine HAVE_GETHOSTBYNAME_R_RETURN_INT 1
-
-#cmakedefine MY_ATOMIC_MODE_DUMMY 1
-#cmakedefine MY_ATOMIC_MODE_RWLOCKS 1
-#cmakedefine HAVE_GCC_ATOMIC_BUILTINS 1
-#cmakedefine HAVE_SOLARIS_ATOMIC 1
-#cmakedefine HAVE_DECL_SHM_HUGETLB 1
-#cmakedefine HAVE_LARGE_PAGES 1
-#cmakedefine HUGETLB_USE_PROC_MEMINFO 1
-#cmakedefine NO_FCNTL_NONBLOCK 1
-#cmakedefine NO_ALARM 1
-
-#cmakedefine _LARGE_FILES 1
-#cmakedefine _LARGEFILE_SOURCE 1
-#cmakedefine _LARGEFILE64_SOURCE 1
-#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
-
-#cmakedefine TIME_WITH_SYS_TIME 1
-
-#cmakedefine STACK_DIRECTION @STACK_DIRECTION@
-
-#define SYSTEM_TYPE "@SYSTEM_TYPE@"
-#define MACHINE_TYPE "@CMAKE_SYSTEM_PROCESSOR@"
-#cmakedefine HAVE_DTRACE 1
-
-#cmakedefine SIGNAL_WITH_VIO_CLOSE 1
-
-/* Windows stuff, mostly functions, that have Posix analogs but named differently */
-#cmakedefine S_IROTH @S_IROTH@
-#cmakedefine S_IFIFO @S_IFIFO@
-#cmakedefine IPPROTO_IPV6 @IPPROTO_IPV6@
-#cmakedefine IPV6_V6ONLY @IPV6_V6ONLY@
-#cmakedefine sigset_t @sigset_t@
-#cmakedefine mode_t @mode_t@
-#cmakedefine SIGQUIT @SIGQUIT@
-#cmakedefine SIGPIPE @SIGPIPE@
-#cmakedefine isnan @isnan@
-#cmakedefine finite @finite@
-#cmakedefine popen @popen@
-#cmakedefine pclose @pclose@
-#cmakedefine ssize_t @ssize_t@
-#cmakedefine strcasecmp @strcasecmp@
-#cmakedefine strncasecmp @strncasecmp@
-#cmakedefine snprintf @snprintf@
-#cmakedefine strtok_r @strtok_r@
-#cmakedefine strtoll @strtoll@
-#cmakedefine strtoull @strtoull@
-#cmakedefine vsnprintf @vsnprintf@
-#if (_MSC_VER > 1310)
-# define HAVE_SETENV
-#define setenv(a,b,c) _putenv_s(a,b)
-#endif
-
-
-
-
-/*
- MySQL features
-*/
-#cmakedefine ENABLED_LOCAL_INFILE 1
-#cmakedefine ENABLED_PROFILING 1
-#cmakedefine EXTRA_DEBUG 1
-#cmakedefine BACKUP_TEST 1
-#cmakedefine CYBOZU 1
-
-/* Character sets and collations */
-#cmakedefine MYSQL_DEFAULT_CHARSET_NAME "latin1"
-#cmakedefine MYSQL_DEFAULT_COLLATION_NAME "latin1_swedish_ci"
-
-#cmakedefine USE_MB 1
-#cmakedefine USE_MB_IDENT 1
-#cmakedefine USE_STRCOLL 1
-
-/* This should mean case insensitive file system */
-#cmakedefine FN_NO_CASE_SENSE 1
-
-#cmakedefine HAVE_CHARSET_armscii8 1
-#cmakedefine HAVE_CHARSET_ascii 1
-#cmakedefine HAVE_CHARSET_big5 1
-#cmakedefine HAVE_CHARSET_cp1250 1
-#cmakedefine HAVE_CHARSET_cp1251 1
-#cmakedefine HAVE_CHARSET_cp1256 1
-#cmakedefine HAVE_CHARSET_cp1257 1
-#cmakedefine HAVE_CHARSET_cp850 1
-#cmakedefine HAVE_CHARSET_cp852 1
-#cmakedefine HAVE_CHARSET_cp866 1
-#cmakedefine HAVE_CHARSET_cp932 1
-#cmakedefine HAVE_CHARSET_dec8 1
-#cmakedefine HAVE_CHARSET_eucjpms 1
-#cmakedefine HAVE_CHARSET_euckr 1
-#cmakedefine HAVE_CHARSET_gb2312 1
-#cmakedefine HAVE_CHARSET_gbk 1
-#cmakedefine HAVE_CHARSET_geostd8 1
-#cmakedefine HAVE_CHARSET_greek 1
-#cmakedefine HAVE_CHARSET_hebrew 1
-#cmakedefine HAVE_CHARSET_hp8 1
-#cmakedefine HAVE_CHARSET_keybcs2 1
-#cmakedefine HAVE_CHARSET_koi8r 1
-#cmakedefine HAVE_CHARSET_koi8u 1
-#cmakedefine HAVE_CHARSET_latin1 1
-#cmakedefine HAVE_CHARSET_latin2 1
-#cmakedefine HAVE_CHARSET_latin5 1
-#cmakedefine HAVE_CHARSET_latin7 1
-#cmakedefine HAVE_CHARSET_macce 1
-#cmakedefine HAVE_CHARSET_macroman 1
-#cmakedefine HAVE_CHARSET_sjis 1
-#cmakedefine HAVE_CHARSET_swe7 1
-#cmakedefine HAVE_CHARSET_tis620 1
-#cmakedefine HAVE_CHARSET_ucs2 1
-#cmakedefine HAVE_CHARSET_ujis 1
-#cmakedefine HAVE_CHARSET_utf8mb4 1
-#cmakedefine HAVE_CHARSET_utf8mb3 1
-#cmakedefine HAVE_CHARSET_utf8 1
-#cmakedefine HAVE_CHARSET_utf16 1
-#cmakedefine HAVE_CHARSET_utf32 1
-#cmakedefine HAVE_UCA_COLLATIONS 1
-#cmakedefine HAVE_COMPRESS 1
-
-
-/*
- Stuff that always need to be defined (compile breaks without it)
-*/
-#define HAVE_SPATIAL 1
-#define HAVE_RTREE_KEYS 1
-#define HAVE_QUERY_CACHE 1
-#define BIG_TABLES 1
-
-/*
- Important storage engines (those that really need define
- WITH_<ENGINE>_STORAGE_ENGINE for the whole server)
-*/
-#cmakedefine WITH_MYISAM_STORAGE_ENGINE 1
-#cmakedefine WITH_MYISAMMRG_STORAGE_ENGINE 1
-#cmakedefine WITH_HEAP_STORAGE_ENGINE 1
-#cmakedefine WITH_CSV_STORAGE_ENGINE 1
-#cmakedefine WITH_PARTITION_STORAGE_ENGINE 1
-#cmakedefine WITH_PERFSCHEMA_STORAGE_ENGINE 1
-#cmakedefine WITH_NDBCLUSTER_STORAGE_ENGINE 1
-#if (WITH_NDBCLUSTER_STORAGE_ENGINE) && !defined(EMBEDDED_LIBRARY)
-# define HAVE_NDB_BINLOG 1
-#endif
-
-#cmakedefine DEFAULT_MYSQL_HOME "@DEFAULT_MYSQL_HOME@"
-#cmakedefine SHAREDIR "@SHAREDIR@"
-#cmakedefine DEFAULT_BASEDIR "@DEFAULT_BASEDIR@"
-#cmakedefine MYSQL_DATADIR "@MYSQL_DATADIR@"
-#cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@"
-#cmakedefine PLUGINDIR "@PLUGINDIR@"
-#cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@"
-
-#cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
-
-#define MYSQL_MAJOR_VERSION @MAJOR_VERSION@
-#define MYSQL_MINOR_VERSION @MINOR_VERSION@
-
-#define PACKAGE "mysql"
-#define PACKAGE_BUGREPORT ""
-#define PACKAGE_NAME "MySQL Server"
-#define PACKAGE_STRING "MySQL Server @VERSION@"
-#define PACKAGE_TARNAME "mysql"
-#define PACKAGE_VERSION "@VERSION@"
-#define VERSION "@VERSION@"
-#define PROTOCOL_VERSION 10
-
-
-#endif
diff --git a/dep/mysqllite/configure.cmake b/dep/mysqllite/configure.cmake
deleted file mode 100644
index 954b60a45f6..00000000000
--- a/dep/mysqllite/configure.cmake
+++ /dev/null
@@ -1,1101 +0,0 @@
-
-# Copyright (C) 2009 Sun Microsystems,Inc
-#
-# This program 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; version 2 of the License.
-#
-# This program 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 this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-#
-
-INCLUDE (CheckCSourceCompiles)
-INCLUDE (CheckCXXSourceCompiles)
-INCLUDE (CheckStructHasMember)
-INCLUDE (CheckLibraryExists)
-INCLUDE (CheckFunctionExists)
-INCLUDE (CheckCCompilerFlag)
-INCLUDE (CheckCSourceRuns)
-INCLUDE (CheckSymbolExists)
-
-
-# WITH_PIC options.Not of much use, PIC is taken care of on platforms
-# where it makes sense anyway.
-IF(UNIX)
- IF(APPLE)
- # OSX executable are always PIC
- SET(WITH_PIC ON)
- ELSE()
- OPTION(WITH_PIC "Generate PIC objects" OFF)
- IF(WITH_PIC)
- SET(CMAKE_C_FLAGS
- "${CMAKE_C_FLAGS} ${CMAKE_SHARED_LIBRARY_C_FLAGS}")
- SET(CMAKE_CXX_FLAGS
- "${CMAKE_CXX_FLAGS} ${CMAKE_SHARED_LIBRARY_CXX_FLAGS}")
- ENDIF()
- ENDIF()
-ENDIF()
-
-
-
-# System type affects version_compile_os variable
-IF(NOT SYSTEM_TYPE)
- IF(PLATFORM)
- SET(SYSTEM_TYPE ${PLATFORM})
- ELSE()
- SET(SYSTEM_TYPE ${CMAKE_SYSTEM_NAME})
- ENDIF()
-ENDIF()
-
-
-# Always enable -Wall for gnu C/C++
-IF(CMAKE_COMPILER_IS_GNUCXX)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-unused-parameter")
-ENDIF()
-IF(CMAKE_COMPILER_IS_GNUCC)
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
-ENDIF()
-
-
-IF(CMAKE_COMPILER_IS_GNUCXX)
- # MySQL "canonical" GCC flags. At least -fno-rtti flag affects
- # ABI and cannot be simply removed.
- SET(CMAKE_CXX_FLAGS
- "${CMAKE_CXX_FLAGS} -fno-implicit-templates -fno-exceptions -fno-rtti")
- IF(CMAKE_CXX_FLAGS)
- STRING(REGEX MATCH "fno-implicit-templates" NO_IMPLICIT_TEMPLATES
- ${CMAKE_CXX_FLAGS})
- IF (NO_IMPLICIT_TEMPLATES)
- SET(HAVE_EXPLICIT_TEMPLATE_INSTANTIATION TRUE)
- ENDIF()
- ENDIF()
-
- IF (CMAKE_EXE_LINKER_FLAGS MATCHES " -static "
- OR CMAKE_EXE_LINKER_FLAGS MATCHES " -static$")
- SET(HAVE_DLOPEN FALSE CACHE "Disable dlopen due to -static flag" FORCE)
- SET(WITHOUT_DYNAMIC_PLUGINS TRUE)
- ENDIF()
-ENDIF()
-
-IF(WITHOUT_DYNAMIC_PLUGINS)
- MESSAGE("Dynamic plugins are disabled.")
-ENDIF(WITHOUT_DYNAMIC_PLUGINS)
-
-# Large files, common flag
-SET(_LARGEFILE_SOURCE 1)
-
-# If finds the size of a type, set SIZEOF_<type> and HAVE_<type>
-FUNCTION(MY_CHECK_TYPE_SIZE type defbase)
- CHECK_TYPE_SIZE("${type}" SIZEOF_${defbase})
- IF(SIZEOF_${defbase})
- SET(HAVE_${defbase} 1 PARENT_SCOPE)
- ENDIF()
-ENDFUNCTION()
-
-# Same for structs, setting HAVE_STRUCT_<name> instead
-FUNCTION(MY_CHECK_STRUCT_SIZE type defbase)
- CHECK_TYPE_SIZE("struct ${type}" SIZEOF_${defbase})
- IF(SIZEOF_${defbase})
- SET(HAVE_STRUCT_${defbase} 1 PARENT_SCOPE)
- ENDIF()
-ENDFUNCTION()
-
-# Searches function in libraries
-# if function is found, sets output parameter result to the name of the library
-# if function is found in libc, result will be empty
-FUNCTION(MY_SEARCH_LIBS func libs result)
- IF(${${result}})
- # Library is already found or was predefined
- RETURN()
- ENDIF()
- CHECK_FUNCTION_EXISTS(${func} HAVE_${func}_IN_LIBC)
- IF(HAVE_${func}_IN_LIBC)
- SET(${result} "" PARENT_SCOPE)
- RETURN()
- ENDIF()
- FOREACH(lib ${libs})
- CHECK_LIBRARY_EXISTS(${lib} ${func} "" HAVE_${func}_IN_${lib})
- IF(HAVE_${func}_IN_${lib})
- SET(${result} ${lib} PARENT_SCOPE)
- SET(HAVE_${result} 1 PARENT_SCOPE)
- RETURN()
- ENDIF()
- ENDFOREACH()
-ENDFUNCTION()
-
-# Find out which libraries to use.
-IF(UNIX)
- MY_SEARCH_LIBS(floor m LIBM)
- IF(NOT LIBM)
- MY_SEARCH_LIBS(__infinity m LIBM)
- ENDIF()
- MY_SEARCH_LIBS(gethostbyname_r "nsl_r;nsl" LIBNSL)
- MY_SEARCH_LIBS(bind "bind;socket" LIBBIND)
- MY_SEARCH_LIBS(crypt crypt LIBCRYPT)
- MY_SEARCH_LIBS(setsockopt socket LIBSOCKET)
- MY_SEARCH_LIBS(dlopen dl LIBDL)
- MY_SEARCH_LIBS(sched_yield rt LIBRT)
- IF(NOT LIBRT)
- MY_SEARCH_LIBS(clock_gettime rt LIBRT)
- ENDIF()
- FIND_PACKAGE(Threads)
-
- SET(CMAKE_REQUIRED_LIBRARIES
- ${LIBM} ${LIBNSL} ${LIBBIND} ${LIBCRYPT} ${LIBSOCKET} ${LIBDL} ${CMAKE_THREAD_LIBS_INIT} ${LIBRT})
-
- LIST(REMOVE_DUPLICATES CMAKE_REQUIRED_LIBRARIES)
- LINK_LIBRARIES(${CMAKE_THREAD_LIBS_INIT})
-
- OPTION(WITH_LIBWRAP "Compile with tcp wrappers support" OFF)
- IF(WITH_LIBWRAP)
- SET(SAVE_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
- SET(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} wrap)
- CHECK_C_SOURCE_COMPILES(
- "
- #include <tcpd.h>
- int allow_severity = 0;
- int deny_severity = 0;
- int main()
- {
- hosts_access(0);
- }"
- HAVE_LIBWRAP)
- SET(CMAKE_REQUIRED_LIBRARIES ${SAVE_CMAKE_REQUIRED_LIBRARIES})
- IF(HAVE_LIBWRAP)
- SET(MYSYS_LIBWRAP_SOURCE ${CMAKE_SOURCE_DIR}/mysys/my_libwrap.c)
- SET(LIBWRAP "wrap")
- ENDIF()
- ENDIF()
-ENDIF()
-
-#
-# Tests for header files
-#
-INCLUDE (CheckIncludeFiles)
-
-CHECK_INCLUDE_FILES ("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
-CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILES (alloca.h HAVE_ALLOCA_H)
-CHECK_INCLUDE_FILES (aio.h HAVE_AIO_H)
-CHECK_INCLUDE_FILES (arpa/inet.h HAVE_ARPA_INET_H)
-CHECK_INCLUDE_FILES (crypt.h HAVE_CRYPT_H)
-CHECK_INCLUDE_FILES (cxxabi.h HAVE_CXXABI_H)
-CHECK_INCLUDE_FILES (dirent.h HAVE_DIRENT_H)
-CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H)
-CHECK_INCLUDE_FILES (execinfo.h HAVE_EXECINFO_H)
-CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H)
-CHECK_INCLUDE_FILES (fenv.h HAVE_FENV_H)
-CHECK_INCLUDE_FILES (float.h HAVE_FLOAT_H)
-CHECK_INCLUDE_FILES (floatingpoint.h HAVE_FLOATINGPOINT_H)
-CHECK_INCLUDE_FILES (fpu_control.h HAVE_FPU_CONTROL_H)
-CHECK_INCLUDE_FILES (grp.h HAVE_GRP_H)
-CHECK_INCLUDE_FILES (ieeefp.h HAVE_IEEEFP_H)
-CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILES (langinfo.h HAVE_LANGINFO_H)
-CHECK_INCLUDE_FILES (limits.h HAVE_LIMITS_H)
-CHECK_INCLUDE_FILES (locale.h HAVE_LOCALE_H)
-CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H)
-CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H)
-CHECK_INCLUDE_FILES (ndir.h HAVE_NDIR_H)
-CHECK_INCLUDE_FILES (netinet/in.h HAVE_NETINET_IN_H)
-CHECK_INCLUDE_FILES (paths.h HAVE_PATHS_H)
-CHECK_INCLUDE_FILES (port.h HAVE_PORT_H)
-CHECK_INCLUDE_FILES (poll.h HAVE_POLL_H)
-CHECK_INCLUDE_FILES (pwd.h HAVE_PWD_H)
-CHECK_INCLUDE_FILES (sched.h HAVE_SCHED_H)
-CHECK_INCLUDE_FILES (select.h HAVE_SELECT_H)
-CHECK_INCLUDE_FILES (semaphore.h HAVE_SEMAPHORE_H)
-CHECK_INCLUDE_FILES ("sys/types.h;sys/dir.h" HAVE_SYS_DIR_H)
-CHECK_INCLUDE_FILES (sys/ndir.h HAVE_SYS_NDIR_H)
-CHECK_INCLUDE_FILES (sys/pte.h HAVE_SYS_PTE_H)
-CHECK_INCLUDE_FILES (stddef.h HAVE_STDDEF_H)
-CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H)
-CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H)
-CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H)
-CHECK_INCLUDE_FILES (string.h HAVE_STRING_H)
-CHECK_INCLUDE_FILES (synch.h HAVE_SYNCH_H)
-CHECK_INCLUDE_FILES (sysent.h HAVE_SYSENT_H)
-CHECK_INCLUDE_FILES (sys/cdefs.h HAVE_SYS_CDEFS_H)
-CHECK_INCLUDE_FILES (sys/file.h HAVE_SYS_FILE_H)
-CHECK_INCLUDE_FILES (sys/fpu.h HAVE_SYS_FPU_H)
-CHECK_INCLUDE_FILES (sys/ioctl.h HAVE_SYS_IOCTL_H)
-CHECK_INCLUDE_FILES (sys/ipc.h HAVE_SYS_IPC_H)
-CHECK_INCLUDE_FILES (sys/malloc.h HAVE_SYS_MALLOC_H)
-CHECK_INCLUDE_FILES (sys/mman.h HAVE_SYS_MMAN_H)
-CHECK_INCLUDE_FILES (sys/prctl.h HAVE_SYS_PRCTL_H)
-CHECK_INCLUDE_FILES (sys/resource.h HAVE_SYS_RESOURCE_H)
-CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H)
-CHECK_INCLUDE_FILES (sys/shm.h HAVE_SYS_SHM_H)
-CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H)
-CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILES (sys/stream.h HAVE_SYS_STREAM_H)
-CHECK_INCLUDE_FILES (sys/termcap.h HAVE_SYS_TERMCAP_H)
-CHECK_INCLUDE_FILES ("time.h;sys/timeb.h" HAVE_SYS_TIMEB_H)
-CHECK_INCLUDE_FILES ("curses.h;term.h" HAVE_TERM_H)
-CHECK_INCLUDE_FILES (asm/termbits.h HAVE_ASM_TERMBITS_H)
-CHECK_INCLUDE_FILES (termbits.h HAVE_TERMBITS_H)
-CHECK_INCLUDE_FILES (termios.h HAVE_TERMIOS_H)
-CHECK_INCLUDE_FILES (termio.h HAVE_TERMIO_H)
-CHECK_INCLUDE_FILES (termcap.h HAVE_TERMCAP_H)
-CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
-CHECK_INCLUDE_FILES (utime.h HAVE_UTIME_H)
-CHECK_INCLUDE_FILES (varargs.h HAVE_VARARGS_H)
-CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILES (sys/utime.h HAVE_SYS_UTIME_H)
-CHECK_INCLUDE_FILES (sys/wait.h HAVE_SYS_WAIT_H)
-CHECK_INCLUDE_FILES (sys/param.h HAVE_SYS_PARAM_H)
-CHECK_INCLUDE_FILES (sys/vadvise.h HAVE_SYS_VADVISE_H)
-CHECK_INCLUDE_FILES (fnmatch.h HAVE_FNMATCH_H)
-CHECK_INCLUDE_FILES (stdarg.h HAVE_STDARG_H)
-CHECK_INCLUDE_FILES ("stdlib.h;sys/un.h" HAVE_SYS_UN_H)
-CHECK_INCLUDE_FILES (vis.h HAVE_VIS_H)
-CHECK_INCLUDE_FILES (wchar.h HAVE_WCHAR_H)
-CHECK_INCLUDE_FILES (wctype.h HAVE_WCTYPE_H)
-
-IF(HAVE_SYS_STREAM_H)
- # Needs sys/stream.h on Solaris
- CHECK_INCLUDE_FILES ("sys/stream.h;sys/ptem.h" HAVE_SYS_PTEM_H)
-ELSE()
- CHECK_INCLUDE_FILES (sys/ptem.h HAVE_SYS_PTEM_H)
-ENDIF()
-
-# Figure out threading library
-#
-FIND_PACKAGE (Threads)
-
-FUNCTION(MY_CHECK_PTHREAD_ONCE_INIT)
- CHECK_C_COMPILER_FLAG("-Werror" HAVE_WERROR_FLAG)
- IF(NOT HAVE_WERROR_FLAG)
- RETURN()
- ENDIF()
- SET(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror")
- CHECK_C_SOURCE_COMPILES("
- #include <pthread.h>
- void foo(void) {}
- int main()
- {
- pthread_once_t once_control = PTHREAD_ONCE_INIT;
- pthread_once(&once_control, foo);
- return 0;
- }"
- HAVE_PTHREAD_ONCE_INIT
- )
- # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6611808
- IF(NOT HAVE_PTHREAD_ONCE_INIT)
- CHECK_C_SOURCE_COMPILES("
- #include <pthread.h>
- void foo(void) {}
- int main()
- {
- pthread_once_t once_control = { PTHREAD_ONCE_INIT };
- pthread_once(&once_control, foo);
- return 0;
- }"
- HAVE_ARRAY_PTHREAD_ONCE_INIT
- )
- ENDIF()
- IF(HAVE_PTHREAD_ONCE_INIT)
- SET(PTHREAD_ONCE_INITIALIZER "PTHREAD_ONCE_INIT" PARENT_SCOPE)
- ENDIF()
- IF(HAVE_ARRAY_PTHREAD_ONCE_INIT)
- SET(PTHREAD_ONCE_INITIALIZER "{ PTHREAD_ONCE_INIT }" PARENT_SCOPE)
- ENDIF()
-ENDFUNCTION()
-
-IF(CMAKE_USE_PTHREADS_INIT)
- MY_CHECK_PTHREAD_ONCE_INIT()
-ENDIF()
-
-#
-# Tests for functions
-#
-#CHECK_FUNCTION_EXISTS (aiowait HAVE_AIOWAIT)
-CHECK_FUNCTION_EXISTS (aio_read HAVE_AIO_READ)
-CHECK_FUNCTION_EXISTS (alarm HAVE_ALARM)
-SET(HAVE_ALLOCA 1)
-CHECK_FUNCTION_EXISTS (backtrace HAVE_BACKTRACE)
-CHECK_FUNCTION_EXISTS (backtrace_symbols HAVE_BACKTRACE_SYMBOLS)
-CHECK_FUNCTION_EXISTS (backtrace_symbols_fd HAVE_BACKTRACE_SYMBOLS_FD)
-CHECK_FUNCTION_EXISTS (printstack HAVE_PRINTSTACK)
-CHECK_FUNCTION_EXISTS (bfill HAVE_BFILL)
-CHECK_FUNCTION_EXISTS (bmove HAVE_BMOVE)
-CHECK_FUNCTION_EXISTS (bsearch HAVE_BSEARCH)
-CHECK_FUNCTION_EXISTS (index HAVE_INDEX)
-CHECK_FUNCTION_EXISTS (bzero HAVE_BZERO)
-CHECK_FUNCTION_EXISTS (clock_gettime HAVE_CLOCK_GETTIME)
-CHECK_FUNCTION_EXISTS (cuserid HAVE_CUSERID)
-CHECK_FUNCTION_EXISTS (directio HAVE_DIRECTIO)
-CHECK_FUNCTION_EXISTS (_doprnt HAVE_DOPRNT)
-CHECK_FUNCTION_EXISTS (flockfile HAVE_FLOCKFILE)
-CHECK_FUNCTION_EXISTS (ftruncate HAVE_FTRUNCATE)
-CHECK_FUNCTION_EXISTS (getline HAVE_GETLINE)
-CHECK_FUNCTION_EXISTS (compress HAVE_COMPRESS)
-CHECK_FUNCTION_EXISTS (crypt HAVE_CRYPT)
-CHECK_FUNCTION_EXISTS (dlerror HAVE_DLERROR)
-CHECK_FUNCTION_EXISTS (dlopen HAVE_DLOPEN)
-CHECK_FUNCTION_EXISTS (fchmod HAVE_FCHMOD)
-CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL)
-CHECK_FUNCTION_EXISTS (fconvert HAVE_FCONVERT)
-CHECK_FUNCTION_EXISTS (fdatasync HAVE_FDATASYNC)
-CHECK_SYMBOL_EXISTS(fdatasync "unistd.h" HAVE_DECL_FDATASYNC)
-CHECK_FUNCTION_EXISTS (fesetround HAVE_FESETROUND)
-CHECK_FUNCTION_EXISTS (fpsetmask HAVE_FPSETMASK)
-CHECK_FUNCTION_EXISTS (fseeko HAVE_FSEEKO)
-CHECK_FUNCTION_EXISTS (fsync HAVE_FSYNC)
-CHECK_FUNCTION_EXISTS (getcwd HAVE_GETCWD)
-CHECK_FUNCTION_EXISTS (gethostbyaddr_r HAVE_GETHOSTBYADDR_R)
-CHECK_FUNCTION_EXISTS (gethostbyname_r HAVE_GETHOSTBYNAME_R)
-CHECK_FUNCTION_EXISTS (gethrtime HAVE_GETHRTIME)
-CHECK_FUNCTION_EXISTS (getnameinfo HAVE_GETNAMEINFO)
-CHECK_FUNCTION_EXISTS (getpass HAVE_GETPASS)
-CHECK_FUNCTION_EXISTS (getpassphrase HAVE_GETPASSPHRASE)
-CHECK_FUNCTION_EXISTS (getpwnam HAVE_GETPWNAM)
-CHECK_FUNCTION_EXISTS (getpwuid HAVE_GETPWUID)
-CHECK_FUNCTION_EXISTS (getrlimit HAVE_GETRLIMIT)
-CHECK_FUNCTION_EXISTS (getrusage HAVE_GETRUSAGE)
-CHECK_FUNCTION_EXISTS (getwd HAVE_GETWD)
-CHECK_FUNCTION_EXISTS (gmtime_r HAVE_GMTIME_R)
-CHECK_FUNCTION_EXISTS (initgroups HAVE_INITGROUPS)
-CHECK_FUNCTION_EXISTS (issetugid HAVE_ISSETUGID)
-CHECK_FUNCTION_EXISTS (ldiv HAVE_LDIV)
-CHECK_FUNCTION_EXISTS (localtime_r HAVE_LOCALTIME_R)
-CHECK_FUNCTION_EXISTS (longjmp HAVE_LONGJMP)
-CHECK_FUNCTION_EXISTS (lstat HAVE_LSTAT)
-CHECK_FUNCTION_EXISTS (madvise HAVE_MADVISE)
-CHECK_FUNCTION_EXISTS (mallinfo HAVE_MALLINFO)
-CHECK_FUNCTION_EXISTS (memcpy HAVE_MEMCPY)
-CHECK_FUNCTION_EXISTS (memmove HAVE_MEMMOVE)
-CHECK_FUNCTION_EXISTS (mkstemp HAVE_MKSTEMP)
-CHECK_FUNCTION_EXISTS (mlock HAVE_MLOCK)
-CHECK_FUNCTION_EXISTS (mlockall HAVE_MLOCKALL)
-CHECK_FUNCTION_EXISTS (mmap HAVE_MMAP)
-CHECK_FUNCTION_EXISTS (mmap64 HAVE_MMAP64)
-CHECK_FUNCTION_EXISTS (perror HAVE_PERROR)
-CHECK_FUNCTION_EXISTS (poll HAVE_POLL)
-CHECK_FUNCTION_EXISTS (port_create HAVE_PORT_CREATE)
-CHECK_FUNCTION_EXISTS (posix_fallocate HAVE_POSIX_FALLOCATE)
-CHECK_FUNCTION_EXISTS (pread HAVE_PREAD)
-CHECK_FUNCTION_EXISTS (pthread_attr_create HAVE_PTHREAD_ATTR_CREATE)
-CHECK_FUNCTION_EXISTS (pthread_attr_getstacksize HAVE_PTHREAD_ATTR_GETSTACKSIZE)
-CHECK_FUNCTION_EXISTS (pthread_attr_setscope HAVE_PTHREAD_ATTR_SETSCOPE)
-CHECK_FUNCTION_EXISTS (pthread_attr_setstacksize HAVE_PTHREAD_ATTR_SETSTACKSIZE)
-CHECK_FUNCTION_EXISTS (pthread_condattr_create HAVE_PTHREAD_CONDATTR_CREATE)
-CHECK_FUNCTION_EXISTS (pthread_condattr_setclock HAVE_PTHREAD_CONDATTR_SETCLOCK)
-CHECK_FUNCTION_EXISTS (pthread_init HAVE_PTHREAD_INIT)
-CHECK_FUNCTION_EXISTS (pthread_key_delete HAVE_PTHREAD_KEY_DELETE)
-CHECK_FUNCTION_EXISTS (pthread_rwlock_rdlock HAVE_PTHREAD_RWLOCK_RDLOCK)
-CHECK_FUNCTION_EXISTS (pthread_sigmask HAVE_PTHREAD_SIGMASK)
-CHECK_FUNCTION_EXISTS (pthread_threadmask HAVE_PTHREAD_THREADMASK)
-CHECK_FUNCTION_EXISTS (pthread_yield_np HAVE_PTHREAD_YIELD_NP)
-CHECK_FUNCTION_EXISTS (putenv HAVE_PUTENV)
-CHECK_FUNCTION_EXISTS (readdir_r HAVE_READDIR_R)
-CHECK_FUNCTION_EXISTS (readlink HAVE_READLINK)
-CHECK_FUNCTION_EXISTS (re_comp HAVE_RE_COMP)
-CHECK_FUNCTION_EXISTS (regcomp HAVE_REGCOMP)
-CHECK_FUNCTION_EXISTS (realpath HAVE_REALPATH)
-CHECK_FUNCTION_EXISTS (rename HAVE_RENAME)
-CHECK_FUNCTION_EXISTS (rwlock_init HAVE_RWLOCK_INIT)
-CHECK_FUNCTION_EXISTS (sched_yield HAVE_SCHED_YIELD)
-CHECK_FUNCTION_EXISTS (setenv HAVE_SETENV)
-CHECK_FUNCTION_EXISTS (setlocale HAVE_SETLOCALE)
-CHECK_FUNCTION_EXISTS (setfd HAVE_SETFD)
-CHECK_FUNCTION_EXISTS (sigaction HAVE_SIGACTION)
-CHECK_FUNCTION_EXISTS (sigthreadmask HAVE_SIGTHREADMASK)
-CHECK_FUNCTION_EXISTS (sigwait HAVE_SIGWAIT)
-CHECK_FUNCTION_EXISTS (sigaddset HAVE_SIGADDSET)
-CHECK_FUNCTION_EXISTS (sigemptyset HAVE_SIGEMPTYSET)
-CHECK_FUNCTION_EXISTS (sighold HAVE_SIGHOLD)
-CHECK_FUNCTION_EXISTS (sigset HAVE_SIGSET)
-CHECK_FUNCTION_EXISTS (sleep HAVE_SLEEP)
-CHECK_FUNCTION_EXISTS (snprintf HAVE_SNPRINTF)
-CHECK_FUNCTION_EXISTS (stpcpy HAVE_STPCPY)
-CHECK_FUNCTION_EXISTS (strcoll HAVE_STRCOLL)
-CHECK_FUNCTION_EXISTS (strerror HAVE_STRERROR)
-CHECK_FUNCTION_EXISTS (strlcpy HAVE_STRLCPY)
-CHECK_FUNCTION_EXISTS (strnlen HAVE_STRNLEN)
-CHECK_FUNCTION_EXISTS (strlcat HAVE_STRLCAT)
-CHECK_FUNCTION_EXISTS (strsignal HAVE_STRSIGNAL)
-CHECK_FUNCTION_EXISTS (fgetln HAVE_FGETLN)
-CHECK_FUNCTION_EXISTS (strpbrk HAVE_STRPBRK)
-CHECK_FUNCTION_EXISTS (strsep HAVE_STRSEP)
-CHECK_FUNCTION_EXISTS (strstr HAVE_STRSTR)
-CHECK_FUNCTION_EXISTS (strtok_r HAVE_STRTOK_R)
-CHECK_FUNCTION_EXISTS (strtol HAVE_STRTOL)
-CHECK_FUNCTION_EXISTS (strtoll HAVE_STRTOLL)
-CHECK_FUNCTION_EXISTS (strtoul HAVE_STRTOUL)
-CHECK_FUNCTION_EXISTS (strtoull HAVE_STRTOULL)
-CHECK_FUNCTION_EXISTS (strcasecmp HAVE_STRCASECMP)
-CHECK_FUNCTION_EXISTS (strncasecmp HAVE_STRNCASECMP)
-CHECK_FUNCTION_EXISTS (strdup HAVE_STRDUP)
-CHECK_FUNCTION_EXISTS (shmat HAVE_SHMAT)
-CHECK_FUNCTION_EXISTS (shmctl HAVE_SHMCTL)
-CHECK_FUNCTION_EXISTS (shmdt HAVE_SHMDT)
-CHECK_FUNCTION_EXISTS (shmget HAVE_SHMGET)
-CHECK_FUNCTION_EXISTS (tell HAVE_TELL)
-CHECK_FUNCTION_EXISTS (tempnam HAVE_TEMPNAM)
-CHECK_FUNCTION_EXISTS (thr_setconcurrency HAVE_THR_SETCONCURRENCY)
-CHECK_FUNCTION_EXISTS (thr_yield HAVE_THR_YIELD)
-CHECK_FUNCTION_EXISTS (vasprintf HAVE_VASPRINTF)
-CHECK_FUNCTION_EXISTS (vsnprintf HAVE_VSNPRINTF)
-CHECK_FUNCTION_EXISTS (vprintf HAVE_VPRINTF)
-CHECK_FUNCTION_EXISTS (valloc HAVE_VALLOC)
-CHECK_FUNCTION_EXISTS (memalign HAVE_MEMALIGN)
-CHECK_FUNCTION_EXISTS (chown HAVE_CHOWN)
-CHECK_FUNCTION_EXISTS (nl_langinfo HAVE_NL_LANGINFO)
-
-#--------------------------------------------------------------------
-# Support for WL#2373 (Use cycle counter for timing)
-#--------------------------------------------------------------------
-
-CHECK_INCLUDE_FILES(time.h HAVE_TIME_H)
-CHECK_INCLUDE_FILES(sys/time.h HAVE_SYS_TIME_H)
-CHECK_INCLUDE_FILES(sys/times.h HAVE_SYS_TIMES_H)
-CHECK_INCLUDE_FILES(asm/msr.h HAVE_ASM_MSR_H)
-#msr.h has rdtscll()
-
-CHECK_INCLUDE_FILES(ia64intrin.h HAVE_IA64INTRIN_H)
-
-CHECK_FUNCTION_EXISTS(times HAVE_TIMES)
-CHECK_FUNCTION_EXISTS(gettimeofday HAVE_GETTIMEOFDAY)
-CHECK_FUNCTION_EXISTS(read_real_time HAVE_READ_REAL_TIME)
-# This should work on AIX.
-
-CHECK_FUNCTION_EXISTS(ftime HAVE_FTIME)
-# This is still a normal call for milliseconds.
-
-CHECK_FUNCTION_EXISTS(time HAVE_TIME)
-# We can use time() on Macintosh if there is no ftime().
-
-CHECK_FUNCTION_EXISTS(rdtscll HAVE_RDTSCLL)
-# I doubt that we'll ever reach the check for this.
-
-
-#
-# Tests for symbols
-#
-
-CHECK_SYMBOL_EXISTS(sys_errlist "stdio.h" HAVE_SYS_ERRLIST)
-CHECK_SYMBOL_EXISTS(madvise "sys/mman.h" HAVE_DECL_MADVISE)
-CHECK_SYMBOL_EXISTS(tzname "time.h" HAVE_TZNAME)
-CHECK_SYMBOL_EXISTS(lrand48 "stdlib.h" HAVE_LRAND48)
-CHECK_SYMBOL_EXISTS(getpagesize "unistd.h" HAVE_GETPAGESIZE)
-CHECK_SYMBOL_EXISTS(TIOCGWINSZ "sys/ioctl.h" GWINSZ_IN_SYS_IOCTL)
-CHECK_SYMBOL_EXISTS(FIONREAD "sys/ioctl.h" FIONREAD_IN_SYS_IOCTL)
-CHECK_SYMBOL_EXISTS(TIOCSTAT "sys/ioctl.h" TIOCSTAT_IN_SYS_IOCTL)
-CHECK_SYMBOL_EXISTS(gettimeofday "sys/time.h" HAVE_GETTIMEOFDAY)
-
-CHECK_SYMBOL_EXISTS(finite "math.h" HAVE_FINITE_IN_MATH_H)
-IF(HAVE_FINITE_IN_MATH_H)
- SET(HAVE_FINITE TRUE CACHE INTERNAL "")
-ELSE()
- CHECK_SYMBOL_EXISTS(finite "ieeefp.h" HAVE_FINITE)
-ENDIF()
-CHECK_SYMBOL_EXISTS(log2 math.h HAVE_LOG2)
-CHECK_SYMBOL_EXISTS(isnan math.h HAVE_ISNAN)
-CHECK_SYMBOL_EXISTS(rint math.h HAVE_RINT)
-
-# isinf() prototype not found on Solaris
-CHECK_CXX_SOURCE_COMPILES(
-"#include <math.h>
-int main() {
- isinf(0.0);
- return 0;
-}" HAVE_ISINF)
-
-
-
-#
-# Test for endianess
-#
-INCLUDE(TestBigEndian)
-IF(APPLE)
- # Cannot run endian test on universal PPC/Intel binaries
- # would return inconsistent result.
- # config.h.cmake includes a special #ifdef for Darwin
-ELSE()
- TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
-ENDIF()
-
-#
-# Tests for type sizes (and presence)
-#
-INCLUDE (CheckTypeSize)
-set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
- -D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64
- -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS)
-SET(CMAKE_EXTRA_INCLUDE_FILES signal.h)
-MY_CHECK_TYPE_SIZE(sigset_t SIGSET_T)
-IF(NOT SIZEOF_SIGSET_T)
- SET(sigset_t int)
-ENDIF()
-MY_CHECK_TYPE_SIZE(mode_t MODE_T)
-IF(NOT SIZEOF_MODE_T)
- SET(mode_t int)
-ENDIF()
-
-
-IF(HAVE_STDINT_H)
- SET(CMAKE_EXTRA_INCLUDE_FILES stdint.h)
-ENDIF(HAVE_STDINT_H)
-
-SET(HAVE_VOIDP 1)
-SET(HAVE_CHARP 1)
-SET(HAVE_LONG 1)
-SET(HAVE_SIZE_T 1)
-
-IF(NOT APPLE)
-MY_CHECK_TYPE_SIZE("void *" VOIDP)
-MY_CHECK_TYPE_SIZE("char *" CHARP)
-MY_CHECK_TYPE_SIZE(long LONG)
-MY_CHECK_TYPE_SIZE(size_t SIZE_T)
-ENDIF()
-
-MY_CHECK_TYPE_SIZE(char CHAR)
-MY_CHECK_TYPE_SIZE(short SHORT)
-MY_CHECK_TYPE_SIZE(int INT)
-MY_CHECK_TYPE_SIZE("long long" LONG_LONG)
-SET(CMAKE_EXTRA_INCLUDE_FILES stdio.h sys/types.h)
-MY_CHECK_TYPE_SIZE(off_t OFF_T)
-MY_CHECK_TYPE_SIZE(uchar UCHAR)
-MY_CHECK_TYPE_SIZE(uint UINT)
-MY_CHECK_TYPE_SIZE(ulong ULONG)
-MY_CHECK_TYPE_SIZE(int8 INT8)
-MY_CHECK_TYPE_SIZE(uint8 UINT8)
-MY_CHECK_TYPE_SIZE(int16 INT16)
-MY_CHECK_TYPE_SIZE(uint16 UINT16)
-MY_CHECK_TYPE_SIZE(int32 INT32)
-MY_CHECK_TYPE_SIZE(uint32 UINT32)
-MY_CHECK_TYPE_SIZE(u_int32_t U_INT32_T)
-MY_CHECK_TYPE_SIZE(int64 INT64)
-MY_CHECK_TYPE_SIZE(uint64 UINT64)
-SET (CMAKE_EXTRA_INCLUDE_FILES sys/types.h)
-MY_CHECK_TYPE_SIZE(bool BOOL)
-SET(CMAKE_EXTRA_INCLUDE_FILES)
-IF(HAVE_SYS_SOCKET_H)
- SET(CMAKE_EXTRA_INCLUDE_FILES sys/socket.h)
-ENDIF(HAVE_SYS_SOCKET_H)
-MY_CHECK_TYPE_SIZE(socklen_t SOCKLEN_T)
-SET(CMAKE_EXTRA_INCLUDE_FILES)
-
-IF(HAVE_IEEEFP_H)
- SET(CMAKE_EXTRA_INCLUDE_FILES ieeefp.h)
- MY_CHECK_TYPE_SIZE(fp_except FP_EXCEPT)
-ENDIF()
-
-
-#
-# Code tests
-#
-
-CHECK_C_SOURCE_COMPILES("
-#ifdef _WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#endif
-int main()
-{
- getaddrinfo( 0, 0, 0, 0);
- return 0;
-}"
-HAVE_GETADDRINFO)
-
-CHECK_C_SOURCE_COMPILES("
-#ifdef _WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#endif
-int main()
-{
- select(0,0,0,0,0);
- return 0;
-}"
-HAVE_SELECT)
-
-#
-# Check if timespec has ts_sec and ts_nsec fields
-#
-
-CHECK_C_SOURCE_COMPILES("
-#include <pthread.h>
-
-int main(int ac, char **av)
-{
- struct timespec abstime;
- abstime.ts_sec = time(NULL)+1;
- abstime.ts_nsec = 0;
-}
-" HAVE_TIMESPEC_TS_SEC)
-
-
-#
-# Check return type of qsort()
-#
-CHECK_C_SOURCE_COMPILES("
-#include <stdlib.h>
-#ifdef __cplusplus
-extern \"C\"
-#endif
-void qsort(void *base, size_t nel, size_t width,
- int (*compar) (const void *, const void *));
-int main(int ac, char **av) {}
-" QSORT_TYPE_IS_VOID)
-IF(QSORT_TYPE_IS_VOID)
- SET(RETQSORTTYPE "void")
-ELSE(QSORT_TYPE_IS_VOID)
- SET(RETQSORTTYPE "int")
-ENDIF(QSORT_TYPE_IS_VOID)
-
-IF(WIN32)
-SET(SOCKET_SIZE_TYPE int)
-ELSE()
-CHECK_CXX_SOURCE_COMPILES("
-#include <sys/socket.h>
-int main(int argc, char **argv)
-{
- getsockname(0,0,(socklen_t *) 0);
- return 0;
-}"
-HAVE_SOCKET_SIZE_T_AS_socklen_t)
-
-IF(HAVE_SOCKET_SIZE_T_AS_socklen_t)
- SET(SOCKET_SIZE_TYPE socklen_t)
-ELSE()
- CHECK_CXX_SOURCE_COMPILES("
- #include <sys/socket.h>
- int main(int argc, char **argv)
- {
- getsockname(0,0,(int *) 0);
- return 0;
- }"
- HAVE_SOCKET_SIZE_T_AS_int)
- IF(HAVE_SOCKET_SIZE_T_AS_int)
- SET(SOCKET_SIZE_TYPE int)
- ELSE()
- CHECK_CXX_SOURCE_COMPILES("
- #include <sys/socket.h>
- int main(int argc, char **argv)
- {
- getsockname(0,0,(size_t *) 0);
- return 0;
- }"
- HAVE_SOCKET_SIZE_T_AS_size_t)
- IF(HAVE_SOCKET_SIZE_T_AS_size_t)
- SET(SOCKET_SIZE_TYPE size_t)
- ELSE()
- SET(SOCKET_SIZE_TYPE int)
- ENDIF()
- ENDIF()
-ENDIF()
-ENDIF()
-
-CHECK_CXX_SOURCE_COMPILES("
-#include <pthread.h>
-int main()
-{
- pthread_yield();
- return 0;
-}
-" HAVE_PTHREAD_YIELD_ZERO_ARG)
-
-IF(NOT STACK_DIRECTION)
- IF(CMAKE_CROSSCOMPILING)
- MESSAGE(FATAL_ERROR
- "STACK_DIRECTION is not defined. Please specify -DSTACK_DIRECTION=1 "
- "or -DSTACK_DIRECTION=-1 when calling cmake.")
- ELSE()
- TRY_RUN(STACKDIR_RUN_RESULT STACKDIR_COMPILE_RESULT
- ${CMAKE_BINARY_DIR}
- ${CMAKE_SOURCE_DIR}/cmake/stack_direction.c
- )
- # Test program returns 0 (down) or 1 (up).
- # Convert to -1 or 1
- IF(STACKDIR_RUN_RESULT EQUAL 0)
- SET(STACK_DIRECTION -1 CACHE INTERNAL "Stack grows direction")
- ELSE()
- SET(STACK_DIRECTION 1 CACHE INTERNAL "Stack grows direction")
- ENDIF()
- MESSAGE(STATUS "Checking stack direction : ${STACK_DIRECTION}")
- ENDIF()
-ENDIF()
-
-#
-# Check return type of signal handlers
-#
-CHECK_C_SOURCE_COMPILES("
-#include <signal.h>
-#ifdef signal
-# undef signal
-#endif
-#ifdef __cplusplus
-extern \"C\" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-int main(int ac, char **av) {}
-" SIGNAL_RETURN_TYPE_IS_VOID)
-IF(SIGNAL_RETURN_TYPE_IS_VOID)
- SET(RETSIGTYPE void)
- SET(VOID_SIGHANDLER 1)
-ELSE(SIGNAL_RETURN_TYPE_IS_VOID)
- SET(RETSIGTYPE int)
-ENDIF(SIGNAL_RETURN_TYPE_IS_VOID)
-
-
-CHECK_INCLUDE_FILES("time.h;sys/time.h" TIME_WITH_SYS_TIME)
-CHECK_SYMBOL_EXISTS(O_NONBLOCK "unistd.h;fcntl.h" HAVE_FCNTL_NONBLOCK)
-IF(NOT HAVE_FCNTL_NONBLOCK)
- SET(NO_FCNTL_NONBLOCK 1)
-ENDIF()
-
-#
-# Test for how the C compiler does inline, if at all
-#
-CHECK_C_SOURCE_COMPILES("
-static inline int foo(){return 0;}
-int main(int argc, char *argv[]){return 0;}"
- C_HAS_inline)
-IF(NOT C_HAS_inline)
- CHECK_C_SOURCE_COMPILES("
- static __inline int foo(){return 0;}
- int main(int argc, char *argv[]){return 0;}"
- C_HAS___inline)
- SET(C_INLINE __inline)
-ENDIF()
-
-IF(NOT CMAKE_CROSSCOMPILING AND NOT MSVC)
- STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} processor)
- IF(processor MATCHES "86" OR processor MATCHES "amd64" OR processor MATCHES "x64")
- #Check for x86 PAUSE instruction
- # We have to actually try running the test program, because of a bug
- # in Solaris on x86_64, where it wrongly reports that PAUSE is not
- # supported when trying to run an application. See
- # http://bugs.opensolaris.org/bugdatabase/printableBug.do?bug_id=6478684
- CHECK_C_SOURCE_RUNS("
- int main()
- {
- __asm__ __volatile__ (\"pause\");
- return 0;
- }" HAVE_PAUSE_INSTRUCTION)
- ENDIF()
- IF (NOT HAVE_PAUSE_INSTRUCTION)
- CHECK_C_SOURCE_COMPILES("
- int main()
- {
- __asm__ __volatile__ (\"rep; nop\");
- return 0;
- }
- " HAVE_FAKE_PAUSE_INSTRUCTION)
- ENDIF()
-ENDIF()
-
-CHECK_SYMBOL_EXISTS(tcgetattr "termios.h" HAVE_TCGETATTR 1)
-
-#
-# Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
-#
-CHECK_C_SOURCE_COMPILES("
- #include <signal.h>
- int main(int ac, char **av)
- {
- sigset_t ss;
- struct sigaction sa;
- sigemptyset(&ss); sigsuspend(&ss);
- sigaction(SIGINT, &sa, (struct sigaction *) 0);
- sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
- }"
- HAVE_POSIX_SIGNALS)
-
-IF(NOT HAVE_POSIX_SIGNALS)
- CHECK_C_SOURCE_COMPILES("
- #include <signal.h>
- int main(int ac, char **av)
- {
- int mask = sigmask(SIGINT);
- sigsetmask(mask); sigblock(mask); sigpause(mask);
- }"
- HAVE_BSD_SIGNALS)
- IF (NOT HAVE_BSD_SIGNALS)
- CHECK_C_SOURCE_COMPILES("
- #include <signal.h>
- void foo() { }
- int main(int ac, char **av)
- {
- int mask = sigmask(SIGINT);
- sigset(SIGINT, foo); sigrelse(SIGINT);
- sighold(SIGINT); sigpause(SIGINT);
- }"
- HAVE_SVR3_SIGNALS)
- IF (NOT HAVE_SVR3_SIGNALS)
- SET(HAVE_V7_SIGNALS 1)
- ENDIF(NOT HAVE_SVR3_SIGNALS)
- ENDIF(NOT HAVE_BSD_SIGNALS)
-ENDIF(NOT HAVE_POSIX_SIGNALS)
-
-# Assume regular sprintf
-SET(SPRINTFS_RETURNS_INT 1)
-
-IF(CMAKE_COMPILER_IS_GNUCXX AND HAVE_CXXABI_H)
-CHECK_CXX_SOURCE_COMPILES("
- #include <cxxabi.h>
- int main(int argc, char **argv)
- {
- char *foo= 0; int bar= 0;
- foo= abi::__cxa_demangle(foo, foo, 0, &bar);
- return 0;
- }"
- HAVE_ABI_CXA_DEMANGLE)
-ENDIF()
-
-CHECK_C_SOURCE_COMPILES("
- int main(int argc, char **argv)
- {
- extern char *__bss_start;
- return __bss_start ? 1 : 0;
- }"
-HAVE_BSS_START)
-
-CHECK_C_SOURCE_COMPILES("
- int main()
- {
- extern void __attribute__((weak)) foo(void);
- return 0;
- }"
- HAVE_WEAK_SYMBOL
-)
-
-
-CHECK_CXX_SOURCE_COMPILES("
- #include <new>
- int main()
- {
- char *c = new char;
- return 0;
- }"
- HAVE_CXX_NEW
-)
-
-CHECK_CXX_SOURCE_COMPILES("
- #undef inline
- #if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
- #define _REENTRANT
- #endif
- #include <pthread.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <netdb.h>
- int main()
- {
-
- struct hostent *foo =
- gethostbyaddr_r((const char *) 0,
- 0, 0, (struct hostent *) 0, (char *) NULL, 0, (int *)0);
- return 0;
- }
- "
- HAVE_SOLARIS_STYLE_GETHOST)
-
-CHECK_CXX_SOURCE_COMPILES("
- #undef inline
- #if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
- #define _REENTRANT
- #endif
- #include <pthread.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <netdb.h>
- int main()
- {
- int ret = gethostbyname_r((const char *) 0,
- (struct hostent*) 0, (char*) 0, 0, (struct hostent **) 0, (int *) 0);
- return 0;
- }"
- HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-
-CHECK_CXX_SOURCE_COMPILES("
- #undef inline
- #if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
- #define _REENTRANT
- #endif
- #include <pthread.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <netdb.h>
- int main()
- {
- int ret = gethostbyname_r((const char *) 0, (struct hostent*) 0, (struct hostent_data*) 0);
- return 0;
- }"
- HAVE_GETHOSTBYNAME_R_RETURN_INT)
-
-
-# Use of ALARMs to wakeup on timeout on sockets
-#
-# This feature makes use of a mutex and is a scalability hog we
-# try to avoid using. However we need support for SO_SNDTIMEO and
-# SO_RCVTIMEO socket options for this to work. So we will check
-# if this feature is supported by a simple TRY_RUN macro. However
-# on some OS's there is support for setting those variables but
-# they are silently ignored. For those OS's we will not attempt
-# to use SO_SNDTIMEO and SO_RCVTIMEO even if it is said to work.
-# See Bug#29093 for the problem with SO_SND/RCVTIMEO on HP/UX.
-# To use alarm is simple, simply avoid setting anything.
-
-IF(WIN32)
- SET(HAVE_SOCKET_TIMEOUT 1)
-ELSEIF(CMAKE_SYSTEM MATCHES "HP-UX")
- SET(HAVE_SOCKET_TIMEOUT 0)
-ELSEIF(CMAKE_CROSSCOMPILING)
- SET(HAVE_SOCKET_TIMEOUT 0)
-ELSE()
-SET(CMAKE_REQUIRED_LIBRARIES ${LIBNSL} ${LIBSOCKET})
-CHECK_C_SOURCE_RUNS(
-"
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/time.h>
-
- int main()
- {
- int fd = socket(AF_INET, SOCK_STREAM, 0);
- struct timeval tv;
- int ret= 0;
- tv.tv_sec= 2;
- tv.tv_usec= 0;
- ret|= setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
- ret|= setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
- return !!ret;
- }
-" HAVE_SOCKET_TIMEOUT)
-ENDIF()
-
-SET(NO_ALARM "${HAVE_SOCKET_TIMEOUT}" CACHE BOOL
- "No need to use alarm to implement socket timeout")
-SET(SIGNAL_WITH_VIO_CLOSE "${HAVE_SOCKET_TIMEOUT}")
-MARK_AS_ADVANCED(NO_ALARM)
-
-
-IF(CMAKE_COMPILER_IS_GNUCXX)
-IF(WITH_ATOMIC_OPS STREQUAL "up")
- SET(MY_ATOMIC_MODE_DUMMY 1 CACHE BOOL "Assume single-CPU mode, no concurrency")
-ELSEIF(WITH_ATOMIC_OPS STREQUAL "rwlocks")
- SET(MY_ATOMIC_MODE_RWLOCK 1 CACHE BOOL "Use pthread rwlocks for atomic ops")
-ELSEIF(WITH_ATOMIC_OPS STREQUAL "smp")
-ELSEIF(NOT WITH_ATOMIC_OPS)
- CHECK_CXX_SOURCE_COMPILES("
- int main()
- {
- int foo= -10; int bar= 10;
- long long int foo64= -10; long long int bar64= 10;
- if (!__sync_fetch_and_add(&foo, bar) || foo)
- return -1;
- bar= __sync_lock_test_and_set(&foo, bar);
- if (bar || foo != 10)
- return -1;
- bar= __sync_val_compare_and_swap(&bar, foo, 15);
- if (bar)
- return -1;
- if (!__sync_fetch_and_add(&foo64, bar64) || foo64)
- return -1;
- bar64= __sync_lock_test_and_set(&foo64, bar64);
- if (bar64 || foo64 != 10)
- return -1;
- bar64= __sync_val_compare_and_swap(&bar64, foo, 15);
- if (bar64)
- return -1;
- return 0;
- }"
- HAVE_GCC_ATOMIC_BUILTINS)
-ELSE()
- MESSAGE(FATAL_ERROR "${WITH_ATOMIC_OPS} is not a valid value for WITH_ATOMIC_OPS!")
-ENDIF()
-ENDIF()
-
-SET(WITH_ATOMIC_LOCKS "${WITH_ATOMIC_LOCKS}" CACHE STRING
-"Implement atomic operations using pthread rwlocks or atomic CPU
-instructions for multi-processor or uniprocessor
-configuration. By default gcc built-in sync functions are used,
-if available and 'smp' configuration otherwise.")
-MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY)
-
-IF(WITH_VALGRIND)
- CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h"
- HAVE_VALGRIND_HEADERS)
- IF(HAVE_VALGRIND_HEADERS)
- SET(HAVE_VALGRIND 1)
- ENDIF()
-ENDIF()
-
-#--------------------------------------------------------------------
-# Check for IPv6 support
-#--------------------------------------------------------------------
-CHECK_INCLUDE_FILE(netinet/in6.h HAVE_NETINET_IN6_H)
-
-IF(UNIX)
- SET(CMAKE_EXTRA_INCLUDE_FILES sys/types.h netinet/in.h sys/socket.h)
- IF(HAVE_NETINET_IN6_H)
- SET(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} netinet/in6.h)
- ENDIF()
-ELSEIF(WIN32)
- SET(CMAKE_EXTRA_INCLUDE_FILES ${CMAKE_EXTRA_INCLUDE_FILES} winsock2.h ws2ipdef.h)
-ENDIF()
-
-MY_CHECK_STRUCT_SIZE("sockaddr_in6" SOCKADDR_IN6)
-MY_CHECK_STRUCT_SIZE("in6_addr" IN6_ADDR)
-
-IF(HAVE_STRUCT_SOCKADDR_IN6 OR HAVE_STRUCT_IN6_ADDR)
- SET(HAVE_IPV6 TRUE CACHE INTERNAL "")
-ENDIF()
-
-
-# Check for sockaddr_storage.ss_family
-# It is called differently under OS400 and older AIX
-
-CHECK_STRUCT_HAS_MEMBER("struct sockaddr_storage"
- ss_family "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_STORAGE_SS_FAMILY)
-IF(NOT HAVE_SOCKADDR_STORAGE_SS_FAMILY)
- CHECK_STRUCT_HAS_MEMBER("struct sockaddr_storage"
- __ss_family "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_STORAGE___SS_FAMILY)
- IF(HAVE_SOCKADDR_STORAGE___SS_FAMILY)
- SET(ss_family __ss_family)
- ENDIF()
-ENDIF()
-
-#
-# Check if struct sockaddr_in::sin_len is available.
-#
-
-CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in" sin_len
- "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_IN_SIN_LEN)
-
-#
-# Check if struct sockaddr_in6::sin6_len is available.
-#
-
-CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_len
- "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_IN6_SIN6_LEN)
-
-SET(CMAKE_EXTRA_INCLUDE_FILES)
-
-CHECK_STRUCT_HAS_MEMBER("struct dirent" d_ino "dirent.h" STRUCT_DIRENT_HAS_D_INO)
-CHECK_STRUCT_HAS_MEMBER("struct dirent" d_namlen "dirent.h" STRUCT_DIRENT_HAS_D_NAMLEN)
-SET(SPRINTF_RETURNS_INT 1)
diff --git a/dep/mysqllite/dbug/dbug.c b/dep/mysqllite/dbug/dbug.c
deleted file mode 100644
index 2c06eeff95a..00000000000
--- a/dep/mysqllite/dbug/dbug.c
+++ /dev/null
@@ -1,2284 +0,0 @@
-/******************************************************************************
- * *
- * N O T I C E *
- * *
- * Copyright Abandoned, 1987, Fred Fish *
- * *
- * *
- * This previously copyrighted work has been placed into the public *
- * domain by the author and may be freely used for any purpose, *
- * private or commercial. *
- * *
- * Because of the number of inquiries I was receiving about the use *
- * of this product in commercially developed works I have decided to *
- * simply make it public domain to further its unrestricted use. I *
- * specifically would be most happy to see this material become a *
- * part of the standard Unix distributions by AT&T and the Berkeley *
- * Computer Science Research Group, and a standard part of the GNU *
- * system from the Free Software Foundation. *
- * *
- * I would appreciate it, as a courtesy, if this notice is left in *
- * all copies and derivative works. Thank you. *
- * *
- * The author makes no warranty of any kind with respect to this *
- * product and explicitly disclaims any implied warranties of mer- *
- * chantability or fitness for any particular purpose. *
- * *
- ******************************************************************************
- */
-
-/*
- * FILE
- *
- * dbug.c runtime support routines for dbug package
- *
- * SCCS
- *
- * @(#)dbug.c 1.25 7/25/89
- *
- * DESCRIPTION
- *
- * These are the runtime support routines for the dbug package.
- * The dbug package has two main components; the user include
- * file containing various macro definitions, and the runtime
- * support routines which are called from the macro expansions.
- *
- * Externally visible functions in the runtime support module
- * use the naming convention pattern "_db_xx...xx_", thus
- * they are unlikely to collide with user defined function names.
- *
- * AUTHOR(S)
- *
- * Fred Fish (base code)
- * Enhanced Software Technologies, Tempe, AZ
- * asuvax!mcdphx!estinc!fnf
- *
- * Binayak Banerjee (profiling enhancements)
- * seismo!bpa!sjuvax!bbanerje
- *
- * Michael Widenius:
- * DBUG_DUMP - To dump a block of memory.
- * PUSH_FLAG "O" - To be used insted of "o" if we
- * want flushing after each write
- * PUSH_FLAG "A" - as 'O', but we will append to the out file instead
- * of creating a new one.
- * Check of malloc on entry/exit (option "S")
- *
- * Sergei Golubchik:
- * DBUG_EXECUTE_IF
- * incremental mode (-#+t:-d,info ...)
- * DBUG_SET, _db_explain_
- * thread-local settings
- * negative lists (-#-d,info => everything but "info")
- *
- * function/ syntax
- * (the logic is - think of a call stack as of a path.
- * "function" means only this function, "function/" means the hierarchy.
- * in the future, filters like function1/function2 could be supported.
- * following this logic glob(7) wildcards are supported.)
- *
- */
-
-/*
- We can't have SAFE_MUTEX defined here as this will cause recursion
- in pthread_mutex_lock
-*/
-
-#undef SAFE_MUTEX
-#include <my_global.h>
-#include <m_string.h>
-#include <errno.h>
-
-#ifdef HAVE_FNMATCH_H
-#include <fnmatch.h>
-#else
-#define fnmatch(A,B,C) strcmp(A,B)
-#endif
-
-#if defined(__WIN__)
-#include <process.h>
-#endif
-
-#ifndef DBUG_OFF
-
-
-/*
- * Manifest constants which may be "tuned" if desired.
- */
-
-#define PRINTBUF 1024 /* Print buffer size */
-#define INDENT 2 /* Indentation per trace level */
-#define MAXDEPTH 200 /* Maximum trace depth default */
-
-/*
- * The following flags are used to determine which
- * capabilities the user has enabled with the settings
- * push macro.
- *
- * TRACE_ON is also used in _db_stack_frame_->level
- * (until we add flags to _db_stack_frame_, increasing it by 4 bytes)
- */
-
-#define DEBUG_ON (1 << 1) /* Debug enabled */
-#define FILE_ON (1 << 2) /* File name print enabled */
-#define LINE_ON (1 << 3) /* Line number print enabled */
-#define DEPTH_ON (1 << 4) /* Function nest level print enabled */
-#define PROCESS_ON (1 << 5) /* Process name print enabled */
-#define NUMBER_ON (1 << 6) /* Number each line of output */
-#define PROFILE_ON (1 << 7) /* Print out profiling code */
-#define PID_ON (1 << 8) /* Identify each line with process id */
-#define TIMESTAMP_ON (1 << 9) /* timestamp every line of output */
-#define FLUSH_ON_WRITE (1 << 10) /* Flush on every write */
-#define OPEN_APPEND (1 << 11) /* Open for append */
-#define TRACE_ON ((uint)1 << 31) /* Trace enabled. MUST be the highest bit!*/
-
-#define TRACING (cs->stack->flags & TRACE_ON)
-#define DEBUGGING (cs->stack->flags & DEBUG_ON)
-#define PROFILING (cs->stack->flags & PROFILE_ON)
-
-/*
- * Typedefs to make things more obvious.
- */
-
-#define BOOLEAN my_bool
-
-/*
- * Make it easy to change storage classes if necessary.
- */
-
-#define IMPORT extern /* Names defined externally */
-#define EXPORT /* Allocated here, available globally */
-#define AUTO auto /* Names to be allocated on stack */
-#define REGISTER register /* Names to be placed in registers */
-
-/*
- * The default file for profiling. Could also add another flag
- * (G?) which allowed the user to specify this.
- *
- * If the automatic variables get allocated on the stack in
- * reverse order from their declarations, then define AUTOS_REVERSE to 1.
- * This is used by the code that keeps track of stack usage. For
- * forward allocation, the difference in the dbug frame pointers
- * represents stack used by the callee function. For reverse allocation,
- * the difference represents stack used by the caller function.
- *
- */
-
-#define PROF_FILE "dbugmon.out"
-#define PROF_EFMT "E\t%ld\t%s\n"
-#define PROF_SFMT "S\t%lx\t%lx\t%s\n"
-#define PROF_XFMT "X\t%ld\t%s\n"
-
-#ifdef M_I386 /* predefined by xenix 386 compiler */
-#define AUTOS_REVERSE 1
-#else
-#define AUTOS_REVERSE 0
-#endif
-
-/*
- * Externally supplied functions.
- */
-
-#ifndef HAVE_PERROR
-static void perror(); /* Fake system/library error print routine */
-#endif
-
-/*
- * The user may specify a list of functions to trace or
- * debug. These lists are kept in a linear linked list,
- * a very simple implementation.
- */
-
-struct link {
- struct link *next_link; /* Pointer to the next link */
- char flags;
- char str[1]; /* Pointer to link's contents */
-};
-
-/* flags for struct link and return flags of InList */
-#define SUBDIR 1 /* this MUST be 1 */
-#define INCLUDE 2
-#define EXCLUDE 4
-/* this is not a struct link flag, but only a return flags of InList */
-#define MATCHED 65536
-#define NOT_MATCHED 0
-
-/*
- * Debugging settings can be pushed or popped off of a
- * stack which is implemented as a linked list. Note
- * that the head of the list is the current settings and the
- * stack is pushed by adding a new settings to the head of the
- * list or popped by removing the first link.
- *
- * Note: if out_file is NULL, the other fields are not initialized at all!
- */
-
-struct settings {
- uint flags; /* Current settings flags */
- uint maxdepth; /* Current maximum trace depth */
- uint delay; /* Delay after each output line */
- uint sub_level; /* Sub this from code_state->level */
- FILE *out_file; /* Current output stream */
- FILE *prof_file; /* Current profiling stream */
- char name[FN_REFLEN]; /* Name of output file */
- struct link *functions; /* List of functions */
- struct link *p_functions; /* List of profiled functions */
- struct link *keywords; /* List of debug keywords */
- struct link *processes; /* List of process names */
- struct settings *next; /* Next settings in the list */
-};
-
-#define is_shared(S, V) ((S)->next && (S)->next->V == (S)->V)
-
-/*
- * Local variables not seen by user.
- */
-
-
-static BOOLEAN init_done= FALSE; /* Set to TRUE when initialization done */
-static struct settings init_settings;
-static const char *db_process= 0;/* Pointer to process name; argv[0] */
-my_bool _dbug_on_= TRUE; /* FALSE if no debugging at all */
-
-typedef struct _db_code_state_ {
- const char *process; /* Pointer to process name; usually argv[0] */
- const char *func; /* Name of current user function */
- const char *file; /* Name of current user file */
- struct _db_stack_frame_ *framep; /* Pointer to current frame */
- struct settings *stack; /* debugging settings */
- const char *jmpfunc; /* Remember current function for setjmp */
- const char *jmpfile; /* Remember current file for setjmp */
- int lineno; /* Current debugger output line number */
- uint level; /* Current function nesting level */
- int jmplevel; /* Remember nesting level at setjmp() */
-
-/*
- * The following variables are used to hold the state information
- * between the call to _db_pargs_() and _db_doprnt_(), during
- * expansion of the DBUG_PRINT macro. This is the only macro
- * that currently uses these variables.
- *
- * These variables are currently used only by _db_pargs_() and
- * _db_doprnt_().
- */
-
- uint u_line; /* User source code line number */
- int locked; /* If locked with _db_lock_file_ */
- const char *u_keyword; /* Keyword for current macro */
-} CODE_STATE;
-
-/*
- The test below is so we could call functions with DBUG_ENTER before
- my_thread_init().
-*/
-#define get_code_state_if_not_set_or_return if (!cs && !((cs=code_state()))) return
-#define get_code_state_or_return if (!((cs=code_state()))) return
-
- /* Handling lists */
-#define ListAdd(A,B,C) ListAddDel(A,B,C,INCLUDE)
-#define ListDel(A,B,C) ListAddDel(A,B,C,EXCLUDE)
-static struct link *ListAddDel(struct link *, const char *, const char *, int);
-static struct link *ListCopy(struct link *);
-static int InList(struct link *linkp,const char *cp);
-static uint ListFlags(struct link *linkp);
-static void FreeList(struct link *linkp);
-
- /* OpenClose debug output stream */
-static void DBUGOpenFile(CODE_STATE *,const char *, const char *, int);
-static void DBUGCloseFile(CODE_STATE *cs, FILE *fp);
- /* Push current debug settings */
-static void PushState(CODE_STATE *cs);
- /* Free memory associated with debug state. */
-static void FreeState (CODE_STATE *cs, struct settings *state, int free_state);
- /* Test for tracing enabled */
-static int DoTrace(CODE_STATE *cs);
-/*
- return values of DoTrace.
- Can also be used as bitmask: ret & DO_TRACE
-*/
-#define DO_TRACE 1
-#define DONT_TRACE 2
-#define ENABLE_TRACE 3
-#define DISABLE_TRACE 4
-
- /* Test to see if file is writable */
-#if defined(HAVE_ACCESS)
-static BOOLEAN Writable(const char *pathname);
- /* Change file owner and group */
-static void ChangeOwner(CODE_STATE *cs, char *pathname);
- /* Allocate memory for runtime support */
-#endif
-
-static void DoPrefix(CODE_STATE *cs, uint line);
-
-static char *DbugMalloc(size_t size);
-static const char *BaseName(const char *pathname);
-static void Indent(CODE_STATE *cs, int indent);
-static void DbugFlush(CODE_STATE *);
-static void DbugExit(const char *why);
-static const char *DbugStrTok(const char *s);
-static void DbugVfprintf(FILE *stream, const char* format, va_list args);
-
-/*
- * Miscellaneous printf format strings.
- */
-
-#define ERR_MISSING_RETURN "missing DBUG_RETURN or DBUG_VOID_RETURN macro in function \"%s\"\n"
-#define ERR_OPEN "%s: can't open debug output stream \"%s\": "
-#define ERR_CLOSE "%s: can't close debug file: "
-#define ERR_ABORT "%s: debugger aborting because %s\n"
-
-/*
- * Macros and defines for testing file accessibility under UNIX and MSDOS.
- */
-
-#undef EXISTS
-#if !defined(HAVE_ACCESS)
-#define EXISTS(pathname) (FALSE) /* Assume no existance */
-#define Writable(name) (TRUE)
-#else
-#define EXISTS(pathname) (access(pathname, F_OK) == 0)
-#define WRITABLE(pathname) (access(pathname, W_OK) == 0)
-#endif
-
-
-/*
-** Macros to allow dbugging with threads
-*/
-
-#include <my_pthread.h>
-static pthread_mutex_t THR_LOCK_dbug;
-
-static CODE_STATE *code_state(void)
-{
- CODE_STATE *cs, **cs_ptr;
-
- /*
- _dbug_on_ is reset if we don't plan to use any debug commands at all and
- we want to run on maximum speed
- */
- if (!_dbug_on_)
- return 0;
-
- if (!init_done)
- {
- init_done=TRUE;
- pthread_mutex_init(&THR_LOCK_dbug, NULL);
- bzero(&init_settings, sizeof(init_settings));
- init_settings.out_file=stderr;
- init_settings.flags=OPEN_APPEND;
- }
-
- if (!(cs_ptr= (CODE_STATE**) my_thread_var_dbug()))
- return 0; /* Thread not initialised */
- if (!(cs= *cs_ptr))
- {
- cs=(CODE_STATE*) DbugMalloc(sizeof(*cs));
- bzero((uchar*) cs,sizeof(*cs));
- cs->process= db_process ? db_process : "dbug";
- cs->func="?func";
- cs->file="?file";
- cs->stack=&init_settings;
- *cs_ptr= cs;
- }
- return cs;
-}
-
-/*
- * Translate some calls among different systems.
- */
-
-#ifdef HAVE_SLEEP
-/* sleep() wants seconds */
-#define Delay(A) sleep(((uint) A)/10)
-#else
-#define Delay(A) (0)
-#endif
-
-/*
- * FUNCTION
- *
- * _db_process_ give the name to the current process/thread
- *
- * SYNOPSIS
- *
- * VOID _process_(name)
- * char *name;
- *
- */
-
-void _db_process_(const char *name)
-{
- CODE_STATE *cs;
-
- if (!db_process)
- db_process= name;
-
- get_code_state_or_return;
- cs->process= name;
-}
-
-/*
- * FUNCTION
- *
- * DbugParse parse control string and set current debugger settings
- *
- * DESCRIPTION
- *
- * Given pointer to a debug control string in "control",
- * parses the control string, and sets
- * up a current debug settings.
- *
- * The debug control string is a sequence of colon separated fields
- * as follows:
- *
- * [+]<field_1>:<field_2>:...:<field_N>
- *
- * Each field consists of a mandatory flag character followed by
- * an optional "," and comma separated list of modifiers:
- *
- * [sign]flag[,modifier,modifier,...,modifier]
- *
- * See the manual for the list of supported signs, flags, and modifiers
- *
- * For convenience, any leading "-#" is stripped off.
- *
- * RETURN
- * 1 - a list of functions ("f" flag) was possibly changed
- * 0 - a list of functions was not changed
- */
-
-int DbugParse(CODE_STATE *cs, const char *control)
-{
- const char *end;
- int rel, f_used=0;
- struct settings *stack;
-
- stack= cs->stack;
-
- if (control[0] == '-' && control[1] == '#')
- control+=2;
-
- rel= control[0] == '+' || control[0] == '-';
- if ((!rel || (!stack->out_file && !stack->next)))
- {
- /* Free memory associated with the state before resetting its members */
- FreeState(cs, stack, 0);
- stack->flags= 0;
- stack->delay= 0;
- stack->maxdepth= 0;
- stack->sub_level= 0;
- stack->out_file= stderr;
- stack->prof_file= NULL;
- stack->functions= NULL;
- stack->p_functions= NULL;
- stack->keywords= NULL;
- stack->processes= NULL;
- }
- else if (!stack->out_file)
- {
- stack->flags= stack->next->flags;
- stack->delay= stack->next->delay;
- stack->maxdepth= stack->next->maxdepth;
- stack->sub_level= stack->next->sub_level;
- strcpy(stack->name, stack->next->name);
- stack->prof_file= stack->next->prof_file;
- if (stack->next == &init_settings)
- {
- /*
- Never share with the global parent - it can change under your feet.
-
- Reset out_file to stderr to prevent sharing of trace files between
- global and session settings.
- */
- stack->out_file= stderr;
- stack->functions= ListCopy(init_settings.functions);
- stack->p_functions= ListCopy(init_settings.p_functions);
- stack->keywords= ListCopy(init_settings.keywords);
- stack->processes= ListCopy(init_settings.processes);
- }
- else
- {
- stack->out_file= stack->next->out_file;
- stack->functions= stack->next->functions;
- stack->p_functions= stack->next->p_functions;
- stack->keywords= stack->next->keywords;
- stack->processes= stack->next->processes;
- }
- }
-
- end= DbugStrTok(control);
- while (control < end)
- {
- int c, sign= (*control == '+') ? 1 : (*control == '-') ? -1 : 0;
- if (sign) control++;
- c= *control++;
- if (*control == ',') control++;
- /* XXX when adding new cases here, don't forget _db_explain_ ! */
- switch (c) {
- case 'd':
- if (sign < 0 && control == end)
- {
- if (!is_shared(stack, keywords))
- FreeList(stack->keywords);
- stack->keywords=NULL;
- stack->flags &= ~DEBUG_ON;
- break;
- }
- if (rel && is_shared(stack, keywords))
- stack->keywords= ListCopy(stack->keywords);
- if (sign < 0)
- {
- if (DEBUGGING)
- stack->keywords= ListDel(stack->keywords, control, end);
- break;
- }
- stack->keywords= ListAdd(stack->keywords, control, end);
- stack->flags |= DEBUG_ON;
- break;
- case 'D':
- stack->delay= atoi(control);
- break;
- case 'f':
- f_used= 1;
- if (sign < 0 && control == end)
- {
- if (!is_shared(stack,functions))
- FreeList(stack->functions);
- stack->functions=NULL;
- break;
- }
- if (rel && is_shared(stack,functions))
- stack->functions= ListCopy(stack->functions);
- if (sign < 0)
- stack->functions= ListDel(stack->functions, control, end);
- else
- stack->functions= ListAdd(stack->functions, control, end);
- break;
- case 'F':
- if (sign < 0)
- stack->flags &= ~FILE_ON;
- else
- stack->flags |= FILE_ON;
- break;
- case 'i':
- if (sign < 0)
- stack->flags &= ~PID_ON;
- else
- stack->flags |= PID_ON;
- break;
- case 'L':
- if (sign < 0)
- stack->flags &= ~LINE_ON;
- else
- stack->flags |= LINE_ON;
- break;
- case 'n':
- if (sign < 0)
- stack->flags &= ~DEPTH_ON;
- else
- stack->flags |= DEPTH_ON;
- break;
- case 'N':
- if (sign < 0)
- stack->flags &= ~NUMBER_ON;
- else
- stack->flags |= NUMBER_ON;
- break;
- case 'A':
- case 'O':
- stack->flags |= FLUSH_ON_WRITE;
- /* fall through */
- case 'a':
- case 'o':
- if (sign < 0)
- {
- if (!is_shared(stack, out_file))
- DBUGCloseFile(cs, stack->out_file);
- stack->flags &= ~FLUSH_ON_WRITE;
- stack->out_file= stderr;
- break;
- }
- if (c == 'a' || c == 'A')
- stack->flags |= OPEN_APPEND;
- else
- stack->flags &= ~OPEN_APPEND;
- if (control != end)
- DBUGOpenFile(cs, control, end, stack->flags & OPEN_APPEND);
- else
- DBUGOpenFile(cs, "-",0,0);
- break;
- case 'p':
- if (sign < 0 && control == end)
- {
- if (!is_shared(stack,processes))
- FreeList(stack->processes);
- stack->processes=NULL;
- break;
- }
- if (rel && is_shared(stack, processes))
- stack->processes= ListCopy(stack->processes);
- if (sign < 0)
- stack->processes= ListDel(stack->processes, control, end);
- else
- stack->processes= ListAdd(stack->processes, control, end);
- break;
- case 'P':
- if (sign < 0)
- stack->flags &= ~PROCESS_ON;
- else
- stack->flags |= PROCESS_ON;
- break;
- case 'r':
- stack->sub_level= cs->level;
- break;
- case 't':
- if (sign < 0)
- {
- if (control != end)
- stack->maxdepth-= atoi(control);
- else
- stack->maxdepth= 0;
- }
- else
- {
- if (control != end)
- stack->maxdepth+= atoi(control);
- else
- stack->maxdepth= MAXDEPTH;
- }
- if (stack->maxdepth > 0)
- stack->flags |= TRACE_ON;
- else
- stack->flags &= ~TRACE_ON;
- break;
- case 'T':
- if (sign < 0)
- stack->flags &= ~TIMESTAMP_ON;
- else
- stack->flags |= TIMESTAMP_ON;
- break;
- }
- if (!*end)
- break;
- control=end+1;
- end= DbugStrTok(control);
- }
- return !rel || f_used;
-}
-
-#define framep_trace_flag(cs, frp) (frp ? \
- frp->level & TRACE_ON : \
- (ListFlags(cs->stack->functions) & INCLUDE) ? \
- 0 : (uint)TRACE_ON)
-
-void FixTraceFlags_helper(CODE_STATE *cs, const char *func,
- struct _db_stack_frame_ *framep)
-{
- if (framep->prev)
- FixTraceFlags_helper(cs, framep->func, framep->prev);
-
- cs->func= func;
- cs->level= framep->level & ~TRACE_ON;
- framep->level= cs->level | framep_trace_flag(cs, framep->prev);
- /*
- we don't set cs->framep correctly, even though DoTrace uses it.
- It's ok, because cs->framep may only affect DO_TRACE/DONT_TRACE return
- values, but we ignore them here anyway
- */
- switch(DoTrace(cs)) {
- case ENABLE_TRACE:
- framep->level|= TRACE_ON;
- break;
- case DISABLE_TRACE:
- framep->level&= ~TRACE_ON;
- break;
- }
-}
-
-#define fflags(cs) cs->stack->out_file ? ListFlags(cs->stack->functions) : TRACE_ON;
-
-void FixTraceFlags(uint old_fflags, CODE_STATE *cs)
-{
- const char *func;
- uint new_fflags, traceon, level;
- struct _db_stack_frame_ *framep;
-
- /*
- first (a.k.a. safety) check:
- if we haven't started tracing yet, no call stack at all - we're safe.
- */
- framep=cs->framep;
- if (framep == 0)
- return;
-
- /*
- Ok, the tracing has started, call stack isn't empty.
-
- second check: does the new list have a SUBDIR rule ?
- */
- new_fflags=fflags(cs);
- if (new_fflags & SUBDIR)
- goto yuck;
-
- /*
- Ok, new list doesn't use SUBDIR.
-
- third check: we do NOT need to re-scan if
- neither old nor new lists used SUBDIR flag and if a default behavior
- (whether an unlisted function is traced) hasn't changed.
- Default behavior depends on whether there're INCLUDE elements in the list.
- */
- if (!(old_fflags & SUBDIR) && !((new_fflags^old_fflags) & INCLUDE))
- return;
-
- /*
- Ok, old list may've used SUBDIR, or defaults could've changed.
-
- fourth check: are we inside a currently active SUBDIR rule ?
- go up the call stack, if TRACE_ON flag ever changes its value - we are.
- */
- for (traceon=framep->level; framep; framep=framep->prev)
- if ((traceon ^ framep->level) & TRACE_ON)
- goto yuck;
-
- /*
- Ok, TRACE_ON flag doesn't change in the call stack.
-
- fifth check: but is the top-most value equal to a default one ?
- */
- if (((traceon & TRACE_ON) != 0) == ((new_fflags & INCLUDE) == 0))
- return;
-
-yuck:
- /*
- Yuck! function list was changed, and one of the currently active rules
- was possibly affected. For example, a tracing could've been enabled or
- disabled for a function somewhere up the call stack.
- To react correctly, we must go up the call stack all the way to
- the top and re-match rules to set TRACE_ON bit correctly.
-
- We must traverse the stack forwards, not backwards.
- That's what a recursive helper is doing.
- It'll destroy two CODE_STATE fields, save them now.
- */
- func= cs->func;
- level= cs->level;
- FixTraceFlags_helper(cs, func, cs->framep);
- /* now we only need to restore CODE_STATE fields, and we're done */
- cs->func= func;
- cs->level= level;
-}
-
-/*
- * FUNCTION
- *
- * _db_set_ set current debugger settings
- *
- * SYNOPSIS
- *
- * VOID _db_set_(control)
- * char *control;
- *
- * DESCRIPTION
- *
- * Given pointer to a debug control string in "control",
- * parses the control string, and sets up a current debug
- * settings. Pushes a new debug settings if the current is
- * set to the initial debugger settings.
- *
- */
-
-void _db_set_(const char *control)
-{
- CODE_STATE *cs;
- uint old_fflags;
- get_code_state_or_return;
- old_fflags=fflags(cs);
- if (cs->stack == &init_settings)
- PushState(cs);
- if (DbugParse(cs, control))
- FixTraceFlags(old_fflags, cs);
-}
-
-/*
- * FUNCTION
- *
- * _db_push_ push current debugger settings and set up new one
- *
- * SYNOPSIS
- *
- * VOID _db_push_(control)
- * char *control;
- *
- * DESCRIPTION
- *
- * Given pointer to a debug control string in "control", pushes
- * the current debug settings, parses the control string, and sets
- * up a new debug settings with DbugParse()
- *
- */
-
-void _db_push_(const char *control)
-{
- CODE_STATE *cs;
- uint old_fflags;
- get_code_state_or_return;
- old_fflags=fflags(cs);
- PushState(cs);
- if (DbugParse(cs, control))
- FixTraceFlags(old_fflags, cs);
-}
-
-
-/**
- Returns TRUE if session-local settings have been set.
-*/
-
-int _db_is_pushed_()
-{
- CODE_STATE *cs= NULL;
- get_code_state_or_return FALSE;
- return (cs->stack != &init_settings);
-}
-
-/*
- * FUNCTION
- *
- * _db_set_init_ set initial debugger settings
- *
- * SYNOPSIS
- *
- * VOID _db_set_init_(control)
- * char *control;
- *
- * DESCRIPTION
- * see _db_set_
- *
- */
-
-void _db_set_init_(const char *control)
-{
- CODE_STATE tmp_cs;
- bzero((uchar*) &tmp_cs, sizeof(tmp_cs));
- tmp_cs.stack= &init_settings;
- tmp_cs.process= db_process ? db_process : "dbug";
- DbugParse(&tmp_cs, control);
-}
-
-/*
- * FUNCTION
- *
- * _db_pop_ pop the debug stack
- *
- * DESCRIPTION
- *
- * Pops the debug stack, returning the debug settings to its
- * condition prior to the most recent _db_push_ invocation.
- * Note that the pop will fail if it would remove the last
- * valid settings from the stack. This prevents user errors
- * in the push/pop sequence from screwing up the debugger.
- * Maybe there should be some kind of warning printed if the
- * user tries to pop too many states.
- *
- */
-
-void _db_pop_()
-{
- struct settings *discard;
- uint old_fflags;
- CODE_STATE *cs;
-
- get_code_state_or_return;
-
- discard= cs->stack;
- if (discard != &init_settings)
- {
- old_fflags=fflags(cs);
- cs->stack= discard->next;
- FreeState(cs, discard, 1);
- FixTraceFlags(old_fflags, cs);
- }
-}
-
-/*
- * FUNCTION
- *
- * _db_explain_ generates 'control' string for the current settings
- *
- * RETURN
- * 0 - ok
- * 1 - buffer too short, output truncated
- *
- */
-
-/* helper macros */
-#define char_to_buf(C) do { \
- *buf++=(C); \
- if (buf >= end) goto overflow; \
- } while (0)
-#define str_to_buf(S) do { \
- char_to_buf(','); \
- buf=strnmov(buf, (S), len+1); \
- if (buf >= end) goto overflow; \
- } while (0)
-#define list_to_buf(l, f) do { \
- struct link *listp=(l); \
- while (listp) \
- { \
- if (listp->flags & (f)) \
- { \
- str_to_buf(listp->str); \
- if (listp->flags & SUBDIR) \
- char_to_buf('/'); \
- } \
- listp=listp->next_link; \
- } \
- } while (0)
-#define int_to_buf(i) do { \
- char b[50]; \
- int10_to_str((i), b, 10); \
- str_to_buf(b); \
- } while (0)
-#define colon_to_buf do { \
- if (buf != start) char_to_buf(':'); \
- } while(0)
-#define op_int_to_buf(C, val, def) do { \
- if ((val) != (def)) \
- { \
- colon_to_buf; \
- char_to_buf((C)); \
- int_to_buf(val); \
- } \
- } while (0)
-#define op_intf_to_buf(C, val, def, cond) do { \
- if ((cond)) \
- { \
- colon_to_buf; \
- char_to_buf((C)); \
- if ((val) != (def)) int_to_buf(val); \
- } \
- } while (0)
-#define op_str_to_buf(C, val, cond) do { \
- if ((cond)) \
- { \
- char *s=(val); \
- colon_to_buf; \
- char_to_buf((C)); \
- if (*s) str_to_buf(s); \
- } \
- } while (0)
-#define op_list_to_buf(C, val, cond) do { \
- if ((cond)) \
- { \
- int f=ListFlags(val); \
- colon_to_buf; \
- char_to_buf((C)); \
- if (f & INCLUDE) \
- list_to_buf(val, INCLUDE); \
- if (f & EXCLUDE) \
- { \
- colon_to_buf; \
- char_to_buf('-'); \
- char_to_buf((C)); \
- list_to_buf(val, EXCLUDE); \
- } \
- } \
- } while (0)
-#define op_bool_to_buf(C, cond) do { \
- if ((cond)) \
- { \
- colon_to_buf; \
- char_to_buf((C)); \
- } \
- } while (0)
-
-int _db_explain_ (CODE_STATE *cs, char *buf, size_t len)
-{
- char *start=buf, *end=buf+len-4;
-
- get_code_state_if_not_set_or_return *buf=0;
-
- op_list_to_buf('d', cs->stack->keywords, DEBUGGING);
- op_int_to_buf ('D', cs->stack->delay, 0);
- op_list_to_buf('f', cs->stack->functions, cs->stack->functions);
- op_bool_to_buf('F', cs->stack->flags & FILE_ON);
- op_bool_to_buf('i', cs->stack->flags & PID_ON);
- op_list_to_buf('g', cs->stack->p_functions, PROFILING);
- op_bool_to_buf('L', cs->stack->flags & LINE_ON);
- op_bool_to_buf('n', cs->stack->flags & DEPTH_ON);
- op_bool_to_buf('N', cs->stack->flags & NUMBER_ON);
- op_str_to_buf(
- ((cs->stack->flags & FLUSH_ON_WRITE ? 0 : 32) |
- (cs->stack->flags & OPEN_APPEND ? 'A' : 'O')),
- cs->stack->name, cs->stack->out_file != stderr);
- op_list_to_buf('p', cs->stack->processes, cs->stack->processes);
- op_bool_to_buf('P', cs->stack->flags & PROCESS_ON);
- op_bool_to_buf('r', cs->stack->sub_level != 0);
- op_intf_to_buf('t', cs->stack->maxdepth, MAXDEPTH, TRACING);
- op_bool_to_buf('T', cs->stack->flags & TIMESTAMP_ON);
-
- *buf= '\0';
- return 0;
-
-overflow:
- *end++= '.';
- *end++= '.';
- *end++= '.';
- *end= '\0';
- return 1;
-}
-
-#undef char_to_buf
-#undef str_to_buf
-#undef list_to_buf
-#undef int_to_buf
-#undef colon_to_buf
-#undef op_int_to_buf
-#undef op_intf_to_buf
-#undef op_str_to_buf
-#undef op_list_to_buf
-#undef op_bool_to_buf
-
-/*
- * FUNCTION
- *
- * _db_explain_init_ explain initial debugger settings
- *
- * DESCRIPTION
- * see _db_explain_
- */
-
-int _db_explain_init_(char *buf, size_t len)
-{
- CODE_STATE cs;
- bzero((uchar*) &cs,sizeof(cs));
- cs.stack=&init_settings;
- return _db_explain_(&cs, buf, len);
-}
-
-/*
- * FUNCTION
- *
- * _db_enter_ process entry point to user function
- *
- * SYNOPSIS
- *
- * VOID _db_enter_(_func_, _file_, _line_, _stack_frame_)
- * char *_func_; points to current function name
- * char *_file_; points to current file name
- * int _line_; called from source line number
- * struct _db_stack_frame_ allocated on the caller's stack
- *
- * DESCRIPTION
- *
- * Called at the beginning of each user function to tell
- * the debugger that a new function has been entered.
- * Note that the pointers to the previous user function
- * name and previous user file name are stored on the
- * caller's stack (this is why the ENTER macro must be
- * the first "executable" code in a function, since it
- * allocates these storage locations). The previous nesting
- * level is also stored on the callers stack for internal
- * self consistency checks.
- *
- * Also prints a trace line if tracing is enabled and
- * increments the current function nesting depth.
- *
- * Note that this mechanism allows the debugger to know
- * what the current user function is at all times, without
- * maintaining an internal stack for the function names.
- *
- */
-
-void _db_enter_(const char *_func_, const char *_file_,
- uint _line_, struct _db_stack_frame_ *_stack_frame_)
-{
- int save_errno;
- CODE_STATE *cs;
- if (!((cs=code_state())))
- {
- _stack_frame_->level= 0; /* Set to avoid valgrind warnings if dbug is enabled later */
- _stack_frame_->prev= 0;
- return;
- }
- save_errno= errno;
-
- _stack_frame_->func= cs->func;
- _stack_frame_->file= cs->file;
- cs->func= _func_;
- cs->file= _file_;
- _stack_frame_->prev= cs->framep;
- _stack_frame_->level= ++cs->level | framep_trace_flag(cs, cs->framep);
- cs->framep= _stack_frame_;
-
- switch (DoTrace(cs)) {
- case ENABLE_TRACE:
- cs->framep->level|= TRACE_ON;
- if (!TRACING) break;
- /* fall through */
- case DO_TRACE:
- if (TRACING)
- {
- if (!cs->locked)
- pthread_mutex_lock(&THR_LOCK_dbug);
- DoPrefix(cs, _line_);
- Indent(cs, cs->level);
- (void) fprintf(cs->stack->out_file, ">%s\n", cs->func);
- DbugFlush(cs); /* This does a unlock */
- }
- break;
- case DISABLE_TRACE:
- cs->framep->level&= ~TRACE_ON;
- /* fall through */
- case DONT_TRACE:
- break;
- }
- errno=save_errno;
-}
-
-/*
- * FUNCTION
- *
- * _db_return_ process exit from user function
- *
- * SYNOPSIS
- *
- * VOID _db_return_(_line_, _stack_frame_)
- * int _line_; current source line number
- * struct _db_stack_frame_ allocated on the caller's stack
- *
- * DESCRIPTION
- *
- * Called just before user function executes an explicit or implicit
- * return. Prints a trace line if trace is enabled, decrements
- * the current nesting level, and restores the current function and
- * file names from the defunct function's stack.
- *
- */
-
-void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_)
-{
- int save_errno=errno;
- uint _slevel_= _stack_frame_->level & ~TRACE_ON;
- CODE_STATE *cs;
- get_code_state_or_return;
-
- if (cs->framep != _stack_frame_)
- {
- char buf[512];
- my_snprintf(buf, sizeof(buf), ERR_MISSING_RETURN, cs->func);
- DbugExit(buf);
- }
-
- if (DoTrace(cs) & DO_TRACE)
- {
- if (TRACING)
- {
- if (!cs->locked)
- pthread_mutex_lock(&THR_LOCK_dbug);
- DoPrefix(cs, _line_);
- Indent(cs, cs->level);
- (void) fprintf(cs->stack->out_file, "<%s\n", cs->func);
- DbugFlush(cs);
- }
- }
- /*
- Check to not set level < 0. This can happen if DBUG was disabled when
- function was entered and enabled in function.
- */
- cs->level= _slevel_ != 0 ? _slevel_ - 1 : 0;
- cs->func= _stack_frame_->func;
- cs->file= _stack_frame_->file;
- if (cs->framep != NULL)
- cs->framep= cs->framep->prev;
- errno=save_errno;
-}
-
-
-/*
- * FUNCTION
- *
- * _db_pargs_ log arguments for subsequent use by _db_doprnt_()
- *
- * SYNOPSIS
- *
- * VOID _db_pargs_(_line_, keyword)
- * int _line_;
- * char *keyword;
- *
- * DESCRIPTION
- *
- * The new universal printing macro DBUG_PRINT, which replaces
- * all forms of the DBUG_N macros, needs two calls to runtime
- * support routines. The first, this function, remembers arguments
- * that are used by the subsequent call to _db_doprnt_().
- *
- */
-
-void _db_pargs_(uint _line_, const char *keyword)
-{
- CODE_STATE *cs;
- get_code_state_or_return;
- cs->u_line= _line_;
- cs->u_keyword= keyword;
-}
-
-
-/*
- * FUNCTION
- *
- * _db_doprnt_ handle print of debug lines
- *
- * SYNOPSIS
- *
- * VOID _db_doprnt_(format, va_alist)
- * char *format;
- * va_dcl;
- *
- * DESCRIPTION
- *
- * When invoked via one of the DBUG macros, tests the current keyword
- * set by calling _db_pargs_() to see if that macro has been selected
- * for processing via the debugger control string, and if so, handles
- * printing of the arguments via the format string. The line number
- * of the DBUG macro in the source is found in u_line.
- *
- * Note that the format string SHOULD NOT include a terminating
- * newline, this is supplied automatically.
- *
- */
-
-#include <stdarg.h>
-
-void _db_doprnt_(const char *format,...)
-{
- va_list args;
- CODE_STATE *cs;
- get_code_state_or_return;
-
- va_start(args,format);
-
- if (_db_keyword_(cs, cs->u_keyword, 0))
- {
- int save_errno=errno;
- if (!cs->locked)
- pthread_mutex_lock(&THR_LOCK_dbug);
- DoPrefix(cs, cs->u_line);
- if (TRACING)
- Indent(cs, cs->level + 1);
- else
- (void) fprintf(cs->stack->out_file, "%s: ", cs->func);
- (void) fprintf(cs->stack->out_file, "%s: ", cs->u_keyword);
- DbugVfprintf(cs->stack->out_file, format, args);
- DbugFlush(cs);
- errno=save_errno;
- }
- va_end(args);
-}
-
-/*
- * This function is intended as a
- * vfprintf clone with consistent, platform independent output for
- * problematic formats like %p, %zd and %lld.
- */
-static void DbugVfprintf(FILE *stream, const char* format, va_list args)
-{
- char cvtbuf[1024];
- (void) my_vsnprintf(cvtbuf, sizeof(cvtbuf), format, args);
- (void) fprintf(stream, "%s\n", cvtbuf);
-}
-
-
-/*
- * FUNCTION
- *
- * _db_dump_ dump a string in hex
- *
- * SYNOPSIS
- *
- * void _db_dump_(_line_,keyword,memory,length)
- * int _line_; current source line number
- * char *keyword;
- * char *memory; Memory to print
- * int length; Bytes to print
- *
- * DESCRIPTION
- * Dump N characters in a binary array.
- * Is used to examine corrupted memory or arrays.
- */
-
-void _db_dump_(uint _line_, const char *keyword,
- const unsigned char *memory, size_t length)
-{
- int pos;
- CODE_STATE *cs;
- get_code_state_or_return;
-
- if (_db_keyword_(cs, keyword, 0))
- {
- if (!cs->locked)
- pthread_mutex_lock(&THR_LOCK_dbug);
- DoPrefix(cs, _line_);
- if (TRACING)
- {
- Indent(cs, cs->level + 1);
- pos= min(max(cs->level-cs->stack->sub_level,0)*INDENT,80);
- }
- else
- {
- fprintf(cs->stack->out_file, "%s: ", cs->func);
- }
- (void) fprintf(cs->stack->out_file, "%s: Memory: 0x%lx Bytes: (%ld)\n",
- keyword, (ulong) memory, (long) length);
-
- pos=0;
- while (length-- > 0)
- {
- uint tmp= *((unsigned char*) memory++);
- if ((pos+=3) >= 80)
- {
- fputc('\n',cs->stack->out_file);
- pos=3;
- }
- fputc(_dig_vec_upper[((tmp >> 4) & 15)], cs->stack->out_file);
- fputc(_dig_vec_upper[tmp & 15], cs->stack->out_file);
- fputc(' ',cs->stack->out_file);
- }
- (void) fputc('\n',cs->stack->out_file);
- DbugFlush(cs);
- }
-}
-
-
-/*
- * FUNCTION
- *
- * ListAddDel modify the list according to debug control string
- *
- * DESCRIPTION
- *
- * Given pointer to a comma separated list of strings in "cltp",
- * parses the list, and modifies "listp", returning a pointer
- * to the new list.
- *
- * The mode of operation is defined by "todo" parameter.
- *
- * If it is INCLUDE, elements (strings from "cltp") are added to the
- * list, they will have INCLUDE flag set. If the list already contains
- * the string in question, new element is not added, but a flag of
- * the existing element is adjusted (INCLUDE bit is set, EXCLUDE bit
- * is removed).
- *
- * If it is EXCLUDE, elements are added to the list with the EXCLUDE
- * flag set. If the list already contains the string in question,
- * it is removed, new element is not added.
- */
-
-static struct link *ListAddDel(struct link *head, const char *ctlp,
- const char *end, int todo)
-{
- const char *start;
- struct link **cur;
- size_t len;
- int subdir;
-
- ctlp--;
-next:
- while (++ctlp < end)
- {
- start= ctlp;
- subdir=0;
- while (ctlp < end && *ctlp != ',')
- ctlp++;
- len=ctlp-start;
- if (start[len-1] == '/')
- {
- len--;
- subdir=SUBDIR;
- }
- if (len == 0) continue;
- for (cur=&head; *cur; cur=&((*cur)->next_link))
- {
- if (!strncmp((*cur)->str, start, len))
- {
- if ((*cur)->flags & todo) /* same action ? */
- (*cur)->flags|= subdir; /* just merge the SUBDIR flag */
- else if (todo == EXCLUDE)
- {
- struct link *delme=*cur;
- *cur=(*cur)->next_link;
- free((void*) delme);
- }
- else
- {
- (*cur)->flags&=~(EXCLUDE & SUBDIR);
- (*cur)->flags|=INCLUDE | subdir;
- }
- goto next;
- }
- }
- *cur= (struct link *) DbugMalloc(sizeof(struct link)+len);
- memcpy((*cur)->str, start, len);
- (*cur)->str[len]=0;
- (*cur)->flags=todo | subdir;
- (*cur)->next_link=0;
- }
- return head;
-}
-
-/*
- * FUNCTION
- *
- * ListCopy make a copy of the list
- *
- * SYNOPSIS
- *
- * static struct link *ListCopy(orig)
- * struct link *orig;
- *
- * DESCRIPTION
- *
- * Given pointer to list, which contains a copy of every element from
- * the original list.
- *
- * the orig pointer can be NULL
- *
- * Note that since each link is added at the head of the list,
- * the final list will be in "reverse order", which is not
- * significant for our usage here.
- *
- */
-
-static struct link *ListCopy(struct link *orig)
-{
- struct link *new_malloc;
- struct link *head;
- size_t len;
-
- head= NULL;
- while (orig != NULL)
- {
- len= strlen(orig->str);
- new_malloc= (struct link *) DbugMalloc(sizeof(struct link)+len);
- memcpy(new_malloc->str, orig->str, len);
- new_malloc->str[len]= 0;
- new_malloc->flags=orig->flags;
- new_malloc->next_link= head;
- head= new_malloc;
- orig= orig->next_link;
- }
- return head;
-}
-
-/*
- * FUNCTION
- *
- * InList test a given string for member of a given list
- *
- * DESCRIPTION
- *
- * Tests the string pointed to by "cp" to determine if it is in
- * the list pointed to by "linkp". Linkp points to the first
- * link in the list. If linkp is NULL or contains only EXCLUDE
- * elements then the string is treated as if it is in the list.
- * This may seem rather strange at first but leads to the desired
- * operation if no list is given. The net effect is that all
- * strings will be accepted when there is no list, and when there
- * is a list, only those strings in the list will be accepted.
- *
- * RETURN
- * combination of SUBDIR, INCLUDE, EXCLUDE, MATCHED flags
- *
- */
-
-static int InList(struct link *linkp, const char *cp)
-{
- int result;
-
- for (result=MATCHED; linkp != NULL; linkp= linkp->next_link)
- {
- if (!fnmatch(linkp->str, cp, 0))
- return linkp->flags;
- if (!(linkp->flags & EXCLUDE))
- result=NOT_MATCHED;
- if (linkp->flags & SUBDIR)
- result|=SUBDIR;
- }
- return result;
-}
-
-/*
- * FUNCTION
- *
- * ListFlags returns aggregated list flags (ORed over all elements)
- *
- */
-
-static uint ListFlags(struct link *linkp)
-{
- uint f;
- for (f=0; linkp != NULL; linkp= linkp->next_link)
- f|= linkp->flags;
- return f;
-}
-
-/*
- * FUNCTION
- *
- * PushState push current settings onto stack and set up new one
- *
- * SYNOPSIS
- *
- * static VOID PushState()
- *
- * DESCRIPTION
- *
- * Pushes the current settings on the settings stack, and creates
- * a new settings. The new settings is NOT initialized
- *
- * The settings stack is a linked list of settings, with the new
- * settings added at the head. This allows the stack to grow
- * to the limits of memory if necessary.
- *
- */
-
-static void PushState(CODE_STATE *cs)
-{
- struct settings *new_malloc;
-
- new_malloc= (struct settings *) DbugMalloc(sizeof(struct settings));
- bzero(new_malloc, sizeof(struct settings));
- new_malloc->next= cs->stack;
- cs->stack= new_malloc;
-}
-
-/*
- * FUNCTION
- *
- * FreeState Free memory associated with a struct state.
- *
- * SYNOPSIS
- *
- * static void FreeState (state)
- * struct state *state;
- * int free_state;
- *
- * DESCRIPTION
- *
- * Deallocates the memory allocated for various information in a
- * state. If free_state is set, also free 'state'
- *
- */
-static void FreeState(CODE_STATE *cs, struct settings *state, int free_state)
-{
- if (!is_shared(state, keywords))
- FreeList(state->keywords);
- if (!is_shared(state, functions))
- FreeList(state->functions);
- if (!is_shared(state, processes))
- FreeList(state->processes);
- if (!is_shared(state, p_functions))
- FreeList(state->p_functions);
-
- if (!is_shared(state, out_file))
- DBUGCloseFile(cs, state->out_file);
- else
- (void) fflush(state->out_file);
-
- if (!is_shared(state, prof_file))
- DBUGCloseFile(cs, state->prof_file);
- else
- (void) fflush(state->prof_file);
-
- if (free_state)
- free((void*) state);
-}
-
-
-/*
- * FUNCTION
- *
- * _db_end_ End debugging, freeing state stack memory.
- *
- * SYNOPSIS
- *
- * static VOID _db_end_ ()
- *
- * DESCRIPTION
- *
- * Ends debugging, de-allocating the memory allocated to the
- * state stack.
- *
- * To be called at the very end of the program.
- *
- */
-void _db_end_()
-{
- struct settings *discard;
- static struct settings tmp;
- CODE_STATE *cs;
- /*
- Set _dbug_on_ to be able to do full reset even when DEBUGGER_OFF was
- called after dbug was initialized
- */
- _dbug_on_= 1;
- get_code_state_or_return;
-
- while ((discard= cs->stack))
- {
- if (discard == &init_settings)
- break;
- cs->stack= discard->next;
- FreeState(cs, discard, 1);
- }
- tmp= init_settings;
-
- /* Use mutex lock to make it less likely anyone access out_file */
- pthread_mutex_lock(&THR_LOCK_dbug);
- init_settings.flags= OPEN_APPEND;
- init_settings.out_file= stderr;
- init_settings.prof_file= stderr;
- init_settings.maxdepth= 0;
- init_settings.delay= 0;
- init_settings.sub_level= 0;
- init_settings.functions= 0;
- init_settings.p_functions= 0;
- init_settings.keywords= 0;
- init_settings.processes= 0;
- pthread_mutex_unlock(&THR_LOCK_dbug);
- FreeState(cs, &tmp, 0);
-}
-
-
-/*
- * FUNCTION
- *
- * DoTrace check to see if tracing is current enabled
- *
- * DESCRIPTION
- *
- * Checks to see if dbug in this function is enabled based on
- * whether the maximum trace depth has been reached, the current
- * function is selected, and the current process is selected.
- *
- */
-
-static int DoTrace(CODE_STATE *cs)
-{
- if ((cs->stack->maxdepth == 0 || cs->level <= cs->stack->maxdepth) &&
- InList(cs->stack->processes, cs->process) & (MATCHED|INCLUDE))
- switch(InList(cs->stack->functions, cs->func)) {
- case INCLUDE|SUBDIR: return ENABLE_TRACE;
- case INCLUDE: return DO_TRACE;
- case MATCHED|SUBDIR:
- case NOT_MATCHED|SUBDIR:
- case MATCHED: return framep_trace_flag(cs, cs->framep) ?
- DO_TRACE : DONT_TRACE;
- case EXCLUDE:
- case NOT_MATCHED: return DONT_TRACE;
- case EXCLUDE|SUBDIR: return DISABLE_TRACE;
- }
- return DONT_TRACE;
-}
-
-FILE *_db_fp_(void)
-{
- CODE_STATE *cs;
- get_code_state_or_return NULL;
- return cs->stack->out_file;
-}
-
-/*
- * FUNCTION
- *
- * _db_keyword_ test keyword for member of keyword list
- *
- * DESCRIPTION
- *
- * Test a keyword to determine if it is in the currently active
- * keyword list. If strict=0, a keyword is accepted
- * if the list is null, otherwise it must match one of the list
- * members. When debugging is not on, no keywords are accepted.
- * After the maximum trace level is exceeded, no keywords are
- * accepted (this behavior subject to change). Additionally,
- * the current function and process must be accepted based on
- * their respective lists.
- *
- * Returns TRUE if keyword accepted, FALSE otherwise.
- *
- */
-
-BOOLEAN _db_keyword_(CODE_STATE *cs, const char *keyword, int strict)
-{
- get_code_state_if_not_set_or_return FALSE;
- strict=strict ? INCLUDE : INCLUDE|MATCHED;
-
- return DEBUGGING && DoTrace(cs) & DO_TRACE &&
- InList(cs->stack->keywords, keyword) & strict;
-}
-
-/*
- * FUNCTION
- *
- * Indent indent a line to the given indentation level
- *
- * SYNOPSIS
- *
- * static VOID Indent(indent)
- * int indent;
- *
- * DESCRIPTION
- *
- * Indent a line to the given level. Note that this is
- * a simple minded but portable implementation.
- * There are better ways.
- *
- * Also, the indent must be scaled by the compile time option
- * of character positions per nesting level.
- *
- */
-
-static void Indent(CODE_STATE *cs, int indent)
-{
- REGISTER int count;
-
- indent= max(indent-1-cs->stack->sub_level,0)*INDENT;
- for (count= 0; count < indent ; count++)
- {
- if ((count % INDENT) == 0)
- fputc('|',cs->stack->out_file);
- else
- fputc(' ',cs->stack->out_file);
- }
-}
-
-
-/*
- * FUNCTION
- *
- * FreeList free all memory associated with a linked list
- *
- * SYNOPSIS
- *
- * static VOID FreeList(linkp)
- * struct link *linkp;
- *
- * DESCRIPTION
- *
- * Given pointer to the head of a linked list, frees all
- * memory held by the list and the members of the list.
- *
- */
-
-static void FreeList(struct link *linkp)
-{
- REGISTER struct link *old;
-
- while (linkp != NULL)
- {
- old= linkp;
- linkp= linkp->next_link;
- free((void*) old);
- }
-}
-
-
-/*
- * FUNCTION
- *
- * DoPrefix print debugger line prefix prior to indentation
- *
- * SYNOPSIS
- *
- * static VOID DoPrefix(_line_)
- * int _line_;
- *
- * DESCRIPTION
- *
- * Print prefix common to all debugger output lines, prior to
- * doing indentation if necessary. Print such information as
- * current process name, current source file name and line number,
- * and current function nesting depth.
- *
- */
-
-static void DoPrefix(CODE_STATE *cs, uint _line_)
-{
- cs->lineno++;
- if (cs->stack->flags & PID_ON)
- {
- (void) fprintf(cs->stack->out_file, "%-7s: ", my_thread_name());
- }
- if (cs->stack->flags & NUMBER_ON)
- (void) fprintf(cs->stack->out_file, "%5d: ", cs->lineno);
- if (cs->stack->flags & TIMESTAMP_ON)
- {
-#ifdef __WIN__
- /* FIXME This doesn't give microseconds as in Unix case, and the resolution is
- in system ticks, 10 ms intervals. See my_getsystime.c for high res */
- SYSTEMTIME loc_t;
- GetLocalTime(&loc_t);
- (void) fprintf (cs->stack->out_file,
- /* "%04d-%02d-%02d " */
- "%02d:%02d:%02d.%06d ",
- /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
- loc_t.wHour, loc_t.wMinute, loc_t.wSecond, loc_t.wMilliseconds);
-#else
- struct timeval tv;
- struct tm *tm_p;
- if (gettimeofday(&tv, NULL) != -1)
- {
- if ((tm_p= localtime((const time_t *)&tv.tv_sec)))
- {
- (void) fprintf (cs->stack->out_file,
- /* "%04d-%02d-%02d " */
- "%02d:%02d:%02d.%06d ",
- /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
- tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec,
- (int) (tv.tv_usec));
- }
- }
-#endif
- }
- if (cs->stack->flags & PROCESS_ON)
- (void) fprintf(cs->stack->out_file, "%s: ", cs->process);
- if (cs->stack->flags & FILE_ON)
- (void) fprintf(cs->stack->out_file, "%14s: ", BaseName(cs->file));
- if (cs->stack->flags & LINE_ON)
- (void) fprintf(cs->stack->out_file, "%5d: ", _line_);
- if (cs->stack->flags & DEPTH_ON)
- (void) fprintf(cs->stack->out_file, "%4d: ", cs->level);
-}
-
-
-/*
- * FUNCTION
- *
- * DBUGOpenFile open new output stream for debugger output
- *
- * SYNOPSIS
- *
- * static VOID DBUGOpenFile(name)
- * char *name;
- *
- * DESCRIPTION
- *
- * Given name of a new file (or "-" for stdout) opens the file
- * and sets the output stream to the new file.
- *
- */
-
-static void DBUGOpenFile(CODE_STATE *cs,
- const char *name,const char *end,int append)
-{
- REGISTER FILE *fp;
- REGISTER BOOLEAN newfile;
-
- if (name != NULL)
- {
- if (end)
- {
- size_t len=end-name;
- memcpy(cs->stack->name, name, len);
- cs->stack->name[len]=0;
- }
- else
- strmov(cs->stack->name,name);
- name=cs->stack->name;
- if (strcmp(name, "-") == 0)
- {
- cs->stack->out_file= stdout;
- cs->stack->flags |= FLUSH_ON_WRITE;
- cs->stack->name[0]=0;
- }
- else
- {
- if (!Writable(name))
- {
- (void) fprintf(stderr, ERR_OPEN, cs->process, name);
- perror("");
- fflush(stderr);
- }
- else
- {
- newfile= !EXISTS(name);
- if (!(fp= fopen(name, append ? "a+" : "w")))
- {
- (void) fprintf(stderr, ERR_OPEN, cs->process, name);
- perror("");
- fflush(stderr);
- }
- else
- {
- cs->stack->out_file= fp;
- }
- }
- }
- }
-}
-
-/*
- * FUNCTION
- *
- * DBUGCloseFile close the debug output stream
- *
- * SYNOPSIS
- *
- * static VOID DBUGCloseFile(fp)
- * FILE *fp;
- *
- * DESCRIPTION
- *
- * Closes the debug output stream unless it is standard output
- * or standard error.
- *
- */
-
-static void DBUGCloseFile(CODE_STATE *cs, FILE *fp)
-{
- if (fp != NULL && fp != stderr && fp != stdout && fclose(fp) == EOF)
- {
- pthread_mutex_lock(&THR_LOCK_dbug);
- (void) fprintf(cs->stack->out_file, ERR_CLOSE, cs->process);
- perror("");
- DbugFlush(cs);
- }
-}
-
-
-/*
- * FUNCTION
- *
- * DbugExit print error message and exit
- *
- * SYNOPSIS
- *
- * static VOID DbugExit(why)
- * char *why;
- *
- * DESCRIPTION
- *
- * Prints error message using current process name, the reason for
- * aborting (typically out of memory), and exits with status 1.
- * This should probably be changed to use a status code
- * defined in the user's debugger include file.
- *
- */
-
-static void DbugExit(const char *why)
-{
- CODE_STATE *cs=code_state();
- (void) fprintf(stderr, ERR_ABORT, cs ? cs->process : "(null)", why);
- (void) fflush(stderr);
- DBUG_ABORT();
-}
-
-
-/*
- * FUNCTION
- *
- * DbugMalloc allocate memory for debugger runtime support
- *
- * SYNOPSIS
- *
- * static long *DbugMalloc(size)
- * int size;
- *
- * DESCRIPTION
- *
- * Allocate more memory for debugger runtime support functions.
- * Failure to to allocate the requested number of bytes is
- * immediately fatal to the current process. This may be
- * rather unfriendly behavior. It might be better to simply
- * print a warning message, freeze the current debugger cs,
- * and continue execution.
- *
- */
-
-static char *DbugMalloc(size_t size)
-{
- register char *new_malloc;
-
- if (!(new_malloc= (char*) malloc(size)))
- DbugExit("out of memory");
- return new_malloc;
-}
-
-
-/*
- * strtok lookalike - splits on ':', magically handles ::, :\ and :/
- */
-
-static const char *DbugStrTok(const char *s)
-{
- while (s[0] && (s[0] != ':' ||
- (s[1] == '\\' || s[1] == '/' || (s[1] == ':' && s++))))
- s++;
- return s;
-}
-
-
-/*
- * FUNCTION
- *
- * BaseName strip leading pathname components from name
- *
- * SYNOPSIS
- *
- * static char *BaseName(pathname)
- * char *pathname;
- *
- * DESCRIPTION
- *
- * Given pointer to a complete pathname, locates the base file
- * name at the end of the pathname and returns a pointer to
- * it.
- *
- */
-
-static const char *BaseName(const char *pathname)
-{
- register const char *base;
-
- base= strrchr(pathname, FN_LIBCHAR);
- if (base++ == NullS)
- base= pathname;
- return base;
-}
-
-
-/*
- * FUNCTION
- *
- * Writable test to see if a pathname is writable/creatable
- *
- * SYNOPSIS
- *
- * static BOOLEAN Writable(pathname)
- * char *pathname;
- *
- * DESCRIPTION
- *
- * Because the debugger might be linked in with a program that
- * runs with the set-uid-bit (suid) set, we have to be careful
- * about opening a user named file for debug output. This consists
- * of checking the file for write access with the real user id,
- * or checking the directory where the file will be created.
- *
- * Returns TRUE if the user would normally be allowed write or
- * create access to the named file. Returns FALSE otherwise.
- *
- */
-
-
-#ifndef Writable
-
-static BOOLEAN Writable(const char *pathname)
-{
- REGISTER BOOLEAN granted;
- REGISTER char *lastslash;
-
- granted= FALSE;
- if (EXISTS(pathname))
- {
- if (WRITABLE(pathname))
- granted= TRUE;
- }
- else
- {
- lastslash= strrchr(pathname, '/');
- if (lastslash != NULL)
- *lastslash= '\0';
- else
- pathname= ".";
- if (WRITABLE(pathname))
- granted= TRUE;
- if (lastslash != NULL)
- *lastslash= '/';
- }
- return granted;
-}
-#endif
-
-
-/*
- * FUNCTION
- *
- * _db_setjmp_ save debugger environment
- *
- * SYNOPSIS
- *
- * VOID _db_setjmp_()
- *
- * DESCRIPTION
- *
- * Invoked as part of the user's DBUG_SETJMP macro to save
- * the debugger environment in parallel with saving the user's
- * environment.
- *
- */
-
-#ifdef HAVE_LONGJMP
-
-EXPORT void _db_setjmp_()
-{
- CODE_STATE *cs;
- get_code_state_or_return;
-
- cs->jmplevel= cs->level;
- cs->jmpfunc= cs->func;
- cs->jmpfile= cs->file;
-}
-
-/*
- * FUNCTION
- *
- * _db_longjmp_ restore previously saved debugger environment
- *
- * SYNOPSIS
- *
- * VOID _db_longjmp_()
- *
- * DESCRIPTION
- *
- * Invoked as part of the user's DBUG_LONGJMP macro to restore
- * the debugger environment in parallel with restoring the user's
- * previously saved environment.
- *
- */
-
-EXPORT void _db_longjmp_()
-{
- CODE_STATE *cs;
- get_code_state_or_return;
-
- cs->level= cs->jmplevel;
- if (cs->jmpfunc)
- cs->func= cs->jmpfunc;
- if (cs->jmpfile)
- cs->file= cs->jmpfile;
-}
-#endif
-
-/*
- * FUNCTION
- *
- * perror perror simulation for systems that don't have it
- *
- * SYNOPSIS
- *
- * static VOID perror(s)
- * char *s;
- *
- * DESCRIPTION
- *
- * Perror produces a message on the standard error stream which
- * provides more information about the library or system error
- * just encountered. The argument string s is printed, followed
- * by a ':', a blank, and then a message and a newline.
- *
- * An undocumented feature of the unix perror is that if the string
- * 's' is a null string (NOT a NULL pointer!), then the ':' and
- * blank are not printed.
- *
- * This version just complains about an "unknown system error".
- *
- */
-
-#ifndef HAVE_PERROR
-static void perror(s)
-char *s;
-{
- if (s && *s != '\0')
- (void) fprintf(stderr, "%s: ", s);
- (void) fprintf(stderr, "<unknown system error>\n");
-}
-#endif /* HAVE_PERROR */
-
-
- /* flush dbug-stream, free mutex lock & wait delay */
- /* This is because some systems (MSDOS!!) dosn't flush fileheader */
- /* and dbug-file isn't readable after a system crash !! */
-
-static void DbugFlush(CODE_STATE *cs)
-{
- if (cs->stack->flags & FLUSH_ON_WRITE)
- {
- (void) fflush(cs->stack->out_file);
- if (cs->stack->delay)
- (void) Delay(cs->stack->delay);
- }
- if (!cs->locked)
- pthread_mutex_unlock(&THR_LOCK_dbug);
-} /* DbugFlush */
-
-
-/* For debugging */
-
-void _db_flush_()
-{
- CODE_STATE *cs= NULL;
- get_code_state_or_return;
- (void) fflush(cs->stack->out_file);
-}
-
-
-#ifndef __WIN__
-void _db_suicide_()
-{
- int retval;
- sigset_t new_mask;
- sigfillset(&new_mask);
-
- fprintf(stderr, "SIGKILL myself\n");
- fflush(stderr);
-
- retval= kill(getpid(), SIGKILL);
- assert(retval == 0);
- retval= sigsuspend(&new_mask);
- fprintf(stderr, "sigsuspend returned %d errno %d \n", retval, errno);
- assert(FALSE); /* With full signal mask, we should never return here. */
-}
-#endif /* ! __WIN__ */
-
-
-void _db_lock_file_()
-{
- CODE_STATE *cs;
- get_code_state_or_return;
- pthread_mutex_lock(&THR_LOCK_dbug);
- cs->locked=1;
-}
-
-void _db_unlock_file_()
-{
- CODE_STATE *cs;
- get_code_state_or_return;
- cs->locked=0;
- pthread_mutex_unlock(&THR_LOCK_dbug);
-}
-
-const char* _db_get_func_(void)
-{
- CODE_STATE *cs;
- get_code_state_or_return NULL;
- return cs->func;
-}
-
-
-#else
-
-/*
- * Dummy function, workaround for MySQL bug#14420 related
- * build failure on a platform where linking with an empty
- * archive fails.
- *
- * This block can be removed as soon as a fix for bug#14420
- * is implemented.
- */
-int i_am_a_dummy_function() {
- return 0;
-}
-
-#endif
diff --git a/dep/mysqllite/dbug/dbug_long.h b/dep/mysqllite/dbug/dbug_long.h
deleted file mode 100644
index 829df181ef1..00000000000
--- a/dep/mysqllite/dbug/dbug_long.h
+++ /dev/null
@@ -1,160 +0,0 @@
-#error This file is not used in MySQL - see ../include/my_dbug.h instead
-/******************************************************************************
- * *
- * N O T I C E *
- * *
- * Copyright Abandoned, 1987, Fred Fish *
- * *
- * *
- * This previously copyrighted work has been placed into the public *
- * domain by the author and may be freely used for any purpose, *
- * private or commercial. *
- * *
- * Because of the number of inquiries I was receiving about the use *
- * of this product in commercially developed works I have decided to *
- * simply make it public domain to further its unrestricted use. I *
- * specifically would be most happy to see this material become a *
- * part of the standard Unix distributions by AT&T and the Berkeley *
- * Computer Science Research Group, and a standard part of the GNU *
- * system from the Free Software Foundation. *
- * *
- * I would appreciate it, as a courtesy, if this notice is left in *
- * all copies and derivative works. Thank you. *
- * *
- * The author makes no warranty of any kind with respect to this *
- * product and explicitly disclaims any implied warranties of mer- *
- * chantability or fitness for any particular purpose. *
- * *
- ******************************************************************************
- */
-
-/*
- * FILE
- *
- * dbug.h user include file for programs using the dbug package
- *
- * SYNOPSIS
- *
- * #include <local/dbug.h>
- *
- * SCCS ID
- *
- * @(#)dbug.h 1.13 7/17/89
- *
- * DESCRIPTION
- *
- * Programs which use the dbug package must include this file.
- * It contains the appropriate macros to call support routines
- * in the dbug runtime library.
- *
- * To disable compilation of the macro expansions define the
- * preprocessor symbol "DBUG_OFF". This will result in null
- * macros expansions so that the resulting code will be smaller
- * and faster. (The difference may be smaller than you think
- * so this step is recommended only when absolutely necessary).
- * In general, tradeoffs between space and efficiency are
- * decided in favor of efficiency since space is seldom a
- * problem on the new machines).
- *
- * All externally visible symbol names follow the pattern
- * "_db_xxx..xx_" to minimize the possibility of a dbug package
- * symbol colliding with a user defined symbol.
- *
- * The DBUG_<N> style macros are obsolete and should not be used
- * in new code. Macros to map them to instances of DBUG_PRINT
- * are provided for compatibility with older code. They may go
- * away completely in subsequent releases.
- *
- * AUTHOR
- *
- * Fred Fish
- * (Currently employed by Motorola Computer Division, Tempe, Az.)
- * hao!noao!mcdsun!fnf
- * (602) 438-3614
- *
- */
-
-/*
- * Internally used dbug variables which must be global.
- */
-
-#ifndef DBUG_OFF
- extern int _db_on_; /* TRUE if debug currently enabled */
- extern FILE *_db_fp_; /* Current debug output stream */
- extern char *_db_process_; /* Name of current process */
- extern int _db_keyword_ (); /* Accept/reject keyword */
- extern void _db_push_ (); /* Push state, set up new state */
- extern void _db_pop_ (); /* Pop previous debug state */
- extern void _db_enter_ (); /* New user function entered */
- extern void _db_return_ (); /* User function return */
- extern void _db_pargs_ (); /* Remember args for line */
- extern void _db_doprnt_ (); /* Print debug output */
- extern void _db_setjmp_ (); /* Save debugger environment */
- extern void _db_longjmp_ (); /* Restore debugger environment */
- extern void _db_dump_(); /* Dump memory */
-# endif
-
-
-/*
- * These macros provide a user interface into functions in the
- * dbug runtime support library. They isolate users from changes
- * in the MACROS and/or runtime support.
- *
- * The symbols "__LINE__" and "__FILE__" are expanded by the
- * preprocessor to the current source file line number and file
- * name respectively.
- *
- * WARNING --- Because the DBUG_ENTER macro allocates space on
- * the user function's stack, it must precede any executable
- * statements in the user function.
- *
- */
-
-# ifdef DBUG_OFF
-# define DBUG_ENTER(a1)
-# define DBUG_RETURN(a1) return(a1)
-# define DBUG_VOID_RETURN return
-# define DBUG_EXECUTE(keyword,a1)
-# define DBUG_PRINT(keyword,arglist)
-# define DBUG_2(keyword,format) /* Obsolete */
-# define DBUG_3(keyword,format,a1) /* Obsolete */
-# define DBUG_4(keyword,format,a1,a2) /* Obsolete */
-# define DBUG_5(keyword,format,a1,a2,a3) /* Obsolete */
-# define DBUG_PUSH(a1)
-# define DBUG_POP()
-# define DBUG_PROCESS(a1)
-# define DBUG_FILE (stderr)
-# define DBUG_SETJMP setjmp
-# define DBUG_LONGJMP longjmp
-# define DBUG_DUMP(keyword,a1)
-# else
-# define DBUG_ENTER(a) \
- auto char *_db_func_; auto char *_db_file_; auto int _db_level_; \
- auto char **_db_framep_; \
- _db_enter_ (a,__FILE__,__LINE__,&_db_func_,&_db_file_,&_db_level_, \
- &_db_framep_)
-# define DBUG_LEAVE \
- (_db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_))
-# define DBUG_RETURN(a1) return (DBUG_LEAVE, (a1))
-/* define DBUG_RETURN(a1) {DBUG_LEAVE; return(a1);} Alternate form */
-# define DBUG_VOID_RETURN {DBUG_LEAVE; return;}
-# define DBUG_EXECUTE(keyword,a1) \
- {if (_db_on_) {if (_db_keyword_ (keyword)) { a1 }}}
-# define DBUG_PRINT(keyword,arglist) \
- {if (_db_on_) {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;}}
-# define DBUG_2(keyword,format) \
- DBUG_PRINT(keyword,(format)) /* Obsolete */
-# define DBUG_3(keyword,format,a1) \
- DBUG_PRINT(keyword,(format,a1)) /* Obsolete */
-# define DBUG_4(keyword,format,a1,a2) \
- DBUG_PRINT(keyword,(format,a1,a2)) /* Obsolete */
-# define DBUG_5(keyword,format,a1,a2,a3) \
- DBUG_PRINT(keyword,(format,a1,a2,a3)) /* Obsolete */
-# define DBUG_PUSH(a1) _db_push_ (a1)
-# define DBUG_POP() _db_pop_ ()
-# define DBUG_PROCESS(a1) (_db_process_ = a1)
-# define DBUG_FILE (_db_fp_)
-# define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1))
-# define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2))
-# define DBUG_DUMP(keyword,a1,a2) _db_dump_(__LINE__,keyword,a1,a2)
-# endif
diff --git a/dep/mysqllite/dbug/monty.doc b/dep/mysqllite/dbug/monty.doc
deleted file mode 100644
index 1af67b81d42..00000000000
--- a/dep/mysqllite/dbug/monty.doc
+++ /dev/null
@@ -1,9 +0,0 @@
-
-All changes that I or other people at MySQL AB have done to all files
-in the dbug library (Mainly in dbug.c, dbug_analyze.c, dbug_long.h,
-dbug.h) are put in public domain, as the rest of the dbug.c library)
-
-To my knowledge, all code in dbug library is in public domain.
-
-Michael Widenius
-
diff --git a/dep/mysqllite/dbug/user.r b/dep/mysqllite/dbug/user.r
deleted file mode 100644
index 5628f5a4fa1..00000000000
--- a/dep/mysqllite/dbug/user.r
+++ /dev/null
@@ -1,1213 +0,0 @@
-.\" @(#)user.r 1.13 10/29/86
-.\"
-.\" 2004-10-29: documented features implemented since 10/29/86
-.\" formatting cleanup
-.\" - Sergei Golubchik
-.\"
-.\" DBUG (Macro Debugger Package) nroff source
-.\"
-.\" nroff -mm user.r >user.t
-.\" groff -mm user.r >user.ps
-.\"
-.\" ===================================================
-.\"
-.\" === Some sort of black magic, but I forget...
-.tr ~
-.\" === Hyphenation control (1 = on)
-.\".nr Hy 1
-.\" === Force all first level headings to start on new page
-.nr Ej 1
-.\" === Set for breaks after headings for levels 1-3
-.nr Hb 3
-.\" === Set for space after headings for levels 1-3
-.nr Hs 3
-.\" === Set standard indent for one/half inch
-.nr Si 10
-.\" === Set page header
-.PH "/DBUG User Manual//\*(DT/"
-.\" === Set page footer
-.PF "// - % - //"
-.\" === Set page offset
-.\".po 0.60i
-.\" === Set line length
-.\".ll 6.5i
-.TL
-.warn 0
-D B U G
-.P 0
-C Program Debugging Package
-.P 0
-by
-.AU "Fred Fish"
-.AF ""
-.SA 1
-.\" === All paragraphs indented.
-.nr Pt 1
-.AS 1
-This document introduces
-.I dbug ,
-a macro based C debugging
-package which has proven to be a very flexible and useful tool
-for debugging, testing, and porting C programs.
-
-.P
-All of the features of the
-.I dbug
-package can be enabled or disabled dynamically at execution time.
-This means that production programs will run normally when
-debugging is not enabled, and eliminates the need to maintain two
-separate versions of a program.
-
-.P
-Many of the things easily accomplished with conventional debugging
-tools, such as symbolic debuggers, are difficult or impossible with this
-package, and vice versa.
-Thus the
-.I dbug
-package should
-.I not
-be thought of as a replacement or substitute for
-other debugging tools, but simply as a useful
-.I addition
-to the
-program development and maintenance environment.
-
-.AE
-.MT 4
-.SK
-.B
-INTRODUCTION
-.R
-
-.P
-Almost every program development environment worthy of the name
-provides some sort of debugging facility.
-Usually this takes the form of a program which is capable of
-controlling execution of other programs and examining the internal
-state of other executing programs.
-These types of programs will be referred to as external debuggers
-since the debugger is not part of the executing program.
-Examples of this type of debugger include the
-.B adb
-and
-.B sdb
-debuggers provided with the
-.B UNIX\*F
-.FS
-UNIX is a trademark of AT&T Bell Laboratories.
-.FE
-operating system.
-
-.P
-One of the problems associated with developing programs in an environment
-with good external debuggers is that developed programs tend to have
-little or no internal instrumentation.
-This is usually not a problem for the developer since he is,
-or at least should be, intimately familiar with the internal organization,
-data structures, and control flow of the program being debugged.
-It is a serious problem for maintenance programmers, who
-are unlikely to have such familiarity with the program being
-maintained, modified, or ported to another environment.
-It is also a problem, even for the developer, when the program is
-moved to an environment with a primitive or unfamiliar debugger,
-or even no debugger.
-
-.P
-On the other hand,
-.I dbug
-is an example of an internal debugger.
-Because it requires internal instrumentation of a program,
-and its usage does not depend on any special capabilities of
-the execution environment, it is always available and will
-execute in any environment that the program itself will
-execute in.
-In addition, since it is a complete package with a specific
-user interface, all programs which use it will be provided
-with similar debugging capabilities.
-This is in sharp contrast to other forms of internal instrumentation
-where each developer has their own, usually less capable, form
-of internal debugger.
-In summary,
-because
-.I dbug
-is an internal debugger it provides consistency across operating
-environments,
-and because it is available to all developers it provides
-consistency across all programs in the same environment.
-
-.P
-The
-.I dbug
-package imposes only a slight speed penalty on executing
-programs, typically much less than 10 percent, and a modest size
-penalty, typically 10 to 20 percent.
-By defining a specific C preprocessor symbol both of these
-can be reduced to zero with no changes required to the
-source code.
-
-.P
-The following list is a quick summary of the capabilities
-of the
-.I dbug
-package.
-Each capability can be individually enabled or disabled
-at the time a program is invoked by specifying the appropriate
-command line arguments.
-.SP 1
-.ML o 1i
-.LI
-Execution trace showing function level control flow in a
-semi-graphically manner using indentation to indicate nesting
-depth.
-.LI
-Output the values of all, or any subset of, key internal variables.
-.LI
-Limit actions to a specific set of named functions.
-.LI
-Limit function trace to a specified nesting depth.
-.LI
-Label each output line with source file name and line number.
-.LI
-Label each output line with name of current process.
-.LI
-Push or pop internal debugging state to allow execution with
-built in debugging defaults.
-.LI
-Redirect the debug output stream to standard output (stdout)
-or a named file.
-The default output stream is standard error (stderr).
-The redirection mechanism is completely independent of
-normal command line redirection to avoid output conflicts.
-.LE
-
-.SK
-.B
-PRIMITIVE DEBUGGING TECHNIQUES
-.R
-
-.P
-Internal instrumentation is already a familiar concept
-to most programmers, since it is usually the first debugging
-technique learned.
-Typically, "print\ statements" are inserted in the source
-code at interesting points, the code is recompiled and executed,
-and the resulting output is examined in an attempt to determine
-where the problem is.
-
-The procedure is iterative, with each iteration yielding more
-and more output, and hopefully the source of the problem is
-discovered before the output becomes too large to deal with
-or previously inserted statements need to be removed.
-Figure 1 is an example of this type of primitive debugging
-technique.
-.DS I N
-.SP 2
-\fC
-.so example1.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 1
-.ce
-Primitive Debugging Technique
-.ll +5
-.SP 2
-.DE
-
-.P
-Eventually, and usually after at least several iterations, the
-problem will be found and corrected.
-At this point, the newly inserted print statements must be
-dealt with.
-One obvious solution is to simply delete them all.
-Beginners usually do this a few times until they have to
-repeat the entire process every time a new bug pops up.
-The second most obvious solution is to somehow disable
-the output, either through the source code comment facility,
-creation of a debug variable to be switched on or off, or by using the
-C preprocessor.
-Figure 2 is an example of all three techniques.
-.DS I N
-.SP 2
-\fC
-.so example2.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 2
-.ce
-Debug Disable Techniques
-.ll +5
-.SP 2
-.DE
-
-.P
-Each technique has its advantages and disadvantages with respect
-to dynamic vs static activation, source code overhead, recompilation
-requirements, ease of use, program readability, etc.
-Overuse of the preprocessor solution quickly leads to problems with
-source code readability and maintainability when multiple
-.B #ifdef
-symbols are to be defined or undefined based on specific types
-of debug desired.
-The source code can be made slightly more readable by suitable indentation
-of the
-.B #ifdef
-arguments to match the indentation of the code, but
-not all C preprocessors allow this.
-The only requirement for the standard
-.B UNIX
-C preprocessor is for the '#' character to appear
-in the first column, but even this seems
-like an arbitrary and unreasonable restriction.
-Figure 3 is an example of this usage.
-.DS I N
-.SP 2
-\fC
-.so example3.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 3
-.ce
-More Readable Preprocessor Usage
-.ll +5
-.SP 2
-.DE
-
-.SK
-.B
-FUNCTION TRACE EXAMPLE
-.R
-
-.P
-We will start off learning about the capabilities of the
-.I dbug
-package by using a simple minded program which computes the
-factorial of a number.
-In order to better demonstrate the function trace mechanism, this
-program is implemented recursively.
-Figure 4 is the main function for this factorial program.
-.DS I N
-.SP 2
-\fC
-.so main.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 4
-.ce
-Factorial Program Mainline
-.ll +5
-.SP 2
-.DE
-
-.P
-The
-.B main
-function is responsible for processing any command line
-option arguments and then computing and printing the factorial of
-each non-option argument.
-.P
-First of all, notice that all of the debugger functions are implemented
-via preprocessor macros.
-This does not detract from the readability of the code and makes disabling
-all debug compilation trivial (a single preprocessor symbol,
-.B DBUG_OFF ,
-forces the macro expansions to be null).
-.P
-Also notice the inclusion of the header file
-.B dbug.h
-from the local header file directory.
-(The version included here is the test version in the dbug source
-distribution directory).
-This file contains all the definitions for the debugger macros, which
-all have the form
-.B DBUG_XX...XX .
-
-.P
-The
-.B DBUG_ENTER
-macro informs that debugger that we have entered the
-function named
-.B main .
-It must be the very first "executable" line in a function, after
-all declarations and before any other executable line.
-The
-.B DBUG_PROCESS
-macro is generally used only once per program to
-inform the debugger what name the program was invoked with.
-The
-.B DBUG_PUSH
-macro modifies the current debugger state by
-saving the previous state and setting a new state based on the
-control string passed as its argument.
-The
-.B DBUG_PRINT
-macro is used to print the values of each argument
-for which a factorial is to be computed.
-The
-.B DBUG_RETURN
-macro tells the debugger that the end of the current
-function has been reached and returns a value to the calling
-function.
-All of these macros will be fully explained in subsequent sections.
-.P
-To use the debugger, the factorial program is invoked with a command
-line of the form:
-.DS CB N
-\fCfactorial -#d:t 1 2 3
-.DE
-The
-.B main
-function recognizes the "-#d:t" string as a debugger control
-string, and passes the debugger arguments ("d:t") to the
-.I dbug
-runtime support routines via the
-.B DBUG_PUSH
-macro.
-This particular string enables output from the
-.B DBUG_PRINT
-macro with the 'd' flag and enables function tracing with the 't' flag.
-The factorial function is then called three times, with the arguments
-"1", "2", and "3".
-Note that the DBUG_PRINT takes exactly
-.B two
-arguments, with the second argument (a format string and list
-of printable values) enclosed in parentheses.
-.P
-Debug control strings consist of a header, the "-#", followed
-by a colon separated list of debugger arguments.
-Each debugger argument is a single character flag followed
-by an optional comma separated list of arguments specific
-to the given flag.
-Some examples are:
-.DS CB N
-\fC
--#d:t:o
--#d,in,out:f,main:F:L
-.DE
-Note that previously enabled debugger actions can be disabled by the
-control string "-#".
-
-.P
-The definition of the factorial function, symbolized as "N!", is
-given by:
-.DS CB N
-N! = N * N-1 * ... 2 * 1
-.DE
-Figure 5 is the factorial function which implements this algorithm
-recursively.
-Note that this is not necessarily the best way to do factorials
-and error conditions are ignored completely.
-.DS I N
-.SP 2
-\fC
-.so factorial.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 5
-.ce
-Factorial Function
-.ll +5
-.SP 2
-.DE
-
-.P
-One advantage (some may not consider it so) to using the
-.I dbug
-package is that it strongly encourages fully structured coding
-with only one entry and one exit point in each function.
-Multiple exit points, such as early returns to escape a loop,
-may be used, but each such point requires the use of an
-appropriate
-.B DBUG_RETURN
-or
-.B DBUG_VOID_RETURN
-macro.
-
-.P
-To build the factorial program on a
-.B UNIX
-system, compile and
-link with the command:
-.DS CB N
-\fCcc -o factorial main.c factorial.c -ldbug
-.DE
-The "-ldbug" argument tells the loader to link in the
-runtime support modules for the
-.I dbug
-package.
-Executing the factorial program with a command of the form:
-.DS CB N
-\fCfactorial 1 2 3 4 5
-.DE
-generates the output shown in figure 6.
-.DS I N
-.SP 2
-\fC
-.so output1.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 6
-.ce
-\fCfactorial 1 2 3 4 5
-.ll +5
-.SP 2
-.DE
-
-.P
-Function level tracing is enabled by passing the debugger
-the 't' flag in the debug control string.
-Figure 7 is the output resulting from the command
-"factorial\ -#t:o\ 2\ 3".
-.DS I N
-.SP 2
-\fC
-.so output2.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 7
-.ce
-\fCfactorial -#t:o 2 3
-.ll +5
-.SP 2
-.DE
-
-.P
-Each entry to or return from a function is indicated by '>' for the
-entry point and '<' for the exit point, connected by
-vertical bars to allow matching points to be easily found
-when separated by large distances.
-
-.P
-This trace output indicates that there was an initial call
-to factorial from main (to compute 2!), followed by
-a single recursive call to factorial to compute 1!.
-The main program then output the result for 2! and called the
-factorial function again with the second argument, 3.
-Factorial called itself recursively to compute 2! and 1!, then
-returned control to main, which output the value for 3! and exited.
-
-.P
-Note that there is no matching entry point "main>" for the
-return point "<main" because at the time the
-.B DBUG_ENTER
-macro was reached in main, tracing was not enabled yet.
-It was only after the macro
-.B DBUG_PUSH
-was executing that tracing became enabled.
-This implies that the argument list should be processed as early as
-possible since all code preceding the first call to
-.B DBUG_PUSH
-is
-essentially invisible to
-.I dbug
-(this can be worked around by
-inserting a temporary
-.B DBUG_PUSH(argv[1])
-immediately after the
-.B DBUG_ENTER("main")
-macro.
-
-.P
-One last note,
-the trace output normally comes out on the standard error.
-Since the factorial program prints its result on the standard
-output, there is the possibility of the output on the terminal
-being scrambled if the two streams are not synchronized.
-Thus the debugger is told to write its output on the standard
-output instead, via the 'o' flag character.
-Note that no 'o' implies the default (standard error), a 'o'
-with no arguments means standard output, and a 'o'
-with an argument means used the named file.
-i.e, "factorial\ -#t:o,logfile\ 3\ 2" would write the trace
-output in "logfile".
-Because of
-.B UNIX
-implementation details, programs usually run
-faster when writing to stdout rather than stderr, though this
-is not a prime consideration in this example.
-
-.SK
-.B
-USE OF DBUG_PRINT MACRO
-.R
-
-.P
-The mechanism used to produce "printf" style output is the
-.B DBUG_PRINT
-macro.
-
-.P
-To allow selection of output from specific macros, the first argument
-to every
-.B DBUG_PRINT
-macro is a
-.I dbug
-keyword.
-When this keyword appears in the argument list of the 'd' flag in
-a debug control string, as in "-#d,keyword1,keyword2,...:t",
-output from the corresponding macro is enabled.
-The default when there is no 'd' flag in the control string is to
-enable output from all
-.B DBUG_PRINT
-macros.
-
-.P
-Typically, a program will be run once, with no keywords specified,
-to determine what keywords are significant for the current problem
-(the keywords are printed in the macro output line).
-Then the program will be run again, with the desired keywords,
-to examine only specific areas of interest.
-
-.P
-The second argument to a
-.B DBUG_PRINT
-macro is a standard printf style
-format string and one or more arguments to print, all
-enclosed in parentheses so that they collectively become a single macro
-argument.
-This is how variable numbers of printf arguments are supported.
-Also note that no explicit newline is required at the end of the format string.
-As a matter of style, two or three small
-.B DBUG_PRINT
-macros are preferable
-to a single macro with a huge format string.
-Figure 8 shows the output for default tracing and debug.
-.DS I N
-.SP 2
-\fC
-.so output3.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 8
-.ce
-\fCfactorial -#d:t:o 3
-.ll +5
-.SP 2
-.DE
-
-.P
-The output from the
-.B DBUG_PRINT
-macro is indented to match the trace output
-for the function in which the macro occurs.
-When debugging is enabled, but not trace, the output starts at the left
-margin, without indentation.
-
-.P
-To demonstrate selection of specific macros for output, figure
-9 shows the result when the factorial program is invoked with
-the debug control string "-#d,result:o".
-.DS I N
-.SP 2
-\fC
-.so output4.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 9
-.ce
-\fCfactorial -#d,result:o 4
-.ll +5
-.SP 2
-.DE
-
-.P
-It is sometimes desirable to restrict debugging and trace actions
-to a specific function or list of functions.
-This is accomplished with the 'f' flag character in the debug
-control string.
-Figure 10 is the output of the factorial program when run with the
-control string "-#d:f,factorial:F:L:o".
-The 'F' flag enables printing of the source file name and the 'L'
-flag enables printing of the source file line number.
-.DS I N
-.SP 2
-\fC
-.so output5.r
-\fR
-.SP 2
-.ll -5
-.ce
-Figure 10
-.ce
-\fCfactorial -#d:f,factorial:F:L:o 3
-.ll +5
-.SP 2
-.DE
-
-.P
-The output in figure 10 shows that the "find" macro is in file
-"factorial.c" at source line 8 and the "result" macro is in the same
-file at source line 12.
-
-.SK
-.B
-SUMMARY OF MACROS
-.R
-
-.P
-This section summarizes the usage of all currently defined macros
-in the
-.I dbug
-package.
-The macros definitions are found in the user include file
-.B dbug.h
-from the standard include directory.
-
-.SP 2
-.BL 20
-.LI DBUG_ENTER\
-Used to tell the runtime support module the name of the function being
-entered. The argument must be of type "pointer to character". The
-DBUG_ENTER macro must precede all executable lines in the function
-just entered, and must come after all local declarations. Each
-DBUG_ENTER macro must have a matching DBUG_RETURN or DBUG_VOID_RETURN
-macro at the function exit points. DBUG_ENTER macros used without a
-matching DBUG_RETURN or DBUG_VOID_RETURN macro will cause warning
-messages from the
-.I dbug
-package runtime support module.
-.SP 1
-EX:\ \fCDBUG_ENTER\ ("main");\fR
-.SP 1
-.LI DBUG_RETURN\
-Used at each exit point of a function containing a DBUG_ENTER macro at
-the entry point. The argument is the value to return. Functions
-which return no value (void) should use the DBUG_VOID_RETURN macro.
-It is an error to have a DBUG_RETURN or DBUG_VOID_RETURN macro in a
-function which has no matching DBUG_ENTER macro, and the compiler will
-complain if the macros are actually used (expanded).
-.SP 1
-EX:\ \fCDBUG_RETURN\ (value);\fR
-.br
-EX:\ \fCDBUG_VOID_RETURN;\fR
-.SP 1
-.LI DBUG_PROCESS\
-Used to name the current process being executed.
-A typical argument for this macro is "argv[0]", though
-it will be perfectly happy with any other string.
-Im multi-threaded environment threads may have different names.
-.SP 1
-EX:\ \fCDBUG_PROCESS\ (argv[0]);\fR
-.SP 1
-.LI DBUG_PUSH\
-Sets a new debugger state by pushing the current
-.I dbug
-state onto an internal stack and setting up the new state using the
-debug control string passed as the macro argument. The most common
-usage is to set the state specified by a debug control string
-retrieved from the argument list. If the control string is
-.I incremental,
-the new state is a copy of the old state, modified by the control
-string.
-.SP 1
-EX:\ \fCDBUG_PUSH\ (\&(argv[i][2]));\fR
-.br
-EX:\ \fCDBUG_PUSH\ ("d:t");\fR
-.br
-EX:\ \fCDBUG_PUSH\ ("");\fR
-.SP 1
-.LI DBUG_POP\
-Restores the previous debugger state by popping the state stack.
-Attempting to pop more states than pushed will be ignored and no
-warning will be given. The DBUG_POP macro has no arguments.
-.SP 1
-EX:\ \fCDBUG_POP\ ();\fR
-.SP 1
-.LI DBUG_SET\
-Modifies the current debugger state on top of the stack or pushes
-a new state if the current is set to the initial settings, using
-the debug control string passed as the macro argument. Unless
-.I incremental
-control string is used (see below), it's equivalent to a combination of
-DBUG_POP and DBUG_PUSH.
-.SP 1
-EX:\ \fCDBUG_SET\ ("d:t");\fR
-.br
-EX:\ \fCDBUG_SET\ ("+d,info");\fR
-.br
-EX:\ \fCDBUG_SET\ ("+t:-d");\fR
-.SP 1
-.LI DBUG_FILE\
-The DBUG_FILE macro is used to do explicit I/O on the debug output
-stream. It is used in the same manner as the symbols "stdout" and
-"stderr" in the standard I/O package.
-.SP 1
-EX:\ \fCfprintf\ (DBUG_FILE,\ "Doing\ my\ own\ I/O!\\n");\fR
-.SP 1
-.LI DBUG_EXECUTE\
-The DBUG_EXECUTE macro is used to execute any arbitrary C code. The
-first argument is the debug keyword, used to trigger execution of the
-code specified as the second argument. This macro must be used
-cautiously because, like the DBUG_PRINT macro, it is automatically
-selected by default whenever the 'd' flag has no argument list (i.e.,
-a "-#d:t" control string).
-.SP 1
-EX:\ \fCDBUG_EXECUTE\ ("status",\ print_status\ ());\fR
-.SP 1
-.LI DBUG_EXECUTE_IF\
-Works like DBUG_EXECUTE macro, but the code is
-.B not
-executed "by default", if the keyword is not explicitly listed in
-the 'd' flag. Used to conditionally execute "dangerous" actions, e.g
-to crash the program testing how recovery works, or to introduce an
-artificial delay checking for race conditions.
-.SP 1
-EX:\ \fCDBUG_EXECUTE_IF\ ("crashme",\ DBUG_ABORT()\ ());\fR
-.SP 1
-.LI DBUG_EVALUATE\
-The DBUG_EVALUATE macro is similar to DBUG_EXECUTE, but it can be used in
-the expression context. The first argument is the debug keyword that is used to
-choose whether the second (keyword is enabled) or the third (keyword is not
-enabled) argument is evaluated. When
-.I dbug
-is compiled off, the third argument is evaluated.
-.SP 1
-EX:\fC
-.br
- printf("Info-debug is %s",
-.br
- DBUG_EVALUATE\ ("info", "ON", "OFF"));\fR
-.SP 1
-.LI DBUG_EVALUATE_IF\
-Works like DBUG_EVALUATE macro, but the second argument is
-.B not
-evaluated, if the keyword is not explicitly listed in
-the 'd' flag. Like DBUG_EXECUTE_IF this could be used to conditionally execute
-"dangerous" actions.
-.SP 1
-EX:\fC
-.br
- if (prepare_transaction () ||
-.br
- DBUG_EVALUATE ("crashme", (DBUG_ABORT(), 0), 0) ||
-.br
- commit_transaction () )\fR
-.SP 1
-.LI DBUG_PRINT\
-Used to do printing via the "fprintf" library function on the current
-debug stream, DBUG_FILE. The first argument is a debug keyword, the
-second is a format string and the corresponding argument list. Note
-that the format string and argument list are all one macro argument
-and
-.B must
-be enclosed in parentheses.
-.SP 1
-EX:\ \fCDBUG_PRINT\ ("eof",\ ("end\ of\ file\ found"));\fR
-.br
-EX:\ \fCDBUG_PRINT\ ("type",\ ("type\ is\ %x", type));\fR
-.br
-EX:\ \fCDBUG_PRINT\ ("stp",\ ("%x\ ->\ %s", stp, stp\ ->\ name));\fR
-.SP 1
-.LI DBUG_DUMP\
-Used to dump a memory block in hex via the "fprintf" library function
-on the current debug stream, DBUG_FILE. The first argument is a debug
-keyword, the second is a pointer to a memory to dump, the third is a
-number of bytes to dump.
-.SP 1
-EX: \fCDBUG_DBUG\ ("net",\ packet,\ len);\fR
-.SP 1
-.LI DBUG_SETJMP\
-Used in place of the setjmp() function to first save the current
-debugger state and then execute the standard setjmp call.
-This allows to the debugger to restore its state when the
-DBUG_LONGJMP macro is used to invoke the standard longjmp() call.
-Currently all instances of DBUG_SETJMP must occur within the
-same function and at the same function nesting level.
-.SP 1
-EX: \fCDBUG_SETJMP\ (env);\fR
-.SP 1
-.LI DBUG_LONGJMP\
-Used in place of the longjmp() function to first restore the
-previous debugger state at the time of the last DBUG_SETJMP
-and then execute the standard longjmp() call.
-Note that currently all DBUG_LONGJMP macros restore the state
-at the time of the last DBUG_SETJMP.
-It would be possible to maintain separate DBUG_SETJMP and DBUG_LONGJMP
-pairs by having the debugger runtime support module use the first
-argument to differentiate the pairs.
-.SP 1
-EX: \fCDBUG_LONGJMP\ (env,val);\fR
-.SP 1
-.LI DBUG_LOCK_FILE\
-Used in multi-threaded environment to lock DBUG_FILE stream.
-It can be used, for example, in functions that need to write something to a
-debug stream more than in one fprintf() call and want to ensure that no other
-thread will write something in between.
-.SP 1
-EX:\fC
-.br
- DBUG_LOCK_FILE;
-.br
- fprintf (DBUG_FILE, "a=[");
-.br
- for (int i=0; i < a_length; i++)
-.br
- fprintf (DBUG_FILE, "0x%03x ", a[i]);
-.br
- fprintf (DBUG_FILE, "]");
-.br
- DBUG_UNLOCK_FILE;\fR
-.SP 1
-.LI DBUG_UNLOCK_FILE\
-Unlocks DBUG_FILE stream, that was locked with a DBUG_LOCK_FILE.
-.LI DBUG_ASSERT\
-This macro just does a regular assert(). The difference is that it will be
-disabled by DBUG_OFF togeher with the
-.I dbug
-library. So there will be no need to disable asserts separately with NDEBUG.
-.SP 1
-EX:\ \fCDBUG_ASSERT(\ a\ >\ 0\ );\fR
-.SP 1
-.LI DBUG_ABORT\
-This macro could be used instead of abort(). It flushes DBUG_FILE stream
-to ensure that no
-.I dbug
-output is lost and then calls abort().
-.SP 1
-.LI DBUG_EXPLAIN\
-Generates control string corresponding to the current debug state.
-The macro takes two arguments - a buffer to store the result string
-into and its length. The macro (which could be used as a function)
-returns 1 if the control string didn't fit into the buffer and was
-truncated and 0 otherwise.
-.SP 1
-EX:\fC
-.br
- char buf[256];
-.br
- DBUG_EXPLAIN( buf, sizeof(buf) );\fR
-.SP 1
-.LI DBUG_SET_INITIAL\
-.LI DBUG_EXPLAIN_INITIAL\
-.br
-These two macros are identical to DBUG_SET and DBUG_EXPLAIN, but they
-operate on the debug state that any new thread starts from.
-Modifying
-.I initial
-value does not affect threads that are already running. Obviously,
-these macros are only useful in the multi-threaded environment.
-.LE
-
-.SK
-.B
-DEBUG CONTROL STRING
-.R
-
-.P
-The debug control string is used to set the state of the debugger
-via the
-.B DBUG_PUSH
-or
-.B DBUG_SET
-macros. Control string consists of colon separated flags. Colons
-that are part of ':\\', ':/', or '::' are not considered flag
-separators. A flag may take an argument or a list of arguments.
-If a control string starts from a '+' sign it works
-.I incrementally,
-that is, it can modify existing state without overriding it. Every
-flag may be preceded by a '+' or '-' to enable or disable a
-corresponding option in the debugger state or to add or remove
-arguments to the list. This section summarizes the currently available
-debugger options and the flag characters which enable or disable them.
-Argument lists enclosed in '[' and ']' are optional.
-.SP 2
-.BL 22
-.LI a[,file]
-Redirect the debugger output stream and append it to the specified
-file. The default output stream is stderr. A null argument list
-causes output to be redirected to stdout.
-.SP 1
-EX: \fCa,C:\\tmp\\log\fR
-.LI A[,file]
-Like 'a[,file]' but ensure that data are written after each write
-(this typically implies flush or close/reopen). It helps to get
-a complete log file in case of crashes. This mode is implicit in
-multi-threaded environment.
-.LI d[,keywords]
-Enable output from macros with specified keywords.
-Every keyword can be a
-.I glob(7)
-pattern.
-An empty list of keywords implies that all keywords are selected.
-.LI D[,time]
-Delay for specified time after each output line, to let output drain.
-Time is given in tenths of a second (value of 10 is one second).
-Default is zero.
-.LI f[,functions]
-Limit debugger actions to the specified list of functions.
-Every function can be a
-.I glob(7)
-pattern.
-An empty list of functions implies that all functions are selected.
-Every function in the list may optionally be followed by a '/' -
-this will implicitly select all the functions down the call stack.
-.SP 1
-EX: \fCf,func1,func2/:-f,func3,func4/\fR
-.SP 1
-This would enable debugger in functions 'func1()', 'func2()' and all
-functions called from it (directly or indirectly). But not in
-functions 'func3()' or 'func4()' and all functions called from
-it.
-.LI F
-Mark each debugger output line with the name of the source file
-containing the macro causing the output.
-.LI i
-Mark each debugger output line with the PID (or thread ID) of the
-current process.
-.LI g,[functions]
-Enable profiling for the specified list of functions.
-Every function can be a
-.I glob(7)
-pattern.
-An empty list of functions enables profiling for all functions.
-See
-.B PROFILING\ WITH\ DBUG
-below.
-.LI L
-Mark each debugger output line with the source file line number of
-the macro causing the output.
-.LI n
-Mark each debugger output line with the current function nesting depth.
-.LI N
-Sequentially number each debugger output line starting at 1.
-This is useful for reference purposes when debugger output is
-interspersed with program output.
-.LI o[,file]
-Like 'a[,file]' but overwrite old file, do not append.
-.LI O[,file]
-Like 'A[,file]' but overwrite old file, do not append.
-.LI p[,processes]
-Limit debugger actions to the specified processes.
-Every name can be a
-.I glob(7)
-pattern.
-An empty list
-implies all processes. This is useful for processes which run child
-processes. Note that each debugger output line can be marked with the
-name of the current process via the 'P' flag. The process name must
-match the argument passed to the
-.B DBUG_PROCESS
-macro.
-.LI P
-Mark each debugger output line with the name of the current process.
-Most useful when used with a process which runs child processes that
-are also being debugged. Note that the parent process must arrange
-for the debugger control string to be passed to the child processes.
-.LI r
-Used in conjunction with the
-.B DBUG_PUSH
-macro to reset the current
-indentation level back to zero.
-Most useful with
-.B DBUG_PUSH
-macros used to temporarily alter the
-debugger state.
-.LI t[,N]
-Enable function control flow tracing.
-The maximum nesting depth is specified by N, and defaults to
-200.
-.LI T
-Mark each debugger output line with the current timestamp.
-The value is printed with microsecond resolution, as returned by
-.I gettimeofday()
-system call. The actual resolution is OS- and hardware-dependent.
-.LE
-
-.SK
-.B
-MULTI-THREADED DEBUGGING
-.R
-
-.P
-When
-.I dbug
-is used in a multi-threaded environment there are few differences from a single-threaded
-case to keep in mind. This section tries to summarize them.
-.SP 2
-.BL 5
-.LI
-Every thread has its own stack of debugger states.
-.B DBUG_PUSH
-and
-.B DBUG_POP
-affect only the thread that executed them.
-.LI
-At the bottom of the stack for all threads there is the common
-.I initial
-state. Changes to this state (for example, with
-.B DBUG_SET_INITIAL
-macro) affect all new threads and all running threads that didn't
-.B DBUG_PUSH
-yet.
-.LI
-Every thread can have its own name, that can be set with
-.B DBUG_PROCESS
-macro. Thus, "-#p,name1,name2" can be used to limit the output to specific threads.
-.LI
-When printing directly to
-.B DBUG_FILE
-it may be necessary to prevent other threads from writing something between two parts
-of logically indivisible output. It is done with
-.B DBUG_LOCK_FILE
-and
-.B DBUG_UNLOCK_FILE
-macors. See the appropriate section for examples.
-.LI
-"-#o,file" and "-#O,file" are treated as "-#a,file" and "-#A,file" respectively. That is
-all writes to a file are always followed by a flush.
-.LI
-"-#i" prints not a PID but a thread id in the form of "T@nnn"
-.LE
-
-.SK
-.B
-PROFILING WITH DBUG
-.R
-
-.P
-With
-.I dbug
-one can do profiling in a machine independent fashion,
-without a need for profiled version of system libraries.
-For this,
-.I dbug
-can write out a file
-called
-.B dbugmon.out
-(by default). This is an ascii file containing lines of the form:
-.DS CB N
-\fC<function-name> E <time-entered>
-<function-name> X <time-exited>
-.DE
-
-.P
-A second program (\fBanalyze\fR) reads this file, and produces a report on
-standard output.
-
-.P
-Profiling is enabled through the
-.B g
-flag. It can take a list of
-function names for which profiling is enabled. By default, it
-profiles all functions.
-
-.P
-The profile file is opened for appending. This
-is in order that one can run a program several times, and get the
-sum total of all the times, etc.
-
-.P
-An example of the report generated follows:
-.DS CB N
-\fC
- Profile of Execution
- Execution times are in milliseconds
-
- Calls Time
- ----- ----
- Times Percentage Time Spent Percentage
-Function Called of total in Function of total Importance
-======== ====== ========== =========== ========== ==========
-factorial 5 83.33 30 100.00 8333
-main 1 16.67 0 0.00 0
-======== ====== ========== =========== ==========
-Totals 6 100.00 30 100.00
-.DE
-.P
-As you can see, it's quite self-evident. The
-.B Importance
-column is a
-metric obtained by multiplying the percentage of the calls and the percentage
-of the time. Functions with higher 'importance' benefit the most from
-being sped up.
-
-.P
-As a limitation - setjmp/longjmp, or child processes, are ignored
-for the time being. Also, profiling does not work
-in a multi-threaded environment.
-
-.P
-Profiling code is (c) Binayak Banerjee.
-
-.SK
-.B
-HINTS AND MISCELLANEOUS
-.R
-
-.P
-One of the most useful capabilities of the
-.I dbug
-package is to compare the executions of a given program in two
-different environments.
-This is typically done by executing the program in the environment
-where it behaves properly and saving the debugger output in a
-reference file.
-The program is then run with identical inputs in the environment where
-it misbehaves and the output is again captured in a reference file.
-The two reference files can then be differentially compared to
-determine exactly where execution of the two processes diverges.
-
-.P
-A related usage is regression testing where the execution of a current
-version is compared against executions of previous versions.
-This is most useful when there are only minor changes.
-
-.P
-It is not difficult to modify an existing compiler to implement
-some of the functionality of the
-.I dbug
-package automatically, without source code changes to the
-program being debugged.
-In fact, such changes were implemented in a version of the
-Portable C Compiler by the author in less than a day.
-However, it is strongly encouraged that all newly
-developed code continue to use the debugger macros
-for the portability reasons noted earlier.
-The modified compiler should be used only for testing existing
-programs.
-
-.SK
-.B
-CAVEATS
-.R
-
-.P
-The
-.I dbug
-package works best with programs which have "line\ oriented"
-output, such as text processors, general purpose utilities, etc.
-It can be interfaced with screen oriented programs such as
-visual editors by redefining the appropriate macros to call
-special functions for displaying the debugger results.
-Of course, this caveat is not applicable if the debugger output
-is simply dumped into a file for post-execution examination.
-
-.P
-Programs which use memory allocation functions other than
-.B malloc
-will usually have problems using the standard
-.I dbug
-package.
-The most common problem is multiply allocated memory.
-.SP 2
-.\" .DE nroff dident like this. davida 900108
-.CS
-
-.\" vim:filetype=nroff
diff --git a/dep/mysqllite/include/decimal.h b/dep/mysqllite/include/decimal.h
deleted file mode 100644
index 530ed9e1757..00000000000
--- a/dep/mysqllite/include/decimal.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _decimal_h
-#define _decimal_h
-
-typedef enum
-{TRUNCATE=0, HALF_EVEN, HALF_UP, CEILING, FLOOR}
- decimal_round_mode;
-typedef int32 decimal_digit_t;
-
-typedef struct st_decimal_t {
- int intg, frac, len;
- my_bool sign;
- decimal_digit_t *buf;
-} decimal_t;
-
-int internal_str2dec(const char *from, decimal_t *to, char **end,
- my_bool fixed);
-int decimal2string(decimal_t *from, char *to, int *to_len,
- int fixed_precision, int fixed_decimals,
- char filler);
-int decimal2ulonglong(decimal_t *from, ulonglong *to);
-int ulonglong2decimal(ulonglong from, decimal_t *to);
-int decimal2longlong(decimal_t *from, longlong *to);
-int longlong2decimal(longlong from, decimal_t *to);
-int decimal2double(decimal_t *from, double *to);
-int double2decimal(double from, decimal_t *to);
-int decimal_actual_fraction(decimal_t *from);
-int decimal2bin(decimal_t *from, uchar *to, int precision, int scale);
-int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale);
-
-int decimal_size(int precision, int scale);
-int decimal_bin_size(int precision, int scale);
-int decimal_result_size(decimal_t *from1, decimal_t *from2, char op,
- int param);
-
-int decimal_intg(decimal_t *from);
-int decimal_add(decimal_t *from1, decimal_t *from2, decimal_t *to);
-int decimal_sub(decimal_t *from1, decimal_t *from2, decimal_t *to);
-int decimal_cmp(decimal_t *from1, decimal_t *from2);
-int decimal_mul(decimal_t *from1, decimal_t *from2, decimal_t *to);
-int decimal_div(decimal_t *from1, decimal_t *from2, decimal_t *to,
- int scale_incr);
-int decimal_mod(decimal_t *from1, decimal_t *from2, decimal_t *to);
-int decimal_round(decimal_t *from, decimal_t *to, int new_scale,
- decimal_round_mode mode);
-int decimal_is_zero(decimal_t *from);
-void max_decimal(int precision, int frac, decimal_t *to);
-
-#define string2decimal(A,B,C) internal_str2dec((A), (B), (C), 0)
-#define string2decimal_fixed(A,B,C) internal_str2dec((A), (B), (C), 1)
-
-/* set a decimal_t to zero */
-
-#define decimal_make_zero(dec) do { \
- (dec)->buf[0]=0; \
- (dec)->intg=1; \
- (dec)->frac=0; \
- (dec)->sign=0; \
- } while(0)
-
-/*
- returns the length of the buffer to hold string representation
- of the decimal (including decimal dot, possible sign and \0)
-*/
-
-#define decimal_string_size(dec) (((dec)->intg ? (dec)->intg : 1) + \
- (dec)->frac + ((dec)->frac > 0) + 2)
-
-/* negate a decimal */
-#define decimal_neg(dec) do { (dec)->sign^=1; } while(0)
-
-/*
- conventions:
-
- decimal_smth() == 0 -- everything's ok
- decimal_smth() <= 1 -- result is usable, but precision loss is possible
- decimal_smth() <= 2 -- result can be unusable, most significant digits
- could've been lost
- decimal_smth() > 2 -- no result was generated
-*/
-
-#define E_DEC_OK 0
-#define E_DEC_TRUNCATED 1
-#define E_DEC_OVERFLOW 2
-#define E_DEC_DIV_ZERO 4
-#define E_DEC_BAD_NUM 8
-#define E_DEC_OOM 16
-
-#define E_DEC_ERROR 31
-#define E_DEC_FATAL_ERROR 30
-
-#endif
-
diff --git a/dep/mysqllite/include/errmsg.h b/dep/mysqllite/include/errmsg.h
deleted file mode 100644
index f1d7dd65f97..00000000000
--- a/dep/mysqllite/include/errmsg.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef ERRMSG_INCLUDED
-#define ERRMSG_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Error messages for MySQL clients */
-/* (Error messages for the daemon are in sql/share/errmsg.txt) */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-void init_client_errs(void);
-void finish_client_errs(void);
-extern const char *client_errors[]; /* Error messages */
-#ifdef __cplusplus
-}
-#endif
-
-#define CR_MIN_ERROR 2000 /* For easier client code */
-#define CR_MAX_ERROR 2999
-#if !defined(ER)
-#define ER(X) client_errors[(X)-CR_MIN_ERROR]
-#endif
-#define CLIENT_ERRMAP 2 /* Errormap used by my_error() */
-
-/* Do not add error numbers before CR_ERROR_FIRST. */
-/* If necessary to add lower numbers, change CR_ERROR_FIRST accordingly. */
-#define CR_ERROR_FIRST 2000 /*Copy first error nr.*/
-#define CR_UNKNOWN_ERROR 2000
-#define CR_SOCKET_CREATE_ERROR 2001
-#define CR_CONNECTION_ERROR 2002
-#define CR_CONN_HOST_ERROR 2003
-#define CR_IPSOCK_ERROR 2004
-#define CR_UNKNOWN_HOST 2005
-#define CR_SERVER_GONE_ERROR 2006
-#define CR_VERSION_ERROR 2007
-#define CR_OUT_OF_MEMORY 2008
-#define CR_WRONG_HOST_INFO 2009
-#define CR_LOCALHOST_CONNECTION 2010
-#define CR_TCP_CONNECTION 2011
-#define CR_SERVER_HANDSHAKE_ERR 2012
-#define CR_SERVER_LOST 2013
-#define CR_COMMANDS_OUT_OF_SYNC 2014
-#define CR_NAMEDPIPE_CONNECTION 2015
-#define CR_NAMEDPIPEWAIT_ERROR 2016
-#define CR_NAMEDPIPEOPEN_ERROR 2017
-#define CR_NAMEDPIPESETSTATE_ERROR 2018
-#define CR_CANT_READ_CHARSET 2019
-#define CR_NET_PACKET_TOO_LARGE 2020
-#define CR_EMBEDDED_CONNECTION 2021
-#define CR_PROBE_SLAVE_STATUS 2022
-#define CR_PROBE_SLAVE_HOSTS 2023
-#define CR_PROBE_SLAVE_CONNECT 2024
-#define CR_PROBE_MASTER_CONNECT 2025
-#define CR_SSL_CONNECTION_ERROR 2026
-#define CR_MALFORMED_PACKET 2027
-#define CR_WRONG_LICENSE 2028
-
-/* new 4.1 error codes */
-#define CR_NULL_POINTER 2029
-#define CR_NO_PREPARE_STMT 2030
-#define CR_PARAMS_NOT_BOUND 2031
-#define CR_DATA_TRUNCATED 2032
-#define CR_NO_PARAMETERS_EXISTS 2033
-#define CR_INVALID_PARAMETER_NO 2034
-#define CR_INVALID_BUFFER_USE 2035
-#define CR_UNSUPPORTED_PARAM_TYPE 2036
-
-#define CR_SHARED_MEMORY_CONNECTION 2037
-#define CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR 2038
-#define CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR 2039
-#define CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR 2040
-#define CR_SHARED_MEMORY_CONNECT_MAP_ERROR 2041
-#define CR_SHARED_MEMORY_FILE_MAP_ERROR 2042
-#define CR_SHARED_MEMORY_MAP_ERROR 2043
-#define CR_SHARED_MEMORY_EVENT_ERROR 2044
-#define CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR 2045
-#define CR_SHARED_MEMORY_CONNECT_SET_ERROR 2046
-#define CR_CONN_UNKNOW_PROTOCOL 2047
-#define CR_INVALID_CONN_HANDLE 2048
-#define CR_SECURE_AUTH 2049
-#define CR_FETCH_CANCELED 2050
-#define CR_NO_DATA 2051
-#define CR_NO_STMT_METADATA 2052
-#define CR_NO_RESULT_SET 2053
-#define CR_NOT_IMPLEMENTED 2054
-#define CR_SERVER_LOST_EXTENDED 2055
-#define CR_STMT_CLOSED 2056
-#define CR_NEW_STMT_METADATA 2057
-#define CR_ALREADY_CONNECTED 2058
-#define CR_AUTH_PLUGIN_CANNOT_LOAD 2059
-#define CR_ERROR_LAST /*Copy last error nr:*/ 2059
-/* Add error numbers before CR_ERROR_LAST and change it accordingly. */
-
-#endif /* ERRMSG_INCLUDED */
diff --git a/dep/mysqllite/include/internal/atomic/gcc_builtins.h b/dep/mysqllite/include/internal/atomic/gcc_builtins.h
deleted file mode 100644
index d03d28f572e..00000000000
--- a/dep/mysqllite/include/internal/atomic/gcc_builtins.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef ATOMIC_GCC_BUILTINS_INCLUDED
-#define ATOMIC_GCC_BUILTINS_INCLUDED
-
-/* Copyright (C) 2008 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#define make_atomic_add_body(S) \
- v= __sync_fetch_and_add(a, v);
-#define make_atomic_fas_body(S) \
- v= __sync_lock_test_and_set(a, v);
-#define make_atomic_cas_body(S) \
- int ## S sav; \
- int ## S cmp_val= *cmp; \
- sav= __sync_val_compare_and_swap(a, cmp_val, set);\
- if (!(ret= (sav == cmp_val))) *cmp= sav
-
-#ifdef MY_ATOMIC_MODE_DUMMY
-#define make_atomic_load_body(S) ret= *a
-#define make_atomic_store_body(S) *a= v
-#define MY_ATOMIC_MODE "gcc-builtins-up"
-
-#else
-#define MY_ATOMIC_MODE "gcc-builtins-smp"
-#define make_atomic_load_body(S) \
- ret= __sync_fetch_and_or(a, 0);
-#define make_atomic_store_body(S) \
- (void) __sync_lock_test_and_set(a, v);
-#endif
-
-#endif /* ATOMIC_GCC_BUILTINS_INCLUDED */
diff --git a/dep/mysqllite/include/internal/atomic/generic-msvc.h b/dep/mysqllite/include/internal/atomic/generic-msvc.h
deleted file mode 100644
index a84cde6b2c3..00000000000
--- a/dep/mysqllite/include/internal/atomic/generic-msvc.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright (C) 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _atomic_h_cleanup_
-#define _atomic_h_cleanup_ "atomic/generic-msvc.h"
-
-/*
- We don't implement anything specific for MY_ATOMIC_MODE_DUMMY, always use
- intrinsics.
- 8 and 16-bit atomics are not implemented, but it can be done if necessary.
-*/
-#undef MY_ATOMIC_HAS_8_16
-
-#include <windows.h>
-/*
- x86 compilers (both VS2003 or VS2005) never use instrinsics, but generate
- function calls to kernel32 instead, even in the optimized build.
- We force intrinsics as described in MSDN documentation for
- _InterlockedCompareExchange.
-*/
-#ifdef _M_IX86
-
-#if (_MSC_VER >= 1500)
-#include <intrin.h>
-#else
-C_MODE_START
-/*Visual Studio 2003 and earlier do not have prototypes for atomic intrinsics*/
-LONG _InterlockedCompareExchange (LONG volatile *Target, LONG Value, LONG Comp);
-LONGLONG _InterlockedCompareExchange64 (LONGLONG volatile *Target,
- LONGLONG Value, LONGLONG Comp);
-C_MODE_END
-
-#pragma intrinsic(_InterlockedCompareExchange)
-#pragma intrinsic(_InterlockedCompareExchange64)
-#endif
-
-#define InterlockedCompareExchange _InterlockedCompareExchange
-#define InterlockedCompareExchange64 _InterlockedCompareExchange64
-/*
- No need to do something special for InterlockedCompareExchangePointer
- as it is a #define to InterlockedCompareExchange. The same applies to
- InterlockedExchangePointer.
-*/
-#endif /*_M_IX86*/
-
-#define MY_ATOMIC_MODE "msvc-intrinsics"
-/* Implement using CAS on WIN32 */
-#define IL_COMP_EXCHG32(X,Y,Z) \
- InterlockedCompareExchange((volatile LONG *)(X),(Y),(Z))
-#define IL_COMP_EXCHG64(X,Y,Z) \
- InterlockedCompareExchange64((volatile LONGLONG *)(X), \
- (LONGLONG)(Y),(LONGLONG)(Z))
-#define IL_COMP_EXCHGptr InterlockedCompareExchangePointer
-
-#define make_atomic_cas_body(S) \
- int ## S initial_cmp= *cmp; \
- int ## S initial_a= IL_COMP_EXCHG ## S (a, set, initial_cmp); \
- if (!(ret= (initial_a == initial_cmp))) *cmp= initial_a;
-
-#ifndef _M_IX86
-/* Use full set of optimised functions on WIN64 */
-#define IL_EXCHG_ADD32(X,Y) \
- InterlockedExchangeAdd((volatile LONG *)(X),(Y))
-#define IL_EXCHG_ADD64(X,Y) \
- InterlockedExchangeAdd64((volatile LONGLONG *)(X),(LONGLONG)(Y))
-#define IL_EXCHG32(X,Y) \
- InterlockedExchange((volatile LONG *)(X),(Y))
-#define IL_EXCHG64(X,Y) \
- InterlockedExchange64((volatile LONGLONG *)(X),(LONGLONG)(Y))
-#define IL_EXCHGptr InterlockedExchangePointer
-
-#define make_atomic_add_body(S) \
- v= IL_EXCHG_ADD ## S (a, v)
-#define make_atomic_swap_body(S) \
- v= IL_EXCHG ## S (a, v)
-#define make_atomic_load_body(S) \
- ret= 0; /* avoid compiler warning */ \
- ret= IL_COMP_EXCHG ## S (a, ret, ret);
-#endif
-/*
- my_yield_processor (equivalent of x86 PAUSE instruction) should be used
- to improve performance on hyperthreaded CPUs. Intel recommends to use it in
- spin loops also on non-HT machines to reduce power consumption (see e.g
- http://softwarecommunity.intel.com/articles/eng/2004.htm)
-
- Running benchmarks for spinlocks implemented with InterlockedCompareExchange
- and YieldProcessor shows that much better performance is achieved by calling
- YieldProcessor in a loop - that is, yielding longer. On Intel boxes setting
- loop count in the range 200-300 brought best results.
- */
-#ifndef YIELD_LOOPS
-#define YIELD_LOOPS 200
-#endif
-
-static __inline int my_yield_processor()
-{
- int i;
- for(i=0; i<YIELD_LOOPS; i++)
- {
-#if (_MSC_VER <= 1310)
- /* On older compilers YieldProcessor is not available, use inline assembly*/
- __asm { rep nop }
-#else
- YieldProcessor();
-#endif
- }
- return 1;
-}
-
-#define LF_BACKOFF my_yield_processor()
-#else /* cleanup */
-
-#undef IL_EXCHG_ADD32
-#undef IL_EXCHG_ADD64
-#undef IL_COMP_EXCHG32
-#undef IL_COMP_EXCHG64
-#undef IL_COMP_EXCHGptr
-#undef IL_EXCHG32
-#undef IL_EXCHG64
-#undef IL_EXCHGptr
-
-#endif
diff --git a/dep/mysqllite/include/internal/atomic/nolock.h b/dep/mysqllite/include/internal/atomic/nolock.h
deleted file mode 100644
index 4c871473b60..00000000000
--- a/dep/mysqllite/include/internal/atomic/nolock.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef ATOMIC_NOLOCK_INCLUDED
-#define ATOMIC_NOLOCK_INCLUDED
-
-/* Copyright (C) 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#if defined(__i386__) || defined(_MSC_VER) || defined(__x86_64__) \
- || defined(HAVE_GCC_ATOMIC_BUILTINS) \
- || defined(HAVE_SOLARIS_ATOMIC)
-
-# ifdef MY_ATOMIC_MODE_DUMMY
-# define LOCK_prefix ""
-# else
-# define LOCK_prefix "lock"
-# endif
-/*
- We choose implementation as follows:
- ------------------------------------
- On Windows using Visual C++ the native implementation should be
- preferrable. When using gcc we prefer the Solaris implementation
- before the gcc because of stability preference, we choose gcc
- builtins if available, otherwise we choose the somewhat broken
- native x86 implementation. If neither Visual C++ or gcc we still
- choose the Solaris implementation on Solaris (mainly for SunStudio
- compilers).
-*/
-# if defined(_MSV_VER)
-# include "generic-msvc.h"
-# elif __GNUC__
-# if defined(HAVE_SOLARIS_ATOMIC)
-# include "solaris.h"
-# elif defined(HAVE_GCC_ATOMIC_BUILTINS)
-# include "gcc_builtins.h"
-# elif defined(__i386__) || defined(__x86_64__)
-# include "x86-gcc.h"
-# endif
-# elif defined(HAVE_SOLARIS_ATOMIC)
-# include "solaris.h"
-# endif
-#endif
-
-#if defined(make_atomic_cas_body)
-/*
- Type not used so minimal size (emptry struct has different size between C
- and C++, zero-length array is gcc-specific).
-*/
-typedef char my_atomic_rwlock_t __attribute__ ((unused));
-#define my_atomic_rwlock_destroy(name)
-#define my_atomic_rwlock_init(name)
-#define my_atomic_rwlock_rdlock(name)
-#define my_atomic_rwlock_wrlock(name)
-#define my_atomic_rwlock_rdunlock(name)
-#define my_atomic_rwlock_wrunlock(name)
-
-#endif
-
-#endif /* ATOMIC_NOLOCK_INCLUDED */
diff --git a/dep/mysqllite/include/internal/atomic/rwlock.h b/dep/mysqllite/include/internal/atomic/rwlock.h
deleted file mode 100644
index a31f8ed6ca1..00000000000
--- a/dep/mysqllite/include/internal/atomic/rwlock.h
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef ATOMIC_RWLOCK_INCLUDED
-#define ATOMIC_RWLOCK_INCLUDED
-
-/* Copyright (C) 2006 MySQL AB, 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#define MY_ATOMIC_MODE_RWLOCKS 1
-
-#ifdef MY_ATOMIC_MODE_DUMMY
-/*
- the following can never be enabled by ./configure, one need to put #define in
- a source to trigger the following warning. The resulting code will be broken,
- it only makes sense to do it to see now test_atomic detects broken
- implementations (another way is to run a UP build on an SMP box).
-*/
-#warning MY_ATOMIC_MODE_DUMMY and MY_ATOMIC_MODE_RWLOCKS are incompatible
-
-typedef char my_atomic_rwlock_t;
-
-#define my_atomic_rwlock_destroy(name)
-#define my_atomic_rwlock_init(name)
-#define my_atomic_rwlock_rdlock(name)
-#define my_atomic_rwlock_wrlock(name)
-#define my_atomic_rwlock_rdunlock(name)
-#define my_atomic_rwlock_wrunlock(name)
-#define MY_ATOMIC_MODE "dummy (non-atomic)"
-#else /* not MY_ATOMIC_MODE_DUMMY */
-
-typedef struct {pthread_mutex_t rw;} my_atomic_rwlock_t;
-
-#ifndef SAFE_MUTEX
-
-/*
- we're using read-write lock macros but map them to mutex locks, and they're
- faster. Still, having semantically rich API we can change the
- underlying implementation, if necessary.
-*/
-#define my_atomic_rwlock_destroy(name) pthread_mutex_destroy(& (name)->rw)
-#define my_atomic_rwlock_init(name) pthread_mutex_init(& (name)->rw, 0)
-#define my_atomic_rwlock_rdlock(name) pthread_mutex_lock(& (name)->rw)
-#define my_atomic_rwlock_wrlock(name) pthread_mutex_lock(& (name)->rw)
-#define my_atomic_rwlock_rdunlock(name) pthread_mutex_unlock(& (name)->rw)
-#define my_atomic_rwlock_wrunlock(name) pthread_mutex_unlock(& (name)->rw)
-
-#else /* SAFE_MUTEX */
-
-/*
- SAFE_MUTEX pollutes the compiling name space with macros
- that alter pthread_mutex_t, pthread_mutex_init, etc.
- Atomic operations should never use the safe mutex wrappers.
- Unfortunately, there is no way to have both:
- - safe mutex macros expanding pthread_mutex_lock to safe_mutex_lock
- - my_atomic macros expanding to unmodified pthread_mutex_lock
- inlined in the same compilation unit.
- So, in case of SAFE_MUTEX, a function call is required.
- Given that SAFE_MUTEX is a debugging facility,
- this extra function call is not a performance concern for
- production builds.
-*/
-C_MODE_START
-extern void plain_pthread_mutex_init(safe_mutex_t *);
-extern void plain_pthread_mutex_destroy(safe_mutex_t *);
-extern void plain_pthread_mutex_lock(safe_mutex_t *);
-extern void plain_pthread_mutex_unlock(safe_mutex_t *);
-C_MODE_END
-
-#define my_atomic_rwlock_destroy(name) plain_pthread_mutex_destroy(&(name)->rw)
-#define my_atomic_rwlock_init(name) plain_pthread_mutex_init(&(name)->rw)
-#define my_atomic_rwlock_rdlock(name) plain_pthread_mutex_lock(&(name)->rw)
-#define my_atomic_rwlock_wrlock(name) plain_pthread_mutex_lock(&(name)->rw)
-#define my_atomic_rwlock_rdunlock(name) plain_pthread_mutex_unlock(&(name)->rw)
-#define my_atomic_rwlock_wrunlock(name) plain_pthread_mutex_unlock(&(name)->rw)
-
-#endif /* SAFE_MUTEX */
-
-#define MY_ATOMIC_MODE "mutex"
-#ifndef MY_ATOMIC_MODE_RWLOCKS
-#define MY_ATOMIC_MODE_RWLOCKS 1
-#endif
-#endif
-
-#define make_atomic_add_body(S) int ## S sav; sav= *a; *a+= v; v=sav;
-#define make_atomic_fas_body(S) int ## S sav; sav= *a; *a= v; v=sav;
-#define make_atomic_cas_body(S) if ((ret= (*a == *cmp))) *a= set; else *cmp=*a;
-#define make_atomic_load_body(S) ret= *a;
-#define make_atomic_store_body(S) *a= v;
-
-#endif /* ATOMIC_RWLOCK_INCLUDED */
diff --git a/dep/mysqllite/include/internal/atomic/solaris.h b/dep/mysqllite/include/internal/atomic/solaris.h
deleted file mode 100644
index 5643f878cd2..00000000000
--- a/dep/mysqllite/include/internal/atomic/solaris.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 2008 MySQL AB, 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _atomic_h_cleanup_
-#define _atomic_h_cleanup_ "atomic/solaris.h"
-
-#include <atomic.h>
-
-#define MY_ATOMIC_MODE "solaris-atomic"
-
-#if defined(__GNUC__)
-#define atomic_typeof(T,V) __typeof__(V)
-#else
-#define atomic_typeof(T,V) T
-#endif
-
-#define uintptr_t void *
-#define atomic_or_ptr_nv(X,Y) (void *)atomic_or_ulong_nv((volatile ulong_t *)X, Y)
-
-#define make_atomic_cas_body(S) \
- atomic_typeof(uint ## S ## _t, *cmp) sav; \
- sav = atomic_cas_ ## S( \
- (volatile uint ## S ## _t *)a, \
- (uint ## S ## _t)*cmp, \
- (uint ## S ## _t)set); \
- if (! (ret= (sav == *cmp))) \
- *cmp= sav;
-
-#define make_atomic_add_body(S) \
- int ## S nv; /* new value */ \
- nv= atomic_add_ ## S ## _nv((volatile uint ## S ## _t *)a, v); \
- v= nv - v
-
-/* ------------------------------------------------------------------------ */
-
-#ifdef MY_ATOMIC_MODE_DUMMY
-
-#define make_atomic_load_body(S) ret= *a
-#define make_atomic_store_body(S) *a= v
-
-#else /* MY_ATOMIC_MODE_DUMMY */
-
-#define make_atomic_load_body(S) \
- ret= atomic_or_ ## S ## _nv((volatile uint ## S ## _t *)a, 0)
-
-#define make_atomic_store_body(S) \
- (void) atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v)
-
-#endif
-
-#define make_atomic_fas_body(S) \
- v= atomic_swap_ ## S((volatile uint ## S ## _t *)a, (uint ## S ## _t)v)
-
-#else /* cleanup */
-
-#undef uintptr_t
-#undef atomic_or_ptr_nv
-
-#endif
-
diff --git a/dep/mysqllite/include/internal/atomic/x86-gcc.h b/dep/mysqllite/include/internal/atomic/x86-gcc.h
deleted file mode 100644
index ea3202aa9c9..00000000000
--- a/dep/mysqllite/include/internal/atomic/x86-gcc.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef ATOMIC_X86_GCC_INCLUDED
-#define ATOMIC_X86_GCC_INCLUDED
-
-/* Copyright (C) 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- XXX 64-bit atomic operations can be implemented using
- cmpxchg8b, if necessary. Though I've heard that not all 64-bit
- architectures support double-word (128-bit) cas.
-*/
-
-/*
- No special support of 8 and 16 bit operations are implemented here
- currently.
-*/
-#undef MY_ATOMIC_HAS_8_AND_16
-
-#ifdef __x86_64__
-# ifdef MY_ATOMIC_NO_XADD
-# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix "-no-xadd"
-# else
-# define MY_ATOMIC_MODE "gcc-amd64" LOCK_prefix
-# endif
-#else
-# ifdef MY_ATOMIC_NO_XADD
-# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix "-no-xadd"
-# else
-# define MY_ATOMIC_MODE "gcc-x86" LOCK_prefix
-# endif
-#endif
-
-/* fix -ansi errors while maintaining readability */
-#ifndef asm
-#define asm __asm__
-#endif
-
-#ifndef MY_ATOMIC_NO_XADD
-#define make_atomic_add_body(S) make_atomic_add_body ## S
-#define make_atomic_cas_body(S) make_atomic_cas_body ## S
-#endif
-
-#define make_atomic_add_body32 \
- asm volatile (LOCK_prefix "; xadd %0, %1;" \
- : "+r" (v), "=m" (*a) \
- : "m" (*a) \
- : "memory")
-
-#define make_atomic_cas_body32 \
- __typeof__(*cmp) sav; \
- asm volatile (LOCK_prefix "; cmpxchg %3, %0; setz %2;" \
- : "=m" (*a), "=a" (sav), "=q" (ret) \
- : "r" (set), "m" (*a), "a" (*cmp) \
- : "memory"); \
- if (!ret) \
- *cmp= sav
-
-#ifdef __x86_64__
-#define make_atomic_add_body64 make_atomic_add_body32
-#define make_atomic_cas_body64 make_atomic_cas_body32
-
-#define make_atomic_fas_body(S) \
- asm volatile ("xchg %0, %1;" \
- : "+r" (v), "=m" (*a) \
- : "m" (*a) \
- : "memory")
-
-/*
- Actually 32/64-bit reads/writes are always atomic on x86_64,
- nonetheless issue memory barriers as appropriate.
-*/
-#define make_atomic_load_body(S) \
- /* Serialize prior load and store operations. */ \
- asm volatile ("mfence" ::: "memory"); \
- ret= *a; \
- /* Prevent compiler from reordering instructions. */ \
- asm volatile ("" ::: "memory")
-#define make_atomic_store_body(S) \
- asm volatile ("; xchg %0, %1;" \
- : "=m" (*a), "+r" (v) \
- : "m" (*a) \
- : "memory")
-
-#else
-/*
- Use default implementations of 64-bit operations since we solved
- the 64-bit problem on 32-bit platforms for CAS, no need to solve it
- once more for ADD, LOAD, STORE and FAS as well.
- Since we already added add32 support, we need to define add64
- here, but we haven't defined fas, load and store at all, so
- we can fallback on default implementations.
-*/
-#define make_atomic_add_body64 \
- int64 tmp=*a; \
- while (!my_atomic_cas64(a, &tmp, tmp+v)) ; \
- v=tmp;
-
-/*
- On some platforms (e.g. Mac OS X and Solaris) the ebx register
- is held as a pointer to the global offset table. Thus we're not
- allowed to use the b-register on those platforms when compiling
- PIC code, to avoid this we push ebx and pop ebx. The new value
- is copied directly from memory to avoid problems with a implicit
- manipulation of the stack pointer by the push.
-
- cmpxchg8b works on both 32-bit platforms and 64-bit platforms but
- the code here is only used on 32-bit platforms, on 64-bit
- platforms the much simpler make_atomic_cas_body32 will work
- fine.
-*/
-#define make_atomic_cas_body64 \
- asm volatile ("push %%ebx;" \
- "movl (%%ecx), %%ebx;" \
- "movl 4(%%ecx), %%ecx;" \
- LOCK_prefix "; cmpxchg8b %0;" \
- "setz %2; pop %%ebx" \
- : "=m" (*a), "+A" (*cmp), "=c" (ret) \
- : "c" (&set), "m" (*a) \
- : "memory", "esp")
-#endif
-
-/*
- The implementation of make_atomic_cas_body32 is adaptable to
- the OS word size, so on 64-bit platforms it will automatically
- adapt to 64-bits and so it will work also on 64-bit platforms
-*/
-#define make_atomic_cas_bodyptr make_atomic_cas_body32
-
-#ifdef MY_ATOMIC_MODE_DUMMY
-#define make_atomic_load_body(S) ret=*a
-#define make_atomic_store_body(S) *a=v
-#endif
-#endif /* ATOMIC_X86_GCC_INCLUDED */
diff --git a/dep/mysqllite/include/internal/base64.h b/dep/mysqllite/include/internal/base64.h
deleted file mode 100644
index 4ac0aa72ad8..00000000000
--- a/dep/mysqllite/include/internal/base64.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef __BASE64_H_INCLUDED__
-#define __BASE64_H_INCLUDED__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- Calculate how much memory needed for dst of base64_encode()
-*/
-int base64_needed_encoded_length(int length_of_data);
-
-/*
- Calculate how much memory needed for dst of base64_decode()
-*/
-int base64_needed_decoded_length(int length_of_encoded_data);
-
-/*
- Encode data as a base64 string
-*/
-int base64_encode(const void *src, size_t src_len, char *dst);
-
-/*
- Decode a base64 string into data
-*/
-int base64_decode(const char *src, size_t src_len,
- void *dst, const char **end_ptr);
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* !__BASE64_H_INCLUDED__ */
diff --git a/dep/mysqllite/include/internal/hash.h b/dep/mysqllite/include/internal/hash.h
deleted file mode 100644
index d390cb7d4e6..00000000000
--- a/dep/mysqllite/include/internal/hash.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Dynamic hashing of record with different key-length */
-
-#ifndef _hash_h
-#define _hash_h
-
-#include "my_global.h" /* uchar */
-#include "my_sys.h" /* DYNAMIC_ARRAY */
-
-/*
- This forward declaration is used from C files where the real
- definition is included before. Since C does not allow repeated
- typedef declarations, even when identical, the definition may not be
- repeated.
-*/
-#ifndef CHARSET_INFO_DEFINED
-#define CHARSET_INFO_DEFINED
-typedef struct charset_info_st CHARSET_INFO;
-#endif /* CHARSET_INFO_DEFINED */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- Overhead to store an element in hash
- Can be used to approximate memory consumption for a hash
- */
-#define HASH_OVERHEAD (sizeof(char*)*2)
-
-/* flags for hash_init */
-#define HASH_UNIQUE 1 /* hash_insert fails on duplicate key */
-
-typedef uint my_hash_value_type;
-typedef uchar *(*my_hash_get_key)(const uchar *,size_t*,my_bool);
-typedef void (*my_hash_free_key)(void *);
-
-typedef struct st_hash {
- size_t key_offset,key_length; /* Length of key if const length */
- size_t blength;
- ulong records;
- uint flags;
- DYNAMIC_ARRAY array; /* Place for hash_keys */
- my_hash_get_key get_key;
- void (*free)(void *);
- CHARSET_INFO *charset;
-} HASH;
-
-/* A search iterator state */
-typedef uint HASH_SEARCH_STATE;
-
-#define my_hash_init(A,B,C,D,E,F,G,H) \
- _my_hash_init(A,0,B,C,D,E,F,G,H)
-#define my_hash_init2(A,B,C,D,E,F,G,H,I) \
- _my_hash_init(A,B,C,D,E,F,G,H,I)
-my_bool _my_hash_init(HASH *hash, uint growth_size, CHARSET_INFO *charset,
- ulong default_array_elements, size_t key_offset,
- size_t key_length, my_hash_get_key get_key,
- void (*free_element)(void*),
- uint flags);
-void my_hash_free(HASH *tree);
-void my_hash_reset(HASH *hash);
-uchar *my_hash_element(HASH *hash, ulong idx);
-uchar *my_hash_search(const HASH *info, const uchar *key, size_t length);
-uchar *my_hash_search_using_hash_value(const HASH *info,
- my_hash_value_type hash_value,
- const uchar *key, size_t length);
-my_hash_value_type my_calc_hash(const HASH *info,
- const uchar *key, size_t length);
-uchar *my_hash_first(const HASH *info, const uchar *key, size_t length,
- HASH_SEARCH_STATE *state);
-uchar *my_hash_first_from_hash_value(const HASH *info,
- my_hash_value_type hash_value,
- const uchar *key,
- size_t length,
- HASH_SEARCH_STATE *state);
-uchar *my_hash_next(const HASH *info, const uchar *key, size_t length,
- HASH_SEARCH_STATE *state);
-my_bool my_hash_insert(HASH *info, const uchar *data);
-my_bool my_hash_delete(HASH *hash, uchar *record);
-my_bool my_hash_update(HASH *hash, uchar *record, uchar *old_key,
- size_t old_key_length);
-void my_hash_replace(HASH *hash, HASH_SEARCH_STATE *state, uchar *new_row);
-my_bool my_hash_check(HASH *hash); /* Only in debug library */
-
-#define my_hash_clear(H) bzero((char*) (H), sizeof(*(H)))
-#define my_hash_inited(H) ((H)->blength != 0)
-#define my_hash_init_opt(A,B,C,D,E,F,G,H) \
- (!my_hash_inited(A) && _my_hash_init(A,0,B,C,D,E,F,G,H))
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/internal/lf.h b/dep/mysqllite/include/internal/lf.h
deleted file mode 100644
index e9fb094493f..00000000000
--- a/dep/mysqllite/include/internal/lf.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/* Copyright (C) 2007-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _lf_h
-#define _lf_h
-
-#include <my_atomic.h>
-
-C_MODE_START
-
-/*
- Helpers to define both func() and _func(), where
- func() is a _func() protected by my_atomic_rwlock_wrlock()
-*/
-
-#define lock_wrap(f, t, proto_args, args, lock) \
-t _ ## f proto_args; \
-static inline t f proto_args \
-{ \
- t ret; \
- my_atomic_rwlock_wrlock(lock); \
- ret= _ ## f args; \
- my_atomic_rwlock_wrunlock(lock); \
- return ret; \
-}
-
-#define lock_wrap_void(f, proto_args, args, lock) \
-void _ ## f proto_args; \
-static inline void f proto_args \
-{ \
- my_atomic_rwlock_wrlock(lock); \
- _ ## f args; \
- my_atomic_rwlock_wrunlock(lock); \
-}
-
-#define nolock_wrap(f, t, proto_args, args) \
-t _ ## f proto_args; \
-static inline t f proto_args \
-{ \
- return _ ## f args; \
-}
-
-#define nolock_wrap_void(f, proto_args, args) \
-void _ ## f proto_args; \
-static inline void f proto_args \
-{ \
- _ ## f args; \
-}
-
-/*
- wait-free dynamic array, see lf_dynarray.c
-
- 4 levels of 256 elements each mean 4311810304 elements in an array - it
- should be enough for a while
-*/
-#define LF_DYNARRAY_LEVEL_LENGTH 256
-#define LF_DYNARRAY_LEVELS 4
-
-typedef struct {
- void * volatile level[LF_DYNARRAY_LEVELS];
- uint size_of_element;
- my_atomic_rwlock_t lock;
-} LF_DYNARRAY;
-
-typedef int (*lf_dynarray_func)(void *, void *);
-
-void lf_dynarray_init(LF_DYNARRAY *array, uint element_size);
-void lf_dynarray_destroy(LF_DYNARRAY *array);
-
-nolock_wrap(lf_dynarray_value, void *,
- (LF_DYNARRAY *array, uint idx),
- (array, idx))
-lock_wrap(lf_dynarray_lvalue, void *,
- (LF_DYNARRAY *array, uint idx),
- (array, idx),
- &array->lock)
-nolock_wrap(lf_dynarray_iterate, int,
- (LF_DYNARRAY *array, lf_dynarray_func func, void *arg),
- (array, func, arg))
-
-/*
- pin manager for memory allocator, lf_alloc-pin.c
-*/
-
-#define LF_PINBOX_PINS 4
-#define LF_PURGATORY_SIZE 10
-
-typedef void lf_pinbox_free_func(void *, void *, void*);
-
-typedef struct {
- LF_DYNARRAY pinarray;
- lf_pinbox_free_func *free_func;
- void *free_func_arg;
- uint free_ptr_offset;
- uint32 volatile pinstack_top_ver; /* this is a versioned pointer */
- uint32 volatile pins_in_array; /* number of elements in array */
-} LF_PINBOX;
-
-typedef struct {
- void * volatile pin[LF_PINBOX_PINS];
- LF_PINBOX *pinbox;
- void **stack_ends_here;
- void *purgatory;
- uint32 purgatory_count;
- uint32 volatile link;
-/* we want sizeof(LF_PINS) to be 64 to avoid false sharing */
-#if SIZEOF_INT*2+SIZEOF_CHARP*(LF_PINBOX_PINS+3) != 64
- char pad[64-sizeof(uint32)*2-sizeof(void*)*(LF_PINBOX_PINS+3)];
-#endif
-} LF_PINS;
-
-/*
- shortcut macros to do an atomic_wrlock on a structure that uses pins
- (e.g. lf_hash).
-*/
-#define lf_rwlock_by_pins(PINS) \
- my_atomic_rwlock_wrlock(&(PINS)->pinbox->pinarray.lock)
-#define lf_rwunlock_by_pins(PINS) \
- my_atomic_rwlock_wrunlock(&(PINS)->pinbox->pinarray.lock)
-
-/*
- compile-time assert, to require "no less than N" pins
- it's enough if it'll fail on at least one compiler, so
- we'll enable it on GCC only, which supports zero-length arrays.
-*/
-#if defined(__GNUC__) && defined(MY_LF_EXTRA_DEBUG)
-#define LF_REQUIRE_PINS(N) \
- static const char require_pins[LF_PINBOX_PINS-N] \
- __attribute__ ((unused)); \
- static const int LF_NUM_PINS_IN_THIS_FILE= N;
-#define _lf_pin(PINS, PIN, ADDR) \
- ( \
- assert(PIN < LF_NUM_PINS_IN_THIS_FILE), \
- my_atomic_storeptr(&(PINS)->pin[PIN], (ADDR)) \
- )
-#else
-#define LF_REQUIRE_PINS(N)
-#define _lf_pin(PINS, PIN, ADDR) my_atomic_storeptr(&(PINS)->pin[PIN], (ADDR))
-#endif
-
-#define _lf_unpin(PINS, PIN) _lf_pin(PINS, PIN, NULL)
-#define lf_pin(PINS, PIN, ADDR) \
- do { \
- lf_rwlock_by_pins(PINS); \
- _lf_pin(PINS, PIN, ADDR); \
- lf_rwunlock_by_pins(PINS); \
- } while (0)
-#define lf_unpin(PINS, PIN) lf_pin(PINS, PIN, NULL)
-#define _lf_assert_pin(PINS, PIN) assert((PINS)->pin[PIN] != 0)
-#define _lf_assert_unpin(PINS, PIN) assert((PINS)->pin[PIN] == 0)
-
-void lf_pinbox_init(LF_PINBOX *pinbox, uint free_ptr_offset,
- lf_pinbox_free_func *free_func, void * free_func_arg);
-void lf_pinbox_destroy(LF_PINBOX *pinbox);
-
-lock_wrap(lf_pinbox_get_pins, LF_PINS *,
- (LF_PINBOX *pinbox),
- (pinbox),
- &pinbox->pinarray.lock)
-lock_wrap_void(lf_pinbox_put_pins,
- (LF_PINS *pins),
- (pins),
- &pins->pinbox->pinarray.lock)
-lock_wrap_void(lf_pinbox_free,
- (LF_PINS *pins, void *addr),
- (pins, addr),
- &pins->pinbox->pinarray.lock)
-
-/*
- memory allocator, lf_alloc-pin.c
-*/
-
-typedef struct st_lf_allocator {
- LF_PINBOX pinbox;
- uchar * volatile top;
- uint element_size;
- uint32 volatile mallocs;
-} LF_ALLOCATOR;
-
-void lf_alloc_init(LF_ALLOCATOR *allocator, uint size, uint free_ptr_offset);
-void lf_alloc_destroy(LF_ALLOCATOR *allocator);
-uint lf_alloc_pool_count(LF_ALLOCATOR *allocator);
-/*
- shortcut macros to access underlying pinbox functions from an LF_ALLOCATOR
- see _lf_pinbox_get_pins() and _lf_pinbox_put_pins()
-*/
-#define _lf_alloc_free(PINS, PTR) _lf_pinbox_free((PINS), (PTR))
-#define lf_alloc_free(PINS, PTR) lf_pinbox_free((PINS), (PTR))
-#define _lf_alloc_get_pins(A) _lf_pinbox_get_pins(&(A)->pinbox)
-#define lf_alloc_get_pins(A) lf_pinbox_get_pins(&(A)->pinbox)
-#define _lf_alloc_put_pins(PINS) _lf_pinbox_put_pins(PINS)
-#define lf_alloc_put_pins(PINS) lf_pinbox_put_pins(PINS)
-#define lf_alloc_direct_free(ALLOC, ADDR) my_free((ADDR))
-
-lock_wrap(lf_alloc_new, void *,
- (LF_PINS *pins),
- (pins),
- &pins->pinbox->pinarray.lock)
-
-C_MODE_END
-
-/*
- extendible hash, lf_hash.c
-*/
-#include <hash.h>
-
-C_MODE_START
-
-#define LF_HASH_UNIQUE 1
-
-/* lf_hash overhead per element is sizeof(LF_SLIST). */
-
-typedef struct {
- LF_DYNARRAY array; /* hash itself */
- LF_ALLOCATOR alloc; /* allocator for elements */
- my_hash_get_key get_key; /* see HASH */
- CHARSET_INFO *charset; /* see HASH */
- uint key_offset, key_length; /* see HASH */
- uint element_size; /* size of memcpy'ed area on insert */
- uint flags; /* LF_HASH_UNIQUE, etc */
- int32 volatile size; /* size of array */
- int32 volatile count; /* number of elements in the hash */
-} LF_HASH;
-
-void lf_hash_init(LF_HASH *hash, uint element_size, uint flags,
- uint key_offset, uint key_length, my_hash_get_key get_key,
- CHARSET_INFO *charset);
-void lf_hash_destroy(LF_HASH *hash);
-int lf_hash_insert(LF_HASH *hash, LF_PINS *pins, const void *data);
-void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen);
-int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen);
-/*
- shortcut macros to access underlying pinbox functions from an LF_HASH
- see _lf_pinbox_get_pins() and _lf_pinbox_put_pins()
-*/
-#define _lf_hash_get_pins(HASH) _lf_alloc_get_pins(&(HASH)->alloc)
-#define lf_hash_get_pins(HASH) lf_alloc_get_pins(&(HASH)->alloc)
-#define _lf_hash_put_pins(PINS) _lf_pinbox_put_pins(PINS)
-#define lf_hash_put_pins(PINS) lf_pinbox_put_pins(PINS)
-#define lf_hash_search_unpin(PINS) lf_unpin((PINS), 2)
-/*
- cleanup
-*/
-
-#undef lock_wrap_void
-#undef lock_wrap
-#undef nolock_wrap_void
-#undef nolock_wrap
-
-C_MODE_END
-
-#endif
-
diff --git a/dep/mysqllite/include/internal/my_aes.h b/dep/mysqllite/include/internal/my_aes.h
deleted file mode 100644
index 2e2a66b4968..00000000000
--- a/dep/mysqllite/include/internal/my_aes.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef MY_AES_INCLUDED
-#define MY_AES_INCLUDED
-
-/* Copyright (C) 2002 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-/* Header file for my_aes.c */
-/* Wrapper to give simple interface for MySQL to AES standard encryption */
-
-#include "rijndael.h"
-
-C_MODE_START
-
-#define AES_KEY_LENGTH 128 /* Must be 128 192 or 256 */
-
-/*
- my_aes_encrypt - Crypt buffer with AES encryption algorithm.
- source - Pointer to data for encryption
- source_length - size of encryption data
- dest - buffer to place encrypted data (must be large enough)
- key - Key to be used for encryption
- kel_length - Length of the key. Will handle keys of any length
-
- returns - size of encrypted data, or negative in case of error.
-*/
-
-int my_aes_encrypt(const char *source, int source_length, char *dest,
- const char *key, int key_length);
-
-/*
- my_aes_decrypt - DeCrypt buffer with AES encryption algorithm.
- source - Pointer to data for decryption
- source_length - size of encrypted data
- dest - buffer to place decrypted data (must be large enough)
- key - Key to be used for decryption
- kel_length - Length of the key. Will handle keys of any length
-
- returns - size of original data, or negative in case of error.
-*/
-
-
-int my_aes_decrypt(const char *source, int source_length, char *dest,
- const char *key, int key_length);
-
-/*
- my_aes_get_size - get size of buffer which will be large enough for encrypted
- data
- source_length - length of data to be encrypted
-
- returns - size of buffer required to store encrypted data
-*/
-
-int my_aes_get_size(int source_length);
-
-C_MODE_END
-
-#endif /* MY_AES_INCLUDED */
diff --git a/dep/mysqllite/include/internal/my_alarm.h b/dep/mysqllite/include/internal/my_alarm.h
deleted file mode 100644
index fa396cf02f9..00000000000
--- a/dep/mysqllite/include/internal/my_alarm.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- File to include when we want to use alarm or a loop_counter to display
- some information when a program is running
-*/
-#ifndef _my_alarm_h
-#define _my_alarm_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern int volatile my_have_got_alarm;
-extern ulong my_time_to_wait_for_lock;
-
-#if defined(HAVE_ALARM) && !defined(NO_ALARM_LOOP)
-#include <signal.h>
-#define ALARM_VARIABLES uint alarm_old=0; \
- sig_return alarm_signal=0
-#define ALARM_INIT my_have_got_alarm=0 ; \
- alarm_old=(uint) alarm(MY_HOW_OFTEN_TO_ALARM); \
- alarm_signal=signal(SIGALRM,my_set_alarm_variable);
-#define ALARM_END (void) signal(SIGALRM,alarm_signal); \
- (void) alarm(alarm_old);
-#define ALARM_TEST my_have_got_alarm
-#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
-#define ALARM_REINIT (void) alarm(MY_HOW_OFTEN_TO_ALARM); \
- (void) signal(SIGALRM,my_set_alarm_variable);\
- my_have_got_alarm=0;
-#else
-#define ALARM_REINIT (void) alarm((uint) MY_HOW_OFTEN_TO_ALARM); \
- my_have_got_alarm=0;
-#endif /* SIGNAL_HANDLER_RESET_ON_DELIVERY */
-#else
-#define ALARM_VARIABLES long alarm_pos=0,alarm_end_pos=MY_HOW_OFTEN_TO_WRITE-1
-#define ALARM_INIT
-#define ALARM_END
-#define ALARM_TEST (alarm_pos++ >= alarm_end_pos)
-#define ALARM_REINIT alarm_end_pos+=MY_HOW_OFTEN_TO_WRITE
-#endif /* HAVE_ALARM */
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/internal/my_atomic.h b/dep/mysqllite/include/internal/my_atomic.h
deleted file mode 100644
index c2d514012d9..00000000000
--- a/dep/mysqllite/include/internal/my_atomic.h
+++ /dev/null
@@ -1,287 +0,0 @@
-#ifndef MY_ATOMIC_INCLUDED
-#define MY_ATOMIC_INCLUDED
-
-/* Copyright (C) 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This header defines five atomic operations:
-
- my_atomic_add#(&var, what)
- 'Fetch and Add'
- add 'what' to *var, and return the old value of *var
-
- my_atomic_fas#(&var, what)
- 'Fetch And Store'
- store 'what' in *var, and return the old value of *var
-
- my_atomic_cas#(&var, &old, new)
- An odd variation of 'Compare And Set/Swap'
- if *var is equal to *old, then store 'new' in *var, and return TRUE
- otherwise store *var in *old, and return FALSE
- Usually, &old should not be accessed if the operation is successful.
-
- my_atomic_load#(&var)
- return *var
-
- my_atomic_store#(&var, what)
- store 'what' in *var
-
- '#' is substituted by a size suffix - 8, 16, 32, 64, or ptr
- (e.g. my_atomic_add8, my_atomic_fas32, my_atomic_casptr).
-
- NOTE This operations are not always atomic, so they always must be
- enclosed in my_atomic_rwlock_rdlock(lock)/my_atomic_rwlock_rdunlock(lock)
- or my_atomic_rwlock_wrlock(lock)/my_atomic_rwlock_wrunlock(lock).
- Hint: if a code block makes intensive use of atomic ops, it make sense
- to take/release rwlock once for the whole block, not for every statement.
-
- On architectures where these operations are really atomic, rwlocks will
- be optimized away.
- 8- and 16-bit atomics aren't implemented for windows (see generic-msvc.h),
- but can be added, if necessary.
-*/
-
-#ifndef my_atomic_rwlock_init
-
-#define intptr void *
-/**
- Currently we don't support 8-bit and 16-bit operations.
- It can be added later if needed.
-*/
-#undef MY_ATOMIC_HAS_8_16
-
-#ifndef MY_ATOMIC_MODE_RWLOCKS
-/*
- * Attempt to do atomic ops without locks
- */
-#include "atomic/nolock.h"
-#endif
-
-#ifndef make_atomic_cas_body
-/* nolock.h was not able to generate even a CAS function, fall back */
-#include "atomic/rwlock.h"
-#endif
-
-/* define missing functions by using the already generated ones */
-#ifndef make_atomic_add_body
-#define make_atomic_add_body(S) \
- int ## S tmp=*a; \
- while (!my_atomic_cas ## S(a, &tmp, tmp+v)) ; \
- v=tmp;
-#endif
-#ifndef make_atomic_fas_body
-#define make_atomic_fas_body(S) \
- int ## S tmp=*a; \
- while (!my_atomic_cas ## S(a, &tmp, v)) ; \
- v=tmp;
-#endif
-#ifndef make_atomic_load_body
-#define make_atomic_load_body(S) \
- ret= 0; /* avoid compiler warning */ \
- (void)(my_atomic_cas ## S(a, &ret, ret));
-#endif
-#ifndef make_atomic_store_body
-#define make_atomic_store_body(S) \
- (void)(my_atomic_fas ## S (a, v));
-#endif
-
-/*
- transparent_union doesn't work in g++
- Bug ?
-
- Darwin's gcc doesn't want to put pointers in a transparent_union
- when built with -arch ppc64. Complains:
- warning: 'transparent_union' attribute ignored
-*/
-#if defined(__GNUC__) && !defined(__cplusplus) && \
- ! (defined(__APPLE__) && (defined(_ARCH_PPC64) ||defined (_ARCH_PPC)))
-/*
- we want to be able to use my_atomic_xxx functions with
- both signed and unsigned integers. But gcc will issue a warning
- "passing arg N of `my_atomic_XXX' as [un]signed due to prototype"
- if the signedness of the argument doesn't match the prototype, or
- "pointer targets in passing argument N of my_atomic_XXX differ in signedness"
- if int* is used where uint* is expected (or vice versa).
- Let's shut these warnings up
-*/
-#define make_transparent_unions(S) \
- typedef union { \
- int ## S i; \
- uint ## S u; \
- } U_ ## S __attribute__ ((transparent_union)); \
- typedef union { \
- int ## S volatile *i; \
- uint ## S volatile *u; \
- } Uv_ ## S __attribute__ ((transparent_union));
-#define uintptr intptr
-make_transparent_unions(8)
-make_transparent_unions(16)
-make_transparent_unions(32)
-make_transparent_unions(64)
-make_transparent_unions(ptr)
-#undef uintptr
-#undef make_transparent_unions
-#define a U_a.i
-#define cmp U_cmp.i
-#define v U_v.i
-#define set U_set.i
-#else
-#define U_8 int8
-#define U_16 int16
-#define U_32 int32
-#define U_64 int64
-#define U_ptr intptr
-#define Uv_8 int8
-#define Uv_16 int16
-#define Uv_32 int32
-#define Uv_64 int64
-#define Uv_ptr intptr
-#define U_a volatile *a
-#define U_cmp *cmp
-#define U_v v
-#define U_set set
-#endif /* __GCC__ transparent_union magic */
-
-#define make_atomic_cas(S) \
-static inline int my_atomic_cas ## S(Uv_ ## S U_a, \
- Uv_ ## S U_cmp, U_ ## S U_set) \
-{ \
- int8 ret; \
- make_atomic_cas_body(S); \
- return ret; \
-}
-
-#define make_atomic_add(S) \
-static inline int ## S my_atomic_add ## S( \
- Uv_ ## S U_a, U_ ## S U_v) \
-{ \
- make_atomic_add_body(S); \
- return v; \
-}
-
-#define make_atomic_fas(S) \
-static inline int ## S my_atomic_fas ## S( \
- Uv_ ## S U_a, U_ ## S U_v) \
-{ \
- make_atomic_fas_body(S); \
- return v; \
-}
-
-#define make_atomic_load(S) \
-static inline int ## S my_atomic_load ## S(Uv_ ## S U_a) \
-{ \
- int ## S ret; \
- make_atomic_load_body(S); \
- return ret; \
-}
-
-#define make_atomic_store(S) \
-static inline void my_atomic_store ## S( \
- Uv_ ## S U_a, U_ ## S U_v) \
-{ \
- make_atomic_store_body(S); \
-}
-
-#ifdef MY_ATOMIC_HAS_8_16
-make_atomic_cas(8)
-make_atomic_cas(16)
-#endif
-make_atomic_cas(32)
-make_atomic_cas(64)
-make_atomic_cas(ptr)
-
-#ifdef MY_ATOMIC_HAS_8_16
-make_atomic_add(8)
-make_atomic_add(16)
-#endif
-make_atomic_add(32)
-make_atomic_add(64)
-
-#ifdef MY_ATOMIC_HAS_8_16
-make_atomic_load(8)
-make_atomic_load(16)
-#endif
-make_atomic_load(32)
-make_atomic_load(64)
-make_atomic_load(ptr)
-
-#ifdef MY_ATOMIC_HAS_8_16
-make_atomic_fas(8)
-make_atomic_fas(16)
-#endif
-make_atomic_fas(32)
-make_atomic_fas(64)
-make_atomic_fas(ptr)
-
-#ifdef MY_ATOMIC_HAS_8_16
-make_atomic_store(8)
-make_atomic_store(16)
-#endif
-make_atomic_store(32)
-make_atomic_store(64)
-make_atomic_store(ptr)
-
-#ifdef _atomic_h_cleanup_
-#include _atomic_h_cleanup_
-#undef _atomic_h_cleanup_
-#endif
-
-#undef U_8
-#undef U_16
-#undef U_32
-#undef U_64
-#undef U_ptr
-#undef Uv_8
-#undef Uv_16
-#undef Uv_32
-#undef Uv_64
-#undef Uv_ptr
-#undef a
-#undef cmp
-#undef v
-#undef set
-#undef U_a
-#undef U_cmp
-#undef U_v
-#undef U_set
-#undef make_atomic_add
-#undef make_atomic_cas
-#undef make_atomic_load
-#undef make_atomic_store
-#undef make_atomic_fas
-#undef make_atomic_add_body
-#undef make_atomic_cas_body
-#undef make_atomic_load_body
-#undef make_atomic_store_body
-#undef make_atomic_fas_body
-#undef intptr
-
-/*
- the macro below defines (as an expression) the code that
- will be run in spin-loops. Intel manuals recummend to have PAUSE there.
- It is expected to be defined in include/atomic/ *.h files
-*/
-#ifndef LF_BACKOFF
-#define LF_BACKOFF (1)
-#endif
-
-#define MY_ATOMIC_OK 0
-#define MY_ATOMIC_NOT_1CPU 1
-extern int my_atomic_initialize();
-
-#endif
-
-#endif /* MY_ATOMIC_INCLUDED */
diff --git a/dep/mysqllite/include/internal/my_base.h b/dep/mysqllite/include/internal/my_base.h
deleted file mode 100644
index 347bda01bef..00000000000
--- a/dep/mysqllite/include/internal/my_base.h
+++ /dev/null
@@ -1,572 +0,0 @@
-/* Copyright (C) 2000, 2011, Oracle and/or its affiliates. All rights
- reserved
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This file includes constants used with all databases */
-
-#ifndef _my_base_h
-#define _my_base_h
-
-#ifndef stdin /* Included first in handler */
-#define CHSIZE_USED
-#include <my_global.h>
-#include <my_dir.h> /* This includes types */
-#include <my_sys.h>
-#include <m_string.h>
-#include <errno.h>
-
-#ifndef EOVERFLOW
-#define EOVERFLOW 84
-#endif
-
-#endif /* stdin */
-#include <my_list.h>
-
-/* The following is bits in the flag parameter to ha_open() */
-
-#define HA_OPEN_ABORT_IF_LOCKED 0 /* default */
-#define HA_OPEN_WAIT_IF_LOCKED 1
-#define HA_OPEN_IGNORE_IF_LOCKED 2
-#define HA_OPEN_TMP_TABLE 4 /* Table is a temp table */
-#define HA_OPEN_DELAY_KEY_WRITE 8 /* Don't update index */
-#define HA_OPEN_ABORT_IF_CRASHED 16
-#define HA_OPEN_FOR_REPAIR 32 /* open even if crashed */
-#define HA_OPEN_FROM_SQL_LAYER 64
-#define HA_OPEN_MMAP 128 /* open memory mapped */
-#define HA_OPEN_COPY 256 /* Open copy (for repair) */
-/* Internal temp table, used for temporary results */
-#define HA_OPEN_INTERNAL_TABLE 512
-
-/* The following is parameter to ha_rkey() how to use key */
-
-/*
- We define a complete-field prefix of a key value as a prefix where
- the last included field in the prefix contains the full field, not
- just some bytes from the start of the field. A partial-field prefix
- is allowed to contain only a few first bytes from the last included
- field.
-
- Below HA_READ_KEY_EXACT, ..., HA_READ_BEFORE_KEY can take a
- complete-field prefix of a key value as the search
- key. HA_READ_PREFIX and HA_READ_PREFIX_LAST could also take a
- partial-field prefix, but currently (4.0.10) they are only used with
- complete-field prefixes. MySQL uses a padding trick to implement
- LIKE 'abc%' queries.
-
- NOTE that in InnoDB HA_READ_PREFIX_LAST will NOT work with a
- partial-field prefix because InnoDB currently strips spaces from the
- end of varchar fields!
-*/
-
-enum ha_rkey_function {
- HA_READ_KEY_EXACT, /* Find first record else error */
- HA_READ_KEY_OR_NEXT, /* Record or next record */
- HA_READ_KEY_OR_PREV, /* Record or previous */
- HA_READ_AFTER_KEY, /* Find next rec. after key-record */
- HA_READ_BEFORE_KEY, /* Find next rec. before key-record */
- HA_READ_PREFIX, /* Key which as same prefix */
- HA_READ_PREFIX_LAST, /* Last key with the same prefix */
- HA_READ_PREFIX_LAST_OR_PREV, /* Last or prev key with the same prefix */
- HA_READ_MBR_CONTAIN,
- HA_READ_MBR_INTERSECT,
- HA_READ_MBR_WITHIN,
- HA_READ_MBR_DISJOINT,
- HA_READ_MBR_EQUAL
-};
-
- /* Key algorithm types */
-
-enum ha_key_alg {
- HA_KEY_ALG_UNDEF= 0, /* Not specified (old file) */
- HA_KEY_ALG_BTREE= 1, /* B-tree, default one */
- HA_KEY_ALG_RTREE= 2, /* R-tree, for spatial searches */
- HA_KEY_ALG_HASH= 3, /* HASH keys (HEAP tables) */
- HA_KEY_ALG_FULLTEXT= 4 /* FULLTEXT (MyISAM tables) */
-};
-
- /* Storage media types */
-
-enum ha_storage_media {
- HA_SM_DEFAULT= 0, /* Not specified (engine default) */
- HA_SM_DISK= 1, /* DISK storage */
- HA_SM_MEMORY= 2 /* MAIN MEMORY storage */
-};
-
- /* The following is parameter to ha_extra() */
-
-enum ha_extra_function {
- HA_EXTRA_NORMAL=0, /* Optimize for space (def) */
- HA_EXTRA_QUICK=1, /* Optimize for speed */
- HA_EXTRA_NOT_USED=2,
- HA_EXTRA_CACHE=3, /* Cache record in HA_rrnd() */
- HA_EXTRA_NO_CACHE=4, /* End caching of records (def) */
- HA_EXTRA_NO_READCHECK=5, /* No readcheck on update */
- HA_EXTRA_READCHECK=6, /* Use readcheck (def) */
- HA_EXTRA_KEYREAD=7, /* Read only key to database */
- HA_EXTRA_NO_KEYREAD=8, /* Normal read of records (def) */
- HA_EXTRA_NO_USER_CHANGE=9, /* No user is allowed to write */
- HA_EXTRA_KEY_CACHE=10,
- HA_EXTRA_NO_KEY_CACHE=11,
- HA_EXTRA_WAIT_LOCK=12, /* Wait until file is avalably (def) */
- HA_EXTRA_NO_WAIT_LOCK=13, /* If file is locked, return quickly */
- HA_EXTRA_WRITE_CACHE=14, /* Use write cache in ha_write() */
- HA_EXTRA_FLUSH_CACHE=15, /* flush write_record_cache */
- HA_EXTRA_NO_KEYS=16, /* Remove all update of keys */
- HA_EXTRA_KEYREAD_CHANGE_POS=17, /* Keyread, but change pos */
- /* xxxxchk -r must be used */
- HA_EXTRA_REMEMBER_POS=18, /* Remember pos for next/prev */
- HA_EXTRA_RESTORE_POS=19,
- HA_EXTRA_REINIT_CACHE=20, /* init cache from current record */
- HA_EXTRA_FORCE_REOPEN=21, /* Datafile have changed on disk */
- HA_EXTRA_FLUSH, /* Flush tables to disk */
- HA_EXTRA_NO_ROWS, /* Don't write rows */
- HA_EXTRA_RESET_STATE, /* Reset positions */
- HA_EXTRA_IGNORE_DUP_KEY, /* Dup keys don't rollback everything*/
- HA_EXTRA_NO_IGNORE_DUP_KEY,
- HA_EXTRA_PREPARE_FOR_DROP,
- HA_EXTRA_PREPARE_FOR_UPDATE, /* Remove read cache if problems */
- HA_EXTRA_PRELOAD_BUFFER_SIZE, /* Set buffer size for preloading */
- /*
- On-the-fly switching between unique and non-unique key inserting.
- */
- HA_EXTRA_CHANGE_KEY_TO_UNIQUE,
- HA_EXTRA_CHANGE_KEY_TO_DUP,
- /*
- When using HA_EXTRA_KEYREAD, overwrite only key member fields and keep
- other fields intact. When this is off (by default) InnoDB will use memcpy
- to overwrite entire row.
- */
- HA_EXTRA_KEYREAD_PRESERVE_FIELDS,
- HA_EXTRA_MMAP,
- /*
- Ignore if the a tuple is not found, continue processing the
- transaction and ignore that 'row'. Needed for idempotency
- handling on the slave
-
- Currently only used by NDB storage engine. Partition handler ignores flag.
- */
- HA_EXTRA_IGNORE_NO_KEY,
- HA_EXTRA_NO_IGNORE_NO_KEY,
- /*
- Mark the table as a log table. For some handlers (e.g. CSV) this results
- in a special locking for the table.
- */
- HA_EXTRA_MARK_AS_LOG_TABLE,
- /*
- Informs handler that write_row() which tries to insert new row into the
- table and encounters some already existing row with same primary/unique
- key can replace old row with new row instead of reporting error (basically
- it informs handler that we do REPLACE instead of simple INSERT).
- Off by default.
- */
- HA_EXTRA_WRITE_CAN_REPLACE,
- HA_EXTRA_WRITE_CANNOT_REPLACE,
- /*
- Inform handler that delete_row()/update_row() cannot batch deletes/updates
- and should perform them immediately. This may be needed when table has
- AFTER DELETE/UPDATE triggers which access to subject table.
- These flags are reset by the handler::extra(HA_EXTRA_RESET) call.
- */
- HA_EXTRA_DELETE_CANNOT_BATCH,
- HA_EXTRA_UPDATE_CANNOT_BATCH,
- /*
- Inform handler that an "INSERT...ON DUPLICATE KEY UPDATE" will be
- executed. This condition is unset by HA_EXTRA_NO_IGNORE_DUP_KEY.
- */
- HA_EXTRA_INSERT_WITH_UPDATE,
- /* Inform handler that we will do a rename */
- HA_EXTRA_PREPARE_FOR_RENAME,
- /*
- Special actions for MERGE tables.
- */
- HA_EXTRA_ADD_CHILDREN_LIST,
- HA_EXTRA_ATTACH_CHILDREN,
- HA_EXTRA_IS_ATTACHED_CHILDREN,
- HA_EXTRA_DETACH_CHILDREN
-};
-
-/* Compatible option, to be deleted in 6.0 */
-#define HA_EXTRA_PREPARE_FOR_DELETE HA_EXTRA_PREPARE_FOR_DROP
-
- /* The following is parameter to ha_panic() */
-
-enum ha_panic_function {
- HA_PANIC_CLOSE, /* Close all databases */
- HA_PANIC_WRITE, /* Unlock and write status */
- HA_PANIC_READ /* Lock and read keyinfo */
-};
-
- /* The following is parameter to ha_create(); keytypes */
-
-enum ha_base_keytype {
- HA_KEYTYPE_END=0,
- HA_KEYTYPE_TEXT=1, /* Key is sorted as letters */
- HA_KEYTYPE_BINARY=2, /* Key is sorted as unsigned chars */
- HA_KEYTYPE_SHORT_INT=3,
- HA_KEYTYPE_LONG_INT=4,
- HA_KEYTYPE_FLOAT=5,
- HA_KEYTYPE_DOUBLE=6,
- HA_KEYTYPE_NUM=7, /* Not packed num with pre-space */
- HA_KEYTYPE_USHORT_INT=8,
- HA_KEYTYPE_ULONG_INT=9,
- HA_KEYTYPE_LONGLONG=10,
- HA_KEYTYPE_ULONGLONG=11,
- HA_KEYTYPE_INT24=12,
- HA_KEYTYPE_UINT24=13,
- HA_KEYTYPE_INT8=14,
- /* Varchar (0-255 bytes) with length packed with 1 byte */
- HA_KEYTYPE_VARTEXT1=15, /* Key is sorted as letters */
- HA_KEYTYPE_VARBINARY1=16, /* Key is sorted as unsigned chars */
- /* Varchar (0-65535 bytes) with length packed with 2 bytes */
- HA_KEYTYPE_VARTEXT2=17, /* Key is sorted as letters */
- HA_KEYTYPE_VARBINARY2=18, /* Key is sorted as unsigned chars */
- HA_KEYTYPE_BIT=19
-};
-
-#define HA_MAX_KEYTYPE 31 /* Must be log2-1 */
-
- /* These flags kan be OR:ed to key-flag */
-
-#define HA_NOSAME 1 /* Set if not dupplicated records */
-#define HA_PACK_KEY 2 /* Pack string key to previous key */
-#define HA_AUTO_KEY 16
-#define HA_BINARY_PACK_KEY 32 /* Packing of all keys to prev key */
-#define HA_FULLTEXT 128 /* For full-text search */
-#define HA_UNIQUE_CHECK 256 /* Check the key for uniqueness */
-#define HA_SPATIAL 1024 /* For spatial search */
-#define HA_NULL_ARE_EQUAL 2048 /* NULL in key are cmp as equal */
-#define HA_GENERATED_KEY 8192 /* Automaticly generated key */
-
- /* The combination of the above can be used for key type comparison. */
-#define HA_KEYFLAG_MASK (HA_NOSAME | HA_PACK_KEY | HA_AUTO_KEY | \
- HA_BINARY_PACK_KEY | HA_FULLTEXT | HA_UNIQUE_CHECK | \
- HA_SPATIAL | HA_NULL_ARE_EQUAL | HA_GENERATED_KEY)
-
-/*
- Key contains partial segments.
-
- This flag is internal to the MySQL server by design. It is not supposed
- neither to be saved in FRM-files, nor to be passed to storage engines.
- It is intended to pass information into internal static sort_keys(KEY *,
- KEY *) function.
-
- This flag can be calculated -- it's based on key lengths comparison.
-*/
-#define HA_KEY_HAS_PART_KEY_SEG 65536
-
- /* Automatic bits in key-flag */
-
-#define HA_SPACE_PACK_USED 4 /* Test for if SPACE_PACK used */
-#define HA_VAR_LENGTH_KEY 8
-#define HA_NULL_PART_KEY 64
-#define HA_USES_COMMENT 4096
-#define HA_USES_PARSER 16384 /* Fulltext index uses [pre]parser */
-#define HA_USES_BLOCK_SIZE ((uint) 32768)
-#define HA_SORT_ALLOWS_SAME 512 /* Intern bit when sorting records */
-
- /* These flags can be added to key-seg-flag */
-
-#define HA_SPACE_PACK 1 /* Pack space in key-seg */
-#define HA_PART_KEY_SEG 4 /* Used by MySQL for part-key-cols */
-#define HA_VAR_LENGTH_PART 8
-#define HA_NULL_PART 16
-#define HA_BLOB_PART 32
-#define HA_SWAP_KEY 64
-#define HA_REVERSE_SORT 128 /* Sort key in reverse order */
-#define HA_NO_SORT 256 /* do not bother sorting on this keyseg */
-/*
- End space in unique/varchar are considered equal. (Like 'a' and 'a ')
- Only needed for internal temporary tables.
-*/
-#define HA_END_SPACE_ARE_EQUAL 512
-#define HA_BIT_PART 1024
-
- /* optionbits for database */
-#define HA_OPTION_PACK_RECORD 1
-#define HA_OPTION_PACK_KEYS 2
-#define HA_OPTION_COMPRESS_RECORD 4
-#define HA_OPTION_LONG_BLOB_PTR 8 /* new ISAM format */
-#define HA_OPTION_TMP_TABLE 16
-#define HA_OPTION_CHECKSUM 32
-#define HA_OPTION_DELAY_KEY_WRITE 64
-#define HA_OPTION_NO_PACK_KEYS 128 /* Reserved for MySQL */
-#define HA_OPTION_CREATE_FROM_ENGINE 256
-#define HA_OPTION_RELIES_ON_SQL_LAYER 512
-#define HA_OPTION_NULL_FIELDS 1024
-#define HA_OPTION_PAGE_CHECKSUM 2048
-#define HA_OPTION_TEMP_COMPRESS_RECORD ((uint) 16384) /* set by isamchk */
-#define HA_OPTION_READ_ONLY_DATA ((uint) 32768) /* Set by isamchk */
-
- /* Bits in flag to create() */
-
-#define HA_DONT_TOUCH_DATA 1 /* Don't empty datafile (isamchk) */
-#define HA_PACK_RECORD 2 /* Request packed record format */
-#define HA_CREATE_TMP_TABLE 4
-#define HA_CREATE_CHECKSUM 8
-#define HA_CREATE_KEEP_FILES 16 /* don't overwrite .MYD and MYI */
-#define HA_CREATE_PAGE_CHECKSUM 32
-#define HA_CREATE_DELAY_KEY_WRITE 64
-#define HA_CREATE_RELIES_ON_SQL_LAYER 128
-
-/*
- The following flags (OR-ed) are passed to handler::info() method.
- The method copies misc handler information out of the storage engine
- to data structures accessible from MySQL
-
- Same flags are also passed down to mi_status, myrg_status, etc.
-*/
-
-/* this one is not used */
-#define HA_STATUS_POS 1
-/*
- assuming the table keeps shared actual copy of the 'info' and
- local, possibly outdated copy, the following flag means that
- it should not try to get the actual data (locking the shared structure)
- slightly outdated version will suffice
-*/
-#define HA_STATUS_NO_LOCK 2
-/* update the time of the last modification (in handler::update_time) */
-#define HA_STATUS_TIME 4
-/*
- update the 'constant' part of the info:
- handler::max_data_file_length, max_index_file_length, create_time
- sortkey, ref_length, block_size, data_file_name, index_file_name.
- handler::table->s->keys_in_use, keys_for_keyread, rec_per_key
-*/
-#define HA_STATUS_CONST 8
-/*
- update the 'variable' part of the info:
- handler::records, deleted, data_file_length, index_file_length,
- check_time, mean_rec_length
-*/
-#define HA_STATUS_VARIABLE 16
-/*
- get the information about the key that caused last duplicate value error
- update handler::errkey and handler::dupp_ref
- see handler::get_dup_key()
-*/
-#define HA_STATUS_ERRKEY 32
-/*
- update handler::auto_increment_value
-*/
-#define HA_STATUS_AUTO 64
-/*
- Get also delete_length when HA_STATUS_VARIABLE is called. It's ok to set it also
- when only HA_STATUS_VARIABLE but it won't be used.
-*/
-#define HA_STATUS_VARIABLE_EXTRA 128
-
-/*
- Errorcodes given by handler functions
-
- opt_sum_query() assumes these codes are > 1
- Do not add error numbers before HA_ERR_FIRST.
- If necessary to add lower numbers, change HA_ERR_FIRST accordingly.
-*/
-#define HA_ERR_FIRST 120 /* Copy of first error nr.*/
-
-#define HA_ERR_KEY_NOT_FOUND 120 /* Didn't find key on read or update */
-#define HA_ERR_FOUND_DUPP_KEY 121 /* Dupplicate key on write */
-#define HA_ERR_INTERNAL_ERROR 122 /* Internal error */
-#define HA_ERR_RECORD_CHANGED 123 /* Uppdate with is recoverable */
-#define HA_ERR_WRONG_INDEX 124 /* Wrong index given to function */
-#define HA_ERR_CRASHED 126 /* Indexfile is crashed */
-#define HA_ERR_WRONG_IN_RECORD 127 /* Record-file is crashed */
-#define HA_ERR_OUT_OF_MEM 128 /* Record-file is crashed */
-#define HA_ERR_NOT_A_TABLE 130 /* not a MYI file - no signature */
-#define HA_ERR_WRONG_COMMAND 131 /* Command not supported */
-#define HA_ERR_OLD_FILE 132 /* old databasfile */
-#define HA_ERR_NO_ACTIVE_RECORD 133 /* No record read in update() */
-#define HA_ERR_RECORD_DELETED 134 /* A record is not there */
-#define HA_ERR_RECORD_FILE_FULL 135 /* No more room in file */
-#define HA_ERR_INDEX_FILE_FULL 136 /* No more room in file */
-#define HA_ERR_END_OF_FILE 137 /* end in next/prev/first/last */
-#define HA_ERR_UNSUPPORTED 138 /* unsupported extension used */
-#define HA_ERR_TO_BIG_ROW 139 /* Too big row */
-#define HA_WRONG_CREATE_OPTION 140 /* Wrong create option */
-#define HA_ERR_FOUND_DUPP_UNIQUE 141 /* Dupplicate unique on write */
-#define HA_ERR_UNKNOWN_CHARSET 142 /* Can't open charset */
-#define HA_ERR_WRONG_MRG_TABLE_DEF 143 /* conflicting tables in MERGE */
-#define HA_ERR_CRASHED_ON_REPAIR 144 /* Last (automatic?) repair failed */
-#define HA_ERR_CRASHED_ON_USAGE 145 /* Table must be repaired */
-#define HA_ERR_LOCK_WAIT_TIMEOUT 146
-#define HA_ERR_LOCK_TABLE_FULL 147
-#define HA_ERR_READ_ONLY_TRANSACTION 148 /* Updates not allowed */
-#define HA_ERR_LOCK_DEADLOCK 149
-#define HA_ERR_CANNOT_ADD_FOREIGN 150 /* Cannot add a foreign key constr. */
-#define HA_ERR_NO_REFERENCED_ROW 151 /* Cannot add a child row */
-#define HA_ERR_ROW_IS_REFERENCED 152 /* Cannot delete a parent row */
-#define HA_ERR_NO_SAVEPOINT 153 /* No savepoint with that name */
-#define HA_ERR_NON_UNIQUE_BLOCK_SIZE 154 /* Non unique key block size */
-#define HA_ERR_NO_SUCH_TABLE 155 /* The table does not exist in engine */
-#define HA_ERR_TABLE_EXIST 156 /* The table existed in storage engine */
-#define HA_ERR_NO_CONNECTION 157 /* Could not connect to storage engine */
-/* NULLs are not supported in spatial index */
-#define HA_ERR_NULL_IN_SPATIAL 158
-#define HA_ERR_TABLE_DEF_CHANGED 159 /* The table changed in storage engine */
-/* There's no partition in table for given value */
-#define HA_ERR_NO_PARTITION_FOUND 160
-#define HA_ERR_RBR_LOGGING_FAILED 161 /* Row-based binlogging of row failed */
-#define HA_ERR_DROP_INDEX_FK 162 /* Index needed in foreign key constr */
-/*
- Upholding foreign key constraints would lead to a duplicate key error
- in some other table.
-*/
-#define HA_ERR_FOREIGN_DUPLICATE_KEY 163
-/* The table changed in storage engine */
-#define HA_ERR_TABLE_NEEDS_UPGRADE 164
-#define HA_ERR_TABLE_READONLY 165 /* The table is not writable */
-
-#define HA_ERR_AUTOINC_READ_FAILED 166 /* Failed to get next autoinc value */
-#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set row autoinc value */
-#define HA_ERR_GENERIC 168 /* Generic error */
-/* row not actually updated: new values same as the old values */
-#define HA_ERR_RECORD_IS_THE_SAME 169
-/* It is not possible to log this statement */
-#define HA_ERR_LOGGING_IMPOSSIBLE 170 /* It is not possible to log this
- statement */
-#define HA_ERR_CORRUPT_EVENT 171 /* The event was corrupt, leading to
- illegal data being read */
-#define HA_ERR_NEW_FILE 172 /* New file format */
-#define HA_ERR_ROWS_EVENT_APPLY 173 /* The event could not be processed
- no other hanlder error happened */
-#define HA_ERR_INITIALIZATION 174 /* Error during initialization */
-#define HA_ERR_FILE_TOO_SHORT 175 /* File too short */
-#define HA_ERR_WRONG_CRC 176 /* Wrong CRC on page */
-#define HA_ERR_TOO_MANY_CONCURRENT_TRXS 177 /*Too many active concurrent transactions */
-#define HA_ERR_LAST 177 /* Copy of last error nr */
-
-/* Number of different errors */
-#define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1)
-
- /* Other constants */
-
-#define HA_NAMELEN 64 /* Max length of saved filename */
-#define NO_SUCH_KEY (~(uint)0) /* used as a key no. */
-
-typedef ulong key_part_map;
-#define HA_WHOLE_KEY (~(key_part_map)0)
-
- /* Intern constants in databases */
-
- /* bits in _search */
-#define SEARCH_FIND 1
-#define SEARCH_NO_FIND 2
-#define SEARCH_SAME 4
-#define SEARCH_BIGGER 8
-#define SEARCH_SMALLER 16
-#define SEARCH_SAVE_BUFF 32
-#define SEARCH_UPDATE 64
-#define SEARCH_PREFIX 128
-#define SEARCH_LAST 256
-#define MBR_CONTAIN 512
-#define MBR_INTERSECT 1024
-#define MBR_WITHIN 2048
-#define MBR_DISJOINT 4096
-#define MBR_EQUAL 8192
-#define MBR_DATA 16384
-#define SEARCH_NULL_ARE_EQUAL 32768 /* NULL in keys are equal */
-#define SEARCH_NULL_ARE_NOT_EQUAL 65536 /* NULL in keys are not equal */
-
- /* bits in opt_flag */
-#define QUICK_USED 1
-#define READ_CACHE_USED 2
-#define READ_CHECK_USED 4
-#define KEY_READ_USED 8
-#define WRITE_CACHE_USED 16
-#define OPT_NO_ROWS 32
-
- /* bits in update */
-#define HA_STATE_CHANGED 1 /* Database has changed */
-#define HA_STATE_AKTIV 2 /* Has a current record */
-#define HA_STATE_WRITTEN 4 /* Record is written */
-#define HA_STATE_DELETED 8
-#define HA_STATE_NEXT_FOUND 16 /* Next found record (record before) */
-#define HA_STATE_PREV_FOUND 32 /* Prev found record (record after) */
-#define HA_STATE_NO_KEY 64 /* Last read didn't find record */
-#define HA_STATE_KEY_CHANGED 128
-#define HA_STATE_WRITE_AT_END 256 /* set in _ps_find_writepos */
-#define HA_STATE_BUFF_SAVED 512 /* If current keybuff is info->buff */
-#define HA_STATE_ROW_CHANGED 1024 /* To invalide ROW cache */
-#define HA_STATE_EXTEND_BLOCK 2048
-#define HA_STATE_RNEXT_SAME 4096 /* rnext_same occupied lastkey2 */
-
-/* myisampack expects no more than 32 field types. */
-enum en_fieldtype {
- FIELD_LAST=-1,FIELD_NORMAL,FIELD_SKIP_ENDSPACE,FIELD_SKIP_PRESPACE,
- FIELD_SKIP_ZERO,FIELD_BLOB,FIELD_CONSTANT,FIELD_INTERVALL,FIELD_ZERO,
- FIELD_VARCHAR,FIELD_CHECK,
- FIELD_enum_val_count
-};
-
-enum data_file_type {
- STATIC_RECORD, DYNAMIC_RECORD, COMPRESSED_RECORD, BLOCK_RECORD
-};
-
-/* For key ranges */
-
-#define NO_MIN_RANGE 1
-#define NO_MAX_RANGE 2
-#define NEAR_MIN 4
-#define NEAR_MAX 8
-#define UNIQUE_RANGE 16
-#define EQ_RANGE 32
-#define NULL_RANGE 64
-#define GEOM_FLAG 128
-#define SKIP_RANGE 256
-
-typedef struct st_key_range
-{
- const uchar *key;
- uint length;
- key_part_map keypart_map;
- enum ha_rkey_function flag;
-} key_range;
-
-typedef struct st_key_multi_range
-{
- key_range start_key;
- key_range end_key;
- char *ptr; /* Free to use by caller (ptr to row etc) */
- uint range_flag; /* key range flags see above */
-} KEY_MULTI_RANGE;
-
-
-/* For number of records */
-#ifdef BIG_TABLES
-#define rows2double(A) ulonglong2double(A)
-typedef my_off_t ha_rows;
-#else
-#define rows2double(A) (double) (A)
-typedef ulong ha_rows;
-#endif
-
-#define HA_POS_ERROR (~ (ha_rows) 0)
-#define HA_OFFSET_ERROR (~ (my_off_t) 0)
-
-#if SYSTEM_SIZEOF_OFF_T == 4
-#define MAX_FILE_SIZE INT_MAX32
-#else
-#define MAX_FILE_SIZE LONGLONG_MAX
-#endif
-
-#define HA_VARCHAR_PACKLENGTH(field_length) ((field_length) < 256 ? 1 :2)
-
-/* invalidator function reference for Query Cache */
-C_MODE_START
-typedef void (* invalidator_by_filename)(const char * filename);
-C_MODE_END
-
-#endif /* _my_base_h */
diff --git a/dep/mysqllite/include/internal/my_bit.h b/dep/mysqllite/include/internal/my_bit.h
deleted file mode 100644
index b396b84b0d8..00000000000
--- a/dep/mysqllite/include/internal/my_bit.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef MY_BIT_INCLUDED
-#define MY_BIT_INCLUDED
-
-/*
- Some useful bit functions
-*/
-
-C_MODE_START
-
-extern const char _my_bits_nbits[256];
-extern const uchar _my_bits_reverse_table[256];
-
-/*
- Find smallest X in 2^X >= value
- This can be used to divide a number with value by doing a shift instead
-*/
-
-static inline uint my_bit_log2(ulong value)
-{
- uint bit;
- for (bit=0 ; value > 1 ; value>>=1, bit++) ;
- return bit;
-}
-
-static inline uint my_count_bits(ulonglong v)
-{
-#if SIZEOF_LONG_LONG > 4
- /* The following code is a bit faster on 16 bit machines than if we would
- only shift v */
- ulong v2=(ulong) (v >> 32);
- return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
- _my_bits_nbits[(uchar) (v >> 8)] +
- _my_bits_nbits[(uchar) (v >> 16)] +
- _my_bits_nbits[(uchar) (v >> 24)] +
- _my_bits_nbits[(uchar) (v2)] +
- _my_bits_nbits[(uchar) (v2 >> 8)] +
- _my_bits_nbits[(uchar) (v2 >> 16)] +
- _my_bits_nbits[(uchar) (v2 >> 24)]);
-#else
- return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
- _my_bits_nbits[(uchar) (v >> 8)] +
- _my_bits_nbits[(uchar) (v >> 16)] +
- _my_bits_nbits[(uchar) (v >> 24)]);
-#endif
-}
-
-static inline uint my_count_bits_ushort(ushort v)
-{
- return _my_bits_nbits[v];
-}
-
-
-/*
- Next highest power of two
-
- SYNOPSIS
- my_round_up_to_next_power()
- v Value to check
-
- RETURN
- Next or equal power of 2
- Note: 0 will return 0
-
- NOTES
- Algorithm by Sean Anderson, according to:
- http://graphics.stanford.edu/~seander/bithacks.html
- (Orignal code public domain)
-
- Comments shows how this works with 01100000000000000000000000001011
-*/
-
-static inline uint32 my_round_up_to_next_power(uint32 v)
-{
- v--; /* 01100000000000000000000000001010 */
- v|= v >> 1; /* 01110000000000000000000000001111 */
- v|= v >> 2; /* 01111100000000000000000000001111 */
- v|= v >> 4; /* 01111111110000000000000000001111 */
- v|= v >> 8; /* 01111111111111111100000000001111 */
- v|= v >> 16; /* 01111111111111111111111111111111 */
- return v+1; /* 10000000000000000000000000000000 */
-}
-
-static inline uint32 my_clear_highest_bit(uint32 v)
-{
- uint32 w=v >> 1;
- w|= w >> 1;
- w|= w >> 2;
- w|= w >> 4;
- w|= w >> 8;
- w|= w >> 16;
- return v & w;
-}
-
-static inline uint32 my_reverse_bits(uint32 key)
-{
- return
- (_my_bits_reverse_table[ key & 255] << 24) |
- (_my_bits_reverse_table[(key>> 8) & 255] << 16) |
- (_my_bits_reverse_table[(key>>16) & 255] << 8) |
- _my_bits_reverse_table[(key>>24) ];
-}
-
-C_MODE_END
-
-#endif /* MY_BIT_INCLUDED */
diff --git a/dep/mysqllite/include/internal/my_bitmap.h b/dep/mysqllite/include/internal/my_bitmap.h
deleted file mode 100644
index 78b33b09a51..00000000000
--- a/dep/mysqllite/include/internal/my_bitmap.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_bitmap_h_
-#define _my_bitmap_h_
-
-#define MY_BIT_NONE (~(uint) 0)
-
-#include <m_string.h>
-
-typedef uint32 my_bitmap_map;
-
-typedef struct st_bitmap
-{
- my_bitmap_map *bitmap;
- uint n_bits; /* number of bits occupied by the above */
- my_bitmap_map last_word_mask;
- my_bitmap_map *last_word_ptr;
- /*
- mutex will be acquired for the duration of each bitmap operation if
- thread_safe flag in bitmap_init was set. Otherwise, we optimize by not
- acquiring the mutex
- */
- mysql_mutex_t *mutex;
-} MY_BITMAP;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-extern void create_last_word_mask(MY_BITMAP *map);
-extern my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits,
- my_bool thread_safe);
-extern my_bool bitmap_is_clear_all(const MY_BITMAP *map);
-extern my_bool bitmap_is_prefix(const MY_BITMAP *map, uint prefix_size);
-extern my_bool bitmap_is_set_all(const MY_BITMAP *map);
-extern my_bool bitmap_is_subset(const MY_BITMAP *map1, const MY_BITMAP *map2);
-extern my_bool bitmap_is_overlapping(const MY_BITMAP *map1,
- const MY_BITMAP *map2);
-extern my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit);
-extern my_bool bitmap_test_and_clear(MY_BITMAP *map, uint bitmap_bit);
-extern my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit);
-extern uint bitmap_set_next(MY_BITMAP *map);
-extern uint bitmap_get_first(const MY_BITMAP *map);
-extern uint bitmap_get_first_set(const MY_BITMAP *map);
-extern uint bitmap_bits_set(const MY_BITMAP *map);
-extern void bitmap_free(MY_BITMAP *map);
-extern void bitmap_set_above(MY_BITMAP *map, uint from_byte, uint use_bit);
-extern void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size);
-extern void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2);
-extern void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2);
-extern void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2);
-extern void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2);
-extern void bitmap_invert(MY_BITMAP *map);
-extern void bitmap_copy(MY_BITMAP *map, const MY_BITMAP *map2);
-
-extern uint bitmap_lock_set_next(MY_BITMAP *map);
-extern void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit);
-/* Fast, not thread safe, bitmap functions */
-#define bitmap_buffer_size(bits) (((bits)+31)/32)*4
-#define no_bytes_in_map(map) (((map)->n_bits + 7)/8)
-#define no_words_in_map(map) (((map)->n_bits + 31)/32)
-#define bytes_word_aligned(bytes) (4*((bytes + 3)/4))
-#define _bitmap_set_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
- |= (1 << ((BIT) & 7)))
-#define _bitmap_flip_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
- ^= (1 << ((BIT) & 7)))
-#define _bitmap_clear_bit(MAP, BIT) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
- &= ~ (1 << ((BIT) & 7)))
-#define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
- & (1 << ((BIT) & 7)))
-/*
- WARNING!
-
- The below symbols are inline functions in DEBUG builds and macros in
- non-DEBUG builds. The latter evaluate their 'bit' argument twice.
-
- NEVER use an increment/decrement operator with the 'bit' argument.
- It would work with DEBUG builds, but fails later in production builds!
-
- FORBIDDEN: bitmap_set_bit($my_bitmap, (field++)->field_index);
-*/
-#ifndef DBUG_OFF
-static inline void
-bitmap_set_bit(MY_BITMAP *map,uint bit)
-{
- DBUG_ASSERT(bit < (map)->n_bits);
- _bitmap_set_bit(map,bit);
-}
-static inline void
-bitmap_flip_bit(MY_BITMAP *map,uint bit)
-{
- DBUG_ASSERT(bit < (map)->n_bits);
- _bitmap_flip_bit(map,bit);
-}
-static inline void
-bitmap_clear_bit(MY_BITMAP *map,uint bit)
-{
- DBUG_ASSERT(bit < (map)->n_bits);
- _bitmap_clear_bit(map,bit);
-}
-static inline uint
-bitmap_is_set(const MY_BITMAP *map,uint bit)
-{
- DBUG_ASSERT(bit < (map)->n_bits);
- return _bitmap_is_set(map,bit);
-}
-#else
-#define bitmap_set_bit(MAP, BIT) _bitmap_set_bit(MAP, BIT)
-#define bitmap_flip_bit(MAP, BIT) _bitmap_flip_bit(MAP, BIT)
-#define bitmap_clear_bit(MAP, BIT) _bitmap_clear_bit(MAP, BIT)
-#define bitmap_is_set(MAP, BIT) _bitmap_is_set(MAP, BIT)
-#endif
-
-static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2)
-{
- *(map1)->last_word_ptr|= (map1)->last_word_mask;
- *(map2)->last_word_ptr|= (map2)->last_word_mask;
- return memcmp((map1)->bitmap, (map2)->bitmap, 4*no_words_in_map((map1)))==0;
-}
-
-#define bitmap_clear_all(MAP) \
- { memset((MAP)->bitmap, 0, 4*no_words_in_map((MAP))); }
-#define bitmap_set_all(MAP) \
- (memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP))))
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _my_bitmap_h_ */
diff --git a/dep/mysqllite/include/internal/my_handler.h b/dep/mysqllite/include/internal/my_handler.h
deleted file mode 100644
index ba0d3fc313f..00000000000
--- a/dep/mysqllite/include/internal/my_handler.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright (C) 2002-2006 MySQL AB
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This program 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-#ifndef _my_handler_h
-#define _my_handler_h
-
-#include "myisampack.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "m_ctype.h" /* CHARSET_INFO */
-
-/*
- There is a hard limit for the maximum number of keys as there are only
- 8 bits in the index file header for the number of keys in a table.
- This means that 0..255 keys can exist for a table. The idea of
- HA_MAX_POSSIBLE_KEY is to ensure that one can use myisamchk & tools on
- a MyISAM table for which one has more keys than MyISAM is normally
- compiled for. If you don't have this, you will get a core dump when
- running myisamchk compiled for 128 keys on a table with 255 keys.
-*/
-
-#define HA_MAX_POSSIBLE_KEY 255 /* For myisamchk */
-/*
- The following defines can be increased if necessary.
- But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH.
-*/
-
-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */
-#define HA_MAX_KEY_SEG 16 /* Max segments for key */
-
-#define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24+ 6+6)
-#define HA_MAX_KEY_BUFF (HA_MAX_KEY_LENGTH+HA_MAX_KEY_SEG*6+8+8)
-
-typedef struct st_HA_KEYSEG /* Key-portion */
-{
- CHARSET_INFO *charset;
- uint32 start; /* Start of key in record */
- uint32 null_pos; /* position to NULL indicator */
- uint16 bit_pos; /* Position to bit part */
- uint16 flag;
- uint16 length; /* Keylength */
- uint16 language;
- uint8 type; /* Type of key (for sort) */
- uint8 null_bit; /* bitmask to test for NULL */
- uint8 bit_start,bit_end; /* if bit field */
- uint8 bit_length; /* Length of bit part */
-} HA_KEYSEG;
-
-#define get_key_length(length,key) \
-{ if (*(uchar*) (key) != 255) \
- length= (uint) *(uchar*) ((key)++); \
- else \
- { length= mi_uint2korr((key)+1); (key)+=3; } \
-}
-
-#define get_key_length_rdonly(length,key) \
-{ if (*(uchar*) (key) != 255) \
- length= ((uint) *(uchar*) ((key))); \
- else \
- { length= mi_uint2korr((key)+1); } \
-}
-
-#define get_key_pack_length(length,length_pack,key) \
-{ if (*(uchar*) (key) != 255) \
- { length= (uint) *(uchar*) ((key)++); length_pack= 1; }\
- else \
- { length=mi_uint2korr((key)+1); (key)+= 3; length_pack= 3; } \
-}
-
-#define store_key_length_inc(key,length) \
-{ if ((length) < 255) \
- { *(key)++= (length); } \
- else \
- { *(key)=255; mi_int2store((key)+1,(length)); (key)+=3; } \
-}
-
-#define size_to_store_key_length(length) ((length) < 255 ? 1 : 3)
-
-#define get_rec_bits(bit_ptr, bit_ofs, bit_len) \
- (((((uint16) (bit_ptr)[1] << 8) | (uint16) (bit_ptr)[0]) >> (bit_ofs)) & \
- ((1 << (bit_len)) - 1))
-
-#define set_rec_bits(bits, bit_ptr, bit_ofs, bit_len) \
-{ \
- (bit_ptr)[0]= ((bit_ptr)[0] & ~(((1 << (bit_len)) - 1) << (bit_ofs))) | \
- ((bits) << (bit_ofs)); \
- if ((bit_ofs) + (bit_len) > 8) \
- (bit_ptr)[1]= ((bit_ptr)[1] & ~((1 << ((bit_len) - 8 + (bit_ofs))) - 1)) | \
- ((bits) >> (8 - (bit_ofs))); \
-}
-
-#define clr_rec_bits(bit_ptr, bit_ofs, bit_len) \
- set_rec_bits(0, bit_ptr, bit_ofs, bit_len)
-
-extern int ha_compare_text(CHARSET_INFO *, uchar *, uint, uchar *, uint ,
- my_bool, my_bool);
-extern int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
- register uchar *b, uint key_length, uint nextflag,
- uint *diff_pos);
-
-extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
-extern void my_handler_error_register(void);
-extern void my_handler_error_unregister(void);
-/*
- Inside an in-memory data record, memory pointers to pieces of the
- record (like BLOBs) are stored in their native byte order and in
- this amount of bytes.
-*/
-#define portable_sizeof_char_ptr 8
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _my_handler_h */
diff --git a/dep/mysqllite/include/internal/my_libwrap.h b/dep/mysqllite/include/internal/my_libwrap.h
deleted file mode 100644
index 8235c00d8f3..00000000000
--- a/dep/mysqllite/include/internal/my_libwrap.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef MY_LIBWRAP_INCLUDED
-#define MY_LIBWRAP_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifdef HAVE_LIBWRAP
-#include <tcpd.h>
-#include <syslog.h>
-#ifdef NEED_SYS_SYSLOG_H
-#include <sys/syslog.h>
-#endif /* NEED_SYS_SYSLOG_H */
-
-extern void my_fromhost(struct request_info *req);
-extern int my_hosts_access(struct request_info *req);
-extern char *my_eval_client(struct request_info *req);
-
-#endif /* HAVE_LIBWRAP */
-#endif /* MY_LIBWRAP_INCLUDED */
diff --git a/dep/mysqllite/include/internal/my_md5.h b/dep/mysqllite/include/internal/my_md5.h
deleted file mode 100644
index 782bef8a27a..00000000000
--- a/dep/mysqllite/include/internal/my_md5.h
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef MY_MD5_INCLUDED
-#define MY_MD5_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* See md5.c for explanation and copyright information. */
-
-/*
- * $FreeBSD: src/contrib/cvs/lib/md5.h,v 1.2 1999/12/11 15:10:02 peter Exp $
- */
-
-/* Unlike previous versions of this code, uint32 need not be exactly
- 32 bits, merely 32 bits or more. Choosing a data type which is 32
- bits instead of 64 is not important; speed is considerably more
- important. ANSI guarantees that "unsigned long" will be big enough,
- and always using it seems to have few disadvantages. */
-typedef uint32 cvs_uint32;
-
-typedef struct {
- cvs_uint32 buf[4];
- cvs_uint32 bits[2];
- unsigned char in[64];
-} my_MD5Context;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-void my_MD5Init (my_MD5Context *context);
-void my_MD5Update (my_MD5Context *context,
- unsigned char const *buf, unsigned len);
-void my_MD5Final (unsigned char digest[16],
- my_MD5Context *context);
-
-#ifdef __cplusplus
-}
-#endif
-
-#define MY_MD5_HASH(digest,buf,len) \
-do { \
- my_MD5Context ctx; \
- my_MD5Init (&ctx); \
- my_MD5Update (&ctx, buf, len); \
- my_MD5Final (digest, &ctx); \
-} while (0)
-
-#endif /* MY_MD__INCLUDED */
diff --git a/dep/mysqllite/include/internal/my_nosys.h b/dep/mysqllite/include/internal/my_nosys.h
deleted file mode 100644
index 96ba6d4c464..00000000000
--- a/dep/mysqllite/include/internal/my_nosys.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Header to remove use of my_functions in functions where we need speed and
- where calls to posix functions should work
-*/
-#ifndef _my_nosys_h
-#define _my_nosys_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef __MY_NOSYS__
-#define __MY_NOSYS__
-
-#ifndef HAVE_STDLIB_H
-#include <malloc.h>
-#endif
-
-#undef my_read
-#undef my_write
-#undef my_seek
-#define my_read(a,b,c,d) my_quick_read(a,b,c,d)
-#define my_write(a,b,c,d) my_quick_write(a,b,c)
-extern size_t my_quick_read(File Filedes,uchar *Buffer,size_t Count,
- myf myFlags);
-extern size_t my_quick_write(File Filedes,const uchar *Buffer,size_t Count);
-
-#if defined(USE_HALLOC)
-#define my_malloc(a,b) halloc(a,1)
-#define my_no_flags_free(a) hfree(a)
-#endif
-
-#endif /* __MY_NOSYS__ */
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/internal/my_rdtsc.h b/dep/mysqllite/include/internal/my_rdtsc.h
deleted file mode 100644
index 81bc1aafb58..00000000000
--- a/dep/mysqllite/include/internal/my_rdtsc.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Copyright (C) 2008, 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- rdtsc3 -- multi-platform timer code
- pgulutzan@mysql.com, 2005-08-29
- modified 2008-11-02
-*/
-
-#ifndef MY_RDTSC_H
-#define MY_RDTSC_H
-
-/**
- Characteristics of a timer.
-*/
-struct my_timer_unit_info
-{
- /** Routine used for the timer. */
- ulonglong routine;
- /** Overhead of the timer. */
- ulonglong overhead;
- /** Frequency of the timer. */
- ulonglong frequency;
- /** Resolution of the timer. */
- ulonglong resolution;
-};
-
-/**
- Characteristics of all the supported timers.
- @sa my_timer_init().
-*/
-struct my_timer_info
-{
- /** Characteristics of the cycle timer. */
- struct my_timer_unit_info cycles;
- /** Characteristics of the nanosecond timer. */
- struct my_timer_unit_info nanoseconds;
- /** Characteristics of the microsecond timer. */
- struct my_timer_unit_info microseconds;
- /** Characteristics of the millisecond timer. */
- struct my_timer_unit_info milliseconds;
- /** Characteristics of the tick timer. */
- struct my_timer_unit_info ticks;
-};
-
-typedef struct my_timer_info MY_TIMER_INFO;
-
-C_MODE_START
-
-/**
- A cycle timer.
- @return the current timer value, in cycles.
-*/
-ulonglong my_timer_cycles(void);
-
-/**
- A namoseconds timer.
- @return the current timer value, in nanoseconds.
-*/
-ulonglong my_timer_nanoseconds(void);
-
-/**
- A microseconds timer.
- @return the current timer value, in microseconds.
-*/
-ulonglong my_timer_microseconds(void);
-
-/**
- A millisecond timer.
- @return the current timer value, in milliseconds.
-*/
-ulonglong my_timer_milliseconds(void);
-
-/**
- A ticks timer.
- @return the current timer value, in ticks.
-*/
-ulonglong my_timer_ticks(void);
-
-/**
- Timer initialization function.
- @param [out] mti the timer characteristics.
-*/
-void my_timer_init(MY_TIMER_INFO *mti);
-
-C_MODE_END
-
-#define MY_TIMER_ROUTINE_ASM_X86 1
-#define MY_TIMER_ROUTINE_ASM_X86_64 2
-#define MY_TIMER_ROUTINE_RDTSCLL 3
-#define MY_TIMER_ROUTINE_ASM_X86_WIN 4
-#define MY_TIMER_ROUTINE_RDTSC 5
-#define MY_TIMER_ROUTINE_ASM_IA64 6
-#define MY_TIMER_ROUTINE_ASM_PPC 7
-#define MY_TIMER_ROUTINE_SGI_CYCLE 8
-#define MY_TIMER_ROUTINE_GETHRTIME 9
-#define MY_TIMER_ROUTINE_READ_REAL_TIME 10
-#define MY_TIMER_ROUTINE_CLOCK_GETTIME 11
-#define MY_TIMER_ROUTINE_NXGETTIME 12
-#define MY_TIMER_ROUTINE_GETTIMEOFDAY 13
-#define MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER 14
-#define MY_TIMER_ROUTINE_GETTICKCOUNT 15
-#define MY_TIMER_ROUTINE_TIME 16
-#define MY_TIMER_ROUTINE_TIMES 17
-#define MY_TIMER_ROUTINE_FTIME 18
-#define MY_TIMER_ROUTINE_ASM_PPC64 19
-#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64 20
-#define MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32 21
-#define MY_TIMER_ROUTINE_ASM_SUNPRO_I386 22
-#define MY_TIMER_ROUTINE_ASM_GCC_SPARC64 23
-#define MY_TIMER_ROUTINE_ASM_GCC_SPARC32 24
-#define MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME 25
-#define MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME 26
-#define MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64 27
-
-#endif
-
diff --git a/dep/mysqllite/include/internal/my_stacktrace.h b/dep/mysqllite/include/internal/my_stacktrace.h
deleted file mode 100644
index 8c2c97c68e5..00000000000
--- a/dep/mysqllite/include/internal/my_stacktrace.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_stacktrace_h_
-#define _my_stacktrace_h_
-
-#include <my_global.h>
-
-#ifdef TARGET_OS_LINUX
-#if defined (__x86_64__) || defined (__i386__) || \
- (defined(__alpha__) && defined(__GNUC__))
-#define HAVE_STACKTRACE 1
-#endif
-#elif defined(__WIN__) || defined(HAVE_PRINTSTACK)
-#define HAVE_STACKTRACE 1
-#endif
-
-#if HAVE_BACKTRACE && (HAVE_BACKTRACE_SYMBOLS || HAVE_BACKTRACE_SYMBOLS_FD)
-#undef HAVE_STACKTRACE
-#define HAVE_STACKTRACE 1
-#endif
-
-#define HAVE_WRITE_CORE
-
-#if HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS && \
- HAVE_CXXABI_H && HAVE_ABI_CXA_DEMANGLE && \
- HAVE_WEAK_SYMBOL
-#define BACKTRACE_DEMANGLE 1
-#endif
-
-C_MODE_START
-
-#if defined(HAVE_STACKTRACE) || defined(HAVE_BACKTRACE)
-void my_init_stacktrace();
-void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack);
-void my_safe_print_str(const char* val, int max_len);
-void my_write_core(int sig);
-#if BACKTRACE_DEMANGLE
-char *my_demangle(const char *mangled_name, int *status);
-#endif
-#ifdef __WIN__
-void my_set_exception_pointers(EXCEPTION_POINTERS *ep);
-#endif
-#endif
-
-#ifdef HAVE_WRITE_CORE
-void my_write_core(int sig);
-#endif
-
-C_MODE_END
-
-#endif /* _my_stacktrace_h_ */
diff --git a/dep/mysqllite/include/internal/my_time.h b/dep/mysqllite/include/internal/my_time.h
deleted file mode 100644
index fdfe130c45f..00000000000
--- a/dep/mysqllite/include/internal/my_time.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright (C) 2004-2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This is a private header of sql-common library, containing
- declarations for my_time.c
-*/
-
-#ifndef _my_time_h_
-#define _my_time_h_
-#include "my_global.h"
-#include "mysql_time.h"
-
-C_MODE_START
-
-extern ulonglong log_10_int[20];
-extern uchar days_in_month[];
-
-/*
- Portable time_t replacement.
- Should be signed and hold seconds for 1902 -- 2038-01-19 range
- i.e at least a 32bit variable
-
- Using the system built in time_t is not an option as
- we rely on the above requirements in the time functions
-*/
-typedef long my_time_t;
-
-#define MY_TIME_T_MAX LONG_MAX
-#define MY_TIME_T_MIN LONG_MIN
-
-/* Time handling defaults */
-#define TIMESTAMP_MAX_YEAR 2038
-#define TIMESTAMP_MIN_YEAR (1900 + YY_PART_YEAR - 1)
-#define TIMESTAMP_MAX_VALUE INT_MAX32
-#define TIMESTAMP_MIN_VALUE 1
-
-/* two-digit years < this are 20..; >= this are 19.. */
-#define YY_PART_YEAR 70
-
-/* Flags to str_to_datetime */
-#define TIME_FUZZY_DATE 1
-#define TIME_DATETIME_ONLY 2
-/* Must be same as MODE_NO_ZERO_IN_DATE */
-#define TIME_NO_ZERO_IN_DATE (65536L*2*2*2*2*2*2*2)
-/* Must be same as MODE_NO_ZERO_DATE */
-#define TIME_NO_ZERO_DATE (TIME_NO_ZERO_IN_DATE*2)
-#define TIME_INVALID_DATES (TIME_NO_ZERO_DATE*2)
-
-#define MYSQL_TIME_WARN_TRUNCATED 1
-#define MYSQL_TIME_WARN_OUT_OF_RANGE 2
-
-/* Limits for the TIME data type */
-#define TIME_MAX_HOUR 838
-#define TIME_MAX_MINUTE 59
-#define TIME_MAX_SECOND 59
-#define TIME_MAX_VALUE (TIME_MAX_HOUR*10000 + TIME_MAX_MINUTE*100 + \
- TIME_MAX_SECOND)
-#define TIME_MAX_VALUE_SECONDS (TIME_MAX_HOUR * 3600L + \
- TIME_MAX_MINUTE * 60L + TIME_MAX_SECOND)
-
-my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date,
- ulonglong flags, int *was_cut);
-enum enum_mysql_timestamp_type
-str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
- ulonglong flags, int *was_cut);
-longlong number_to_datetime(longlong nr, MYSQL_TIME *time_res,
- ulonglong flags, int *was_cut);
-ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *);
-ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *);
-ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *);
-ulonglong TIME_to_ulonglong(const MYSQL_TIME *);
-
-
-my_bool str_to_time(const char *str,uint length, MYSQL_TIME *l_time,
- int *warning);
-
-int check_time_range(struct st_mysql_time *, int *warning);
-
-long calc_daynr(uint year,uint month,uint day);
-uint calc_days_in_year(uint year);
-uint year_2000_handling(uint year);
-
-void my_init_time(void);
-
-
-/*
- Function to check sanity of a TIMESTAMP value
-
- DESCRIPTION
- Check if a given MYSQL_TIME value fits in TIMESTAMP range.
- This function doesn't make precise check, but rather a rough
- estimate.
-
- RETURN VALUES
- FALSE The value seems sane
- TRUE The MYSQL_TIME value is definitely out of range
-*/
-
-static inline my_bool validate_timestamp_range(const MYSQL_TIME *t)
-{
- if ((t->year > TIMESTAMP_MAX_YEAR || t->year < TIMESTAMP_MIN_YEAR) ||
- (t->year == TIMESTAMP_MAX_YEAR && (t->month > 1 || t->day > 19)) ||
- (t->year == TIMESTAMP_MIN_YEAR && (t->month < 12 || t->day < 31)))
- return FALSE;
-
- return TRUE;
-}
-
-my_time_t
-my_system_gmt_sec(const MYSQL_TIME *t, long *my_timezone,
- my_bool *in_dst_time_gap);
-
-void set_zero_time(MYSQL_TIME *tm, enum enum_mysql_timestamp_type time_type);
-
-/*
- Required buffer length for my_time_to_str, my_date_to_str,
- my_datetime_to_str and TIME_to_string functions. Note, that the
- caller is still responsible to check that given TIME structure
- has values in valid ranges, otherwise size of the buffer could
- be not enough. We also rely on the fact that even wrong values
- sent using binary protocol fit in this buffer.
-*/
-#define MAX_DATE_STRING_REP_LENGTH 30
-
-int my_time_to_str(const MYSQL_TIME *l_time, char *to);
-int my_date_to_str(const MYSQL_TIME *l_time, char *to);
-int my_datetime_to_str(const MYSQL_TIME *l_time, char *to);
-int my_TIME_to_str(const MYSQL_TIME *l_time, char *to);
-
-/*
- Available interval types used in any statement.
-
- 'interval_type' must be sorted so that simple intervals comes first,
- ie year, quarter, month, week, day, hour, etc. The order based on
- interval size is also important and the intervals should be kept in a
- large to smaller order. (get_interval_value() depends on this)
-
- Note: If you change the order of elements in this enum you should fix
- order of elements in 'interval_type_to_name' and 'interval_names'
- arrays
-
- See also interval_type_to_name, get_interval_value, interval_names
-*/
-
-enum interval_type
-{
- INTERVAL_YEAR, INTERVAL_QUARTER, INTERVAL_MONTH, INTERVAL_WEEK, INTERVAL_DAY,
- INTERVAL_HOUR, INTERVAL_MINUTE, INTERVAL_SECOND, INTERVAL_MICROSECOND,
- INTERVAL_YEAR_MONTH, INTERVAL_DAY_HOUR, INTERVAL_DAY_MINUTE,
- INTERVAL_DAY_SECOND, INTERVAL_HOUR_MINUTE, INTERVAL_HOUR_SECOND,
- INTERVAL_MINUTE_SECOND, INTERVAL_DAY_MICROSECOND, INTERVAL_HOUR_MICROSECOND,
- INTERVAL_MINUTE_MICROSECOND, INTERVAL_SECOND_MICROSECOND, INTERVAL_LAST
-};
-
-C_MODE_END
-
-#endif /* _my_time_h_ */
diff --git a/dep/mysqllite/include/internal/my_tree.h b/dep/mysqllite/include/internal/my_tree.h
deleted file mode 100644
index 0958a37fb4c..00000000000
--- a/dep/mysqllite/include/internal/my_tree.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _tree_h
-#define _tree_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "my_base.h" /* get 'enum ha_rkey_function' */
-#include "my_alloc.h" /* MEM_ROOT */
-
-/* Worst case tree is half full. This gives use 2^(MAX_TREE_HEIGHT/2) leafs */
-#define MAX_TREE_HEIGHT 64
-
-#define ELEMENT_KEY(tree,element)\
-(tree->offset_to_key ? (void*)((uchar*) element+tree->offset_to_key) :\
- *((void**) (element+1)))
-
-#define tree_set_pointer(element,ptr) *((uchar **) (element+1))=((uchar*) (ptr))
-
-#define TREE_NO_DUPS 1
-
-typedef enum { left_root_right, right_root_left } TREE_WALK;
-typedef uint32 element_count;
-typedef int (*tree_walk_action)(void *,element_count,void *);
-
-typedef enum { free_init, free_free, free_end } TREE_FREE;
-typedef void (*tree_element_free)(void*, TREE_FREE, void *);
-
-typedef struct st_tree_element {
- struct st_tree_element *left,*right;
- uint32 count:31,
- colour:1; /* black is marked as 1 */
-} TREE_ELEMENT;
-
-#define ELEMENT_CHILD(element, offs) (*(TREE_ELEMENT**)((char*)element + offs))
-
-typedef struct st_tree {
- TREE_ELEMENT *root,null_element;
- TREE_ELEMENT **parents[MAX_TREE_HEIGHT];
- uint offset_to_key,elements_in_tree,size_of_element;
- ulong memory_limit, allocated;
- qsort_cmp2 compare;
- void *custom_arg;
- MEM_ROOT mem_root;
- my_bool with_delete;
- tree_element_free free;
- uint flag;
-} TREE;
-
- /* Functions on whole tree */
-void init_tree(TREE *tree, ulong default_alloc_size, ulong memory_limit,
- int size, qsort_cmp2 compare, my_bool with_delete,
- tree_element_free free_element, void *custom_arg);
-void delete_tree(TREE*);
-void reset_tree(TREE*);
- /* similar to delete tree, except we do not my_free() blocks in mem_root
- */
-#define is_tree_inited(tree) ((tree)->root != 0)
-
- /* Functions on leafs */
-TREE_ELEMENT *tree_insert(TREE *tree,void *key, uint key_size,
- void *custom_arg);
-void *tree_search(TREE *tree, void *key, void *custom_arg);
-int tree_walk(TREE *tree,tree_walk_action action,
- void *argument, TREE_WALK visit);
-int tree_delete(TREE *tree, void *key, uint key_size, void *custom_arg);
-void *tree_search_key(TREE *tree, const void *key,
- TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos,
- enum ha_rkey_function flag, void *custom_arg);
-void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents,
- TREE_ELEMENT ***last_pos, int child_offs);
-void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs,
- int r_offs);
-ha_rows tree_record_pos(TREE *tree, const void *key,
- enum ha_rkey_function search_flag, void *custom_arg);
-
-#define TREE_ELEMENT_EXTRA_SIZE (sizeof(TREE_ELEMENT) + sizeof(void*))
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/internal/my_uctype.h b/dep/mysqllite/include/internal/my_uctype.h
deleted file mode 100644
index 580eb646e11..00000000000
--- a/dep/mysqllite/include/internal/my_uctype.h
+++ /dev/null
@@ -1,1483 +0,0 @@
-#ifndef MY_UCTYPE_INCLUDED
-#define MY_UCTYPE_INCLUDED
-
-/* Copyright (C) 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-/*
- Unicode ctype data
- Generated from UnicodeData-5.0.0d9.txt
-*/
-static unsigned char uctype_page00[256]=
-{
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16,
- 16, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 16, 16, 16, 16, 16,
- 16, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 16, 16, 16, 16, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 16, 32, 16, 16,
- 16, 16, 20, 20, 16, 2, 16, 16, 16, 20, 2, 16, 20, 20, 20, 16,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2
-};
-
-static unsigned char uctype_page01[256]=
-{
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 1, 2, 2,
- 2, 1, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
- 1, 1, 2, 1, 1, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1,
- 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1,
- 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 2, 1, 2, 2, 2,
- 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1,
- 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 2, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2
-};
-
-static unsigned char uctype_page02[256]=
-{
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2,
- 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 2, 2, 2, 2, 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
-};
-
-static unsigned char uctype_page03[256]=
-{
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 0, 0, 0, 0, 16, 16, 0, 0, 0, 0, 2, 2, 2, 2, 16, 0,
- 0, 0, 0, 0, 16, 16, 1, 16, 1, 1, 1, 0, 1, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 2, 2, 2, 2, 1, 2, 16, 1, 2, 1, 1, 2, 2, 1, 1, 1
-};
-
-static unsigned char uctype_page04[256]=
-{
- 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,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 16, 18, 18, 18, 18, 0, 18, 18, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2
-};
-
-static unsigned char uctype_page05[256]=
-{
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 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, 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, 0, 0, 2, 16, 16, 16, 16, 16, 16,
- 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, 0, 16, 16, 0, 0, 0, 0, 0,
- 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 16, 18,
- 16, 18, 18, 16, 18, 18, 16, 18, 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, 0, 0, 0, 0, 0,
- 2, 2, 2, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page06[256]=
-{
- 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16,
- 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 16, 0, 0, 16, 16,
- 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, 0, 0, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 2, 2,
- 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 16, 2, 18, 18, 18, 18, 18, 18, 18, 32, 18, 18,
- 18, 18, 18, 18, 18, 2, 2, 18, 18, 16, 18, 18, 18, 18, 2, 2,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 16, 16, 2
-};
-
-static unsigned char uctype_page07[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 32,
- 2, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 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, 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, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 2, 2, 16, 16, 16, 16, 2, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page09[256]=
-{
- 0, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0,
- 2, 18, 18, 18, 18, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 18, 18, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2,
- 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
- 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18,
- 18, 18, 18, 18, 18, 0, 0, 18, 18, 0, 0, 18, 18, 18, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 2, 2, 0, 2,
- 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 2, 2, 16, 16, 20, 20, 20, 20, 20, 20, 16, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page0A[256]=
-{
- 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2,
- 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 18, 0, 18, 18,
- 18, 18, 18, 0, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0,
- 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 18, 18, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2,
- 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18,
- 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page0B[256]=
-{
- 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
- 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18,
- 18, 18, 18, 18, 0, 0, 0, 18, 18, 0, 0, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 2, 2, 0, 2,
- 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 16, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2,
- 2, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2,
- 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18,
- 18, 18, 18, 0, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page0C[256]=
-{
- 0, 18, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
- 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18,
- 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
- 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 18, 2, 18, 18,
- 18, 18, 18, 18, 18, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, 0, 0, 0, 2, 0,
- 2, 2, 18, 18, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page0D[256]=
-{
- 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
- 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 18, 18,
- 18, 18, 18, 18, 0, 0, 18, 18, 18, 0, 18, 18, 18, 18, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 18, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 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, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 18, 0, 0, 0, 0, 18,
- 18, 18, 18, 18, 18, 0, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 18, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page0E[256]=
-{
- 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, 18, 2, 2, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 16,
- 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 16,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 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, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2,
- 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2,
- 2, 18, 2, 2, 18, 18, 18, 18, 18, 18, 0, 18, 18, 2, 0, 0,
- 2, 2, 2, 2, 2, 0, 2, 0, 18, 18, 18, 18, 18, 18, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 2, 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
-};
-
-static unsigned char uctype_page0F[256]=
-{
- 2, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 16, 16, 16, 16, 16, 16,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 16, 18, 16, 18, 16, 18, 16, 16, 16, 16, 18, 18,
- 2, 2, 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0,
- 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 16, 18, 18, 2, 2, 2, 2, 0, 0, 0, 0,
- 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 16, 16,
- 16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 16, 16, 0, 0, 16,
- 16, 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
-};
-
-static unsigned char uctype_page10[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 18, 18, 18, 18,
- 18, 18, 18, 0, 0, 0, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16,
- 2, 2, 2, 2, 2, 2, 18, 18, 18, 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,
- 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, 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, 16, 2, 0, 0, 0
-};
-
-static unsigned char uctype_page11[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 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, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page12[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 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, 0, 2, 2, 2, 2, 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, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 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
-};
-
-static unsigned char uctype_page13[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 0, 2, 2, 2, 2, 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, 0, 0, 0, 0, 18,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page14[256]=
-{
- 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, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-};
-
-static unsigned char uctype_page16[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 2,
- 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 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, 16, 16, 16, 7, 7,
- 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page17[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
- 2, 2, 18, 18, 18, 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, 18, 18, 18, 16, 16, 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, 18, 18, 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, 0, 2, 2,
- 2, 0, 18, 18, 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, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 16, 16, 16, 2, 16, 16, 16, 16, 2, 18, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page18[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 8, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 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, 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
-};
-
-static unsigned char uctype_page19[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0,
- 16, 0, 0, 0, 16, 16, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
- 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 2, 2, 2, 2, 2, 2, 2, 18, 18, 0, 0, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
-};
-
-static unsigned char uctype_page1A[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 18, 18, 18, 18, 18, 0, 0, 16, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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 unsigned char uctype_page1B[256]=
-{
- 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 16, 16, 16, 16, 16, 16, 16, 16, 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
-};
-
-static unsigned char uctype_page1D[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 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, 18, 18
-};
-
-static unsigned char uctype_page1E[256]=
-{
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page1F[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 0, 1, 0, 1, 0, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 2, 16,
- 16, 16, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16,
- 2, 2, 2, 2, 0, 0, 2, 2, 1, 1, 1, 1, 0, 16, 16, 16,
- 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 16, 16, 16,
- 0, 0, 2, 2, 2, 0, 2, 2, 1, 1, 1, 1, 1, 16, 16, 0
-};
-
-static unsigned char uctype_page20[256]=
-{
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 32, 32, 32, 32, 32,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 8, 8, 32, 32, 32, 32, 32, 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, 8,
- 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 32, 32, 32, 32, 32, 32,
- 20, 2, 0, 0, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 2,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 0,
- 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 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,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page21[256]=
-{
- 16, 16, 1, 16, 16, 16, 16, 1, 16, 16, 2, 1, 1, 1, 2, 2,
- 1, 1, 1, 2, 16, 1, 16, 16, 16, 1, 1, 1, 1, 1, 16, 16,
- 16, 16, 16, 16, 1, 16, 1, 16, 1, 16, 1, 1, 1, 1, 16, 2,
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 16, 16, 2, 2, 1, 1,
- 16, 16, 16, 16, 16, 1, 2, 2, 2, 2, 16, 16, 16, 16, 2, 0,
- 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
-};
-
-static unsigned char uctype_page23[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 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
-};
-
-static unsigned char uctype_page24[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 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,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20
-};
-
-static unsigned char uctype_page26[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 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
-};
-
-static unsigned char uctype_page27[256]=
-{
- 0, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 0, 16,
- 16, 16, 16, 0, 0, 0, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0,
- 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 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, 16, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
-};
-
-static unsigned char uctype_page2B[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 16, 16, 16, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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 unsigned char uctype_page2C[256]=
-{
- 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, 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, 0,
- 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 2, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2,
- 1, 2, 1, 2, 2, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 20, 16, 16
-};
-
-static unsigned char uctype_page2D[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 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
-};
-
-static unsigned char uctype_page2E[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 16, 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,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page2F[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 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,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0
-};
-
-static unsigned char uctype_page30[256]=
-{
- 8, 16, 16, 16, 16, 2, 2, 7, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 7, 7, 7, 7, 7, 7, 7, 7, 7, 18, 18, 18, 18, 18, 18,
- 16, 2, 2, 2, 2, 2, 16, 16, 7, 7, 7, 2, 2, 16, 16, 16,
- 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, 0, 0, 18, 18, 16, 16, 2, 2, 2,
- 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2
-};
-
-static unsigned char uctype_page31[256]=
-{
- 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, 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, 0,
- 16, 16, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 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,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
-};
-
-static unsigned char uctype_page32[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0
-};
-
-static unsigned char uctype_page4D[256]=
-{
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16
-};
-
-static unsigned char uctype_page9F[256]=
-{
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
-};
-
-static unsigned char uctype_pageA4[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 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
-};
-
-static unsigned char uctype_pageA7[256]=
-{
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 0, 0, 0, 0, 0,
- 16, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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 unsigned char uctype_pageA8[256]=
-{
- 2, 2, 18, 2, 2, 2, 18, 2, 2, 2, 2, 18, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 18, 18, 18, 18, 18, 16, 16, 16, 16, 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, 16, 16, 16, 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
-};
-
-static unsigned char uctype_pageD7[256]=
-{
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 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
-};
-
-static unsigned char uctype_pageD8[256]=
-{
- 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
-};
-
-static unsigned char uctype_pageDB[256]=
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
- 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, 32
-};
-
-static unsigned char uctype_pageDC[256]=
-{
- 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
-};
-
-static unsigned char uctype_pageDF[256]=
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32
-};
-
-static unsigned char uctype_pageE0[256]=
-{
- 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
-};
-
-static unsigned char uctype_pageF8[256]=
-{
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32
-};
-
-static unsigned char uctype_pageFA[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 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, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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 unsigned char uctype_pageFB[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 18, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0,
- 2, 2, 0, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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
-};
-
-static unsigned char uctype_pageFD[256]=
-{
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16,
- 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,
- 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, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 16, 16, 0, 0
-};
-
-static unsigned char uctype_pageFE[256]=
-{
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0,
- 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 0, 0, 0, 0,
- 2, 2, 2, 2, 2, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 32
-};
-
-static unsigned char uctype_pageFF[256]=
-{
- 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 16, 16, 16, 16, 16, 16,
- 16, 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, 16, 16, 16, 16, 16,
- 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
- 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
- 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0,
- 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 16, 16, 0, 0
-};
-
-MY_UNI_CTYPE my_uni_ctype[256]={
- {0,uctype_page00},
- {0,uctype_page01},
- {0,uctype_page02},
- {0,uctype_page03},
- {0,uctype_page04},
- {0,uctype_page05},
- {0,uctype_page06},
- {0,uctype_page07},
- {0,NULL},
- {0,uctype_page09},
- {0,uctype_page0A},
- {0,uctype_page0B},
- {0,uctype_page0C},
- {0,uctype_page0D},
- {0,uctype_page0E},
- {0,uctype_page0F},
- {0,uctype_page10},
- {0,uctype_page11},
- {0,uctype_page12},
- {0,uctype_page13},
- {0,uctype_page14},
- {2,NULL},
- {0,uctype_page16},
- {0,uctype_page17},
- {0,uctype_page18},
- {0,uctype_page19},
- {0,uctype_page1A},
- {0,uctype_page1B},
- {0,NULL},
- {0,uctype_page1D},
- {0,uctype_page1E},
- {0,uctype_page1F},
- {0,uctype_page20},
- {0,uctype_page21},
- {16,NULL},
- {0,uctype_page23},
- {0,uctype_page24},
- {16,NULL},
- {0,uctype_page26},
- {0,uctype_page27},
- {16,NULL},
- {16,NULL},
- {16,NULL},
- {0,uctype_page2B},
- {0,uctype_page2C},
- {0,uctype_page2D},
- {0,uctype_page2E},
- {0,uctype_page2F},
- {0,uctype_page30},
- {0,uctype_page31},
- {0,uctype_page32},
- {16,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {0,uctype_page4D},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {0,uctype_page9F},
- {2,NULL},
- {2,NULL},
- {2,NULL},
- {2,NULL},
- {0,uctype_pageA4},
- {0,NULL},
- {0,NULL},
- {0,uctype_pageA7},
- {0,uctype_pageA8},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {3,NULL},
- {0,uctype_pageD7},
- {0,uctype_pageD8},
- {0,NULL},
- {0,NULL},
- {0,uctype_pageDB},
- {0,uctype_pageDC},
- {0,NULL},
- {0,NULL},
- {0,uctype_pageDF},
- {0,uctype_pageE0},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,NULL},
- {0,uctype_pageF8},
- {2,NULL},
- {0,uctype_pageFA},
- {0,uctype_pageFB},
- {2,NULL},
- {0,uctype_pageFD},
- {0,uctype_pageFE},
- {0,uctype_pageFF}
-};
-
-
-#endif /* MY_UCTYPE_INCLUDED */
diff --git a/dep/mysqllite/include/internal/myisampack.h b/dep/mysqllite/include/internal/myisampack.h
deleted file mode 100644
index ecf35520a88..00000000000
--- a/dep/mysqllite/include/internal/myisampack.h
+++ /dev/null
@@ -1,242 +0,0 @@
-#ifndef MYISAMPACK_INCLUDED
-#define MYISAMPACK_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Storing of values in high byte first order.
-
- integer keys and file pointers are stored with high byte first to get
- better compression
-*/
-
-/* these two are for uniformity */
-#define mi_sint1korr(A) ((int8)(*A))
-#define mi_uint1korr(A) ((uint8)(*A))
-
-#define mi_sint2korr(A) ((int16) (((int16) (((uchar*) (A))[1])) +\
- ((int16) ((int16) ((char*) (A))[0]) << 8)))
-#define mi_sint3korr(A) ((int32) (((((uchar*) (A))[0]) & 128) ? \
- (((uint32) 255L << 24) | \
- (((uint32) ((uchar*) (A))[0]) << 16) |\
- (((uint32) ((uchar*) (A))[1]) << 8) | \
- ((uint32) ((uchar*) (A))[2])) : \
- (((uint32) ((uchar*) (A))[0]) << 16) |\
- (((uint32) ((uchar*) (A))[1]) << 8) | \
- ((uint32) ((uchar*) (A))[2])))
-#define mi_sint4korr(A) ((int32) (((int32) (((uchar*) (A))[3])) +\
- ((int32) (((uchar*) (A))[2]) << 8) +\
- ((int32) (((uchar*) (A))[1]) << 16) +\
- ((int32) ((int16) ((char*) (A))[0]) << 24)))
-#define mi_sint8korr(A) ((longlong) mi_uint8korr(A))
-#define mi_uint2korr(A) ((uint16) (((uint16) (((uchar*) (A))[1])) +\
- ((uint16) (((uchar*) (A))[0]) << 8)))
-#define mi_uint3korr(A) ((uint32) (((uint32) (((uchar*) (A))[2])) +\
- (((uint32) (((uchar*) (A))[1])) << 8) +\
- (((uint32) (((uchar*) (A))[0])) << 16)))
-#define mi_uint4korr(A) ((uint32) (((uint32) (((uchar*) (A))[3])) +\
- (((uint32) (((uchar*) (A))[2])) << 8) +\
- (((uint32) (((uchar*) (A))[1])) << 16) +\
- (((uint32) (((uchar*) (A))[0])) << 24)))
-#define mi_uint5korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[4])) +\
- (((uint32) (((uchar*) (A))[3])) << 8) +\
- (((uint32) (((uchar*) (A))[2])) << 16) +\
- (((uint32) (((uchar*) (A))[1])) << 24)) +\
- (((ulonglong) (((uchar*) (A))[0])) << 32))
-#define mi_uint6korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[5])) +\
- (((uint32) (((uchar*) (A))[4])) << 8) +\
- (((uint32) (((uchar*) (A))[3])) << 16) +\
- (((uint32) (((uchar*) (A))[2])) << 24)) +\
- (((ulonglong) (((uint32) (((uchar*) (A))[1])) +\
- (((uint32) (((uchar*) (A))[0]) << 8)))) <<\
- 32))
-#define mi_uint7korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[6])) +\
- (((uint32) (((uchar*) (A))[5])) << 8) +\
- (((uint32) (((uchar*) (A))[4])) << 16) +\
- (((uint32) (((uchar*) (A))[3])) << 24)) +\
- (((ulonglong) (((uint32) (((uchar*) (A))[2])) +\
- (((uint32) (((uchar*) (A))[1])) << 8) +\
- (((uint32) (((uchar*) (A))[0])) << 16))) <<\
- 32))
-#define mi_uint8korr(A) ((ulonglong)(((uint32) (((uchar*) (A))[7])) +\
- (((uint32) (((uchar*) (A))[6])) << 8) +\
- (((uint32) (((uchar*) (A))[5])) << 16) +\
- (((uint32) (((uchar*) (A))[4])) << 24)) +\
- (((ulonglong) (((uint32) (((uchar*) (A))[3])) +\
- (((uint32) (((uchar*) (A))[2])) << 8) +\
- (((uint32) (((uchar*) (A))[1])) << 16) +\
- (((uint32) (((uchar*) (A))[0])) << 24))) <<\
- 32))
-
-/* This one is for uniformity */
-#define mi_int1store(T,A) *((uchar*)(T))= (uchar) (A)
-
-#define mi_int2store(T,A) { uint def_temp= (uint) (A) ;\
- ((uchar*) (T))[1]= (uchar) (def_temp);\
- ((uchar*) (T))[0]= (uchar) (def_temp >> 8); }
-#define mi_int3store(T,A) { /*lint -save -e734 */\
- ulong def_temp= (ulong) (A);\
- ((uchar*) (T))[2]= (uchar) (def_temp);\
- ((uchar*) (T))[1]= (uchar) (def_temp >> 8);\
- ((uchar*) (T))[0]= (uchar) (def_temp >> 16);\
- /*lint -restore */}
-#define mi_int4store(T,A) { ulong def_temp= (ulong) (A);\
- ((uchar*) (T))[3]= (uchar) (def_temp);\
- ((uchar*) (T))[2]= (uchar) (def_temp >> 8);\
- ((uchar*) (T))[1]= (uchar) (def_temp >> 16);\
- ((uchar*) (T))[0]= (uchar) (def_temp >> 24); }
-#define mi_int5store(T,A) { ulong def_temp= (ulong) (A),\
- def_temp2= (ulong) ((A) >> 32);\
- ((uchar*) (T))[4]= (uchar) (def_temp);\
- ((uchar*) (T))[3]= (uchar) (def_temp >> 8);\
- ((uchar*) (T))[2]= (uchar) (def_temp >> 16);\
- ((uchar*) (T))[1]= (uchar) (def_temp >> 24);\
- ((uchar*) (T))[0]= (uchar) (def_temp2); }
-#define mi_int6store(T,A) { ulong def_temp= (ulong) (A),\
- def_temp2= (ulong) ((A) >> 32);\
- ((uchar*) (T))[5]= (uchar) (def_temp);\
- ((uchar*) (T))[4]= (uchar) (def_temp >> 8);\
- ((uchar*) (T))[3]= (uchar) (def_temp >> 16);\
- ((uchar*) (T))[2]= (uchar) (def_temp >> 24);\
- ((uchar*) (T))[1]= (uchar) (def_temp2);\
- ((uchar*) (T))[0]= (uchar) (def_temp2 >> 8); }
-#define mi_int7store(T,A) { ulong def_temp= (ulong) (A),\
- def_temp2= (ulong) ((A) >> 32);\
- ((uchar*) (T))[6]= (uchar) (def_temp);\
- ((uchar*) (T))[5]= (uchar) (def_temp >> 8);\
- ((uchar*) (T))[4]= (uchar) (def_temp >> 16);\
- ((uchar*) (T))[3]= (uchar) (def_temp >> 24);\
- ((uchar*) (T))[2]= (uchar) (def_temp2);\
- ((uchar*) (T))[1]= (uchar) (def_temp2 >> 8);\
- ((uchar*) (T))[0]= (uchar) (def_temp2 >> 16); }
-#define mi_int8store(T,A) { ulong def_temp3= (ulong) (A),\
- def_temp4= (ulong) ((A) >> 32);\
- mi_int4store((uchar*) (T) + 0, def_temp4);\
- mi_int4store((uchar*) (T) + 4, def_temp3); }
-
-#ifdef WORDS_BIGENDIAN
-
-#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((uchar*) &A)[0];\
- ((uchar*) (T))[1]= ((uchar*) &A)[1];\
- ((uchar*) (T))[2]= ((uchar*) &A)[2];\
- ((uchar*) (T))[3]= ((uchar*) &A)[3]; }
-
-#define mi_float4get(V,M) { float def_temp;\
- ((uchar*) &def_temp)[0]= ((uchar*) (M))[0];\
- ((uchar*) &def_temp)[1]= ((uchar*) (M))[1];\
- ((uchar*) &def_temp)[2]= ((uchar*) (M))[2];\
- ((uchar*) &def_temp)[3]= ((uchar*) (M))[3];\
- (V)= def_temp; }
-
-#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[0];\
- ((uchar*) (T))[1]= ((uchar*) &V)[1];\
- ((uchar*) (T))[2]= ((uchar*) &V)[2];\
- ((uchar*) (T))[3]= ((uchar*) &V)[3];\
- ((uchar*) (T))[4]= ((uchar*) &V)[4];\
- ((uchar*) (T))[5]= ((uchar*) &V)[5];\
- ((uchar*) (T))[6]= ((uchar*) &V)[6];\
- ((uchar*) (T))[7]= ((uchar*) &V)[7]; }
-
-#define mi_float8get(V,M) { double def_temp;\
- ((uchar*) &def_temp)[0]= ((uchar*) (M))[0];\
- ((uchar*) &def_temp)[1]= ((uchar*) (M))[1];\
- ((uchar*) &def_temp)[2]= ((uchar*) (M))[2];\
- ((uchar*) &def_temp)[3]= ((uchar*) (M))[3];\
- ((uchar*) &def_temp)[4]= ((uchar*) (M))[4];\
- ((uchar*) &def_temp)[5]= ((uchar*) (M))[5];\
- ((uchar*) &def_temp)[6]= ((uchar*) (M))[6];\
- ((uchar*) &def_temp)[7]= ((uchar*) (M))[7]; \
- (V)= def_temp; }
-#else
-
-#define mi_float4store(T,A) { ((uchar*) (T))[0]= ((uchar*) &A)[3];\
- ((uchar*) (T))[1]= ((uchar*) &A)[2];\
- ((uchar*) (T))[2]= ((uchar*) &A)[1];\
- ((uchar*) (T))[3]= ((uchar*) &A)[0]; }
-
-#define mi_float4get(V,M) { float def_temp;\
- ((uchar*) &def_temp)[0]= ((uchar*) (M))[3];\
- ((uchar*) &def_temp)[1]= ((uchar*) (M))[2];\
- ((uchar*) &def_temp)[2]= ((uchar*) (M))[1];\
- ((uchar*) &def_temp)[3]= ((uchar*) (M))[0];\
- (V)= def_temp; }
-
-#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[3];\
- ((uchar*) (T))[1]= ((uchar*) &V)[2];\
- ((uchar*) (T))[2]= ((uchar*) &V)[1];\
- ((uchar*) (T))[3]= ((uchar*) &V)[0];\
- ((uchar*) (T))[4]= ((uchar*) &V)[7];\
- ((uchar*) (T))[5]= ((uchar*) &V)[6];\
- ((uchar*) (T))[6]= ((uchar*) &V)[5];\
- ((uchar*) (T))[7]= ((uchar*) &V)[4];}
-
-#define mi_float8get(V,M) { double def_temp;\
- ((uchar*) &def_temp)[0]= ((uchar*) (M))[3];\
- ((uchar*) &def_temp)[1]= ((uchar*) (M))[2];\
- ((uchar*) &def_temp)[2]= ((uchar*) (M))[1];\
- ((uchar*) &def_temp)[3]= ((uchar*) (M))[0];\
- ((uchar*) &def_temp)[4]= ((uchar*) (M))[7];\
- ((uchar*) &def_temp)[5]= ((uchar*) (M))[6];\
- ((uchar*) &def_temp)[6]= ((uchar*) (M))[5];\
- ((uchar*) &def_temp)[7]= ((uchar*) (M))[4];\
- (V)= def_temp; }
-
-#else
-#define mi_float8store(T,V) { ((uchar*) (T))[0]= ((uchar*) &V)[7];\
- ((uchar*) (T))[1]= ((uchar*) &V)[6];\
- ((uchar*) (T))[2]= ((uchar*) &V)[5];\
- ((uchar*) (T))[3]= ((uchar*) &V)[4];\
- ((uchar*) (T))[4]= ((uchar*) &V)[3];\
- ((uchar*) (T))[5]= ((uchar*) &V)[2];\
- ((uchar*) (T))[6]= ((uchar*) &V)[1];\
- ((uchar*) (T))[7]= ((uchar*) &V)[0];}
-
-#define mi_float8get(V,M) { double def_temp;\
- ((uchar*) &def_temp)[0]= ((uchar*) (M))[7];\
- ((uchar*) &def_temp)[1]= ((uchar*) (M))[6];\
- ((uchar*) &def_temp)[2]= ((uchar*) (M))[5];\
- ((uchar*) &def_temp)[3]= ((uchar*) (M))[4];\
- ((uchar*) &def_temp)[4]= ((uchar*) (M))[3];\
- ((uchar*) &def_temp)[5]= ((uchar*) (M))[2];\
- ((uchar*) &def_temp)[6]= ((uchar*) (M))[1];\
- ((uchar*) &def_temp)[7]= ((uchar*) (M))[0];\
- (V)= def_temp; }
-#endif /* __FLOAT_WORD_ORDER */
-#endif /* WORDS_BIGENDIAN */
-
-/* Fix to avoid warnings when sizeof(ha_rows) == sizeof(long) */
-
-#ifdef BIG_TABLES
-#define mi_rowstore(T,A) mi_int8store(T, A)
-#define mi_rowkorr(T) mi_uint8korr(T)
-#else
-#define mi_rowstore(T,A) { mi_int4store(T, 0);\
- mi_int4store(((uchar*) (T) + 4), A); }
-#define mi_rowkorr(T) mi_uint4korr((uchar*) (T) + 4)
-#endif
-
-#if SIZEOF_OFF_T > 4
-#define mi_sizestore(T,A) mi_int8store(T, A)
-#define mi_sizekorr(T) mi_uint8korr(T)
-#else
-#define mi_sizestore(T,A) { if ((A) == HA_OFFSET_ERROR)\
- bfill((char*) (T), 8, 255);\
- else { mi_int4store((T), 0);\
- mi_int4store(((T) + 4), A); }}
-#define mi_sizekorr(T) mi_uint4korr((uchar*) (T) + 4)
-#endif
-#endif /* MYISAMPACK_INCLUDED */
diff --git a/dep/mysqllite/include/internal/mysql_version.h.in b/dep/mysqllite/include/internal/mysql_version.h.in
deleted file mode 100644
index 04a43f2c968..00000000000
--- a/dep/mysqllite/include/internal/mysql_version.h.in
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright Abandoned 1996, 1999, 2001 MySQL AB
- This file is public domain and comes with NO WARRANTY of any kind */
-
-/* Version numbers for protocol & mysqld */
-
-#ifndef _mysql_version_h
-#define _mysql_version_h
-#ifdef _CUSTOMCONFIG_
-#include <custom_conf.h>
-#else
-#define PROTOCOL_VERSION @PROTOCOL_VERSION@
-#define MYSQL_SERVER_VERSION "@VERSION@"
-#define MYSQL_BASE_VERSION "mysqld-@MYSQL_BASE_VERSION@"
-#define MYSQL_SERVER_SUFFIX_DEF "@MYSQL_SERVER_SUFFIX@"
-#define FRM_VER @DOT_FRM_VERSION@
-#define MYSQL_VERSION_ID @MYSQL_VERSION_ID@
-#define MYSQL_PORT @MYSQL_TCP_PORT@
-#define MYSQL_PORT_DEFAULT @MYSQL_TCP_PORT_DEFAULT@
-#define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@"
-#define MYSQL_CONFIG_NAME "my"
-#define MYSQL_COMPILATION_COMMENT "@COMPILATION_COMMENT@"
-
-/* mysqld compile time options */
-#endif /* _CUSTOMCONFIG_ */
-
-#ifndef LICENSE
-#define LICENSE GPL
-#endif /* LICENSE */
-
-#endif /* _mysql_version_h */
diff --git a/dep/mysqllite/include/internal/mysys_err.h b/dep/mysqllite/include/internal/mysys_err.h
deleted file mode 100644
index 22ac74302a2..00000000000
--- a/dep/mysqllite/include/internal/mysys_err.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _mysys_err_h
-#define _mysys_err_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define GLOBERRS (EE_ERROR_LAST - EE_ERROR_FIRST + 1) /* Nr of global errors */
-#define EE(X) (globerrs[(X) - EE_ERROR_FIRST])
-
-extern const char *globerrs[]; /* my_error_messages is here */
-
-/* Error message numbers in global map */
-/*
- Do not add error numbers before EE_ERROR_FIRST.
- If necessary to add lower numbers, change EE_ERROR_FIRST accordingly.
-
- We start with error 1 to not confuse peoples with 'error 0'
-*/
-
-#define EE_ERROR_FIRST 1 /*Copy first error nr.*/
-#define EE_CANTCREATEFILE 1
-#define EE_READ 2
-#define EE_WRITE 3
-#define EE_BADCLOSE 4
-#define EE_OUTOFMEMORY 5
-#define EE_DELETE 6
-#define EE_LINK 7
-#define EE_EOFERR 9
-#define EE_CANTLOCK 10
-#define EE_CANTUNLOCK 11
-#define EE_DIR 12
-#define EE_STAT 13
-#define EE_CANT_CHSIZE 14
-#define EE_CANT_OPEN_STREAM 15
-#define EE_GETWD 16
-#define EE_SETWD 17
-#define EE_LINK_WARNING 18
-#define EE_OPEN_WARNING 19
-#define EE_DISK_FULL 20
-#define EE_CANT_MKDIR 21
-#define EE_UNKNOWN_CHARSET 22
-#define EE_OUT_OF_FILERESOURCES 23
-#define EE_CANT_READLINK 24
-#define EE_CANT_SYMLINK 25
-#define EE_REALPATH 26
-#define EE_SYNC 27
-#define EE_UNKNOWN_COLLATION 28
-#define EE_FILENOTFOUND 29
-#define EE_FILE_NOT_CLOSED 30
-#define EE_CHANGE_OWNERSHIP 31
-#define EE_CHANGE_PERMISSIONS 32
-#define EE_CANT_SEEK 33
-#define EE_ERROR_LAST 33 /* Copy last error nr */
-/* Add error numbers before EE_ERROR_LAST and change it accordingly. */
-
- /* exit codes for all MySQL programs */
-
-#define EXIT_UNSPECIFIED_ERROR 1
-#define EXIT_UNKNOWN_OPTION 2
-#define EXIT_AMBIGUOUS_OPTION 3
-#define EXIT_NO_ARGUMENT_ALLOWED 4
-#define EXIT_ARGUMENT_REQUIRED 5
-#define EXIT_VAR_PREFIX_NOT_UNIQUE 6
-#define EXIT_UNKNOWN_VARIABLE 7
-#define EXIT_OUT_OF_MEMORY 8
-#define EXIT_UNKNOWN_SUFFIX 9
-#define EXIT_NO_PTR_TO_VARIABLE 10
-#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
-#define EXIT_OPTION_DISABLED 12
-#define EXIT_ARGUMENT_INVALID 13
-
-
-#ifdef __cplusplus
-}
-#endif
-#endif
-
diff --git a/dep/mysqllite/include/internal/password.h b/dep/mysqllite/include/internal/password.h
deleted file mode 100644
index e75b09297a3..00000000000
--- a/dep/mysqllite/include/internal/password.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#ifndef PASSWORD_INCLUDED
-#define PASSWORD_INCLUDED
-
-#include "my_global.h"
-
-C_MODE_START
-
-void my_make_scrambled_password_323(char *to, const char *password,
- size_t pass_len);
-void my_make_scrambled_password(char *to, const char *password,
- size_t pass_len);
-
-void hash_password(ulong *result, const char *password, uint password_len);
-
-C_MODE_END
-
-#endif /* PASSWORD_INCLUDED */
diff --git a/dep/mysqllite/include/internal/probes_mysql.h b/dep/mysqllite/include/internal/probes_mysql.h
deleted file mode 100644
index 13491c661fd..00000000000
--- a/dep/mysqllite/include/internal/probes_mysql.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#ifndef PROBES_MYSQL_H
-
-#define PROBES_MYSQL_H
-
-#include <my_global.h>
-
-#if defined(HAVE_DTRACE) && !defined(DISABLE_DTRACE)
-#include "probes_mysql_dtrace.h"
-#else
-#include "probes_mysql_nodtrace.h"
-#endif
-
-#endif /* PROBES_MYSQL_H */
diff --git a/dep/mysqllite/include/internal/probes_mysql_nodtrace.h b/dep/mysqllite/include/internal/probes_mysql_nodtrace.h
deleted file mode 100644
index bc3b65a00e5..00000000000
--- a/dep/mysqllite/include/internal/probes_mysql_nodtrace.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Generated by dheadgen(1).
- */
-
-#ifndef _PROBES_MYSQL_D
-#define _PROBES_MYSQL_D
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MYSQL_CONNECTION_START(arg0, arg1, arg2)
-#define MYSQL_CONNECTION_START_ENABLED() (0)
-#define MYSQL_CONNECTION_DONE(arg0, arg1)
-#define MYSQL_CONNECTION_DONE_ENABLED() (0)
-#define MYSQL_COMMAND_START(arg0, arg1, arg2, arg3)
-#define MYSQL_COMMAND_START_ENABLED() (0)
-#define MYSQL_COMMAND_DONE(arg0)
-#define MYSQL_COMMAND_DONE_ENABLED() (0)
-#define MYSQL_QUERY_START(arg0, arg1, arg2, arg3, arg4)
-#define MYSQL_QUERY_START_ENABLED() (0)
-#define MYSQL_QUERY_DONE(arg0)
-#define MYSQL_QUERY_DONE_ENABLED() (0)
-#define MYSQL_QUERY_PARSE_START(arg0)
-#define MYSQL_QUERY_PARSE_START_ENABLED() (0)
-#define MYSQL_QUERY_PARSE_DONE(arg0)
-#define MYSQL_QUERY_PARSE_DONE_ENABLED() (0)
-#define MYSQL_QUERY_CACHE_HIT(arg0, arg1)
-#define MYSQL_QUERY_CACHE_HIT_ENABLED() (0)
-#define MYSQL_QUERY_CACHE_MISS(arg0)
-#define MYSQL_QUERY_CACHE_MISS_ENABLED() (0)
-#define MYSQL_QUERY_EXEC_START(arg0, arg1, arg2, arg3, arg4, arg5)
-#define MYSQL_QUERY_EXEC_START_ENABLED() (0)
-#define MYSQL_QUERY_EXEC_DONE(arg0)
-#define MYSQL_QUERY_EXEC_DONE_ENABLED() (0)
-#define MYSQL_INSERT_ROW_START(arg0, arg1)
-#define MYSQL_INSERT_ROW_START_ENABLED() (0)
-#define MYSQL_INSERT_ROW_DONE(arg0)
-#define MYSQL_INSERT_ROW_DONE_ENABLED() (0)
-#define MYSQL_UPDATE_ROW_START(arg0, arg1)
-#define MYSQL_UPDATE_ROW_START_ENABLED() (0)
-#define MYSQL_UPDATE_ROW_DONE(arg0)
-#define MYSQL_UPDATE_ROW_DONE_ENABLED() (0)
-#define MYSQL_DELETE_ROW_START(arg0, arg1)
-#define MYSQL_DELETE_ROW_START_ENABLED() (0)
-#define MYSQL_DELETE_ROW_DONE(arg0)
-#define MYSQL_DELETE_ROW_DONE_ENABLED() (0)
-#define MYSQL_READ_ROW_START(arg0, arg1, arg2)
-#define MYSQL_READ_ROW_START_ENABLED() (0)
-#define MYSQL_READ_ROW_DONE(arg0)
-#define MYSQL_READ_ROW_DONE_ENABLED() (0)
-#define MYSQL_INDEX_READ_ROW_START(arg0, arg1)
-#define MYSQL_INDEX_READ_ROW_START_ENABLED() (0)
-#define MYSQL_INDEX_READ_ROW_DONE(arg0)
-#define MYSQL_INDEX_READ_ROW_DONE_ENABLED() (0)
-#define MYSQL_HANDLER_RDLOCK_START(arg0, arg1)
-#define MYSQL_HANDLER_RDLOCK_START_ENABLED() (0)
-#define MYSQL_HANDLER_WRLOCK_START(arg0, arg1)
-#define MYSQL_HANDLER_WRLOCK_START_ENABLED() (0)
-#define MYSQL_HANDLER_UNLOCK_START(arg0, arg1)
-#define MYSQL_HANDLER_UNLOCK_START_ENABLED() (0)
-#define MYSQL_HANDLER_RDLOCK_DONE(arg0)
-#define MYSQL_HANDLER_RDLOCK_DONE_ENABLED() (0)
-#define MYSQL_HANDLER_WRLOCK_DONE(arg0)
-#define MYSQL_HANDLER_WRLOCK_DONE_ENABLED() (0)
-#define MYSQL_HANDLER_UNLOCK_DONE(arg0)
-#define MYSQL_HANDLER_UNLOCK_DONE_ENABLED() (0)
-#define MYSQL_FILESORT_START(arg0, arg1)
-#define MYSQL_FILESORT_START_ENABLED() (0)
-#define MYSQL_FILESORT_DONE(arg0, arg1)
-#define MYSQL_FILESORT_DONE_ENABLED() (0)
-#define MYSQL_SELECT_START(arg0)
-#define MYSQL_SELECT_START_ENABLED() (0)
-#define MYSQL_SELECT_DONE(arg0, arg1)
-#define MYSQL_SELECT_DONE_ENABLED() (0)
-#define MYSQL_INSERT_START(arg0)
-#define MYSQL_INSERT_START_ENABLED() (0)
-#define MYSQL_INSERT_DONE(arg0, arg1)
-#define MYSQL_INSERT_DONE_ENABLED() (0)
-#define MYSQL_INSERT_SELECT_START(arg0)
-#define MYSQL_INSERT_SELECT_START_ENABLED() (0)
-#define MYSQL_INSERT_SELECT_DONE(arg0, arg1)
-#define MYSQL_INSERT_SELECT_DONE_ENABLED() (0)
-#define MYSQL_UPDATE_START(arg0)
-#define MYSQL_UPDATE_START_ENABLED() (0)
-#define MYSQL_UPDATE_DONE(arg0, arg1, arg2)
-#define MYSQL_UPDATE_DONE_ENABLED() (0)
-#define MYSQL_MULTI_UPDATE_START(arg0)
-#define MYSQL_MULTI_UPDATE_START_ENABLED() (0)
-#define MYSQL_MULTI_UPDATE_DONE(arg0, arg1, arg2)
-#define MYSQL_MULTI_UPDATE_DONE_ENABLED() (0)
-#define MYSQL_DELETE_START(arg0)
-#define MYSQL_DELETE_START_ENABLED() (0)
-#define MYSQL_DELETE_DONE(arg0, arg1)
-#define MYSQL_DELETE_DONE_ENABLED() (0)
-#define MYSQL_MULTI_DELETE_START(arg0)
-#define MYSQL_MULTI_DELETE_START_ENABLED() (0)
-#define MYSQL_MULTI_DELETE_DONE(arg0, arg1)
-#define MYSQL_MULTI_DELETE_DONE_ENABLED() (0)
-#define MYSQL_NET_READ_START()
-#define MYSQL_NET_READ_START_ENABLED() (0)
-#define MYSQL_NET_READ_DONE(arg0, arg1)
-#define MYSQL_NET_READ_DONE_ENABLED() (0)
-#define MYSQL_NET_WRITE_START(arg0)
-#define MYSQL_NET_WRITE_START_ENABLED() (0)
-#define MYSQL_NET_WRITE_DONE(arg0)
-#define MYSQL_NET_WRITE_DONE_ENABLED() (0)
-#define MYSQL_KEYCACHE_READ_START(arg0, arg1, arg2, arg3)
-#define MYSQL_KEYCACHE_READ_START_ENABLED() (0)
-#define MYSQL_KEYCACHE_READ_BLOCK(arg0)
-#define MYSQL_KEYCACHE_READ_BLOCK_ENABLED() (0)
-#define MYSQL_KEYCACHE_READ_HIT()
-#define MYSQL_KEYCACHE_READ_HIT_ENABLED() (0)
-#define MYSQL_KEYCACHE_READ_MISS()
-#define MYSQL_KEYCACHE_READ_MISS_ENABLED() (0)
-#define MYSQL_KEYCACHE_READ_DONE(arg0, arg1)
-#define MYSQL_KEYCACHE_READ_DONE_ENABLED() (0)
-#define MYSQL_KEYCACHE_WRITE_START(arg0, arg1, arg2, arg3)
-#define MYSQL_KEYCACHE_WRITE_START_ENABLED() (0)
-#define MYSQL_KEYCACHE_WRITE_BLOCK(arg0)
-#define MYSQL_KEYCACHE_WRITE_BLOCK_ENABLED() (0)
-#define MYSQL_KEYCACHE_WRITE_DONE(arg0, arg1)
-#define MYSQL_KEYCACHE_WRITE_DONE_ENABLED() (0)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _PROBES_MYSQL_D */
diff --git a/dep/mysqllite/include/internal/queues.h b/dep/mysqllite/include/internal/queues.h
deleted file mode 100644
index 07962f09201..00000000000
--- a/dep/mysqllite/include/internal/queues.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Code for generell handling of priority Queues.
- Implemention of queues from "Algoritms in C" by Robert Sedgewick.
- Copyright Monty Program KB.
- By monty.
-*/
-
-#ifndef _queues_h
-#define _queues_h
-
-#include "my_global.h" /* uchar */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct st_queue {
- uchar **root;
- void *first_cmp_arg;
- uint elements;
- uint max_elements;
- uint offset_to_key; /* compare is done on element+offset */
- int max_at_top; /* Normally 1, set to -1 if queue_top gives max */
- int (*compare)(void *, uchar *,uchar *);
- uint auto_extent;
-} QUEUE;
-
-#define queue_top(queue) ((queue)->root[1])
-#define queue_element(queue,index) ((queue)->root[index+1])
-#define queue_end(queue) ((queue)->root[(queue)->elements])
-#define queue_replaced(queue) _downheap(queue,1)
-#define queue_set_cmp_arg(queue, set_arg) (queue)->first_cmp_arg= set_arg
-#define queue_set_max_at_top(queue, set_arg) \
- (queue)->max_at_top= set_arg ? -1 : 1
-typedef int (*queue_compare)(void *,uchar *, uchar *);
-
-int init_queue(QUEUE *queue,uint max_elements,uint offset_to_key,
- pbool max_at_top, queue_compare compare,
- void *first_cmp_arg);
-int init_queue_ex(QUEUE *queue,uint max_elements,uint offset_to_key,
- pbool max_at_top, queue_compare compare,
- void *first_cmp_arg, uint auto_extent);
-int reinit_queue(QUEUE *queue,uint max_elements,uint offset_to_key,
- pbool max_at_top, queue_compare compare,
- void *first_cmp_arg);
-int resize_queue(QUEUE *queue, uint max_elements);
-void delete_queue(QUEUE *queue);
-void queue_insert(QUEUE *queue,uchar *element);
-int queue_insert_safe(QUEUE *queue, uchar *element);
-uchar *queue_remove(QUEUE *queue,uint idx);
-#define queue_remove_all(queue) { (queue)->elements= 0; }
-#define queue_is_full(queue) (queue->elements == queue->max_elements)
-void _downheap(QUEUE *queue,uint idx);
-void queue_fix(QUEUE *queue);
-#define is_queue_inited(queue) ((queue)->root != 0)
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/internal/rijndael.h b/dep/mysqllite/include/internal/rijndael.h
deleted file mode 100644
index 71df1c48dbf..00000000000
--- a/dep/mysqllite/include/internal/rijndael.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef RIJNDAEL_INCLUDED
-#define RIJNDAEL_INCLUDED
-
-/* Copyright (C) 2002 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-/*
- rijndael-alg-fst.h
-
- @version 3.0 (December 2000)
- Optimised ANSI C code for the Rijndael cipher (now AES)
- @author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
- @author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
- @author Paulo Barreto <paulo.barreto@terra.com.br>
-
- This code is hereby placed in the public domain.
- Modified by Peter Zaitsev to fit MySQL coding style.
- */
-
-#define AES_MAXKC (256/32)
-#define AES_MAXKB (256/8)
-#define AES_MAXNR 14
-
-int rijndaelKeySetupEnc(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[],
- int keyBits);
-int rijndaelKeySetupDec(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[],
- int keyBits);
-void rijndaelEncrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr,
- const uint8 pt[16], uint8 ct[16]);
-void rijndaelDecrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr,
- const uint8 ct[16], uint8 pt[16]);
-
-#endif /* RIJNDAEL_INCLUDED */
diff --git a/dep/mysqllite/include/internal/sha1.h b/dep/mysqllite/include/internal/sha1.h
deleted file mode 100644
index d60d5e17c60..00000000000
--- a/dep/mysqllite/include/internal/sha1.h
+++ /dev/null
@@ -1,104 +0,0 @@
-#ifndef SHA1_INCLUDED
-#define SHA1_INCLUDED
-
-/* Copyright (C) 2002, 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-/*
- This is the header file for code which implements the Secure
- Hashing Algorithm 1 as defined in FIPS PUB 180-1 published
- April 17, 1995.
-
- Many of the variable names in this code, especially the
- single character names, were used because those were the names
- used in the publication.
-
- Please read the file sha1.c for more information.
-
- Modified 2002 by Peter Zaitsev to better follow MySQL standards
-
- Original Source from: http://www.faqs.org/rfcs/rfc3174.html
-
- Copyright (C) The Internet Society (2001). All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that the above copyright notice and this paragraph are
- included on all such copies and derivative works. However, this
- document itself may not be modified in any way, such as by removing
- the copyright notice or references to the Internet Society or other
- Internet organizations, except as needed for the purpose of
- developing Internet standards in which case the procedures for
- copyrights defined in the Internet Standards process must be
- followed, or as required to translate it into languages other than
- English.
-
- The limited permissions granted above are perpetual and will not be
- revoked by the Internet Society or its successors or assigns.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
- Acknowledgement
- Funding for the RFC Editor function is currently provided by the
- Internet Society.
-*/
-
-
-enum sha_result_codes
-{
- SHA_SUCCESS = 0,
- SHA_NULL, /* Null pointer parameter */
- SHA_INPUT_TOO_LONG, /* input data too long */
- SHA_STATE_ERROR /* called Input after Result */
-};
-
-#define SHA1_HASH_SIZE 20 /* Hash size in bytes */
-
-/*
- This structure will hold context information for the SHA-1
- hashing operation
-*/
-
-typedef struct SHA1_CONTEXT
-{
- ulonglong Length; /* Message length in bits */
- uint32 Intermediate_Hash[SHA1_HASH_SIZE/4]; /* Message Digest */
- int Computed; /* Is the digest computed? */
- int Corrupted; /* Is the message digest corrupted? */
- int16 Message_Block_Index; /* Index into message block array */
- uint8 Message_Block[64]; /* 512-bit message blocks */
-} SHA1_CONTEXT;
-
-/*
- Function Prototypes
-*/
-
-C_MODE_START
-
-int mysql_sha1_reset(SHA1_CONTEXT*);
-int mysql_sha1_input(SHA1_CONTEXT*, const uint8 *, unsigned int);
-int mysql_sha1_result(SHA1_CONTEXT* , uint8 Message_Digest[SHA1_HASH_SIZE]);
-
-C_MODE_END
-
-#endif /* SHA__INCLUDED */
diff --git a/dep/mysqllite/include/internal/t_ctype.h b/dep/mysqllite/include/internal/t_ctype.h
deleted file mode 100644
index 15600019cd6..00000000000
--- a/dep/mysqllite/include/internal/t_ctype.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved.
- Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved.
- Permission to use, copy, modify, distribute and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies.
- Smaphan Raruenrom and Pruet Boonma makes no representations about
- the suitability of this software for any purpose. It is provided
- "as is" without express or implied warranty.
-*/
-
-/* LC_COLLATE category + Level information */
-
-#ifndef _t_ctype_h
-#define _t_ctype_h
-
-#define TOT_LEVELS 5
-#define LAST_LEVEL 4 /* TOT_LEVELS - 1 */
-
-#define IGNORE 0
-
-
-/* level 1 symbols & order */
-enum l1_symbols {
- L1_08 = TOT_LEVELS,
- L1_18,
- L1_28,
- L1_38,
- L1_48,
- L1_58,
- L1_68,
- L1_78,
- L1_88,
- L1_98,
- L1_A8,
- L1_B8,
- L1_C8,
- L1_D8,
- L1_E8,
- L1_F8,
- L1_G8,
- L1_H8,
- L1_I8,
- L1_J8,
- L1_K8,
- L1_L8,
- L1_M8,
- L1_N8,
- L1_O8,
- L1_P8,
- L1_Q8,
- L1_R8,
- L1_S8,
- L1_T8,
- L1_U8,
- L1_V8,
- L1_W8,
- L1_X8,
- L1_Y8,
- L1_Z8,
- L1_KO_KAI,
- L1_KHO_KHAI,
- L1_KHO_KHUAT,
- L1_KHO_KHWAI,
- L1_KHO_KHON,
- L1_KHO_RAKHANG,
- L1_NGO_NGU,
- L1_CHO_CHAN,
- L1_CHO_CHING,
- L1_CHO_CHANG,
- L1_SO_SO,
- L1_CHO_CHOE,
- L1_YO_YING,
- L1_DO_CHADA,
- L1_TO_PATAK,
- L1_THO_THAN,
- L1_THO_NANGMONTHO,
- L1_THO_PHUTHAO,
- L1_NO_NEN,
- L1_DO_DEK,
- L1_TO_TAO,
- L1_THO_THUNG,
- L1_THO_THAHAN,
- L1_THO_THONG,
- L1_NO_NU,
- L1_BO_BAIMAI,
- L1_PO_PLA,
- L1_PHO_PHUNG,
- L1_FO_FA,
- L1_PHO_PHAN,
- L1_FO_FAN,
- L1_PHO_SAMPHAO,
- L1_MO_MA,
- L1_YO_YAK,
- L1_RO_RUA,
- L1_RU,
- L1_LO_LING,
- L1_LU,
- L1_WO_WAEN,
- L1_SO_SALA,
- L1_SO_RUSI,
- L1_SO_SUA,
- L1_HO_HIP,
- L1_LO_CHULA,
- L1_O_ANG,
- L1_HO_NOKHUK,
- L1_NKHIT,
- L1_SARA_A,
- L1_MAI_HAN_AKAT,
- L1_SARA_AA,
- L1_SARA_AM,
- L1_SARA_I,
- L1_SARA_II,
- L1_SARA_UE,
- L1_SARA_UEE,
- L1_SARA_U,
- L1_SARA_UU,
- L1_SARA_E,
- L1_SARA_AE,
- L1_SARA_O,
- L1_SARA_AI_MAIMUAN,
- L1_SARA_AI_MAIMALAI
-};
-
-/* level 2 symbols & order */
-enum l2_symbols {
- L2_BLANK = TOT_LEVELS,
- L2_THAII,
- L2_YAMAK,
- L2_PINTHU,
- L2_GARAN,
- L2_TYKHU,
- L2_TONE1,
- L2_TONE2,
- L2_TONE3,
- L2_TONE4
-};
-
-/* level 3 symbols & order */
-enum l3_symbols {
- L3_BLANK = TOT_LEVELS,
- L3_SPACE,
- L3_NB_SACE,
- L3_LOW_LINE,
- L3_HYPHEN,
- L3_COMMA,
- L3_SEMICOLON,
- L3_COLON,
- L3_EXCLAMATION,
- L3_QUESTION,
- L3_SOLIDUS,
- L3_FULL_STOP,
- L3_PAIYAN_NOI,
- L3_MAI_YAMOK,
- L3_GRAVE,
- L3_CIRCUMFLEX,
- L3_TILDE,
- L3_APOSTROPHE,
- L3_QUOTATION,
- L3_L_PARANTHESIS,
- L3_L_BRACKET,
- L3_L_BRACE,
- L3_R_BRACE,
- L3_R_BRACKET,
- L3_R_PARENTHESIS,
- L3_AT,
- L3_BAHT,
- L3_DOLLAR,
- L3_FONGMAN,
- L3_ANGKHANKHU,
- L3_KHOMUT,
- L3_ASTERISK,
- L3_BK_SOLIDUS,
- L3_AMPERSAND,
- L3_NUMBER,
- L3_PERCENT,
- L3_PLUS,
- L3_LESS_THAN,
- L3_EQUAL,
- L3_GREATER_THAN,
- L3_V_LINE
-};
-
-/* level 4 symbols & order */
-enum l4_symbols {
- L4_BLANK = TOT_LEVELS,
- L4_MIN,
- L4_CAP,
- L4_EXT
-};
-
-enum level_symbols {
- L_UPRUPR = TOT_LEVELS,
- L_UPPER,
- L_MIDDLE,
- L_LOWER
-};
-
-#define _is(c) (t_ctype[(c)][LAST_LEVEL])
-#define _level 8
-#define _consnt 16
-#define _ldvowel 32
-#define _fllwvowel 64
-#define _uprvowel 128
-#define _lwrvowel 256
-#define _tone 512
-#define _diacrt1 1024
-#define _diacrt2 2048
-#define _combine 4096
-#define _stone 8192
-#define _tdig 16384
-#define _rearvowel (_fllwvowel | _uprvowel | _lwrvowel)
-#define _diacrt (_diacrt1 | _diacrt2)
-#define levelof(c) ( _is(c) & _level )
-#define isthai(c) ( (c) >= 128 )
-#define istalpha(c) ( _is(c) & (_consnt|_ldvowel|_rearvowel|\
- _tone|_diacrt1|_diacrt2) )
-#define isconsnt(c) ( _is(c) & _consnt )
-#define isldvowel(c) ( _is(c) & _ldvowel )
-#define isfllwvowel(c) ( _is(c) & _fllwvowel )
-#define ismidvowel(c) ( _is(c) & (_ldvowel|_fllwvowel) )
-#define isuprvowel(c) ( _is(c) & _uprvowel )
-#define islwrvowel(c) ( _is(c) & _lwrvowel )
-#define isuprlwrvowel(c) ( _is(c) & (_lwrvowel | _uprvowel))
-#define isrearvowel(c) ( _is(c) & _rearvowel )
-#define isvowel(c) ( _is(c) & (_ldvowel|_rearvowel) )
-#define istone(c) ( _is(c) & _tone )
-#define isunldable(c) ( _is(c) & (_rearvowel|_tone|_diacrt1|_diacrt2) )
-#define iscombinable(c) ( _is(c) & _combine )
-#define istdigit(c) ( _is(c) & _tdig )
-#define isstone(c) ( _is(c) & _stone )
-#define isdiacrt1(c) ( _is(c) & _diacrt1)
-#define isdiacrt2(c) ( _is(c) & _diacrt2)
-#define isdiacrt(c) ( _is(c) & _diacrt)
-
-/* Function prototype called by sql/field.cc */
-void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length);
-
-#endif
diff --git a/dep/mysqllite/include/internal/thr_alarm.h b/dep/mysqllite/include/internal/thr_alarm.h
deleted file mode 100644
index 8c91fc0b899..00000000000
--- a/dep/mysqllite/include/internal/thr_alarm.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Prototypes when using thr_alarm library functions */
-
-#ifndef _thr_alarm_h
-#define _thr_alarm_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef USE_ALARM_THREAD
-#define USE_ONE_SIGNAL_HAND /* One must call process_alarm */
-#endif
-#ifdef HAVE_rts_threads
-#undef USE_ONE_SIGNAL_HAND
-#define USE_ALARM_THREAD
-#define THR_SERVER_ALARM SIGUSR1
-#else
-#define THR_SERVER_ALARM SIGALRM
-#endif
-
-typedef struct st_alarm_info
-{
- ulong next_alarm_time;
- uint active_alarms;
- uint max_used_alarms;
-} ALARM_INFO;
-
-void thr_alarm_info(ALARM_INFO *info);
-
-#if defined(DONT_USE_THR_ALARM)
-
-#define USE_ALARM_THREAD
-#undef USE_ONE_SIGNAL_HAND
-
-typedef my_bool thr_alarm_t;
-typedef my_bool ALARM;
-
-#define thr_alarm_init(A) (*(A))=0
-#define thr_alarm_in_use(A) (*(A) != 0)
-#define thr_end_alarm(A)
-#define thr_alarm(A,B,C) ((*(A)=1)-1)
-/* The following should maybe be (*(A)) */
-#define thr_got_alarm(A) 0
-#define init_thr_alarm(A)
-#define thr_alarm_kill(A)
-#define resize_thr_alarm(N)
-#define end_thr_alarm(A)
-
-#else
-#if defined(__WIN__)
-typedef struct st_thr_alarm_entry
-{
- UINT_PTR crono;
-} thr_alarm_entry;
-
-#else /* System with posix threads */
-
-typedef int thr_alarm_entry;
-
-#define thr_got_alarm(thr_alarm) (**(thr_alarm))
-
-#endif /* __WIN__ */
-
-typedef thr_alarm_entry* thr_alarm_t;
-
-typedef struct st_alarm {
- ulong expire_time;
- thr_alarm_entry alarmed; /* set when alarm is due */
- pthread_t thread;
- my_thread_id thread_id;
- my_bool malloced;
-} ALARM;
-
-extern uint thr_client_alarm;
-extern pthread_t alarm_thread;
-
-#define thr_alarm_init(A) (*(A))=0
-#define thr_alarm_in_use(A) (*(A)!= 0)
-void init_thr_alarm(uint max_alarm);
-void resize_thr_alarm(uint max_alarms);
-my_bool thr_alarm(thr_alarm_t *alarmed, uint sec, ALARM *buff);
-void thr_alarm_kill(my_thread_id thread_id);
-void thr_end_alarm(thr_alarm_t *alarmed);
-void end_thr_alarm(my_bool free_structures);
-sig_handler process_alarm(int);
-#ifndef thr_got_alarm
-my_bool thr_got_alarm(thr_alarm_t *alrm);
-#endif
-
-
-#endif /* DONT_USE_THR_ALARM */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* _thr_alarm_h */
diff --git a/dep/mysqllite/include/internal/thr_lock.h b/dep/mysqllite/include/internal/thr_lock.h
deleted file mode 100644
index 91473737be3..00000000000
--- a/dep/mysqllite/include/internal/thr_lock.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* For use with thr_lock:s */
-
-#ifndef _thr_lock_h
-#define _thr_lock_h
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <my_pthread.h>
-#include <my_list.h>
-
-struct st_thr_lock;
-extern ulong locks_immediate,locks_waited ;
-
-/*
- Important: if a new lock type is added, a matching lock description
- must be added to sql_test.cc's lock_descriptions array.
-*/
-enum thr_lock_type { TL_IGNORE=-1,
- TL_UNLOCK, /* UNLOCK ANY LOCK */
- /*
- Parser only! At open_tables() becomes TL_READ or
- TL_READ_NO_INSERT depending on the binary log format
- (SBR/RBR) and on the table category (log table).
- Used for tables that are read by statements which
- modify tables.
- */
- TL_READ_DEFAULT,
- TL_READ, /* Read lock */
- TL_READ_WITH_SHARED_LOCKS,
- /* High prior. than TL_WRITE. Allow concurrent insert */
- TL_READ_HIGH_PRIORITY,
- /* READ, Don't allow concurrent insert */
- TL_READ_NO_INSERT,
- /*
- Write lock, but allow other threads to read / write.
- Used by BDB tables in MySQL to mark that someone is
- reading/writing to the table.
- */
- TL_WRITE_ALLOW_WRITE,
- /*
- WRITE lock used by concurrent insert. Will allow
- READ, if one could use concurrent insert on table.
- */
- TL_WRITE_CONCURRENT_INSERT,
- /* Write used by INSERT DELAYED. Allows READ locks */
- TL_WRITE_DELAYED,
- /*
- parser only! Late bound low_priority flag.
- At open_tables() becomes thd->update_lock_default.
- */
- TL_WRITE_DEFAULT,
- /* WRITE lock that has lower priority than TL_READ */
- TL_WRITE_LOW_PRIORITY,
- /* Normal WRITE lock */
- TL_WRITE,
- /* Abort new lock request with an error */
- TL_WRITE_ONLY};
-
-enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1,
- THR_LOCK_WAIT_TIMEOUT= 2, THR_LOCK_DEADLOCK= 3 };
-
-
-extern ulong max_write_lock_count;
-extern my_bool thr_lock_inited;
-extern enum thr_lock_type thr_upgraded_concurrent_insert_lock;
-
-/*
- A description of the thread which owns the lock. The address
- of an instance of this structure is used to uniquely identify the thread.
-*/
-
-typedef struct st_thr_lock_info
-{
- pthread_t thread;
- my_thread_id thread_id;
-} THR_LOCK_INFO;
-
-
-typedef struct st_thr_lock_data {
- THR_LOCK_INFO *owner;
- struct st_thr_lock_data *next,**prev;
- struct st_thr_lock *lock;
- mysql_cond_t *cond;
- enum thr_lock_type type;
- void *status_param; /* Param to status functions */
- void *debug_print_param;
- struct PSI_table *m_psi;
-} THR_LOCK_DATA;
-
-struct st_lock_list {
- THR_LOCK_DATA *data,**last;
-};
-
-typedef struct st_thr_lock {
- LIST list;
- mysql_mutex_t mutex;
- struct st_lock_list read_wait;
- struct st_lock_list read;
- struct st_lock_list write_wait;
- struct st_lock_list write;
- /* write_lock_count is incremented for write locks and reset on read locks */
- ulong write_lock_count;
- uint read_no_write_count;
- void (*get_status)(void*, int); /* When one gets a lock */
- void (*copy_status)(void*,void*);
- void (*update_status)(void*); /* Before release of write */
- void (*restore_status)(void*); /* Before release of read */
- my_bool (*check_status)(void *);
-} THR_LOCK;
-
-
-extern LIST *thr_lock_thread_list;
-extern mysql_mutex_t THR_LOCK_lock;
-
-my_bool init_thr_lock(void); /* Must be called once/thread */
-void thr_lock_info_init(THR_LOCK_INFO *info);
-void thr_lock_init(THR_LOCK *lock);
-void thr_lock_delete(THR_LOCK *lock);
-void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data,
- void *status_param);
-enum enum_thr_lock_result thr_lock(THR_LOCK_DATA *data,
- THR_LOCK_INFO *owner,
- enum thr_lock_type lock_type,
- ulong lock_wait_timeout);
-void thr_unlock(THR_LOCK_DATA *data);
-enum enum_thr_lock_result thr_multi_lock(THR_LOCK_DATA **data,
- uint count, THR_LOCK_INFO *owner,
- ulong lock_wait_timeout);
-void thr_multi_unlock(THR_LOCK_DATA **data,uint count);
-void
-thr_lock_merge_status(THR_LOCK_DATA **data, uint count);
-void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock);
-my_bool thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread);
-void thr_print_locks(void); /* For debugging */
-my_bool thr_upgrade_write_delay_lock(THR_LOCK_DATA *data,
- enum thr_lock_type new_lock_type,
- ulong lock_wait_timeout);
-void thr_downgrade_write_lock(THR_LOCK_DATA *data,
- enum thr_lock_type new_lock_type);
-my_bool thr_reschedule_write_lock(THR_LOCK_DATA *data,
- ulong lock_wait_timeout);
-void thr_set_lock_wait_callback(void (*before_wait)(void),
- void (*after_wait)(void));
-#ifdef __cplusplus
-}
-#endif
-#endif /* _thr_lock_h */
diff --git a/dep/mysqllite/include/internal/violite.h b/dep/mysqllite/include/internal/violite.h
deleted file mode 100644
index f4083216894..00000000000
--- a/dep/mysqllite/include/internal/violite.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- * Vio Lite.
- * Purpose: include file for Vio that will work with C and C++
- */
-
-#ifndef vio_violite_h_
-#define vio_violite_h_
-
-#include "my_net.h" /* needed because of struct in_addr */
-
-
-/* Simple vio interface in C; The functions are implemented in violite.c */
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifdef __cplusplus
-typedef struct st_vio Vio;
-#endif /* __cplusplus */
-
-enum enum_vio_type
-{
- VIO_CLOSED, VIO_TYPE_TCPIP, VIO_TYPE_SOCKET, VIO_TYPE_NAMEDPIPE,
- VIO_TYPE_SSL, VIO_TYPE_SHARED_MEMORY
-};
-
-
-#define VIO_LOCALHOST 1 /* a localhost connection */
-#define VIO_BUFFERED_READ 2 /* use buffered read */
-#define VIO_READ_BUFFER_SIZE 16384 /* size of read buffer */
-
-Vio* vio_new(my_socket sd, enum enum_vio_type type, uint flags);
-#ifdef __WIN__
-Vio* vio_new_win32pipe(HANDLE hPipe);
-Vio* vio_new_win32shared_memory(HANDLE handle_file_map,
- HANDLE handle_map,
- HANDLE event_server_wrote,
- HANDLE event_server_read,
- HANDLE event_client_wrote,
- HANDLE event_client_read,
- HANDLE event_conn_closed);
-#else
-#define HANDLE void *
-#endif /* __WIN__ */
-
-void vio_delete(Vio* vio);
-int vio_close(Vio* vio);
-void vio_reset(Vio* vio, enum enum_vio_type type,
- my_socket sd, HANDLE hPipe, uint flags);
-size_t vio_read(Vio *vio, uchar * buf, size_t size);
-size_t vio_read_buff(Vio *vio, uchar * buf, size_t size);
-size_t vio_write(Vio *vio, const uchar * buf, size_t size);
-int vio_blocking(Vio *vio, my_bool onoff, my_bool *old_mode);
-my_bool vio_is_blocking(Vio *vio);
-/* setsockopt TCP_NODELAY at IPPROTO_TCP level, when possible */
-int vio_fastsend(Vio *vio);
-/* setsockopt SO_KEEPALIVE at SOL_SOCKET level, when possible */
-int vio_keepalive(Vio *vio, my_bool onoff);
-/* Whenever we should retry the last read/write operation. */
-my_bool vio_should_retry(Vio *vio);
-/* Check that operation was timed out */
-my_bool vio_was_interrupted(Vio *vio);
-/* Short text description of the socket for those, who are curious.. */
-const char* vio_description(Vio *vio);
-/* Return the type of the connection */
-enum enum_vio_type vio_type(Vio* vio);
-/* Return last error number */
-int vio_errno(Vio*vio);
-/* Get socket number */
-my_socket vio_fd(Vio*vio);
-/* Remote peer's address and name in text form */
-my_bool vio_peer_addr(Vio *vio, char *buf, uint16 *port, size_t buflen);
-my_bool vio_poll_read(Vio *vio, uint timeout);
-my_bool vio_is_connected(Vio *vio);
-ssize_t vio_pending(Vio *vio);
-
-my_bool vio_get_normalized_ip_string(const struct sockaddr *addr, int addr_length,
- char *ip_string, size_t ip_string_size);
-
-int vio_getnameinfo(const struct sockaddr *sa,
- char *hostname, size_t hostname_size,
- char *port, size_t port_size,
- int flags);
-
-#ifdef HAVE_OPENSSL
-#include <openssl/opensslv.h>
-#if OPENSSL_VERSION_NUMBER < 0x0090700f
-#define DES_cblock des_cblock
-#define DES_key_schedule des_key_schedule
-#define DES_set_key_unchecked(k,ks) des_set_key_unchecked((k),*(ks))
-#define DES_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e) des_ede3_cbc_encrypt((i),(o),(l),*(k1),*(k2),*(k3),(iv),(e))
-#endif
-
-#define HEADER_DES_LOCL_H dummy_something
-#define YASSL_MYSQL_COMPATIBLE
-#ifndef YASSL_PREFIX
-#define YASSL_PREFIX
-#endif
-/* Set yaSSL to use same type as MySQL do for socket handles */
-typedef my_socket YASSL_SOCKET_T;
-#define YASSL_SOCKET_T_DEFINED
-#include <openssl/ssl.h>
-#include <openssl/err.h>
-
-#ifndef EMBEDDED_LIBRARY
-enum enum_ssl_init_error
-{
- SSL_INITERR_NOERROR= 0, SSL_INITERR_CERT, SSL_INITERR_KEY,
- SSL_INITERR_NOMATCH, SSL_INITERR_BAD_PATHS, SSL_INITERR_CIPHERS,
- SSL_INITERR_MEMFAIL, SSL_INITERR_LASTERR
-};
-const char* sslGetErrString(enum enum_ssl_init_error err);
-
-struct st_VioSSLFd
-{
- SSL_CTX *ssl_context;
-};
-
-int sslaccept(struct st_VioSSLFd*, Vio *, long timeout);
-int sslconnect(struct st_VioSSLFd*, Vio *, long timeout);
-
-struct st_VioSSLFd
-*new_VioSSLConnectorFd(const char *key_file, const char *cert_file,
- const char *ca_file, const char *ca_path,
- const char *cipher);
-struct st_VioSSLFd
-*new_VioSSLAcceptorFd(const char *key_file, const char *cert_file,
- const char *ca_file,const char *ca_path,
- const char *cipher, enum enum_ssl_init_error* error);
-void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd);
-#endif /* ! EMBEDDED_LIBRARY */
-#endif /* HAVE_OPENSSL */
-
-void vio_end(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#if !defined(DONT_MAP_VIO)
-#define vio_delete(vio) (vio)->viodelete(vio)
-#define vio_errno(vio) (vio)->vioerrno(vio)
-#define vio_read(vio, buf, size) ((vio)->read)(vio,buf,size)
-#define vio_write(vio, buf, size) ((vio)->write)(vio, buf, size)
-#define vio_blocking(vio, set_blocking_mode, old_mode)\
- (vio)->vioblocking(vio, set_blocking_mode, old_mode)
-#define vio_is_blocking(vio) (vio)->is_blocking(vio)
-#define vio_fastsend(vio) (vio)->fastsend(vio)
-#define vio_keepalive(vio, set_keep_alive) (vio)->viokeepalive(vio, set_keep_alive)
-#define vio_should_retry(vio) (vio)->should_retry(vio)
-#define vio_was_interrupted(vio) (vio)->was_interrupted(vio)
-#define vio_close(vio) ((vio)->vioclose)(vio)
-#define vio_peer_addr(vio, buf, prt, buflen) (vio)->peer_addr(vio, buf, prt, buflen)
-#define vio_timeout(vio, which, seconds) (vio)->timeout(vio, which, seconds)
-#define vio_poll_read(vio, timeout) (vio)->poll_read(vio, timeout)
-#define vio_is_connected(vio) (vio)->is_connected(vio)
-#endif /* !defined(DONT_MAP_VIO) */
-
-/* This enumerator is used in parser - should be always visible */
-enum SSL_type
-{
- SSL_TYPE_NOT_SPECIFIED= -1,
- SSL_TYPE_NONE,
- SSL_TYPE_ANY,
- SSL_TYPE_X509,
- SSL_TYPE_SPECIFIED
-};
-
-
-/* HFTODO - hide this if we don't want client in embedded server */
-/* This structure is for every connection on both sides */
-struct st_vio
-{
- my_socket sd; /* my_socket - real or imaginary */
- HANDLE hPipe;
- my_bool localhost; /* Are we from localhost? */
- int fcntl_mode; /* Buffered fcntl(sd,F_GETFL) */
- struct sockaddr_storage local; /* Local internet address */
- struct sockaddr_storage remote; /* Remote internet address */
- int addrLen; /* Length of remote address */
- enum enum_vio_type type; /* Type of connection */
- char desc[30]; /* String description */
- char *read_buffer; /* buffer for vio_read_buff */
- char *read_pos; /* start of unfetched data in the
- read buffer */
- char *read_end; /* end of unfetched data */
- /* function pointers. They are similar for socket/SSL/whatever */
- void (*viodelete)(Vio*);
- int (*vioerrno)(Vio*);
- size_t (*read)(Vio*, uchar *, size_t);
- size_t (*write)(Vio*, const uchar *, size_t);
- int (*vioblocking)(Vio*, my_bool, my_bool *);
- my_bool (*is_blocking)(Vio*);
- int (*viokeepalive)(Vio*, my_bool);
- int (*fastsend)(Vio*);
- my_bool (*peer_addr)(Vio*, char *, uint16*, size_t);
- void (*in_addr)(Vio*, struct sockaddr_storage*);
- my_bool (*should_retry)(Vio*);
- my_bool (*was_interrupted)(Vio*);
- int (*vioclose)(Vio*);
- void (*timeout)(Vio*, unsigned int which, unsigned int timeout);
- my_bool (*poll_read)(Vio *vio, uint timeout);
- my_bool (*is_connected)(Vio*);
- my_bool (*has_data) (Vio*);
-#ifdef HAVE_OPENSSL
- void *ssl_arg;
-#endif
-#ifdef HAVE_SMEM
- HANDLE handle_file_map;
- char *handle_map;
- HANDLE event_server_wrote;
- HANDLE event_server_read;
- HANDLE event_client_wrote;
- HANDLE event_client_read;
- HANDLE event_conn_closed;
- size_t shared_memory_remain;
- char *shared_memory_pos;
-#endif /* HAVE_SMEM */
-#ifdef _WIN32
- OVERLAPPED pipe_overlapped;
- DWORD read_timeout_ms;
- DWORD write_timeout_ms;
-#endif
-};
-#endif /* vio_violite_h_ */
diff --git a/dep/mysqllite/include/keycache.h b/dep/mysqllite/include/keycache.h
deleted file mode 100644
index fefa31afd87..00000000000
--- a/dep/mysqllite/include/keycache.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright (C) 2003 MySQL AB, 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Key cache variable structures */
-
-#ifndef _keycache_h
-#define _keycache_h
-
-#include "my_sys.h" /* flush_type */
-
-C_MODE_START
-
-/* declare structures that is used by st_key_cache */
-
-struct st_block_link;
-typedef struct st_block_link BLOCK_LINK;
-struct st_keycache_page;
-typedef struct st_keycache_page KEYCACHE_PAGE;
-struct st_hash_link;
-typedef struct st_hash_link HASH_LINK;
-
-/* info about requests in a waiting queue */
-typedef struct st_keycache_wqueue
-{
- struct st_my_thread_var *last_thread; /* circular list of waiting threads */
-} KEYCACHE_WQUEUE;
-
-#define CHANGED_BLOCKS_HASH 128 /* must be power of 2 */
-
-/*
- The key cache structure
- It also contains read-only statistics parameters.
-*/
-
-typedef struct st_key_cache
-{
- my_bool key_cache_inited;
- my_bool in_resize; /* true during resize operation */
- my_bool resize_in_flush; /* true during flush of resize operation */
- my_bool can_be_used; /* usage of cache for read/write is allowed */
- size_t key_cache_mem_size; /* specified size of the cache memory */
- uint key_cache_block_size; /* size of the page buffer of a cache block */
- ulong min_warm_blocks; /* min number of warm blocks; */
- ulong age_threshold; /* age threshold for hot blocks */
- ulonglong keycache_time; /* total number of block link operations */
- uint hash_entries; /* max number of entries in the hash table */
- int hash_links; /* max number of hash links */
- int hash_links_used; /* number of hash links currently used */
- int disk_blocks; /* max number of blocks in the cache */
- ulong blocks_used; /* maximum number of concurrently used blocks */
- ulong blocks_unused; /* number of currently unused blocks */
- ulong blocks_changed; /* number of currently dirty blocks */
- ulong warm_blocks; /* number of blocks in warm sub-chain */
- ulong cnt_for_resize_op; /* counter to block resize operation */
- long blocks_available; /* number of blocks available in the LRU chain */
- HASH_LINK **hash_root; /* arr. of entries into hash table buckets */
- HASH_LINK *hash_link_root; /* memory for hash table links */
- HASH_LINK *free_hash_list; /* list of free hash links */
- BLOCK_LINK *free_block_list; /* list of free blocks */
- BLOCK_LINK *block_root; /* memory for block links */
- uchar *block_mem; /* memory for block buffers */
- BLOCK_LINK *used_last; /* ptr to the last block of the LRU chain */
- BLOCK_LINK *used_ins; /* ptr to the insertion block in LRU chain */
- mysql_mutex_t cache_lock; /* to lock access to the cache structure */
- KEYCACHE_WQUEUE resize_queue; /* threads waiting during resize operation */
- /*
- Waiting for a zero resize count. Using a queue for symmetry though
- only one thread can wait here.
- */
- KEYCACHE_WQUEUE waiting_for_resize_cnt;
- KEYCACHE_WQUEUE waiting_for_hash_link; /* waiting for a free hash link */
- KEYCACHE_WQUEUE waiting_for_block; /* requests waiting for a free block */
- BLOCK_LINK *changed_blocks[CHANGED_BLOCKS_HASH]; /* hash for dirty file bl.*/
- BLOCK_LINK *file_blocks[CHANGED_BLOCKS_HASH]; /* hash for other file bl.*/
-
- /*
- The following variables are and variables used to hold parameters for
- initializing the key cache.
- */
-
- ulonglong param_buff_size; /* size the memory allocated for the cache */
- ulonglong param_block_size; /* size of the blocks in the key cache */
- ulonglong param_division_limit; /* min. percentage of warm blocks */
- ulonglong param_age_threshold; /* determines when hot block is downgraded */
-
- /* Statistics variables. These are reset in reset_key_cache_counters(). */
- ulong global_blocks_changed; /* number of currently dirty blocks */
- ulonglong global_cache_w_requests;/* number of write requests (write hits) */
- ulonglong global_cache_write; /* number of writes from cache to files */
- ulonglong global_cache_r_requests;/* number of read requests (read hits) */
- ulonglong global_cache_read; /* number of reads from files to cache */
-
- int blocks; /* max number of blocks in the cache */
- my_bool in_init; /* Set to 1 in MySQL during init/resize */
-} KEY_CACHE;
-
-/* The default key cache */
-extern KEY_CACHE dflt_key_cache_var, *dflt_key_cache;
-
-extern int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
- size_t use_mem, uint division_limit,
- uint age_threshold);
-extern int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
- size_t use_mem, uint division_limit,
- uint age_threshold);
-extern void change_key_cache_param(KEY_CACHE *keycache, uint division_limit,
- uint age_threshold);
-extern uchar *key_cache_read(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length,
- uint block_length,int return_buffer);
-extern int key_cache_insert(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length);
-extern int key_cache_write(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length,
- uint block_length,int force_write);
-extern int flush_key_blocks(KEY_CACHE *keycache,
- int file, enum flush_type type);
-extern void end_key_cache(KEY_CACHE *keycache, my_bool cleanup);
-
-/* Functions to handle multiple key caches */
-extern my_bool multi_keycache_init(void);
-extern void multi_keycache_free(void);
-extern KEY_CACHE *multi_key_cache_search(uchar *key, uint length);
-extern my_bool multi_key_cache_set(const uchar *key, uint length,
- KEY_CACHE *key_cache);
-extern void multi_key_cache_change(KEY_CACHE *old_data,
- KEY_CACHE *new_data);
-extern int reset_key_cache_counters(const char *name,
- KEY_CACHE *key_cache);
-C_MODE_END
-#endif /* _keycache_h */
diff --git a/dep/mysqllite/include/m_ctype.h b/dep/mysqllite/include/m_ctype.h
deleted file mode 100644
index bb7f5ddfb3d..00000000000
--- a/dep/mysqllite/include/m_ctype.h
+++ /dev/null
@@ -1,660 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- A better inplementation of the UNIX ctype(3) library.
-*/
-
-#ifndef _m_ctype_h
-#define _m_ctype_h
-
-#include <my_attribute.h>
-#include "my_global.h" /* uint16, uchar */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MY_CS_NAME_SIZE 32
-#define MY_CS_CTYPE_TABLE_SIZE 257
-#define MY_CS_TO_LOWER_TABLE_SIZE 256
-#define MY_CS_TO_UPPER_TABLE_SIZE 256
-#define MY_CS_SORT_ORDER_TABLE_SIZE 256
-#define MY_CS_TO_UNI_TABLE_SIZE 256
-
-#define CHARSET_DIR "charsets/"
-
-#define my_wc_t ulong
-
-#define MY_CS_REPLACEMENT_CHARACTER 0xFFFD
-
-/*
- On i386 we store Unicode->CS conversion tables for
- some character sets using Big-endian order,
- to copy two bytes at onces.
- This gives some performance improvement.
-*/
-#ifdef __i386__
-#define MB2(x) (((x) >> 8) + (((x) & 0xFF) << 8))
-#define MY_PUT_MB2(s, code) { *((uint16*)(s))= (code); }
-#else
-#define MB2(x) (x)
-#define MY_PUT_MB2(s, code) { (s)[0]= code >> 8; (s)[1]= code & 0xFF; }
-#endif
-
-
-
-typedef struct unicase_info_st
-{
- uint32 toupper;
- uint32 tolower;
- uint32 sort;
-} MY_UNICASE_INFO;
-
-
-extern MY_UNICASE_INFO *my_unicase_default[256];
-extern MY_UNICASE_INFO *my_unicase_turkish[256];
-
-typedef struct uni_ctype_st
-{
- uchar pctype;
- uchar *ctype;
-} MY_UNI_CTYPE;
-
-extern MY_UNI_CTYPE my_uni_ctype[256];
-
-/* wm_wc and wc_mb return codes */
-#define MY_CS_ILSEQ 0 /* Wrong by sequence: wb_wc */
-#define MY_CS_ILUNI 0 /* Cannot encode Unicode to charset: wc_mb */
-#define MY_CS_TOOSMALL -101 /* Need at least one byte: wc_mb and mb_wc */
-#define MY_CS_TOOSMALL2 -102 /* Need at least two bytes: wc_mb and mb_wc */
-#define MY_CS_TOOSMALL3 -103 /* Need at least three bytes: wc_mb and mb_wc */
-/* These following three are currently not really used */
-#define MY_CS_TOOSMALL4 -104 /* Need at least 4 bytes: wc_mb and mb_wc */
-#define MY_CS_TOOSMALL5 -105 /* Need at least 5 bytes: wc_mb and mb_wc */
-#define MY_CS_TOOSMALL6 -106 /* Need at least 6 bytes: wc_mb and mb_wc */
-/* A helper macros for "need at least n bytes" */
-#define MY_CS_TOOSMALLN(n) (-100-(n))
-
-#define MY_SEQ_INTTAIL 1
-#define MY_SEQ_SPACES 2
-
- /* My charsets_list flags */
-#define MY_CS_COMPILED 1 /* compiled-in sets */
-#define MY_CS_CONFIG 2 /* sets that have a *.conf file */
-#define MY_CS_INDEX 4 /* sets listed in the Index file */
-#define MY_CS_LOADED 8 /* sets that are currently loaded */
-#define MY_CS_BINSORT 16 /* if binary sort order */
-#define MY_CS_PRIMARY 32 /* if primary collation */
-#define MY_CS_STRNXFRM 64 /* if strnxfrm is used for sort */
-#define MY_CS_UNICODE 128 /* is a charset is BMP Unicode */
-#define MY_CS_READY 256 /* if a charset is initialized */
-#define MY_CS_AVAILABLE 512 /* If either compiled-in or loaded*/
-#define MY_CS_CSSORT 1024 /* if case sensitive sort order */
-#define MY_CS_HIDDEN 2048 /* don't display in SHOW */
-#define MY_CS_PUREASCII 4096 /* if a charset is pure ascii */
-#define MY_CS_NONASCII 8192 /* if not ASCII-compatible */
-#define MY_CS_UNICODE_SUPPLEMENT 16384 /* Non-BMP Unicode characters */
-#define MY_CHARSET_UNDEFINED 0
-
-/* Character repertoire flags */
-#define MY_REPERTOIRE_ASCII 1 /* Pure ASCII U+0000..U+007F */
-#define MY_REPERTOIRE_EXTENDED 2 /* Extended characters: U+0080..U+FFFF */
-#define MY_REPERTOIRE_UNICODE30 3 /* ASCII | EXTENDED: U+0000..U+FFFF */
-
-typedef struct my_uni_idx_st
-{
- uint16 from;
- uint16 to;
- uchar *tab;
-} MY_UNI_IDX;
-
-typedef struct
-{
- uint beg;
- uint end;
- uint mb_len;
-} my_match_t;
-
-enum my_lex_states
-{
- MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT,
- MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
- MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER,
- MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
- MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
- MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE,
- MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON,
- MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP,
- MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR,
- MY_LEX_IDENT_OR_KEYWORD,
- MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR,
- MY_LEX_STRING_OR_DELIMITER
-};
-
-struct charset_info_st;
-
-
-/* See strings/CHARSET_INFO.txt for information about this structure */
-typedef struct my_collation_handler_st
-{
- my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t));
- /* Collation routines */
- int (*strnncoll)(struct charset_info_st *,
- const uchar *, size_t, const uchar *, size_t, my_bool);
- int (*strnncollsp)(struct charset_info_st *,
- const uchar *, size_t, const uchar *, size_t,
- my_bool diff_if_only_endspace_difference);
- size_t (*strnxfrm)(struct charset_info_st *,
- uchar *, size_t, const uchar *, size_t);
- size_t (*strnxfrmlen)(struct charset_info_st *, size_t);
- my_bool (*like_range)(struct charset_info_st *,
- const char *s, size_t s_length,
- pchar w_prefix, pchar w_one, pchar w_many,
- size_t res_length,
- char *min_str, char *max_str,
- size_t *min_len, size_t *max_len);
- int (*wildcmp)(struct charset_info_st *,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape,int w_one, int w_many);
-
- int (*strcasecmp)(struct charset_info_st *, const char *, const char *);
-
- uint (*instr)(struct charset_info_st *,
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch);
-
- /* Hash calculation */
- void (*hash_sort)(struct charset_info_st *cs, const uchar *key, size_t len,
- ulong *nr1, ulong *nr2);
- my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, size_t len);
-} MY_COLLATION_HANDLER;
-
-extern MY_COLLATION_HANDLER my_collation_mb_bin_handler;
-extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler;
-extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
-extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler;
-
-/* Some typedef to make it easy for C++ to make function pointers */
-typedef int (*my_charset_conv_mb_wc)(struct charset_info_st *, my_wc_t *,
- const uchar *, const uchar *);
-typedef int (*my_charset_conv_wc_mb)(struct charset_info_st *, my_wc_t,
- uchar *, uchar *);
-typedef size_t (*my_charset_conv_case)(struct charset_info_st *,
- char *, size_t, char *, size_t);
-
-
-/* See strings/CHARSET_INFO.txt about information on this structure */
-typedef struct my_charset_handler_st
-{
- my_bool (*init)(struct charset_info_st *, void *(*alloc)(size_t));
- /* Multibyte routines */
- uint (*ismbchar)(struct charset_info_st *, const char *, const char *);
- uint (*mbcharlen)(struct charset_info_st *, uint c);
- size_t (*numchars)(struct charset_info_st *, const char *b, const char *e);
- size_t (*charpos)(struct charset_info_st *, const char *b, const char *e,
- size_t pos);
- size_t (*well_formed_len)(struct charset_info_st *,
- const char *b,const char *e,
- size_t nchars, int *error);
- size_t (*lengthsp)(struct charset_info_st *, const char *ptr, size_t length);
- size_t (*numcells)(struct charset_info_st *, const char *b, const char *e);
-
- /* Unicode conversion */
- my_charset_conv_mb_wc mb_wc;
- my_charset_conv_wc_mb wc_mb;
-
- /* CTYPE scanner */
- int (*ctype)(struct charset_info_st *cs, int *ctype,
- const uchar *s, const uchar *e);
-
- /* Functions for case and sort conversion */
- size_t (*caseup_str)(struct charset_info_st *, char *);
- size_t (*casedn_str)(struct charset_info_st *, char *);
-
- my_charset_conv_case caseup;
- my_charset_conv_case casedn;
-
- /* Charset dependant snprintf() */
- size_t (*snprintf)(struct charset_info_st *, char *to, size_t n,
- const char *fmt,
- ...) ATTRIBUTE_FORMAT_FPTR(printf, 4, 5);
- size_t (*long10_to_str)(struct charset_info_st *, char *to, size_t n,
- int radix, long int val);
- size_t (*longlong10_to_str)(struct charset_info_st *, char *to, size_t n,
- int radix, longlong val);
-
- void (*fill)(struct charset_info_st *, char *to, size_t len, int fill);
-
- /* String-to-number conversion routines */
- long (*strntol)(struct charset_info_st *, const char *s, size_t l,
- int base, char **e, int *err);
- ulong (*strntoul)(struct charset_info_st *, const char *s, size_t l,
- int base, char **e, int *err);
- longlong (*strntoll)(struct charset_info_st *, const char *s, size_t l,
- int base, char **e, int *err);
- ulonglong (*strntoull)(struct charset_info_st *, const char *s, size_t l,
- int base, char **e, int *err);
- double (*strntod)(struct charset_info_st *, char *s, size_t l, char **e,
- int *err);
- longlong (*strtoll10)(struct charset_info_st *cs,
- const char *nptr, char **endptr, int *error);
- ulonglong (*strntoull10rnd)(struct charset_info_st *cs,
- const char *str, size_t length,
- int unsigned_fl,
- char **endptr, int *error);
- size_t (*scan)(struct charset_info_st *, const char *b, const char *e,
- int sq);
-} MY_CHARSET_HANDLER;
-
-extern MY_CHARSET_HANDLER my_charset_8bit_handler;
-extern MY_CHARSET_HANDLER my_charset_ucs2_handler;
-
-
-/*
- We define this CHARSET_INFO_DEFINED here to prevent a repeat of the
- typedef in hash.c, which will cause a compiler error.
-*/
-#define CHARSET_INFO_DEFINED
-
-/* See strings/CHARSET_INFO.txt about information on this structure */
-typedef struct charset_info_st
-{
- uint number;
- uint primary_number;
- uint binary_number;
- uint state;
- const char *csname;
- const char *name;
- const char *comment;
- const char *tailoring;
- uchar *ctype;
- uchar *to_lower;
- uchar *to_upper;
- uchar *sort_order;
- uint16 *contractions;
- uint16 **sort_order_big;
- uint16 *tab_to_uni;
- MY_UNI_IDX *tab_from_uni;
- MY_UNICASE_INFO **caseinfo;
- uchar *state_map;
- uchar *ident_map;
- uint strxfrm_multiply;
- uchar caseup_multiply;
- uchar casedn_multiply;
- uint mbminlen;
- uint mbmaxlen;
- uint16 min_sort_char;
- uint16 max_sort_char; /* For LIKE optimization */
- uchar pad_char;
- my_bool escape_with_backslash_is_dangerous;
-
- MY_CHARSET_HANDLER *cset;
- MY_COLLATION_HANDLER *coll;
-
-} CHARSET_INFO;
-#define ILLEGAL_CHARSET_INFO_NUMBER (~0U)
-
-
-extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_bin;
-extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_latin1;
-extern MYSQL_PLUGIN_IMPORT CHARSET_INFO my_charset_filename;
-
-extern CHARSET_INFO my_charset_big5_chinese_ci;
-extern CHARSET_INFO my_charset_big5_bin;
-extern CHARSET_INFO my_charset_cp932_japanese_ci;
-extern CHARSET_INFO my_charset_cp932_bin;
-extern CHARSET_INFO my_charset_cp1250_czech_ci;
-extern CHARSET_INFO my_charset_eucjpms_japanese_ci;
-extern CHARSET_INFO my_charset_eucjpms_bin;
-extern CHARSET_INFO my_charset_euckr_korean_ci;
-extern CHARSET_INFO my_charset_euckr_bin;
-extern CHARSET_INFO my_charset_gb2312_chinese_ci;
-extern CHARSET_INFO my_charset_gb2312_bin;
-extern CHARSET_INFO my_charset_gbk_chinese_ci;
-extern CHARSET_INFO my_charset_gbk_bin;
-extern CHARSET_INFO my_charset_latin1_german2_ci;
-extern CHARSET_INFO my_charset_latin1_bin;
-extern CHARSET_INFO my_charset_latin2_czech_ci;
-extern CHARSET_INFO my_charset_sjis_japanese_ci;
-extern CHARSET_INFO my_charset_sjis_bin;
-extern CHARSET_INFO my_charset_tis620_thai_ci;
-extern CHARSET_INFO my_charset_tis620_bin;
-extern CHARSET_INFO my_charset_ucs2_general_ci;
-extern CHARSET_INFO my_charset_ucs2_bin;
-extern CHARSET_INFO my_charset_ucs2_unicode_ci;
-extern CHARSET_INFO my_charset_ujis_japanese_ci;
-extern CHARSET_INFO my_charset_ujis_bin;
-extern CHARSET_INFO my_charset_utf16_bin;
-extern CHARSET_INFO my_charset_utf16_general_ci;
-extern CHARSET_INFO my_charset_utf16_unicode_ci;
-extern CHARSET_INFO my_charset_utf32_bin;
-extern CHARSET_INFO my_charset_utf32_general_ci;
-extern CHARSET_INFO my_charset_utf32_unicode_ci;
-
-extern CHARSET_INFO my_charset_utf8_general_ci;
-extern CHARSET_INFO my_charset_utf8_unicode_ci;
-extern CHARSET_INFO my_charset_utf8_bin;
-extern CHARSET_INFO my_charset_utf8mb4_bin;
-extern CHARSET_INFO my_charset_utf8mb4_general_ci;
-extern CHARSET_INFO my_charset_utf8mb4_unicode_ci;
-#define MY_UTF8MB3 "utf8"
-#define MY_UTF8MB4 "utf8mb4"
-
-
-/* Helper functions to handle contraction */
-static inline my_bool
-my_cs_have_contractions(CHARSET_INFO *cs)
-{
- return cs->contractions != NULL;
-}
-
-static inline my_bool
-my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc)
-{
- return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)];
-}
-
-static inline my_bool
-my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc)
-{
- return ((const char *)cs->contractions)[0x40*0x40 + (wc & 0xFF)];
-}
-
-static inline uint16*
-my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
-{
- return &cs->contractions[(wc1 - 0x40) * 0x40 + wc2 - 0x40];
-}
-
-
-/* declarations for simple charsets */
-extern size_t my_strnxfrm_simple(CHARSET_INFO *, uchar *, size_t,
- const uchar *, size_t);
-size_t my_strnxfrmlen_simple(CHARSET_INFO *, size_t);
-extern int my_strnncoll_simple(CHARSET_INFO *, const uchar *, size_t,
- const uchar *, size_t, my_bool);
-
-extern int my_strnncollsp_simple(CHARSET_INFO *, const uchar *, size_t,
- const uchar *, size_t,
- my_bool diff_if_only_endspace_difference);
-
-extern void my_hash_sort_simple(CHARSET_INFO *cs,
- const uchar *key, size_t len,
- ulong *nr1, ulong *nr2);
-
-extern size_t my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, size_t length);
-
-extern uint my_instr_simple(struct charset_info_st *,
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch);
-
-
-/* Functions for 8bit */
-extern size_t my_caseup_str_8bit(CHARSET_INFO *, char *);
-extern size_t my_casedn_str_8bit(CHARSET_INFO *, char *);
-extern size_t my_caseup_8bit(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_casedn_8bit(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-
-extern int my_strcasecmp_8bit(CHARSET_INFO * cs, const char *, const char *);
-
-int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc, const uchar *s,const uchar *e);
-int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc, uchar *s, uchar *e);
-
-int my_mb_ctype_8bit(CHARSET_INFO *,int *, const uchar *,const uchar *);
-int my_mb_ctype_mb(CHARSET_INFO *,int *, const uchar *,const uchar *);
-
-size_t my_scan_8bit(CHARSET_INFO *cs, const char *b, const char *e, int sq);
-
-size_t my_snprintf_8bit(struct charset_info_st *, char *to, size_t n,
- const char *fmt, ...)
- ATTRIBUTE_FORMAT(printf, 4, 5);
-
-long my_strntol_8bit(CHARSET_INFO *, const char *s, size_t l, int base,
- char **e, int *err);
-ulong my_strntoul_8bit(CHARSET_INFO *, const char *s, size_t l, int base,
- char **e, int *err);
-longlong my_strntoll_8bit(CHARSET_INFO *, const char *s, size_t l, int base,
- char **e, int *err);
-ulonglong my_strntoull_8bit(CHARSET_INFO *, const char *s, size_t l, int base,
- char **e, int *err);
-double my_strntod_8bit(CHARSET_INFO *, char *s, size_t l,char **e,
- int *err);
-size_t my_long10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix,
- long int val);
-size_t my_longlong10_to_str_8bit(CHARSET_INFO *, char *to, size_t l, int radix,
- longlong val);
-
-longlong my_strtoll10_8bit(CHARSET_INFO *cs,
- const char *nptr, char **endptr, int *error);
-longlong my_strtoll10_ucs2(CHARSET_INFO *cs,
- const char *nptr, char **endptr, int *error);
-
-ulonglong my_strntoull10rnd_8bit(CHARSET_INFO *cs,
- const char *str, size_t length, int
- unsigned_fl, char **endptr, int *error);
-ulonglong my_strntoull10rnd_ucs2(CHARSET_INFO *cs,
- const char *str, size_t length,
- int unsigned_fl, char **endptr, int *error);
-
-void my_fill_8bit(CHARSET_INFO *cs, char* to, size_t l, int fill);
-
-/* For 8-bit character set */
-my_bool my_like_range_simple(CHARSET_INFO *cs,
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str, char *max_str,
- size_t *min_length, size_t *max_length);
-
-/* For ASCII-based multi-byte character sets with mbminlen=1 */
-my_bool my_like_range_mb(CHARSET_INFO *cs,
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str, char *max_str,
- size_t *min_length, size_t *max_length);
-
-/* For other character sets, with arbitrary mbminlen and mbmaxlen numbers */
-my_bool my_like_range_generic(CHARSET_INFO *cs,
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str, char *max_str,
- size_t *min_length, size_t *max_length);
-
-int my_wildcmp_8bit(CHARSET_INFO *,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many);
-
-int my_wildcmp_bin(CHARSET_INFO *,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many);
-
-size_t my_numchars_8bit(CHARSET_INFO *, const char *b, const char *e);
-size_t my_numcells_8bit(CHARSET_INFO *, const char *b, const char *e);
-size_t my_charpos_8bit(CHARSET_INFO *, const char *b, const char *e, size_t pos);
-size_t my_well_formed_len_8bit(CHARSET_INFO *, const char *b, const char *e,
- size_t pos, int *error);
-uint my_mbcharlen_8bit(CHARSET_INFO *, uint c);
-
-
-/* Functions for multibyte charsets */
-extern size_t my_caseup_str_mb(CHARSET_INFO *, char *);
-extern size_t my_casedn_str_mb(CHARSET_INFO *, char *);
-extern size_t my_caseup_mb(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_casedn_mb(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_caseup_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_casedn_mb_varlen(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_caseup_ujis(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern size_t my_casedn_ujis(CHARSET_INFO *, char *src, size_t srclen,
- char *dst, size_t dstlen);
-extern int my_strcasecmp_mb(CHARSET_INFO * cs,const char *, const char *);
-
-int my_wildcmp_mb(CHARSET_INFO *,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many);
-size_t my_numchars_mb(CHARSET_INFO *, const char *b, const char *e);
-size_t my_numcells_mb(CHARSET_INFO *, const char *b, const char *e);
-size_t my_charpos_mb(CHARSET_INFO *, const char *b, const char *e, size_t pos);
-size_t my_well_formed_len_mb(CHARSET_INFO *, const char *b, const char *e,
- size_t pos, int *error);
-uint my_instr_mb(struct charset_info_st *,
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch);
-
-int my_strnncoll_mb_bin(CHARSET_INFO * cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix);
-
-int my_strnncollsp_mb_bin(CHARSET_INFO *cs,
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference);
-
-int my_wildcmp_mb_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many);
-
-int my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
- const char *s, const char *t);
-
-void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2);
-
-size_t my_strnxfrm_unicode(CHARSET_INFO *,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen);
-
-size_t my_strnxfrm_unicode_full_bin(CHARSET_INFO *,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen);
-size_t my_strnxfrmlen_unicode_full_bin(CHARSET_INFO *, size_t);
-
-int my_wildcmp_unicode(CHARSET_INFO *cs,
- const char *str, const char *str_end,
- const char *wildstr, const char *wildend,
- int escape, int w_one, int w_many,
- MY_UNICASE_INFO **weights);
-
-extern my_bool my_parse_charset_xml(const char *bug, size_t len,
- int (*add)(CHARSET_INFO *cs));
-extern char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end,
- pchar c);
-extern size_t my_strcspn(CHARSET_INFO *cs, const char *str, const char *end,
- const char *accept);
-
-my_bool my_propagate_simple(CHARSET_INFO *cs, const uchar *str, size_t len);
-my_bool my_propagate_complex(CHARSET_INFO *cs, const uchar *str, size_t len);
-
-
-uint my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong len);
-my_bool my_charset_is_ascii_based(CHARSET_INFO *cs);
-my_bool my_charset_is_8bit_pure_ascii(CHARSET_INFO *cs);
-uint my_charset_repertoire(CHARSET_INFO *cs);
-
-my_bool my_charset_is_ascii_compatible(CHARSET_INFO *cs);
-
-extern size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
- const char* fmt, va_list ap);
-
-#define _MY_U 01 /* Upper case */
-#define _MY_L 02 /* Lower case */
-#define _MY_NMR 04 /* Numeral (digit) */
-#define _MY_SPC 010 /* Spacing character */
-#define _MY_PNT 020 /* Punctuation */
-#define _MY_CTR 040 /* Control character */
-#define _MY_B 0100 /* Blank */
-#define _MY_X 0200 /* heXadecimal digit */
-
-
-#define my_isascii(c) (!((c) & ~0177))
-#define my_toascii(c) ((c) & 0177)
-#define my_tocntrl(c) ((c) & 31)
-#define my_toprint(c) ((c) | 64)
-#define my_toupper(s,c) (char) ((s)->to_upper[(uchar) (c)])
-#define my_tolower(s,c) (char) ((s)->to_lower[(uchar) (c)])
-#define my_isalpha(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L))
-#define my_isupper(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_U)
-#define my_islower(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_L)
-#define my_isdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_NMR)
-#define my_isxdigit(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_X)
-#define my_isalnum(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_U | _MY_L | _MY_NMR))
-#define my_isspace(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_SPC)
-#define my_ispunct(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_PNT)
-#define my_isprint(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR | _MY_B))
-#define my_isgraph(s, c) (((s)->ctype+1)[(uchar) (c)] & (_MY_PNT | _MY_U | _MY_L | _MY_NMR))
-#define my_iscntrl(s, c) (((s)->ctype+1)[(uchar) (c)] & _MY_CTR)
-
-/* Some macros that should be cleaned up a little */
-#define my_isvar(s,c) (my_isalnum(s,c) || (c) == '_')
-#define my_isvar_start(s,c) (my_isalpha(s,c) || (c) == '_')
-
-#define my_binary_compare(s) ((s)->state & MY_CS_BINSORT)
-#define use_strnxfrm(s) ((s)->state & MY_CS_STRNXFRM)
-#define my_strnxfrm(s, a, b, c, d) ((s)->coll->strnxfrm((s), (a), (b), (c), (d)))
-#define my_strnncoll(s, a, b, c, d) ((s)->coll->strnncoll((s), (a), (b), (c), (d), 0))
-#define my_like_range(s, a, b, c, d, e, f, g, h, i, j) \
- ((s)->coll->like_range((s), (a), (b), (c), (d), (e), (f), (g), (h), (i), (j)))
-#define my_wildcmp(cs,s,se,w,we,e,o,m) ((cs)->coll->wildcmp((cs),(s),(se),(w),(we),(e),(o),(m)))
-#define my_strcasecmp(s, a, b) ((s)->coll->strcasecmp((s), (a), (b)))
-#define my_charpos(cs, b, e, num) (cs)->cset->charpos((cs), (const char*) (b), (const char *)(e), (num))
-
-
-#define use_mb(s) ((s)->cset->ismbchar != NULL)
-#define my_ismbchar(s, a, b) ((s)->cset->ismbchar((s), (a), (b)))
-#ifdef USE_MB
-#define my_mbcharlen(s, a) ((s)->cset->mbcharlen((s),(a)))
-#else
-#define my_mbcharlen(s, a) 1
-#endif
-
-#define my_caseup_str(s, a) ((s)->cset->caseup_str((s), (a)))
-#define my_casedn_str(s, a) ((s)->cset->casedn_str((s), (a)))
-#define my_strntol(s, a, b, c, d, e) ((s)->cset->strntol((s),(a),(b),(c),(d),(e)))
-#define my_strntoul(s, a, b, c, d, e) ((s)->cset->strntoul((s),(a),(b),(c),(d),(e)))
-#define my_strntoll(s, a, b, c, d, e) ((s)->cset->strntoll((s),(a),(b),(c),(d),(e)))
-#define my_strntoull(s, a, b, c,d, e) ((s)->cset->strntoull((s),(a),(b),(c),(d),(e)))
-#define my_strntod(s, a, b, c, d) ((s)->cset->strntod((s),(a),(b),(c),(d)))
-
-
-/* XXX: still need to take care of this one */
-#ifdef MY_CHARSET_TIS620
-#error The TIS620 charset is broken at the moment. Tell tim to fix it.
-#define USE_TIS620
-#include "t_ctype.h"
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _m_ctype_h */
diff --git a/dep/mysqllite/include/m_string.h b/dep/mysqllite/include/m_string.h
deleted file mode 100644
index d2194858589..00000000000
--- a/dep/mysqllite/include/m_string.h
+++ /dev/null
@@ -1,295 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* There may be prolems include all of theese. Try to test in
- configure with ones are needed? */
-
-/* This is needed for the definitions of strchr... on solaris */
-
-#ifndef _m_string_h
-#define _m_string_h
-
-#include "my_global.h" /* HAVE_* */
-
-#ifndef __USE_GNU
-#define __USE_GNU /* We want to use stpcpy */
-#endif
-#if defined(HAVE_STRINGS_H)
-#include <strings.h>
-#endif
-#if defined(HAVE_STRING_H)
-#include <string.h>
-#endif
-
-/* need by my_vsnprintf */
-#include <stdarg.h>
-
-/* This is needed for the definitions of bzero... on solaris */
-#if defined(HAVE_STRINGS_H)
-#include <strings.h>
-#endif
-
-/* This is needed for the definitions of memcpy... on solaris */
-#if defined(HAVE_MEMORY_H) && !defined(__cplusplus)
-#include <memory.h>
-#endif
-
-#if !defined(HAVE_MEMCPY) && !defined(HAVE_MEMMOVE)
-# define memcpy(d, s, n) bcopy ((s), (d), (n))
-# define memset(A,C,B) bfill((A),(B),(C))
-# define memmove(d, s, n) bmove ((d), (s), (n))
-#elif defined(HAVE_MEMMOVE)
-# define bmove(d, s, n) memmove((d), (s), (n))
-#endif
-
-/* Unixware 7 */
-#if !defined(HAVE_BFILL)
-# define bfill(A,B,C) memset((A),(C),(B))
-#endif
-
-#if !defined(bzero) && !defined(HAVE_BZERO)
-# define bzero(A,B) memset((A),0,(B))
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-/*
- my_str_malloc() and my_str_free() are assigned to implementations in
- strings/alloc.c, but can be overridden in the calling program.
- */
-extern void *(*my_str_malloc)(size_t);
-extern void (*my_str_free)(void *);
-
-#if defined(HAVE_STPCPY) && MY_GNUC_PREREQ(3, 4) && !defined(__INTEL_COMPILER)
-#define strmov(A,B) __builtin_stpcpy((A),(B))
-#elif defined(HAVE_STPCPY)
-#define strmov(A,B) stpcpy((A),(B))
-#ifndef stpcpy
-extern char *stpcpy(char *, const char *); /* For AIX with gcc 2.95.3 */
-#endif
-#endif
-
-/* Declared in int2str() */
-extern char _dig_vec_upper[];
-extern char _dig_vec_lower[];
-
-#ifndef strmov
-#define strmov_overlapp(A,B) strmov(A,B)
-#define strmake_overlapp(A,B,C) strmake(A,B,C)
-#endif
-
- /* Prototypes for string functions */
-
-extern void bmove_upp(uchar *dst,const uchar *src,size_t len);
-extern void bchange(uchar *dst,size_t old_len,const uchar *src,
- size_t new_len,size_t tot_len);
-extern void strappend(char *s,size_t len,pchar fill);
-extern char *strend(const char *s);
-extern char *strcend(const char *, pchar);
-extern char *strfill(char * s,size_t len,pchar fill);
-extern char *strmake(char *dst,const char *src,size_t length);
-
-#ifndef strmov
-extern char *strmov(char *dst,const char *src);
-#else
-extern char *strmov_overlapp(char *dst,const char *src);
-#endif
-extern char *strnmov(char *dst, const char *src, size_t n);
-extern char *strcont(const char *src, const char *set);
-extern char *strxmov(char *dst, const char *src, ...);
-extern char *strxnmov(char *dst, size_t len, const char *src, ...);
-
-/* Prototypes of normal stringfunctions (with may ours) */
-#ifndef HAVE_STRNLEN
-extern size_t strnlen(const char *s, size_t n);
-#endif
-
-extern int is_prefix(const char *, const char *);
-
-/* Conversion routines */
-typedef enum {
- MY_GCVT_ARG_FLOAT,
- MY_GCVT_ARG_DOUBLE
-} my_gcvt_arg_type;
-
-double my_strtod(const char *str, char **end, int *error);
-double my_atof(const char *nptr);
-size_t my_fcvt(double x, int precision, char *to, my_bool *error);
-size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
- my_bool *error);
-
-#define NOT_FIXED_DEC 31
-
-/*
- The longest string my_fcvt can return is 311 + "precision" bytes.
- Here we assume that we never cal my_fcvt() with precision >= NOT_FIXED_DEC
- (+ 1 byte for the terminating '\0').
-*/
-#define FLOATING_POINT_BUFFER (311 + NOT_FIXED_DEC)
-
-/*
- We want to use the 'e' format in some cases even if we have enough space
- for the 'f' one just to mimic sprintf("%.15g") behavior for large integers,
- and to improve it for numbers < 10^(-4).
- That is, for |x| < 1 we require |x| >= 10^(-15), and for |x| > 1 we require
- it to be integer and be <= 10^DBL_DIG for the 'f' format to be used.
- We don't lose precision, but make cases like "1e200" or "0.00001" look nicer.
-*/
-#define MAX_DECPT_FOR_F_FORMAT DBL_DIG
-
-/*
- The maximum possible field width for my_gcvt() conversion.
- (DBL_DIG + 2) significant digits + sign + "." + ("e-NNN" or
- MAX_DECPT_FOR_F_FORMAT zeros for cases when |x|<1 and the 'f' format is used).
-*/
-#define MY_GCVT_MAX_FIELD_WIDTH (DBL_DIG + 4 + max(5, MAX_DECPT_FOR_F_FORMAT)) \
-
-extern char *llstr(longlong value,char *buff);
-extern char *ullstr(longlong value,char *buff);
-#ifndef HAVE_STRTOUL
-extern long strtol(const char *str, char **ptr, int base);
-extern ulong strtoul(const char *str, char **ptr, int base);
-#endif
-
-extern char *int2str(long val, char *dst, int radix, int upcase);
-extern char *int10_to_str(long val,char *dst,int radix);
-extern char *str2int(const char *src,int radix,long lower,long upper,
- long *val);
-longlong my_strtoll10(const char *nptr, char **endptr, int *error);
-#if SIZEOF_LONG == SIZEOF_LONG_LONG
-#define ll2str(A,B,C,D) int2str((A),(B),(C),(D))
-#define longlong10_to_str(A,B,C) int10_to_str((A),(B),(C))
-#undef strtoll
-#define strtoll(A,B,C) strtol((A),(B),(C))
-#define strtoull(A,B,C) strtoul((A),(B),(C))
-#ifndef HAVE_STRTOULL
-#define HAVE_STRTOULL
-#endif
-#ifndef HAVE_STRTOLL
-#define HAVE_STRTOLL
-#endif
-#else
-#ifdef HAVE_LONG_LONG
-extern char *ll2str(longlong val,char *dst,int radix, int upcase);
-extern char *longlong10_to_str(longlong val,char *dst,int radix);
-#if (!defined(HAVE_STRTOULL) || defined(NO_STRTOLL_PROTO))
-extern longlong strtoll(const char *str, char **ptr, int base);
-extern ulonglong strtoull(const char *str, char **ptr, int base);
-#endif
-#endif
-#endif
-#define longlong2str(A,B,C) ll2str((A),(B),(C),1)
-
-#if defined(__cplusplus)
-}
-#endif
-
-/*
- LEX_STRING -- a pair of a C-string and its length.
- (it's part of the plugin API as a MYSQL_LEX_STRING)
-*/
-
-#include <mysql/plugin.h>
-typedef struct st_mysql_lex_string LEX_STRING;
-
-#define STRING_WITH_LEN(X) (X), ((size_t) (sizeof(X) - 1))
-#define USTRING_WITH_LEN(X) ((uchar*) X), ((size_t) (sizeof(X) - 1))
-#define C_STRING_WITH_LEN(X) ((char *) (X)), ((size_t) (sizeof(X) - 1))
-
-struct st_mysql_const_lex_string
-{
- const char *str;
- size_t length;
-};
-typedef struct st_mysql_const_lex_string LEX_CSTRING;
-
-/* SPACE_INT is a word that contains only spaces */
-#if SIZEOF_INT == 4
-#define SPACE_INT 0x20202020
-#elif SIZEOF_INT == 8
-#define SPACE_INT 0x2020202020202020
-#else
-#error define the appropriate constant for a word full of spaces
-#endif
-
-/**
- Skip trailing space.
-
- On most systems reading memory in larger chunks (ideally equal to the size of
- the chinks that the machine physically reads from memory) causes fewer memory
- access loops and hence increased performance.
- This is why the 'int' type is used : it's closest to that (according to how
- it's defined in C).
- So when we determine the amount of whitespace at the end of a string we do
- the following :
- 1. We divide the string into 3 zones :
- a) from the start of the string (__start) to the first multiple
- of sizeof(int) (__start_words)
- b) from the end of the string (__end) to the last multiple of sizeof(int)
- (__end_words)
- c) a zone that is aligned to sizeof(int) and can be safely accessed
- through an int *
- 2. We start comparing backwards from (c) char-by-char. If all we find is
- space then we continue
- 3. If there are elements in zone (b) we compare them as unsigned ints to a
- int mask (SPACE_INT) consisting of all spaces
- 4. Finally we compare the remaining part (a) of the string char by char.
- This covers for the last non-space unsigned int from 3. (if any)
-
- This algorithm works well for relatively larger strings, but it will slow
- the things down for smaller strings (because of the additional calculations
- and checks compared to the naive method). Thus the barrier of length 20
- is added.
-
- @param ptr pointer to the input string
- @param len the length of the string
- @return the last non-space character
-*/
-
-static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len)
-{
- const uchar *end= ptr + len;
-
- if (len > 20)
- {
- const uchar *end_words= (const uchar *)(intptr)
- (((ulonglong)(intptr)end) / SIZEOF_INT * SIZEOF_INT);
- const uchar *start_words= (const uchar *)(intptr)
- ((((ulonglong)(intptr)ptr) + SIZEOF_INT - 1) / SIZEOF_INT * SIZEOF_INT);
-
- DBUG_ASSERT(((ulonglong)(intptr)ptr) >= SIZEOF_INT);
- if (end_words > ptr)
- {
- while (end > end_words && end[-1] == 0x20)
- end--;
- if (end[-1] == 0x20 && start_words < end_words)
- while (end > start_words && ((unsigned *)end)[-1] == SPACE_INT)
- end -= SIZEOF_INT;
- }
- }
- while (end > ptr && end[-1] == 0x20)
- end--;
- return (end);
-}
-
-static inline void lex_string_set(LEX_STRING *lex_str, const char *c_str)
-{
- lex_str->str= (char *) c_str;
- lex_str->length= strlen(c_str);
-}
-
-#endif
diff --git a/dep/mysqllite/include/my_alloc.h b/dep/mysqllite/include/my_alloc.h
deleted file mode 100644
index 4b1ffd3d444..00000000000
--- a/dep/mysqllite/include/my_alloc.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Data structures for mysys/my_alloc.c (root memory allocator)
-*/
-
-#ifndef _my_alloc_h
-#define _my_alloc_h
-
-#define ALLOC_MAX_BLOCK_TO_DROP 4096
-#define ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP 10
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct st_used_mem
-{ /* struct for once_alloc (block) */
- struct st_used_mem *next; /* Next block in use */
- unsigned int left; /* memory left in block */
- unsigned int size; /* size of block */
-} USED_MEM;
-
-
-typedef struct st_mem_root
-{
- USED_MEM *free; /* blocks with free memory in it */
- USED_MEM *used; /* blocks almost without free memory */
- USED_MEM *pre_alloc; /* preallocated block */
- /* if block have less memory it will be put in 'used' list */
- size_t min_malloc;
- size_t block_size; /* initial block size */
- unsigned int block_num; /* allocated blocks counter */
- /*
- first free block in queue test counter (if it exceed
- MAX_BLOCK_USAGE_BEFORE_DROP block will be dropped in 'used' list)
- */
- unsigned int first_block_usage;
-
- void (*error_handler)(void);
-} MEM_ROOT;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/dep/mysqllite/include/my_attribute.h b/dep/mysqllite/include/my_attribute.h
deleted file mode 100644
index d35b3013bdd..00000000000
--- a/dep/mysqllite/include/my_attribute.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Helper macros used for setting different __attributes__
- on functions in a portable fashion
-*/
-
-#ifndef _my_attribute_h
-#define _my_attribute_h
-
-#if defined(__GNUC__)
-# ifndef GCC_VERSION
-# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
-# endif
-#endif
-
-/*
- Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers.
- Some forms of __attribute__ are actually supported in earlier versions of
- g++, but we just disable them all because we only use them to generate
- compilation warnings.
-*/
-#ifndef __attribute__
-# if !defined(__GNUC__)
-# define __attribute__(A)
-# elif GCC_VERSION < 2008
-# define __attribute__(A)
-# elif defined(__cplusplus) && GCC_VERSION < 3004
-# define __attribute__(A)
-# endif
-#endif
-
-/*
- __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4
- But that's already covered by the __attribute__ tests above, so this is
- just a convenience macro.
-*/
-#ifndef ATTRIBUTE_FORMAT
-# define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n)))
-#endif
-
-/*
-
- __attribute__((format(...))) on a function pointer is not supported
- until gcc 3.1
-*/
-#ifndef ATTRIBUTE_FORMAT_FPTR
-# if (GCC_VERSION >= 3001)
-# define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n)
-# else
-# define ATTRIBUTE_FORMAT_FPTR(style, m, n)
-# endif /* GNUC >= 3.1 */
-#endif
-
-
-#endif
diff --git a/dep/mysqllite/include/my_compiler.h b/dep/mysqllite/include/my_compiler.h
deleted file mode 100644
index 5f898621159..00000000000
--- a/dep/mysqllite/include/my_compiler.h
+++ /dev/null
@@ -1,145 +0,0 @@
-#ifndef MY_COMPILER_INCLUDED
-#define MY_COMPILER_INCLUDED
-
-/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-/**
- Header for compiler-dependent features.
-
- Intended to contain a set of reusable wrappers for preprocessor
- macros, attributes, pragmas, and any other features that are
- specific to a target compiler.
-*/
-
-#include <my_global.h> /* stddef.h offsetof */
-
-/**
- Compiler-dependent internal convenience macros.
-*/
-
-/* GNU C/C++ */
-#if defined __GNUC__
-/* Convenience macro to test the minimum required GCC version. */
-# define MY_GNUC_PREREQ(maj, min) \
- ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-/* Any after 2.95... */
-# define MY_ALIGN_EXT
-/* Comunicate to the compiler the unreachability of the code. */
-# if MY_GNUC_PREREQ(4,5)
-# define MY_ASSERT_UNREACHABLE() __builtin_unreachable()
-# endif
-
-/* Microsoft Visual C++ */
-#elif defined _MSC_VER
-# define MY_ALIGNOF(type) __alignof(type)
-# define MY_ALIGNED(n) __declspec(align(n))
-
-/* Oracle Solaris Studio */
-#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-# if __SUNPRO_C >= 0x590
-# define MY_ALIGN_EXT
-# endif
-
-/* IBM XL C/C++ */
-#elif defined __xlC__
-# if __xlC__ >= 0x0600
-# define MY_ALIGN_EXT
-# endif
-
-/* HP aCC */
-#elif defined(__HP_aCC) || defined(__HP_cc)
-# if (__HP_aCC >= 60000) || (__HP_cc >= 60000)
-# define MY_ALIGN_EXT
-# endif
-#endif
-
-#ifdef MY_ALIGN_EXT
-/** Specifies the minimum alignment of a type. */
-# define MY_ALIGNOF(type) __alignof__(type)
-/** Determine the alignment requirement of a type. */
-# define MY_ALIGNED(n) __attribute__((__aligned__((n))))
-#endif
-
-/**
- Generic (compiler-independent) features.
-*/
-
-#ifndef MY_GNUC_PREREQ
-# define MY_GNUC_PREREQ(maj, min) (0)
-#endif
-
-#ifndef MY_ALIGNOF
-# ifdef __cplusplus
- template<typename type> struct my_alignof_helper { char m1; type m2; };
- /* Invalid for non-POD types, but most compilers give the right answer. */
-# define MY_ALIGNOF(type) offsetof(my_alignof_helper<type>, m2)
-# else
-# define MY_ALIGNOF(type) offsetof(struct { char m1; type m2; }, m2)
-# endif
-#endif
-
-#ifndef MY_ASSERT_UNREACHABLE
-# define MY_ASSERT_UNREACHABLE() do { assert(0); } while (0)
-#endif
-
-/**
- C++ Type Traits
-*/
-
-#ifdef __cplusplus
-
-/**
- Opaque storage with a particular alignment.
-*/
-# if defined(MY_ALIGNED)
-/* Partial specialization used due to MSVC++. */
-template<size_t alignment> struct my_alignment_imp;
-template<> struct MY_ALIGNED(1) my_alignment_imp<1> {};
-template<> struct MY_ALIGNED(2) my_alignment_imp<2> {};
-template<> struct MY_ALIGNED(4) my_alignment_imp<4> {};
-template<> struct MY_ALIGNED(8) my_alignment_imp<8> {};
-template<> struct MY_ALIGNED(16) my_alignment_imp<16> {};
-/* ... expand as necessary. */
-# else
-template<size_t alignment>
-struct my_alignment_imp { double m1; };
-# endif
-
-/**
- A POD type with a given size and alignment.
-
- @remark If the compiler does not support a alignment attribute
- (MY_ALIGN macro), the default alignment of a double is
- used instead.
-
- @tparam size The minimum size.
- @tparam alignment The desired alignment: 1, 2, 4, 8 or 16.
-*/
-template <size_t size, size_t alignment>
-struct my_aligned_storage
-{
- union
- {
- char data[size];
- my_alignment_imp<alignment> align;
- };
-};
-
-#endif /* __cplusplus */
-
-#include <my_attribute.h>
-
-#endif /* MY_COMPILER_INCLUDED */
diff --git a/dep/mysqllite/include/my_dbug.h b/dep/mysqllite/include/my_dbug.h
deleted file mode 100644
index 7f8f5a1578d..00000000000
--- a/dep/mysqllite/include/my_dbug.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef MY_DBUG_INCLUDED
-#define MY_DBUG_INCLUDED
-
-#ifndef __WIN__
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <signal.h>
-#endif /* not __WIN__ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#if !defined(DBUG_OFF) && !defined(_lint)
-
-struct _db_stack_frame_ {
- const char *func; /* function name of the previous stack frame */
- const char *file; /* filename of the function of previous frame */
- uint level; /* this nesting level, highest bit enables tracing */
- struct _db_stack_frame_ *prev; /* pointer to the previous frame */
-};
-
-struct _db_code_state_;
-extern my_bool _dbug_on_;
-extern my_bool _db_keyword_(struct _db_code_state_ *, const char *, int);
-extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len);
-extern int _db_explain_init_(char *buf, size_t len);
-extern int _db_is_pushed_(void);
-extern void _db_setjmp_(void);
-extern void _db_longjmp_(void);
-extern void _db_process_(const char *name);
-extern void _db_push_(const char *control);
-extern void _db_pop_(void);
-extern void _db_set_(const char *control);
-extern void _db_set_init_(const char *control);
-extern void _db_enter_(const char *_func_, const char *_file_, uint _line_,
- struct _db_stack_frame_ *_stack_frame_);
-extern void _db_return_(uint _line_, struct _db_stack_frame_ *_stack_frame_);
-extern void _db_pargs_(uint _line_,const char *keyword);
-extern void _db_doprnt_(const char *format,...)
- ATTRIBUTE_FORMAT(printf, 1, 2);
-extern void _db_dump_(uint _line_,const char *keyword,
- const unsigned char *memory, size_t length);
-extern void _db_end_(void);
-extern void _db_lock_file_(void);
-extern void _db_unlock_file_(void);
-extern FILE *_db_fp_(void);
-extern void _db_flush_();
-extern const char* _db_get_func_(void);
-
-#define DBUG_ENTER(a) struct _db_stack_frame_ _db_stack_frame_; \
- _db_enter_ (a,__FILE__,__LINE__,&_db_stack_frame_)
-#define DBUG_LEAVE _db_return_ (__LINE__, &_db_stack_frame_)
-#define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0)
-#define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0)
-#define DBUG_EXECUTE(keyword,a1) \
- do {if (_db_keyword_(0, (keyword), 0)) { a1 }} while(0)
-#define DBUG_EXECUTE_IF(keyword,a1) \
- do {if (_db_keyword_(0, (keyword), 1)) { a1 }} while(0)
-#define DBUG_EVALUATE(keyword,a1,a2) \
- (_db_keyword_(0,(keyword), 0) ? (a1) : (a2))
-#define DBUG_EVALUATE_IF(keyword,a1,a2) \
- (_db_keyword_(0,(keyword), 1) ? (a1) : (a2))
-#define DBUG_PRINT(keyword,arglist) \
- do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0)
-#define DBUG_PUSH(a1) _db_push_ (a1)
-#define DBUG_POP() _db_pop_ ()
-#define DBUG_SET(a1) _db_set_ (a1)
-#define DBUG_SET_INITIAL(a1) _db_set_init_ (a1)
-#define DBUG_PROCESS(a1) _db_process_(a1)
-#define DBUG_FILE _db_fp_()
-#define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1))
-#define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2))
-#define DBUG_DUMP(keyword,a1,a2) _db_dump_(__LINE__,keyword,a1,a2)
-#define DBUG_END() _db_end_ ()
-#define DBUG_LOCK_FILE _db_lock_file_()
-#define DBUG_UNLOCK_FILE _db_unlock_file_()
-#define DBUG_ASSERT(A) assert(A)
-#define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len))
-#define DBUG_EXPLAIN_INITIAL(buf,len) _db_explain_init_((buf),(len))
-#define DEBUGGER_OFF do { _dbug_on_= 0; } while(0)
-#define DEBUGGER_ON do { _dbug_on_= 1; } while(0)
-#ifndef __WIN__
-#define DBUG_ABORT() (_db_flush_(), abort())
-#else
-/*
- Avoid popup with abort/retry/ignore buttons. When BUG#31745 is fixed we can
- call abort() instead of _exit(3) (now it would cause a "test signal" popup).
-*/
-#include <crtdbg.h>
-#define DBUG_ABORT() (_db_flush_(),\
- (void)_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE),\
- (void)_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR),\
- _exit(3))
-#endif
-#define DBUG_CHECK_CRASH(func, op) \
- do { char _dbuf_[255]; strxnmov(_dbuf_, sizeof(_dbuf_)-1, (func), (op)); \
- DBUG_EXECUTE_IF(_dbuf_, DBUG_ABORT()); } while(0)
-#define DBUG_CRASH_ENTER(func) \
- DBUG_ENTER(func); DBUG_CHECK_CRASH(func, "_crash_enter")
-#define DBUG_CRASH_RETURN(val) \
- DBUG_CHECK_CRASH(_db_get_func_(), "_crash_return")
-#define DBUG_CRASH_VOID_RETURN \
- DBUG_CHECK_CRASH (_db_get_func_(), "_crash_return")
-
-/*
- Make the program fail, without creating a core file.
- abort() will send SIGABRT which (most likely) generates core.
- Use SIGKILL instead, which cannot be caught.
- We also pause the current thread, until the signal is actually delivered.
- An alternative would be to use _exit(EXIT_FAILURE),
- but then valgrind would report lots of memory leaks.
- */
-#ifdef __WIN__
-#define DBUG_SUICIDE() DBUG_ABORT()
-#else
-extern void _db_suicide_();
-#define DBUG_SUICIDE() (_db_flush_(), _db_suicide_())
-#endif
-
-#else /* No debugger */
-
-#define DBUG_ENTER(a1)
-#define DBUG_LEAVE
-#define DBUG_RETURN(a1) do { return(a1); } while(0)
-#define DBUG_VOID_RETURN do { return; } while(0)
-#define DBUG_EXECUTE(keyword,a1) do { } while(0)
-#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0)
-#define DBUG_EVALUATE(keyword,a1,a2) (a2)
-#define DBUG_EVALUATE_IF(keyword,a1,a2) (a2)
-#define DBUG_PRINT(keyword,arglist) do { } while(0)
-#define DBUG_PUSH(a1) do { } while(0)
-#define DBUG_SET(a1) do { } while(0)
-#define DBUG_SET_INITIAL(a1) do { } while(0)
-#define DBUG_POP() do { } while(0)
-#define DBUG_PROCESS(a1) do { } while(0)
-#define DBUG_SETJMP(a1) setjmp(a1)
-#define DBUG_LONGJMP(a1) longjmp(a1)
-#define DBUG_DUMP(keyword,a1,a2) do { } while(0)
-#define DBUG_END() do { } while(0)
-#define DBUG_ASSERT(A) do { } while(0)
-#define DBUG_LOCK_FILE do { } while(0)
-#define DBUG_FILE (stderr)
-#define DBUG_UNLOCK_FILE do { } while(0)
-#define DBUG_EXPLAIN(buf,len)
-#define DBUG_EXPLAIN_INITIAL(buf,len)
-#define DEBUGGER_OFF do { } while(0)
-#define DEBUGGER_ON do { } while(0)
-#define DBUG_ABORT() do { } while(0)
-#define DBUG_CRASH_ENTER(func)
-#define DBUG_CRASH_RETURN(val) do { return(val); } while(0)
-#define DBUG_CRASH_VOID_RETURN do { return; } while(0)
-#define DBUG_SUICIDE() do { } while(0)
-
-#endif
-
-#ifdef EXTRA_DEBUG
-/**
- Sync points allow us to force the server to reach a certain line of code
- and block there until the client tells the server it is ok to go on.
- The client tells the server to block with SELECT GET_LOCK()
- and unblocks it with SELECT RELEASE_LOCK(). Used for debugging difficult
- concurrency problems
-*/
-#define DBUG_SYNC_POINT(lock_name,lock_timeout) \
- debug_sync_point(lock_name,lock_timeout)
-void debug_sync_point(const char* lock_name, uint lock_timeout);
-#else
-#define DBUG_SYNC_POINT(lock_name,lock_timeout)
-#endif /* EXTRA_DEBUG */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MY_DBUG_INCLUDED */
diff --git a/dep/mysqllite/include/my_dir.h b/dep/mysqllite/include/my_dir.h
deleted file mode 100644
index de21bee7385..00000000000
--- a/dep/mysqllite/include/my_dir.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef MY_DIR_H
-#define MY_DIR_H
-
-#include "my_global.h"
-
-#include <sys/stat.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* Defines for my_dir and my_stat */
-
-#define MY_S_IFMT S_IFMT /* type of file */
-#define MY_S_IFDIR S_IFDIR /* directory */
-#define MY_S_IFCHR S_IFCHR /* character special */
-#define MY_S_IFBLK S_IFBLK /* block special */
-#define MY_S_IFREG S_IFREG /* regular */
-#define MY_S_IFIFO S_IFIFO /* fifo */
-#define MY_S_ISUID S_ISUID /* set user id on execution */
-#define MY_S_ISGID S_ISGID /* set group id on execution */
-#define MY_S_ISVTX S_ISVTX /* save swapped text even after use */
-#define MY_S_IREAD S_IREAD /* read permission, owner */
-#define MY_S_IWRITE S_IWRITE /* write permission, owner */
-#define MY_S_IEXEC S_IEXEC /* execute/search permission, owner */
-
-#define MY_S_ISDIR(m) (((m) & MY_S_IFMT) == MY_S_IFDIR)
-#define MY_S_ISCHR(m) (((m) & MY_S_IFMT) == MY_S_IFCHR)
-#define MY_S_ISBLK(m) (((m) & MY_S_IFMT) == MY_S_IFBLK)
-#define MY_S_ISREG(m) (((m) & MY_S_IFMT) == MY_S_IFREG)
-#define MY_S_ISFIFO(m) (((m) & MY_S_IFMT) == MY_S_IFIFO)
-
-#define MY_DONT_SORT 512 /* my_lib; Don't sort files */
-#define MY_WANT_STAT 1024 /* my_lib; stat files */
-
- /* typedefs for my_dir & my_stat */
-
-#ifdef USE_MY_STAT_STRUCT
-
-typedef struct my_stat
-{
- dev_t st_dev; /* major & minor device numbers */
- ino_t st_ino; /* inode number */
- ushort st_mode; /* file permissons (& suid sgid .. bits) */
- short st_nlink; /* number of links to file */
- ushort st_uid; /* user id */
- ushort st_gid; /* group id */
- dev_t st_rdev; /* more major & minor device numbers (???) */
- off_t st_size; /* size of file */
- time_t st_atime; /* time for last read */
- time_t st_mtime; /* time for last contens modify */
- time_t st_ctime; /* time for last inode or contents modify */
-} MY_STAT;
-
-#else
-
-#if(_MSC_VER)
-#define MY_STAT struct _stati64 /* 64 bit file size */
-#else
-#define MY_STAT struct stat /* Orginal struct have what we need */
-#endif
-
-#endif /* USE_MY_STAT_STRUCT */
-
-/* Struct describing one file returned from my_dir */
-typedef struct fileinfo
-{
- char *name;
- MY_STAT *mystat;
-} FILEINFO;
-
-typedef struct st_my_dir /* Struct returned from my_dir */
-{
- /*
- These members are just copies of parts of DYNAMIC_ARRAY structure,
- which is allocated right after the end of MY_DIR structure (MEM_ROOT
- for storing names is also resides there). We've left them here because
- we don't want to change code that uses my_dir.
- */
- struct fileinfo *dir_entry;
- uint number_off_files;
-} MY_DIR;
-
-extern MY_DIR *my_dir(const char *path,myf MyFlags);
-extern void my_dirend(MY_DIR *buffer);
-extern MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags);
-extern int my_fstat(int filenr, MY_STAT *stat_area, myf MyFlags);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* MY_DIR_H */
-
diff --git a/dep/mysqllite/include/my_getopt.h b/dep/mysqllite/include/my_getopt.h
deleted file mode 100644
index 47feb21d85e..00000000000
--- a/dep/mysqllite/include/my_getopt.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 2002-2004 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_getopt_h
-#define _my_getopt_h
-
-#include "my_sys.h" /* loglevel */
-
-C_MODE_START
-
-#define GET_NO_ARG 1
-#define GET_BOOL 2
-#define GET_INT 3
-#define GET_UINT 4
-#define GET_LONG 5
-#define GET_ULONG 6
-#define GET_LL 7
-#define GET_ULL 8
-#define GET_STR 9
-#define GET_STR_ALLOC 10
-#define GET_DISABLED 11
-#define GET_ENUM 12
-#define GET_SET 13
-#define GET_DOUBLE 14
-#define GET_FLAGSET 15
-
-#define GET_ASK_ADDR 128
-#define GET_TYPE_MASK 127
-
-/**
- Enumeration of the my_option::arg_type attributes.
- It should be noted that for historical reasons variables with the combination
- arg_type=NO_ARG, my_option::var_type=GET_BOOL still accepts
- arguments. This is someone counter intuitive and care should be taken
- if the code is refactored.
-*/
-enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
-
-struct st_typelib;
-
-struct my_option
-{
- const char *name; /**< Name of the option. name=NULL
- marks the end of the my_option[]
- array.
- */
- int id; /**< For 0<id<255 it's means one
- character for a short option
- (like -A), if >255 no short option
- is created, but a long option still
- can be identified uniquely in the
- my_get_one_option() callback.
- If an opton needs neither special
- treatment in the my_get_one_option()
- nor one-letter short equivalent
- use id=0
- */
- const char *comment; /**< option comment, for autom. --help.
- if it's NULL the option is not
- visible in --help.
- */
- void *value; /**< A pointer to the variable value */
- void *u_max_value; /**< The user def. max variable value */
- struct st_typelib *typelib; /**< Pointer to possible values */
- ulong var_type; /**< GET_BOOL, GET_ULL, etc */
- enum get_opt_arg_type arg_type; /**< e.g. REQUIRED_ARG or OPT_ARG */
- longlong def_value; /**< Default value */
- longlong min_value; /**< Min allowed value (for numbers) */
- longlong max_value; /**< Max allowed value (for numbers) */
- longlong sub_size; /**< Unused */
- long block_size; /**< Value should be a mult. of this (for numbers) */
- void *app_type; /**< To be used by an application */
-};
-
-
-typedef my_bool (*my_get_one_option)(int, const struct my_option *, char *);
-typedef void (*my_error_reporter)(enum loglevel level, const char *format, ...);
-/**
- Used to retrieve a reference to the object (variable) that holds the value
- for the given option. For example, if var_type is GET_UINT, the function
- must return a pointer to a variable of type uint. A argument is stored in
- the location pointed to by the returned pointer.
-*/
-typedef void *(*my_getopt_value)(const char *, uint, const struct my_option *,
- int *);
-
-
-extern char *disabled_my_option;
-extern my_bool my_getopt_print_errors;
-extern my_bool my_getopt_skip_unknown;
-extern my_error_reporter my_getopt_error_reporter;
-
-extern int handle_options (int *argc, char ***argv,
- const struct my_option *longopts, my_get_one_option);
-extern void my_cleanup_options(const struct my_option *options);
-extern void my_print_help(const struct my_option *options);
-extern void my_print_variables(const struct my_option *options);
-extern void my_getopt_register_get_addr(my_getopt_value);
-
-ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
- my_bool *fix);
-longlong getopt_ll_limit_value(longlong, const struct my_option *,
- my_bool *fix);
-double getopt_double_limit_value(double num, const struct my_option *optp,
- my_bool *fix);
-my_bool getopt_compare_strings(const char *s, const char *t, uint length);
-
-C_MODE_END
-
-#endif /* _my_getopt_h */
-
diff --git a/dep/mysqllite/include/my_global.h b/dep/mysqllite/include/my_global.h
deleted file mode 100644
index c1ae8a6d6bc..00000000000
--- a/dep/mysqllite/include/my_global.h
+++ /dev/null
@@ -1,1483 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This is the include file that should be included 'first' in every C file. */
-
-#ifndef _global_h
-#define _global_h
-
-/* Client library users on Windows need this macro defined here. */
-#if !defined(__WIN__) && defined(_WIN32)
-#define __WIN__
-#endif
-
-/*
- InnoDB depends on some MySQL internals which other plugins should not
- need. This is because of InnoDB's foreign key support, "safe" binlog
- truncation, and other similar legacy features.
-
- We define accessors for these internals unconditionally, but do not
- expose them in mysql/plugin.h. They are declared in ha_innodb.h for
- InnoDB's use.
-*/
-#define INNODB_COMPATIBILITY_HOOKS
-
-#ifdef __CYGWIN__
-/* We use a Unix API, so pretend it's not Windows */
-#undef WIN
-#undef WIN32
-#undef _WIN
-#undef _WIN32
-#undef _WIN64
-#undef __WIN__
-#undef __WIN32__
-#define HAVE_ERRNO_AS_DEFINE
-#endif /* __CYGWIN__ */
-
-/* to make command line shorter we'll define USE_PRAGMA_INTERFACE here */
-#ifdef USE_PRAGMA_IMPLEMENTATION
-#define USE_PRAGMA_INTERFACE
-#endif
-
-#if defined(__OpenBSD__) && (OpenBSD >= 200411)
-#define HAVE_ERRNO_AS_DEFINE
-#endif
-
-#if defined(i386) && !defined(__i386__)
-#define __i386__
-#endif
-
-/* Macros to make switching between C and C++ mode easier */
-#ifdef __cplusplus
-#define C_MODE_START extern "C" {
-#define C_MODE_END }
-#else
-#define C_MODE_START
-#define C_MODE_END
-#endif
-
-#ifdef __cplusplus
-#define CPP_UNNAMED_NS_START namespace {
-#define CPP_UNNAMED_NS_END }
-#endif
-
-#include <my_config.h>
-
-#ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
-#define HAVE_PSI_INTERFACE
-#endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */
-
-/* Make it easier to add conditional code in _expressions_ */
-#ifdef __WIN__
-#define IF_WIN(A,B) A
-#else
-#define IF_WIN(A,B) B
-#endif
-
-#ifdef HAVE_purify
-#define IF_PURIFY(A,B) A
-#else
-#define IF_PURIFY(A,B) B
-#endif
-
-#ifndef EMBEDDED_LIBRARY
-#ifdef WITH_NDB_BINLOG
-#define HAVE_NDB_BINLOG 1
-#endif
-#endif /* !EMBEDDED_LIBRARY */
-
-#ifndef EMBEDDED_LIBRARY
-#define HAVE_REPLICATION
-#define HAVE_EXTERNAL_CLIENT
-#endif
-
-#if defined (_WIN32)
-/*
- off_t is 32 bit long. We do not use C runtime functions
- with off_t but native Win32 file IO APIs, that work with
- 64 bit offsets.
-*/
-#undef SIZEOF_OFF_T
-#define SIZEOF_OFF_T 8
-
-/*
- Prevent inclusion of Windows GDI headers - they define symbol
- ERROR that conflicts with mysql headers.
-*/
-#ifndef NOGDI
-#define NOGDI
-#endif
-
-/* Include common headers.*/
-#include <winsock2.h>
-#include <ws2tcpip.h> /* SOCKET */
-#include <io.h> /* access(), chmod() */
-#include <process.h> /* getpid() */
-
-#define sleep(a) Sleep((a)*1000)
-
-/* Define missing access() modes. */
-#define F_OK 0
-#define W_OK 2
-
-/* Define missing file locking constants. */
-#define F_RDLCK 1
-#define F_WRLCK 2
-#define F_UNLCK 3
-#define F_TO_EOF 0x3FFFFFFF
-
-/* Shared memory and named pipe connections are supported. */
-#define HAVE_SMEM 1
-#define HAVE_NAMED_PIPE 1
-#define shared_memory_buffer_length 16000
-#define default_shared_memory_base_name "MYSQL"
-#endif /* _WIN32*/
-
-
-/* Workaround for _LARGE_FILES and _LARGE_FILE_API incompatibility on AIX */
-#if defined(_AIX) && defined(_LARGE_FILE_API)
-#undef _LARGE_FILE_API
-#endif
-
-/*
- The macros below are used to allow build of Universal/fat binaries of
- MySQL and MySQL applications under darwin.
-*/
-#if defined(__APPLE__) && defined(__MACH__)
-# undef SIZEOF_CHARP
-# undef SIZEOF_SHORT
-# undef SIZEOF_INT
-# undef SIZEOF_LONG
-# undef SIZEOF_LONG_LONG
-# undef SIZEOF_OFF_T
-# undef WORDS_BIGENDIAN
-# define SIZEOF_SHORT 2
-# define SIZEOF_INT 4
-# define SIZEOF_LONG_LONG 8
-# define SIZEOF_OFF_T 8
-# if defined(__i386__) || defined(__ppc__)
-# define SIZEOF_CHARP 4
-# define SIZEOF_LONG 4
-# elif defined(__x86_64__) || defined(__ppc64__)
-# define SIZEOF_CHARP 8
-# define SIZEOF_LONG 8
-# else
-# error Building FAT binary for an unknown architecture.
-# endif
-# if defined(__ppc__) || defined(__ppc64__)
-# define WORDS_BIGENDIAN
-# endif
-#endif /* defined(__APPLE__) && defined(__MACH__) */
-
-
-/*
- The macros below are borrowed from include/linux/compiler.h in the
- Linux kernel. Use them to indicate the likelyhood of the truthfulness
- of a condition. This serves two purposes - newer versions of gcc will be
- able to optimize for branch predication, which could yield siginficant
- performance gains in frequently executed sections of the code, and the
- other reason to use them is for documentation
-*/
-
-#if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ < 96)
-#define __builtin_expect(x, expected_value) (x)
-#endif
-
-#define likely(x) __builtin_expect((x),1)
-#define unlikely(x) __builtin_expect((x),0)
-
-/* Fix problem with S_ISLNK() on Linux */
-#if defined(TARGET_OS_LINUX) || defined(__GLIBC__)
-#undef _GNU_SOURCE
-#define _GNU_SOURCE 1
-#endif
-
-/*
- Temporary solution to solve bug#7156. Include "sys/types.h" before
- the thread headers, else the function madvise() will not be defined
-*/
-#if defined(HAVE_SYS_TYPES_H) && ( defined(sun) || defined(__sun) )
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_THREADS_WITHOUT_SOCKETS
-/* MIT pthreads does not work with unix sockets */
-#undef HAVE_SYS_UN_H
-#endif
-
-#define __EXTENSIONS__ 1 /* We want some extension */
-#ifndef __STDC_EXT__
-#define __STDC_EXT__ 1 /* To get large file support on hpux */
-#endif
-
-/*
- Solaris 9 include file <sys/feature_tests.h> refers to X/Open document
-
- System Interfaces and Headers, Issue 5
-
- saying we should define _XOPEN_SOURCE=500 to get POSIX.1c prototypes,
- but apparently other systems (namely FreeBSD) don't agree.
-
- On a newer Solaris 10, the above file recognizes also _XOPEN_SOURCE=600.
- Furthermore, it tests that if a program requires older standard
- (_XOPEN_SOURCE<600 or _POSIX_C_SOURCE<200112L) it cannot be
- run on a new compiler (that defines _STDC_C99) and issues an #error.
- It's also an #error if a program requires new standard (_XOPEN_SOURCE=600
- or _POSIX_C_SOURCE=200112L) and a compiler does not define _STDC_C99.
-
- To add more to this mess, Sun Studio C compiler defines _STDC_C99 while
- C++ compiler does not!
-
- So, in a desperate attempt to get correct prototypes for both
- C and C++ code, we define either _XOPEN_SOURCE=600 or _XOPEN_SOURCE=500
- depending on the compiler's announced C standard support.
-
- Cleaner solutions are welcome.
-*/
-#ifdef __sun
-#if __STDC_VERSION__ - 0 >= 199901L
-#define _XOPEN_SOURCE 600
-#else
-#define _XOPEN_SOURCE 500
-#endif
-#endif
-
-#if !defined(__WIN__)
-#ifndef _POSIX_PTHREAD_SEMANTICS
-#define _POSIX_PTHREAD_SEMANTICS /* We want posix threads */
-#endif
-
-#if !defined(SCO)
-#define _REENTRANT 1 /* Some thread libraries require this */
-#endif
-#if !defined(_THREAD_SAFE) && !defined(_AIX)
-#define _THREAD_SAFE /* Required for OSF1 */
-#endif
-#if defined(HPUX10) || defined(HPUX11)
-C_MODE_START /* HPUX needs this, signal.h bug */
-#include <pthread.h>
-C_MODE_END
-#else
-#include <pthread.h> /* AIX must have this included first */
-#endif
-#if !defined(SCO) && !defined(_REENTRANT)
-#define _REENTRANT 1 /* Threads requires reentrant code */
-#endif
-#endif /* !defined(__WIN__) */
-
-/* Go around some bugs in different OS and compilers */
-#ifdef _AIX /* By soren@t.dk */
-#define _H_STRINGS
-#define _SYS_STREAM_H
-/* #define _AIX32_CURSES */ /* XXX: this breaks AIX 4.3.3 (others?). */
-#define ulonglong2double(A) my_ulonglong2double(A)
-#define my_off_t2double(A) my_ulonglong2double(A)
-C_MODE_START
-double my_ulonglong2double(unsigned long long A);
-C_MODE_END
-#endif /* _AIX */
-
-#ifdef HAVE_BROKEN_SNPRINTF /* HPUX 10.20 don't have this defined */
-#undef HAVE_SNPRINTF
-#endif
-#ifdef HAVE_BROKEN_PREAD
-/*
- pread()/pwrite() are not 64 bit safe on HP-UX 11.0 without
- installing the kernel patch PHKL_20349 or greater
-*/
-#undef HAVE_PREAD
-#undef HAVE_PWRITE
-#endif
-
-#ifdef UNDEF_HAVE_GETHOSTBYNAME_R /* For OSF4.x */
-#undef HAVE_GETHOSTBYNAME_R
-#endif
-#ifdef UNDEF_HAVE_INITGROUPS /* For AIX 4.3 */
-#undef HAVE_INITGROUPS
-#endif
-
-/* gcc/egcs issues */
-
-#if defined(__GNUC) && defined(__EXCEPTIONS)
-#error "Please add -fno-exceptions to CXXFLAGS and reconfigure/recompile"
-#endif
-
-#if defined(_lint) && !defined(lint)
-#define lint
-#endif
-#if SIZEOF_LONG_LONG > 4 && !defined(_LONG_LONG)
-#define _LONG_LONG 1 /* For AIX string library */
-#endif
-
-#ifndef stdin
-#include <stdio.h>
-#endif
-#include <stdarg.h>
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#ifdef HAVE_STDDEF_H
-#include <stddef.h>
-#endif
-
-#include <math.h>
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-#ifdef HAVE_FLOAT_H
-#include <float.h>
-#endif
-#ifdef HAVE_FENV_H
-#include <fenv.h> /* For fesetround() */
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_TIMEB_H
-#include <sys/timeb.h> /* Avoid warnings on SCO */
-#endif
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif /* TIME_WITH_SYS_TIME */
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if defined(__cplusplus) && defined(NO_CPLUSPLUS_ALLOCA)
-#undef HAVE_ALLOCA
-#undef HAVE_ALLOCA_H
-#endif
-#ifdef HAVE_ALLOCA_H
-#include <alloca.h>
-#endif
-
-#include <errno.h> /* Recommended by debian */
-/* We need the following to go around a problem with openssl on solaris */
-#if defined(HAVE_CRYPT_H)
-#include <crypt.h>
-#endif
-
-/*
- A lot of our programs uses asserts, so better to always include it
- This also fixes a problem when people uses DBUG_ASSERT without including
- assert.h
-*/
-#include <assert.h>
-
-/* an assert that works at compile-time. only for constant expression */
-#ifndef __GNUC__
-#define compile_time_assert(X) do { } while(0)
-#else
-#define compile_time_assert(X) \
- do \
- { \
- typedef char compile_time_assert[(X) ? 1 : -1]; \
- } while(0)
-#endif
-
-/* Go around some bugs in different OS and compilers */
-#if defined (HPUX11) && defined(_LARGEFILE_SOURCE)
-#ifndef _LARGEFILE64_SOURCE
-#define _LARGEFILE64_SOURCE
-#endif
-#endif
-
-#if defined(_HPUX_SOURCE) && defined(HAVE_SYS_STREAM_H)
-#include <sys/stream.h> /* HPUX 10.20 defines ulong here. UGLY !!! */
-#define HAVE_ULONG
-#endif
-#if defined(HPUX10) && defined(_LARGEFILE64_SOURCE)
-/* Fix bug in setrlimit */
-#undef setrlimit
-#define setrlimit cma_setrlimit64
-#endif
-/* Declare madvise where it is not declared for C++, like Solaris */
-#if HAVE_MADVISE && !HAVE_DECL_MADVISE && defined(__cplusplus)
-extern "C" int madvise(void *addr, size_t len, int behav);
-#endif
-
-#define QUOTE_ARG(x) #x /* Quote argument (before cpp) */
-#define STRINGIFY_ARG(x) QUOTE_ARG(x) /* Quote argument, after cpp */
-
-/* Paranoid settings. Define I_AM_PARANOID if you are paranoid */
-#ifdef I_AM_PARANOID
-#define DONT_ALLOW_USER_CHANGE 1
-#define DONT_USE_MYSQL_PWD 1
-#endif
-
-/* Does the system remember a signal handler after a signal ? */
-#if !defined(HAVE_BSD_SIGNALS) && !defined(HAVE_SIGACTION)
-#define SIGNAL_HANDLER_RESET_ON_DELIVERY
-#endif
-
-/*
- Deprecated workaround for false-positive uninitialized variables
- warnings. Those should be silenced using tool-specific heuristics.
-
- Enabled by default for g++ due to the bug referenced below.
-*/
-#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
- (defined(__GNUC__) && defined(__cplusplus))
-#define LINT_INIT(var) var= 0
-#else
-#define LINT_INIT(var)
-#endif
-
-#ifndef SO_EXT
-#ifdef _WIN32
-#define SO_EXT ".dll"
-#elif defined(__APPLE__)
-#define SO_EXT ".dylib"
-#else
-#define SO_EXT ".so"
-#endif
-#endif
-
-/*
- Suppress uninitialized variable warning without generating code.
-
- The _cplusplus is a temporary workaround for C++ code pending a fix
- for a g++ bug (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34772).
-*/
-#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || \
- defined(__cplusplus) || !defined(__GNUC__)
-#define UNINIT_VAR(x) x= 0
-#else
-/* GCC specific self-initialization which inhibits the warning. */
-#define UNINIT_VAR(x) x= x
-#endif
-
-#if !defined(HAVE_UINT)
-#undef HAVE_UINT
-#define HAVE_UINT
-typedef unsigned int uint;
-typedef unsigned short ushort;
-#endif
-
-#define swap_variables(t, a, b) { t dummy; dummy= a; a= b; b= dummy; }
-#define test(a) ((a) ? 1 : 0)
-#define set_if_bigger(a,b) do { if ((a) < (b)) (a)=(b); } while(0)
-#define set_if_smaller(a,b) do { if ((a) > (b)) (a)=(b); } while(0)
-#define test_all_bits(a,b) (((a) & (b)) == (b))
-#define array_elements(A) ((uint) (sizeof(A)/sizeof(A[0])))
-
-/* Define some general constants */
-#ifndef TRUE
-#define TRUE (1) /* Logical true */
-#define FALSE (0) /* Logical false */
-#endif
-
-#include <my_compiler.h>
-
-/*
- Wen using the embedded library, users might run into link problems,
- duplicate declaration of __cxa_pure_virtual, solved by declaring it a
- weak symbol.
-*/
-#if defined(USE_MYSYS_NEW) && ! defined(DONT_DECLARE_CXA_PURE_VIRTUAL)
-C_MODE_START
-int __cxa_pure_virtual () __attribute__ ((weak));
-C_MODE_END
-#endif
-
-/* The DBUG_ON flag always takes precedence over default DBUG_OFF */
-#if defined(DBUG_ON) && defined(DBUG_OFF)
-#undef DBUG_OFF
-#endif
-
-/* We might be forced to turn debug off, if not turned off already */
-#if (defined(FORCE_DBUG_OFF) || defined(_lint)) && !defined(DBUG_OFF)
-# define DBUG_OFF
-# ifdef DBUG_ON
-# undef DBUG_ON
-# endif
-#endif
-
-/* Some types that is different between systems */
-
-typedef int File; /* File descriptor */
-#ifdef _WIN32
-typedef SOCKET my_socket;
-#else
-typedef int my_socket; /* File descriptor for sockets */
-#define INVALID_SOCKET -1
-#endif
-/* Type for fuctions that handles signals */
-#define sig_handler RETSIGTYPE
-C_MODE_START
-typedef void (*sig_return)();/* Returns type from signal */
-C_MODE_END
-#if defined(__GNUC__) && !defined(_lint)
-typedef char pchar; /* Mixed prototypes can take char */
-typedef char puchar; /* Mixed prototypes can take char */
-typedef char pbool; /* Mixed prototypes can take char */
-typedef short pshort; /* Mixed prototypes can take short int */
-typedef float pfloat; /* Mixed prototypes can take float */
-#else
-typedef int pchar; /* Mixed prototypes can't take char */
-typedef uint puchar; /* Mixed prototypes can't take char */
-typedef int pbool; /* Mixed prototypes can't take char */
-typedef int pshort; /* Mixed prototypes can't take short int */
-typedef double pfloat; /* Mixed prototypes can't take float */
-#endif
-C_MODE_START
-typedef int (*qsort_cmp)(const void *,const void *);
-typedef int (*qsort_cmp2)(void*, const void *,const void *);
-C_MODE_END
-#define qsort_t RETQSORTTYPE /* Broken GCC cant handle typedef !!!! */
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-typedef SOCKET_SIZE_TYPE size_socket;
-
-#ifndef SOCKOPT_OPTLEN_TYPE
-#define SOCKOPT_OPTLEN_TYPE size_socket
-#endif
-
-/* file create flags */
-
-#ifndef O_SHARE /* Probably not windows */
-#define O_SHARE 0 /* Flag to my_open for shared files */
-#ifndef O_BINARY
-#define O_BINARY 0 /* Flag to my_open for binary files */
-#endif
-#ifndef FILE_BINARY
-#define FILE_BINARY O_BINARY /* Flag to my_fopen for binary streams */
-#endif
-#ifdef HAVE_FCNTL
-#define HAVE_FCNTL_LOCK
-#define F_TO_EOF 0L /* Param to lockf() to lock rest of file */
-#endif
-#endif /* O_SHARE */
-
-#ifndef O_TEMPORARY
-#define O_TEMPORARY 0
-#endif
-#ifndef O_SHORT_LIVED
-#define O_SHORT_LIVED 0
-#endif
-#ifndef O_NOFOLLOW
-#define O_NOFOLLOW 0
-#endif
-
-/* additional file share flags for win32 */
-#ifdef __WIN__
-#define _SH_DENYRWD 0x110 /* deny read/write mode & delete */
-#define _SH_DENYWRD 0x120 /* deny write mode & delete */
-#define _SH_DENYRDD 0x130 /* deny read mode & delete */
-#define _SH_DENYDEL 0x140 /* deny delete only */
-#endif /* __WIN__ */
-
-
-/* General constants */
-#define FN_LEN 256 /* Max file name len */
-#define FN_HEADLEN 253 /* Max length of filepart of file name */
-#define FN_EXTLEN 20 /* Max length of extension (part of FN_LEN) */
-#define FN_REFLEN 512 /* Max length of full path-name */
-#define FN_EXTCHAR '.'
-#define FN_HOMELIB '~' /* ~/ is used as abbrev for home dir */
-#define FN_CURLIB '.' /* ./ is used as abbrev for current dir */
-#define FN_PARENTDIR ".." /* Parent directory; Must be a string */
-
-#ifdef _WIN32
-#define FN_LIBCHAR '\\'
-#define FN_LIBCHAR2 '/'
-#define FN_DIRSEP "/\\" /* Valid directory separators */
-#define FN_ROOTDIR "\\"
-#define FN_DEVCHAR ':'
-#define FN_NETWORK_DRIVES /* Uses \\ to indicate network drives */
-#define FN_NO_CASE_SENCE /* Files are not case-sensitive */
-#else
-#define FN_LIBCHAR '/'
-#define FN_LIBCHAR2 '/'
-#define FN_DIRSEP "/" /* Valid directory separators */
-#define FN_ROOTDIR "/"
-#endif
-
-/*
- MY_FILE_MIN is Windows speciality and is used to quickly detect
- the mismatch of CRT and mysys file IO usage on Windows at runtime.
- CRT file descriptors can be in the range 0-2047, whereas descriptors returned
- by my_open() will start with 2048. If a file descriptor with value less then
- MY_FILE_MIN is passed to mysys IO function, chances are it stemms from
- open()/fileno() and not my_open()/my_fileno.
-
- For Posix, mysys functions are light wrappers around libc, and MY_FILE_MIN
- is logically 0.
-*/
-
-#ifdef _WIN32
-#define MY_FILE_MIN 2048
-#else
-#define MY_FILE_MIN 0
-#endif
-
-/*
- MY_NFILE is the default size of my_file_info array.
-
- It is larger on Windows, because it all file handles are stored in my_file_info
- Default size is 16384 and this should be enough for most cases.If it is not
- enough, --max-open-files with larger value can be used.
-
- For Posix , my_file_info array is only used to store filenames for
- error reporting and its size is not a limitation for number of open files.
-*/
-#ifdef _WIN32
-#define MY_NFILE (16384 + MY_FILE_MIN)
-#else
-#define MY_NFILE 64
-#endif
-
-#ifndef OS_FILE_LIMIT
-#define OS_FILE_LIMIT UINT_MAX
-#endif
-
-/*
- Io buffer size; Must be a power of 2 and a multiple of 512. May be
- smaller what the disk page size. This influences the speed of the
- isam btree library. eg to big to slow.
-*/
-#define IO_SIZE 4096
-/*
- How much overhead does malloc have. The code often allocates
- something like 1024-MALLOC_OVERHEAD bytes
-*/
-#define MALLOC_OVERHEAD 8
-
- /* get memory in huncs */
-#define ONCE_ALLOC_INIT (uint) (4096-MALLOC_OVERHEAD)
- /* Typical record cash */
-#define RECORD_CACHE_SIZE (uint) (64*1024-MALLOC_OVERHEAD)
- /* Typical key cash */
-#define KEY_CACHE_SIZE (uint) (8*1024*1024)
- /* Default size of a key cache block */
-#define KEY_CACHE_BLOCK_SIZE (uint) 1024
-
-
- /* Some things that this system doesn't have */
-
-#ifdef _WIN32
-#define NO_DIR_LIBRARY /* Not standard dir-library */
-#endif
-
-/* Some defines of functions for portability */
-
-#undef remove /* Crashes MySQL on SCO 5.0.0 */
-#ifndef __WIN__
-#define closesocket(A) close(A)
-#endif
-
-#if (_MSC_VER)
-#if !defined(_WIN64)
-inline double my_ulonglong2double(unsigned long long value)
-{
- long long nr=(long long) value;
- if (nr >= 0)
- return (double) nr;
- return (18446744073709551616.0 + (double) nr);
-}
-#define ulonglong2double my_ulonglong2double
-#define my_off_t2double my_ulonglong2double
-#endif /* _WIN64 */
-inline unsigned long long my_double2ulonglong(double d)
-{
- double t= d - (double) 0x8000000000000000ULL;
-
- if (t >= 0)
- return ((unsigned long long) t) + 0x8000000000000000ULL;
- return (unsigned long long) d;
-}
-#define double2ulonglong my_double2ulonglong
-#endif
-
-#ifndef ulonglong2double
-#define ulonglong2double(A) ((double) (ulonglong) (A))
-#define my_off_t2double(A) ((double) (my_off_t) (A))
-#endif
-#ifndef double2ulonglong
-#define double2ulonglong(A) ((ulonglong) (double) (A))
-#endif
-
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
-#endif
-#define ulong_to_double(X) ((double) (ulong) (X))
-
-#ifndef STACK_DIRECTION
-#error "please add -DSTACK_DIRECTION=1 or -1 to your CPPFLAGS"
-#endif
-
-#if !defined(HAVE_STRTOK_R)
-#define strtok_r(A,B,C) strtok((A),(B))
-#endif
-
-/* This is from the old m-machine.h file */
-
-#if SIZEOF_LONG_LONG > 4
-#define HAVE_LONG_LONG 1
-#endif
-
-/*
- Some pre-ANSI-C99 systems like AIX 5.1 and Linux/GCC 2.95 define
- ULONGLONG_MAX, LONGLONG_MIN, LONGLONG_MAX; we use them if they're defined.
-*/
-
-#if defined(HAVE_LONG_LONG) && !defined(LONGLONG_MIN)
-#define LONGLONG_MIN ((long long) 0x8000000000000000LL)
-#define LONGLONG_MAX ((long long) 0x7FFFFFFFFFFFFFFFLL)
-#endif
-
-#if defined(HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)
-/* First check for ANSI C99 definition: */
-#ifdef ULLONG_MAX
-#define ULONGLONG_MAX ULLONG_MAX
-#else
-#define ULONGLONG_MAX ((unsigned long long)(~0ULL))
-#endif
-#endif /* defined (HAVE_LONG_LONG) && !defined(ULONGLONG_MAX)*/
-
-#define INT_MIN64 (~0x7FFFFFFFFFFFFFFFLL)
-#define INT_MAX64 0x7FFFFFFFFFFFFFFFLL
-#define INT_MIN32 (~0x7FFFFFFFL)
-#define INT_MAX32 0x7FFFFFFFL
-#define UINT_MAX32 0xFFFFFFFFL
-#define INT_MIN24 (~0x007FFFFF)
-#define INT_MAX24 0x007FFFFF
-#define UINT_MAX24 0x00FFFFFF
-#define INT_MIN16 (~0x7FFF)
-#define INT_MAX16 0x7FFF
-#define UINT_MAX16 0xFFFF
-#define INT_MIN8 (~0x7F)
-#define INT_MAX8 0x7F
-#define UINT_MAX8 0xFF
-
-/* From limits.h instead */
-#ifndef DBL_MIN
-#define DBL_MIN 4.94065645841246544e-324
-#define FLT_MIN ((float)1.40129846432481707e-45)
-#endif
-#ifndef DBL_MAX
-#define DBL_MAX 1.79769313486231470e+308
-#define FLT_MAX ((float)3.40282346638528860e+38)
-#endif
-#ifndef SIZE_T_MAX
-#define SIZE_T_MAX (~((size_t) 0))
-#endif
-
-#ifndef isfinite
-#ifdef HAVE_FINITE
-#define isfinite(x) finite(x)
-#else
-#define finite(x) (1.0 / fabs(x) > 0.0)
-#endif /* HAVE_FINITE */
-#endif /* isfinite */
-
-#ifndef HAVE_ISNAN
-#define isnan(x) ((x) != (x))
-#endif
-
-#ifdef HAVE_ISINF
-/* Check if C compiler is affected by GCC bug #39228 */
-#if !defined(__cplusplus) && defined(HAVE_BROKEN_ISINF)
-/* Force store/reload of the argument to/from a 64-bit double */
-static inline double my_isinf(double x)
-{
- volatile double t= x;
- return isinf(t);
-}
-#else
-/* System-provided isinf() is available and safe to use */
-#define my_isinf(X) isinf(X)
-#endif
-#else /* !HAVE_ISINF */
-#define my_isinf(X) (!finite(X) && !isnan(X))
-#endif
-
-/* Define missing math constants. */
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-#ifndef M_E
-#define M_E 2.7182818284590452354
-#endif
-#ifndef M_LN2
-#define M_LN2 0.69314718055994530942
-#endif
-
-/*
- Max size that must be added to a so that we know Size to make
- adressable obj.
-*/
-#if SIZEOF_CHARP == 4
-typedef long my_ptrdiff_t;
-#else
-typedef long long my_ptrdiff_t;
-#endif
-
-#define MY_ALIGN(A,L) (((A) + (L) - 1) & ~((L) - 1))
-#define ALIGN_SIZE(A) MY_ALIGN((A),sizeof(double))
-/* Size to make adressable obj. */
-#define ADD_TO_PTR(ptr,size,type) (type) ((uchar*) (ptr)+size)
-#define PTR_BYTE_DIFF(A,B) (my_ptrdiff_t) ((uchar*) (A) - (uchar*) (B))
-
-/*
- Custom version of standard offsetof() macro which can be used to get
- offsets of members in class for non-POD types (according to the current
- version of C++ standard offsetof() macro can't be used in such cases and
- attempt to do so causes warnings to be emitted, OTOH in many cases it is
- still OK to assume that all instances of the class has the same offsets
- for the same members).
-
- This is temporary solution which should be removed once File_parser class
- and related routines are refactored.
-*/
-
-#define my_offsetof(TYPE, MEMBER) \
- ((size_t)((char *)&(((TYPE *)0x10)->MEMBER) - (char*)0x10))
-
-#define NullS (char *) 0
-
-#ifdef STDCALL
-#undef STDCALL
-#endif
-
-#ifdef _WIN32
-#define STDCALL __stdcall
-#else
-#define STDCALL
-#endif
-
-/* Typdefs for easyier portability */
-
-#ifndef HAVE_UCHAR
-typedef unsigned char uchar; /* Short for unsigned char */
-#endif
-
-#ifndef HAVE_INT8
-typedef signed char int8; /* Signed integer >= 8 bits */
-#endif
-#ifndef HAVE_UINT8
-typedef unsigned char uint8; /* Unsigned integer >= 8 bits */
-#endif
-#ifndef HAVE_INT16
-typedef short int16;
-#endif
-#ifndef HAVE_UINT16
-typedef unsigned short uint16;
-#endif
-#if SIZEOF_INT == 4
-#ifndef HAVE_INT32
-typedef int int32;
-#endif
-#ifndef HAVE_UINT32
-typedef unsigned int uint32;
-#endif
-#elif SIZEOF_LONG == 4
-#ifndef HAVE_INT32
-typedef long int32;
-#endif
-#ifndef HAVE_UINT32
-typedef unsigned long uint32;
-#endif
-#else
-#error Neither int or long is of 4 bytes width
-#endif
-
-#if !defined(HAVE_ULONG) && !defined(__USE_MISC)
-typedef unsigned long ulong; /* Short for unsigned long */
-#endif
-#ifndef longlong_defined
-/*
- Using [unsigned] long long is preferable as [u]longlong because we use
- [unsigned] long long unconditionally in many places,
- for example in constants with [U]LL suffix.
-*/
-#if defined(HAVE_LONG_LONG) && SIZEOF_LONG_LONG == 8
-typedef unsigned long long int ulonglong; /* ulong or unsigned long long */
-typedef long long int longlong;
-#else
-typedef unsigned long ulonglong; /* ulong or unsigned long long */
-typedef long longlong;
-#endif
-#endif
-#ifndef HAVE_INT64
-typedef longlong int64;
-#endif
-#ifndef HAVE_UINT64
-typedef ulonglong uint64;
-#endif
-
-#if defined(NO_CLIENT_LONG_LONG)
-typedef unsigned long my_ulonglong;
-#elif defined (__WIN__)
-typedef unsigned __int64 my_ulonglong;
-#else
-typedef unsigned long long my_ulonglong;
-#endif
-
-#if SIZEOF_CHARP == SIZEOF_INT
-typedef int intptr;
-#elif SIZEOF_CHARP == SIZEOF_LONG
-typedef long intptr;
-#elif SIZEOF_CHARP == SIZEOF_LONG_LONG
-typedef long long intptr;
-#else
-#error sizeof(void *) is neither sizeof(int) nor sizeof(long) nor sizeof(long long)
-#endif
-
-#define MY_ERRPTR ((void*)(intptr)1)
-
-#if defined(_WIN32)
-typedef unsigned long long my_off_t;
-typedef unsigned long long os_off_t;
-#else
-typedef off_t os_off_t;
-#if SIZEOF_OFF_T > 4
-typedef ulonglong my_off_t;
-#else
-typedef unsigned long my_off_t;
-#endif
-#endif /*_WIN32*/
-#define MY_FILEPOS_ERROR (~(my_off_t) 0)
-
-/*
- TODO Convert these to use Bitmap class.
- */
-typedef ulonglong table_map; /* Used for table bits in join */
-typedef ulong nesting_map; /* Used for flags of nesting constructs */
-
-#if defined(__WIN__)
-#define socket_errno WSAGetLastError()
-#define SOCKET_EINTR WSAEINTR
-#define SOCKET_EAGAIN WSAEINPROGRESS
-#define SOCKET_ETIMEDOUT WSAETIMEDOUT
-#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
-#define SOCKET_EADDRINUSE WSAEADDRINUSE
-#define SOCKET_ENFILE ENFILE
-#define SOCKET_EMFILE EMFILE
-#else /* Unix */
-#define socket_errno errno
-#define closesocket(A) close(A)
-#define SOCKET_EINTR EINTR
-#define SOCKET_EAGAIN EAGAIN
-#define SOCKET_ETIMEDOUT SOCKET_EINTR
-#define SOCKET_EWOULDBLOCK EWOULDBLOCK
-#define SOCKET_EADDRINUSE EADDRINUSE
-#define SOCKET_ENFILE ENFILE
-#define SOCKET_EMFILE EMFILE
-#endif
-
-typedef int myf; /* Type of MyFlags in my_funcs */
-typedef char my_bool; /* Small bool */
-
-/* Macros for converting *constants* to the right type */
-#define MYF(v) (myf) (v)
-
-#ifndef LL
-#ifdef HAVE_LONG_LONG
-#define LL(A) A ## LL
-#else
-#define LL(A) A ## L
-#endif
-#endif
-
-#ifndef ULL
-#ifdef HAVE_LONG_LONG
-#define ULL(A) A ## ULL
-#else
-#define ULL(A) A ## UL
-#endif
-#endif
-
-/*
- Defines to make it possible to prioritize register assignments. No
- longer that important with modern compilers.
-*/
-#ifndef USING_X
-#define reg1 register
-#define reg2 register
-#define reg3 register
-#define reg4 register
-#define reg5 register
-#define reg6 register
-#define reg7 register
-#define reg8 register
-#define reg9 register
-#define reg10 register
-#define reg11 register
-#define reg12 register
-#define reg13 register
-#define reg14 register
-#define reg15 register
-#define reg16 register
-#endif
-
-#include <my_dbug.h>
-
-/* Some helper macros */
-#define YESNO(X) ((X) ? "yes" : "no")
-
-#define MY_HOW_OFTEN_TO_ALARM 2 /* How often we want info on screen */
-#define MY_HOW_OFTEN_TO_WRITE 1000 /* How often we want info on screen */
-
-
-
-/*
- Define-funktions for reading and storing in machine independent format
- (low byte first)
-*/
-
-/* Optimized store functions for Intel x86 */
-#if defined(__i386__) || defined(_WIN32)
-#define sint2korr(A) (*((int16 *) (A)))
-#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \
- (((uint32) 255L << 24) | \
- (((uint32) (uchar) (A)[2]) << 16) |\
- (((uint32) (uchar) (A)[1]) << 8) | \
- ((uint32) (uchar) (A)[0])) : \
- (((uint32) (uchar) (A)[2]) << 16) |\
- (((uint32) (uchar) (A)[1]) << 8) | \
- ((uint32) (uchar) (A)[0])))
-#define sint4korr(A) (*((long *) (A)))
-#define uint2korr(A) (*((uint16 *) (A)))
-#if defined(HAVE_purify) && !defined(_WIN32)
-#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16))
-#else
-/*
- ATTENTION !
-
- Please, note, uint3korr reads 4 bytes (not 3) !
- It means, that you have to provide enough allocated space !
-*/
-#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF)
-#endif /* HAVE_purify && !_WIN32 */
-#define uint4korr(A) (*((uint32 *) (A)))
-#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
- (((ulonglong) ((uchar) (A)[4])) << 32))
-#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \
- (((uint32) ((uchar) (A)[1])) << 8) + \
- (((uint32) ((uchar) (A)[2])) << 16) + \
- (((uint32) ((uchar) (A)[3])) << 24)) + \
- (((ulonglong) ((uchar) (A)[4])) << 32) + \
- (((ulonglong) ((uchar) (A)[5])) << 40))
-#define uint8korr(A) (*((ulonglong *) (A)))
-#define sint8korr(A) (*((longlong *) (A)))
-#define int2store(T,A) *((uint16*) (T))= (uint16) (A)
-#define int3store(T,A) do { *(T)= (uchar) ((A));\
- *(T+1)=(uchar) (((uint) (A) >> 8));\
- *(T+2)=(uchar) (((A) >> 16)); } while (0)
-#define int4store(T,A) *((long *) (T))= (long) (A)
-#define int5store(T,A) do { *(T)= (uchar)((A));\
- *((T)+1)=(uchar) (((A) >> 8));\
- *((T)+2)=(uchar) (((A) >> 16));\
- *((T)+3)=(uchar) (((A) >> 24)); \
- *((T)+4)=(uchar) (((A) >> 32)); } while(0)
-#define int6store(T,A) do { *(T)= (uchar)((A)); \
- *((T)+1)=(uchar) (((A) >> 8)); \
- *((T)+2)=(uchar) (((A) >> 16)); \
- *((T)+3)=(uchar) (((A) >> 24)); \
- *((T)+4)=(uchar) (((A) >> 32)); \
- *((T)+5)=(uchar) (((A) >> 40)); } while(0)
-#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)
-
-typedef union {
- double v;
- long m[2];
-} doubleget_union;
-#define doubleget(V,M) \
-do { doubleget_union _tmp; \
- _tmp.m[0] = *((long*)(M)); \
- _tmp.m[1] = *(((long*) (M))+1); \
- (V) = _tmp.v; } while(0)
-#define doublestore(T,V) do { *((long *) T) = ((doubleget_union *)&V)->m[0]; \
- *(((long *) T)+1) = ((doubleget_union *)&V)->m[1]; \
- } while (0)
-#define float4get(V,M) do { *((float *) &(V)) = *((float*) (M)); } while(0)
-#define float8get(V,M) doubleget((V),(M))
-#define float4store(V,M) memcpy((uchar*) V,(uchar*) (&M),sizeof(float))
-#define floatstore(T,V) memcpy((uchar*)(T), (uchar*)(&V),sizeof(float))
-#define floatget(V,M) memcpy((uchar*) &V,(uchar*) (M),sizeof(float))
-#define float8store(V,M) doublestore((V),(M))
-#else
-
-/*
- We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines
- were done before)
-*/
-#define sint2korr(A) (int16) (((int16) ((uchar) (A)[0])) +\
- ((int16) ((int16) (A)[1]) << 8))
-#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \
- (((uint32) 255L << 24) | \
- (((uint32) (uchar) (A)[2]) << 16) |\
- (((uint32) (uchar) (A)[1]) << 8) | \
- ((uint32) (uchar) (A)[0])) : \
- (((uint32) (uchar) (A)[2]) << 16) |\
- (((uint32) (uchar) (A)[1]) << 8) | \
- ((uint32) (uchar) (A)[0])))
-#define sint4korr(A) (int32) (((int32) ((uchar) (A)[0])) +\
- (((int32) ((uchar) (A)[1]) << 8)) +\
- (((int32) ((uchar) (A)[2]) << 16)) +\
- (((int32) ((int16) (A)[3]) << 24)))
-#define sint8korr(A) (longlong) uint8korr(A)
-#define uint2korr(A) (uint16) (((uint16) ((uchar) (A)[0])) +\
- ((uint16) ((uchar) (A)[1]) << 8))
-#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16))
-#define uint4korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24))
-#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
- (((ulonglong) ((uchar) (A)[4])) << 32))
-#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \
- (((uint32) ((uchar) (A)[1])) << 8) + \
- (((uint32) ((uchar) (A)[2])) << 16) + \
- (((uint32) ((uchar) (A)[3])) << 24)) + \
- (((ulonglong) ((uchar) (A)[4])) << 32) + \
- (((ulonglong) ((uchar) (A)[5])) << 40))
-#define uint8korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
- (((uint32) ((uchar) (A)[1])) << 8) +\
- (((uint32) ((uchar) (A)[2])) << 16) +\
- (((uint32) ((uchar) (A)[3])) << 24)) +\
- (((ulonglong) (((uint32) ((uchar) (A)[4])) +\
- (((uint32) ((uchar) (A)[5])) << 8) +\
- (((uint32) ((uchar) (A)[6])) << 16) +\
- (((uint32) ((uchar) (A)[7])) << 24))) <<\
- 32))
-#define int2store(T,A) do { uint def_temp= (uint) (A) ;\
- *((uchar*) (T))= (uchar)(def_temp); \
- *((uchar*) (T)+1)=(uchar)((def_temp >> 8)); \
- } while(0)
-#define int3store(T,A) do { /*lint -save -e734 */\
- *((uchar*)(T))=(uchar) ((A));\
- *((uchar*) (T)+1)=(uchar) (((A) >> 8));\
- *((uchar*)(T)+2)=(uchar) (((A) >> 16)); \
- /*lint -restore */} while(0)
-#define int4store(T,A) do { *((char *)(T))=(char) ((A));\
- *(((char *)(T))+1)=(char) (((A) >> 8));\
- *(((char *)(T))+2)=(char) (((A) >> 16));\
- *(((char *)(T))+3)=(char) (((A) >> 24)); } while(0)
-#define int5store(T,A) do { *((char *)(T))= (char)((A)); \
- *(((char *)(T))+1)= (char)(((A) >> 8)); \
- *(((char *)(T))+2)= (char)(((A) >> 16)); \
- *(((char *)(T))+3)= (char)(((A) >> 24)); \
- *(((char *)(T))+4)= (char)(((A) >> 32)); \
- } while(0)
-#define int6store(T,A) do { *((char *)(T))= (char)((A)); \
- *(((char *)(T))+1)= (char)(((A) >> 8)); \
- *(((char *)(T))+2)= (char)(((A) >> 16)); \
- *(((char *)(T))+3)= (char)(((A) >> 24)); \
- *(((char *)(T))+4)= (char)(((A) >> 32)); \
- *(((char *)(T))+5)= (char)(((A) >> 40)); \
- } while(0)
-#define int8store(T,A) do { uint def_temp= (uint) (A), def_temp2= (uint) ((A) >> 32); \
- int4store((T),def_temp); \
- int4store((T+4),def_temp2); } while(0)
-#ifdef WORDS_BIGENDIAN
-#define float4store(T,A) do { *(T)= ((uchar *) &A)[3];\
- *((T)+1)=(char) ((uchar *) &A)[2];\
- *((T)+2)=(char) ((uchar *) &A)[1];\
- *((T)+3)=(char) ((uchar *) &A)[0]; } while(0)
-
-#define float4get(V,M) do { float def_temp;\
- ((uchar*) &def_temp)[0]=(M)[3];\
- ((uchar*) &def_temp)[1]=(M)[2];\
- ((uchar*) &def_temp)[2]=(M)[1];\
- ((uchar*) &def_temp)[3]=(M)[0];\
- (V)=def_temp; } while(0)
-#define float8store(T,V) do { *(T)= ((uchar *) &V)[7];\
- *((T)+1)=(char) ((uchar *) &V)[6];\
- *((T)+2)=(char) ((uchar *) &V)[5];\
- *((T)+3)=(char) ((uchar *) &V)[4];\
- *((T)+4)=(char) ((uchar *) &V)[3];\
- *((T)+5)=(char) ((uchar *) &V)[2];\
- *((T)+6)=(char) ((uchar *) &V)[1];\
- *((T)+7)=(char) ((uchar *) &V)[0]; } while(0)
-
-#define float8get(V,M) do { double def_temp;\
- ((uchar*) &def_temp)[0]=(M)[7];\
- ((uchar*) &def_temp)[1]=(M)[6];\
- ((uchar*) &def_temp)[2]=(M)[5];\
- ((uchar*) &def_temp)[3]=(M)[4];\
- ((uchar*) &def_temp)[4]=(M)[3];\
- ((uchar*) &def_temp)[5]=(M)[2];\
- ((uchar*) &def_temp)[6]=(M)[1];\
- ((uchar*) &def_temp)[7]=(M)[0];\
- (V) = def_temp; } while(0)
-#else
-#define float4get(V,M) memcpy(&V, (M), sizeof(float))
-#define float4store(V,M) memcpy(V, (&M), sizeof(float))
-
-#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-#define doublestore(T,V) do { *(((char*)T)+0)=(char) ((uchar *) &V)[4];\
- *(((char*)T)+1)=(char) ((uchar *) &V)[5];\
- *(((char*)T)+2)=(char) ((uchar *) &V)[6];\
- *(((char*)T)+3)=(char) ((uchar *) &V)[7];\
- *(((char*)T)+4)=(char) ((uchar *) &V)[0];\
- *(((char*)T)+5)=(char) ((uchar *) &V)[1];\
- *(((char*)T)+6)=(char) ((uchar *) &V)[2];\
- *(((char*)T)+7)=(char) ((uchar *) &V)[3]; }\
- while(0)
-#define doubleget(V,M) do { double def_temp;\
- ((uchar*) &def_temp)[0]=(M)[4];\
- ((uchar*) &def_temp)[1]=(M)[5];\
- ((uchar*) &def_temp)[2]=(M)[6];\
- ((uchar*) &def_temp)[3]=(M)[7];\
- ((uchar*) &def_temp)[4]=(M)[0];\
- ((uchar*) &def_temp)[5]=(M)[1];\
- ((uchar*) &def_temp)[6]=(M)[2];\
- ((uchar*) &def_temp)[7]=(M)[3];\
- (V) = def_temp; } while(0)
-#endif /* __FLOAT_WORD_ORDER */
-
-#define float8get(V,M) doubleget((V),(M))
-#define float8store(V,M) doublestore((V),(M))
-#endif /* WORDS_BIGENDIAN */
-
-#endif /* __i386__ OR _WIN32 */
-
-/*
- Macro for reading 32-bit integer from network byte order (big-endian)
- from unaligned memory location.
-*/
-#define int4net(A) (int32) (((uint32) ((uchar) (A)[3])) |\
- (((uint32) ((uchar) (A)[2])) << 8) |\
- (((uint32) ((uchar) (A)[1])) << 16) |\
- (((uint32) ((uchar) (A)[0])) << 24))
-/*
- Define-funktions for reading and storing in machine format from/to
- short/long to/from some place in memory V should be a (not
- register) variable, M is a pointer to byte
-*/
-
-#ifdef WORDS_BIGENDIAN
-
-#define ushortget(V,M) do { V = (uint16) (((uint16) ((uchar) (M)[1]))+\
- ((uint16) ((uint16) (M)[0]) << 8)); } while(0)
-#define shortget(V,M) do { V = (short) (((short) ((uchar) (M)[1]))+\
- ((short) ((short) (M)[0]) << 8)); } while(0)
-#define longget(V,M) do { int32 def_temp;\
- ((uchar*) &def_temp)[0]=(M)[0];\
- ((uchar*) &def_temp)[1]=(M)[1];\
- ((uchar*) &def_temp)[2]=(M)[2];\
- ((uchar*) &def_temp)[3]=(M)[3];\
- (V)=def_temp; } while(0)
-#define ulongget(V,M) do { uint32 def_temp;\
- ((uchar*) &def_temp)[0]=(M)[0];\
- ((uchar*) &def_temp)[1]=(M)[1];\
- ((uchar*) &def_temp)[2]=(M)[2];\
- ((uchar*) &def_temp)[3]=(M)[3];\
- (V)=def_temp; } while(0)
-#define shortstore(T,A) do { uint def_temp=(uint) (A) ;\
- *(((char*)T)+1)=(char)(def_temp); \
- *(((char*)T)+0)=(char)(def_temp >> 8); } while(0)
-#define longstore(T,A) do { *(((char*)T)+3)=((A));\
- *(((char*)T)+2)=(((A) >> 8));\
- *(((char*)T)+1)=(((A) >> 16));\
- *(((char*)T)+0)=(((A) >> 24)); } while(0)
-
-#define floatget(V,M) memcpy(&V, (M), sizeof(float))
-#define floatstore(T,V) memcpy((T), (void*) (&V), sizeof(float))
-#define doubleget(V,M) memcpy(&V, (M), sizeof(double))
-#define doublestore(T,V) memcpy((T), (void *) &V, sizeof(double))
-#define longlongget(V,M) memcpy(&V, (M), sizeof(ulonglong))
-#define longlongstore(T,V) memcpy((T), &V, sizeof(ulonglong))
-
-#else
-
-#define ushortget(V,M) do { V = uint2korr(M); } while(0)
-#define shortget(V,M) do { V = sint2korr(M); } while(0)
-#define longget(V,M) do { V = sint4korr(M); } while(0)
-#define ulongget(V,M) do { V = uint4korr(M); } while(0)
-#define shortstore(T,V) int2store(T,V)
-#define longstore(T,V) int4store(T,V)
-#ifndef floatstore
-#define floatstore(T,V) memcpy((T), (void *) (&V), sizeof(float))
-#define floatget(V,M) memcpy(&V, (M), sizeof(float))
-#endif
-#ifndef doubleget
-#define doubleget(V,M) memcpy(&V, (M), sizeof(double))
-#define doublestore(T,V) memcpy((T), (void *) &V, sizeof(double))
-#endif /* doubleget */
-#define longlongget(V,M) memcpy(&V, (M), sizeof(ulonglong))
-#define longlongstore(T,V) memcpy((T), &V, sizeof(ulonglong))
-
-#endif /* WORDS_BIGENDIAN */
-
-#ifdef HAVE_CHARSET_utf8
-#define MYSQL_UNIVERSAL_CLIENT_CHARSET "utf8"
-#else
-#define MYSQL_UNIVERSAL_CLIENT_CHARSET MYSQL_DEFAULT_CHARSET_NAME
-#endif
-
-#if defined(EMBEDDED_LIBRARY) && !defined(HAVE_EMBEDDED_PRIVILEGE_CONTROL)
-#define NO_EMBEDDED_ACCESS_CHECKS
-#endif
-
-#if defined(_WIN32)
-#define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
-#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
-#define dlclose(lib) FreeLibrary((HMODULE)lib)
-#ifndef HAVE_DLOPEN
-#define HAVE_DLOPEN
-#endif
-#endif
-
-#ifdef HAVE_DLOPEN
-#if defined(HAVE_DLFCN_H)
-#include <dlfcn.h>
-#endif
-#endif
-
-#ifndef HAVE_DLERROR
-#ifdef _WIN32
-#define dlerror() ""
-#else
-#define dlerror() "No support for dynamic loading (static build?)"
-#endif
-#endif
-
-
-/*
- * Include standard definitions of operator new and delete.
- */
-#ifdef __cplusplus
-#include <new>
-#endif
-
-/* Length of decimal number represented by INT32. */
-#define MY_INT32_NUM_DECIMAL_DIGITS 11
-
-/* Length of decimal number represented by INT64. */
-#define MY_INT64_NUM_DECIMAL_DIGITS 21
-
-/* Define some useful general macros (should be done after all headers). */
-#if !defined(max)
-#define max(a, b) ((a) > (b) ? (a) : (b))
-#define min(a, b) ((a) < (b) ? (a) : (b))
-#endif
-
-/*
- Only Linux is known to need an explicit sync of the directory to make sure a
- file creation/deletion/renaming in(from,to) this directory durable.
-*/
-#ifdef TARGET_OS_LINUX
-#define NEED_EXPLICIT_SYNC_DIR 1
-#endif
-
-#if !defined(__cplusplus) && !defined(bool)
-#define bool In_C_you_should_use_my_bool_instead()
-#endif
-
-/* Provide __func__ macro definition for platforms that miss it. */
-#if __STDC_VERSION__ < 199901L
-# if __GNUC__ >= 2
-# define __func__ __FUNCTION__
-# else
-# define __func__ "<unknown>"
-# endif
-#elif defined(_MSC_VER)
-# if _MSC_VER < 1300
-# define __func__ "<unknown>"
-# else
-# define __func__ __FUNCTION__
-# endif
-#elif defined(__BORLANDC__)
-# define __func__ __FUNC__
-#else
-# define __func__ "<unknown>"
-#endif
-
-#ifndef HAVE_RINT
-/**
- All integers up to this number can be represented exactly as double precision
- values (DBL_MANT_DIG == 53 for IEEE 754 hardware).
-*/
-#define MAX_EXACT_INTEGER ((1LL << DBL_MANT_DIG) - 1)
-
-/**
- rint(3) implementation for platforms that do not have it.
- Always rounds to the nearest integer with ties being rounded to the nearest
- even integer to mimic glibc's rint() behavior in the "round-to-nearest"
- FPU mode. Hardware-specific optimizations are possible (frndint on x86).
- Unlike this implementation, hardware will also honor the FPU rounding mode.
-*/
-
-static inline double rint(double x)
-{
- double f, i;
- f = modf(x, &i);
- /*
- All doubles with absolute values > MAX_EXACT_INTEGER are even anyway,
- no need to check it.
- */
- if (x > 0.0)
- i += (double) ((f > 0.5) || (f == 0.5 &&
- i <= (double) MAX_EXACT_INTEGER &&
- (longlong) i % 2));
- else
- i -= (double) ((f < -0.5) || (f == -0.5 &&
- i >= (double) -MAX_EXACT_INTEGER &&
- (longlong) i % 2));
- return i;
-}
-#endif /* HAVE_RINT */
-
-/*
- MYSQL_PLUGIN_IMPORT macro is used to export mysqld data
- (i.e variables) for usage in storage engine loadable plugins.
- Outside of Windows, it is dummy.
-*/
-#ifndef MYSQL_PLUGIN_IMPORT
-#if (defined(_WIN32) && defined(MYSQL_DYNAMIC_PLUGIN))
-#define MYSQL_PLUGIN_IMPORT __declspec(dllimport)
-#else
-#define MYSQL_PLUGIN_IMPORT
-#endif
-#endif
-
-/* Defines that are unique to the embedded version of MySQL */
-
-#ifdef EMBEDDED_LIBRARY
-
-/* Things we don't need in the embedded version of MySQL */
-/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */
-
-#undef HAVE_OPENSSL
-#undef HAVE_SMEM /* No shared memory */
-#undef HAVE_NDBCLUSTER_DB /* No NDB cluster */
-
-#endif /* EMBEDDED_LIBRARY */
-
-#endif /* my_global_h */
diff --git a/dep/mysqllite/include/my_list.h b/dep/mysqllite/include/my_list.h
deleted file mode 100644
index ff086e1725b..00000000000
--- a/dep/mysqllite/include/my_list.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _list_h_
-#define _list_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct st_list {
- struct st_list *prev,*next;
- void *data;
-} LIST;
-
-typedef int (*list_walk_action)(void *,void *);
-
-extern LIST *list_add(LIST *root,LIST *element);
-extern LIST *list_delete(LIST *root,LIST *element);
-extern LIST *list_cons(void *data,LIST *root);
-extern LIST *list_reverse(LIST *root);
-extern void list_free(LIST *root,unsigned int free_data);
-extern unsigned int list_length(LIST *);
-extern int list_walk(LIST *,list_walk_action action,unsigned char * argument);
-
-#define list_rest(a) ((a)->next)
-#define list_push(a,b) (a)=list_cons((b),(a))
-#define list_pop(A) {LIST *old=(A); (A)=list_delete(old,old); my_free(old); }
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/dep/mysqllite/include/my_net.h b/dep/mysqllite/include/my_net.h
deleted file mode 100644
index 5762f5da06e..00000000000
--- a/dep/mysqllite/include/my_net.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This file is also used to make handling of sockets and ioctl()
- portable accross systems.
-
-*/
-
-#ifndef _my_net_h
-#define _my_net_h
-
-#include "my_global.h" /* C_MODE_START, C_MODE_END */
-
-C_MODE_START
-
-#include <errno.h>
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-#ifdef HAVE_POLL
-#include <sys/poll.h>
-#endif
-#ifdef HAVE_SYS_IOCTL_H
-#include <sys/ioctl.h>
-#endif
-
-#if !defined(__WIN__) && !defined(HAVE_BROKEN_NETINET_INCLUDES)
-#include <netinet/in_systm.h>
-#include <netinet/in.h>
-#include <netinet/ip.h>
-#if !defined(alpha_linux_port)
-#include <netinet/tcp.h>
-#endif
-#endif
-
-#if defined(__WIN__)
-#define O_NONBLOCK 1 /* For emulation of fcntl() */
-
-/*
- SHUT_RDWR is called SD_BOTH in windows and
- is defined to 2 in winsock2.h
- #define SD_BOTH 0x02
-*/
-#define SHUT_RDWR 0x02
-
-#endif
-
-/*
- On OSes which don't have the in_addr_t, we guess that using uint32 is the best
- possible choice. We guess this from the fact that on HP-UX64bit & FreeBSD64bit
- & Solaris64bit, in_addr_t is equivalent to uint32. And on Linux32bit too.
-*/
-#ifndef HAVE_IN_ADDR_T
-#define in_addr_t uint32
-#endif
-
-/*
- Handling of gethostbyname_r()
-*/
-
-#if !defined(HAVE_GETHOSTBYNAME_R)
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop);
-void my_gethostbyname_r_free();
-#elif defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop);
-#define my_gethostbyname_r_free()
-#if !defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) && !defined(HPUX10)
-#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
-#endif /* !defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
-
-#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
-#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop);
-#define my_gethostbyname_r_free()
-#else
-#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
-#define my_gethostbyname_r_free()
-#endif /* !defined(HAVE_GETHOSTBYNAME_R) */
-
-#ifndef GETHOSTBYNAME_BUFF_SIZE
-#define GETHOSTBYNAME_BUFF_SIZE 2048
-#endif
-
-C_MODE_END
-#endif
diff --git a/dep/mysqllite/include/my_pthread.h b/dep/mysqllite/include/my_pthread.h
deleted file mode 100644
index f1636cad136..00000000000
--- a/dep/mysqllite/include/my_pthread.h
+++ /dev/null
@@ -1,943 +0,0 @@
-/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Defines to make different thread packages compatible */
-
-#ifndef _my_pthread_h
-#define _my_pthread_h
-
-#include "my_global.h" /* myf */
-
-#ifndef ETIME
-#define ETIME ETIMEDOUT /* For FreeBSD */
-#endif
-
-#ifdef __cplusplus
-#define EXTERNC extern "C"
-extern "C" {
-#else
-#define EXTERNC
-#endif /* __cplusplus */
-
-#if defined(__WIN__)
-typedef CRITICAL_SECTION pthread_mutex_t;
-typedef DWORD pthread_t;
-typedef struct thread_attr {
- DWORD dwStackSize ;
- DWORD dwCreatingFlag ;
-} pthread_attr_t ;
-
-typedef struct { int dummy; } pthread_condattr_t;
-
-/* Implementation of posix conditions */
-
-typedef struct st_pthread_link {
- DWORD thread_id;
- struct st_pthread_link *next;
-} pthread_link;
-
-/**
- Implementation of Windows condition variables.
- We use native conditions on Vista and later, and fallback to own
- implementation on earlier OS version.
-*/
-typedef union
-{
- /* Native condition (used on Vista and later) */
- CONDITION_VARIABLE native_cond;
-
- /* Own implementation (used on XP) */
- struct
- {
- uint32 waiting;
- CRITICAL_SECTION lock_waiting;
- enum
- {
- SIGNAL= 0,
- BROADCAST= 1,
- MAX_EVENTS= 2
- } EVENTS;
- HANDLE events[MAX_EVENTS];
- HANDLE broadcast_block_event;
- };
-} pthread_cond_t;
-
-
-typedef int pthread_mutexattr_t;
-#define pthread_self() GetCurrentThreadId()
-#define pthread_handler_t EXTERNC void * __cdecl
-typedef void * (__cdecl *pthread_handler)(void *);
-
-typedef volatile LONG my_pthread_once_t;
-#define MY_PTHREAD_ONCE_INIT 0
-#define MY_PTHREAD_ONCE_INPROGRESS 1
-#define MY_PTHREAD_ONCE_DONE 2
-
-/*
- Struct and macros to be used in combination with the
- windows implementation of pthread_cond_timedwait
-*/
-
-/*
- Declare a union to make sure FILETIME is properly aligned
- so it can be used directly as a 64 bit value. The value
- stored is in 100ns units.
- */
- union ft64 {
- FILETIME ft;
- __int64 i64;
- };
-struct timespec {
- union ft64 tv;
- /* The max timeout value in millisecond for pthread_cond_timedwait */
- long max_timeout_msec;
-};
-#define set_timespec(ABSTIME,SEC) { \
- GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
- (ABSTIME).tv.i64+= (__int64)(SEC)*10000000; \
- (ABSTIME).max_timeout_msec= (long)((SEC)*1000); \
-}
-#define set_timespec_nsec(ABSTIME,NSEC) { \
- GetSystemTimeAsFileTime(&((ABSTIME).tv.ft)); \
- (ABSTIME).tv.i64+= (__int64)(NSEC)/100; \
- (ABSTIME).max_timeout_msec= (long)((NSEC)/1000000); \
-}
-
-/**
- Compare two timespec structs.
-
- @retval 1 If TS1 ends after TS2.
-
- @retval 0 If TS1 is equal to TS2.
-
- @retval -1 If TS1 ends before TS2.
-*/
-#define cmp_timespec(TS1, TS2) \
- ((TS1.tv.i64 > TS2.tv.i64) ? 1 : \
- ((TS1.tv.i64 < TS2.tv.i64) ? -1 : 0))
-
-
-int win_pthread_mutex_trylock(pthread_mutex_t *mutex);
-int pthread_create(pthread_t *, const pthread_attr_t *, pthread_handler, void *);
-int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
-int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
-int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- struct timespec *abstime);
-int pthread_cond_signal(pthread_cond_t *cond);
-int pthread_cond_broadcast(pthread_cond_t *cond);
-int pthread_cond_destroy(pthread_cond_t *cond);
-int pthread_attr_init(pthread_attr_t *connect_att);
-int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack);
-int pthread_attr_destroy(pthread_attr_t *connect_att);
-int my_pthread_once(my_pthread_once_t *once_control,void (*init_routine)(void));
-struct tm *localtime_r(const time_t *timep,struct tm *tmp);
-struct tm *gmtime_r(const time_t *timep,struct tm *tmp);
-
-void pthread_exit(void *a);
-int pthread_join(pthread_t thread, void **value_ptr);
-int pthread_cancel(pthread_t thread);
-
-#ifndef ETIMEDOUT
-#define ETIMEDOUT 145 /* Win32 doesn't have this */
-#endif
-#define HAVE_LOCALTIME_R 1
-#define _REENTRANT 1
-#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
-
-
-#undef SAFE_MUTEX /* This will cause conflicts */
-#define pthread_key(T,V) DWORD V
-#define pthread_key_create(A,B) ((*A=TlsAlloc())==0xFFFFFFFF)
-#define pthread_key_delete(A) TlsFree(A)
-#define my_pthread_setspecific_ptr(T,V) (!TlsSetValue((T),(V)))
-#define pthread_setspecific(A,B) (!TlsSetValue((A),(B)))
-#define pthread_getspecific(A) (TlsGetValue(A))
-#define my_pthread_getspecific(T,A) ((T) TlsGetValue(A))
-#define my_pthread_getspecific_ptr(T,V) ((T) TlsGetValue(V))
-
-#define pthread_equal(A,B) ((A) == (B))
-#define pthread_mutex_init(A,B) (InitializeCriticalSection(A),0)
-#define pthread_mutex_lock(A) (EnterCriticalSection(A),0)
-#define pthread_mutex_trylock(A) win_pthread_mutex_trylock((A))
-#define pthread_mutex_unlock(A) (LeaveCriticalSection(A), 0)
-#define pthread_mutex_destroy(A) (DeleteCriticalSection(A), 0)
-#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH)
-
-
-/* Dummy defines for easier code */
-#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
-#define pthread_attr_setscope(A,B)
-#define pthread_detach_this_thread()
-#define pthread_condattr_init(A)
-#define pthread_condattr_destroy(A)
-#define pthread_yield() SwitchToThread()
-#define my_sigset(A,B) signal(A,B)
-
-#else /* Normal threads */
-
-#ifdef HAVE_rts_threads
-#define sigwait org_sigwait
-#include <signal.h>
-#undef sigwait
-#endif
-#include <pthread.h>
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-#ifdef HAVE_THR_SETCONCURRENCY
-#include <thread.h> /* Probably solaris */
-#endif
-#ifdef HAVE_SCHED_H
-#include <sched.h>
-#endif
-#ifdef HAVE_SYNCH_H
-#include <synch.h>
-#endif
-
-#define pthread_key(T,V) pthread_key_t V
-#define my_pthread_getspecific_ptr(T,V) my_pthread_getspecific(T,(V))
-#define my_pthread_setspecific_ptr(T,V) pthread_setspecific(T,(void*) (V))
-#define pthread_detach_this_thread()
-#define pthread_handler_t EXTERNC void *
-typedef void *(* pthread_handler)(void *);
-
-#define my_pthread_once_t pthread_once_t
-#if defined(PTHREAD_ONCE_INITIALIZER)
-#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INITIALIZER
-#else
-#define MY_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
-#endif
-#define my_pthread_once(C,F) pthread_once(C,F)
-
-/* Test first for RTS or FSU threads */
-
-#if defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM)
-#define HAVE_rts_threads
-extern int my_pthread_create_detached;
-#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#define PTHREAD_CREATE_DETACHED &my_pthread_create_detached
-#define PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_GLOBAL
-#define PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_LOCAL
-#define USE_ALARM_THREAD
-#endif /* defined(PTHREAD_SCOPE_GLOBAL) && !defined(PTHREAD_SCOPE_SYSTEM) */
-
-#if defined(_BSDI_VERSION) && _BSDI_VERSION < 199910
-int sigwait(sigset_t *set, int *sig);
-#endif
-
-#ifndef HAVE_NONPOSIX_SIGWAIT
-#define my_sigwait(A,B) sigwait((A),(B))
-#else
-int my_sigwait(const sigset_t *set,int *sig);
-#endif
-
-#ifdef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT
-#ifndef SAFE_MUTEX
-#define pthread_mutex_init(a,b) my_pthread_mutex_init((a),(b))
-extern int my_pthread_mutex_init(pthread_mutex_t *mp,
- const pthread_mutexattr_t *attr);
-#endif /* SAFE_MUTEX */
-#define pthread_cond_init(a,b) my_pthread_cond_init((a),(b))
-extern int my_pthread_cond_init(pthread_cond_t *mp,
- const pthread_condattr_t *attr);
-#endif /* HAVE_NONPOSIX_PTHREAD_MUTEX_INIT */
-
-#if defined(HAVE_SIGTHREADMASK) && !defined(HAVE_PTHREAD_SIGMASK)
-#define pthread_sigmask(A,B,C) sigthreadmask((A),(B),(C))
-#endif
-
-#if !defined(HAVE_SIGWAIT) && !defined(HAVE_rts_threads) && !defined(sigwait) && !defined(alpha_linux_port) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS) && !defined(_AIX)
-int sigwait(sigset_t *setp, int *sigp); /* Use our implemention */
-#endif
-
-
-/*
- We define my_sigset() and use that instead of the system sigset() so that
- we can favor an implementation based on sigaction(). On some systems, such
- as Mac OS X, sigset() results in flags such as SA_RESTART being set, and
- we want to make sure that no such flags are set.
-*/
-#if defined(HAVE_SIGACTION) && !defined(my_sigset)
-#define my_sigset(A,B) do { struct sigaction l_s; sigset_t l_set; \
- DBUG_ASSERT((A) != 0); \
- sigemptyset(&l_set); \
- l_s.sa_handler = (B); \
- l_s.sa_mask = l_set; \
- l_s.sa_flags = 0; \
- sigaction((A), &l_s, NULL); \
- } while (0)
-#elif defined(HAVE_SIGSET) && !defined(my_sigset)
-#define my_sigset(A,B) sigset((A),(B))
-#elif !defined(my_sigset)
-#define my_sigset(A,B) signal((A),(B))
-#endif
-
-#if !defined(HAVE_PTHREAD_ATTR_SETSCOPE) || defined(HAVE_DEC_3_2_THREADS)
-#define pthread_attr_setscope(A,B)
-#undef HAVE_GETHOSTBYADDR_R /* No definition */
-#endif
-
-#if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX)
-extern int my_pthread_cond_timedwait(pthread_cond_t *cond,
- pthread_mutex_t *mutex,
- struct timespec *abstime);
-#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C))
-#endif
-
-#if !defined( HAVE_NONPOSIX_PTHREAD_GETSPECIFIC)
-#define my_pthread_getspecific(A,B) ((A) pthread_getspecific(B))
-#else
-#define my_pthread_getspecific(A,B) ((A) my_pthread_getspecific_imp(B))
-void *my_pthread_getspecific_imp(pthread_key_t key);
-#endif
-
-#ifndef HAVE_LOCALTIME_R
-struct tm *localtime_r(const time_t *clock, struct tm *res);
-#endif
-
-#ifndef HAVE_GMTIME_R
-struct tm *gmtime_r(const time_t *clock, struct tm *res);
-#endif
-
-#ifdef HAVE_PTHREAD_CONDATTR_CREATE
-/* DCE threads on HPUX 10.20 */
-#define pthread_condattr_init pthread_condattr_create
-#define pthread_condattr_destroy pthread_condattr_delete
-#endif
-
-/* FSU THREADS */
-#if !defined(HAVE_PTHREAD_KEY_DELETE) && !defined(pthread_key_delete)
-#define pthread_key_delete(A) pthread_dummy(0)
-#endif
-
-#ifdef HAVE_CTHREADS_WRAPPER /* For MacOSX */
-#define pthread_cond_destroy(A) pthread_dummy(0)
-#define pthread_mutex_destroy(A) pthread_dummy(0)
-#define pthread_attr_delete(A) pthread_dummy(0)
-#define pthread_condattr_delete(A) pthread_dummy(0)
-#define pthread_attr_setstacksize(A,B) pthread_dummy(0)
-#define pthread_equal(A,B) ((A) == (B))
-#define pthread_cond_timedwait(a,b,c) pthread_cond_wait((a),(b))
-#define pthread_attr_init(A) pthread_attr_create(A)
-#define pthread_attr_destroy(A) pthread_attr_delete(A)
-#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
-#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D))
-#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH)
-#undef pthread_detach_this_thread
-#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
-#endif
-
-#ifdef HAVE_DARWIN5_THREADS
-#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH)
-#define pthread_condattr_init(A) pthread_dummy(0)
-#define pthread_condattr_destroy(A) pthread_dummy(0)
-#undef pthread_detach_this_thread
-#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(tmp); }
-#endif
-
-#if ((defined(HAVE_PTHREAD_ATTR_CREATE) && !defined(HAVE_SIGWAIT)) || defined(HAVE_DEC_3_2_THREADS)) && !defined(HAVE_CTHREADS_WRAPPER)
-/* This is set on AIX_3_2 and Siemens unix (and DEC OSF/1 3.2 too) */
-#define pthread_key_create(A,B) \
- pthread_keycreate(A,(B) ?\
- (pthread_destructor_t) (B) :\
- (pthread_destructor_t) pthread_dummy)
-#define pthread_attr_init(A) pthread_attr_create(A)
-#define pthread_attr_destroy(A) pthread_attr_delete(A)
-#define pthread_attr_setdetachstate(A,B) pthread_dummy(0)
-#define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D))
-#ifndef pthread_sigmask
-#define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C))
-#endif
-#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH)
-#undef pthread_detach_this_thread
-#define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); }
-#else /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */
-#define HAVE_PTHREAD_KILL
-#endif
-
-#endif /* defined(__WIN__) */
-
-#if defined(HPUX10) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS)
-#undef pthread_cond_timedwait
-#define pthread_cond_timedwait(a,b,c) my_pthread_cond_timedwait((a),(b),(c))
-int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- struct timespec *abstime);
-#endif
-
-#if defined(HPUX10)
-#define pthread_attr_getstacksize(A,B) my_pthread_attr_getstacksize(A,B)
-void my_pthread_attr_getstacksize(pthread_attr_t *attrib, size_t *size);
-#endif
-
-#if defined(HAVE_POSIX1003_4a_MUTEX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS)
-#undef pthread_mutex_trylock
-#define pthread_mutex_trylock(a) my_pthread_mutex_trylock((a))
-int my_pthread_mutex_trylock(pthread_mutex_t *mutex);
-#endif
-
-#if !defined(HAVE_PTHREAD_YIELD_ONE_ARG) && !defined(HAVE_PTHREAD_YIELD_ZERO_ARG)
-/* no pthread_yield() available */
-#ifdef HAVE_SCHED_YIELD
-#define pthread_yield() sched_yield()
-#elif defined(HAVE_PTHREAD_YIELD_NP) /* can be Mac OS X */
-#define pthread_yield() pthread_yield_np()
-#elif defined(HAVE_THR_YIELD)
-#define pthread_yield() thr_yield()
-#endif
-#endif
-
-/*
- The defines set_timespec and set_timespec_nsec should be used
- for calculating an absolute time at which
- pthread_cond_timedwait should timeout
-*/
-#ifdef HAVE_TIMESPEC_TS_SEC
-#ifndef set_timespec
-#define set_timespec(ABSTIME,SEC) \
-{ \
- (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \
- (ABSTIME).ts_nsec=0; \
-}
-#endif /* !set_timespec */
-#ifndef set_timespec_nsec
-#define set_timespec_nsec(ABSTIME,NSEC) \
-{ \
- ulonglong now= my_getsystime() + (NSEC/100); \
- (ABSTIME).ts_sec= (now / ULL(10000000)); \
- (ABSTIME).ts_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
-}
-#endif /* !set_timespec_nsec */
-#else
-#ifndef set_timespec
-#define set_timespec(ABSTIME,SEC) \
-{\
- struct timeval tv;\
- gettimeofday(&tv,0);\
- (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\
- (ABSTIME).tv_nsec=tv.tv_usec*1000;\
-}
-#endif /* !set_timespec */
-#ifndef set_timespec_nsec
-#define set_timespec_nsec(ABSTIME,NSEC) \
-{\
- ulonglong now= my_getsystime() + (NSEC/100); \
- (ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \
- (ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
-}
-#endif /* !set_timespec_nsec */
-#endif /* HAVE_TIMESPEC_TS_SEC */
-
-/**
- Compare two timespec structs.
-
- @retval 1 If TS1 ends after TS2.
-
- @retval 0 If TS1 is equal to TS2.
-
- @retval -1 If TS1 ends before TS2.
-*/
-#ifdef HAVE_TIMESPEC_TS_SEC
-#ifndef cmp_timespec
-#define cmp_timespec(TS1, TS2) \
- ((TS1.ts_sec > TS2.ts_sec || \
- (TS1.ts_sec == TS2.ts_sec && TS1.ts_nsec > TS2.ts_nsec)) ? 1 : \
- ((TS1.ts_sec < TS2.ts_sec || \
- (TS1.ts_sec == TS2.ts_sec && TS1.ts_nsec < TS2.ts_nsec)) ? -1 : 0))
-#endif /* !cmp_timespec */
-#else
-#ifndef cmp_timespec
-#define cmp_timespec(TS1, TS2) \
- ((TS1.tv_sec > TS2.tv_sec || \
- (TS1.tv_sec == TS2.tv_sec && TS1.tv_nsec > TS2.tv_nsec)) ? 1 : \
- ((TS1.tv_sec < TS2.tv_sec || \
- (TS1.tv_sec == TS2.tv_sec && TS1.tv_nsec < TS2.tv_nsec)) ? -1 : 0))
-#endif /* !cmp_timespec */
-#endif /* HAVE_TIMESPEC_TS_SEC */
-
- /* safe_mutex adds checking to mutex for easier debugging */
-
-typedef struct st_safe_mutex_t
-{
- pthread_mutex_t global,mutex;
- const char *file;
- uint line,count;
- pthread_t thread;
-#ifdef SAFE_MUTEX_DETECT_DESTROY
- struct st_safe_mutex_info_t *info; /* to track destroying of mutexes */
-#endif
-} safe_mutex_t;
-
-#ifdef SAFE_MUTEX_DETECT_DESTROY
-/*
- Used to track the destroying of mutexes. This needs to be a seperate
- structure because the safe_mutex_t structure could be freed before
- the mutexes are destroyed.
-*/
-
-typedef struct st_safe_mutex_info_t
-{
- struct st_safe_mutex_info_t *next;
- struct st_safe_mutex_info_t *prev;
- const char *init_file;
- uint32 init_line;
-} safe_mutex_info_t;
-#endif /* SAFE_MUTEX_DETECT_DESTROY */
-
-int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr,
- const char *file, uint line);
-int safe_mutex_lock(safe_mutex_t *mp, my_bool try_lock, const char *file, uint line);
-int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line);
-int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line);
-int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file,
- uint line);
-int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp,
- const struct timespec *abstime,
- const char *file, uint line);
-void safe_mutex_global_init(void);
-void safe_mutex_end(FILE *file);
-
- /* Wrappers if safe mutex is actually used */
-#ifdef SAFE_MUTEX
-#undef pthread_mutex_init
-#undef pthread_mutex_lock
-#undef pthread_mutex_unlock
-#undef pthread_mutex_destroy
-#undef pthread_mutex_wait
-#undef pthread_mutex_timedwait
-#undef pthread_mutex_t
-#undef pthread_cond_wait
-#undef pthread_cond_timedwait
-#undef pthread_mutex_trylock
-#define pthread_mutex_init(A,B) safe_mutex_init((A),(B),__FILE__,__LINE__)
-#define pthread_mutex_lock(A) safe_mutex_lock((A), FALSE, __FILE__, __LINE__)
-#define pthread_mutex_unlock(A) safe_mutex_unlock((A),__FILE__,__LINE__)
-#define pthread_mutex_destroy(A) safe_mutex_destroy((A),__FILE__,__LINE__)
-#define pthread_cond_wait(A,B) safe_cond_wait((A),(B),__FILE__,__LINE__)
-#define pthread_cond_timedwait(A,B,C) safe_cond_timedwait((A),(B),(C),__FILE__,__LINE__)
-#define pthread_mutex_trylock(A) safe_mutex_lock((A), TRUE, __FILE__, __LINE__)
-#define pthread_mutex_t safe_mutex_t
-#define safe_mutex_assert_owner(mp) \
- DBUG_ASSERT((mp)->count > 0 && \
- pthread_equal(pthread_self(), (mp)->thread))
-#define safe_mutex_assert_not_owner(mp) \
- DBUG_ASSERT(! (mp)->count || \
- ! pthread_equal(pthread_self(), (mp)->thread))
-#else
-#define safe_mutex_assert_owner(mp)
-#define safe_mutex_assert_not_owner(mp)
-#endif /* SAFE_MUTEX */
-
-#if defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX)
-typedef struct st_my_pthread_fastmutex_t
-{
- pthread_mutex_t mutex;
- uint spins;
- uint rng_state;
-} my_pthread_fastmutex_t;
-void fastmutex_global_init(void);
-
-int my_pthread_fastmutex_init(my_pthread_fastmutex_t *mp,
- const pthread_mutexattr_t *attr);
-int my_pthread_fastmutex_lock(my_pthread_fastmutex_t *mp);
-
-#undef pthread_mutex_init
-#undef pthread_mutex_lock
-#undef pthread_mutex_unlock
-#undef pthread_mutex_destroy
-#undef pthread_mutex_wait
-#undef pthread_mutex_timedwait
-#undef pthread_mutex_t
-#undef pthread_cond_wait
-#undef pthread_cond_timedwait
-#undef pthread_mutex_trylock
-#define pthread_mutex_init(A,B) my_pthread_fastmutex_init((A),(B))
-#define pthread_mutex_lock(A) my_pthread_fastmutex_lock(A)
-#define pthread_mutex_unlock(A) pthread_mutex_unlock(&(A)->mutex)
-#define pthread_mutex_destroy(A) pthread_mutex_destroy(&(A)->mutex)
-#define pthread_cond_wait(A,B) pthread_cond_wait((A),&(B)->mutex)
-#define pthread_cond_timedwait(A,B,C) pthread_cond_timedwait((A),&(B)->mutex,(C))
-#define pthread_mutex_trylock(A) pthread_mutex_trylock(&(A)->mutex)
-#define pthread_mutex_t my_pthread_fastmutex_t
-#endif /* defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX) */
-
- /* READ-WRITE thread locking */
-
-#ifdef HAVE_BROKEN_RWLOCK /* For OpenUnix */
-#undef HAVE_PTHREAD_RWLOCK_RDLOCK
-#undef HAVE_RWLOCK_INIT
-#undef HAVE_RWLOCK_T
-#endif
-
-#if defined(USE_MUTEX_INSTEAD_OF_RW_LOCKS)
-/* use these defs for simple mutex locking */
-#define rw_lock_t pthread_mutex_t
-#define my_rwlock_init(A,B) pthread_mutex_init((A),(B))
-#define rw_rdlock(A) pthread_mutex_lock((A))
-#define rw_wrlock(A) pthread_mutex_lock((A))
-#define rw_tryrdlock(A) pthread_mutex_trylock((A))
-#define rw_trywrlock(A) pthread_mutex_trylock((A))
-#define rw_unlock(A) pthread_mutex_unlock((A))
-#define rwlock_destroy(A) pthread_mutex_destroy((A))
-#elif defined(HAVE_PTHREAD_RWLOCK_RDLOCK)
-#define rw_lock_t pthread_rwlock_t
-#define my_rwlock_init(A,B) pthread_rwlock_init((A),(B))
-#define rw_rdlock(A) pthread_rwlock_rdlock(A)
-#define rw_wrlock(A) pthread_rwlock_wrlock(A)
-#define rw_tryrdlock(A) pthread_rwlock_tryrdlock((A))
-#define rw_trywrlock(A) pthread_rwlock_trywrlock((A))
-#define rw_unlock(A) pthread_rwlock_unlock(A)
-#define rwlock_destroy(A) pthread_rwlock_destroy(A)
-#elif defined(HAVE_RWLOCK_INIT)
-#ifdef HAVE_RWLOCK_T /* For example Solaris 2.6-> */
-#define rw_lock_t rwlock_t
-#endif
-#define my_rwlock_init(A,B) rwlock_init((A),USYNC_THREAD,0)
-#else
-/* Use our own version of read/write locks */
-#define NEED_MY_RW_LOCK 1
-#define rw_lock_t my_rw_lock_t
-#define my_rwlock_init(A,B) my_rw_init((A))
-#define rw_rdlock(A) my_rw_rdlock((A))
-#define rw_wrlock(A) my_rw_wrlock((A))
-#define rw_tryrdlock(A) my_rw_tryrdlock((A))
-#define rw_trywrlock(A) my_rw_trywrlock((A))
-#define rw_unlock(A) my_rw_unlock((A))
-#define rwlock_destroy(A) my_rw_destroy((A))
-#define rw_lock_assert_write_owner(A) my_rw_lock_assert_write_owner((A))
-#define rw_lock_assert_not_write_owner(A) my_rw_lock_assert_not_write_owner((A))
-#endif /* USE_MUTEX_INSTEAD_OF_RW_LOCKS */
-
-
-/**
- Portable implementation of special type of read-write locks.
-
- These locks have two properties which are unusual for rwlocks:
- 1) They "prefer readers" in the sense that they do not allow
- situations in which rwlock is rd-locked and there is a
- pending rd-lock which is blocked (e.g. due to pending
- request for wr-lock).
- This is a stronger guarantee than one which is provided for
- PTHREAD_RWLOCK_PREFER_READER_NP rwlocks in Linux.
- MDL subsystem deadlock detector relies on this property for
- its correctness.
- 2) They are optimized for uncontended wr-lock/unlock case.
- This is scenario in which they are most oftenly used
- within MDL subsystem. Optimizing for it gives significant
- performance improvements in some of tests involving many
- connections.
-
- Another important requirement imposed on this type of rwlock
- by the MDL subsystem is that it should be OK to destroy rwlock
- object which is in unlocked state even though some threads might
- have not yet fully left unlock operation for it (of course there
- is an external guarantee that no thread will try to lock rwlock
- which is destroyed).
- Putting it another way the unlock operation should not access
- rwlock data after changing its state to unlocked.
-
- TODO/FIXME: We should consider alleviating this requirement as
- it blocks us from doing certain performance optimizations.
-*/
-
-typedef struct st_rw_pr_lock_t {
- /**
- Lock which protects the structure.
- Also held for the duration of wr-lock.
- */
- pthread_mutex_t lock;
- /**
- Condition variable which is used to wake-up
- writers waiting for readers to go away.
- */
- pthread_cond_t no_active_readers;
- /** Number of active readers. */
- uint active_readers;
- /** Number of writers waiting for readers to go away. */
- uint writers_waiting_readers;
- /** Indicates whether there is an active writer. */
- my_bool active_writer;
-#ifdef SAFE_MUTEX
- /** Thread holding wr-lock (for debug purposes only). */
- pthread_t writer_thread;
-#endif
-} rw_pr_lock_t;
-
-extern int rw_pr_init(rw_pr_lock_t *);
-extern int rw_pr_rdlock(rw_pr_lock_t *);
-extern int rw_pr_wrlock(rw_pr_lock_t *);
-extern int rw_pr_unlock(rw_pr_lock_t *);
-extern int rw_pr_destroy(rw_pr_lock_t *);
-#ifdef SAFE_MUTEX
-#define rw_pr_lock_assert_write_owner(A) \
- DBUG_ASSERT((A)->active_writer && pthread_equal(pthread_self(), \
- (A)->writer_thread))
-#define rw_pr_lock_assert_not_write_owner(A) \
- DBUG_ASSERT(! (A)->active_writer || ! pthread_equal(pthread_self(), \
- (A)->writer_thread))
-#else
-#define rw_pr_lock_assert_write_owner(A)
-#define rw_pr_lock_assert_not_write_owner(A)
-#endif /* SAFE_MUTEX */
-
-
-#ifdef NEED_MY_RW_LOCK
-
-#ifdef _WIN32
-
-/**
- Implementation of Windows rwlock.
-
- We use native (slim) rwlocks on Win7 and later, and fallback to portable
- implementation on earlier Windows.
-
- slim rwlock are also available on Vista/WS2008, but we do not use it
- ("trylock" APIs are missing on Vista)
-*/
-typedef union
-{
- /* Native rwlock (is_srwlock == TRUE) */
- struct
- {
- SRWLOCK srwlock; /* native reader writer lock */
- BOOL have_exclusive_srwlock; /* used for unlock */
- };
-
- /*
- Portable implementation (is_srwlock == FALSE)
- Fields are identical with Unix my_rw_lock_t fields.
- */
- struct
- {
- pthread_mutex_t lock; /* lock for structure */
- pthread_cond_t readers; /* waiting readers */
- pthread_cond_t writers; /* waiting writers */
- int state; /* -1:writer,0:free,>0:readers */
- int waiters; /* number of waiting writers */
-#ifdef SAFE_MUTEX
- pthread_t write_thread;
-#endif
- };
-} my_rw_lock_t;
-
-
-#else /* _WIN32 */
-
-/*
- On systems which don't support native read/write locks we have
- to use own implementation.
-*/
-typedef struct st_my_rw_lock_t {
- pthread_mutex_t lock; /* lock for structure */
- pthread_cond_t readers; /* waiting readers */
- pthread_cond_t writers; /* waiting writers */
- int state; /* -1:writer,0:free,>0:readers */
- int waiters; /* number of waiting writers */
-#ifdef SAFE_MUTEX
- pthread_t write_thread;
-#endif
-} my_rw_lock_t;
-
-#endif /*! _WIN32 */
-
-extern int my_rw_init(my_rw_lock_t *);
-extern int my_rw_destroy(my_rw_lock_t *);
-extern int my_rw_rdlock(my_rw_lock_t *);
-extern int my_rw_wrlock(my_rw_lock_t *);
-extern int my_rw_unlock(my_rw_lock_t *);
-extern int my_rw_tryrdlock(my_rw_lock_t *);
-extern int my_rw_trywrlock(my_rw_lock_t *);
-#ifdef SAFE_MUTEX
-#define my_rw_lock_assert_write_owner(A) \
- DBUG_ASSERT((A)->state == -1 && pthread_equal(pthread_self(), \
- (A)->write_thread))
-#define my_rw_lock_assert_not_write_owner(A) \
- DBUG_ASSERT((A)->state >= 0 || ! pthread_equal(pthread_self(), \
- (A)->write_thread))
-#else
-#define my_rw_lock_assert_write_owner(A)
-#define my_rw_lock_assert_not_write_owner(A)
-#endif
-#endif /* NEED_MY_RW_LOCK */
-
-
-#define GETHOSTBYADDR_BUFF_SIZE 2048
-
-#ifndef HAVE_THR_SETCONCURRENCY
-#define thr_setconcurrency(A) pthread_dummy(0)
-#endif
-#if !defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && ! defined(pthread_attr_setstacksize)
-#define pthread_attr_setstacksize(A,B) pthread_dummy(0)
-#endif
-
-/* Define mutex types, see my_thr_init.c */
-#define MY_MUTEX_INIT_SLOW NULL
-#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
-extern pthread_mutexattr_t my_fast_mutexattr;
-#define MY_MUTEX_INIT_FAST &my_fast_mutexattr
-#else
-#define MY_MUTEX_INIT_FAST NULL
-#endif
-#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
-extern pthread_mutexattr_t my_errorcheck_mutexattr;
-#define MY_MUTEX_INIT_ERRCHK &my_errorcheck_mutexattr
-#else
-#define MY_MUTEX_INIT_ERRCHK NULL
-#endif
-
-#ifndef ESRCH
-/* Define it to something */
-#define ESRCH 1
-#endif
-
-typedef ulong my_thread_id;
-
-extern my_bool my_thread_global_init(void);
-extern my_bool my_thread_basic_global_init(void);
-extern void my_thread_basic_global_reinit(void);
-extern void my_thread_global_end(void);
-extern my_bool my_thread_init(void);
-extern void my_thread_end(void);
-extern const char *my_thread_name(void);
-extern my_thread_id my_thread_dbug_id(void);
-extern int pthread_dummy(int);
-
-/* All thread specific variables are in the following struct */
-
-#define THREAD_NAME_SIZE 10
-#ifndef DEFAULT_THREAD_STACK
-#if SIZEOF_CHARP > 4
-/*
- MySQL can survive with 32K, but some glibc libraries require > 128K stack
- To resolve hostnames. Also recursive stored procedures needs stack.
-*/
-#define DEFAULT_THREAD_STACK (256*1024L)
-#else
-#define DEFAULT_THREAD_STACK (192*1024)
-#endif
-#endif
-
-#include <mysql/psi/mysql_thread.h>
-
-#define INSTRUMENT_ME 0
-
-struct st_my_thread_var
-{
- int thr_errno;
- mysql_cond_t suspend;
- mysql_mutex_t mutex;
- mysql_mutex_t * volatile current_mutex;
- mysql_cond_t * volatile current_cond;
- pthread_t pthread_self;
- my_thread_id id;
- int cmp_length;
- int volatile abort;
- my_bool init;
- struct st_my_thread_var *next,**prev;
- void *opt_info;
- void *stack_ends_here;
-#ifndef DBUG_OFF
- void *dbug;
- char name[THREAD_NAME_SIZE+1];
-#endif
-};
-
-extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const));
-extern void **my_thread_var_dbug();
-extern uint my_thread_end_wait_time;
-#define my_thread_var (_my_thread_var())
-#define my_errno my_thread_var->thr_errno
-/*
- Keep track of shutdown,signal, and main threads so that my_end() will not
- report errors with them
-*/
-
-/* Which kind of thread library is in use */
-
-#define THD_LIB_OTHER 1
-#define THD_LIB_NPTL 2
-#define THD_LIB_LT 4
-
-extern uint thd_lib_detected;
-
-/*
- thread_safe_xxx functions are for critical statistic or counters.
- The implementation is guaranteed to be thread safe, on all platforms.
- Note that the calling code should *not* assume the counter is protected
- by the mutex given, as the implementation of these helpers may change
- to use my_atomic operations instead.
-*/
-
-#ifndef thread_safe_increment
-#ifdef _WIN32
-#define thread_safe_increment(V,L) InterlockedIncrement((long*) &(V))
-#define thread_safe_decrement(V,L) InterlockedDecrement((long*) &(V))
-#else
-#define thread_safe_increment(V,L) \
- (mysql_mutex_lock((L)), (V)++, mysql_mutex_unlock((L)))
-#define thread_safe_decrement(V,L) \
- (mysql_mutex_lock((L)), (V)--, mysql_mutex_unlock((L)))
-#endif
-#endif
-
-#ifndef thread_safe_add
-#ifdef _WIN32
-#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C))
-#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C))
-#else
-#define thread_safe_add(V,C,L) \
- (mysql_mutex_lock((L)), (V)+=(C), mysql_mutex_unlock((L)))
-#define thread_safe_sub(V,C,L) \
- (mysql_mutex_lock((L)), (V)-=(C), mysql_mutex_unlock((L)))
-#endif
-#endif
-
-
-/*
- statistics_xxx functions are for non critical statistic,
- maintained in global variables.
- When compiling with SAFE_STATISTICS:
- - race conditions can not occur.
- - some locking occurs, which may cause performance degradation.
-
- When compiling without SAFE_STATISTICS:
- - race conditions can occur, making the result slightly inaccurate.
- - the lock given is not honored.
-*/
-#ifdef SAFE_STATISTICS
-#define statistic_increment(V,L) thread_safe_increment((V),(L))
-#define statistic_decrement(V,L) thread_safe_decrement((V),(L))
-#define statistic_add(V,C,L) thread_safe_add((V),(C),(L))
-#define statistic_sub(V,C,L) thread_safe_sub((V),(C),(L))
-#else
-#define statistic_decrement(V,L) (V)--
-#define statistic_increment(V,L) (V)++
-#define statistic_add(V,C,L) (V)+=(C)
-#define statistic_sub(V,C,L) (V)-=(C)
-#endif /* SAFE_STATISTICS */
-
-/*
- No locking needed, the counter is owned by the thread
-*/
-#define status_var_increment(V) (V)++
-#define status_var_decrement(V) (V)--
-#define status_var_add(V,C) (V)+=(C)
-#define status_var_sub(V,C) (V)-=(C)
-
-#ifdef __cplusplus
-}
-#endif
-#endif /* _my_ptread_h */
diff --git a/dep/mysqllite/include/my_sys.h b/dep/mysqllite/include/my_sys.h
deleted file mode 100644
index 96b40415c56..00000000000
--- a/dep/mysqllite/include/my_sys.h
+++ /dev/null
@@ -1,959 +0,0 @@
-/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_sys_h
-#define _my_sys_h
-
-#include "my_global.h" /* C_MODE_START, C_MODE_END */
-
-C_MODE_START
-
-#ifdef HAVE_AIOWAIT
-#include <sys/asynch.h> /* Used by record-cache */
-typedef struct my_aio_result {
- aio_result_t result;
- int pending;
-} my_aio_result;
-#endif
-
-#ifdef HAVE_VALGRIND
-# include <valgrind/memcheck.h>
-# define MEM_UNDEFINED(a,len) VALGRIND_MAKE_MEM_UNDEFINED(a,len)
-# define MEM_NOACCESS(a,len) VALGRIND_MAKE_MEM_NOACCESS(a,len)
-# define MEM_CHECK_ADDRESSABLE(a,len) VALGRIND_CHECK_MEM_IS_ADDRESSABLE(a,len)
-# define MEM_CHECK_DEFINED(a,len) VALGRIND_CHECK_MEM_IS_DEFINED(a,len)
-#else /* HAVE_VALGRIND */
-# define MEM_UNDEFINED(a,len) ((void) 0)
-# define MEM_NOACCESS(a,len) ((void) 0)
-# define MEM_CHECK_ADDRESSABLE(a,len) ((void) 0)
-# define MEM_CHECK_DEFINED(a,len) ((void) 0)
-#endif /* HAVE_VALGRIND */
-
-#include <my_pthread.h>
-
-#include <m_ctype.h> /* for CHARSET_INFO */
-#include <stdarg.h>
-#include <typelib.h>
-#ifdef _WIN32
-#include <malloc.h> /*for alloca*/
-#endif
-
-#define MY_INIT(name) { my_progname= name; my_init(); }
-
-/**
- Max length of an error message generated by mysys utilities.
- Some mysys functions produce error messages. These mostly go
- to stderr.
- This constant defines the size of the buffer used to format
- the message. It should be kept in sync with MYSQL_ERRMSG_SIZE,
- since sometimes mysys errors are stored in the server diagnostics
- area, and we would like to avoid unexpected truncation.
-*/
-#define MYSYS_ERRMSG_SIZE (512)
-
-#define MY_FILE_ERROR ((size_t) -1)
-
- /* General bitmaps for my_func's */
-#define MY_FFNF 1 /* Fatal if file not found */
-#define MY_FNABP 2 /* Fatal if not all bytes read/writen */
-#define MY_NABP 4 /* Error if not all bytes read/writen */
-#define MY_FAE 8 /* Fatal if any error */
-#define MY_WME 16 /* Write message on error */
-#define MY_WAIT_IF_FULL 32 /* Wait and try again if disk full error */
-#define MY_IGNORE_BADFD 32 /* my_sync: ignore 'bad descriptor' errors */
-#define MY_SYNC_DIR 8192 /* my_create/delete/rename: sync directory */
-#define MY_UNUSED 64 /* Unused (was support for RAID) */
-#define MY_FULL_IO 512 /* For my_read - loop intil I/O is complete */
-#define MY_DONT_CHECK_FILESIZE 128 /* Option to init_io_cache() */
-#define MY_LINK_WARNING 32 /* my_redel() gives warning if links */
-#define MY_COPYTIME 64 /* my_redel() copys time */
-#define MY_DELETE_OLD 256 /* my_create_with_symlink() */
-#define MY_RESOLVE_LINK 128 /* my_realpath(); Only resolve links */
-#define MY_HOLD_ORIGINAL_MODES 128 /* my_copy() holds to file modes */
-#define MY_REDEL_MAKE_BACKUP 256
-#define MY_SEEK_NOT_DONE 32 /* my_lock may have to do a seek */
-#define MY_DONT_WAIT 64 /* my_lock() don't wait if can't lock */
-#define MY_ZEROFILL 32 /* my_malloc(), fill array with zero */
-#define MY_ALLOW_ZERO_PTR 64 /* my_realloc() ; zero ptr -> malloc */
-#define MY_FREE_ON_ERROR 128 /* my_realloc() ; Free old ptr on error */
-#define MY_HOLD_ON_ERROR 256 /* my_realloc() ; Return old ptr on error */
-#define MY_DONT_OVERWRITE_FILE 1024 /* my_copy: Don't overwrite file */
-#define MY_THREADSAFE 2048 /* my_seek(): lock fd mutex */
-#define MY_SYNC 4096 /* my_copy(): sync dst file */
-
-#define MY_CHECK_ERROR 1 /* Params to my_end; Check open-close */
-#define MY_GIVE_INFO 2 /* Give time info about process*/
-#define MY_DONT_FREE_DBUG 4 /* Do not call DBUG_END() in my_end() */
-
-#define ME_HIGHBYTE 8 /* Shift for colours */
-#define ME_NOCUR 1 /* Don't use curses message */
-#define ME_OLDWIN 2 /* Use old window */
-#define ME_BELL 4 /* Ring bell then printing message */
-#define ME_HOLDTANG 8 /* Don't delete last keys */
-#define ME_WAITTOT 16 /* Wait for errtime secs of for a action */
-#define ME_WAITTANG 32 /* Wait for a user action */
-#define ME_NOREFRESH 64 /* Dont refresh screen */
-#define ME_NOINPUT 128 /* Dont use the input libary */
-#define ME_COLOUR1 ((1 << ME_HIGHBYTE)) /* Possibly error-colours */
-#define ME_COLOUR2 ((2 << ME_HIGHBYTE))
-#define ME_COLOUR3 ((3 << ME_HIGHBYTE))
-#define ME_FATALERROR 1024 /* Fatal statement error */
-
- /* Bits in last argument to fn_format */
-#define MY_REPLACE_DIR 1 /* replace dir in name with 'dir' */
-#define MY_REPLACE_EXT 2 /* replace extension with 'ext' */
-#define MY_UNPACK_FILENAME 4 /* Unpack name (~ -> home) */
-#define MY_PACK_FILENAME 8 /* Pack name (home -> ~) */
-#define MY_RESOLVE_SYMLINKS 16 /* Resolve all symbolic links */
-#define MY_RETURN_REAL_PATH 32 /* return full path for file */
-#define MY_SAFE_PATH 64 /* Return NULL if too long path */
-#define MY_RELATIVE_PATH 128 /* name is relative to 'dir' */
-#define MY_APPEND_EXT 256 /* add 'ext' as additional extension*/
-
-
- /* My seek flags */
-#define MY_SEEK_SET 0
-#define MY_SEEK_CUR 1
-#define MY_SEEK_END 2
-
- /* Some constants */
-#define MY_WAIT_FOR_USER_TO_FIX_PANIC 60 /* in seconds */
-#define MY_WAIT_GIVE_USER_A_MESSAGE 10 /* Every 10 times of prev */
-#define MIN_COMPRESS_LENGTH 50 /* Don't compress small bl. */
-#define DFLT_INIT_HITS 3
-
- /* root_alloc flags */
-#define MY_KEEP_PREALLOC 1
-#define MY_MARK_BLOCKS_FREE 2 /* move used to free list and reuse them */
-
- /* Internal error numbers (for assembler functions) */
-#define MY_ERRNO_EDOM 33
-#define MY_ERRNO_ERANGE 34
-
- /* Bits for get_date timeflag */
-#define GETDATE_DATE_TIME 1
-#define GETDATE_SHORT_DATE 2
-#define GETDATE_HHMMSSTIME 4
-#define GETDATE_GMT 8
-#define GETDATE_FIXEDLENGTH 16
-
- /* defines when allocating data */
-extern void *my_malloc(size_t Size,myf MyFlags);
-extern void *my_multi_malloc(myf MyFlags, ...);
-extern void *my_realloc(void *oldpoint, size_t Size, myf MyFlags);
-extern void my_free(void *ptr);
-extern void *my_memdup(const void *from,size_t length,myf MyFlags);
-extern char *my_strdup(const char *from,myf MyFlags);
-extern char *my_strndup(const char *from, size_t length,
- myf MyFlags);
-#define TRASH(A,B) do{MEM_CHECK_ADDRESSABLE(A,B);MEM_UNDEFINED(A,B);} while (0)
-#if defined(ENABLED_DEBUG_SYNC)
-extern void (*debug_sync_C_callback_ptr)(const char *, size_t);
-#define DEBUG_SYNC_C(_sync_point_name_) do { \
- if (debug_sync_C_callback_ptr != NULL) \
- (*debug_sync_C_callback_ptr)(STRING_WITH_LEN(_sync_point_name_)); } \
- while(0)
-#else
-#define DEBUG_SYNC_C(_sync_point_name_)
-#endif /* defined(ENABLED_DEBUG_SYNC) */
-
-#ifdef HAVE_LARGE_PAGES
-extern uint my_get_large_page_size(void);
-extern uchar * my_large_malloc(size_t size, myf my_flags);
-extern void my_large_free(uchar *ptr);
-#else
-#define my_get_large_page_size() (0)
-#define my_large_malloc(A,B) my_malloc_lock((A),(B))
-#define my_large_free(A) my_free_lock((A))
-#endif /* HAVE_LARGE_PAGES */
-
-#ifdef HAVE_ALLOCA
-#if defined(_AIX) && !defined(__GNUC__) && !defined(_AIX43)
-#pragma alloca
-#endif /* _AIX */
-#if defined(__MWERKS__)
-#undef alloca
-#define alloca _alloca
-#endif /* __MWERKS__ */
-#if defined(__GNUC__) && !defined(HAVE_ALLOCA_H) && ! defined(alloca)
-#define alloca __builtin_alloca
-#endif /* GNUC */
-#define my_alloca(SZ) alloca((size_t) (SZ))
-#define my_afree(PTR) {}
-#else
-#define my_alloca(SZ) my_malloc(SZ,MYF(MY_FAE))
-#define my_afree(PTR) my_free(PTR)
-#endif /* HAVE_ALLOCA */
-
-#ifndef errno /* did we already get it? */
-#ifdef HAVE_ERRNO_AS_DEFINE
-#include <errno.h> /* errno is a define */
-#else
-extern int errno; /* declare errno */
-#endif
-#endif /* #ifndef errno */
-extern char *home_dir; /* Home directory for user */
-extern const char *my_progname; /* program-name (printed in errors) */
-extern char curr_dir[]; /* Current directory for user */
-extern void (*error_handler_hook)(uint my_err, const char *str,myf MyFlags);
-extern void (*fatal_error_handler_hook)(uint my_err, const char *str,
- myf MyFlags);
-extern uint my_file_limit;
-extern ulong my_thread_stack_size;
-
-extern const char *(*proc_info_hook)(void *, const char *, const char *,
- const char *, const unsigned int);
-
-#ifdef HAVE_LARGE_PAGES
-extern my_bool my_use_large_pages;
-extern uint my_large_page_size;
-#endif
-
-/* charsets */
-#define MY_ALL_CHARSETS_SIZE 2048
-extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *default_charset_info;
-extern MYSQL_PLUGIN_IMPORT CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE];
-extern CHARSET_INFO compiled_charsets[];
-
-/* statistics */
-extern ulong my_file_opened,my_stream_opened, my_tmp_file_created;
-extern ulong my_file_total_opened;
-extern uint mysys_usage_id;
-extern my_bool my_init_done;
-
- /* Point to current my_message() */
-extern void (*my_sigtstp_cleanup)(void),
- /* Executed before jump to shell */
- (*my_sigtstp_restart)(void),
- (*my_abort_hook)(int);
- /* Executed when comming from shell */
-extern MYSQL_PLUGIN_IMPORT int my_umask; /* Default creation mask */
-extern int my_umask_dir,
- my_recived_signals, /* Signals we have got */
- my_safe_to_handle_signal, /* Set when allowed to SIGTSTP */
- my_dont_interrupt; /* call remember_intr when set */
-extern my_bool my_use_symdir;
-
-extern ulong my_default_record_cache_size;
-extern my_bool my_disable_locking, my_disable_async_io,
- my_disable_flush_key_blocks, my_disable_symlinks;
-extern char wild_many,wild_one,wild_prefix;
-extern const char *charsets_dir;
-/* from default.c */
-extern const char *my_defaults_extra_file;
-extern const char *my_defaults_group_suffix;
-extern const char *my_defaults_file;
-
-extern my_bool timed_mutexes;
-
-enum loglevel {
- ERROR_LEVEL,
- WARNING_LEVEL,
- INFORMATION_LEVEL
-};
-
-enum cache_type
-{
- TYPE_NOT_SET= 0, READ_CACHE, WRITE_CACHE,
- SEQ_READ_APPEND /* sequential read or append */,
- READ_FIFO, READ_NET,WRITE_NET};
-
-enum flush_type
-{
- FLUSH_KEEP, /* flush block and keep it in the cache */
- FLUSH_RELEASE, /* flush block and remove it from the cache */
- FLUSH_IGNORE_CHANGED, /* remove block from the cache */
- /*
- As my_disable_flush_pagecache_blocks is always 0, the following option
- is strictly equivalent to FLUSH_KEEP
- */
- FLUSH_FORCE_WRITE
-};
-
-typedef struct st_record_cache /* Used when cacheing records */
-{
- File file;
- int rc_seek,error,inited;
- uint rc_length,read_length,reclength;
- my_off_t rc_record_pos,end_of_file;
- uchar *rc_buff,*rc_buff2,*rc_pos,*rc_end,*rc_request_pos;
-#ifdef HAVE_AIOWAIT
- int use_async_io;
- my_aio_result aio_result;
-#endif
- enum cache_type type;
-} RECORD_CACHE;
-
-enum file_type
-{
- UNOPEN = 0, FILE_BY_OPEN, FILE_BY_CREATE, STREAM_BY_FOPEN, STREAM_BY_FDOPEN,
- FILE_BY_MKSTEMP, FILE_BY_DUP
-};
-
-struct st_my_file_info
-{
- char *name;
-#ifdef _WIN32
- HANDLE fhandle; /* win32 file handle */
- int oflag; /* open flags, e.g O_APPEND */
-#endif
- enum file_type type;
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
- mysql_mutex_t mutex;
-#endif
-};
-
-extern struct st_my_file_info *my_file_info;
-
-typedef struct st_dynamic_array
-{
- uchar *buffer;
- uint elements,max_element;
- uint alloc_increment;
- uint size_of_element;
-} DYNAMIC_ARRAY;
-
-typedef struct st_my_tmpdir
-{
- DYNAMIC_ARRAY full_list;
- char **list;
- uint cur, max;
- mysql_mutex_t mutex;
-} MY_TMPDIR;
-
-typedef struct st_dynamic_string
-{
- char *str;
- size_t length,max_length,alloc_increment;
-} DYNAMIC_STRING;
-
-struct st_io_cache;
-typedef int (*IO_CACHE_CALLBACK)(struct st_io_cache*);
-
-typedef struct st_io_cache_share
-{
- mysql_mutex_t mutex; /* To sync on reads into buffer. */
- mysql_cond_t cond; /* To wait for signals. */
- mysql_cond_t cond_writer; /* For a synchronized writer. */
- /* Offset in file corresponding to the first byte of buffer. */
- my_off_t pos_in_file;
- /* If a synchronized write cache is the source of the data. */
- struct st_io_cache *source_cache;
- uchar *buffer; /* The read buffer. */
- uchar *read_end; /* Behind last valid byte of buffer. */
- int running_threads; /* threads not in lock. */
- int total_threads; /* threads sharing the cache. */
- int error; /* Last error. */
-#ifdef NOT_YET_IMPLEMENTED
- /* whether the structure should be free'd */
- my_bool alloced;
-#endif
-} IO_CACHE_SHARE;
-
-typedef struct st_io_cache /* Used when cacheing files */
-{
- /* Offset in file corresponding to the first byte of uchar* buffer. */
- my_off_t pos_in_file;
- /*
- The offset of end of file for READ_CACHE and WRITE_CACHE.
- For SEQ_READ_APPEND it the maximum of the actual end of file and
- the position represented by read_end.
- */
- my_off_t end_of_file;
- /* Points to current read position in the buffer */
- uchar *read_pos;
- /* the non-inclusive boundary in the buffer for the currently valid read */
- uchar *read_end;
- uchar *buffer; /* The read buffer */
- /* Used in ASYNC_IO */
- uchar *request_pos;
-
- /* Only used in WRITE caches and in SEQ_READ_APPEND to buffer writes */
- uchar *write_buffer;
- /*
- Only used in SEQ_READ_APPEND, and points to the current read position
- in the write buffer. Note that reads in SEQ_READ_APPEND caches can
- happen from both read buffer (uchar* buffer) and write buffer
- (uchar* write_buffer).
- */
- uchar *append_read_pos;
- /* Points to current write position in the write buffer */
- uchar *write_pos;
- /* The non-inclusive boundary of the valid write area */
- uchar *write_end;
-
- /*
- Current_pos and current_end are convenience variables used by
- my_b_tell() and other routines that need to know the current offset
- current_pos points to &write_pos, and current_end to &write_end in a
- WRITE_CACHE, and &read_pos and &read_end respectively otherwise
- */
- uchar **current_pos, **current_end;
-
- /*
- The lock is for append buffer used in SEQ_READ_APPEND cache
- need mutex copying from append buffer to read buffer.
- */
- mysql_mutex_t append_buffer_lock;
- /*
- The following is used when several threads are reading the
- same file in parallel. They are synchronized on disk
- accesses reading the cached part of the file asynchronously.
- It should be set to NULL to disable the feature. Only
- READ_CACHE mode is supported.
- */
- IO_CACHE_SHARE *share;
-
- /*
- A caller will use my_b_read() macro to read from the cache
- if the data is already in cache, it will be simply copied with
- memcpy() and internal variables will be accordinging updated with
- no functions invoked. However, if the data is not fully in the cache,
- my_b_read() will call read_function to fetch the data. read_function
- must never be invoked directly.
- */
- int (*read_function)(struct st_io_cache *,uchar *,size_t);
- /*
- Same idea as in the case of read_function, except my_b_write() needs to
- be replaced with my_b_append() for a SEQ_READ_APPEND cache
- */
- int (*write_function)(struct st_io_cache *,const uchar *,size_t);
- /*
- Specifies the type of the cache. Depending on the type of the cache
- certain operations might not be available and yield unpredicatable
- results. Details to be documented later
- */
- enum cache_type type;
- /*
- Callbacks when the actual read I/O happens. These were added and
- are currently used for binary logging of LOAD DATA INFILE - when a
- block is read from the file, we create a block create/append event, and
- when IO_CACHE is closed, we create an end event. These functions could,
- of course be used for other things
- */
- IO_CACHE_CALLBACK pre_read;
- IO_CACHE_CALLBACK post_read;
- IO_CACHE_CALLBACK pre_close;
- /*
- Counts the number of times, when we were forced to use disk. We use it to
- increase the binlog_cache_disk_use and binlog_stmt_cache_disk_use status
- variables.
- */
- ulong disk_writes;
- void* arg; /* for use by pre/post_read */
- char *file_name; /* if used with 'open_cached_file' */
- char *dir,*prefix;
- File file; /* file descriptor */
- /*
- seek_not_done is set by my_b_seek() to inform the upcoming read/write
- operation that a seek needs to be preformed prior to the actual I/O
- error is 0 if the cache operation was successful, -1 if there was a
- "hard" error, and the actual number of I/O-ed bytes if the read/write was
- partial.
- */
- int seek_not_done,error;
- /* buffer_length is memory size allocated for buffer or write_buffer */
- size_t buffer_length;
- /* read_length is the same as buffer_length except when we use async io */
- size_t read_length;
- myf myflags; /* Flags used to my_read/my_write */
- /*
- alloced_buffer is 1 if the buffer was allocated by init_io_cache() and
- 0 if it was supplied by the user.
- Currently READ_NET is the only one that will use a buffer allocated
- somewhere else
- */
- my_bool alloced_buffer;
-#ifdef HAVE_AIOWAIT
- /*
- As inidicated by ifdef, this is for async I/O, which is not currently
- used (because it's not reliable on all systems)
- */
- uint inited;
- my_off_t aio_read_pos;
- my_aio_result aio_result;
-#endif
-} IO_CACHE;
-
-typedef int (*qsort2_cmp)(const void *, const void *, const void *);
-
- /* defines for mf_iocache */
-
- /* Test if buffer is inited */
-#define my_b_clear(info) (info)->buffer=0
-#define my_b_inited(info) (info)->buffer
-#define my_b_EOF INT_MIN
-
-#define my_b_read(info,Buffer,Count) \
- ((info)->read_pos + (Count) <= (info)->read_end ?\
- (memcpy(Buffer,(info)->read_pos,(size_t) (Count)), \
- ((info)->read_pos+=(Count)),0) :\
- (*(info)->read_function)((info),Buffer,Count))
-
-#define my_b_write(info,Buffer,Count) \
- ((info)->write_pos + (Count) <=(info)->write_end ?\
- (memcpy((info)->write_pos, (Buffer), (size_t)(Count)),\
- ((info)->write_pos+=(Count)),0) : \
- (*(info)->write_function)((info),(uchar *)(Buffer),(Count)))
-
-#define my_b_get(info) \
- ((info)->read_pos != (info)->read_end ?\
- ((info)->read_pos++, (int) (uchar) (info)->read_pos[-1]) :\
- _my_b_get(info))
-
- /* my_b_write_byte dosn't have any err-check */
-#define my_b_write_byte(info,chr) \
- (((info)->write_pos < (info)->write_end) ?\
- ((*(info)->write_pos++)=(chr)) :\
- (_my_b_write(info,0,0) , ((*(info)->write_pos++)=(chr))))
-
-#define my_b_fill_cache(info) \
- (((info)->read_end=(info)->read_pos),(*(info)->read_function)(info,0,0))
-
-#define my_b_tell(info) ((info)->pos_in_file + \
- (size_t) (*(info)->current_pos - (info)->request_pos))
-
-#define my_b_get_buffer_start(info) (info)->request_pos
-#define my_b_get_bytes_in_buffer(info) (char*) (info)->read_end - \
- (char*) my_b_get_buffer_start(info)
-#define my_b_get_pos_in_file(info) (info)->pos_in_file
-
-/* tell write offset in the SEQ_APPEND cache */
-int my_b_copy_to_file(IO_CACHE *cache, FILE *file);
-my_off_t my_b_append_tell(IO_CACHE* info);
-my_off_t my_b_safe_tell(IO_CACHE* info); /* picks the correct tell() */
-
-#define my_b_bytes_in_cache(info) (size_t) (*(info)->current_end - \
- *(info)->current_pos)
-
-typedef uint32 ha_checksum;
-
-/* Define the type of function to be passed to process_default_option_files */
-typedef int (*Process_option_func)(void *ctx, const char *group_name,
- const char *option);
-
-#include <my_alloc.h>
-
-
- /* Prototypes for mysys and my_func functions */
-
-extern int my_copy(const char *from,const char *to,myf MyFlags);
-extern int my_delete(const char *name,myf MyFlags);
-extern int my_getwd(char * buf,size_t size,myf MyFlags);
-extern int my_setwd(const char *dir,myf MyFlags);
-extern int my_lock(File fd,int op,my_off_t start, my_off_t length,myf MyFlags);
-extern void *my_once_alloc(size_t Size,myf MyFlags);
-extern void my_once_free(void);
-extern char *my_once_strdup(const char *src,myf myflags);
-extern void *my_once_memdup(const void *src, size_t len, myf myflags);
-extern File my_open(const char *FileName,int Flags,myf MyFlags);
-extern File my_register_filename(File fd, const char *FileName,
- enum file_type type_of_file,
- uint error_message_number, myf MyFlags);
-extern File my_create(const char *FileName,int CreateFlags,
- int AccessFlags, myf MyFlags);
-extern int my_close(File Filedes,myf MyFlags);
-extern int my_mkdir(const char *dir, int Flags, myf MyFlags);
-extern int my_readlink(char *to, const char *filename, myf MyFlags);
-extern int my_is_symlink(const char *filename);
-extern int my_realpath(char *to, const char *filename, myf MyFlags);
-extern File my_create_with_symlink(const char *linkname, const char *filename,
- int createflags, int access_flags,
- myf MyFlags);
-extern int my_delete_with_symlink(const char *name, myf MyFlags);
-extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags);
-extern int my_symlink(const char *content, const char *linkname, myf MyFlags);
-extern size_t my_read(File Filedes,uchar *Buffer,size_t Count,myf MyFlags);
-extern size_t my_pread(File Filedes,uchar *Buffer,size_t Count,my_off_t offset,
- myf MyFlags);
-extern int my_rename(const char *from,const char *to,myf MyFlags);
-extern my_off_t my_seek(File fd,my_off_t pos,int whence,myf MyFlags);
-extern my_off_t my_tell(File fd,myf MyFlags);
-extern size_t my_write(File Filedes,const uchar *Buffer,size_t Count,
- myf MyFlags);
-extern size_t my_pwrite(File Filedes,const uchar *Buffer,size_t Count,
- my_off_t offset,myf MyFlags);
-extern size_t my_fread(FILE *stream,uchar *Buffer,size_t Count,myf MyFlags);
-extern size_t my_fwrite(FILE *stream,const uchar *Buffer,size_t Count,
- myf MyFlags);
-extern my_off_t my_fseek(FILE *stream,my_off_t pos,int whence,myf MyFlags);
-extern my_off_t my_ftell(FILE *stream,myf MyFlags);
-
-/* implemented in my_memmem.c */
-extern void *my_memmem(const void *haystack, size_t haystacklen,
- const void *needle, size_t needlelen);
-
-
-#ifdef _WIN32
-extern int my_access(const char *path, int amode);
-#else
-#define my_access access
-#endif
-
-extern int check_if_legal_filename(const char *path);
-extern int check_if_legal_tablename(const char *path);
-
-#ifdef _WIN32
-extern int nt_share_delete(const char *name,myf MyFlags);
-#define my_delete_allow_opened(fname,flags) nt_share_delete((fname),(flags))
-#else
-#define my_delete_allow_opened(fname,flags) my_delete((fname),(flags))
-#endif
-
-#ifdef _WIN32
-/* Windows-only functions (CRT equivalents)*/
-extern HANDLE my_get_osfhandle(File fd);
-extern void my_osmaperr(unsigned long last_error);
-#endif
-
-extern void init_glob_errs(void);
-extern const char** get_global_errmsgs();
-extern void wait_for_free_space(const char *filename, int errors);
-extern FILE *my_fopen(const char *FileName,int Flags,myf MyFlags);
-extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags);
-extern FILE *my_freopen(const char *path, const char *mode, FILE *stream);
-extern int my_fclose(FILE *fd,myf MyFlags);
-extern File my_fileno(FILE *fd);
-extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags);
-extern int my_sync(File fd, myf my_flags);
-extern int my_sync_dir(const char *dir_name, myf my_flags);
-extern int my_sync_dir_by_file(const char *file_name, myf my_flags);
-extern void my_error(int nr,myf MyFlags, ...);
-extern void my_printf_error(uint my_err, const char *format,
- myf MyFlags, ...)
- ATTRIBUTE_FORMAT(printf, 2, 4);
-extern void my_printv_error(uint error, const char *format, myf MyFlags,
- va_list ap);
-extern int my_error_register(const char** (*get_errmsgs) (),
- int first, int last);
-extern const char **my_error_unregister(int first, int last);
-extern void my_message(uint my_err, const char *str,myf MyFlags);
-extern void my_message_stderr(uint my_err, const char *str, myf MyFlags);
-extern my_bool my_basic_init(void);
-extern my_bool my_init(void);
-extern void my_end(int infoflag);
-extern int my_redel(const char *from, const char *to, int MyFlags);
-extern int my_copystat(const char *from, const char *to, int MyFlags);
-extern char * my_filename(File fd);
-
-#ifdef EXTRA_DEBUG
-void my_print_open_files(void);
-#else
-#define my_print_open_files()
-#endif
-
-extern my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist);
-extern char *my_tmpdir(MY_TMPDIR *tmpdir);
-extern void free_tmpdir(MY_TMPDIR *tmpdir);
-
-extern void my_remember_signal(int signal_number,sig_handler (*func)(int));
-extern size_t dirname_part(char * to,const char *name, size_t *to_res_length);
-extern size_t dirname_length(const char *name);
-#define base_name(A) (A+dirname_length(A))
-extern int test_if_hard_path(const char *dir_name);
-extern my_bool has_path(const char *name);
-extern char *convert_dirname(char *to, const char *from, const char *from_end);
-extern void to_unix_path(char * name);
-extern char * fn_ext(const char *name);
-extern char * fn_same(char * toname,const char *name,int flag);
-extern char * fn_format(char * to,const char *name,const char *dir,
- const char *form, uint flag);
-extern size_t strlength(const char *str);
-extern void pack_dirname(char * to,const char *from);
-extern size_t normalize_dirname(char * to, const char *from);
-extern size_t unpack_dirname(char * to,const char *from);
-extern size_t cleanup_dirname(char * to,const char *from);
-extern size_t system_filename(char * to,const char *from);
-extern size_t unpack_filename(char * to,const char *from);
-extern char * intern_filename(char * to,const char *from);
-extern char * directory_file_name(char * dst, const char *src);
-extern int pack_filename(char * to, const char *name, size_t max_length);
-extern char * my_path(char * to,const char *progname,
- const char *own_pathname_part);
-extern char * my_load_path(char * to, const char *path,
- const char *own_path_prefix);
-extern int wild_compare(const char *str,const char *wildstr,
- pbool str_is_pattern);
-extern my_bool array_append_string_unique(const char *str,
- const char **array, size_t size);
-extern void get_date(char * to,int timeflag,time_t use_time);
-extern void soundex(CHARSET_INFO *, char * out_pntr, char * in_pntr,
- pbool remove_garbage);
-extern int init_record_cache(RECORD_CACHE *info,size_t cachesize,File file,
- size_t reclength,enum cache_type type,
- pbool use_async_io);
-extern int read_cache_record(RECORD_CACHE *info,uchar *to);
-extern int end_record_cache(RECORD_CACHE *info);
-extern int write_cache_record(RECORD_CACHE *info,my_off_t filepos,
- const uchar *record,size_t length);
-extern int flush_write_cache(RECORD_CACHE *info);
-extern void handle_recived_signals(void);
-
-extern sig_handler my_set_alarm_variable(int signo);
-extern void my_string_ptr_sort(uchar *base,uint items,size_t size);
-extern void radixsort_for_str_ptr(uchar* base[], uint number_of_elements,
- size_t size_of_element,uchar *buffer[]);
-extern qsort_t my_qsort(void *base_ptr, size_t total_elems, size_t size,
- qsort_cmp cmp);
-extern qsort_t my_qsort2(void *base_ptr, size_t total_elems, size_t size,
- qsort2_cmp cmp, void *cmp_argument);
-extern qsort2_cmp get_ptr_compare(size_t);
-void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos);
-my_off_t my_get_ptr(uchar *ptr, size_t pack_length);
-extern int init_io_cache(IO_CACHE *info,File file,size_t cachesize,
- enum cache_type type,my_off_t seek_offset,
- pbool use_async_io, myf cache_myflags);
-extern my_bool reinit_io_cache(IO_CACHE *info,enum cache_type type,
- my_off_t seek_offset,pbool use_async_io,
- pbool clear_cache);
-extern void setup_io_cache(IO_CACHE* info);
-extern int _my_b_read(IO_CACHE *info,uchar *Buffer,size_t Count);
-extern int _my_b_read_r(IO_CACHE *info,uchar *Buffer,size_t Count);
-extern void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare,
- IO_CACHE *write_cache, uint num_threads);
-extern void remove_io_thread(IO_CACHE *info);
-extern int _my_b_seq_read(IO_CACHE *info,uchar *Buffer,size_t Count);
-extern int _my_b_net_read(IO_CACHE *info,uchar *Buffer,size_t Count);
-extern int _my_b_get(IO_CACHE *info);
-extern int _my_b_async_read(IO_CACHE *info,uchar *Buffer,size_t Count);
-extern int _my_b_write(IO_CACHE *info,const uchar *Buffer,size_t Count);
-extern int my_b_append(IO_CACHE *info,const uchar *Buffer,size_t Count);
-extern int my_b_safe_write(IO_CACHE *info,const uchar *Buffer,size_t Count);
-
-extern int my_block_write(IO_CACHE *info, const uchar *Buffer,
- size_t Count, my_off_t pos);
-extern int my_b_flush_io_cache(IO_CACHE *info, int need_append_buffer_lock);
-
-#define flush_io_cache(info) my_b_flush_io_cache((info),1)
-
-extern int end_io_cache(IO_CACHE *info);
-extern size_t my_b_fill(IO_CACHE *info);
-extern void my_b_seek(IO_CACHE *info,my_off_t pos);
-extern size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length);
-extern my_off_t my_b_filelength(IO_CACHE *info);
-extern size_t my_b_printf(IO_CACHE *info, const char* fmt, ...);
-extern size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap);
-extern my_bool open_cached_file(IO_CACHE *cache,const char *dir,
- const char *prefix, size_t cache_size,
- myf cache_myflags);
-extern my_bool real_open_cached_file(IO_CACHE *cache);
-extern void close_cached_file(IO_CACHE *cache);
-File create_temp_file(char *to, const char *dir, const char *pfx,
- int mode, myf MyFlags);
-#define my_init_dynamic_array(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
-#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array2(A,B,NULL,C,D)
-#define my_init_dynamic_array2(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E)
-#define my_init_dynamic_array2_ci(A,B,C,D,E) init_dynamic_array2(A,B,C,D,E)
-extern my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
- void *init_buffer, uint init_alloc,
- uint alloc_increment);
-/* init_dynamic_array() function is deprecated */
-extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
- uint init_alloc, uint alloc_increment);
-extern my_bool insert_dynamic(DYNAMIC_ARRAY *array,uchar * element);
-extern uchar *alloc_dynamic(DYNAMIC_ARRAY *array);
-extern uchar *pop_dynamic(DYNAMIC_ARRAY*);
-extern my_bool set_dynamic(DYNAMIC_ARRAY *array,uchar * element,uint array_index);
-extern my_bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements);
-extern void get_dynamic(DYNAMIC_ARRAY *array,uchar * element,uint array_index);
-extern void delete_dynamic(DYNAMIC_ARRAY *array);
-extern void delete_dynamic_element(DYNAMIC_ARRAY *array, uint array_index);
-extern void freeze_size(DYNAMIC_ARRAY *array);
-extern int get_index_dynamic(DYNAMIC_ARRAY *array, uchar * element);
-#define dynamic_array_ptr(array,array_index) ((array)->buffer+(array_index)*(array)->size_of_element)
-#define dynamic_element(array,array_index,type) ((type)((array)->buffer) +(array_index))
-#define push_dynamic(A,B) insert_dynamic((A),(B))
-#define reset_dynamic(array) ((array)->elements= 0)
-#define sort_dynamic(A,cmp) my_qsort((A)->buffer, (A)->elements, (A)->size_of_element, (cmp))
-
-extern my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str,
- size_t init_alloc,size_t alloc_increment);
-extern my_bool dynstr_append(DYNAMIC_STRING *str, const char *append);
-my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append,
- size_t length);
-extern my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append,
- ...);
-extern my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str);
-extern my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size);
-extern my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n);
-extern void dynstr_free(DYNAMIC_STRING *str);
-#ifdef HAVE_MLOCK
-extern void *my_malloc_lock(size_t length,myf flags);
-extern void my_free_lock(void *ptr);
-#else
-#define my_malloc_lock(A,B) my_malloc((A),(B))
-#define my_free_lock(A) my_free((A))
-#endif
-#define alloc_root_inited(A) ((A)->min_malloc != 0)
-#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8)
-#define clear_alloc_root(A) do { (A)->free= (A)->used= (A)->pre_alloc= 0; (A)->min_malloc=0;} while(0)
-extern void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
- size_t pre_alloc_size);
-extern void *alloc_root(MEM_ROOT *mem_root, size_t Size);
-extern void *multi_alloc_root(MEM_ROOT *mem_root, ...);
-extern void free_root(MEM_ROOT *root, myf MyFLAGS);
-extern void set_prealloc_root(MEM_ROOT *root, char *ptr);
-extern void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
- size_t prealloc_size);
-extern char *strdup_root(MEM_ROOT *root,const char *str);
-static inline char *safe_strdup_root(MEM_ROOT *root, const char *str)
-{
- return str ? strdup_root(root, str) : 0;
-}
-extern char *strmake_root(MEM_ROOT *root,const char *str,size_t len);
-extern void *memdup_root(MEM_ROOT *root,const void *str, size_t len);
-extern int get_defaults_options(int argc, char **argv,
- char **defaults, char **extra_defaults,
- char **group_suffix);
-extern const char *args_separator;
-extern int my_load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv, const char ***);
-extern int load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv);
-extern int my_search_option_files(const char *conf_file, int *argc,
- char ***argv, uint *args_used,
- Process_option_func func, void *func_ctx,
- const char **default_directories);
-extern void free_defaults(char **argv);
-extern void my_print_default_files(const char *conf_file);
-extern void print_defaults(const char *conf_file, const char **groups);
-extern my_bool my_compress(uchar *, size_t *, size_t *);
-extern my_bool my_uncompress(uchar *, size_t , size_t *);
-extern uchar *my_compress_alloc(const uchar *packet, size_t *len,
- size_t *complen);
-extern int packfrm(uchar *, size_t, uchar **, size_t *);
-extern int unpackfrm(uchar **, size_t *, const uchar *);
-
-extern ha_checksum my_checksum(ha_checksum crc, const uchar *mem,
- size_t count);
-extern void my_sleep(ulong m_seconds);
-extern ulong crc32(ulong crc, const uchar *buf, uint len);
-extern uint my_set_max_open_files(uint files);
-void my_free_open_file_info(void);
-
-extern time_t my_time(myf flags);
-extern ulonglong my_getsystime(void);
-extern ulonglong my_micro_time();
-extern ulonglong my_micro_time_and_time(time_t *time_arg);
-time_t my_time_possible_from_micro(ulonglong microtime);
-extern my_bool my_gethwaddr(uchar *to);
-extern int my_getncpus();
-
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-
-#ifndef MAP_NOSYNC
-#define MAP_NOSYNC 0
-#endif
-#ifndef MAP_NORESERVE
-#define MAP_NORESERVE 0 /* For irix and AIX */
-#endif
-
-#ifdef HAVE_MMAP64
-#define my_mmap(a,b,c,d,e,f) mmap64(a,b,c,d,e,f)
-#else
-#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f)
-#endif
-#define my_munmap(a,b) munmap((a),(b))
-
-#else
-/* not a complete set of mmap() flags, but only those that nesessary */
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define MAP_NORESERVE 0
-#define MAP_SHARED 0x0001
-#define MAP_PRIVATE 0x0002
-#define MAP_NOSYNC 0x0800
-#define MAP_FAILED ((void *)-1)
-#define MS_SYNC 0x0000
-
-#define HAVE_MMAP
-void *my_mmap(void *, size_t, int, int, int, my_off_t);
-int my_munmap(void *, size_t);
-#endif
-
-/* my_getpagesize */
-#ifdef HAVE_GETPAGESIZE
-#define my_getpagesize() getpagesize()
-#else
-int my_getpagesize(void);
-#endif
-
-int my_msync(int, void *, size_t, int);
-
-/* character sets */
-extern uint get_charset_number(const char *cs_name, uint cs_flags);
-extern uint get_collation_number(const char *name);
-extern const char *get_charset_name(uint cs_number);
-
-extern CHARSET_INFO *get_charset(uint cs_number, myf flags);
-extern CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags);
-extern CHARSET_INFO *get_charset_by_csname(const char *cs_name,
- uint cs_flags, myf my_flags);
-
-extern my_bool resolve_charset(const char *cs_name,
- CHARSET_INFO *default_cs,
- CHARSET_INFO **cs);
-extern my_bool resolve_collation(const char *cl_name,
- CHARSET_INFO *default_cl,
- CHARSET_INFO **cl);
-extern void free_charsets(void);
-extern char *get_charsets_dir(char *buf);
-extern my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2);
-extern my_bool init_compiled_charsets(myf flags);
-extern void add_compiled_collation(CHARSET_INFO *cs);
-extern size_t escape_string_for_mysql(CHARSET_INFO *charset_info,
- char *to, size_t to_length,
- const char *from, size_t length);
-#ifdef __WIN__
-#define BACKSLASH_MBTAIL
-/* File system character set */
-extern CHARSET_INFO *fs_character_set(void);
-#endif
-extern size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info,
- char *to, size_t to_length,
- const char *from, size_t length);
-
-extern void thd_increment_bytes_sent(ulong length);
-extern void thd_increment_bytes_received(ulong length);
-extern void thd_increment_net_big_packet_count(ulong length);
-
-#ifdef __WIN__
-extern my_bool have_tcpip; /* Is set if tcpip is used */
-
-/* implemented in my_windac.c */
-
-int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror,
- DWORD owner_rights, DWORD everybody_rights);
-
-void my_security_attr_free(SECURITY_ATTRIBUTES *sa);
-
-/* implemented in my_conio.c */
-char* my_cgets(char *string, size_t clen, size_t* plen);
-
-#endif
-
-#include <mysql/psi/psi.h>
-
-#ifdef HAVE_PSI_INTERFACE
-extern MYSQL_PLUGIN_IMPORT struct PSI_bootstrap *PSI_hook;
-void my_init_mysys_psi_keys(void);
-#endif
-
-struct st_mysql_file;
-extern struct st_mysql_file *mysql_stdin;
-
-C_MODE_END
-#endif /* _my_sys_h */
diff --git a/dep/mysqllite/include/my_xml.h b/dep/mysqllite/include/my_xml.h
deleted file mode 100644
index 6a453ee90be..00000000000
--- a/dep/mysqllite/include/my_xml.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-#ifndef _my_xml_h
-#define _my_xml_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-#define MY_XML_OK 0
-#define MY_XML_ERROR 1
-
-/*
- A flag whether to use absolute tag names in call-back functions,
- like "a", "a.b" and "a.b.c" (used in character set file parser),
- or relative names like "a", "b" and "c".
-*/
-#define MY_XML_FLAG_RELATIVE_NAMES 1
-
-/*
- A flag whether to skip normilization of text values before calling
- call-back functions: i.e. skip leading/trailing spaces,
- \r, \n, \t characters.
-*/
-#define MY_XML_FLAG_SKIP_TEXT_NORMALIZATION 2
-
-enum my_xml_node_type
-{
- MY_XML_NODE_TAG, /* can have TAG, ATTR and TEXT children */
- MY_XML_NODE_ATTR, /* can have TEXT children */
- MY_XML_NODE_TEXT /* cannot have children */
-};
-
-typedef struct xml_stack_st
-{
- int flags;
- enum my_xml_node_type current_node_type;
- char errstr[128];
- char attr[128];
- char *attrend;
- const char *beg;
- const char *cur;
- const char *end;
- void *user_data;
- int (*enter)(struct xml_stack_st *st,const char *val, size_t len);
- int (*value)(struct xml_stack_st *st,const char *val, size_t len);
- int (*leave_xml)(struct xml_stack_st *st,const char *val, size_t len);
-} MY_XML_PARSER;
-
-void my_xml_parser_create(MY_XML_PARSER *st);
-void my_xml_parser_free(MY_XML_PARSER *st);
-int my_xml_parse(MY_XML_PARSER *st,const char *str, size_t len);
-
-void my_xml_set_value_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *,
- const char *,
- size_t len));
-void my_xml_set_enter_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *,
- const char *,
- size_t len));
-void my_xml_set_leave_handler(MY_XML_PARSER *st, int (*)(MY_XML_PARSER *,
- const char *,
- size_t len));
-void my_xml_set_user_data(MY_XML_PARSER *st, void *);
-
-size_t my_xml_error_pos(MY_XML_PARSER *st);
-uint my_xml_error_lineno(MY_XML_PARSER *st);
-
-const char *my_xml_error_string(MY_XML_PARSER *st);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _my_xml_h */
diff --git a/dep/mysqllite/include/mysql.h b/dep/mysqllite/include/mysql.h
deleted file mode 100644
index d3b24f0198a..00000000000
--- a/dep/mysqllite/include/mysql.h
+++ /dev/null
@@ -1,713 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This file defines the client API to MySQL and also the ABI of the
- dynamically linked libmysqlclient.
-
- The ABI should never be changed in a released product of MySQL,
- thus you need to take great care when changing the file. In case
- the file is changed so the ABI is broken, you must also update
- the SHARED_LIB_MAJOR_VERSION in cmake/mysql_version.cmake
-*/
-
-#ifndef _mysql_h
-#define _mysql_h
-
-#ifdef _AIX /* large-file support will break without this */
-#include <standards.h>
-#endif
-
-#ifdef __CYGWIN__ /* CYGWIN implements a UNIX API */
-#undef WIN
-#undef _WIN
-#undef _WIN32
-#undef _WIN64
-#undef __WIN__
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _global_h /* If not standard header */
-#ifndef MYSQL_ABI_CHECK
-#include <sys/types.h>
-#endif
-#ifdef __LCC__
-#include <winsock2.h> /* For windows */
-#endif
-typedef char my_bool;
-#if (defined(_WIN32) || defined(_WIN64)) && !defined(__WIN__)
-#define __WIN__
-#endif
-#if !defined(__WIN__)
-#define STDCALL
-#else
-#define STDCALL __stdcall
-#endif
-
-#ifndef my_socket_defined
-#ifdef __WIN__
-#define my_socket SOCKET
-#else
-typedef int my_socket;
-#endif /* __WIN__ */
-#endif /* my_socket_defined */
-#endif /* _global_h */
-
-#include "mysql_version.h"
-#include "mysql_com.h"
-#include "mysql_time.h"
-
-#include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
-
-extern unsigned int mysql_port;
-extern char *mysql_unix_port;
-
-#define CLIENT_NET_READ_TIMEOUT 365*24*3600 /* Timeout on read */
-#define CLIENT_NET_WRITE_TIMEOUT 365*24*3600 /* Timeout on write */
-
-#define IS_PRI_KEY(n) ((n) & PRI_KEY_FLAG)
-#define IS_NOT_NULL(n) ((n) & NOT_NULL_FLAG)
-#define IS_BLOB(n) ((n) & BLOB_FLAG)
-/**
- Returns true if the value is a number which does not need quotes for
- the sql_lex.cc parser to parse correctly.
-*/
-#define IS_NUM(t) (((t) <= MYSQL_TYPE_INT24 && (t) != MYSQL_TYPE_TIMESTAMP) || (t) == MYSQL_TYPE_YEAR || (t) == MYSQL_TYPE_NEWDECIMAL)
-#define IS_LONGDATA(t) ((t) >= MYSQL_TYPE_TINY_BLOB && (t) <= MYSQL_TYPE_STRING)
-
-
-typedef struct st_mysql_field {
- char *name; /* Name of column */
- char *org_name; /* Original column name, if an alias */
- char *table; /* Table of column if column was a field */
- char *org_table; /* Org table name, if table was an alias */
- char *db; /* Database for table */
- char *catalog; /* Catalog for table */
- char *def; /* Default value (set by mysql_list_fields) */
- unsigned long length; /* Width of column (create length) */
- unsigned long max_length; /* Max width for selected set */
- unsigned int name_length;
- unsigned int org_name_length;
- unsigned int table_length;
- unsigned int org_table_length;
- unsigned int db_length;
- unsigned int catalog_length;
- unsigned int def_length;
- unsigned int flags; /* Div flags */
- unsigned int decimals; /* Number of decimals in field */
- unsigned int charsetnr; /* Character set */
- enum enum_field_types type; /* Type of field. See mysql_com.h for types */
- void *extension;
-} MYSQL_FIELD;
-
-typedef char **MYSQL_ROW; /* return data as array of strings */
-typedef unsigned int MYSQL_FIELD_OFFSET; /* offset to current field */
-
-#ifndef _global_h
-#if defined(NO_CLIENT_LONG_LONG)
-typedef unsigned long my_ulonglong;
-#elif defined (__WIN__)
-typedef unsigned __int64 my_ulonglong;
-#else
-typedef unsigned long long my_ulonglong;
-#endif
-#endif
-
-#include "typelib.h"
-
-#define MYSQL_COUNT_ERROR (~(my_ulonglong) 0)
-
-/* backward compatibility define - to be removed eventually */
-#define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
-
-typedef struct st_mysql_rows {
- struct st_mysql_rows *next; /* list of rows */
- MYSQL_ROW data;
- unsigned long length;
-} MYSQL_ROWS;
-
-typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */
-
-#include "my_alloc.h"
-
-typedef struct embedded_query_result EMBEDDED_QUERY_RESULT;
-typedef struct st_mysql_data {
- MYSQL_ROWS *data;
- struct embedded_query_result *embedded_info;
- MEM_ROOT alloc;
- my_ulonglong rows;
- unsigned int fields;
- /* extra info for embedded library */
- void *extension;
-} MYSQL_DATA;
-
-enum mysql_option
-{
- MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_COMPRESS, MYSQL_OPT_NAMED_PIPE,
- MYSQL_INIT_COMMAND, MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_GROUP,
- MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_NAME, MYSQL_OPT_LOCAL_INFILE,
- MYSQL_OPT_PROTOCOL, MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_OPT_READ_TIMEOUT,
- MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT,
- MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION,
- MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH,
- MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT,
- MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH
-};
-
-/**
- @todo remove the "extension", move st_mysql_options completely
- out of mysql.h
-*/
-struct st_mysql_options_extention;
-
-struct st_mysql_options {
- unsigned int connect_timeout, read_timeout, write_timeout;
- unsigned int port, protocol;
- unsigned long client_flag;
- char *host,*user,*password,*unix_socket,*db;
- struct st_dynamic_array *init_commands;
- char *my_cnf_file,*my_cnf_group, *charset_dir, *charset_name;
- char *ssl_key; /* PEM key file */
- char *ssl_cert; /* PEM cert file */
- char *ssl_ca; /* PEM CA file */
- char *ssl_capath; /* PEM directory of CA-s? */
- char *ssl_cipher; /* cipher to use */
- char *shared_memory_base_name;
- unsigned long max_allowed_packet;
- my_bool use_ssl; /* if to use SSL or not */
- my_bool compress,named_pipe;
- my_bool unused1;
- my_bool unused2;
- my_bool unused3;
- my_bool unused4;
- enum mysql_option methods_to_use;
- char *client_ip;
- /* Refuse client connecting to server if it uses old (pre-4.1.1) protocol */
- my_bool secure_auth;
- /* 0 - never report, 1 - always report (default) */
- my_bool report_data_truncation;
-
- /* function pointers for local infile support */
- int (*local_infile_init)(void **, const char *, void *);
- int (*local_infile_read)(void *, char *, unsigned int);
- void (*local_infile_end)(void *);
- int (*local_infile_error)(void *, char *, unsigned int);
- void *local_infile_userdata;
- struct st_mysql_options_extention *extension;
-};
-
-enum mysql_status
-{
- MYSQL_STATUS_READY, MYSQL_STATUS_GET_RESULT, MYSQL_STATUS_USE_RESULT,
- MYSQL_STATUS_STATEMENT_GET_RESULT
-};
-
-enum mysql_protocol_type
-{
- MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
- MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
-};
-
-typedef struct character_set
-{
- unsigned int number; /* character set number */
- unsigned int state; /* character set state */
- const char *csname; /* collation name */
- const char *name; /* character set name */
- const char *comment; /* comment */
- const char *dir; /* character set directory */
- unsigned int mbminlen; /* min. length for multibyte strings */
- unsigned int mbmaxlen; /* max. length for multibyte strings */
-} MY_CHARSET_INFO;
-
-struct st_mysql_methods;
-struct st_mysql_stmt;
-
-typedef struct st_mysql
-{
- NET net; /* Communication parameters */
- unsigned char *connector_fd; /* ConnectorFd for SSL */
- char *host,*user,*passwd,*unix_socket,*server_version,*host_info;
- char *info, *db;
- struct charset_info_st *charset;
- MYSQL_FIELD *fields;
- MEM_ROOT field_alloc;
- my_ulonglong affected_rows;
- my_ulonglong insert_id; /* id if insert on table with NEXTNR */
- my_ulonglong extra_info; /* Not used */
- unsigned long thread_id; /* Id for connection in server */
- unsigned long packet_length;
- unsigned int port;
- unsigned long client_flag,server_capabilities;
- unsigned int protocol_version;
- unsigned int field_count;
- unsigned int server_status;
- unsigned int server_language;
- unsigned int warning_count;
- struct st_mysql_options options;
- enum mysql_status status;
- my_bool free_me; /* If free in mysql_close */
- my_bool reconnect; /* set to 1 if automatic reconnect */
-
- /* session-wide random string */
- char scramble[SCRAMBLE_LENGTH+1];
- my_bool unused1;
- void *unused2, *unused3, *unused4, *unused5;
-
- LIST *stmts; /* list of all statements */
- const struct st_mysql_methods *methods;
- void *thd;
- /*
- Points to boolean flag in MYSQL_RES or MYSQL_STMT. We set this flag
- from mysql_stmt_close if close had to cancel result set of this object.
- */
- my_bool *unbuffered_fetch_owner;
- /* needed for embedded server - no net buffer to store the 'info' */
- char *info_buffer;
- void *extension;
-} MYSQL;
-
-
-typedef struct st_mysql_res {
- my_ulonglong row_count;
- MYSQL_FIELD *fields;
- MYSQL_DATA *data;
- MYSQL_ROWS *data_cursor;
- unsigned long *lengths; /* column lengths of current row */
- MYSQL *handle; /* for unbuffered reads */
- const struct st_mysql_methods *methods;
- MYSQL_ROW row; /* If unbuffered read */
- MYSQL_ROW current_row; /* buffer to current row */
- MEM_ROOT field_alloc;
- unsigned int field_count, current_field;
- my_bool eof; /* Used by mysql_fetch_row */
- /* mysql_stmt_close() had to cancel this result */
- my_bool unbuffered_fetch_cancelled;
- void *extension;
-} MYSQL_RES;
-
-
-#if !defined(MYSQL_SERVER) && !defined(MYSQL_CLIENT)
-#define MYSQL_CLIENT
-#endif
-
-
-typedef struct st_mysql_parameters
-{
- unsigned long *p_max_allowed_packet;
- unsigned long *p_net_buffer_length;
- void *extension;
-} MYSQL_PARAMETERS;
-
-#if !defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
-#define max_allowed_packet (*mysql_get_parameters()->p_max_allowed_packet)
-#define net_buffer_length (*mysql_get_parameters()->p_net_buffer_length)
-#endif
-
-/*
- Set up and bring down the server; to ensure that applications will
- work when linked against either the standard client library or the
- embedded server library, these functions should be called.
-*/
-int STDCALL mysql_server_init(int argc, char **argv, char **groups);
-void STDCALL mysql_server_end(void);
-
-/*
- mysql_server_init/end need to be called when using libmysqld or
- libmysqlclient (exactly, mysql_server_init() is called by mysql_init() so
- you don't need to call it explicitely; but you need to call
- mysql_server_end() to free memory). The names are a bit misleading
- (mysql_SERVER* to be used when using libmysqlCLIENT). So we add more general
- names which suit well whether you're using libmysqld or libmysqlclient. We
- intend to promote these aliases over the mysql_server* ones.
-*/
-#define mysql_library_init mysql_server_init
-#define mysql_library_end mysql_server_end
-
-MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void);
-
-/*
- Set up and bring down a thread; these function should be called
- for each thread in an application which opens at least one MySQL
- connection. All uses of the connection(s) should be between these
- function calls.
-*/
-my_bool STDCALL mysql_thread_init(void);
-void STDCALL mysql_thread_end(void);
-
-/*
- Functions to get information from the MYSQL and MYSQL_RES structures
- Should definitely be used if one uses shared libraries.
-*/
-
-my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res);
-unsigned int STDCALL mysql_num_fields(MYSQL_RES *res);
-my_bool STDCALL mysql_eof(MYSQL_RES *res);
-MYSQL_FIELD *STDCALL mysql_fetch_field_direct(MYSQL_RES *res,
- unsigned int fieldnr);
-MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res);
-MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res);
-MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res);
-
-unsigned int STDCALL mysql_field_count(MYSQL *mysql);
-my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql);
-my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql);
-unsigned int STDCALL mysql_errno(MYSQL *mysql);
-const char * STDCALL mysql_error(MYSQL *mysql);
-const char *STDCALL mysql_sqlstate(MYSQL *mysql);
-unsigned int STDCALL mysql_warning_count(MYSQL *mysql);
-const char * STDCALL mysql_info(MYSQL *mysql);
-unsigned long STDCALL mysql_thread_id(MYSQL *mysql);
-const char * STDCALL mysql_character_set_name(MYSQL *mysql);
-int STDCALL mysql_set_character_set(MYSQL *mysql, const char *csname);
-
-MYSQL * STDCALL mysql_init(MYSQL *mysql);
-my_bool STDCALL mysql_ssl_set(MYSQL *mysql, const char *key,
- const char *cert, const char *ca,
- const char *capath, const char *cipher);
-const char * STDCALL mysql_get_ssl_cipher(MYSQL *mysql);
-my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
- const char *passwd, const char *db);
-MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host,
- const char *user,
- const char *passwd,
- const char *db,
- unsigned int port,
- const char *unix_socket,
- unsigned long clientflag);
-int STDCALL mysql_select_db(MYSQL *mysql, const char *db);
-int STDCALL mysql_query(MYSQL *mysql, const char *q);
-int STDCALL mysql_send_query(MYSQL *mysql, const char *q,
- unsigned long length);
-int STDCALL mysql_real_query(MYSQL *mysql, const char *q,
- unsigned long length);
-MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql);
-MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql);
-
-void STDCALL mysql_get_character_set_info(MYSQL *mysql,
- MY_CHARSET_INFO *charset);
-
-/* local infile support */
-
-#define LOCAL_INFILE_ERROR_LEN 512
-
-void
-mysql_set_local_infile_handler(MYSQL *mysql,
- int (*local_infile_init)(void **, const char *,
- void *),
- int (*local_infile_read)(void *, char *,
- unsigned int),
- void (*local_infile_end)(void *),
- int (*local_infile_error)(void *, char*,
- unsigned int),
- void *);
-
-void
-mysql_set_local_infile_default(MYSQL *mysql);
-
-int STDCALL mysql_shutdown(MYSQL *mysql,
- enum mysql_enum_shutdown_level
- shutdown_level);
-int STDCALL mysql_dump_debug_info(MYSQL *mysql);
-int STDCALL mysql_refresh(MYSQL *mysql,
- unsigned int refresh_options);
-int STDCALL mysql_kill(MYSQL *mysql,unsigned long pid);
-int STDCALL mysql_set_server_option(MYSQL *mysql,
- enum enum_mysql_set_option
- option);
-int STDCALL mysql_ping(MYSQL *mysql);
-const char * STDCALL mysql_stat(MYSQL *mysql);
-const char * STDCALL mysql_get_server_info(MYSQL *mysql);
-const char * STDCALL mysql_get_client_info(void);
-unsigned long STDCALL mysql_get_client_version(void);
-const char * STDCALL mysql_get_host_info(MYSQL *mysql);
-unsigned long STDCALL mysql_get_server_version(MYSQL *mysql);
-unsigned int STDCALL mysql_get_proto_info(MYSQL *mysql);
-MYSQL_RES * STDCALL mysql_list_dbs(MYSQL *mysql,const char *wild);
-MYSQL_RES * STDCALL mysql_list_tables(MYSQL *mysql,const char *wild);
-MYSQL_RES * STDCALL mysql_list_processes(MYSQL *mysql);
-int STDCALL mysql_options(MYSQL *mysql,enum mysql_option option,
- const void *arg);
-void STDCALL mysql_free_result(MYSQL_RES *result);
-void STDCALL mysql_data_seek(MYSQL_RES *result,
- my_ulonglong offset);
-MYSQL_ROW_OFFSET STDCALL mysql_row_seek(MYSQL_RES *result,
- MYSQL_ROW_OFFSET offset);
-MYSQL_FIELD_OFFSET STDCALL mysql_field_seek(MYSQL_RES *result,
- MYSQL_FIELD_OFFSET offset);
-MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
-unsigned long * STDCALL mysql_fetch_lengths(MYSQL_RES *result);
-MYSQL_FIELD * STDCALL mysql_fetch_field(MYSQL_RES *result);
-MYSQL_RES * STDCALL mysql_list_fields(MYSQL *mysql, const char *table,
- const char *wild);
-unsigned long STDCALL mysql_escape_string(char *to,const char *from,
- unsigned long from_length);
-unsigned long STDCALL mysql_hex_string(char *to,const char *from,
- unsigned long from_length);
-unsigned long STDCALL mysql_real_escape_string(MYSQL *mysql,
- char *to,const char *from,
- unsigned long length);
-void STDCALL mysql_debug(const char *debug);
-void STDCALL myodbc_remove_escape(MYSQL *mysql,char *name);
-unsigned int STDCALL mysql_thread_safe(void);
-my_bool STDCALL mysql_embedded(void);
-my_bool STDCALL mysql_read_query_result(MYSQL *mysql);
-
-
-/*
- The following definitions are added for the enhanced
- client-server protocol
-*/
-
-/* statement state */
-enum enum_mysql_stmt_state
-{
- MYSQL_STMT_INIT_DONE= 1, MYSQL_STMT_PREPARE_DONE, MYSQL_STMT_EXECUTE_DONE,
- MYSQL_STMT_FETCH_DONE
-};
-
-
-/*
- This structure is used to define bind information, and
- internally by the client library.
- Public members with their descriptions are listed below
- (conventionally `On input' refers to the binds given to
- mysql_stmt_bind_param, `On output' refers to the binds given
- to mysql_stmt_bind_result):
-
- buffer_type - One of the MYSQL_* types, used to describe
- the host language type of buffer.
- On output: if column type is different from
- buffer_type, column value is automatically converted
- to buffer_type before it is stored in the buffer.
- buffer - On input: points to the buffer with input data.
- On output: points to the buffer capable to store
- output data.
- The type of memory pointed by buffer must correspond
- to buffer_type. See the correspondence table in
- the comment to mysql_stmt_bind_param.
-
- The two above members are mandatory for any kind of bind.
-
- buffer_length - the length of the buffer. You don't have to set
- it for any fixed length buffer: float, double,
- int, etc. It must be set however for variable-length
- types, such as BLOBs or STRINGs.
-
- length - On input: in case when lengths of input values
- are different for each execute, you can set this to
- point at a variable containining value length. This
- way the value length can be different in each execute.
- If length is not NULL, buffer_length is not used.
- Note, length can even point at buffer_length if
- you keep bind structures around while fetching:
- this way you can change buffer_length before
- each execution, everything will work ok.
- On output: if length is set, mysql_stmt_fetch will
- write column length into it.
-
- is_null - On input: points to a boolean variable that should
- be set to TRUE for NULL values.
- This member is useful only if your data may be
- NULL in some but not all cases.
- If your data is never NULL, is_null should be set to 0.
- If your data is always NULL, set buffer_type
- to MYSQL_TYPE_NULL, and is_null will not be used.
-
- is_unsigned - On input: used to signify that values provided for one
- of numeric types are unsigned.
- On output describes signedness of the output buffer.
- If, taking into account is_unsigned flag, column data
- is out of range of the output buffer, data for this column
- is regarded truncated. Note that this has no correspondence
- to the sign of result set column, if you need to find it out
- use mysql_stmt_result_metadata.
- error - where to write a truncation error if it is present.
- possible error value is:
- 0 no truncation
- 1 value is out of range or buffer is too small
-
- Please note that MYSQL_BIND also has internals members.
-*/
-
-typedef struct st_mysql_bind
-{
- unsigned long *length; /* output length pointer */
- my_bool *is_null; /* Pointer to null indicator */
- void *buffer; /* buffer to get/put data */
- /* set this if you want to track data truncations happened during fetch */
- my_bool *error;
- unsigned char *row_ptr; /* for the current data position */
- void (*store_param_func)(NET *net, struct st_mysql_bind *param);
- void (*fetch_result)(struct st_mysql_bind *, MYSQL_FIELD *,
- unsigned char **row);
- void (*skip_result)(struct st_mysql_bind *, MYSQL_FIELD *,
- unsigned char **row);
- /* output buffer length, must be set when fetching str/binary */
- unsigned long buffer_length;
- unsigned long offset; /* offset position for char/binary fetch */
- unsigned long length_value; /* Used if length is 0 */
- unsigned int param_number; /* For null count and error messages */
- unsigned int pack_length; /* Internal length for packed data */
- enum enum_field_types buffer_type; /* buffer type */
- my_bool error_value; /* used if error is 0 */
- my_bool is_unsigned; /* set if integer type is unsigned */
- my_bool long_data_used; /* If used with mysql_send_long_data */
- my_bool is_null_value; /* Used if is_null is 0 */
- void *extension;
-} MYSQL_BIND;
-
-
-/* statement handler */
-typedef struct st_mysql_stmt
-{
- MEM_ROOT mem_root; /* root allocations */
- LIST list; /* list to keep track of all stmts */
- MYSQL *mysql; /* connection handle */
- MYSQL_BIND *params; /* input parameters */
- MYSQL_BIND *bind; /* output parameters */
- MYSQL_FIELD *fields; /* result set metadata */
- MYSQL_DATA result; /* cached result set */
- MYSQL_ROWS *data_cursor; /* current row in cached result */
- /*
- mysql_stmt_fetch() calls this function to fetch one row (it's different
- for buffered, unbuffered and cursor fetch).
- */
- int (*read_row_func)(struct st_mysql_stmt *stmt,
- unsigned char **row);
- /* copy of mysql->affected_rows after statement execution */
- my_ulonglong affected_rows;
- my_ulonglong insert_id; /* copy of mysql->insert_id */
- unsigned long stmt_id; /* Id for prepared statement */
- unsigned long flags; /* i.e. type of cursor to open */
- unsigned long prefetch_rows; /* number of rows per one COM_FETCH */
- /*
- Copied from mysql->server_status after execute/fetch to know
- server-side cursor status for this statement.
- */
- unsigned int server_status;
- unsigned int last_errno; /* error code */
- unsigned int param_count; /* input parameter count */
- unsigned int field_count; /* number of columns in result set */
- enum enum_mysql_stmt_state state; /* statement state */
- char last_error[MYSQL_ERRMSG_SIZE]; /* error message */
- char sqlstate[SQLSTATE_LENGTH+1];
- /* Types of input parameters should be sent to server */
- my_bool send_types_to_server;
- my_bool bind_param_done; /* input buffers were supplied */
- unsigned char bind_result_done; /* output buffers were supplied */
- /* mysql_stmt_close() had to cancel this result */
- my_bool unbuffered_fetch_cancelled;
- /*
- Is set to true if we need to calculate field->max_length for
- metadata fields when doing mysql_stmt_store_result.
- */
- my_bool update_max_length;
- void *extension;
-} MYSQL_STMT;
-
-enum enum_stmt_attr_type
-{
- /*
- When doing mysql_stmt_store_result calculate max_length attribute
- of statement metadata. This is to be consistent with the old API,
- where this was done automatically.
- In the new API we do that only by request because it slows down
- mysql_stmt_store_result sufficiently.
- */
- STMT_ATTR_UPDATE_MAX_LENGTH,
- /*
- unsigned long with combination of cursor flags (read only, for update,
- etc)
- */
- STMT_ATTR_CURSOR_TYPE,
- /*
- Amount of rows to retrieve from server per one fetch if using cursors.
- Accepts unsigned long attribute in the range 1 - ulong_max
- */
- STMT_ATTR_PREFETCH_ROWS
-};
-
-
-MYSQL_STMT * STDCALL mysql_stmt_init(MYSQL *mysql);
-int STDCALL mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query,
- unsigned long length);
-int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt);
-int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt);
-int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *bind_arg,
- unsigned int column,
- unsigned long offset);
-int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt);
-unsigned long STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt);
-my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt,
- enum enum_stmt_attr_type attr_type,
- const void *attr);
-my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
- enum enum_stmt_attr_type attr_type,
- void *attr);
-my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT * stmt, MYSQL_BIND * bnd);
-my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT * stmt, MYSQL_BIND * bnd);
-my_bool STDCALL mysql_stmt_close(MYSQL_STMT * stmt);
-my_bool STDCALL mysql_stmt_reset(MYSQL_STMT * stmt);
-my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt);
-my_bool STDCALL mysql_stmt_send_long_data(MYSQL_STMT *stmt,
- unsigned int param_number,
- const char *data,
- unsigned long length);
-MYSQL_RES *STDCALL mysql_stmt_result_metadata(MYSQL_STMT *stmt);
-MYSQL_RES *STDCALL mysql_stmt_param_metadata(MYSQL_STMT *stmt);
-unsigned int STDCALL mysql_stmt_errno(MYSQL_STMT * stmt);
-const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt);
-const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt);
-MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_seek(MYSQL_STMT *stmt,
- MYSQL_ROW_OFFSET offset);
-MYSQL_ROW_OFFSET STDCALL mysql_stmt_row_tell(MYSQL_STMT *stmt);
-void STDCALL mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong offset);
-my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt);
-my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt);
-my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt);
-unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt);
-
-my_bool STDCALL mysql_commit(MYSQL * mysql);
-my_bool STDCALL mysql_rollback(MYSQL * mysql);
-my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode);
-my_bool STDCALL mysql_more_results(MYSQL *mysql);
-int STDCALL mysql_next_result(MYSQL *mysql);
-int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt);
-void STDCALL mysql_close(MYSQL *sock);
-
-
-/* status return codes */
-#define MYSQL_NO_DATA 100
-#define MYSQL_DATA_TRUNCATED 101
-
-#define mysql_reload(mysql) mysql_refresh((mysql),REFRESH_GRANT)
-
-#ifdef USE_OLD_FUNCTIONS
-MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host,
- const char *user, const char *passwd);
-int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);
-int STDCALL mysql_drop_db(MYSQL *mysql, const char *DB);
-#endif
-#define HAVE_MYSQL_REAL_CONNECT
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _mysql_h */
diff --git a/dep/mysqllite/include/mysql/client_plugin.h b/dep/mysqllite/include/mysql/client_plugin.h
deleted file mode 100644
index cc3f468040f..00000000000
--- a/dep/mysqllite/include/mysql/client_plugin.h
+++ /dev/null
@@ -1,163 +0,0 @@
-#ifndef MYSQL_CLIENT_PLUGIN_INCLUDED
-/* Copyright (C) 2010 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
-
- MySQL Client Plugin API
-
- This file defines the API for plugins that work on the client side
-*/
-#define MYSQL_CLIENT_PLUGIN_INCLUDED
-
-#ifndef MYSQL_ABI_CHECK
-#include <stdarg.h>
-#include <stdlib.h>
-#endif
-
-/* known plugin types */
-#define MYSQL_CLIENT_reserved1 0
-#define MYSQL_CLIENT_reserved2 1
-#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN 2
-
-#define MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION 0x0100
-
-#define MYSQL_CLIENT_MAX_PLUGINS 3
-
-#define mysql_declare_client_plugin(X) \
- MYSQL_PLUGIN_EXPORT struct st_mysql_client_plugin_ ## X \
- _mysql_client_plugin_declaration_ = { \
- MYSQL_CLIENT_ ## X ## _PLUGIN, \
- MYSQL_CLIENT_ ## X ## _PLUGIN_INTERFACE_VERSION,
-#define mysql_end_client_plugin }
-
-/* generic plugin header structure */
-#define MYSQL_CLIENT_PLUGIN_HEADER \
- int type; \
- unsigned int interface_version; \
- const char *name; \
- const char *author; \
- const char *desc; \
- unsigned int version[3]; \
- const char *license; \
- void *mysql_api; \
- int (*init)(char *, size_t, int, va_list); \
- int (*deinit)(); \
- int (*options)(const char *option, const void *);
-
-struct st_mysql_client_plugin
-{
- MYSQL_CLIENT_PLUGIN_HEADER
-};
-
-struct st_mysql;
-
-/******** authentication plugin specific declarations *********/
-#include <mysql/plugin_auth_common.h>
-
-struct st_mysql_client_plugin_AUTHENTICATION
-{
- MYSQL_CLIENT_PLUGIN_HEADER
- int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, struct st_mysql *mysql);
-};
-
-/******** using plugins ************/
-
-/**
- loads a plugin and initializes it
-
- @param mysql MYSQL structure.
- @param name a name of the plugin to load
- @param type type of plugin that should be loaded, -1 to disable type check
- @param argc number of arguments to pass to the plugin initialization
- function
- @param ... arguments for the plugin initialization function
-
- @retval
- a pointer to the loaded plugin, or NULL in case of a failure
-*/
-struct st_mysql_client_plugin *
-mysql_load_plugin(struct st_mysql *mysql, const char *name, int type,
- int argc, ...);
-
-/**
- loads a plugin and initializes it, taking va_list as an argument
-
- This is the same as mysql_load_plugin, but take va_list instead of
- a list of arguments.
-
- @param mysql MYSQL structure.
- @param name a name of the plugin to load
- @param type type of plugin that should be loaded, -1 to disable type check
- @param argc number of arguments to pass to the plugin initialization
- function
- @param args arguments for the plugin initialization function
-
- @retval
- a pointer to the loaded plugin, or NULL in case of a failure
-*/
-struct st_mysql_client_plugin *
-mysql_load_plugin_v(struct st_mysql *mysql, const char *name, int type,
- int argc, va_list args);
-
-/**
- finds an already loaded plugin by name, or loads it, if necessary
-
- @param mysql MYSQL structure.
- @param name a name of the plugin to load
- @param type type of plugin that should be loaded
-
- @retval
- a pointer to the plugin, or NULL in case of a failure
-*/
-struct st_mysql_client_plugin *
-mysql_client_find_plugin(struct st_mysql *mysql, const char *name, int type);
-
-/**
- adds a plugin structure to the list of loaded plugins
-
- This is useful if an application has the necessary functionality
- (for example, a special load data handler) statically linked into
- the application binary. It can use this function to register the plugin
- directly, avoiding the need to factor it out into a shared object.
-
- @param mysql MYSQL structure. It is only used for error reporting
- @param plugin an st_mysql_client_plugin structure to register
-
- @retval
- a pointer to the plugin, or NULL in case of a failure
-*/
-struct st_mysql_client_plugin *
-mysql_client_register_plugin(struct st_mysql *mysql,
- struct st_mysql_client_plugin *plugin);
-
-/**
- set plugin options
-
- Can be used to set extra options and affect behavior for a plugin.
- This function may be called multiple times to set several options
-
- @param plugin an st_mysql_client_plugin structure
- @param option a string which specifies the option to set
- @param value value for the option.
-
- @retval 0 on success, 1 in case of failure
-**/
-int STDCALL mysql_plugin_options(struct st_mysql_client_plugin *plugin,
- const char *option,
- const void *value);
-#endif
-
diff --git a/dep/mysqllite/include/mysql/innodb_priv.h b/dep/mysqllite/include/mysql/innodb_priv.h
deleted file mode 100644
index 5406c292b18..00000000000
--- a/dep/mysqllite/include/mysql/innodb_priv.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef INNODB_PRIV_INCLUDED
-#define INNODB_PRIV_INCLUDED
-
-/** @file Declaring server-internal functions that are used by InnoDB. */
-
-#include <sql_priv.h>
-
-class THD;
-
-int get_quote_char_for_identifier(THD *thd, const char *name, uint length);
-bool schema_table_store_record(THD *thd, TABLE *table);
-void localtime_to_TIME(MYSQL_TIME *to, struct tm *from);
-bool check_global_access(THD *thd, ulong want_access);
-uint strconvert(CHARSET_INFO *from_cs, const char *from,
- CHARSET_INFO *to_cs, char *to, uint to_length,
- uint *errors);
-void sql_print_error(const char *format, ...);
-
-
-
-#endif /* INNODB_PRIV_INCLUDED */
diff --git a/dep/mysqllite/include/mysql/plugin.h b/dep/mysqllite/include/mysql/plugin.h
deleted file mode 100644
index 7ec68ff5040..00000000000
--- a/dep/mysqllite/include/mysql/plugin.h
+++ /dev/null
@@ -1,633 +0,0 @@
-/* Copyright (C) 2005 MySQL AB, 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_plugin_h
-#define _my_plugin_h
-
-/*
- On Windows, exports from DLL need to be declared
- Also, plugin needs to be declared as extern "C" because MSVC
- unlike other compilers, uses C++ mangling for variables not only
- for functions.
-*/
-#if defined(_MSC_VER)
-#if defined(MYSQL_DYNAMIC_PLUGIN)
- #ifdef __cplusplus
- #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
- #else
- #define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
- #endif
-#else /* MYSQL_DYNAMIC_PLUGIN */
- #ifdef __cplusplus
- #define MYSQL_PLUGIN_EXPORT extern "C"
- #else
- #define MYSQL_PLUGIN_EXPORT
- #endif
-#endif /*MYSQL_DYNAMIC_PLUGIN */
-#else /*_MSC_VER */
-#define MYSQL_PLUGIN_EXPORT
-#endif
-
-#ifdef __cplusplus
-class THD;
-class Item;
-#define MYSQL_THD THD*
-#else
-#define MYSQL_THD void*
-#endif
-
-#include <mysql/services.h>
-
-#define MYSQL_XIDDATASIZE 128
-/**
- struct st_mysql_xid is binary compatible with the XID structure as
- in the X/Open CAE Specification, Distributed Transaction Processing:
- The XA Specification, X/Open Company Ltd., 1991.
- http://www.opengroup.org/bookstore/catalog/c193.htm
-
- @see XID in sql/handler.h
-*/
-struct st_mysql_xid {
- long formatID;
- long gtrid_length;
- long bqual_length;
- char data[MYSQL_XIDDATASIZE]; /* Not \0-terminated */
-};
-typedef struct st_mysql_xid MYSQL_XID;
-
-/*************************************************************************
- Plugin API. Common for all plugin types.
-*/
-
-#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0102
-
-/*
- The allowable types of plugins
-*/
-#define MYSQL_UDF_PLUGIN 0 /* User-defined function */
-#define MYSQL_STORAGE_ENGINE_PLUGIN 1 /* Storage Engine */
-#define MYSQL_FTPARSER_PLUGIN 2 /* Full-text parser plugin */
-#define MYSQL_DAEMON_PLUGIN 3 /* The daemon/raw plugin type */
-#define MYSQL_INFORMATION_SCHEMA_PLUGIN 4 /* The I_S plugin type */
-#define MYSQL_AUDIT_PLUGIN 5 /* The Audit plugin type */
-#define MYSQL_REPLICATION_PLUGIN 6 /* The replication plugin type */
-#define MYSQL_AUTHENTICATION_PLUGIN 7 /* The authentication plugin type */
-#define MYSQL_MAX_PLUGIN_TYPE_NUM 8 /* The number of plugin types */
-
-/* We use the following strings to define licenses for plugins */
-#define PLUGIN_LICENSE_PROPRIETARY 0
-#define PLUGIN_LICENSE_GPL 1
-#define PLUGIN_LICENSE_BSD 2
-
-#define PLUGIN_LICENSE_PROPRIETARY_STRING "PROPRIETARY"
-#define PLUGIN_LICENSE_GPL_STRING "GPL"
-#define PLUGIN_LICENSE_BSD_STRING "BSD"
-
-/*
- Macros for beginning and ending plugin declarations. Between
- mysql_declare_plugin and mysql_declare_plugin_end there should
- be a st_mysql_plugin struct for each plugin to be declared.
-*/
-
-
-#ifndef MYSQL_DYNAMIC_PLUGIN
-#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
-MYSQL_PLUGIN_EXPORT int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
-MYSQL_PLUGIN_EXPORT int PSIZE= sizeof(struct st_mysql_plugin); \
-MYSQL_PLUGIN_EXPORT struct st_mysql_plugin DECLS[]= {
-#else
-#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
-MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
-MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
-MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= {
-#endif
-
-#define mysql_declare_plugin(NAME) \
-__MYSQL_DECLARE_PLUGIN(NAME, \
- builtin_ ## NAME ## _plugin_interface_version, \
- builtin_ ## NAME ## _sizeof_struct_st_plugin, \
- builtin_ ## NAME ## _plugin)
-
-#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0}}
-
-/*
- declarations for SHOW STATUS support in plugins
-*/
-enum enum_mysql_show_type
-{
- SHOW_UNDEF, SHOW_BOOL, SHOW_INT, SHOW_LONG,
- SHOW_LONGLONG, SHOW_CHAR, SHOW_CHAR_PTR,
- SHOW_ARRAY, SHOW_FUNC, SHOW_DOUBLE,
- SHOW_always_last
-};
-
-struct st_mysql_show_var {
- const char *name;
- char *value;
- enum enum_mysql_show_type type;
-};
-
-#define SHOW_VAR_FUNC_BUFF_SIZE 1024
-typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, char *);
-
-
-/*
- declarations for server variables and command line options
-*/
-
-
-#define PLUGIN_VAR_BOOL 0x0001
-#define PLUGIN_VAR_INT 0x0002
-#define PLUGIN_VAR_LONG 0x0003
-#define PLUGIN_VAR_LONGLONG 0x0004
-#define PLUGIN_VAR_STR 0x0005
-#define PLUGIN_VAR_ENUM 0x0006
-#define PLUGIN_VAR_SET 0x0007
-#define PLUGIN_VAR_UNSIGNED 0x0080
-#define PLUGIN_VAR_THDLOCAL 0x0100 /* Variable is per-connection */
-#define PLUGIN_VAR_READONLY 0x0200 /* Server variable is read only */
-#define PLUGIN_VAR_NOSYSVAR 0x0400 /* Not a server variable */
-#define PLUGIN_VAR_NOCMDOPT 0x0800 /* Not a command line option */
-#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */
-#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */
-#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */
-#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */
-
-struct st_mysql_sys_var;
-struct st_mysql_value;
-
-/*
- SYNOPSIS
- (*mysql_var_check_func)()
- thd thread handle
- var dynamic variable being altered
- save pointer to temporary storage
- value user provided value
- RETURN
- 0 user provided value is OK and the update func may be called.
- any other value indicates error.
-
- This function should parse the user provided value and store in the
- provided temporary storage any data as required by the update func.
- There is sufficient space in the temporary storage to store a double.
- Note that the update func may not be called if any other error occurs
- so any memory allocated should be thread-local so that it may be freed
- automatically at the end of the statement.
-*/
-
-typedef int (*mysql_var_check_func)(MYSQL_THD thd,
- struct st_mysql_sys_var *var,
- void *save, struct st_mysql_value *value);
-
-/*
- SYNOPSIS
- (*mysql_var_update_func)()
- thd thread handle
- var dynamic variable being altered
- var_ptr pointer to dynamic variable
- save pointer to temporary storage
- RETURN
- NONE
-
- This function should use the validated value stored in the temporary store
- and persist it in the provided pointer to the dynamic variable.
- For example, strings may require memory to be allocated.
-*/
-typedef void (*mysql_var_update_func)(MYSQL_THD thd,
- struct st_mysql_sys_var *var,
- void *var_ptr, const void *save);
-
-
-/* the following declarations are for internal use only */
-
-
-#define PLUGIN_VAR_MASK \
- (PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \
- PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \
- PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC)
-
-#define MYSQL_PLUGIN_VAR_HEADER \
- int flags; \
- const char *name; \
- const char *comment; \
- mysql_var_check_func check; \
- mysql_var_update_func update
-
-#define MYSQL_SYSVAR_NAME(name) mysql_sysvar_ ## name
-#define MYSQL_SYSVAR(name) \
- ((struct st_mysql_sys_var *)&(MYSQL_SYSVAR_NAME(name)))
-
-/*
- for global variables, the value pointer is the first
- element after the header, the default value is the second.
- for thread variables, the value offset is the first
- element after the header, the default value is the second.
-*/
-
-
-#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; \
- const type def_val; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; type def_val; \
- type min_val; type max_val; \
- type blk_sz; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; type def_val; \
- TYPELIB *typelib; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_THDVAR_FUNC(type) \
- type *(*resolve)(MYSQL_THD thd, int offset)
-
-#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- const type def_val; \
- DECLARE_THDVAR_FUNC(type); \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- type def_val; type min_val; \
- type max_val; type blk_sz; \
- DECLARE_THDVAR_FUNC(type); \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- type def_val; \
- DECLARE_THDVAR_FUNC(type); \
- TYPELIB *typelib; \
-} MYSQL_SYSVAR_NAME(name)
-
-
-/*
- the following declarations are for use by plugin implementors
-*/
-
-#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \
-DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \
- PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def}
-
-#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \
-DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \
- PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def}
-
-#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \
- PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \
- PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, long long) = { \
- PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
- PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, typelib }
-
-#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long long) = { \
- PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, typelib }
-
-#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \
-DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \
- PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL}
-
-#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \
-DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \
- PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL}
-
-#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \
- PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL, typelib }
-
-#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long long) = { \
- PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL, typelib }
-
-/* accessor macros */
-
-#define SYSVAR(name) \
- (*(MYSQL_SYSVAR_NAME(name).value))
-
-/* when thd == null, result points to global value */
-#define THDVAR(thd, name) \
- (*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset)))
-
-
-/*
- Plugin description structure.
-*/
-
-struct st_mysql_plugin
-{
- int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */
- void *info; /* pointer to type-specific plugin descriptor */
- const char *name; /* plugin name */
- const char *author; /* plugin author (for I_S.PLUGINS) */
- const char *descr; /* general descriptive text (for I_S.PLUGINS) */
- int license; /* the plugin license (PLUGIN_LICENSE_XXX) */
- int (*init)(void *); /* the function to invoke when plugin is loaded */
- int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
- unsigned int version; /* plugin version (for I_S.PLUGINS) */
- struct st_mysql_show_var *status_vars;
- struct st_mysql_sys_var **system_vars;
- void * __reserved1; /* reserved for dependency checking */
-};
-
-/*************************************************************************
- API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
-*/
-#include "plugin_ftparser.h"
-
-/*************************************************************************
- API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_daemon
-{
- int interface_version;
-};
-
-
-/*************************************************************************
- API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_information_schema
-{
- int interface_version;
-};
-
-
-/*************************************************************************
- API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- The real API is in the sql/handler.h
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_storage_engine
-{
- int interface_version;
-};
-
-struct handlerton;
-
-
-/*
- API for Replication plugin. (MYSQL_REPLICATION_PLUGIN)
-*/
- #define MYSQL_REPLICATION_INTERFACE_VERSION 0x0100
-
- /**
- Replication plugin descriptor
- */
- struct Mysql_replication {
- int interface_version;
- };
-
-/*************************************************************************
- st_mysql_value struct for reading values from mysqld.
- Used by server variables framework to parse user-provided values.
- Will be used for arguments when implementing UDFs.
-
- Note that val_str() returns a string in temporary memory
- that will be freed at the end of statement. Copy the string
- if you need it to persist.
-*/
-
-#define MYSQL_VALUE_TYPE_STRING 0
-#define MYSQL_VALUE_TYPE_REAL 1
-#define MYSQL_VALUE_TYPE_INT 2
-
-struct st_mysql_value
-{
- int (*value_type)(struct st_mysql_value *);
- const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length);
- int (*val_real)(struct st_mysql_value *, double *realbuf);
- int (*val_int)(struct st_mysql_value *, long long *intbuf);
- int (*is_unsigned)(struct st_mysql_value *);
-};
-
-
-/*************************************************************************
- Miscellaneous functions for plugin implementors
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int thd_in_lock_tables(const MYSQL_THD thd);
-int thd_tablespace_op(const MYSQL_THD thd);
-long long thd_test_options(const MYSQL_THD thd, long long test_options);
-int thd_sql_command(const MYSQL_THD thd);
-const char *thd_proc_info(MYSQL_THD thd, const char *info);
-void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
-void thd_storage_lock_wait(MYSQL_THD thd, long long value);
-int thd_tx_isolation(const MYSQL_THD thd);
-char *thd_security_context(MYSQL_THD thd, char *buffer, unsigned int length,
- unsigned int max_query_len);
-/* Increments the row counter, see THD::row_count */
-void thd_inc_row_count(MYSQL_THD thd);
-
-/**
- Create a temporary file.
-
- @details
- The temporary file is created in a location specified by the mysql
- server configuration (--tmpdir option). The caller does not need to
- delete the file, it will be deleted automatically.
-
- @param prefix prefix for temporary file name
- @retval -1 error
- @retval >= 0 a file handle that can be passed to dup or my_close
-*/
-int mysql_tmpfile(const char *prefix);
-
-/**
- Check the killed state of a connection
-
- @details
- In MySQL support for the KILL statement is cooperative. The KILL
- statement only sets a "killed" flag. This function returns the value
- of that flag. A thread should check it often, especially inside
- time-consuming loops, and gracefully abort the operation if it is
- non-zero.
-
- @param thd user thread connection handle
- @retval 0 the connection is active
- @retval 1 the connection has been killed
-*/
-int thd_killed(const MYSQL_THD thd);
-
-
-/**
- Return the thread id of a user thread
-
- @param thd user thread connection handle
- @return thread id
-*/
-unsigned long thd_get_thread_id(const MYSQL_THD thd);
-
-/**
- Get the XID for this connection's transaction
-
- @param thd user thread connection handle
- @param xid location where identifier is stored
-*/
-void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid);
-
-/**
- Invalidate the query cache for a given table.
-
- @param thd user thread connection handle
- @param key databasename\\0tablename\\0
- @param key_length length of key in bytes, including the NUL bytes
- @param using_trx flag: TRUE if using transactions, FALSE otherwise
-*/
-void mysql_query_cache_invalidate4(MYSQL_THD thd,
- const char *key, unsigned int key_length,
- int using_trx);
-
-
-/**
- Provide a handler data getter to simplify coding
-*/
-void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
-
-
-/**
- Provide a handler data setter to simplify coding
-
- @details
- Set ha_data pointer (storage engine per-connection information).
-
- To avoid unclean deactivation (uninstall) of storage engine plugin
- in the middle of transaction, additional storage engine plugin
- lock is acquired.
-
- If ha_data is not null and storage engine plugin was not locked
- by thd_set_ha_data() in this connection before, storage engine
- plugin gets locked.
-
- If ha_data is null and storage engine plugin was locked by
- thd_set_ha_data() in this connection before, storage engine
- plugin lock gets released.
-
- If handlerton::close_connection() didn't reset ha_data, server does
- it immediately after calling handlerton::close_connection().
-*/
-void thd_set_ha_data(MYSQL_THD thd, const struct handlerton *hton,
- const void *ha_data);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/plugin_audit.h b/dep/mysqllite/include/mysql/plugin_audit.h
deleted file mode 100644
index 8811c832949..00000000000
--- a/dep/mysqllite/include/mysql/plugin_audit.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2007 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_audit_h
-#define _my_audit_h
-
-/*************************************************************************
- API for Audit plugin. (MYSQL_AUDIT_PLUGIN)
-*/
-
-#include "plugin.h"
-
-#define MYSQL_AUDIT_CLASS_MASK_SIZE 1
-
-#define MYSQL_AUDIT_INTERFACE_VERSION 0x0200
-
-/*
- The first word in every event class struct indicates the specific
- class of the event.
-*/
-struct mysql_event
-{
- unsigned int event_class;
-};
-
-
-/*************************************************************************
- AUDIT CLASS : GENERAL
-
- LOG events occurs before emitting to the general query log.
- ERROR events occur before transmitting errors to the user.
- RESULT events occur after transmitting a resultset to the user.
- STATUS events occur after transmitting a resultset or errors
- to the user.
-*/
-
-#define MYSQL_AUDIT_GENERAL_CLASS 0
-#define MYSQL_AUDIT_GENERAL_CLASSMASK (1 << MYSQL_AUDIT_GENERAL_CLASS)
-#define MYSQL_AUDIT_GENERAL_LOG 0
-#define MYSQL_AUDIT_GENERAL_ERROR 1
-#define MYSQL_AUDIT_GENERAL_RESULT 2
-#define MYSQL_AUDIT_GENERAL_STATUS 3
-
-struct mysql_event_general
-{
- unsigned int event_class;
- unsigned int event_subclass;
- int general_error_code;
- unsigned long general_thread_id;
- const char *general_user;
- unsigned int general_user_length;
- const char *general_command;
- unsigned int general_command_length;
- const char *general_query;
- unsigned int general_query_length;
- struct charset_info_st *general_charset;
- unsigned long long general_time;
- unsigned long long general_rows;
-};
-
-
-/*
- AUDIT CLASS : CONNECTION
-
- CONNECT occurs after authentication phase is completed.
- DISCONNECT occurs after connection is terminated.
- CHANGE_USER occurs after COM_CHANGE_USER RPC is completed.
-*/
-
-#define MYSQL_AUDIT_CONNECTION_CLASS 1
-#define MYSQL_AUDIT_CONNECTION_CLASSMASK (1 << MYSQL_AUDIT_CONNECTION_CLASS)
-#define MYSQL_AUDIT_CONNECTION_CONNECT 0
-#define MYSQL_AUDIT_CONNECTION_DISCONNECT 1
-#define MYSQL_AUDIT_CONNECTION_CHANGE_USER 2
-
-struct mysql_event_connection
-{
- unsigned int event_class;
- unsigned int event_subclass;
- int status;
- unsigned long thread_id;
- const char *user;
- unsigned int user_length;
- const char *priv_user;
- unsigned int priv_user_length;
- const char *external_user;
- unsigned int external_user_length;
- const char *proxy_user;
- unsigned int proxy_user_length;
- const char *host;
- unsigned int host_length;
- const char *ip;
- unsigned int ip_length;
- const char *database;
- unsigned int database_length;
-};
-
-
-/*************************************************************************
- Here we define the descriptor structure, that is referred from
- st_mysql_plugin.
-
- release_thd() event occurs when the event class consumer is to be
- disassociated from the specified THD. This would typically occur
- before some operation which may require sleeping - such as when
- waiting for the next query from the client.
-
- event_notify() is invoked whenever an event occurs which is of any
- class for which the plugin has interest. The first word of the
- mysql_event argument indicates the specific event class and the
- remainder of the structure is as required for that class.
-
- class_mask is an array of bits used to indicate what event classes
- that this plugin wants to receive.
-*/
-
-struct st_mysql_audit
-{
- int interface_version;
- void (*release_thd)(MYSQL_THD);
- void (*event_notify)(MYSQL_THD, const struct mysql_event *);
- unsigned long class_mask[MYSQL_AUDIT_CLASS_MASK_SIZE];
-};
-
-
-#endif
diff --git a/dep/mysqllite/include/mysql/plugin_auth.h b/dep/mysqllite/include/mysql/plugin_auth.h
deleted file mode 100644
index 420eb3bb80f..00000000000
--- a/dep/mysqllite/include/mysql/plugin_auth.h
+++ /dev/null
@@ -1,125 +0,0 @@
-#ifndef MYSQL_PLUGIN_AUTH_INCLUDED
-/* Copyright (C) 2010 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
-
- Authentication Plugin API.
-
- This file defines the API for server authentication plugins.
-*/
-
-#define MYSQL_PLUGIN_AUTH_INCLUDED
-
-#include <mysql/plugin.h>
-
-#define MYSQL_AUTHENTICATION_INTERFACE_VERSION 0x0100
-
-#include <mysql/plugin_auth_common.h>
-
-/* defines for MYSQL_SERVER_AUTH_INFO.password_used */
-
-#define PASSWORD_USED_NO 0
-#define PASSWORD_USED_YES 1
-#define PASSWORD_USED_NO_MENTION 2
-
-
-/**
- Provides server plugin access to authentication information
-*/
-typedef struct st_mysql_server_auth_info
-{
- /**
- User name as sent by the client and shown in USER().
- NULL if the client packet with the user name was not received yet.
- */
- char *user_name;
-
- /**
- Length of user_name
- */
- unsigned int user_name_length;
-
- /**
- A corresponding column value from the mysql.user table for the
- matching account name
- */
- const char *auth_string;
-
- /**
- Length of auth_string
- */
- unsigned long auth_string_length;
-
- /**
- Matching account name as found in the mysql.user table.
- A plugin can override it with another name that will be
- used by MySQL for authorization, and shown in CURRENT_USER()
- */
- char authenticated_as[MYSQL_USERNAME_LENGTH+1];
-
-
- /**
- The unique user name that was used by the plugin to authenticate.
- Plugins should put null-terminated UTF-8 here.
- Available through the @@EXTERNAL_USER variable.
- */
- char external_user[512];
-
- /**
- This only affects the "Authentication failed. Password used: %s"
- error message. has the following values :
- 0 : %s will be NO.
- 1 : %s will be YES.
- 2 : there will be no %s.
- Set it as appropriate or ignore at will.
- */
- int password_used;
-
- /**
- Set to the name of the connected client host, if it can be resolved,
- or to its IP address otherwise.
- */
- const char *host_or_ip;
-
- /**
- Length of host_or_ip
- */
- unsigned int host_or_ip_length;
-
-} MYSQL_SERVER_AUTH_INFO;
-
-/**
- Server authentication plugin descriptor
-*/
-struct st_mysql_auth
-{
- int interface_version; /** version plugin uses */
- /**
- A plugin that a client must use for authentication with this server
- plugin. Can be NULL to mean "any plugin".
- */
- const char *client_auth_plugin;
- /**
- Function provided by the plugin which should perform authentication (using
- the vio functions if necessary) and return 0 if successful. The plugin can
- also fill the info.authenticated_as field if a different username should be
- used for authorization.
- */
- int (*authenticate_user)(MYSQL_PLUGIN_VIO *vio, MYSQL_SERVER_AUTH_INFO *info);
-};
-#endif
-
diff --git a/dep/mysqllite/include/mysql/plugin_auth_common.h b/dep/mysqllite/include/mysql/plugin_auth_common.h
deleted file mode 100644
index 4ad92d01bfb..00000000000
--- a/dep/mysqllite/include/mysql/plugin_auth_common.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef MYSQL_PLUGIN_AUTH_COMMON_INCLUDED
-/* Copyright (C) 2010 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
-
- This file defines constants and data structures that are the same for
- both client- and server-side authentication plugins.
-*/
-#define MYSQL_PLUGIN_AUTH_COMMON_INCLUDED
-
-/** the max allowed length for a user name */
-#define MYSQL_USERNAME_LENGTH 48
-
-/**
- return values of the plugin authenticate_user() method.
-*/
-
-/**
- Authentication failed. Additionally, all other CR_xxx values
- (libmysql error code) can be used too.
-
- The client plugin may set the error code and the error message directly
- in the MYSQL structure and return CR_ERROR. If a CR_xxx specific error
- code was returned, an error message in the MYSQL structure will be
- overwritten. If CR_ERROR is returned without setting the error in MYSQL,
- CR_UNKNOWN_ERROR will be user.
-*/
-#define CR_ERROR 0
-/**
- Authentication (client part) was successful. It does not mean that the
- authentication as a whole was successful, usually it only means
- that the client was able to send the user name and the password to the
- server. If CR_OK is returned, the libmysql reads the next packet expecting
- it to be one of OK, ERROR, or CHANGE_PLUGIN packets.
-*/
-#define CR_OK -1
-/**
- Authentication was successful.
- It means that the client has done its part successfully and also that
- a plugin has read the last packet (one of OK, ERROR, CHANGE_PLUGIN).
- In this case, libmysql will not read a packet from the server,
- but it will use the data at mysql->net.read_pos.
-
- A plugin may return this value if the number of roundtrips in the
- authentication protocol is not known in advance, and the client plugin
- needs to read one packet more to determine if the authentication is finished
- or not.
-*/
-#define CR_OK_HANDSHAKE_COMPLETE -2
-
-typedef struct st_plugin_vio_info
-{
- enum { MYSQL_VIO_INVALID, MYSQL_VIO_TCP, MYSQL_VIO_SOCKET,
- MYSQL_VIO_PIPE, MYSQL_VIO_MEMORY } protocol;
- int socket; /**< it's set, if the protocol is SOCKET or TCP */
-#ifdef _WIN32
- HANDLE handle; /**< it's set, if the protocol is PIPE or MEMORY */
-#endif
-} MYSQL_PLUGIN_VIO_INFO;
-
-/**
- Provides plugin access to communication channel
-*/
-typedef struct st_plugin_vio
-{
- /**
- Plugin provides a pointer reference and this function sets it to the
- contents of any incoming packet. Returns the packet length, or -1 if
- the plugin should terminate.
- */
- int (*read_packet)(struct st_plugin_vio *vio,
- unsigned char **buf);
-
- /**
- Plugin provides a buffer with data and the length and this
- function sends it as a packet. Returns 0 on success, 1 on failure.
- */
- int (*write_packet)(struct st_plugin_vio *vio,
- const unsigned char *packet,
- int packet_len);
-
- /**
- Fills in a st_plugin_vio_info structure, providing the information
- about the connection.
- */
- void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info);
-
-} MYSQL_PLUGIN_VIO;
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/plugin_ftparser.h b/dep/mysqllite/include/mysql/plugin_ftparser.h
deleted file mode 100644
index 7f9bde3a6a0..00000000000
--- a/dep/mysqllite/include/mysql/plugin_ftparser.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright (C) 2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_plugin_ftparser_h
-#define _my_plugin_ftparser_h
-#include "plugin.h"
-
-/*************************************************************************
- API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
-*/
-
-#define MYSQL_FTPARSER_INTERFACE_VERSION 0x0100
-
-/* Parsing modes. Set in MYSQL_FTPARSER_PARAM::mode */
-enum enum_ftparser_mode
-{
-/*
- Fast and simple mode. This mode is used for indexing, and natural
- language queries.
-
- The parser is expected to return only those words that go into the
- index. Stopwords or too short/long words should not be returned. The
- 'boolean_info' argument of mysql_add_word() does not have to be set.
-*/
- MYSQL_FTPARSER_SIMPLE_MODE= 0,
-
-/*
- Parse with stopwords mode. This mode is used in boolean searches for
- "phrase matching."
-
- The parser is not allowed to ignore words in this mode. Every word
- should be returned, including stopwords and words that are too short
- or long. The 'boolean_info' argument of mysql_add_word() does not
- have to be set.
-*/
- MYSQL_FTPARSER_WITH_STOPWORDS= 1,
-
-/*
- Parse in boolean mode. This mode is used to parse a boolean query string.
-
- The parser should provide a valid MYSQL_FTPARSER_BOOLEAN_INFO
- structure in the 'boolean_info' argument to mysql_add_word().
- Usually that means that the parser should recognize boolean operators
- in the parsing stream and set appropriate fields in
- MYSQL_FTPARSER_BOOLEAN_INFO structure accordingly. As for
- MYSQL_FTPARSER_WITH_STOPWORDS mode, no word should be ignored.
- Instead, use FT_TOKEN_STOPWORD for the token type of such a word.
-*/
- MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2
-};
-
-/*
- Token types for boolean mode searching (used for the type member of
- MYSQL_FTPARSER_BOOLEAN_INFO struct)
-
- FT_TOKEN_EOF: End of data.
- FT_TOKEN_WORD: Regular word.
- FT_TOKEN_LEFT_PAREN: Left parenthesis (start of group/sub-expression).
- FT_TOKEN_RIGHT_PAREN: Right parenthesis (end of group/sub-expression).
- FT_TOKEN_STOPWORD: Stopword.
-*/
-
-enum enum_ft_token_type
-{
- FT_TOKEN_EOF= 0,
- FT_TOKEN_WORD= 1,
- FT_TOKEN_LEFT_PAREN= 2,
- FT_TOKEN_RIGHT_PAREN= 3,
- FT_TOKEN_STOPWORD= 4
-};
-
-/*
- This structure is used in boolean search mode only. It conveys
- boolean-mode metadata to the MySQL search engine for every word in
- the search query. A valid instance of this structure must be filled
- in by the plugin parser and passed as an argument in the call to
- mysql_add_word (the callback function in the MYSQL_FTPARSER_PARAM
- structure) when a query is parsed in boolean mode.
-
- type: The token type. Should be one of the enum_ft_token_type values.
-
- yesno: Whether the word must be present for a match to occur:
- >0 Must be present
- <0 Must not be present
- 0 Neither; the word is optional but its presence increases the relevance
- With the default settings of the ft_boolean_syntax system variable,
- >0 corresponds to the '+' operator, <0 corrresponds to the '-' operator,
- and 0 means neither operator was used.
-
- weight_adjust: A weighting factor that determines how much a match
- for the word counts. Positive values increase, negative - decrease the
- relative word's importance in the query.
-
- wasign: The sign of the word's weight in the query. If it's non-negative
- the match for the word will increase document relevance, if it's
- negative - decrease (the word becomes a "noise word", the less of it the
- better).
-
- trunc: Corresponds to the '*' operator in the default setting of the
- ft_boolean_syntax system variable.
-*/
-
-typedef struct st_mysql_ftparser_boolean_info
-{
- enum enum_ft_token_type type;
- int yesno;
- int weight_adjust;
- char wasign;
- char trunc;
- /* These are parser state and must be removed. */
- char prev;
- char *quot;
-} MYSQL_FTPARSER_BOOLEAN_INFO;
-
-/*
- The following flag means that buffer with a string (document, word)
- may be overwritten by the caller before the end of the parsing (that is
- before st_mysql_ftparser::deinit() call). If one needs the string
- to survive between two successive calls of the parsing function, she
- needs to save a copy of it. The flag may be set by MySQL before calling
- st_mysql_ftparser::parse(), or it may be set by a plugin before calling
- st_mysql_ftparser_param::mysql_parse() or
- st_mysql_ftparser_param::mysql_add_word().
-*/
-#define MYSQL_FTFLAGS_NEED_COPY 1
-
-/*
- An argument of the full-text parser plugin. This structure is
- filled in by MySQL server and passed to the parsing function of the
- plugin as an in/out parameter.
-
- mysql_parse: A pointer to the built-in parser implementation of the
- server. It's set by the server and can be used by the parser plugin
- to invoke the MySQL default parser. If plugin's role is to extract
- textual data from .doc, .pdf or .xml content, it might extract
- plaintext from the content, and then pass the text to the default
- MySQL parser to be parsed.
-
- mysql_add_word: A server callback to add a new word. When parsing
- a document, the server sets this to point at a function that adds
- the word to MySQL full-text index. When parsing a search query,
- this function will add the new word to the list of words to search
- for. The boolean_info argument can be NULL for all cases except
- when mode is MYSQL_FTPARSER_FULL_BOOLEAN_INFO.
-
- ftparser_state: A generic pointer. The plugin can set it to point
- to information to be used internally for its own purposes.
-
- mysql_ftparam: This is set by the server. It is used by MySQL functions
- called via mysql_parse() and mysql_add_word() callback. The plugin
- should not modify it.
-
- cs: Information about the character set of the document or query string.
-
- doc: A pointer to the document or query string to be parsed.
-
- length: Length of the document or query string, in bytes.
-
- flags: See MYSQL_FTFLAGS_* constants above.
-
- mode: The parsing mode. With boolean operators, with stopwords, or
- nothing. See enum_ftparser_mode above.
-*/
-
-typedef struct st_mysql_ftparser_param
-{
- int (*mysql_parse)(struct st_mysql_ftparser_param *,
- char *doc, int doc_len);
- int (*mysql_add_word)(struct st_mysql_ftparser_param *,
- char *word, int word_len,
- MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
- void *ftparser_state;
- void *mysql_ftparam;
- struct charset_info_st *cs;
- char *doc;
- int length;
- int flags;
- enum enum_ftparser_mode mode;
-} MYSQL_FTPARSER_PARAM;
-
-/*
- Full-text parser descriptor.
-
- interface_version is, e.g., MYSQL_FTPARSER_INTERFACE_VERSION.
- The parsing, initialization, and deinitialization functions are
- invoked per SQL statement for which the parser is used.
-*/
-
-struct st_mysql_ftparser
-{
- int interface_version;
- int (*parse)(MYSQL_FTPARSER_PARAM *param);
- int (*init)(MYSQL_FTPARSER_PARAM *param);
- int (*deinit)(MYSQL_FTPARSER_PARAM *param);
-};
-
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/psi/mysql_file.h b/dep/mysqllite/include/mysql/psi/mysql_file.h
deleted file mode 100644
index 6fc6689c47d..00000000000
--- a/dep/mysqllite/include/mysql/psi/mysql_file.h
+++ /dev/null
@@ -1,1434 +0,0 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software Foundation,
- 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-#ifndef MYSQL_FILE_H
-#define MYSQL_FILE_H
-
-#include <my_global.h>
-
-/* For strlen() */
-#include <string.h>
-/* For MY_STAT */
-#include <my_dir.h>
-/* For my_chsize */
-#include <my_sys.h>
-
-/**
- @file mysql/psi/mysql_file.h
- Instrumentation helpers for mysys file io.
- This header file provides the necessary declarations
- to use the mysys file API with the performance schema instrumentation.
- In some compilers (SunStudio), 'static inline' functions, when declared
- but not used, are not optimized away (because they are unused) by default,
- so that including a static inline function from a header file does
- create unwanted dependencies, causing unresolved symbols at link time.
- Other compilers, like gcc, optimize these dependencies by default.
-
- Since the instrumented APIs declared here are wrapper on top
- of mysys file io APIs, including mysql/psi/mysql_file.h assumes that
- the dependency on my_sys already exists.
-*/
-
-#include "mysql/psi/psi.h"
-
-/**
- @defgroup File_instrumentation File Instrumentation
- @ingroup Instrumentation_interface
- @{
-*/
-
-/**
- @def mysql_file_fgets(P1, P2, F)
- Instrumented fgets.
- @c mysql_file_fgets is a replacement for @c fgets.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fgets(P1, P2, F) \
- inline_mysql_file_fgets(__FILE__, __LINE__, P1, P2, F)
-#else
- #define mysql_file_fgets(P1, P2, F) \
- inline_mysql_file_fgets(P1, P2, F)
-#endif
-
-/**
- @def mysql_file_fgetc(F)
- Instrumented fgetc.
- @c mysql_file_fgetc is a replacement for @c fgetc.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fgetc(F) inline_mysql_file_fgetc(__FILE__, __LINE__, F)
-#else
- #define mysql_file_fgetc(F) inline_mysql_file_fgetc(F)
-#endif
-
-/**
- @def mysql_file_fputs(P1, F)
- Instrumented fputs.
- @c mysql_file_fputs is a replacement for @c fputs.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fputs(P1, F) \
- inline_mysql_file_fputs(__FILE__, __LINE__, P1, F)
-#else
- #define mysql_file_fputs(P1, F)\
- inline_mysql_file_fputs(P1, F)
-#endif
-
-/**
- @def mysql_file_fputc(P1, F)
- Instrumented fputc.
- @c mysql_file_fputc is a replacement for @c fputc.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fputc(P1, F) \
- inline_mysql_file_fputc(__FILE__, __LINE__, P1, F)
-#else
- #define mysql_file_fputc(P1, F) \
- inline_mysql_file_fputc(P1, F)
-#endif
-
-/**
- @def mysql_file_fprintf
- Instrumented fprintf.
- @c mysql_file_fprintf is a replacement for @c fprintf.
-*/
-#define mysql_file_fprintf inline_mysql_file_fprintf
-
-/**
- @def mysql_file_vfprintf(F, P1, P2)
- Instrumented vfprintf.
- @c mysql_file_vfprintf is a replacement for @c vfprintf.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_vfprintf(F, P1, P2) \
- inline_mysql_file_vfprintf(__FILE__, __LINE__, F, P1, P2)
-#else
- #define mysql_file_vfprintf(F, P1, P2) \
- inline_mysql_file_vfprintf(F, P1, P2)
-#endif
-
-/**
- @def mysql_file_fflush(F, P1, P2)
- Instrumented fflush.
- @c mysql_file_fflush is a replacement for @c fflush.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fflush(F) \
- inline_mysql_file_fflush(__FILE__, __LINE__, F)
-#else
- #define mysql_file_fflush(F) \
- inline_mysql_file_fflush(F)
-#endif
-
-/**
- @def mysql_file_feof(F)
- Instrumented feof.
- @c mysql_file_feof is a replacement for @c feof.
-*/
-#define mysql_file_feof(F) inline_mysql_file_feof(F)
-
-/**
- @def mysql_file_fstat(FN, S, FL)
- Instrumented fstat.
- @c mysql_file_fstat is a replacement for @c my_fstat.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fstat(FN, S, FL) \
- inline_mysql_file_fstat(__FILE__, __LINE__, FN, S, FL)
-#else
- #define mysql_file_fstat(FN, S, FL) \
- inline_mysql_file_fstat(FN, S, FL)
-#endif
-
-/**
- @def mysql_file_stat(K, FN, S, FL)
- Instrumented stat.
- @c mysql_file_stat is a replacement for @c my_stat.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_stat(K, FN, S, FL) \
- inline_mysql_file_stat(K, __FILE__, __LINE__, FN, S, FL)
-#else
- #define mysql_file_stat(K, FN, S, FL) \
- inline_mysql_file_stat(FN, S, FL)
-#endif
-
-/**
- @def mysql_file_chsize(F, P1, P2, P3)
- Instrumented chsize.
- @c mysql_file_chsize is a replacement for @c my_chsize.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_chsize(F, P1, P2, P3) \
- inline_mysql_file_chsize(__FILE__, __LINE__, F, P1, P2, P3)
-#else
- #define mysql_file_chsize(F, P1, P2, P3) \
- inline_mysql_file_chsize(F, P1, P2, P3)
-#endif
-
-/**
- @def mysql_file_fopen(K, N, F1, F2)
- Instrumented fopen.
- @c mysql_file_fopen is a replacement for @c my_fopen.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fopen(K, N, F1, F2) \
- inline_mysql_file_fopen(K, __FILE__, __LINE__, N, F1, F2)
-#else
- #define mysql_file_fopen(K, N, F1, F2) \
- inline_mysql_file_fopen(N, F1, F2)
-#endif
-
-/**
- @def mysql_file_fclose(FD, FL)
- Instrumented fclose.
- @c mysql_file_fclose is a replacement for @c my_fclose.
- Without the instrumentation, this call will have the same behavior as the
- undocumented and possibly platform specific my_fclose(NULL, ...) behavior.
- With the instrumentation, mysql_fclose(NULL, ...) will safely return 0,
- which is an extension compared to my_fclose and is therefore compliant.
- mysql_fclose is on purpose *not* implementing
- @code DBUG_ASSERT(file != NULL) @endcode,
- since doing so could introduce regressions.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fclose(FD, FL) \
- inline_mysql_file_fclose(__FILE__, __LINE__, FD, FL)
-#else
- #define mysql_file_fclose(FD, FL) \
- inline_mysql_file_fclose(FD, FL)
-#endif
-
-/**
- @def mysql_file_fread(FD, P1, P2, P3)
- Instrumented fread.
- @c mysql_file_fread is a replacement for @c my_fread.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fread(FD, P1, P2, P3) \
- inline_mysql_file_fread(__FILE__, __LINE__, FD, P1, P2, P3)
-#else
- #define mysql_file_fread(FD, P1, P2, P3) \
- inline_mysql_file_fread(FD, P1, P2, P3)
-#endif
-
-/**
- @def mysql_file_fwrite(FD, P1, P2, P3)
- Instrumented fwrite.
- @c mysql_file_fwrite is a replacement for @c my_fwrite.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fwrite(FD, P1, P2, P3) \
- inline_mysql_file_fwrite(__FILE__, __LINE__, FD, P1, P2, P3)
-#else
- #define mysql_file_fwrite(FD, P1, P2, P3) \
- inline_mysql_file_fwrite(FD, P1, P2, P3)
-#endif
-
-/**
- @def mysql_file_fseek(FD, P, W, F)
- Instrumented fseek.
- @c mysql_file_fseek is a replacement for @c my_fseek.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_fseek(FD, P, W, F) \
- inline_mysql_file_fseek(__FILE__, __LINE__, FD, P, W, F)
-#else
- #define mysql_file_fseek(FD, P, W, F) \
- inline_mysql_file_fseek(FD, P, W, F)
-#endif
-
-/**
- @def mysql_file_ftell(FD, F)
- Instrumented ftell.
- @c mysql_file_ftell is a replacement for @c my_ftell.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_ftell(FD, F) \
- inline_mysql_file_ftell(__FILE__, __LINE__, FD, F)
-#else
- #define mysql_file_ftell(FD, F) \
- inline_mysql_file_ftell(FD, F)
-#endif
-
-/**
- @def mysql_file_create(K, N, F1, F2, F3)
- Instrumented create.
- @c mysql_file_create is a replacement for @c my_create.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_create(K, N, F1, F2, F3) \
- inline_mysql_file_create(K, __FILE__, __LINE__, N, F1, F2, F3)
-#else
- #define mysql_file_create(K, N, F1, F2, F3) \
- inline_mysql_file_create(N, F1, F2, F3)
-#endif
-
-/**
- @def mysql_file_create_temp(K, T, D, P, M, F)
- Instrumented create_temp_file.
- @c mysql_file_create_temp is a replacement for @c create_temp_file.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_create_temp(K, T, D, P, M, F) \
- inline_mysql_file_create_temp(K, T, D, P, M, F)
-#else
- #define mysql_file_create_temp(K, T, D, P, M, F) \
- inline_mysql_file_create_temp(T, D, P, M, F)
-#endif
-
-/**
- @def mysql_file_open(K, N, F1, F2)
- Instrumented open.
- @c mysql_file_open is a replacement for @c my_open.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_open(K, N, F1, F2) \
- inline_mysql_file_open(K, __FILE__, __LINE__, N, F1, F2)
-#else
- #define mysql_file_open(K, N, F1, F2) \
- inline_mysql_file_open(N, F1, F2)
-#endif
-
-/**
- @def mysql_file_close(FD, F)
- Instrumented close.
- @c mysql_file_close is a replacement for @c my_close.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_close(FD, F) \
- inline_mysql_file_close(__FILE__, __LINE__, FD, F)
-#else
- #define mysql_file_close(FD, F) \
- inline_mysql_file_close(FD, F)
-#endif
-
-/**
- @def mysql_file_read(FD, B, S, F)
- Instrumented read.
- @c mysql_read is a replacement for @c my_read.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_read(FD, B, S, F) \
- inline_mysql_file_read(__FILE__, __LINE__, FD, B, S, F)
-#else
- #define mysql_file_read(FD, B, S, F) \
- inline_mysql_file_read(FD, B, S, F)
-#endif
-
-/**
- @def mysql_file_write(FD, B, S, F)
- Instrumented write.
- @c mysql_file_write is a replacement for @c my_write.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_write(FD, B, S, F) \
- inline_mysql_file_write(__FILE__, __LINE__, FD, B, S, F)
-#else
- #define mysql_file_write(FD, B, S, F) \
- inline_mysql_file_write(FD, B, S, F)
-#endif
-
-/**
- @def mysql_file_pread(FD, B, S, O, F)
- Instrumented pread.
- @c mysql_pread is a replacement for @c my_pread.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_pread(FD, B, S, O, F) \
- inline_mysql_file_pread(__FILE__, __LINE__, FD, B, S, O, F)
-#else
- #define mysql_file_pread(FD, B, S, O, F) \
- inline_mysql_file_pread(FD, B, S, O, F)
-#endif
-
-/**
- @def mysql_file_pwrite(FD, B, S, O, F)
- Instrumented pwrite.
- @c mysql_file_pwrite is a replacement for @c my_pwrite.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_pwrite(FD, B, S, O, F) \
- inline_mysql_file_pwrite(__FILE__, __LINE__, FD, B, S, O, F)
-#else
- #define mysql_file_pwrite(FD, B, S, O, F) \
- inline_mysql_file_pwrite(FD, B, S, O, F)
-#endif
-
-/**
- @def mysql_file_seek(FD, P, W, F)
- Instrumented seek.
- @c mysql_file_seek is a replacement for @c my_seek.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_seek(FD, P, W, F) \
- inline_mysql_file_seek(__FILE__, __LINE__, FD, P, W, F)
-#else
- #define mysql_file_seek(FD, P, W, F) \
- inline_mysql_file_seek(FD, P, W, F)
-#endif
-
-/**
- @def mysql_file_tell(FD, F)
- Instrumented tell.
- @c mysql_file_tell is a replacement for @c my_tell.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_tell(FD, F) \
- inline_mysql_file_tell(__FILE__, __LINE__, FD, F)
-#else
- #define mysql_file_tell(FD, F) \
- inline_mysql_file_tell(FD, F)
-#endif
-
-/**
- @def mysql_file_delete(K, P1, P2)
- Instrumented delete.
- @c mysql_file_delete is a replacement for @c my_delete.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_delete(K, P1, P2) \
- inline_mysql_file_delete(K, __FILE__, __LINE__, P1, P2)
-#else
- #define mysql_file_delete(K, P1, P2) \
- inline_mysql_file_delete(P1, P2)
-#endif
-
-/**
- @def mysql_file_rename(K, P1, P2, P3)
- Instrumented rename.
- @c mysql_file_rename is a replacement for @c my_rename.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_rename(K, P1, P2, P3) \
- inline_mysql_file_rename(K, __FILE__, __LINE__, P1, P2, P3)
-#else
- #define mysql_file_rename(K, P1, P2, P3) \
- inline_mysql_file_rename(P1, P2, P3)
-#endif
-
-/**
- @def mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5)
- Instrumented create with symbolic link.
- @c mysql_file_create_with_symlink is a replacement
- for @c my_create_with_symlink.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \
- inline_mysql_file_create_with_symlink(K, __FILE__, __LINE__, \
- P1, P2, P3, P4, P5)
-#else
- #define mysql_file_create_with_symlink(K, P1, P2, P3, P4, P5) \
- inline_mysql_file_create_with_symlink(P1, P2, P3, P4, P5)
-#endif
-
-/**
- @def mysql_file_delete_with_symlink(K, P1, P2)
- Instrumented delete with symbolic link.
- @c mysql_file_delete_with_symlink is a replacement
- for @c my_delete_with_symlink.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_delete_with_symlink(K, P1, P2) \
- inline_mysql_file_delete_with_symlink(K, __FILE__, __LINE__, P1, P2)
-#else
- #define mysql_file_delete_with_symlink(K, P1, P2) \
- inline_mysql_file_delete_with_symlink(P1, P2)
-#endif
-
-/**
- @def mysql_file_rename_with_symlink(K, P1, P2, P3)
- Instrumented rename with symbolic link.
- @c mysql_file_rename_with_symlink is a replacement
- for @c my_rename_with_symlink.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_rename_with_symlink(K, P1, P2, P3) \
- inline_mysql_file_rename_with_symlink(K, __FILE__, __LINE__, P1, P2, P3)
-#else
- #define mysql_file_rename_with_symlink(K, P1, P2, P3) \
- inline_mysql_file_rename_with_symlink(P1, P2, P3)
-#endif
-
-/**
- @def mysql_file_sync(P1, P2)
- Instrumented file sync.
- @c mysql_file_sync is a replacement for @c my_sync.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_file_sync(P1, P2) \
- inline_mysql_file_sync(__FILE__, __LINE__, P1, P2)
-#else
- #define mysql_file_sync(P1, P2) \
- inline_mysql_file_sync(P1, P2)
-#endif
-
-/**
- An instrumented FILE structure.
- @sa MYSQL_FILE
-*/
-struct st_mysql_file
-{
- /** The real file. */
- FILE *m_file;
- /**
- The instrumentation hook.
- Note that this hook is not conditionally defined,
- for binary compatibility of the @c MYSQL_FILE interface.
- */
- struct PSI_file *m_psi;
-};
-
-/**
- Type of an instrumented file.
- @c MYSQL_FILE is a drop-in replacement for @c FILE.
- @sa mysql_file_open
-*/
-typedef struct st_mysql_file MYSQL_FILE;
-
-static inline char *
-inline_mysql_file_fgets(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- char *str, int size, MYSQL_FILE *file)
-{
- char *result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_READ);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) size, src_file, src_line);
- }
-#endif
- result= fgets(str, size, file->m_file);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, result ? strlen(result) : 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_fgetc(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_READ);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 1, src_file, src_line);
- }
-#endif
- result= fgetc(file->m_file);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 1);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_fputs(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- const char *str, MYSQL_FILE *file)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- size_t bytes= 0;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- {
- bytes= str ? strlen(str) : 0;
- PSI_server->start_file_wait(locker, bytes, src_file, src_line);
- }
- }
-#endif
- result= fputs(str, file->m_file);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, bytes);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_fputc(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- char c, MYSQL_FILE *file)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 1, src_file, src_line);
- }
-#endif
- result= fputc(c, file->m_file);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 1);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_fprintf(MYSQL_FILE *file, const char *format, ...)
-{
- /*
- TODO: figure out how to pass src_file and src_line from the caller.
- */
- int result;
- va_list args;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, __FILE__, __LINE__);
- }
-#endif
- va_start(args, format);
- result= vfprintf(file->m_file, format, args);
- va_end(args);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) result);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_vfprintf(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, const char *format, va_list args)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= vfprintf(file->m_file, format, args);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) result);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_fflush(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_FLUSH);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= fflush(file->m_file);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int inline_mysql_file_feof(MYSQL_FILE *file)
-{
- /* Not instrumented, there is no wait involved */
- return feof(file->m_file);
-}
-
-static inline int
-inline_mysql_file_fstat(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- int filenr, MY_STAT *stat_area, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, filenr,
- PSI_FILE_FSTAT);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_fstat(filenr, stat_area, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline MY_STAT *
-inline_mysql_file_stat(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *path, MY_STAT *stat_area, myf flags)
-{
- MY_STAT *result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state,
- key, PSI_FILE_STAT,
- path, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_open_wait(locker, src_file, src_line);
- }
-#endif
- result= my_stat(path, stat_area, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_chsize(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, my_off_t newlength, int filler, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file,
- PSI_FILE_CHSIZE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) newlength, src_file,
- src_line);
- }
-#endif
- result= my_chsize(file, newlength, filler, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) newlength);
-#endif
- return result;
-}
-
-static inline MYSQL_FILE*
-inline_mysql_file_fopen(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *filename, int flags, myf myFlags)
-{
- MYSQL_FILE *that;
- that= (MYSQL_FILE*) my_malloc(sizeof(MYSQL_FILE), MYF(MY_WME));
- if (likely(that != NULL))
- {
- that->m_psi= NULL;
- {
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker
- (&state, key, PSI_FILE_STREAM_OPEN, filename, that);
- if (likely(locker != NULL))
- that->m_psi= PSI_server->start_file_open_wait(locker, src_file,
- src_line);
- }
-#endif
- that->m_file= my_fopen(filename, flags, myFlags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_open_wait(locker);
-#endif
- if (unlikely(that->m_file == NULL))
- {
- my_free(that);
- return NULL;
- }
- }
- }
- return that;
-}
-
-static inline int
-inline_mysql_file_fclose(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, myf flags)
-{
- int result= 0;
- if (likely(file != NULL))
- {
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- DBUG_ASSERT(file != NULL);
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_STREAM_CLOSE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_fclose(file->m_file, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- my_free(file);
- }
- return result;
-}
-
-static inline size_t
-inline_mysql_file_fread(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, uchar *buffer, size_t count, myf flags)
-{
- size_t result= 0;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_READ);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_fread(file->m_file, buffer, count, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_read;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_read= (result == 0) ? count : 0;
- else
- bytes_read= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_read);
- }
-#endif
- return result;
-}
-
-static inline size_t
-inline_mysql_file_fwrite(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, const uchar *buffer, size_t count, myf flags)
-{
- size_t result= 0;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_fwrite(file->m_file, buffer, count, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_written;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_written= (result == 0) ? count : 0;
- else
- bytes_written= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_written);
- }
-#endif
- return result;
-}
-
-static inline my_off_t
-inline_mysql_file_fseek(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, my_off_t pos, int whence, myf flags)
-{
- my_off_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_SEEK);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_fseek(file->m_file, pos, whence, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline my_off_t
-inline_mysql_file_ftell(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- MYSQL_FILE *file, myf flags)
-{
- my_off_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server && file->m_psi))
- {
- locker= PSI_server->get_thread_file_stream_locker(&state, file->m_psi,
- PSI_FILE_TELL);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_ftell(file->m_file, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline File
-inline_mysql_file_create(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *filename, int create_flags, int access_flags, myf myFlags)
-{
- File file;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_CREATE,
- filename, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_open_wait(locker, src_file, src_line);
- }
-#endif
- file= my_create(filename, create_flags, access_flags, myFlags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file);
-#endif
- return file;
-}
-
-static inline File
-inline_mysql_file_create_temp(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key,
-#endif
- char *to, const char *dir, const char *pfx, int mode, myf myFlags)
-{
- File file;
- /*
- TODO: This event is instrumented, but not timed.
- The problem is that the file name is now known
- before the create_temp_file call.
- */
- file= create_temp_file(to, dir, pfx, mode, myFlags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server != NULL))
- PSI_server->create_file(key, to, file);
-#endif
- return file;
-}
-
-static inline File
-inline_mysql_file_open(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *filename, int flags, myf myFlags)
-{
- File file;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_OPEN,
- filename, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_open_wait(locker, src_file, src_line);
- }
-#endif
- file= my_open(filename, flags, myFlags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file);
-#endif
- return file;
-}
-
-static inline int
-inline_mysql_file_close(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file,
- PSI_FILE_CLOSE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_close(file, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline size_t
-inline_mysql_file_read(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, uchar *buffer, size_t count, myf flags)
-{
- size_t result= 0;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file,
- PSI_FILE_READ);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_read(file, buffer, count, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_read;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_read= (result == 0) ? count : 0;
- else
- bytes_read= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_read);
- }
-#endif
- return result;
-}
-
-static inline size_t
-inline_mysql_file_write(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, const uchar *buffer, size_t count, myf flags)
-{
- size_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_write(file, buffer, count, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_written;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_written= (result == 0) ? count : 0;
- else
- bytes_written= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_written);
- }
-#endif
- return result;
-}
-
-static inline size_t
-inline_mysql_file_pread(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, uchar *buffer, size_t count, my_off_t offset, myf flags)
-{
- size_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_READ);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_pread(file, buffer, count, offset, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_read;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_read= (result == 0) ? count : 0;
- else
- bytes_read= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_read);
- }
-#endif
- return result;
-}
-
-static inline size_t
-inline_mysql_file_pwrite(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, const uchar *buffer, size_t count, my_off_t offset, myf flags)
-{
- size_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file,
- PSI_FILE_WRITE);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, count, src_file, src_line);
- }
-#endif
- result= my_pwrite(file, buffer, count, offset, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- {
- size_t bytes_written;
- if (flags & (MY_NABP | MY_FNABP))
- bytes_written= (result == 0) ? count : 0;
- else
- bytes_written= (result != MY_FILE_ERROR) ? result : 0;
- PSI_server->end_file_wait(locker, bytes_written);
- }
-#endif
- return result;
-}
-
-static inline my_off_t
-inline_mysql_file_seek(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, my_off_t pos, int whence, myf flags)
-{
- my_off_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_SEEK);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_seek(file, pos, whence, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline my_off_t
-inline_mysql_file_tell(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File file, myf flags)
-{
- my_off_t result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, file, PSI_FILE_TELL);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_tell(file, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_delete(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *name, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_DELETE,
- name, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_delete(name, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_rename(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *from, const char *to, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_RENAME,
- to, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_rename(from, to, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline File
-inline_mysql_file_create_with_symlink(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *linkname, const char *filename, int create_flags,
- int access_flags, myf flags)
-{
- File file;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_CREATE,
- filename, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_open_wait(locker, src_file, src_line);
- }
-#endif
- file= my_create_with_symlink(linkname, filename, create_flags, access_flags,
- flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_open_wait_and_bind_to_descriptor(locker, file);
-#endif
- return file;
-}
-
-static inline int
-inline_mysql_file_delete_with_symlink(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *name, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_DELETE,
- name, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_delete_with_symlink(name, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_rename_with_symlink(
-#ifdef HAVE_PSI_INTERFACE
- PSI_file_key key, const char *src_file, uint src_line,
-#endif
- const char *from, const char *to, myf flags)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_name_locker(&state, key, PSI_FILE_RENAME,
- to, &locker);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_rename_with_symlink(from, to, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-static inline int
-inline_mysql_file_sync(
-#ifdef HAVE_PSI_INTERFACE
- const char *src_file, uint src_line,
-#endif
- File fd, myf flags)
-{
- int result= 0;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_file_locker *locker= NULL;
- PSI_file_locker_state state;
- if (likely(PSI_server != NULL))
- {
- locker= PSI_server->get_thread_file_descriptor_locker(&state, fd, PSI_FILE_SYNC);
- if (likely(locker != NULL))
- PSI_server->start_file_wait(locker, (size_t) 0, src_file, src_line);
- }
-#endif
- result= my_sync(fd, flags);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_file_wait(locker, (size_t) 0);
-#endif
- return result;
-}
-
-/** @} (end of group File_instrumentation) */
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/psi/mysql_thread.h b/dep/mysqllite/include/mysql/psi/mysql_thread.h
deleted file mode 100644
index 5b8ea3dc5dc..00000000000
--- a/dep/mysqllite/include/mysql/psi/mysql_thread.h
+++ /dev/null
@@ -1,1071 +0,0 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software Foundation,
- 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-#ifndef MYSQL_THREAD_H
-#define MYSQL_THREAD_H
-
-/**
- @file mysql/psi/mysql_thread.h
- Instrumentation helpers for mysys threads, mutexes,
- read write locks and conditions.
- This header file provides the necessary declarations
- to use the mysys thread API with the performance schema instrumentation.
- In some compilers (SunStudio), 'static inline' functions, when declared
- but not used, are not optimized away (because they are unused) by default,
- so that including a static inline function from a header file does
- create unwanted dependencies, causing unresolved symbols at link time.
- Other compilers, like gcc, optimize these dependencies by default.
-
- Since the instrumented APIs declared here are wrapper on top
- of my_pthread / safemutex / etc APIs,
- including mysql/psi/mysql_thread.h assumes that
- the dependency on my_pthread and safemutex already exists.
-*/
-/*
- Note: there are several orthogonal dimensions here.
-
- Dimension 1: Instrumentation
- HAVE_PSI_INTERFACE is defined when the instrumentation is compiled in.
- This may happen both in debug or production builds.
-
- Dimension 2: Debug
- SAFE_MUTEX is defined when debug is compiled in.
- This may happen both with and without instrumentation.
-
- Dimension 3: Platform
- Mutexes are implemented with one of:
- - the pthread library
- - fast mutexes
- - window apis
- This is implemented by various macro definitions in my_pthread.h
-
- This causes complexity with '#ifdef'-ery that can't be avoided.
-*/
-
-#include "mysql/psi/psi.h"
-
-/**
- @defgroup Thread_instrumentation Thread Instrumentation
- @ingroup Instrumentation_interface
- @{
-*/
-
-/**
- An instrumented mutex structure.
- @sa mysql_mutex_t
-*/
-struct st_mysql_mutex
-{
- /** The real mutex. */
- pthread_mutex_t m_mutex;
- /**
- The instrumentation hook.
- Note that this hook is not conditionally defined,
- for binary compatibility of the @c mysql_mutex_t interface.
- */
- struct PSI_mutex *m_psi;
-};
-
-/**
- Type of an instrumented mutex.
- @c mysql_mutex_t is a drop-in replacement for @c pthread_mutex_t.
- @sa mysql_mutex_assert_owner
- @sa mysql_mutex_assert_not_owner
- @sa mysql_mutex_init
- @sa mysql_mutex_lock
- @sa mysql_mutex_unlock
- @sa mysql_mutex_destroy
-*/
-typedef struct st_mysql_mutex mysql_mutex_t;
-
-/**
- An instrumented rwlock structure.
- @sa mysql_rwlock_t
-*/
-struct st_mysql_rwlock
-{
- /** The real rwlock */
- rw_lock_t m_rwlock;
- /**
- The instrumentation hook.
- Note that this hook is not conditionally defined,
- for binary compatibility of the @c mysql_rwlock_t interface.
- */
- struct PSI_rwlock *m_psi;
-};
-
-/**
- An instrumented prlock structure.
- @sa mysql_prlock_t
-*/
-struct st_mysql_prlock
-{
- /** The real prlock */
- rw_pr_lock_t m_prlock;
- /**
- The instrumentation hook.
- Note that this hook is not conditionally defined,
- for binary compatibility of the @c mysql_rwlock_t interface.
- */
- struct PSI_rwlock *m_psi;
-};
-
-/**
- Type of an instrumented rwlock.
- @c mysql_rwlock_t is a drop-in replacement for @c pthread_rwlock_t.
- @sa mysql_rwlock_init
- @sa mysql_rwlock_rdlock
- @sa mysql_rwlock_tryrdlock
- @sa mysql_rwlock_wrlock
- @sa mysql_rwlock_trywrlock
- @sa mysql_rwlock_unlock
- @sa mysql_rwlock_destroy
-*/
-typedef struct st_mysql_rwlock mysql_rwlock_t;
-
-/**
- Type of an instrumented prlock.
- A prlock is a read write lock that 'prefers readers' (pr).
- @c mysql_prlock_t is a drop-in replacement for @c rw_pr_lock_t.
- @sa mysql_prlock_init
- @sa mysql_prlock_rdlock
- @sa mysql_prlock_wrlock
- @sa mysql_prlock_unlock
- @sa mysql_prlock_destroy
-*/
-typedef struct st_mysql_prlock mysql_prlock_t;
-
-/**
- An instrumented cond structure.
- @sa mysql_cond_t
-*/
-struct st_mysql_cond
-{
- /** The real condition */
- pthread_cond_t m_cond;
- /**
- The instrumentation hook.
- Note that this hook is not conditionally defined,
- for binary compatibility of the @c mysql_cond_t interface.
- */
- struct PSI_cond *m_psi;
-};
-
-/**
- Type of an instrumented condition.
- @c mysql_cond_t is a drop-in replacement for @c pthread_cond_t.
- @sa mysql_cond_init
- @sa mysql_cond_wait
- @sa mysql_cond_timedwait
- @sa mysql_cond_signal
- @sa mysql_cond_broadcast
- @sa mysql_cond_destroy
-*/
-typedef struct st_mysql_cond mysql_cond_t;
-
-/*
- Consider the following code:
- static inline void foo() { bar(); }
- when foo() is never called.
-
- With gcc, foo() is a local static function, so the dependencies
- are optimized away at compile time, and there is no dependency on bar().
- With other compilers (HP, Sun Studio), the function foo() implementation
- is compiled, and bar() needs to be present to link.
-
- Due to the existing header dependencies in MySQL code, this header file
- is sometime used when it is not needed, which in turn cause link failures
- on some platforms.
- The proper fix would be to cut these extra dependencies in the calling code.
- DISABLE_MYSQL_THREAD_H is a work around to limit dependencies.
- DISABLE_MYSQL_PRLOCK_H is similar, and is used to disable specifically
- the prlock wrappers.
-*/
-#ifndef DISABLE_MYSQL_THREAD_H
-
-/**
- @def mysql_mutex_assert_owner(M)
- Wrapper, to use safe_mutex_assert_owner with instrumented mutexes.
- @c mysql_mutex_assert_owner is a drop-in replacement
- for @c safe_mutex_assert_owner.
-*/
-#define mysql_mutex_assert_owner(M) \
- safe_mutex_assert_owner(&(M)->m_mutex)
-
-/**
- @def mysql_mutex_assert_not_owner(M)
- Wrapper, to use safe_mutex_assert_not_owner with instrumented mutexes.
- @c mysql_mutex_assert_not_owner is a drop-in replacement
- for @c safe_mutex_assert_not_owner.
-*/
-#define mysql_mutex_assert_not_owner(M) \
- safe_mutex_assert_not_owner(&(M)->m_mutex)
-
-/** Wrappers for instrumented prlock objects. */
-
-#define mysql_prlock_assert_write_owner(M) \
- rw_pr_lock_assert_write_owner(&(M)->m_prlock)
-
-#define mysql_prlock_assert_not_write_owner(M) \
- rw_pr_lock_assert_not_write_owner(&(M)->m_prlock)
-
-/**
- @def mysql_mutex_init(K, M, A)
- Instrumented mutex_init.
- @c mysql_mutex_init is a replacement for @c pthread_mutex_init.
- @param K The PSI_mutex_key for this instrumented mutex
- @param M The mutex to initialize
- @param A Mutex attributes
-*/
-
-#ifdef HAVE_PSI_INTERFACE
- #ifdef SAFE_MUTEX
- #define mysql_mutex_init(K, M, A) \
- inline_mysql_mutex_init(K, M, A, __FILE__, __LINE__)
- #else
- #define mysql_mutex_init(K, M, A) \
- inline_mysql_mutex_init(K, M, A)
- #endif
-#else
- #ifdef SAFE_MUTEX
- #define mysql_mutex_init(K, M, A) \
- inline_mysql_mutex_init(M, A, __FILE__, __LINE__)
- #else
- #define mysql_mutex_init(K, M, A) \
- inline_mysql_mutex_init(M, A)
- #endif
-#endif
-
-/**
- @def mysql_mutex_destroy(M)
- Instrumented mutex_destroy.
- @c mysql_mutex_destroy is a drop-in replacement
- for @c pthread_mutex_destroy.
-*/
-#ifdef SAFE_MUTEX
- #define mysql_mutex_destroy(M) \
- inline_mysql_mutex_destroy(M, __FILE__, __LINE__)
-#else
- #define mysql_mutex_destroy(M) \
- inline_mysql_mutex_destroy(M)
-#endif
-
-/**
- @def mysql_mutex_lock(M)
- Instrumented mutex_lock.
- @c mysql_mutex_lock is a drop-in replacement for @c pthread_mutex_lock.
- @param M The mutex to lock
-*/
-
-#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE)
- #define mysql_mutex_lock(M) \
- inline_mysql_mutex_lock(M, __FILE__, __LINE__)
-#else
- #define mysql_mutex_lock(M) \
- inline_mysql_mutex_lock(M)
-#endif
-
-/**
- @def mysql_mutex_trylock(M)
- Instrumented mutex_lock.
- @c mysql_mutex_trylock is a drop-in replacement
- for @c pthread_mutex_trylock.
-*/
-
-#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE)
- #define mysql_mutex_trylock(M) \
- inline_mysql_mutex_trylock(M, __FILE__, __LINE__)
-#else
- #define mysql_mutex_trylock(M) \
- inline_mysql_mutex_trylock(M)
-#endif
-
-/**
- @def mysql_mutex_unlock(M)
- Instrumented mutex_unlock.
- @c mysql_mutex_unlock is a drop-in replacement for @c pthread_mutex_unlock.
-*/
-#ifdef SAFE_MUTEX
- #define mysql_mutex_unlock(M) \
- inline_mysql_mutex_unlock(M, __FILE__, __LINE__)
-#else
- #define mysql_mutex_unlock(M) \
- inline_mysql_mutex_unlock(M)
-#endif
-
-/**
- @def mysql_rwlock_init(K, RW)
- Instrumented rwlock_init.
- @c mysql_rwlock_init is a replacement for @c pthread_rwlock_init.
- Note that pthread_rwlockattr_t is not supported in MySQL.
- @param K The PSI_rwlock_key for this instrumented rwlock
- @param RW The rwlock to initialize
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(K, RW)
-#else
- #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(RW)
-#endif
-
-/**
- @def mysql_prlock_init(K, RW)
- Instrumented rw_pr_init.
- @c mysql_prlock_init is a replacement for @c rw_pr_init.
- @param K The PSI_rwlock_key for this instrumented prlock
- @param RW The prlock to initialize
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(K, RW)
-#else
- #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(RW)
-#endif
-
-/**
- @def mysql_rwlock_destroy(RW)
- Instrumented rwlock_destroy.
- @c mysql_rwlock_destroy is a drop-in replacement
- for @c pthread_rwlock_destroy.
-*/
-#define mysql_rwlock_destroy(RW) inline_mysql_rwlock_destroy(RW)
-
-/**
- @def mysql_prlock_destroy(RW)
- Instrumented rw_pr_destroy.
- @c mysql_prlock_destroy is a drop-in replacement
- for @c rw_pr_destroy.
-*/
-#define mysql_prlock_destroy(RW) inline_mysql_prlock_destroy(RW)
-
-/**
- @def mysql_rwlock_rdlock(RW)
- Instrumented rwlock_rdlock.
- @c mysql_rwlock_rdlock is a drop-in replacement
- for @c pthread_rwlock_rdlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_rwlock_rdlock(RW) \
- inline_mysql_rwlock_rdlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_rwlock_rdlock(RW) \
- inline_mysql_rwlock_rdlock(RW)
-#endif
-
-/**
- @def mysql_prlock_rdlock(RW)
- Instrumented rw_pr_rdlock.
- @c mysql_prlock_rdlock is a drop-in replacement
- for @c rw_pr_rdlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_prlock_rdlock(RW) \
- inline_mysql_prlock_rdlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_prlock_rdlock(RW) \
- inline_mysql_prlock_rdlock(RW)
-#endif
-
-/**
- @def mysql_rwlock_wrlock(RW)
- Instrumented rwlock_wrlock.
- @c mysql_rwlock_wrlock is a drop-in replacement
- for @c pthread_rwlock_wrlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_rwlock_wrlock(RW) \
- inline_mysql_rwlock_wrlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_rwlock_wrlock(RW) \
- inline_mysql_rwlock_wrlock(RW)
-#endif
-
-/**
- @def mysql_prlock_wrlock(RW)
- Instrumented rw_pr_wrlock.
- @c mysql_prlock_wrlock is a drop-in replacement
- for @c rw_pr_wrlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_prlock_wrlock(RW) \
- inline_mysql_prlock_wrlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_prlock_wrlock(RW) \
- inline_mysql_prlock_wrlock(RW)
-#endif
-
-/**
- @def mysql_rwlock_tryrdlock(RW)
- Instrumented rwlock_tryrdlock.
- @c mysql_rwlock_tryrdlock is a drop-in replacement
- for @c pthread_rwlock_tryrdlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_rwlock_tryrdlock(RW) \
- inline_mysql_rwlock_tryrdlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_rwlock_tryrdlock(RW) \
- inline_mysql_rwlock_tryrdlock(RW)
-#endif
-
-/**
- @def mysql_rwlock_trywrlock(RW)
- Instrumented rwlock_trywrlock.
- @c mysql_rwlock_trywrlock is a drop-in replacement
- for @c pthread_rwlock_trywrlock.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_rwlock_trywrlock(RW) \
- inline_mysql_rwlock_trywrlock(RW, __FILE__, __LINE__)
-#else
- #define mysql_rwlock_trywrlock(RW) \
- inline_mysql_rwlock_trywrlock(RW)
-#endif
-
-/**
- @def mysql_rwlock_unlock(RW)
- Instrumented rwlock_unlock.
- @c mysql_rwlock_unlock is a drop-in replacement
- for @c pthread_rwlock_unlock.
-*/
-#define mysql_rwlock_unlock(RW) inline_mysql_rwlock_unlock(RW)
-
-/**
- @def mysql_prlock_unlock(RW)
- Instrumented rw_pr_unlock.
- @c mysql_prlock_unlock is a drop-in replacement
- for @c rw_pr_unlock.
-*/
-#define mysql_prlock_unlock(RW) inline_mysql_prlock_unlock(RW)
-
-/**
- @def mysql_cond_init(K, C, A)
- Instrumented cond_init.
- @c mysql_cond_init is a replacement for @c pthread_cond_init.
- @param C The cond to initialize
- @param K The PSI_cond_key for this instrumented cond
- @param A Condition attributes
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_cond_init(K, C, A) inline_mysql_cond_init(K, C, A)
-#else
- #define mysql_cond_init(K, C, A) inline_mysql_cond_init(C, A)
-#endif
-
-/**
- @def mysql_cond_destroy(C)
- Instrumented cond_destroy.
- @c mysql_cond_destroy is a drop-in replacement for @c pthread_cond_destroy.
-*/
-#define mysql_cond_destroy(C) inline_mysql_cond_destroy(C)
-
-/**
- @def mysql_cond_wait(C)
- Instrumented cond_wait.
- @c mysql_cond_wait is a drop-in replacement for @c pthread_cond_wait.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_cond_wait(C, M) \
- inline_mysql_cond_wait(C, M, __FILE__, __LINE__)
-#else
- #define mysql_cond_wait(C, M) \
- inline_mysql_cond_wait(C, M)
-#endif
-
-/**
- @def mysql_cond_timedwait(C, M, W)
- Instrumented cond_timedwait.
- @c mysql_cond_timedwait is a drop-in replacement
- for @c pthread_cond_timedwait.
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_cond_timedwait(C, M, W) \
- inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__)
-#else
- #define mysql_cond_timedwait(C, M, W) \
- inline_mysql_cond_timedwait(C, M, W)
-#endif
-
-/**
- @def mysql_cond_signal(C)
- Instrumented cond_signal.
- @c mysql_cond_signal is a drop-in replacement for @c pthread_cond_signal.
-*/
-#define mysql_cond_signal(C) inline_mysql_cond_signal(C)
-
-/**
- @def mysql_cond_broadcast(C)
- Instrumented cond_broadcast.
- @c mysql_cond_broadcast is a drop-in replacement
- for @c pthread_cond_broadcast.
-*/
-#define mysql_cond_broadcast(C) inline_mysql_cond_broadcast(C)
-
-
-/**
- @def mysql_thread_create(K, P1, P2, P3, P4)
- Instrumented pthread_create.
- This function creates both the thread instrumentation and a thread.
- @c mysql_thread_create is a replacement for @c pthread_create.
- The parameter P4 (or, if it is NULL, P1) will be used as the
- instrumented thread "indentity".
- Providing a P1 / P4 parameter with a different value for each call
- will on average improve performances, since this thread identity value
- is used internally to randomize access to data and prevent contention.
- This is optional, and the improvement is not guaranteed, only statistical.
- @param K The PSI_thread_key for this instrumented thread
- @param P1 pthread_create parameter 1
- @param P2 pthread_create parameter 2
- @param P3 pthread_create parameter 3
- @param P4 pthread_create parameter 4
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_thread_create(K, P1, P2, P3, P4) \
- inline_mysql_thread_create(K, P1, P2, P3, P4)
-#else
- #define mysql_thread_create(K, P1, P2, P3, P4) \
- pthread_create(P1, P2, P3, P4)
-#endif
-
-/**
- @def mysql_thread_set_psi_id(I)
- Set the thread indentifier for the instrumentation.
- @param I The thread identifier
-*/
-#ifdef HAVE_PSI_INTERFACE
- #define mysql_thread_set_psi_id(I) inline_mysql_thread_set_psi_id(I)
-#else
- #define mysql_thread_set_psi_id(I) do {} while (0)
-#endif
-
-static inline int inline_mysql_mutex_init(
-#ifdef HAVE_PSI_INTERFACE
- PSI_mutex_key key,
-#endif
- mysql_mutex_t *that,
- const pthread_mutexattr_t *attr
-#ifdef SAFE_MUTEX
- , const char *src_file, uint src_line
-#endif
- )
-{
-#ifdef HAVE_PSI_INTERFACE
- that->m_psi= PSI_server ? PSI_server->init_mutex(key, &that->m_mutex)
- : NULL;
-#else
- that->m_psi= NULL;
-#endif
-#ifdef SAFE_MUTEX
- return safe_mutex_init(&that->m_mutex, attr, src_file, src_line);
-#else
- return pthread_mutex_init(&that->m_mutex, attr);
-#endif
-}
-
-static inline int inline_mysql_mutex_destroy(
- mysql_mutex_t *that
-#ifdef SAFE_MUTEX
- , const char *src_file, uint src_line
-#endif
- )
-{
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- {
- PSI_server->destroy_mutex(that->m_psi);
- that->m_psi= NULL;
- }
-#endif
-#ifdef SAFE_MUTEX
- return safe_mutex_destroy(&that->m_mutex, src_file, src_line);
-#else
- return pthread_mutex_destroy(&that->m_mutex);
-#endif
-}
-
-static inline int inline_mysql_mutex_lock(
- mysql_mutex_t *that
-#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE)
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_mutex_locker *locker= NULL;
- PSI_mutex_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_mutex_locker(&state, that->m_psi, PSI_MUTEX_LOCK);
- if (likely(locker != NULL))
- PSI_server->start_mutex_wait(locker, src_file, src_line);
- }
-#endif
-#ifdef SAFE_MUTEX
- result= safe_mutex_lock(&that->m_mutex, FALSE, src_file, src_line);
-#else
- result= pthread_mutex_lock(&that->m_mutex);
-#endif
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_mutex_wait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_mutex_trylock(
- mysql_mutex_t *that
-#if defined(SAFE_MUTEX) || defined (HAVE_PSI_INTERFACE)
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_mutex_locker *locker= NULL;
- PSI_mutex_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_mutex_locker(&state, that->m_psi, PSI_MUTEX_TRYLOCK);
- if (likely(locker != NULL))
- PSI_server->start_mutex_wait(locker, src_file, src_line);
- }
-#endif
-#ifdef SAFE_MUTEX
- result= safe_mutex_lock(&that->m_mutex, TRUE, src_file, src_line);
-#else
- result= pthread_mutex_trylock(&that->m_mutex);
-#endif
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_mutex_wait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_mutex_unlock(
- mysql_mutex_t *that
-#ifdef SAFE_MUTEX
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- PSI_server->unlock_mutex(that->m_psi);
-#endif
-#ifdef SAFE_MUTEX
- result= safe_mutex_unlock(&that->m_mutex, src_file, src_line);
-#else
- result= pthread_mutex_unlock(&that->m_mutex);
-#endif
- return result;
-}
-
-static inline int inline_mysql_rwlock_init(
-#ifdef HAVE_PSI_INTERFACE
- PSI_rwlock_key key,
-#endif
- mysql_rwlock_t *that)
-{
-#ifdef HAVE_PSI_INTERFACE
- that->m_psi= (PSI_server ? PSI_server->init_rwlock(key, &that->m_rwlock)
- : NULL);
-#else
- that->m_psi= NULL;
-#endif
- /*
- pthread_rwlockattr_t is not used in MySQL.
- */
- return my_rwlock_init(&that->m_rwlock, NULL);
-}
-
-#ifndef DISABLE_MYSQL_PRLOCK_H
-static inline int inline_mysql_prlock_init(
-#ifdef HAVE_PSI_INTERFACE
- PSI_rwlock_key key,
-#endif
- mysql_prlock_t *that)
-{
-#ifdef HAVE_PSI_INTERFACE
- that->m_psi= (PSI_server ? PSI_server->init_rwlock(key, &that->m_prlock)
- : NULL);
-#else
- that->m_psi= NULL;
-#endif
- return rw_pr_init(&that->m_prlock);
-}
-#endif
-
-static inline int inline_mysql_rwlock_destroy(
- mysql_rwlock_t *that)
-{
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- {
- PSI_server->destroy_rwlock(that->m_psi);
- that->m_psi= NULL;
- }
-#endif
- return rwlock_destroy(&that->m_rwlock);
-}
-
-#ifndef DISABLE_MYSQL_PRLOCK_H
-static inline int inline_mysql_prlock_destroy(
- mysql_prlock_t *that)
-{
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- {
- PSI_server->destroy_rwlock(that->m_psi);
- that->m_psi= NULL;
- }
-#endif
- return rw_pr_destroy(&that->m_prlock);
-}
-#endif
-
-static inline int inline_mysql_rwlock_rdlock(
- mysql_rwlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_READLOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_rdwait(locker, src_file, src_line);
- }
-#endif
- result= rw_rdlock(&that->m_rwlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_rdwait(locker, result);
-#endif
- return result;
-}
-
-#ifndef DISABLE_MYSQL_PRLOCK_H
-static inline int inline_mysql_prlock_rdlock(
- mysql_prlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_READLOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_rdwait(locker, src_file, src_line);
- }
-#endif
- result= rw_pr_rdlock(&that->m_prlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_rdwait(locker, result);
-#endif
- return result;
-}
-#endif
-
-static inline int inline_mysql_rwlock_wrlock(
- mysql_rwlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_WRITELOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_wrwait(locker, src_file, src_line);
- }
-#endif
- result= rw_wrlock(&that->m_rwlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_wrwait(locker, result);
-#endif
- return result;
-}
-
-#ifndef DISABLE_MYSQL_PRLOCK_H
-static inline int inline_mysql_prlock_wrlock(
- mysql_prlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_WRITELOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_wrwait(locker, src_file, src_line);
- }
-#endif
- result= rw_pr_wrlock(&that->m_prlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_wrwait(locker, result);
-#endif
- return result;
-}
-#endif
-
-static inline int inline_mysql_rwlock_tryrdlock(
- mysql_rwlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_TRYREADLOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_rdwait(locker, src_file, src_line);
- }
-#endif
- result= rw_tryrdlock(&that->m_rwlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_rdwait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_rwlock_trywrlock(
- mysql_rwlock_t *that
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_rwlock_locker *locker= NULL;
- PSI_rwlock_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_rwlock_locker(&state, that->m_psi,
- PSI_RWLOCK_TRYWRITELOCK);
- if (likely(locker != NULL))
- PSI_server->start_rwlock_wrwait(locker, src_file, src_line);
- }
-#endif
- result= rw_trywrlock(&that->m_rwlock);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_rwlock_wrwait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_rwlock_unlock(
- mysql_rwlock_t *that)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- PSI_server->unlock_rwlock(that->m_psi);
-#endif
- result= rw_unlock(&that->m_rwlock);
- return result;
-}
-
-#ifndef DISABLE_MYSQL_PRLOCK_H
-static inline int inline_mysql_prlock_unlock(
- mysql_prlock_t *that)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- PSI_server->unlock_rwlock(that->m_psi);
-#endif
- result= rw_pr_unlock(&that->m_prlock);
- return result;
-}
-#endif
-
-static inline int inline_mysql_cond_init(
-#ifdef HAVE_PSI_INTERFACE
- PSI_cond_key key,
-#endif
- mysql_cond_t *that,
- const pthread_condattr_t *attr)
-{
-#ifdef HAVE_PSI_INTERFACE
- that->m_psi= (PSI_server ? PSI_server->init_cond(key, &that->m_cond)
- : NULL);
-#else
- that->m_psi= NULL;
-#endif
- return pthread_cond_init(&that->m_cond, attr);
-}
-
-static inline int inline_mysql_cond_destroy(
- mysql_cond_t *that)
-{
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- {
- PSI_server->destroy_cond(that->m_psi);
- that->m_psi= NULL;
- }
-#endif
- return pthread_cond_destroy(&that->m_cond);
-}
-
-static inline int inline_mysql_cond_wait(
- mysql_cond_t *that,
- mysql_mutex_t *mutex
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_cond_locker *locker= NULL;
- PSI_cond_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_cond_locker(&state, that->m_psi, mutex->m_psi,
- PSI_COND_WAIT);
- if (likely(locker != NULL))
- PSI_server->start_cond_wait(locker, src_file, src_line);
- }
-#endif
- result= pthread_cond_wait(&that->m_cond, &mutex->m_mutex);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_cond_wait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_cond_timedwait(
- mysql_cond_t *that,
- mysql_mutex_t *mutex,
- struct timespec *abstime
-#ifdef HAVE_PSI_INTERFACE
- , const char *src_file, uint src_line
-#endif
- )
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- struct PSI_cond_locker *locker= NULL;
- PSI_cond_locker_state state;
- if (likely(PSI_server && that->m_psi))
- {
- locker= PSI_server->get_thread_cond_locker(&state, that->m_psi, mutex->m_psi,
- PSI_COND_TIMEDWAIT);
- if (likely(locker != NULL))
- PSI_server->start_cond_wait(locker, src_file, src_line);
- }
-#endif
- result= pthread_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime);
-#ifdef HAVE_PSI_INTERFACE
- if (likely(locker != NULL))
- PSI_server->end_cond_wait(locker, result);
-#endif
- return result;
-}
-
-static inline int inline_mysql_cond_signal(
- mysql_cond_t *that)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- PSI_server->signal_cond(that->m_psi);
-#endif
- result= pthread_cond_signal(&that->m_cond);
- return result;
-}
-
-static inline int inline_mysql_cond_broadcast(
- mysql_cond_t *that)
-{
- int result;
-#ifdef HAVE_PSI_INTERFACE
- if (likely(PSI_server && that->m_psi))
- PSI_server->broadcast_cond(that->m_psi);
-#endif
- result= pthread_cond_broadcast(&that->m_cond);
- return result;
-}
-
-#ifdef HAVE_PSI_INTERFACE
-static inline int inline_mysql_thread_create(
- PSI_thread_key key,
- pthread_t *thread, const pthread_attr_t *attr,
- void *(*start_routine)(void*), void *arg)
-{
- int result;
- if (likely(PSI_server != NULL))
- result= PSI_server->spawn_thread(key, thread, attr, start_routine, arg);
- else
- result= pthread_create(thread, attr, start_routine, arg);
- return result;
-}
-
-static inline void inline_mysql_thread_set_psi_id(ulong id)
-{
- if (likely(PSI_server != NULL))
- {
- struct PSI_thread *psi= PSI_server->get_thread();
- if (likely(psi != NULL))
- PSI_server->set_thread_id(psi, id);
- }
-}
-#endif
-
-#endif /* DISABLE_MYSQL_THREAD_H */
-
-/** @} (end of group Thread_instrumentation) */
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/psi/psi.h b/dep/mysqllite/include/mysql/psi/psi.h
deleted file mode 100644
index 562e4a80fd5..00000000000
--- a/dep/mysqllite/include/mysql/psi/psi.h
+++ /dev/null
@@ -1,1312 +0,0 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software Foundation,
- 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-#ifndef MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H
-#define MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H
-
-#ifndef _global_h
-/*
- Make sure a .c or .cc file contains an include to my_global.h first.
- When this include is missing, all the #ifdef HAVE_XXX have no effect,
- and the resulting binary won't build, or won't link,
- or will crash at runtime
- since various structures will have different binary definitions.
-*/
-#error "You must include my_global.h in the code for the build to be correct."
-#endif
-
-C_MODE_START
-
-/**
- @file mysql/psi/psi.h
- Performance schema instrumentation interface.
-
- @defgroup Instrumentation_interface Instrumentation Interface
- @ingroup Performance_schema
- @{
-*/
-
-/**
- Interface for an instrumented mutex.
- This is an opaque structure.
-*/
-struct PSI_mutex;
-
-/**
- Interface for an instrumented rwlock.
- This is an opaque structure.
-*/
-struct PSI_rwlock;
-
-/**
- Interface for an instrumented condition.
- This is an opaque structure.
-*/
-struct PSI_cond;
-
-/**
- Interface for an instrumented table share.
- This is an opaque structure.
-*/
-struct PSI_table_share;
-
-/**
- Interface for an instrumented table handle.
- This is an opaque structure.
-*/
-struct PSI_table;
-
-/**
- Interface for an instrumented thread.
- This is an opaque structure.
-*/
-struct PSI_thread;
-
-/**
- Interface for an instrumented file handle.
- This is an opaque structure.
-*/
-struct PSI_file;
-
-/** Entry point for the performance schema interface. */
-struct PSI_bootstrap
-{
- /**
- ABI interface finder.
- Calling this method with an interface version number returns either
- an instance of the ABI for this version, or NULL.
- @param version the interface version number to find
- @return a versioned interface (PSI_v1, PSI_v2 or PSI)
- @sa PSI_VERSION_1
- @sa PSI_v1
- @sa PSI_VERSION_2
- @sa PSI_v2
- @sa PSI_CURRENT_VERSION
- @sa PSI
- */
- void* (*get_interface)(int version);
-};
-
-#ifdef HAVE_PSI_INTERFACE
-
-/**
- @def PSI_VERSION_1
- Performance Schema Interface number for version 1.
- This version is supported.
-*/
-#define PSI_VERSION_1 1
-
-/**
- @def PSI_VERSION_2
- Performance Schema Interface number for version 2.
- This version is not implemented, it's a placeholder.
-*/
-#define PSI_VERSION_2 2
-
-/**
- @def PSI_CURRENT_VERSION
- Performance Schema Interface number for the most recent version.
- The most current version is @c PSI_VERSION_1
-*/
-#define PSI_CURRENT_VERSION 1
-
-#ifndef USE_PSI_2
-#ifndef USE_PSI_1
-#define USE_PSI_1
-#endif
-#endif
-
-/**
- Interface for an instrumented mutex operation.
- This is an opaque structure.
-*/
-struct PSI_mutex_locker;
-
-/**
- Interface for an instrumented rwlock operation.
- This is an opaque structure.
-*/
-
-struct PSI_rwlock_locker;
-/**
- Interface for an instrumented condition operation.
- This is an opaque structure.
-*/
-
-struct PSI_cond_locker;
-
-/**
- Interface for an instrumented file operation.
- This is an opaque structure.
-*/
-struct PSI_file_locker;
-
-/** Operation performed on an instrumented mutex. */
-enum PSI_mutex_operation
-{
- /** Lock. */
- PSI_MUTEX_LOCK= 0,
- /** Lock attempt. */
- PSI_MUTEX_TRYLOCK= 1
-};
-
-/** Operation performed on an instrumented rwlock. */
-enum PSI_rwlock_operation
-{
- /** Read lock. */
- PSI_RWLOCK_READLOCK= 0,
- /** Write lock. */
- PSI_RWLOCK_WRITELOCK= 1,
- /** Read lock attempt. */
- PSI_RWLOCK_TRYREADLOCK= 2,
- /** Write lock attempt. */
- PSI_RWLOCK_TRYWRITELOCK= 3
-};
-
-/** Operation performed on an instrumented condition. */
-enum PSI_cond_operation
-{
- /** Wait. */
- PSI_COND_WAIT= 0,
- /** Wait, with timeout. */
- PSI_COND_TIMEDWAIT= 1
-};
-
-/** Operation performed on an instrumented file. */
-enum PSI_file_operation
-{
- /** File creation, as in @c create(). */
- PSI_FILE_CREATE= 0,
- /** Temporary file creation, as in @c create_temp_file(). */
- PSI_FILE_CREATE_TMP= 1,
- /** File open, as in @c open(). */
- PSI_FILE_OPEN= 2,
- /** File open, as in @c fopen(). */
- PSI_FILE_STREAM_OPEN= 3,
- /** File close, as in @c close(). */
- PSI_FILE_CLOSE= 4,
- /** File close, as in @c fclose(). */
- PSI_FILE_STREAM_CLOSE= 5,
- /**
- Generic file read, such as @c fgets(), @c fgetc(), @c fread(), @c read(),
- @c pread().
- */
- PSI_FILE_READ= 6,
- /**
- Generic file write, such as @c fputs(), @c fputc(), @c fprintf(),
- @c vfprintf(), @c fwrite(), @c write(), @c pwrite().
- */
- PSI_FILE_WRITE= 7,
- /** Generic file seek, such as @c fseek() or @c seek(). */
- PSI_FILE_SEEK= 8,
- /** Generic file tell, such as @c ftell() or @c tell(). */
- PSI_FILE_TELL= 9,
- /** File flush, as in @c fflush(). */
- PSI_FILE_FLUSH= 10,
- /** File stat, as in @c stat(). */
- PSI_FILE_STAT= 11,
- /** File stat, as in @c fstat(). */
- PSI_FILE_FSTAT= 12,
- /** File chsize, as in @c my_chsize(). */
- PSI_FILE_CHSIZE= 13,
- /** File delete, such as @c my_delete() or @c my_delete_with_symlink(). */
- PSI_FILE_DELETE= 14,
- /** File rename, such as @c my_rename() or @c my_rename_with_symlink(). */
- PSI_FILE_RENAME= 15,
- /** File sync, as in @c fsync() or @c my_sync(). */
- PSI_FILE_SYNC= 16
-};
-
-/**
- Interface for an instrumented table operation.
- This is an opaque structure.
-*/
-struct PSI_table_locker;
-
-/**
- Instrumented mutex key.
- To instrument a mutex, a mutex key must be obtained using @c register_mutex.
- Using a zero key always disable the instrumentation.
-*/
-typedef unsigned int PSI_mutex_key;
-
-/**
- Instrumented rwlock key.
- To instrument a rwlock, a rwlock key must be obtained
- using @c register_rwlock.
- Using a zero key always disable the instrumentation.
-*/
-typedef unsigned int PSI_rwlock_key;
-
-/**
- Instrumented cond key.
- To instrument a condition, a condition key must be obtained
- using @c register_cond.
- Using a zero key always disable the instrumentation.
-*/
-typedef unsigned int PSI_cond_key;
-
-/**
- Instrumented thread key.
- To instrument a thread, a thread key must be obtained
- using @c register_thread.
- Using a zero key always disable the instrumentation.
-*/
-typedef unsigned int PSI_thread_key;
-
-/**
- Instrumented file key.
- To instrument a file, a file key must be obtained using @c register_file.
- Using a zero key always disable the instrumentation.
-*/
-typedef unsigned int PSI_file_key;
-
-/**
- @def USE_PSI_1
- Define USE_PSI_1 to use the interface version 1.
-*/
-
-/**
- @def USE_PSI_2
- Define USE_PSI_2 to use the interface version 2.
-*/
-
-/**
- @def HAVE_PSI_1
- Define HAVE_PSI_1 if the interface version 1 needs to be compiled in.
-*/
-
-/**
- @def HAVE_PSI_2
- Define HAVE_PSI_2 if the interface version 2 needs to be compiled in.
-*/
-
-/**
- Global flag.
- This flag indicate that an instrumentation point is a global variable,
- or a singleton.
-*/
-#define PSI_FLAG_GLOBAL (1 << 0)
-
-#ifdef USE_PSI_1
-#define HAVE_PSI_1
-#endif
-
-#ifdef HAVE_PSI_1
-
-/**
- @defgroup Group_PSI_v1 Application Binary Interface, version 1
- @ingroup Instrumentation_interface
- @{
-*/
-
-/**
- Mutex information.
- @since PSI_VERSION_1
- This structure is used to register an instrumented mutex.
-*/
-struct PSI_mutex_info_v1
-{
- /**
- Pointer to the key assigned to the registered mutex.
- */
- PSI_mutex_key *m_key;
- /**
- The name of the mutex to register.
- */
- const char *m_name;
- /**
- The flags of the mutex to register.
- @sa PSI_FLAG_GLOBAL
- */
- int m_flags;
-};
-
-/**
- Rwlock information.
- @since PSI_VERSION_1
- This structure is used to register an instrumented rwlock.
-*/
-struct PSI_rwlock_info_v1
-{
- /**
- Pointer to the key assigned to the registered rwlock.
- */
- PSI_rwlock_key *m_key;
- /**
- The name of the rwlock to register.
- */
- const char *m_name;
- /**
- The flags of the rwlock to register.
- @sa PSI_FLAG_GLOBAL
- */
- int m_flags;
-};
-
-/**
- Condition information.
- @since PSI_VERSION_1
- This structure is used to register an instrumented cond.
-*/
-struct PSI_cond_info_v1
-{
- /**
- Pointer to the key assigned to the registered cond.
- */
- PSI_cond_key *m_key;
- /**
- The name of the cond to register.
- */
- const char *m_name;
- /**
- The flags of the cond to register.
- @sa PSI_FLAG_GLOBAL
- */
- int m_flags;
-};
-
-/**
- Thread instrument information.
- @since PSI_VERSION_1
- This structure is used to register an instrumented thread.
-*/
-struct PSI_thread_info_v1
-{
- /**
- Pointer to the key assigned to the registered thread.
- */
- PSI_thread_key *m_key;
- /**
- The name of the thread instrument to register.
- */
- const char *m_name;
- /**
- The flags of the thread to register.
- @sa PSI_FLAG_GLOBAL
- */
- int m_flags;
-};
-
-/**
- File instrument information.
- @since PSI_VERSION_1
- This structure is used to register an instrumented file.
-*/
-struct PSI_file_info_v1
-{
- /**
- Pointer to the key assigned to the registered file.
- */
- PSI_file_key *m_key;
- /**
- The name of the file instrument to register.
- */
- const char *m_name;
- /**
- The flags of the file instrument to register.
- @sa PSI_FLAG_GLOBAL
- */
- int m_flags;
-};
-
-/**
- State data storage for @c get_thread_mutex_locker_v1_t.
- This structure provide temporary storage to a mutex locker.
- The content of this structure is considered opaque,
- the fields are only hints of what an implementation
- of the psi interface can use.
- This memory is provided by the instrumented code for performance reasons.
- @sa get_thread_mutex_locker_v1_t
-*/
-struct PSI_mutex_locker_state_v1
-{
- /** Internal state. */
- uint m_flags;
- /** Current mutex. */
- struct PSI_mutex *m_mutex;
- /** Current thread. */
- struct PSI_thread *m_thread;
- /** Timer start. */
- ulonglong m_timer_start;
- /** Timer function. */
- ulonglong (*m_timer)(void);
- /** Current operation. */
- enum PSI_mutex_operation m_operation;
- /** Source file. */
- const char* m_src_file;
- /** Source line number. */
- int m_src_line;
- /** Internal data. */
- void *m_wait;
-};
-
-/**
- State data storage for @c get_thread_rwlock_locker_v1_t.
- This structure provide temporary storage to a rwlock locker.
- The content of this structure is considered opaque,
- the fields are only hints of what an implementation
- of the psi interface can use.
- This memory is provided by the instrumented code for performance reasons.
- @sa get_thread_rwlock_locker_v1_t
-*/
-struct PSI_rwlock_locker_state_v1
-{
- /** Internal state. */
- uint m_flags;
- /** Current rwlock. */
- struct PSI_rwlock *m_rwlock;
- /** Current thread. */
- struct PSI_thread *m_thread;
- /** Timer start. */
- ulonglong m_timer_start;
- /** Timer function. */
- ulonglong (*m_timer)(void);
- /** Current operation. */
- enum PSI_rwlock_operation m_operation;
- /** Source file. */
- const char* m_src_file;
- /** Source line number. */
- int m_src_line;
- /** Internal data. */
- void *m_wait;
-};
-
-/**
- State data storage for @c get_thread_cond_locker_v1_t.
- This structure provide temporary storage to a condition locker.
- The content of this structure is considered opaque,
- the fields are only hints of what an implementation
- of the psi interface can use.
- This memory is provided by the instrumented code for performance reasons.
- @sa get_thread_cond_locker_v1_t
-*/
-struct PSI_cond_locker_state_v1
-{
- /** Internal state. */
- uint m_flags;
- /** Current condition. */
- struct PSI_cond *m_cond;
- /** Current mutex. */
- struct PSI_mutex *m_mutex;
- /** Current thread. */
- struct PSI_thread *m_thread;
- /** Timer start. */
- ulonglong m_timer_start;
- /** Timer function. */
- ulonglong (*m_timer)(void);
- /** Current operation. */
- enum PSI_cond_operation m_operation;
- /** Source file. */
- const char* m_src_file;
- /** Source line number. */
- int m_src_line;
- /** Internal data. */
- void *m_wait;
-};
-
-/**
- State data storage for @c get_thread_file_name_locker_v1_t.
- This structure provide temporary storage to a file locker.
- The content of this structure is considered opaque,
- the fields are only hints of what an implementation
- of the psi interface can use.
- This memory is provided by the instrumented code for performance reasons.
- @sa get_thread_file_name_locker_v1_t
- @sa get_thread_file_stream_locker_v1_t
- @sa get_thread_file_descriptor_locker_v1_t
-*/
-struct PSI_file_locker_state_v1
-{
- /** Internal state. */
- uint m_flags;
- /** Current file. */
- struct PSI_file *m_file;
- /** Current thread. */
- struct PSI_thread *m_thread;
- /** Operation number of bytes. */
- size_t m_number_of_bytes;
- /** Timer start. */
- ulonglong m_timer_start;
- /** Timer function. */
- ulonglong (*m_timer)(void);
- /** Current operation. */
- enum PSI_file_operation m_operation;
- /** Source file. */
- const char* m_src_file;
- /** Source line number. */
- int m_src_line;
- /** Internal data. */
- void *m_wait;
-};
-
-/**
- State data storage for @c get_thread_table_locker_v1_t.
- This structure provide temporary storage to a table locker.
- The content of this structure is considered opaque,
- the fields are only hints of what an implementation
- of the psi interface can use.
- This memory is provided by the instrumented code for performance reasons.
- @sa get_thread_table_locker_v1_t
-*/
-struct PSI_table_locker_state_v1
-{
- /** Internal state. */
- uint m_flags;
- /** Current table handle. */
- struct PSI_table *m_table;
- /** Current table share. */
- struct PSI_table_share *m_table_share;
- /** Instrumentation class. */
- void *m_class;
- /** Current thread. */
- struct PSI_thread *m_thread;
- /** Timer start. */
- ulonglong m_timer_start;
- /** Timer function. */
- ulonglong (*m_timer)(void);
- /* Current operation (waiting for WL#4895). */
- /* enum PSI_table_operation m_operation; */
- /** Current table io index. */
- uint m_index;
- /** Current table lock index. */
- uint m_lock_index;
- /** Source file. */
- const char* m_src_file;
- /** Source line number. */
- int m_src_line;
- /** Internal data. */
- void *m_wait;
-};
-
-/* Using typedef to make reuse between PSI_v1 and PSI_v2 easier later. */
-
-/**
- Mutex registration API.
- @param category a category name (typically a plugin name)
- @param info an array of mutex info to register
- @param count the size of the info array
-*/
-typedef void (*register_mutex_v1_t)
- (const char *category, struct PSI_mutex_info_v1 *info, int count);
-
-/**
- Rwlock registration API.
- @param category a category name (typically a plugin name)
- @param info an array of rwlock info to register
- @param count the size of the info array
-*/
-typedef void (*register_rwlock_v1_t)
- (const char *category, struct PSI_rwlock_info_v1 *info, int count);
-
-/**
- Cond registration API.
- @param category a category name (typically a plugin name)
- @param info an array of cond info to register
- @param count the size of the info array
-*/
-typedef void (*register_cond_v1_t)
- (const char *category, struct PSI_cond_info_v1 *info, int count);
-
-/**
- Thread registration API.
- @param category a category name (typically a plugin name)
- @param info an array of thread info to register
- @param count the size of the info array
-*/
-typedef void (*register_thread_v1_t)
- (const char *category, struct PSI_thread_info_v1 *info, int count);
-
-/**
- File registration API.
- @param category a category name (typically a plugin name)
- @param info an array of file info to register
- @param count the size of the info array
-*/
-typedef void (*register_file_v1_t)
- (const char *category, struct PSI_file_info_v1 *info, int count);
-
-/**
- Mutex instrumentation initialisation API.
- @param key the registered mutex key
- @param identity the address of the mutex itself
- @return an instrumented mutex
-*/
-typedef struct PSI_mutex* (*init_mutex_v1_t)
- (PSI_mutex_key key, const void *identity);
-
-/**
- Mutex instrumentation destruction API.
- @param mutex the mutex to destroy
-*/
-typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex);
-
-/**
- Rwlock instrumentation initialisation API.
- @param key the registered rwlock key
- @param identity the address of the rwlock itself
- @return an instrumented rwlock
-*/
-typedef struct PSI_rwlock* (*init_rwlock_v1_t)
- (PSI_rwlock_key key, const void *identity);
-
-/**
- Rwlock instrumentation destruction API.
- @param rwlock the rwlock to destroy
-*/
-typedef void (*destroy_rwlock_v1_t)(struct PSI_rwlock *rwlock);
-
-/**
- Cond instrumentation initialisation API.
- @param key the registered key
- @param identity the address of the rwlock itself
- @return an instrumented cond
-*/
-typedef struct PSI_cond* (*init_cond_v1_t)
- (PSI_cond_key key, const void *identity);
-
-/**
- Cond instrumentation destruction API.
- @param cond the rcond to destroy
-*/
-typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond);
-
-/**
- Acquire a table info by name.
- @param schema_name name of the table schema
- @param schema_name_length length of schema_name
- @param table_name name of the table
- @param table_name_length length of table_name
- @param identity table identity pointer, typically the table share
- @return a table info, or NULL if the table is not instrumented
-*/
-typedef struct PSI_table_share* (*get_table_share_v1_t)
- (const char *schema_name, int schema_name_length, const char *table_name,
- int table_name_length, const void *identity);
-
-/**
- Release a table share.
- @param info the table share to release
-*/
-typedef void (*release_table_share_v1_t)(struct PSI_table_share *share);
-
-/**
- Open an instrumentation table handle.
- @param share the table to open
- @param identity table handle identity
- @return a table handle, or NULL
-*/
-typedef struct PSI_table* (*open_table_v1_t)
- (struct PSI_table_share *share, const void *identity);
-
-/**
- Close an instrumentation table handle.
- Note that the table handle is invalid after this call.
- @param table the table handle to close
-*/
-typedef void (*close_table_v1_t)(struct PSI_table *table);
-
-/**
- Create a file instrumentation for a created file.
- This method does not create the file itself, but is used to notify the
- instrumentation interface that a file was just created.
- @param key the file instrumentation key for this file
- @param name the file name
- @param file the file handle
-*/
-typedef void (*create_file_v1_t)(PSI_file_key key, const char *name,
- File file);
-
-/**
- Spawn a thread.
- This method creates a new thread, with instrumentation.
- @param key the instrumentation key for this thread
- @param thread the resulting thread
- @param attr the thread attributes
- @param start_routine the thread start routine
- @param arg the thread start routine argument
-*/
-typedef int (*spawn_thread_v1_t)(PSI_thread_key key,
- pthread_t *thread,
- const pthread_attr_t *attr,
- void *(*start_routine)(void*), void *arg);
-
-/**
- Create instrumentation for a thread.
- @param key the registered key
- @param identity an address typical of the thread
- @return an instrumented thread
-*/
-typedef struct PSI_thread* (*new_thread_v1_t)
- (PSI_thread_key key, const void *identity, ulong thread_id);
-
-/**
- Assign an id to an instrumented thread.
- @param thread the instrumented thread
- @param id the id to assign
-*/
-typedef void (*set_thread_id_v1_t)(struct PSI_thread *thread,
- unsigned long id);
-
-/**
- Get the instrumentation for the running thread.
- For this function to return a result,
- the thread instrumentation must have been attached to the
- running thread using @c set_thread()
- @return the instrumentation for the running thread
-*/
-typedef struct PSI_thread* (*get_thread_v1_t)(void);
-
-/**
- Attach a thread instrumentation to the running thread.
- In case of thread pools, this method should be called when
- a worker thread picks a work item and runs it.
- Also, this method should be called if the instrumented code does not
- keep the pointer returned by @c new_thread() and relies on @c get_thread()
- instead.
- @param thread the thread instrumentation
-*/
-typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
-
-/** Delete the current thread instrumentation. */
-typedef void (*delete_current_thread_v1_t)(void);
-
-/** Delete a thread instrumentation. */
-typedef void (*delete_thread_v1_t)(struct PSI_thread *thread);
-
-/**
- Get a mutex instrumentation locker.
- @param state data storage for the locker
- @param mutex the instrumented mutex to lock
- @return a mutex locker, or NULL
-*/
-typedef struct PSI_mutex_locker* (*get_thread_mutex_locker_v1_t)
- (struct PSI_mutex_locker_state_v1 *state,
- struct PSI_mutex *mutex,
- enum PSI_mutex_operation op);
-
-/**
- Get a rwlock instrumentation locker.
- @param state data storage for the locker
- @param rwlock the instrumented rwlock to lock
- @return a rwlock locker, or NULL
-*/
-typedef struct PSI_rwlock_locker* (*get_thread_rwlock_locker_v1_t)
- (struct PSI_rwlock_locker_state_v1 *state,
- struct PSI_rwlock *rwlock,
- enum PSI_rwlock_operation op);
-
-/**
- Get a cond instrumentation locker.
- @param state data storage for the locker
- @param cond the instrumented condition to wait on
- @param mutex the instrumented mutex associated with the condition
- @return a condition locker, or NULL
-*/
-typedef struct PSI_cond_locker* (*get_thread_cond_locker_v1_t)
- (struct PSI_cond_locker_state_v1 *state,
- struct PSI_cond *cond, struct PSI_mutex *mutex,
- enum PSI_cond_operation op);
-
-/**
- Get a table instrumentation locker.
- @param state data storage for the locker
- @param table the instrumented table to lock
- @return a table locker, or NULL
-*/
-typedef struct PSI_table_locker* (*get_thread_table_locker_v1_t)
- (struct PSI_table_locker_state_v1 *state,
- struct PSI_table *table);
-
-/**
- Get a file instrumentation locker, for opening or creating a file.
- @param state data storage for the locker
- @param key the file instrumentation key
- @param op the operation to perform
- @param name the file name
- @param identity a pointer representative of this file.
- @return a file locker, or NULL
-*/
-typedef struct PSI_file_locker* (*get_thread_file_name_locker_v1_t)
- (struct PSI_file_locker_state_v1 *state,
- PSI_file_key key, enum PSI_file_operation op, const char *name,
- const void *identity);
-
-/**
- Get a file stream instrumentation locker.
- @param state data storage for the locker
- @param file the file stream to access
- @param op the operation to perform
- @return a file locker, or NULL
-*/
-typedef struct PSI_file_locker* (*get_thread_file_stream_locker_v1_t)
- (struct PSI_file_locker_state_v1 *state,
- struct PSI_file *file, enum PSI_file_operation op);
-
-/**
- Get a file instrumentation locker.
- @param state data storage for the locker
- @param file the file descriptor to access
- @param op the operation to perform
- @return a file locker, or NULL
-*/
-typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t)
- (struct PSI_file_locker_state_v1 *state,
- File file, enum PSI_file_operation op);
-
-/**
- Record a mutex instrumentation unlock event.
- @param mutex the mutex instrumentation
-*/
-typedef void (*unlock_mutex_v1_t)
- (struct PSI_mutex *mutex);
-
-/**
- Record a rwlock instrumentation unlock event.
- @param rwlock the rwlock instrumentation
-*/
-typedef void (*unlock_rwlock_v1_t)
- (struct PSI_rwlock *rwlock);
-
-/**
- Record a condition instrumentation signal event.
- @param cond the cond instrumentation
-*/
-typedef void (*signal_cond_v1_t)
- (struct PSI_cond *cond);
-
-/**
- Record a condition instrumentation broadcast event.
- @param cond the cond instrumentation
-*/
-typedef void (*broadcast_cond_v1_t)
- (struct PSI_cond *cond);
-
-/**
- Record a mutex instrumentation wait start event.
- @param locker a thread locker for the running thread
-*/
-typedef void (*start_mutex_wait_v1_t)
- (struct PSI_mutex_locker *locker, const char *src_file, uint src_line);
-
-/**
- Record a mutex instrumentation wait end event.
- @param locker a thread locker for the running thread
- @param rc the wait operation return code
-*/
-typedef void (*end_mutex_wait_v1_t)
- (struct PSI_mutex_locker *locker, int rc);
-
-/**
- Record a rwlock instrumentation read wait start event.
- @param locker a thread locker for the running thread
- @param must must block: 1 for lock, 0 for trylock
-*/
-typedef void (*start_rwlock_rdwait_v1_t)
- (struct PSI_rwlock_locker *locker, const char *src_file, uint src_line);
-
-/**
- Record a rwlock instrumentation read wait end event.
- @param locker a thread locker for the running thread
- @param rc the wait operation return code
-*/
-typedef void (*end_rwlock_rdwait_v1_t)
- (struct PSI_rwlock_locker *locker, int rc);
-
-/**
- Record a rwlock instrumentation write wait start event.
- @param locker a thread locker for the running thread
- @param must must block: 1 for lock, 0 for trylock
-*/
-typedef void (*start_rwlock_wrwait_v1_t)
- (struct PSI_rwlock_locker *locker, const char *src_file, uint src_line);
-
-/**
- Record a rwlock instrumentation write wait end event.
- @param locker a thread locker for the running thread
- @param rc the wait operation return code
-*/
-typedef void (*end_rwlock_wrwait_v1_t)
- (struct PSI_rwlock_locker *locker, int rc);
-
-/**
- Record a condition instrumentation wait start event.
- @param locker a thread locker for the running thread
- @param must must block: 1 for wait, 0 for timedwait
-*/
-typedef void (*start_cond_wait_v1_t)
- (struct PSI_cond_locker *locker, const char *src_file, uint src_line);
-
-/**
- Record a condition instrumentation wait end event.
- @param locker a thread locker for the running thread
- @param rc the wait operation return code
-*/
-typedef void (*end_cond_wait_v1_t)
- (struct PSI_cond_locker *locker, int rc);
-
-/**
- Record a table instrumentation wait start event.
- @param locker a table locker for the running thread
- @param file the source file name
- @param line the source line number
-*/
-typedef void (*start_table_wait_v1_t)
- (struct PSI_table_locker *locker, const char *src_file, uint src_line);
-
-/**
- Record a table instrumentation wait end event.
- @param locker a table locker for the running thread
-*/
-typedef void (*end_table_wait_v1_t)(struct PSI_table_locker *locker);
-
-/**
- Start a file instrumentation open operation.
- @param locker the file locker
- @param op the operation to perform
- @param src_file the source file name
- @param src_line the source line number
- @return an instrumented file handle
-*/
-typedef struct PSI_file* (*start_file_open_wait_v1_t)
- (struct PSI_file_locker *locker, const char *src_file, uint src_line);
-
-/**
- End a file instrumentation open operation, for file streams.
- @param locker the file locker.
-*/
-typedef void (*end_file_open_wait_v1_t)(struct PSI_file_locker *locker);
-
-/**
- End a file instrumentation open operation, for non stream files.
- @param locker the file locker.
- @param file the file number assigned by open() or create() for this file.
-*/
-typedef void (*end_file_open_wait_and_bind_to_descriptor_v1_t)
- (struct PSI_file_locker *locker, File file);
-
-/**
- Record a file instrumentation start event.
- @param locker a file locker for the running thread
- @param op file operation to be performed
- @param count the number of bytes requested, or 0 if not applicable
- @param src_file the source file name
- @param src_line the source line number
-*/
-typedef void (*start_file_wait_v1_t)
- (struct PSI_file_locker *locker, size_t count,
- const char *src_file, uint src_line);
-
-/**
- Record a file instrumentation end event.
- Note that for file close operations, the instrumented file handle
- associated with the file (which was provided to obtain a locker)
- is invalid after this call.
- @param locker a file locker for the running thread
- @param count the number of bytes actually used in the operation,
- or 0 if not applicable, or -1 if the operation failed
- @sa get_thread_file_name_locker
- @sa get_thread_file_stream_locker
- @sa get_thread_file_descriptor_locker
-*/
-typedef void (*end_file_wait_v1_t)
- (struct PSI_file_locker *locker, size_t count);
-
-/**
- Performance Schema Interface, version 1.
- @since PSI_VERSION_1
-*/
-struct PSI_v1
-{
- /** @sa register_mutex_v1_t. */
- register_mutex_v1_t register_mutex;
- /** @sa register_rwlock_v1_t. */
- register_rwlock_v1_t register_rwlock;
- /** @sa register_cond_v1_t. */
- register_cond_v1_t register_cond;
- /** @sa register_thread_v1_t. */
- register_thread_v1_t register_thread;
- /** @sa register_file_v1_t. */
- register_file_v1_t register_file;
- /** @sa init_mutex_v1_t. */
- init_mutex_v1_t init_mutex;
- /** @sa destroy_mutex_v1_t. */
- destroy_mutex_v1_t destroy_mutex;
- /** @sa init_rwlock_v1_t. */
- init_rwlock_v1_t init_rwlock;
- /** @sa destroy_rwlock_v1_t. */
- destroy_rwlock_v1_t destroy_rwlock;
- /** @sa init_cond_v1_t. */
- init_cond_v1_t init_cond;
- /** @sa destroy_cond_v1_t. */
- destroy_cond_v1_t destroy_cond;
- /** @sa get_table_share_v1_t. */
- get_table_share_v1_t get_table_share;
- /** @sa release_table_share_v1_t. */
- release_table_share_v1_t release_table_share;
- /** @sa open_table_v1_t. */
- open_table_v1_t open_table;
- /** @sa close_table_v1_t. */
- close_table_v1_t close_table;
- /** @sa create_file_v1_t. */
- create_file_v1_t create_file;
- /** @sa spawn_thread_v1_t. */
- spawn_thread_v1_t spawn_thread;
- /** @sa new_thread_v1_t. */
- new_thread_v1_t new_thread;
- /** @sa set_thread_id_v1_t. */
- set_thread_id_v1_t set_thread_id;
- /** @sa get_thread_v1_t. */
- get_thread_v1_t get_thread;
- /** @sa set_thread_v1_t. */
- set_thread_v1_t set_thread;
- /** @sa delete_current_thread_v1_t. */
- delete_current_thread_v1_t delete_current_thread;
- /** @sa delete_thread_v1_t. */
- delete_thread_v1_t delete_thread;
- /** @sa get_thread_mutex_locker_v1_t. */
- get_thread_mutex_locker_v1_t get_thread_mutex_locker;
- /** @sa get_thread_rwlock_locker_v1_t. */
- get_thread_rwlock_locker_v1_t get_thread_rwlock_locker;
- /** @sa get_thread_cond_locker_v1_t. */
- get_thread_cond_locker_v1_t get_thread_cond_locker;
- /** @sa get_thread_table_locker_v1_t. */
- get_thread_table_locker_v1_t get_thread_table_locker;
- /** @sa get_thread_file_name_locker_v1_t. */
- get_thread_file_name_locker_v1_t get_thread_file_name_locker;
- /** @sa get_thread_file_stream_locker_v1_t. */
- get_thread_file_stream_locker_v1_t get_thread_file_stream_locker;
- /** @sa get_thread_file_descriptor_locker_v1_t. */
- get_thread_file_descriptor_locker_v1_t get_thread_file_descriptor_locker;
- /** @sa unlock_mutex_v1_t. */
- unlock_mutex_v1_t unlock_mutex;
- /** @sa unlock_rwlock_v1_t. */
- unlock_rwlock_v1_t unlock_rwlock;
- /** @sa signal_cond_v1_t. */
- signal_cond_v1_t signal_cond;
- /** @sa broadcast_cond_v1_t. */
- broadcast_cond_v1_t broadcast_cond;
- /** @sa start_mutex_wait_v1_t. */
- start_mutex_wait_v1_t start_mutex_wait;
- /** @sa end_mutex_wait_v1_t. */
- end_mutex_wait_v1_t end_mutex_wait;
- /** @sa start_rwlock_rdwait_v1_t. */
- start_rwlock_rdwait_v1_t start_rwlock_rdwait;
- /** @sa end_rwlock_rdwait_v1_t. */
- end_rwlock_rdwait_v1_t end_rwlock_rdwait;
- /** @sa start_rwlock_wrwait_v1_t. */
- start_rwlock_wrwait_v1_t start_rwlock_wrwait;
- /** @sa end_rwlock_wrwait_v1_t. */
- end_rwlock_wrwait_v1_t end_rwlock_wrwait;
- /** @sa start_cond_wait_v1_t. */
- start_cond_wait_v1_t start_cond_wait;
- /** @sa end_cond_wait_v1_t. */
- end_cond_wait_v1_t end_cond_wait;
- /** @sa start_table_wait_v1_t. */
- start_table_wait_v1_t start_table_wait;
- /** @sa end_table_wait_v1_t. */
- end_table_wait_v1_t end_table_wait;
- /** @sa start_file_open_wait_v1_t. */
- start_file_open_wait_v1_t start_file_open_wait;
- /** @sa end_file_open_wait_v1_t. */
- end_file_open_wait_v1_t end_file_open_wait;
- /** @sa end_file_open_wait_and_bind_to_descriptor_v1_t. */
- end_file_open_wait_and_bind_to_descriptor_v1_t
- end_file_open_wait_and_bind_to_descriptor;
- /** @sa start_file_wait_v1_t. */
- start_file_wait_v1_t start_file_wait;
- /** @sa end_file_wait_v1_t. */
- end_file_wait_v1_t end_file_wait;
-};
-
-/** @} (end of group Group_PSI_v1) */
-
-#endif /* HAVE_PSI_1 */
-
-#ifdef USE_PSI_2
-#define HAVE_PSI_2
-#endif
-
-#ifdef HAVE_PSI_2
-
-/**
- @defgroup Group_PSI_v2 Application Binary Interface, version 2
- @ingroup Instrumentation_interface
- @{
-*/
-
-/**
- Performance Schema Interface, version 2.
- This is a placeholder, this interface is not defined yet.
- @since PSI_VERSION_2
-*/
-struct PSI_v2
-{
- /** Placeholder */
- int placeholder;
- /* ... extended interface ... */
-};
-
-/** Placeholder */
-struct PSI_mutex_info_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-/** Placeholder */
-struct PSI_rwlock_info_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-/** Placeholder */
-struct PSI_cond_info_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-/** Placeholder */
-struct PSI_thread_info_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-/** Placeholder */
-struct PSI_file_info_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-struct PSI_mutex_locker_state_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-struct PSI_rwlock_locker_state_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-struct PSI_cond_locker_state_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-struct PSI_file_locker_state_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-struct PSI_table_locker_state_v2
-{
- /** Placeholder */
- int placeholder;
-};
-
-/** @} (end of group Group_PSI_v2) */
-
-#endif /* HAVE_PSI_2 */
-
-/**
- @typedef PSI
- The instrumentation interface for the current version.
- @sa PSI_CURRENT_VERSION
-*/
-
-/**
- @typedef PSI_mutex_info
- The mutex information structure for the current version.
-*/
-
-/**
- @typedef PSI_rwlock_info
- The rwlock information structure for the current version.
-*/
-
-/**
- @typedef PSI_cond_info
- The cond information structure for the current version.
-*/
-
-/**
- @typedef PSI_thread_info
- The thread information structure for the current version.
-*/
-
-/**
- @typedef PSI_file_info
- The file information structure for the current version.
-*/
-
-/* Export the required version */
-#ifdef USE_PSI_1
-typedef struct PSI_v1 PSI;
-typedef struct PSI_mutex_info_v1 PSI_mutex_info;
-typedef struct PSI_rwlock_info_v1 PSI_rwlock_info;
-typedef struct PSI_cond_info_v1 PSI_cond_info;
-typedef struct PSI_thread_info_v1 PSI_thread_info;
-typedef struct PSI_file_info_v1 PSI_file_info;
-typedef struct PSI_mutex_locker_state_v1 PSI_mutex_locker_state;
-typedef struct PSI_rwlock_locker_state_v1 PSI_rwlock_locker_state;
-typedef struct PSI_cond_locker_state_v1 PSI_cond_locker_state;
-typedef struct PSI_file_locker_state_v1 PSI_file_locker_state;
-typedef struct PSI_table_locker_state_v1 PSI_table_locker_state;
-#endif
-
-#ifdef USE_PSI_2
-typedef struct PSI_v2 PSI;
-typedef struct PSI_mutex_info_v2 PSI_mutex_info;
-typedef struct PSI_rwlock_info_v2 PSI_rwlock_info;
-typedef struct PSI_cond_info_v2 PSI_cond_info;
-typedef struct PSI_thread_info_v2 PSI_thread_info;
-typedef struct PSI_file_info_v2 PSI_file_info;
-typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state;
-typedef struct PSI_rwlock_locker_state_v2 PSI_rwlock_locker_state;
-typedef struct PSI_cond_locker_state_v2 PSI_cond_locker_state;
-typedef struct PSI_file_locker_state_v2 PSI_file_locker_state;
-typedef struct PSI_table_locker_state_v2 PSI_table_locker_state;
-#endif
-
-#else /* HAVE_PSI_INTERFACE */
-
-/**
- Dummy structure, used to declare PSI_server when no instrumentation
- is available.
- The content does not matter, since PSI_server will be NULL.
-*/
-struct PSI_none
-{
- int opaque;
-};
-typedef struct PSI_none PSI;
-
-#endif /* HAVE_PSI_INTERFACE */
-
-extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
-
-/** @} */
-
-C_MODE_END
-#endif /* MYSQL_PERFORMANCE_SCHEMA_INTERFACE_H */
-
diff --git a/dep/mysqllite/include/mysql/psi/psi_abi_v1.h b/dep/mysqllite/include/mysql/psi/psi_abi_v1.h
deleted file mode 100644
index 0f62291696f..00000000000
--- a/dep/mysqllite/include/mysql/psi/psi_abi_v1.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software Foundation,
- 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-/**
- @file mysql/psi/psi_abi_v1.h
- ABI check for mysql/psi/psi.h, when using PSI_VERSION_1.
- This file is only used to automate detection of changes between versions.
- Do not include this file, include mysql/psi/psi.h instead.
-*/
-#define USE_PSI_1
-#define HAVE_PSI_INTERFACE
-#define _global_h
-#include "mysql/psi/psi.h"
-
diff --git a/dep/mysqllite/include/mysql/psi/psi_abi_v2.h b/dep/mysqllite/include/mysql/psi/psi_abi_v2.h
deleted file mode 100644
index 08bca609b41..00000000000
--- a/dep/mysqllite/include/mysql/psi/psi_abi_v2.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software Foundation,
- 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
-
-/**
- @file mysql/psi/psi_abi_v1.h
- ABI check for mysql/psi/psi.h, when using PSI_VERSION_2.
- This file is only used to automate detection of changes between versions.
- Do not include this file, include mysql/psi/psi.h instead.
-*/
-#define USE_PSI_2
-#define HAVE_PSI_INTERFACE
-#define _global_h
-#include "mysql/psi/psi.h"
-
diff --git a/dep/mysqllite/include/mysql/service_my_snprintf.h b/dep/mysqllite/include/mysql/service_my_snprintf.h
deleted file mode 100644
index f6b4aa39dc5..00000000000
--- a/dep/mysqllite/include/mysql/service_my_snprintf.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#ifndef MYSQL_SERVICE_MY_SNPRINTF_INCLUDED
-/* Copyright (C) 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
- my_snprintf service
-
- Portable and limited vsnprintf() implementation.
-
- This is a portable, limited vsnprintf() implementation, with some
- extra features. "Portable" means that it'll produce identical result
- on all platforms (for example, on Windows and Linux system printf %e
- formats the exponent differently, on different systems %p either
- prints leading 0x or not, %s may accept null pointer or crash on
- it). "Limited" means that it does not support all the C89 features.
- But it supports few extensions, not in any standard.
-
- my_vsnprintf(to, n, fmt, ap)
-
- @param[out] to A buffer to store the result in
- @param[in] n Store up to n-1 characters, followed by an end 0
- @param[in] fmt printf-like format string
- @param[in] ap Arguments
-
- @return a number of bytes written to a buffer *excluding* terminating '\0'
-
- @post
- The syntax of a format string is generally the same:
- % <flag> <width> <precision> <length modifier> <format>
- where everithing but the format is optional.
-
- Three one-character flags are recognized:
- '0' has the standard zero-padding semantics;
- '-' is parsed, but silently ignored;
- '`' (backtick) is only supported for strings (%s) and means that the
- string will be quoted according to MySQL identifier quoting rules.
-
- Both <width> and <precision> can be specified as numbers or '*'.
-
- <length modifier> can be 'l', 'll', or 'z'.
-
- Supported formats are 's' (null pointer is accepted, printed as
- "(null)"), 'b' (extension, see below), 'c', 'd', 'i', 'u', 'x', 'o',
- 'X', 'p' (works as 0x%x).
-
- Standard syntax for positional arguments $n is supported.
-
- Extensions:
-
- Flag '`' (backtick): see above.
-
- Format 'b': binary buffer, prints exactly <precision> bytes from the
- argument, without stopping at '\0'.
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef MYSQL_ABI_CHECK
-#include <stdarg.h>
-#include <stdlib.h>
-#endif
-
-extern struct my_snprintf_service_st {
- size_t (*my_snprintf_type)(char*, size_t, const char*, ...);
- size_t (*my_vsnprintf_type)(char *, size_t, const char*, va_list);
-} *my_snprintf_service;
-
-#ifdef MYSQL_DYNAMIC_PLUGIN
-
-#define my_vsnprintf my_snprintf_service->my_vsnprintf_type
-#define my_snprintf my_snprintf_service->my_snprintf_type
-
-#else
-
-size_t my_snprintf(char* to, size_t n, const char* fmt, ...);
-size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#define MYSQL_SERVICE_MY_SNPRINTF_INCLUDED
-#endif
-
diff --git a/dep/mysqllite/include/mysql/service_thd_alloc.h b/dep/mysqllite/include/mysql/service_thd_alloc.h
deleted file mode 100644
index 7061c2bd4d5..00000000000
--- a/dep/mysqllite/include/mysql/service_thd_alloc.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#ifndef MYSQL_SERVICE_THD_ALLOC_INCLUDED
-/* Copyright (C) 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
- This service provdes functions to allocate memory in a connection local
- memory pool. The memory allocated there will be automatically freed at the
- end of the statement, don't use it for allocations that should live longer
- than that. For short living allocations this is more efficient than
- using my_malloc and friends, and automatic "garbage collection" allows not
- to think about memory leaks.
-
- The pool is best for small to medium objects, don't use it for large
- allocations - they are better served with my_malloc.
-*/
-
-#ifndef MYSQL_ABI_CHECK
-#include <stdlib.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct st_mysql_lex_string
-{
- char *str;
- size_t length;
-};
-typedef struct st_mysql_lex_string MYSQL_LEX_STRING;
-
-extern struct thd_alloc_service_st {
- void *(*thd_alloc_func)(MYSQL_THD, unsigned int);
- void *(*thd_calloc_func)(MYSQL_THD, unsigned int);
- char *(*thd_strdup_func)(MYSQL_THD, const char *);
- char *(*thd_strmake_func)(MYSQL_THD, const char *, unsigned int);
- void *(*thd_memdup_func)(MYSQL_THD, const void*, unsigned int);
- MYSQL_LEX_STRING *(*thd_make_lex_string_func)(MYSQL_THD, MYSQL_LEX_STRING *,
- const char *, unsigned int, int);
-} *thd_alloc_service;
-
-#ifdef MYSQL_DYNAMIC_PLUGIN
-
-#define thd_alloc(thd,size) (thd_alloc_service->thd_alloc_func((thd), (size)))
-
-#define thd_calloc(thd,size) (thd_alloc_service->thd_calloc_func((thd), (size)))
-
-#define thd_strdup(thd,str) (thd_alloc_service->thd_strdup_func((thd), (str)))
-
-#define thd_strmake(thd,str,size) \
- (thd_alloc_service->thd_strmake_func((thd), (str), (size)))
-
-#define thd_memdup(thd,str,size) \
- (thd_alloc_service->thd_memdup_func((thd), (str), (size)))
-
-#define thd_make_lex_string(thd, lex_str, str, size, allocate_lex_string) \
- (thd_alloc_service->thd_make_lex_string_func((thd), (lex_str), (str), \
- (size), (allocate_lex_string)))
-
-#else
-
-/**
- Allocate memory in the connection's local memory pool
-
- @details
- When properly used in place of @c my_malloc(), this can significantly
- improve concurrency. Don't use this or related functions to allocate
- large chunks of memory. Use for temporary storage only. The memory
- will be freed automatically at the end of the statement; no explicit
- code is required to prevent memory leaks.
-
- @see alloc_root()
-*/
-void *thd_alloc(MYSQL_THD thd, unsigned int size);
-/**
- @see thd_alloc()
-*/
-void *thd_calloc(MYSQL_THD thd, unsigned int size);
-/**
- @see thd_alloc()
-*/
-char *thd_strdup(MYSQL_THD thd, const char *str);
-/**
- @see thd_alloc()
-*/
-char *thd_strmake(MYSQL_THD thd, const char *str, unsigned int size);
-/**
- @see thd_alloc()
-*/
-void *thd_memdup(MYSQL_THD thd, const void* str, unsigned int size);
-
-/**
- Create a LEX_STRING in this connection's local memory pool
-
- @param thd user thread connection handle
- @param lex_str pointer to LEX_STRING object to be initialized
- @param str initializer to be copied into lex_str
- @param size length of str, in bytes
- @param allocate_lex_string flag: if TRUE, allocate new LEX_STRING object,
- instead of using lex_str value
- @return NULL on failure, or pointer to the LEX_STRING object
-
- @see thd_alloc()
-*/
-MYSQL_LEX_STRING *thd_make_lex_string(MYSQL_THD thd, MYSQL_LEX_STRING *lex_str,
- const char *str, unsigned int size,
- int allocate_lex_string);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#define MYSQL_SERVICE_THD_ALLOC_INCLUDED
-#endif
-
diff --git a/dep/mysqllite/include/mysql/service_thd_wait.h b/dep/mysqllite/include/mysql/service_thd_wait.h
deleted file mode 100644
index 2a8f5e610a3..00000000000
--- a/dep/mysqllite/include/mysql/service_thd_wait.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef MYSQL_SERVICE_THD_WAIT_INCLUDED
-#define MYSQL_SERVICE_THD_WAIT_INCLUDED
-
-/**
- @file include/mysql/service_thd_wait.h
- This service provides functions for plugins and storage engines to report
- when they are going to sleep/stall.
-
- SYNOPSIS
- thd_wait_begin() - call just before a wait begins
- thd Thread object
- Use NULL if the thd is NOT known.
- wait_type Type of wait
- 1 -- short wait (e.g. for mutex)
- 2 -- medium wait (e.g. for disk io)
- 3 -- large wait (e.g. for locked row/table)
- NOTES
- This is used by the threadpool to have better knowledge of which
- threads that currently are actively running on CPUs. When a thread
- reports that it's going to sleep/stall, the threadpool scheduler is
- free to start another thread in the pool most likely. The expected wait
- time is simply an indication of how long the wait is expected to
- become, the real wait time could be very different.
-
- thd_wait_end() called immediately after the wait is complete
-
- thd_wait_end() MUST be called if thd_wait_begin() was called.
-
- Using thd_wait_...() service is optional but recommended. Using it will
- improve performance as the thread pool will be more active at managing the
- thread workload.
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum _thd_wait_type_e {
- THD_WAIT_MUTEX= 1,
- THD_WAIT_DISKIO= 2,
- THD_WAIT_ROW_TABLE_LOCK= 3,
- THD_WAIT_GLOBAL_LOCK= 4
-} thd_wait_type;
-
-extern struct thd_wait_service_st {
- void (*thd_wait_begin_func)(MYSQL_THD, thd_wait_type);
- void (*thd_wait_end_func)(MYSQL_THD);
-} *thd_wait_service;
-
-#ifdef MYSQL_DYNAMIC_PLUGIN
-
-#define thd_wait_begin(_THD, _WAIT_TYPE) \
- thd_wait_service->thd_wait_begin_func(_THD, _WAIT_TYPE)
-#define thd_wait_end(_THD) thd_wait_service->thd_wait_end_func(_THD)
-
-#else
-
-void thd_wait_begin(MYSQL_THD thd, thd_wait_type wait_type);
-void thd_wait_end(MYSQL_THD thd);
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/dep/mysqllite/include/mysql/service_thread_scheduler.h b/dep/mysqllite/include/mysql/service_thread_scheduler.h
deleted file mode 100644
index a4396b721bd..00000000000
--- a/dep/mysqllite/include/mysql/service_thread_scheduler.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- Copyright (C) 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifndef SERVICE_THREAD_SCHEDULER_INCLUDED
-#define SERVICE_THREAD_SCHEDULER_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct scheduler_functions;
-
-extern struct my_thread_scheduler_service {
- int (*set)(struct scheduler_functions *scheduler);
- int (*reset)();
-} *my_thread_scheduler_service;
-
-#ifdef MYSQL_DYNAMIC_PLUGIN
-
-#define my_thread_scheduler_set(F) my_thread_scheduler_service->set((F))
-#define my_thread_scheduler_reset() my_thread_scheduler_service->reset()
-
-#else
-
-/**
- Set the thread scheduler to use for the server.
-
- @param scheduler Pointer to scheduler callbacks to use.
- @retval 0 Scheduler installed correctly.
- @retval 1 Invalid value (NULL) used for scheduler.
-*/
-int my_thread_scheduler_set(struct scheduler_functions *scheduler);
-
-/**
- Restore the previous thread scheduler.
-
- @note If no thread scheduler was installed previously with
- thd_set_thread_scheduler, this function will report an error.
-
- @retval 0 Scheduler installed correctly.
- @retval 1 No scheduler installed.
-*/
-int my_thread_scheduler_reset();
-
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* SERVICE_THREAD_SCHEDULER_INCLUDED */
diff --git a/dep/mysqllite/include/mysql/services.h b/dep/mysqllite/include/mysql/services.h
deleted file mode 100644
index 6c67a582fb8..00000000000
--- a/dep/mysqllite/include/mysql/services.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef MYSQL_SERVICES_INCLUDED
-/* Copyright (C) 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <mysql/service_my_snprintf.h>
-#include <mysql/service_thd_alloc.h>
-#include <mysql/service_thd_wait.h>
-#include <mysql/service_thread_scheduler.h>
-
-#ifdef __cplusplus
-}
-#endif
-
-#define MYSQL_SERVICES_INCLUDED
-#endif
-
diff --git a/dep/mysqllite/include/mysql_com.h b/dep/mysqllite/include/mysql_com.h
deleted file mode 100644
index f4c023721de..00000000000
--- a/dep/mysqllite/include/mysql_com.h
+++ /dev/null
@@ -1,572 +0,0 @@
-/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
-** Common definition between mysql server & client
-*/
-
-#ifndef _mysql_com_h
-#define _mysql_com_h
-
-#define HOSTNAME_LENGTH 60
-#define SYSTEM_CHARSET_MBMAXLEN 3
-#define NAME_CHAR_LEN 64 /* Field/table name length */
-#define USERNAME_CHAR_LENGTH 16
-#define NAME_LEN (NAME_CHAR_LEN*SYSTEM_CHARSET_MBMAXLEN)
-#define USERNAME_LENGTH (USERNAME_CHAR_LENGTH*SYSTEM_CHARSET_MBMAXLEN)
-
-#define MYSQL_AUTODETECT_CHARSET_NAME "auto"
-
-#define SERVER_VERSION_LENGTH 60
-#define SQLSTATE_LENGTH 5
-
-/*
- Maximum length of comments
-*/
-#define TABLE_COMMENT_INLINE_MAXLEN 180 /* pre 6.0: 60 characters */
-#define TABLE_COMMENT_MAXLEN 2048
-#define COLUMN_COMMENT_MAXLEN 1024
-#define INDEX_COMMENT_MAXLEN 1024
-
-/*
- USER_HOST_BUFF_SIZE -- length of string buffer, that is enough to contain
- username and hostname parts of the user identifier with trailing zero in
- MySQL standard format:
- user_name_part@host_name_part\0
-*/
-#define USER_HOST_BUFF_SIZE HOSTNAME_LENGTH + USERNAME_LENGTH + 2
-
-#define LOCAL_HOST "localhost"
-#define LOCAL_HOST_NAMEDPIPE "."
-
-
-#if defined(__WIN__) && !defined( _CUSTOMCONFIG_)
-#define MYSQL_NAMEDPIPE "MySQL"
-#define MYSQL_SERVICENAME "MySQL"
-#endif /* __WIN__ */
-
-/*
- You should add new commands to the end of this list, otherwise old
- servers won't be able to handle them as 'unsupported'.
-*/
-
-enum enum_server_command
-{
- COM_SLEEP, COM_QUIT, COM_INIT_DB, COM_QUERY, COM_FIELD_LIST,
- COM_CREATE_DB, COM_DROP_DB, COM_REFRESH, COM_SHUTDOWN, COM_STATISTICS,
- COM_PROCESS_INFO, COM_CONNECT, COM_PROCESS_KILL, COM_DEBUG, COM_PING,
- COM_TIME, COM_DELAYED_INSERT, COM_CHANGE_USER, COM_BINLOG_DUMP,
- COM_TABLE_DUMP, COM_CONNECT_OUT, COM_REGISTER_SLAVE,
- COM_STMT_PREPARE, COM_STMT_EXECUTE, COM_STMT_SEND_LONG_DATA, COM_STMT_CLOSE,
- COM_STMT_RESET, COM_SET_OPTION, COM_STMT_FETCH, COM_DAEMON,
- /* don't forget to update const char *command_name[] in sql_parse.cc */
-
- /* Must be last */
- COM_END
-};
-
-
-/*
- Length of random string sent by server on handshake; this is also length of
- obfuscated password, recieved from client
-*/
-#define SCRAMBLE_LENGTH 20
-#define SCRAMBLE_LENGTH_323 8
-/* length of password stored in the db: new passwords are preceeded with '*' */
-#define SCRAMBLED_PASSWORD_CHAR_LENGTH (SCRAMBLE_LENGTH*2+1)
-#define SCRAMBLED_PASSWORD_CHAR_LENGTH_323 (SCRAMBLE_LENGTH_323*2)
-
-
-#define NOT_NULL_FLAG 1 /* Field can't be NULL */
-#define PRI_KEY_FLAG 2 /* Field is part of a primary key */
-#define UNIQUE_KEY_FLAG 4 /* Field is part of a unique key */
-#define MULTIPLE_KEY_FLAG 8 /* Field is part of a key */
-#define BLOB_FLAG 16 /* Field is a blob */
-#define UNSIGNED_FLAG 32 /* Field is unsigned */
-#define ZEROFILL_FLAG 64 /* Field is zerofill */
-#define BINARY_FLAG 128 /* Field is binary */
-
-/* The following are only sent to new clients */
-#define ENUM_FLAG 256 /* field is an enum */
-#define AUTO_INCREMENT_FLAG 512 /* field is a autoincrement field */
-#define TIMESTAMP_FLAG 1024 /* Field is a timestamp */
-#define SET_FLAG 2048 /* field is a set */
-#define NO_DEFAULT_VALUE_FLAG 4096 /* Field doesn't have default value */
-#define ON_UPDATE_NOW_FLAG 8192 /* Field is set to NOW on UPDATE */
-#define NUM_FLAG 32768 /* Field is num (for clients) */
-#define PART_KEY_FLAG 16384 /* Intern; Part of some key */
-#define GROUP_FLAG 32768 /* Intern: Group field */
-#define UNIQUE_FLAG 65536 /* Intern: Used by sql_yacc */
-#define BINCMP_FLAG 131072 /* Intern: Used by sql_yacc */
-#define GET_FIXED_FIELDS_FLAG (1 << 18) /* Used to get fields in item tree */
-#define FIELD_IN_PART_FUNC_FLAG (1 << 19)/* Field part of partition func */
-#define FIELD_IN_ADD_INDEX (1<< 20) /* Intern: Field used in ADD INDEX */
-#define FIELD_IS_RENAMED (1<< 21) /* Intern: Field is being renamed */
-
-#define REFRESH_GRANT 1 /* Refresh grant tables */
-#define REFRESH_LOG 2 /* Start on new log file */
-#define REFRESH_TABLES 4 /* close all tables */
-#define REFRESH_HOSTS 8 /* Flush host cache */
-#define REFRESH_STATUS 16 /* Flush status variables */
-#define REFRESH_THREADS 32 /* Flush thread cache */
-#define REFRESH_SLAVE 64 /* Reset master info and restart slave
- thread */
-#define REFRESH_MASTER 128 /* Remove all bin logs in the index
- and truncate the index */
-#define REFRESH_ERROR_LOG 256 /* Rotate only the erorr log */
-#define REFRESH_ENGINE_LOG 512 /* Flush all storage engine logs */
-#define REFRESH_BINARY_LOG 1024 /* Flush the binary log */
-#define REFRESH_RELAY_LOG 2048 /* Flush the relay log */
-#define REFRESH_GENERAL_LOG 4096 /* Flush the general log */
-#define REFRESH_SLOW_LOG 8192 /* Flush the slow query log */
-
-/* The following can't be set with mysql_refresh() */
-#define REFRESH_READ_LOCK 16384 /* Lock tables for read */
-#define REFRESH_FAST 32768 /* Intern flag */
-
-/* RESET (remove all queries) from query cache */
-#define REFRESH_QUERY_CACHE 65536
-#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
-#define REFRESH_DES_KEY_FILE 0x40000L
-#define REFRESH_USER_RESOURCES 0x80000L
-
-#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
-#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
-#define CLIENT_LONG_FLAG 4 /* Get all column flags */
-#define CLIENT_CONNECT_WITH_DB 8 /* One can specify db on connect */
-#define CLIENT_NO_SCHEMA 16 /* Don't allow database.table.column */
-#define CLIENT_COMPRESS 32 /* Can use compression protocol */
-#define CLIENT_ODBC 64 /* Odbc client */
-#define CLIENT_LOCAL_FILES 128 /* Can use LOAD DATA LOCAL */
-#define CLIENT_IGNORE_SPACE 256 /* Ignore spaces before '(' */
-#define CLIENT_PROTOCOL_41 512 /* New 4.1 protocol */
-#define CLIENT_INTERACTIVE 1024 /* This is an interactive client */
-#define CLIENT_SSL 2048 /* Switch to SSL after handshake */
-#define CLIENT_IGNORE_SIGPIPE 4096 /* IGNORE sigpipes */
-#define CLIENT_TRANSACTIONS 8192 /* Client knows about transactions */
-#define CLIENT_RESERVED 16384 /* Old flag for 4.1 protocol */
-#define CLIENT_SECURE_CONNECTION 32768 /* New 4.1 authentication */
-#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */
-#define CLIENT_MULTI_RESULTS (1UL << 17) /* Enable/disable multi-results */
-#define CLIENT_PS_MULTI_RESULTS (1UL << 18) /* Multi-results in PS-protocol */
-
-#define CLIENT_PLUGIN_AUTH (1UL << 19) /* Client supports plugin authentication */
-
-#define CLIENT_SSL_VERIFY_SERVER_CERT (1UL << 30)
-#define CLIENT_REMEMBER_OPTIONS (1UL << 31)
-
-#ifdef HAVE_COMPRESS
-#define CAN_CLIENT_COMPRESS CLIENT_COMPRESS
-#else
-#define CAN_CLIENT_COMPRESS 0
-#endif
-
-/* Gather all possible capabilites (flags) supported by the server */
-#define CLIENT_ALL_FLAGS (CLIENT_LONG_PASSWORD | \
- CLIENT_FOUND_ROWS | \
- CLIENT_LONG_FLAG | \
- CLIENT_CONNECT_WITH_DB | \
- CLIENT_NO_SCHEMA | \
- CLIENT_COMPRESS | \
- CLIENT_ODBC | \
- CLIENT_LOCAL_FILES | \
- CLIENT_IGNORE_SPACE | \
- CLIENT_PROTOCOL_41 | \
- CLIENT_INTERACTIVE | \
- CLIENT_SSL | \
- CLIENT_IGNORE_SIGPIPE | \
- CLIENT_TRANSACTIONS | \
- CLIENT_RESERVED | \
- CLIENT_SECURE_CONNECTION | \
- CLIENT_MULTI_STATEMENTS | \
- CLIENT_MULTI_RESULTS | \
- CLIENT_PS_MULTI_RESULTS | \
- CLIENT_SSL_VERIFY_SERVER_CERT | \
- CLIENT_REMEMBER_OPTIONS | \
- CLIENT_PLUGIN_AUTH)
-
-/*
- Switch off the flags that are optional and depending on build flags
- If any of the optional flags is supported by the build it will be switched
- on before sending to the client during the connection handshake.
-*/
-#define CLIENT_BASIC_FLAGS (((CLIENT_ALL_FLAGS & ~CLIENT_SSL) \
- & ~CLIENT_COMPRESS) \
- & ~CLIENT_SSL_VERIFY_SERVER_CERT)
-
-/**
- Is raised when a multi-statement transaction
- has been started, either explicitly, by means
- of BEGIN or COMMIT AND CHAIN, or
- implicitly, by the first transactional
- statement, when autocommit=off.
-*/
-#define SERVER_STATUS_IN_TRANS 1
-#define SERVER_STATUS_AUTOCOMMIT 2 /* Server in auto_commit mode */
-#define SERVER_MORE_RESULTS_EXISTS 8 /* Multi query - next query exists */
-#define SERVER_QUERY_NO_GOOD_INDEX_USED 16
-#define SERVER_QUERY_NO_INDEX_USED 32
-/**
- The server was able to fulfill the clients request and opened a
- read-only non-scrollable cursor for a query. This flag comes
- in reply to COM_STMT_EXECUTE and COM_STMT_FETCH commands.
-*/
-#define SERVER_STATUS_CURSOR_EXISTS 64
-/**
- This flag is sent when a read-only cursor is exhausted, in reply to
- COM_STMT_FETCH command.
-*/
-#define SERVER_STATUS_LAST_ROW_SENT 128
-#define SERVER_STATUS_DB_DROPPED 256 /* A database was dropped */
-#define SERVER_STATUS_NO_BACKSLASH_ESCAPES 512
-/**
- Sent to the client if after a prepared statement reprepare
- we discovered that the new statement returns a different
- number of result set columns.
-*/
-#define SERVER_STATUS_METADATA_CHANGED 1024
-#define SERVER_QUERY_WAS_SLOW 2048
-
-/**
- To mark ResultSet containing output parameter values.
-*/
-#define SERVER_PS_OUT_PARAMS 4096
-
-/**
- Server status flags that must be cleared when starting
- execution of a new SQL statement.
- Flags from this set are only added to the
- current server status by the execution engine, but
- never removed -- the execution engine expects them
- to disappear automagically by the next command.
-*/
-#define SERVER_STATUS_CLEAR_SET (SERVER_QUERY_NO_GOOD_INDEX_USED| \
- SERVER_QUERY_NO_INDEX_USED|\
- SERVER_MORE_RESULTS_EXISTS|\
- SERVER_STATUS_METADATA_CHANGED |\
- SERVER_QUERY_WAS_SLOW |\
- SERVER_STATUS_DB_DROPPED |\
- SERVER_STATUS_CURSOR_EXISTS|\
- SERVER_STATUS_LAST_ROW_SENT)
-
-#define MYSQL_ERRMSG_SIZE 512
-#define NET_READ_TIMEOUT 30 /* Timeout on read */
-#define NET_WRITE_TIMEOUT 60 /* Timeout on write */
-#define NET_WAIT_TIMEOUT 8*60*60 /* Wait for new query */
-
-#define ONLY_KILL_QUERY 1
-
-
-struct st_vio; /* Only C */
-typedef struct st_vio Vio;
-
-#define MAX_TINYINT_WIDTH 3 /* Max width for a TINY w.o. sign */
-#define MAX_SMALLINT_WIDTH 5 /* Max width for a SHORT w.o. sign */
-#define MAX_MEDIUMINT_WIDTH 8 /* Max width for a INT24 w.o. sign */
-#define MAX_INT_WIDTH 10 /* Max width for a LONG w.o. sign */
-#define MAX_BIGINT_WIDTH 20 /* Max width for a LONGLONG */
-#define MAX_CHAR_WIDTH 255 /* Max length for a CHAR colum */
-#define MAX_BLOB_WIDTH 16777216 /* Default width for blob */
-
-typedef struct st_net {
-#if !defined(CHECK_EMBEDDED_DIFFERENCES) || !defined(EMBEDDED_LIBRARY)
- Vio *vio;
- unsigned char *buff,*buff_end,*write_pos,*read_pos;
- my_socket fd; /* For Perl DBI/dbd */
- /*
- The following variable is set if we are doing several queries in one
- command ( as in LOAD TABLE ... FROM MASTER ),
- and do not want to confuse the client with OK at the wrong time
- */
- unsigned long remain_in_buf,length, buf_length, where_b;
- unsigned long max_packet,max_packet_size;
- unsigned int pkt_nr,compress_pkt_nr;
- unsigned int write_timeout, read_timeout, retry_count;
- int fcntl;
- unsigned int *return_status;
- unsigned char reading_or_writing;
- char save_char;
- my_bool unused1; /* Please remove with the next incompatible ABI change. */
- my_bool unused2; /* Please remove with the next incompatible ABI change */
- my_bool compress;
- my_bool unused3; /* Please remove with the next incompatible ABI change. */
- /*
- Pointer to query object in query cache, do not equal NULL (0) for
- queries in cache that have not stored its results yet
- */
-#endif
- /*
- Unused, please remove with the next incompatible ABI change.
- */
- unsigned char *unused;
- unsigned int last_errno;
- unsigned char error;
- my_bool unused4; /* Please remove with the next incompatible ABI change. */
- my_bool unused5; /* Please remove with the next incompatible ABI change. */
- /** Client library error message buffer. Actually belongs to struct MYSQL. */
- char last_error[MYSQL_ERRMSG_SIZE];
- /** Client library sqlstate buffer. Set along with the error message. */
- char sqlstate[SQLSTATE_LENGTH+1];
- void *extension;
-#if defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
- /*
- Controls whether a big packet should be skipped.
-
- Initially set to FALSE by default. Unauthenticated sessions must have
- this set to FALSE so that the server can't be tricked to read packets
- indefinitely.
- */
- my_bool skip_big_packet;
-#endif
-} NET;
-
-
-#define packet_error (~(unsigned long) 0)
-
-enum enum_field_types { MYSQL_TYPE_DECIMAL, MYSQL_TYPE_TINY,
- MYSQL_TYPE_SHORT, MYSQL_TYPE_LONG,
- MYSQL_TYPE_FLOAT, MYSQL_TYPE_DOUBLE,
- MYSQL_TYPE_NULL, MYSQL_TYPE_TIMESTAMP,
- MYSQL_TYPE_LONGLONG,MYSQL_TYPE_INT24,
- MYSQL_TYPE_DATE, MYSQL_TYPE_TIME,
- MYSQL_TYPE_DATETIME, MYSQL_TYPE_YEAR,
- MYSQL_TYPE_NEWDATE, MYSQL_TYPE_VARCHAR,
- MYSQL_TYPE_BIT,
- MYSQL_TYPE_NEWDECIMAL=246,
- MYSQL_TYPE_ENUM=247,
- MYSQL_TYPE_SET=248,
- MYSQL_TYPE_TINY_BLOB=249,
- MYSQL_TYPE_MEDIUM_BLOB=250,
- MYSQL_TYPE_LONG_BLOB=251,
- MYSQL_TYPE_BLOB=252,
- MYSQL_TYPE_VAR_STRING=253,
- MYSQL_TYPE_STRING=254,
- MYSQL_TYPE_GEOMETRY=255
-
-};
-
-/* For backward compatibility */
-#define CLIENT_MULTI_QUERIES CLIENT_MULTI_STATEMENTS
-#define FIELD_TYPE_DECIMAL MYSQL_TYPE_DECIMAL
-#define FIELD_TYPE_NEWDECIMAL MYSQL_TYPE_NEWDECIMAL
-#define FIELD_TYPE_TINY MYSQL_TYPE_TINY
-#define FIELD_TYPE_SHORT MYSQL_TYPE_SHORT
-#define FIELD_TYPE_LONG MYSQL_TYPE_LONG
-#define FIELD_TYPE_FLOAT MYSQL_TYPE_FLOAT
-#define FIELD_TYPE_DOUBLE MYSQL_TYPE_DOUBLE
-#define FIELD_TYPE_NULL MYSQL_TYPE_NULL
-#define FIELD_TYPE_TIMESTAMP MYSQL_TYPE_TIMESTAMP
-#define FIELD_TYPE_LONGLONG MYSQL_TYPE_LONGLONG
-#define FIELD_TYPE_INT24 MYSQL_TYPE_INT24
-#define FIELD_TYPE_DATE MYSQL_TYPE_DATE
-#define FIELD_TYPE_TIME MYSQL_TYPE_TIME
-#define FIELD_TYPE_DATETIME MYSQL_TYPE_DATETIME
-#define FIELD_TYPE_YEAR MYSQL_TYPE_YEAR
-#define FIELD_TYPE_NEWDATE MYSQL_TYPE_NEWDATE
-#define FIELD_TYPE_ENUM MYSQL_TYPE_ENUM
-#define FIELD_TYPE_SET MYSQL_TYPE_SET
-#define FIELD_TYPE_TINY_BLOB MYSQL_TYPE_TINY_BLOB
-#define FIELD_TYPE_MEDIUM_BLOB MYSQL_TYPE_MEDIUM_BLOB
-#define FIELD_TYPE_LONG_BLOB MYSQL_TYPE_LONG_BLOB
-#define FIELD_TYPE_BLOB MYSQL_TYPE_BLOB
-#define FIELD_TYPE_VAR_STRING MYSQL_TYPE_VAR_STRING
-#define FIELD_TYPE_STRING MYSQL_TYPE_STRING
-#define FIELD_TYPE_CHAR MYSQL_TYPE_TINY
-#define FIELD_TYPE_INTERVAL MYSQL_TYPE_ENUM
-#define FIELD_TYPE_GEOMETRY MYSQL_TYPE_GEOMETRY
-#define FIELD_TYPE_BIT MYSQL_TYPE_BIT
-
-
-/* Shutdown/kill enums and constants */
-
-/* Bits for THD::killable. */
-#define MYSQL_SHUTDOWN_KILLABLE_CONNECT (unsigned char)(1 << 0)
-#define MYSQL_SHUTDOWN_KILLABLE_TRANS (unsigned char)(1 << 1)
-#define MYSQL_SHUTDOWN_KILLABLE_LOCK_TABLE (unsigned char)(1 << 2)
-#define MYSQL_SHUTDOWN_KILLABLE_UPDATE (unsigned char)(1 << 3)
-
-enum mysql_enum_shutdown_level {
- /*
- We want levels to be in growing order of hardness (because we use number
- comparisons). Note that DEFAULT does not respect the growing property, but
- it's ok.
- */
- SHUTDOWN_DEFAULT = 0,
- /* wait for existing connections to finish */
- SHUTDOWN_WAIT_CONNECTIONS= MYSQL_SHUTDOWN_KILLABLE_CONNECT,
- /* wait for existing trans to finish */
- SHUTDOWN_WAIT_TRANSACTIONS= MYSQL_SHUTDOWN_KILLABLE_TRANS,
- /* wait for existing updates to finish (=> no partial MyISAM update) */
- SHUTDOWN_WAIT_UPDATES= MYSQL_SHUTDOWN_KILLABLE_UPDATE,
- /* flush InnoDB buffers and other storage engines' buffers*/
- SHUTDOWN_WAIT_ALL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1),
- /* don't flush InnoDB buffers, flush other storage engines' buffers*/
- SHUTDOWN_WAIT_CRITICAL_BUFFERS= (MYSQL_SHUTDOWN_KILLABLE_UPDATE << 1) + 1,
- /* Now the 2 levels of the KILL command */
-#if MYSQL_VERSION_ID >= 50000
- KILL_QUERY= 254,
-#endif
- KILL_CONNECTION= 255
-};
-
-
-enum enum_cursor_type
-{
- CURSOR_TYPE_NO_CURSOR= 0,
- CURSOR_TYPE_READ_ONLY= 1,
- CURSOR_TYPE_FOR_UPDATE= 2,
- CURSOR_TYPE_SCROLLABLE= 4
-};
-
-
-/* options for mysql_set_option */
-enum enum_mysql_set_option
-{
- MYSQL_OPTION_MULTI_STATEMENTS_ON,
- MYSQL_OPTION_MULTI_STATEMENTS_OFF
-};
-
-#define net_new_transaction(net) ((net)->pkt_nr=0)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-my_bool my_net_init(NET *net, Vio* vio);
-void my_net_local_init(NET *net);
-void net_end(NET *net);
- void net_clear(NET *net, my_bool clear_buffer);
-my_bool net_realloc(NET *net, size_t length);
-my_bool net_flush(NET *net);
-my_bool my_net_write(NET *net,const unsigned char *packet, size_t len);
-my_bool net_write_command(NET *net,unsigned char command,
- const unsigned char *header, size_t head_len,
- const unsigned char *packet, size_t len);
-int net_real_write(NET *net,const unsigned char *packet, size_t len);
-unsigned long my_net_read(NET *net);
-
-#ifdef _global_h
-void my_net_set_write_timeout(NET *net, uint timeout);
-void my_net_set_read_timeout(NET *net, uint timeout);
-#endif
-
-struct sockaddr;
-int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,
- unsigned int timeout);
-
-struct rand_struct {
- unsigned long seed1,seed2,max_value;
- double max_value_dbl;
-};
-
-#ifdef __cplusplus
-}
-#endif
-
- /* The following is for user defined functions */
-
-enum Item_result {STRING_RESULT=0, REAL_RESULT, INT_RESULT, ROW_RESULT,
- DECIMAL_RESULT};
-
-typedef struct st_udf_args
-{
- unsigned int arg_count; /* Number of arguments */
- enum Item_result *arg_type; /* Pointer to item_results */
- char **args; /* Pointer to argument */
- unsigned long *lengths; /* Length of string arguments */
- char *maybe_null; /* Set to 1 for all maybe_null args */
- char **attributes; /* Pointer to attribute name */
- unsigned long *attribute_lengths; /* Length of attribute arguments */
- void *extension;
-} UDF_ARGS;
-
- /* This holds information about the result */
-
-typedef struct st_udf_init
-{
- my_bool maybe_null; /* 1 if function can return NULL */
- unsigned int decimals; /* for real functions */
- unsigned long max_length; /* For string functions */
- char *ptr; /* free pointer for function data */
- my_bool const_item; /* 1 if function always returns the same value */
- void *extension;
-} UDF_INIT;
-/*
- TODO: add a notion for determinism of the UDF.
- See Item_udf_func::update_used_tables ()
-*/
-
- /* Constants when using compression */
-#define NET_HEADER_SIZE 4 /* standard header size */
-#define COMP_HEADER_SIZE 3 /* compression header extra size */
-
- /* Prototypes to password functions */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- These functions are used for authentication by client and server and
- implemented in sql/password.c
-*/
-
-void randominit(struct rand_struct *, unsigned long seed1,
- unsigned long seed2);
-double my_rnd(struct rand_struct *);
-void create_random_string(char *to, unsigned int length, struct rand_struct *rand_st);
-
-void hash_password(unsigned long *to, const char *password, unsigned int password_len);
-void make_scrambled_password_323(char *to, const char *password);
-void scramble_323(char *to, const char *message, const char *password);
-my_bool check_scramble_323(const unsigned char *reply, const char *message,
- unsigned long *salt);
-void get_salt_from_password_323(unsigned long *res, const char *password);
-void make_password_from_salt_323(char *to, const unsigned long *salt);
-
-void make_scrambled_password(char *to, const char *password);
-void scramble(char *to, const char *message, const char *password);
-my_bool check_scramble(const unsigned char *reply, const char *message,
- const unsigned char *hash_stage2);
-void get_salt_from_password(unsigned char *res, const char *password);
-void make_password_from_salt(char *to, const unsigned char *hash_stage2);
-char *octet2hex(char *to, const char *str, unsigned int len);
-
-/* end of password.c */
-
-char *get_tty_password(const char *opt_message);
-const char *mysql_errno_to_sqlstate(unsigned int mysql_errno);
-
-/* Some other useful functions */
-
-my_bool my_thread_init(void);
-void my_thread_end(void);
-
-#ifdef _global_h
-ulong STDCALL net_field_length(uchar **packet);
-my_ulonglong net_field_length_ll(uchar **packet);
-uchar *net_store_length(uchar *pkg, ulonglong length);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#define NULL_LENGTH ((unsigned long) ~0) /* For net_store_length */
-#define MYSQL_STMT_HEADER 4
-#define MYSQL_LONG_DATA_HEADER 6
-
-#define NOT_FIXED_DEC 31
-#endif
diff --git a/dep/mysqllite/include/mysql_embed.h b/dep/mysqllite/include/mysql_embed.h
deleted file mode 100644
index e860a4486eb..00000000000
--- a/dep/mysqllite/include/mysql_embed.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef MYSQL_EMBED_INCLUDED
-#define MYSQL_EMBED_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Defines that are unique to the embedded version of MySQL */
-
-#ifdef EMBEDDED_LIBRARY
-
-/* Things we don't need in the embedded version of MySQL */
-/* TODO HF add #undef HAVE_VIO if we don't want client in embedded library */
-
-#undef HAVE_DLOPEN /* No udf functions */
-#undef HAVE_SMEM /* No shared memory */
-#undef HAVE_NDBCLUSTER_DB /* No NDB cluster */
-
-#endif /* EMBEDDED_LIBRARY */
-#endif /* MYSQL_EMBED_INCLUDED */
diff --git a/dep/mysqllite/include/mysql_time.h b/dep/mysqllite/include/mysql_time.h
deleted file mode 100644
index 0a3f17a81fb..00000000000
--- a/dep/mysqllite/include/mysql_time.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2004 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _mysql_time_h_
-#define _mysql_time_h_
-
-/*
- Time declarations shared between the server and client API:
- you should not add anything to this header unless it's used
- (and hence should be visible) in mysql.h.
- If you're looking for a place to add new time-related declaration,
- it's most likely my_time.h. See also "C API Handling of Date
- and Time Values" chapter in documentation.
-*/
-
-enum enum_mysql_timestamp_type
-{
- MYSQL_TIMESTAMP_NONE= -2, MYSQL_TIMESTAMP_ERROR= -1,
- MYSQL_TIMESTAMP_DATE= 0, MYSQL_TIMESTAMP_DATETIME= 1, MYSQL_TIMESTAMP_TIME= 2
-};
-
-
-/*
- Structure which is used to represent datetime values inside MySQL.
-
- We assume that values in this structure are normalized, i.e. year <= 9999,
- month <= 12, day <= 31, hour <= 23, hour <= 59, hour <= 59. Many functions
- in server such as my_system_gmt_sec() or make_time() family of functions
- rely on this (actually now usage of make_*() family relies on a bit weaker
- restriction). Also functions that produce MYSQL_TIME as result ensure this.
- There is one exception to this rule though if this structure holds time
- value (time_type == MYSQL_TIMESTAMP_TIME) days and hour member can hold
- bigger values.
-*/
-typedef struct st_mysql_time
-{
- unsigned int year, month, day, hour, minute, second;
- unsigned long second_part;
- my_bool neg;
- enum enum_mysql_timestamp_type time_type;
-} MYSQL_TIME;
-
-#endif /* _mysql_time_h_ */
diff --git a/dep/mysqllite/include/mysqld_ername.h b/dep/mysqllite/include/mysqld_ername.h
deleted file mode 100644
index 7697b59d1eb..00000000000
--- a/dep/mysqllite/include/mysqld_ername.h
+++ /dev/null
@@ -1,708 +0,0 @@
-/* Autogenerated file, please don't edit */
-
-{ "ER_HASHCHK", 1000, "hashchk" },
-{ "ER_NISAMCHK", 1001, "isamchk" },
-{ "ER_NO", 1002, "NO" },
-{ "ER_YES", 1003, "YES" },
-{ "ER_CANT_CREATE_FILE", 1004, "Can\'t create file \'%-.200s\' (errno: %d)" },
-{ "ER_CANT_CREATE_TABLE", 1005, "Can\'t create table \'%-.200s\' (errno: %d)" },
-{ "ER_CANT_CREATE_DB", 1006, "Can\'t create database \'%-.192s\' (errno: %d)" },
-{ "ER_DB_CREATE_EXISTS", 1007, "Can\'t create database \'%-.192s\'; database exists" },
-{ "ER_DB_DROP_EXISTS", 1008, "Can\'t drop database \'%-.192s\'; database doesn\'t exist" },
-{ "ER_DB_DROP_DELETE", 1009, "Error dropping database (can\'t delete \'%-.192s\', errno: %d)" },
-{ "ER_DB_DROP_RMDIR", 1010, "Error dropping database (can\'t rmdir \'%-.192s\', errno: %d)" },
-{ "ER_CANT_DELETE_FILE", 1011, "Error on delete of \'%-.192s\' (errno: %d)" },
-{ "ER_CANT_FIND_SYSTEM_REC", 1012, "Can\'t read record in system table" },
-{ "ER_CANT_GET_STAT", 1013, "Can\'t get status of \'%-.200s\' (errno: %d)" },
-{ "ER_CANT_GET_WD", 1014, "Can\'t get working directory (errno: %d)" },
-{ "ER_CANT_LOCK", 1015, "Can\'t lock file (errno: %d)" },
-{ "ER_CANT_OPEN_FILE", 1016, "Can\'t open file: \'%-.200s\' (errno: %d)" },
-{ "ER_FILE_NOT_FOUND", 1017, "Can\'t find file: \'%-.200s\' (errno: %d)" },
-{ "ER_CANT_READ_DIR", 1018, "Can\'t read dir of \'%-.192s\' (errno: %d)" },
-{ "ER_CANT_SET_WD", 1019, "Can\'t change dir to \'%-.192s\' (errno: %d)" },
-{ "ER_CHECKREAD", 1020, "Record has changed since last read in table \'%-.192s\'" },
-{ "ER_DISK_FULL", 1021, "Disk full (%s); waiting for someone to free some space..." },
-{ "ER_DUP_KEY", 1022, "Can\'t write; duplicate key in table \'%-.192s\'" },
-{ "ER_ERROR_ON_CLOSE", 1023, "Error on close of \'%-.192s\' (errno: %d)" },
-{ "ER_ERROR_ON_READ", 1024, "Error reading file \'%-.200s\' (errno: %d)" },
-{ "ER_ERROR_ON_RENAME", 1025, "Error on rename of \'%-.210s\' to \'%-.210s\' (errno: %d)" },
-{ "ER_ERROR_ON_WRITE", 1026, "Error writing file \'%-.200s\' (errno: %d)" },
-{ "ER_FILE_USED", 1027, "\'%-.192s\' is locked against change" },
-{ "ER_FILSORT_ABORT", 1028, "Sort aborted" },
-{ "ER_FORM_NOT_FOUND", 1029, "View \'%-.192s\' doesn\'t exist for \'%-.192s\'" },
-{ "ER_GET_ERRNO", 1030, "Got error %d from storage engine" },
-{ "ER_ILLEGAL_HA", 1031, "Table storage engine for \'%-.192s\' doesn\'t have this option" },
-{ "ER_KEY_NOT_FOUND", 1032, "Can\'t find record in \'%-.192s\'" },
-{ "ER_NOT_FORM_FILE", 1033, "Incorrect information in file: \'%-.200s\'" },
-{ "ER_NOT_KEYFILE", 1034, "Incorrect key file for table \'%-.200s\'; try to repair it" },
-{ "ER_OLD_KEYFILE", 1035, "Old key file for table \'%-.192s\'; repair it!" },
-{ "ER_OPEN_AS_READONLY", 1036, "Table \'%-.192s\' is read only" },
-{ "ER_OUTOFMEMORY", 1037, "Out of memory; restart server and try again (needed %d bytes)" },
-{ "ER_OUT_OF_SORTMEMORY", 1038, "Out of sort memory; increase server sort buffer size" },
-{ "ER_UNEXPECTED_EOF", 1039, "Unexpected EOF found when reading file \'%-.192s\' (errno: %d)" },
-{ "ER_CON_COUNT_ERROR", 1040, "Too many connections" },
-{ "ER_OUT_OF_RESOURCES", 1041, "Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use \'ulimit\' to allow mysqld to use more memory or you can add more swap space" },
-{ "ER_BAD_HOST_ERROR", 1042, "Can\'t get hostname for your address" },
-{ "ER_HANDSHAKE_ERROR", 1043, "Bad handshake" },
-{ "ER_DBACCESS_DENIED_ERROR", 1044, "Access denied for user \'%-.48s\'@\'%-.64s\' to database \'%-.192s\'" },
-{ "ER_ACCESS_DENIED_ERROR", 1045, "Access denied for user \'%-.48s\'@\'%-.64s\' (using password: %s)" },
-{ "ER_NO_DB_ERROR", 1046, "No database selected" },
-{ "ER_UNKNOWN_COM_ERROR", 1047, "Unknown command" },
-{ "ER_BAD_NULL_ERROR", 1048, "Column \'%-.192s\' cannot be null" },
-{ "ER_BAD_DB_ERROR", 1049, "Unknown database \'%-.192s\'" },
-{ "ER_TABLE_EXISTS_ERROR", 1050, "Table \'%-.192s\' already exists" },
-{ "ER_BAD_TABLE_ERROR", 1051, "Unknown table \'%-.100s\'" },
-{ "ER_NON_UNIQ_ERROR", 1052, "Column \'%-.192s\' in %-.192s is ambiguous" },
-{ "ER_SERVER_SHUTDOWN", 1053, "Server shutdown in progress" },
-{ "ER_BAD_FIELD_ERROR", 1054, "Unknown column \'%-.192s\' in \'%-.192s\'" },
-{ "ER_WRONG_FIELD_WITH_GROUP", 1055, "\'%-.192s\' isn\'t in GROUP BY" },
-{ "ER_WRONG_GROUP_FIELD", 1056, "Can\'t group on \'%-.192s\'" },
-{ "ER_WRONG_SUM_SELECT", 1057, "Statement has sum functions and columns in same statement" },
-{ "ER_WRONG_VALUE_COUNT", 1058, "Column count doesn\'t match value count" },
-{ "ER_TOO_LONG_IDENT", 1059, "Identifier name \'%-.100s\' is too long" },
-{ "ER_DUP_FIELDNAME", 1060, "Duplicate column name \'%-.192s\'" },
-{ "ER_DUP_KEYNAME", 1061, "Duplicate key name \'%-.192s\'" },
-{ "ER_DUP_ENTRY", 1062, "Duplicate entry \'%-.192s\' for key %d" },
-{ "ER_WRONG_FIELD_SPEC", 1063, "Incorrect column specifier for column \'%-.192s\'" },
-{ "ER_PARSE_ERROR", 1064, "%s near \'%-.80s\' at line %d" },
-{ "ER_EMPTY_QUERY", 1065, "Query was empty" },
-{ "ER_NONUNIQ_TABLE", 1066, "Not unique table/alias: \'%-.192s\'" },
-{ "ER_INVALID_DEFAULT", 1067, "Invalid default value for \'%-.192s\'" },
-{ "ER_MULTIPLE_PRI_KEY", 1068, "Multiple primary key defined" },
-{ "ER_TOO_MANY_KEYS", 1069, "Too many keys specified; max %d keys allowed" },
-{ "ER_TOO_MANY_KEY_PARTS", 1070, "Too many key parts specified; max %d parts allowed" },
-{ "ER_TOO_LONG_KEY", 1071, "Specified key was too long; max key length is %d bytes" },
-{ "ER_KEY_COLUMN_DOES_NOT_EXITS", 1072, "Key column \'%-.192s\' doesn\'t exist in table" },
-{ "ER_BLOB_USED_AS_KEY", 1073, "BLOB column \'%-.192s\' can\'t be used in key specification with the used table type" },
-{ "ER_TOO_BIG_FIELDLENGTH", 1074, "Column length too big for column \'%-.192s\' (max = %lu); use BLOB or TEXT instead" },
-{ "ER_WRONG_AUTO_KEY", 1075, "Incorrect table definition; there can be only one auto column and it must be defined as a key" },
-{ "ER_READY", 1076, "%s: ready for connections.\nVersion: \'%s\' socket: \'%s\' port: %d" },
-{ "ER_NORMAL_SHUTDOWN", 1077, "%s: Normal shutdown\n" },
-{ "ER_GOT_SIGNAL", 1078, "%s: Got signal %d. Aborting!\n" },
-{ "ER_SHUTDOWN_COMPLETE", 1079, "%s: Shutdown complete\n" },
-{ "ER_FORCING_CLOSE", 1080, "%s: Forcing close of thread %ld user: \'%-.48s\'\n" },
-{ "ER_IPSOCK_ERROR", 1081, "Can\'t create IP socket" },
-{ "ER_NO_SUCH_INDEX", 1082, "Table \'%-.192s\' has no index like the one used in CREATE INDEX; recreate the table" },
-{ "ER_WRONG_FIELD_TERMINATORS", 1083, "Field separator argument is not what is expected; check the manual" },
-{ "ER_BLOBS_AND_NO_TERMINATED", 1084, "You can\'t use fixed rowlength with BLOBs; please use \'fields terminated by\'" },
-{ "ER_TEXTFILE_NOT_READABLE", 1085, "The file \'%-.128s\' must be in the database directory or be readable by all" },
-{ "ER_FILE_EXISTS_ERROR", 1086, "File \'%-.200s\' already exists" },
-{ "ER_LOAD_INFO", 1087, "Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld" },
-{ "ER_ALTER_INFO", 1088, "Records: %ld Duplicates: %ld" },
-{ "ER_WRONG_SUB_KEY", 1089, "Incorrect prefix key; the used key part isn\'t a string, the used length is longer than the key part, or the storage engine doesn\'t support unique prefix keys" },
-{ "ER_CANT_REMOVE_ALL_FIELDS", 1090, "You can\'t delete all columns with ALTER TABLE; use DROP TABLE instead" },
-{ "ER_CANT_DROP_FIELD_OR_KEY", 1091, "Can\'t DROP \'%-.192s\'; check that column/key exists" },
-{ "ER_INSERT_INFO", 1092, "Records: %ld Duplicates: %ld Warnings: %ld" },
-{ "ER_UPDATE_TABLE_USED", 1093, "You can\'t specify target table \'%-.192s\' for update in FROM clause" },
-{ "ER_NO_SUCH_THREAD", 1094, "Unknown thread id: %lu" },
-{ "ER_KILL_DENIED_ERROR", 1095, "You are not owner of thread %lu" },
-{ "ER_NO_TABLES_USED", 1096, "No tables used" },
-{ "ER_TOO_BIG_SET", 1097, "Too many strings for column %-.192s and SET" },
-{ "ER_NO_UNIQUE_LOGFILE", 1098, "Can\'t generate a unique log-filename %-.200s.(1-999)\n" },
-{ "ER_TABLE_NOT_LOCKED_FOR_WRITE", 1099, "Table \'%-.192s\' was locked with a READ lock and can\'t be updated" },
-{ "ER_TABLE_NOT_LOCKED", 1100, "Table \'%-.192s\' was not locked with LOCK TABLES" },
-{ "ER_BLOB_CANT_HAVE_DEFAULT", 1101, "BLOB/TEXT column \'%-.192s\' can\'t have a default value" },
-{ "ER_WRONG_DB_NAME", 1102, "Incorrect database name \'%-.100s\'" },
-{ "ER_WRONG_TABLE_NAME", 1103, "Incorrect table name \'%-.100s\'" },
-{ "ER_TOO_BIG_SELECT", 1104, "The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay" },
-{ "ER_UNKNOWN_ERROR", 1105, "Unknown error" },
-{ "ER_UNKNOWN_PROCEDURE", 1106, "Unknown procedure \'%-.192s\'" },
-{ "ER_WRONG_PARAMCOUNT_TO_PROCEDURE", 1107, "Incorrect parameter count to procedure \'%-.192s\'" },
-{ "ER_WRONG_PARAMETERS_TO_PROCEDURE", 1108, "Incorrect parameters to procedure \'%-.192s\'" },
-{ "ER_UNKNOWN_TABLE", 1109, "Unknown table \'%-.192s\' in %-.32s" },
-{ "ER_FIELD_SPECIFIED_TWICE", 1110, "Column \'%-.192s\' specified twice" },
-{ "ER_INVALID_GROUP_FUNC_USE", 1111, "Invalid use of group function" },
-{ "ER_UNSUPPORTED_EXTENSION", 1112, "Table \'%-.192s\' uses an extension that doesn\'t exist in this MySQL version" },
-{ "ER_TABLE_MUST_HAVE_COLUMNS", 1113, "A table must have at least 1 column" },
-{ "ER_RECORD_FILE_FULL", 1114, "The table \'%-.192s\' is full" },
-{ "ER_UNKNOWN_CHARACTER_SET", 1115, "Unknown character set: \'%-.64s\'" },
-{ "ER_TOO_MANY_TABLES", 1116, "Too many tables; MySQL can only use %d tables in a join" },
-{ "ER_TOO_MANY_FIELDS", 1117, "Too many columns" },
-{ "ER_TOO_BIG_ROWSIZE", 1118, "Row size too large. The maximum row size for the used table type, not counting BLOBs, is %ld. You have to change some columns to TEXT or BLOBs" },
-{ "ER_STACK_OVERRUN", 1119, "Thread stack overrun: Used: %ld of a %ld stack. Use \'mysqld --thread_stack=#\' to specify a bigger stack if needed" },
-{ "ER_WRONG_OUTER_JOIN", 1120, "Cross dependency found in OUTER JOIN; examine your ON conditions" },
-{ "ER_NULL_COLUMN_IN_INDEX", 1121, "Table handler doesn\'t support NULL in given index. Please change column \'%-.192s\' to be NOT NULL or use another handler" },
-{ "ER_CANT_FIND_UDF", 1122, "Can\'t load function \'%-.192s\'" },
-{ "ER_CANT_INITIALIZE_UDF", 1123, "Can\'t initialize function \'%-.192s\'; %-.80s" },
-{ "ER_UDF_NO_PATHS", 1124, "No paths allowed for shared library" },
-{ "ER_UDF_EXISTS", 1125, "Function \'%-.192s\' already exists" },
-{ "ER_CANT_OPEN_LIBRARY", 1126, "Can\'t open shared library \'%-.192s\' (errno: %d %-.128s)" },
-{ "ER_CANT_FIND_DL_ENTRY", 1127, "Can\'t find symbol \'%-.128s\' in library" },
-{ "ER_FUNCTION_NOT_DEFINED", 1128, "Function \'%-.192s\' is not defined" },
-{ "ER_HOST_IS_BLOCKED", 1129, "Host \'%-.64s\' is blocked because of many connection errors; unblock with \'mysqladmin flush-hosts\'" },
-{ "ER_HOST_NOT_PRIVILEGED", 1130, "Host \'%-.64s\' is not allowed to connect to this MySQL server" },
-{ "ER_PASSWORD_ANONYMOUS_USER", 1131, "You are using MySQL as an anonymous user and anonymous users are not allowed to change passwords" },
-{ "ER_PASSWORD_NOT_ALLOWED", 1132, "You must have privileges to update tables in the mysql database to be able to change passwords for others" },
-{ "ER_PASSWORD_NO_MATCH", 1133, "Can\'t find any matching row in the user table" },
-{ "ER_UPDATE_INFO", 1134, "Rows matched: %ld Changed: %ld Warnings: %ld" },
-{ "ER_CANT_CREATE_THREAD", 1135, "Can\'t create a new thread (errno %d); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug" },
-{ "ER_WRONG_VALUE_COUNT_ON_ROW", 1136, "Column count doesn\'t match value count at row %ld" },
-{ "ER_CANT_REOPEN_TABLE", 1137, "Can\'t reopen table: \'%-.192s\'" },
-{ "ER_INVALID_USE_OF_NULL", 1138, "Invalid use of NULL value" },
-{ "ER_REGEXP_ERROR", 1139, "Got error \'%-.64s\' from regexp" },
-{ "ER_MIX_OF_GROUP_FUNC_AND_FIELDS", 1140, "Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause" },
-{ "ER_NONEXISTING_GRANT", 1141, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\'" },
-{ "ER_TABLEACCESS_DENIED_ERROR", 1142, "%-.16s command denied to user \'%-.48s\'@\'%-.64s\' for table \'%-.192s\'" },
-{ "ER_COLUMNACCESS_DENIED_ERROR", 1143, "%-.16s command denied to user \'%-.48s\'@\'%-.64s\' for column \'%-.192s\' in table \'%-.192s\'" },
-{ "ER_ILLEGAL_GRANT_FOR_TABLE", 1144, "Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used" },
-{ "ER_GRANT_WRONG_HOST_OR_USER", 1145, "The host or user argument to GRANT is too long" },
-{ "ER_NO_SUCH_TABLE", 1146, "Table \'%-.192s.%-.192s\' doesn\'t exist" },
-{ "ER_NONEXISTING_TABLE_GRANT", 1147, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\' on table \'%-.192s\'" },
-{ "ER_NOT_ALLOWED_COMMAND", 1148, "The used command is not allowed with this MySQL version" },
-{ "ER_SYNTAX_ERROR", 1149, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use" },
-{ "ER_DELAYED_CANT_CHANGE_LOCK", 1150, "Delayed insert thread couldn\'t get requested lock for table %-.192s" },
-{ "ER_TOO_MANY_DELAYED_THREADS", 1151, "Too many delayed threads in use" },
-{ "ER_ABORTING_CONNECTION", 1152, "Aborted connection %ld to db: \'%-.192s\' user: \'%-.48s\' (%-.64s)" },
-{ "ER_NET_PACKET_TOO_LARGE", 1153, "Got a packet bigger than \'max_allowed_packet\' bytes" },
-{ "ER_NET_READ_ERROR_FROM_PIPE", 1154, "Got a read error from the connection pipe" },
-{ "ER_NET_FCNTL_ERROR", 1155, "Got an error from fcntl()" },
-{ "ER_NET_PACKETS_OUT_OF_ORDER", 1156, "Got packets out of order" },
-{ "ER_NET_UNCOMPRESS_ERROR", 1157, "Couldn\'t uncompress communication packet" },
-{ "ER_NET_READ_ERROR", 1158, "Got an error reading communication packets" },
-{ "ER_NET_READ_INTERRUPTED", 1159, "Got timeout reading communication packets" },
-{ "ER_NET_ERROR_ON_WRITE", 1160, "Got an error writing communication packets" },
-{ "ER_NET_WRITE_INTERRUPTED", 1161, "Got timeout writing communication packets" },
-{ "ER_TOO_LONG_STRING", 1162, "Result string is longer than \'max_allowed_packet\' bytes" },
-{ "ER_TABLE_CANT_HANDLE_BLOB", 1163, "The used table type doesn\'t support BLOB/TEXT columns" },
-{ "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT", 1164, "The used table type doesn\'t support AUTO_INCREMENT columns" },
-{ "ER_DELAYED_INSERT_TABLE_LOCKED", 1165, "INSERT DELAYED can\'t be used with table \'%-.192s\' because it is locked with LOCK TABLES" },
-{ "ER_WRONG_COLUMN_NAME", 1166, "Incorrect column name \'%-.100s\'" },
-{ "ER_WRONG_KEY_COLUMN", 1167, "The used storage engine can\'t index column \'%-.192s\'" },
-{ "ER_WRONG_MRG_TABLE", 1168, "Unable to open underlying table which is differently defined or of non-MyISAM type or doesn\'t exist" },
-{ "ER_DUP_UNIQUE", 1169, "Can\'t write, because of unique constraint, to table \'%-.192s\'" },
-{ "ER_BLOB_KEY_WITHOUT_LENGTH", 1170, "BLOB/TEXT column \'%-.192s\' used in key specification without a key length" },
-{ "ER_PRIMARY_CANT_HAVE_NULL", 1171, "All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead" },
-{ "ER_TOO_MANY_ROWS", 1172, "Result consisted of more than one row" },
-{ "ER_REQUIRES_PRIMARY_KEY", 1173, "This table type requires a primary key" },
-{ "ER_NO_RAID_COMPILED", 1174, "This version of MySQL is not compiled with RAID support" },
-{ "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE", 1175, "You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column" },
-{ "ER_KEY_DOES_NOT_EXITS", 1176, "Key \'%-.192s\' doesn\'t exist in table \'%-.192s\'" },
-{ "ER_CHECK_NO_SUCH_TABLE", 1177, "Can\'t open table" },
-{ "ER_CHECK_NOT_IMPLEMENTED", 1178, "The storage engine for the table doesn\'t support %s" },
-{ "ER_CANT_DO_THIS_DURING_AN_TRANSACTION", 1179, "You are not allowed to execute this command in a transaction" },
-{ "ER_ERROR_DURING_COMMIT", 1180, "Got error %d during COMMIT" },
-{ "ER_ERROR_DURING_ROLLBACK", 1181, "Got error %d during ROLLBACK" },
-{ "ER_ERROR_DURING_FLUSH_LOGS", 1182, "Got error %d during FLUSH_LOGS" },
-{ "ER_ERROR_DURING_CHECKPOINT", 1183, "Got error %d during CHECKPOINT" },
-{ "ER_NEW_ABORTING_CONNECTION", 1184, "Aborted connection %ld to db: \'%-.192s\' user: \'%-.48s\' host: \'%-.64s\' (%-.64s)" },
-{ "ER_DUMP_NOT_IMPLEMENTED", 1185, "The storage engine for the table does not support binary table dump" },
-{ "ER_FLUSH_MASTER_BINLOG_CLOSED", 1186, "Binlog closed, cannot RESET MASTER" },
-{ "ER_INDEX_REBUILD", 1187, "Failed rebuilding the index of dumped table \'%-.192s\'" },
-{ "ER_MASTER", 1188, "Error from master: \'%-.64s\'" },
-{ "ER_MASTER_NET_READ", 1189, "Net error reading from master" },
-{ "ER_MASTER_NET_WRITE", 1190, "Net error writing to master" },
-{ "ER_FT_MATCHING_KEY_NOT_FOUND", 1191, "Can\'t find FULLTEXT index matching the column list" },
-{ "ER_LOCK_OR_ACTIVE_TRANSACTION", 1192, "Can\'t execute the given command because you have active locked tables or an active transaction" },
-{ "ER_UNKNOWN_SYSTEM_VARIABLE", 1193, "Unknown system variable \'%-.64s\'" },
-{ "ER_CRASHED_ON_USAGE", 1194, "Table \'%-.192s\' is marked as crashed and should be repaired" },
-{ "ER_CRASHED_ON_REPAIR", 1195, "Table \'%-.192s\' is marked as crashed and last (automatic?) repair failed" },
-{ "ER_WARNING_NOT_COMPLETE_ROLLBACK", 1196, "Some non-transactional changed tables couldn\'t be rolled back" },
-{ "ER_TRANS_CACHE_FULL", 1197, "Multi-statement transaction required more than \'max_binlog_cache_size\' bytes of storage; increase this mysqld variable and try again" },
-{ "ER_SLAVE_MUST_STOP", 1198, "This operation cannot be performed with a running slave; run STOP SLAVE first" },
-{ "ER_SLAVE_NOT_RUNNING", 1199, "This operation requires a running slave; configure slave and do START SLAVE" },
-{ "ER_BAD_SLAVE", 1200, "The server is not configured as slave; fix in config file or with CHANGE MASTER TO" },
-{ "ER_MASTER_INFO", 1201, "Could not initialize master info structure; more error messages can be found in the MySQL error log" },
-{ "ER_SLAVE_THREAD", 1202, "Could not create slave thread; check system resources" },
-{ "ER_TOO_MANY_USER_CONNECTIONS", 1203, "User %-.64s already has more than \'max_user_connections\' active connections" },
-{ "ER_SET_CONSTANTS_ONLY", 1204, "You may only use constant expressions with SET" },
-{ "ER_LOCK_WAIT_TIMEOUT", 1205, "Lock wait timeout exceeded; try restarting transaction" },
-{ "ER_LOCK_TABLE_FULL", 1206, "The total number of locks exceeds the lock table size" },
-{ "ER_READ_ONLY_TRANSACTION", 1207, "Update locks cannot be acquired during a READ UNCOMMITTED transaction" },
-{ "ER_DROP_DB_WITH_READ_LOCK", 1208, "DROP DATABASE not allowed while thread is holding global read lock" },
-{ "ER_CREATE_DB_WITH_READ_LOCK", 1209, "CREATE DATABASE not allowed while thread is holding global read lock" },
-{ "ER_WRONG_ARGUMENTS", 1210, "Incorrect arguments to %s" },
-{ "ER_NO_PERMISSION_TO_CREATE_USER", 1211, "\'%-.48s\'@\'%-.64s\' is not allowed to create new users" },
-{ "ER_UNION_TABLES_IN_DIFFERENT_DIR", 1212, "Incorrect table definition; all MERGE tables must be in the same database" },
-{ "ER_LOCK_DEADLOCK", 1213, "Deadlock found when trying to get lock; try restarting transaction" },
-{ "ER_TABLE_CANT_HANDLE_FT", 1214, "The used table type doesn\'t support FULLTEXT indexes" },
-{ "ER_CANNOT_ADD_FOREIGN", 1215, "Cannot add foreign key constraint" },
-{ "ER_NO_REFERENCED_ROW", 1216, "Cannot add or update a child row: a foreign key constraint fails" },
-{ "ER_ROW_IS_REFERENCED", 1217, "Cannot delete or update a parent row: a foreign key constraint fails" },
-{ "ER_CONNECT_TO_MASTER", 1218, "Error connecting to master: %-.128s" },
-{ "ER_QUERY_ON_MASTER", 1219, "Error running query on master: %-.128s" },
-{ "ER_ERROR_WHEN_EXECUTING_COMMAND", 1220, "Error when executing command %s: %-.128s" },
-{ "ER_WRONG_USAGE", 1221, "Incorrect usage of %s and %s" },
-{ "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT", 1222, "The used SELECT statements have a different number of columns" },
-{ "ER_CANT_UPDATE_WITH_READLOCK", 1223, "Can\'t execute the query because you have a conflicting read lock" },
-{ "ER_MIXING_NOT_ALLOWED", 1224, "Mixing of transactional and non-transactional tables is disabled" },
-{ "ER_DUP_ARGUMENT", 1225, "Option \'%s\' used twice in statement" },
-{ "ER_USER_LIMIT_REACHED", 1226, "User \'%-.64s\' has exceeded the \'%s\' resource (current value: %ld)" },
-{ "ER_SPECIFIC_ACCESS_DENIED_ERROR", 1227, "Access denied; you need (at least one of) the %-.128s privilege(s) for this operation" },
-{ "ER_LOCAL_VARIABLE", 1228, "Variable \'%-.64s\' is a SESSION variable and can\'t be used with SET GLOBAL" },
-{ "ER_GLOBAL_VARIABLE", 1229, "Variable \'%-.64s\' is a GLOBAL variable and should be set with SET GLOBAL" },
-{ "ER_NO_DEFAULT", 1230, "Variable \'%-.64s\' doesn\'t have a default value" },
-{ "ER_WRONG_VALUE_FOR_VAR", 1231, "Variable \'%-.64s\' can\'t be set to the value of \'%-.200s\'" },
-{ "ER_WRONG_TYPE_FOR_VAR", 1232, "Incorrect argument type to variable \'%-.64s\'" },
-{ "ER_VAR_CANT_BE_READ", 1233, "Variable \'%-.64s\' can only be set, not read" },
-{ "ER_CANT_USE_OPTION_HERE", 1234, "Incorrect usage/placement of \'%s\'" },
-{ "ER_NOT_SUPPORTED_YET", 1235, "This version of MySQL doesn\'t yet support \'%s\'" },
-{ "ER_MASTER_FATAL_ERROR_READING_BINLOG", 1236, "Got fatal error %d from master when reading data from binary log: \'%-.128s\'" },
-{ "ER_SLAVE_IGNORED_TABLE", 1237, "Slave SQL thread ignored the query because of replicate-*-table rules" },
-{ "ER_INCORRECT_GLOBAL_LOCAL_VAR", 1238, "Variable \'%-.192s\' is a %s variable" },
-{ "ER_WRONG_FK_DEF", 1239, "Incorrect foreign key definition for \'%-.192s\': %s" },
-{ "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF", 1240, "Key reference and table reference don\'t match" },
-{ "ER_OPERAND_COLUMNS", 1241, "Operand should contain %d column(s)" },
-{ "ER_SUBQUERY_NO_1_ROW", 1242, "Subquery returns more than 1 row" },
-{ "ER_UNKNOWN_STMT_HANDLER", 1243, "Unknown prepared statement handler (%.*s) given to %s" },
-{ "ER_CORRUPT_HELP_DB", 1244, "Help database is corrupt or does not exist" },
-{ "ER_CYCLIC_REFERENCE", 1245, "Cyclic reference on subqueries" },
-{ "ER_AUTO_CONVERT", 1246, "Converting column \'%s\' from %s to %s" },
-{ "ER_ILLEGAL_REFERENCE", 1247, "Reference \'%-.64s\' not supported (%s)" },
-{ "ER_DERIVED_MUST_HAVE_ALIAS", 1248, "Every derived table must have its own alias" },
-{ "ER_SELECT_REDUCED", 1249, "Select %u was reduced during optimization" },
-{ "ER_TABLENAME_NOT_ALLOWED_HERE", 1250, "Table \'%-.192s\' from one of the SELECTs cannot be used in %-.32s" },
-{ "ER_NOT_SUPPORTED_AUTH_MODE", 1251, "Client does not support authentication protocol requested by server; consider upgrading MySQL client" },
-{ "ER_SPATIAL_CANT_HAVE_NULL", 1252, "All parts of a SPATIAL index must be NOT NULL" },
-{ "ER_COLLATION_CHARSET_MISMATCH", 1253, "COLLATION \'%s\' is not valid for CHARACTER SET \'%s\'" },
-{ "ER_SLAVE_WAS_RUNNING", 1254, "Slave is already running" },
-{ "ER_SLAVE_WAS_NOT_RUNNING", 1255, "Slave already has been stopped" },
-{ "ER_TOO_BIG_FOR_UNCOMPRESS", 1256, "Uncompressed data size too large; the maximum size is %d (probably, length of uncompressed data was corrupted)" },
-{ "ER_ZLIB_Z_MEM_ERROR", 1257, "ZLIB: Not enough memory" },
-{ "ER_ZLIB_Z_BUF_ERROR", 1258, "ZLIB: Not enough room in the output buffer (probably, length of uncompressed data was corrupted)" },
-{ "ER_ZLIB_Z_DATA_ERROR", 1259, "ZLIB: Input data corrupted" },
-{ "ER_CUT_VALUE_GROUP_CONCAT", 1260, "Row %u was cut by GROUP_CONCAT()" },
-{ "ER_WARN_TOO_FEW_RECORDS", 1261, "Row %ld doesn\'t contain data for all columns" },
-{ "ER_WARN_TOO_MANY_RECORDS", 1262, "Row %ld was truncated; it contained more data than there were input columns" },
-{ "ER_WARN_NULL_TO_NOTNULL", 1263, "Column set to default value; NULL supplied to NOT NULL column \'%s\' at row %ld" },
-{ "ER_WARN_DATA_OUT_OF_RANGE", 1264, "Out of range value for column \'%s\' at row %ld" },
-{ "WARN_DATA_TRUNCATED", 1265, "Data truncated for column \'%s\' at row %ld" },
-{ "ER_WARN_USING_OTHER_HANDLER", 1266, "Using storage engine %s for table \'%s\'" },
-{ "ER_CANT_AGGREGATE_2COLLATIONS", 1267, "Illegal mix of collations (%s,%s) and (%s,%s) for operation \'%s\'" },
-{ "ER_DROP_USER", 1268, "Cannot drop one or more of the requested users" },
-{ "ER_REVOKE_GRANTS", 1269, "Can\'t revoke all privileges for one or more of the requested users" },
-{ "ER_CANT_AGGREGATE_3COLLATIONS", 1270, "Illegal mix of collations (%s,%s), (%s,%s), (%s,%s) for operation \'%s\'" },
-{ "ER_CANT_AGGREGATE_NCOLLATIONS", 1271, "Illegal mix of collations for operation \'%s\'" },
-{ "ER_VARIABLE_IS_NOT_STRUCT", 1272, "Variable \'%-.64s\' is not a variable component (can\'t be used as XXXX.variable_name)" },
-{ "ER_UNKNOWN_COLLATION", 1273, "Unknown collation: \'%-.64s\'" },
-{ "ER_SLAVE_IGNORED_SSL_PARAMS", 1274, "SSL parameters in CHANGE MASTER are ignored because this MySQL slave was compiled without SSL support; they can be used later if MySQL slave with SSL is started" },
-{ "ER_SERVER_IS_IN_SECURE_AUTH_MODE", 1275, "Server is running in --secure-auth mode, but \'%s\'@\'%s\' has a password in the old format; please change the password to the new format" },
-{ "ER_WARN_FIELD_RESOLVED", 1276, "Field or reference \'%-.192s%s%-.192s%s%-.192s\' of SELECT #%d was resolved in SELECT #%d" },
-{ "ER_BAD_SLAVE_UNTIL_COND", 1277, "Incorrect parameter or combination of parameters for START SLAVE UNTIL" },
-{ "ER_MISSING_SKIP_SLAVE", 1278, "It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave\'s mysqld restart" },
-{ "ER_UNTIL_COND_IGNORED", 1279, "SQL thread is not to be started so UNTIL options are ignored" },
-{ "ER_WRONG_NAME_FOR_INDEX", 1280, "Incorrect index name \'%-.100s\'" },
-{ "ER_WRONG_NAME_FOR_CATALOG", 1281, "Incorrect catalog name \'%-.100s\'" },
-{ "ER_WARN_QC_RESIZE", 1282, "Query cache failed to set size %lu; new query cache size is %lu" },
-{ "ER_BAD_FT_COLUMN", 1283, "Column \'%-.192s\' cannot be part of FULLTEXT index" },
-{ "ER_UNKNOWN_KEY_CACHE", 1284, "Unknown key cache \'%-.100s\'" },
-{ "ER_WARN_HOSTNAME_WONT_WORK", 1285, "MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work" },
-{ "ER_UNKNOWN_STORAGE_ENGINE", 1286, "Unknown storage engine \'%s\'" },
-{ "ER_WARN_DEPRECATED_SYNTAX", 1287, "\'%s\' is deprecated and will be removed in a future release. Please use %s instead" },
-{ "ER_NON_UPDATABLE_TABLE", 1288, "The target table %-.100s of the %s is not updatable" },
-{ "ER_FEATURE_DISABLED", 1289, "The \'%s\' feature is disabled; you need MySQL built with \'%s\' to have it working" },
-{ "ER_OPTION_PREVENTS_STATEMENT", 1290, "The MySQL server is running with the %s option so it cannot execute this statement" },
-{ "ER_DUPLICATED_VALUE_IN_TYPE", 1291, "Column \'%-.100s\' has duplicated value \'%-.64s\' in %s" },
-{ "ER_TRUNCATED_WRONG_VALUE", 1292, "Truncated incorrect %-.32s value: \'%-.128s\'" },
-{ "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS", 1293, "Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause" },
-{ "ER_INVALID_ON_UPDATE", 1294, "Invalid ON UPDATE clause for \'%-.192s\' column" },
-{ "ER_UNSUPPORTED_PS", 1295, "This command is not supported in the prepared statement protocol yet" },
-{ "ER_GET_ERRMSG", 1296, "Got error %d \'%-.100s\' from %s" },
-{ "ER_GET_TEMPORARY_ERRMSG", 1297, "Got temporary error %d \'%-.100s\' from %s" },
-{ "ER_UNKNOWN_TIME_ZONE", 1298, "Unknown or incorrect time zone: \'%-.64s\'" },
-{ "ER_WARN_INVALID_TIMESTAMP", 1299, "Invalid TIMESTAMP value in column \'%s\' at row %ld" },
-{ "ER_INVALID_CHARACTER_STRING", 1300, "Invalid %s character string: \'%.64s\'" },
-{ "ER_WARN_ALLOWED_PACKET_OVERFLOWED", 1301, "Result of %s() was larger than max_allowed_packet (%ld) - truncated" },
-{ "ER_CONFLICTING_DECLARATIONS", 1302, "Conflicting declarations: \'%s%s\' and \'%s%s\'" },
-{ "ER_SP_NO_RECURSIVE_CREATE", 1303, "Can\'t create a %s from within another stored routine" },
-{ "ER_SP_ALREADY_EXISTS", 1304, "%s %s already exists" },
-{ "ER_SP_DOES_NOT_EXIST", 1305, "%s %s does not exist" },
-{ "ER_SP_DROP_FAILED", 1306, "Failed to DROP %s %s" },
-{ "ER_SP_STORE_FAILED", 1307, "Failed to CREATE %s %s" },
-{ "ER_SP_LILABEL_MISMATCH", 1308, "%s with no matching label: %s" },
-{ "ER_SP_LABEL_REDEFINE", 1309, "Redefining label %s" },
-{ "ER_SP_LABEL_MISMATCH", 1310, "End-label %s without match" },
-{ "ER_SP_UNINIT_VAR", 1311, "Referring to uninitialized variable %s" },
-{ "ER_SP_BADSELECT", 1312, "PROCEDURE %s can\'t return a result set in the given context" },
-{ "ER_SP_BADRETURN", 1313, "RETURN is only allowed in a FUNCTION" },
-{ "ER_SP_BADSTATEMENT", 1314, "%s is not allowed in stored procedures" },
-{ "ER_UPDATE_LOG_DEPRECATED_IGNORED", 1315, "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been ignored. This option will be removed in MySQL 5.6." },
-{ "ER_UPDATE_LOG_DEPRECATED_TRANSLATED", 1316, "The update log is deprecated and replaced by the binary log; SET SQL_LOG_UPDATE has been translated to SET SQL_LOG_BIN. This option will be removed in MySQL 5.6." },
-{ "ER_QUERY_INTERRUPTED", 1317, "Query execution was interrupted" },
-{ "ER_SP_WRONG_NO_OF_ARGS", 1318, "Incorrect number of arguments for %s %s; expected %u, got %u" },
-{ "ER_SP_COND_MISMATCH", 1319, "Undefined CONDITION: %s" },
-{ "ER_SP_NORETURN", 1320, "No RETURN found in FUNCTION %s" },
-{ "ER_SP_NORETURNEND", 1321, "FUNCTION %s ended without RETURN" },
-{ "ER_SP_BAD_CURSOR_QUERY", 1322, "Cursor statement must be a SELECT" },
-{ "ER_SP_BAD_CURSOR_SELECT", 1323, "Cursor SELECT must not have INTO" },
-{ "ER_SP_CURSOR_MISMATCH", 1324, "Undefined CURSOR: %s" },
-{ "ER_SP_CURSOR_ALREADY_OPEN", 1325, "Cursor is already open" },
-{ "ER_SP_CURSOR_NOT_OPEN", 1326, "Cursor is not open" },
-{ "ER_SP_UNDECLARED_VAR", 1327, "Undeclared variable: %s" },
-{ "ER_SP_WRONG_NO_OF_FETCH_ARGS", 1328, "Incorrect number of FETCH variables" },
-{ "ER_SP_FETCH_NO_DATA", 1329, "No data - zero rows fetched, selected, or processed" },
-{ "ER_SP_DUP_PARAM", 1330, "Duplicate parameter: %s" },
-{ "ER_SP_DUP_VAR", 1331, "Duplicate variable: %s" },
-{ "ER_SP_DUP_COND", 1332, "Duplicate condition: %s" },
-{ "ER_SP_DUP_CURS", 1333, "Duplicate cursor: %s" },
-{ "ER_SP_CANT_ALTER", 1334, "Failed to ALTER %s %s" },
-{ "ER_SP_SUBSELECT_NYI", 1335, "Subquery value not supported" },
-{ "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG", 1336, "%s is not allowed in stored function or trigger" },
-{ "ER_SP_VARCOND_AFTER_CURSHNDLR", 1337, "Variable or condition declaration after cursor or handler declaration" },
-{ "ER_SP_CURSOR_AFTER_HANDLER", 1338, "Cursor declaration after handler declaration" },
-{ "ER_SP_CASE_NOT_FOUND", 1339, "Case not found for CASE statement" },
-{ "ER_FPARSER_TOO_BIG_FILE", 1340, "Configuration file \'%-.192s\' is too big" },
-{ "ER_FPARSER_BAD_HEADER", 1341, "Malformed file type header in file \'%-.192s\'" },
-{ "ER_FPARSER_EOF_IN_COMMENT", 1342, "Unexpected end of file while parsing comment \'%-.200s\'" },
-{ "ER_FPARSER_ERROR_IN_PARAMETER", 1343, "Error while parsing parameter \'%-.192s\' (line: \'%-.192s\')" },
-{ "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER", 1344, "Unexpected end of file while skipping unknown parameter \'%-.192s\'" },
-{ "ER_VIEW_NO_EXPLAIN", 1345, "EXPLAIN/SHOW can not be issued; lacking privileges for underlying table" },
-{ "ER_FRM_UNKNOWN_TYPE", 1346, "File \'%-.192s\' has unknown type \'%-.64s\' in its header" },
-{ "ER_WRONG_OBJECT", 1347, "\'%-.192s.%-.192s\' is not %s" },
-{ "ER_NONUPDATEABLE_COLUMN", 1348, "Column \'%-.192s\' is not updatable" },
-{ "ER_VIEW_SELECT_DERIVED", 1349, "View\'s SELECT contains a subquery in the FROM clause" },
-{ "ER_VIEW_SELECT_CLAUSE", 1350, "View\'s SELECT contains a \'%s\' clause" },
-{ "ER_VIEW_SELECT_VARIABLE", 1351, "View\'s SELECT contains a variable or parameter" },
-{ "ER_VIEW_SELECT_TMPTABLE", 1352, "View\'s SELECT refers to a temporary table \'%-.192s\'" },
-{ "ER_VIEW_WRONG_LIST", 1353, "View\'s SELECT and view\'s field list have different column counts" },
-{ "ER_WARN_VIEW_MERGE", 1354, "View merge algorithm can\'t be used here for now (assumed undefined algorithm)" },
-{ "ER_WARN_VIEW_WITHOUT_KEY", 1355, "View being updated does not have complete key of underlying table in it" },
-{ "ER_VIEW_INVALID", 1356, "View \'%-.192s.%-.192s\' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" },
-{ "ER_SP_NO_DROP_SP", 1357, "Can\'t drop or alter a %s from within another stored routine" },
-{ "ER_SP_GOTO_IN_HNDLR", 1358, "GOTO is not allowed in a stored procedure handler" },
-{ "ER_TRG_ALREADY_EXISTS", 1359, "Trigger already exists" },
-{ "ER_TRG_DOES_NOT_EXIST", 1360, "Trigger does not exist" },
-{ "ER_TRG_ON_VIEW_OR_TEMP_TABLE", 1361, "Trigger\'s \'%-.192s\' is view or temporary table" },
-{ "ER_TRG_CANT_CHANGE_ROW", 1362, "Updating of %s row is not allowed in %strigger" },
-{ "ER_TRG_NO_SUCH_ROW_IN_TRG", 1363, "There is no %s row in %s trigger" },
-{ "ER_NO_DEFAULT_FOR_FIELD", 1364, "Field \'%-.192s\' doesn\'t have a default value" },
-{ "ER_DIVISION_BY_ZERO", 1365, "Division by 0" },
-{ "ER_TRUNCATED_WRONG_VALUE_FOR_FIELD", 1366, "Incorrect %-.32s value: \'%-.128s\' for column \'%.192s\' at row %ld" },
-{ "ER_ILLEGAL_VALUE_FOR_TYPE", 1367, "Illegal %s \'%-.192s\' value found during parsing" },
-{ "ER_VIEW_NONUPD_CHECK", 1368, "CHECK OPTION on non-updatable view \'%-.192s.%-.192s\'" },
-{ "ER_VIEW_CHECK_FAILED", 1369, "CHECK OPTION failed \'%-.192s.%-.192s\'" },
-{ "ER_PROCACCESS_DENIED_ERROR", 1370, "%-.16s command denied to user \'%-.48s\'@\'%-.64s\' for routine \'%-.192s\'" },
-{ "ER_RELAY_LOG_FAIL", 1371, "Failed purging old relay logs: %s" },
-{ "ER_PASSWD_LENGTH", 1372, "Password hash should be a %d-digit hexadecimal number" },
-{ "ER_UNKNOWN_TARGET_BINLOG", 1373, "Target log not found in binlog index" },
-{ "ER_IO_ERR_LOG_INDEX_READ", 1374, "I/O error reading log index file" },
-{ "ER_BINLOG_PURGE_PROHIBITED", 1375, "Server configuration does not permit binlog purge" },
-{ "ER_FSEEK_FAIL", 1376, "Failed on fseek()" },
-{ "ER_BINLOG_PURGE_FATAL_ERR", 1377, "Fatal error during log purge" },
-{ "ER_LOG_IN_USE", 1378, "A purgeable log is in use, will not purge" },
-{ "ER_LOG_PURGE_UNKNOWN_ERR", 1379, "Unknown error during log purge" },
-{ "ER_RELAY_LOG_INIT", 1380, "Failed initializing relay log position: %s" },
-{ "ER_NO_BINARY_LOGGING", 1381, "You are not using binary logging" },
-{ "ER_RESERVED_SYNTAX", 1382, "The \'%-.64s\' syntax is reserved for purposes internal to the MySQL server" },
-{ "ER_WSAS_FAILED", 1383, "WSAStartup Failed" },
-{ "ER_DIFF_GROUPS_PROC", 1384, "Can\'t handle procedures with different groups yet" },
-{ "ER_NO_GROUP_FOR_PROC", 1385, "Select must have a group with this procedure" },
-{ "ER_ORDER_WITH_PROC", 1386, "Can\'t use ORDER clause with this procedure" },
-{ "ER_LOGGING_PROHIBIT_CHANGING_OF", 1387, "Binary logging and replication forbid changing the global server %s" },
-{ "ER_NO_FILE_MAPPING", 1388, "Can\'t map file: %-.200s, errno: %d" },
-{ "ER_WRONG_MAGIC", 1389, "Wrong magic in %-.64s" },
-{ "ER_PS_MANY_PARAM", 1390, "Prepared statement contains too many placeholders" },
-{ "ER_KEY_PART_0", 1391, "Key part \'%-.192s\' length cannot be 0" },
-{ "ER_VIEW_CHECKSUM", 1392, "View text checksum failed" },
-{ "ER_VIEW_MULTIUPDATE", 1393, "Can not modify more than one base table through a join view \'%-.192s.%-.192s\'" },
-{ "ER_VIEW_NO_INSERT_FIELD_LIST", 1394, "Can not insert into join view \'%-.192s.%-.192s\' without fields list" },
-{ "ER_VIEW_DELETE_MERGE_VIEW", 1395, "Can not delete from join view \'%-.192s.%-.192s\'" },
-{ "ER_CANNOT_USER", 1396, "Operation %s failed for %.256s" },
-{ "ER_XAER_NOTA", 1397, "XAER_NOTA: Unknown XID" },
-{ "ER_XAER_INVAL", 1398, "XAER_INVAL: Invalid arguments (or unsupported command)" },
-{ "ER_XAER_RMFAIL", 1399, "XAER_RMFAIL: The command cannot be executed when global transaction is in the %.64s state" },
-{ "ER_XAER_OUTSIDE", 1400, "XAER_OUTSIDE: Some work is done outside global transaction" },
-{ "ER_XAER_RMERR", 1401, "XAER_RMERR: Fatal error occurred in the transaction branch - check your data for consistency" },
-{ "ER_XA_RBROLLBACK", 1402, "XA_RBROLLBACK: Transaction branch was rolled back" },
-{ "ER_NONEXISTING_PROC_GRANT", 1403, "There is no such grant defined for user \'%-.48s\' on host \'%-.64s\' on routine \'%-.192s\'" },
-{ "ER_PROC_AUTO_GRANT_FAIL", 1404, "Failed to grant EXECUTE and ALTER ROUTINE privileges" },
-{ "ER_PROC_AUTO_REVOKE_FAIL", 1405, "Failed to revoke all privileges to dropped routine" },
-{ "ER_DATA_TOO_LONG", 1406, "Data too long for column \'%s\' at row %ld" },
-{ "ER_SP_BAD_SQLSTATE", 1407, "Bad SQLSTATE: \'%s\'" },
-{ "ER_STARTUP", 1408, "%s: ready for connections.\nVersion: \'%s\' socket: \'%s\' port: %d %s" },
-{ "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR", 1409, "Can\'t load value from file with fixed size rows to variable" },
-{ "ER_CANT_CREATE_USER_WITH_GRANT", 1410, "You are not allowed to create a user with GRANT" },
-{ "ER_WRONG_VALUE_FOR_TYPE", 1411, "Incorrect %-.32s value: \'%-.128s\' for function %-.32s" },
-{ "ER_TABLE_DEF_CHANGED", 1412, "Table definition has changed, please retry transaction" },
-{ "ER_SP_DUP_HANDLER", 1413, "Duplicate handler declared in the same block" },
-{ "ER_SP_NOT_VAR_ARG", 1414, "OUT or INOUT argument %d for routine %s is not a variable or NEW pseudo-variable in BEFORE trigger" },
-{ "ER_SP_NO_RETSET", 1415, "Not allowed to return a result set from a %s" },
-{ "ER_CANT_CREATE_GEOMETRY_OBJECT", 1416, "Cannot get geometry object from data you send to the GEOMETRY field" },
-{ "ER_FAILED_ROUTINE_BREAK_BINLOG", 1417, "A routine failed and has neither NO SQL nor READS SQL DATA in its declaration and binary logging is enabled; if non-transactional tables were updated, the binary log will miss their changes" },
-{ "ER_BINLOG_UNSAFE_ROUTINE", 1418, "This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" },
-{ "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER", 1419, "You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)" },
-{ "ER_EXEC_STMT_WITH_OPEN_CURSOR", 1420, "You can\'t execute a prepared statement which has an open cursor associated with it. Reset the statement to re-execute it." },
-{ "ER_STMT_HAS_NO_OPEN_CURSOR", 1421, "The statement (%lu) has no open cursor." },
-{ "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG", 1422, "Explicit or implicit commit is not allowed in stored function or trigger." },
-{ "ER_NO_DEFAULT_FOR_VIEW_FIELD", 1423, "Field of view \'%-.192s.%-.192s\' underlying table doesn\'t have a default value" },
-{ "ER_SP_NO_RECURSION", 1424, "Recursive stored functions and triggers are not allowed." },
-{ "ER_TOO_BIG_SCALE", 1425, "Too big scale %d specified for column \'%-.192s\'. Maximum is %lu." },
-{ "ER_TOO_BIG_PRECISION", 1426, "Too big precision %d specified for column \'%-.192s\'. Maximum is %lu." },
-{ "ER_M_BIGGER_THAN_D", 1427, "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column \'%-.192s\')." },
-{ "ER_WRONG_LOCK_OF_SYSTEM_TABLE", 1428, "You can\'t combine write-locking of system tables with other tables or lock types" },
-{ "ER_CONNECT_TO_FOREIGN_DATA_SOURCE", 1429, "Unable to connect to foreign data source: %.64s" },
-{ "ER_QUERY_ON_FOREIGN_DATA_SOURCE", 1430, "There was a problem processing the query on the foreign data source. Data source error: %-.64s" },
-{ "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST", 1431, "The foreign data source you are trying to reference does not exist. Data source error: %-.64s" },
-{ "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE", 1432, "Can\'t create federated table. The data source connection string \'%-.64s\' is not in the correct format" },
-{ "ER_FOREIGN_DATA_STRING_INVALID", 1433, "The data source connection string \'%-.64s\' is not in the correct format" },
-{ "ER_CANT_CREATE_FEDERATED_TABLE", 1434, "Can\'t create federated table. Foreign data src error: %-.64s" },
-{ "ER_TRG_IN_WRONG_SCHEMA", 1435, "Trigger in wrong schema" },
-{ "ER_STACK_OVERRUN_NEED_MORE", 1436, "Thread stack overrun: %ld bytes used of a %ld byte stack, and %ld bytes needed. Use \'mysqld --thread_stack=#\' to specify a bigger stack." },
-{ "ER_TOO_LONG_BODY", 1437, "Routine body for \'%-.100s\' is too long" },
-{ "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE", 1438, "Cannot drop default keycache" },
-{ "ER_TOO_BIG_DISPLAYWIDTH", 1439, "Display width out of range for column \'%-.192s\' (max = %lu)" },
-{ "ER_XAER_DUPID", 1440, "XAER_DUPID: The XID already exists" },
-{ "ER_DATETIME_FUNCTION_OVERFLOW", 1441, "Datetime function: %-.32s field overflow" },
-{ "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG", 1442, "Can\'t update table \'%-.192s\' in stored function/trigger because it is already used by statement which invoked this stored function/trigger." },
-{ "ER_VIEW_PREVENT_UPDATE", 1443, "The definition of table \'%-.192s\' prevents operation %.192s on table \'%-.192s\'." },
-{ "ER_PS_NO_RECURSION", 1444, "The prepared statement contains a stored routine call that refers to that same statement. It\'s not allowed to execute a prepared statement in such a recursive manner" },
-{ "ER_SP_CANT_SET_AUTOCOMMIT", 1445, "Not allowed to set autocommit from a stored function or trigger" },
-{ "ER_MALFORMED_DEFINER", 1446, "Definer is not fully qualified" },
-{ "ER_VIEW_FRM_NO_USER", 1447, "View \'%-.192s\'.\'%-.192s\' has no definer information (old table format). Current user is used as definer. Please recreate the view!" },
-{ "ER_VIEW_OTHER_USER", 1448, "You need the SUPER privilege for creation view with \'%-.192s\'@\'%-.192s\' definer" },
-{ "ER_NO_SUCH_USER", 1449, "The user specified as a definer (\'%-.64s\'@\'%-.64s\') does not exist" },
-{ "ER_FORBID_SCHEMA_CHANGE", 1450, "Changing schema from \'%-.192s\' to \'%-.192s\' is not allowed." },
-{ "ER_ROW_IS_REFERENCED_2", 1451, "Cannot delete or update a parent row: a foreign key constraint fails (%.192s)" },
-{ "ER_NO_REFERENCED_ROW_2", 1452, "Cannot add or update a child row: a foreign key constraint fails (%.192s)" },
-{ "ER_SP_BAD_VAR_SHADOW", 1453, "Variable \'%-.64s\' must be quoted with `...`, or renamed" },
-{ "ER_TRG_NO_DEFINER", 1454, "No definer attribute for trigger \'%-.192s\'.\'%-.192s\'. The trigger will be activated under the authorization of the invoker, which may have insufficient privileges. Please recreate the trigger." },
-{ "ER_OLD_FILE_FORMAT", 1455, "\'%-.192s\' has an old format, you should re-create the \'%s\' object(s)" },
-{ "ER_SP_RECURSION_LIMIT", 1456, "Recursive limit %d (as set by the max_sp_recursion_depth variable) was exceeded for routine %.192s" },
-{ "ER_SP_PROC_TABLE_CORRUPT", 1457, "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)" },
-{ "ER_SP_WRONG_NAME", 1458, "Incorrect routine name \'%-.192s\'" },
-{ "ER_TABLE_NEEDS_UPGRADE", 1459, "Table upgrade required. Please do \"REPAIR TABLE `%-.32s`\" or dump/reload to fix it!" },
-{ "ER_SP_NO_AGGREGATE", 1460, "AGGREGATE is not supported for stored functions" },
-{ "ER_MAX_PREPARED_STMT_COUNT_REACHED", 1461, "Can\'t create more than max_prepared_stmt_count statements (current value: %lu)" },
-{ "ER_VIEW_RECURSIVE", 1462, "`%-.192s`.`%-.192s` contains view recursion" },
-{ "ER_NON_GROUPING_FIELD_USED", 1463, "non-grouping field \'%-.192s\' is used in %-.64s clause" },
-{ "ER_TABLE_CANT_HANDLE_SPKEYS", 1464, "The used table type doesn\'t support SPATIAL indexes" },
-{ "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA", 1465, "Triggers can not be created on system tables" },
-{ "ER_REMOVED_SPACES", 1466, "Leading spaces are removed from name \'%s\'" },
-{ "ER_AUTOINC_READ_FAILED", 1467, "Failed to read auto-increment value from storage engine" },
-{ "ER_USERNAME", 1468, "user name" },
-{ "ER_HOSTNAME", 1469, "host name" },
-{ "ER_WRONG_STRING_LENGTH", 1470, "String \'%-.70s\' is too long for %s (should be no longer than %d)" },
-{ "ER_NON_INSERTABLE_TABLE", 1471, "The target table %-.100s of the %s is not insertable-into" },
-{ "ER_ADMIN_WRONG_MRG_TABLE", 1472, "Table \'%-.64s\' is differently defined or of non-MyISAM type or doesn\'t exist" },
-{ "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT", 1473, "Too high level of nesting for select" },
-{ "ER_NAME_BECOMES_EMPTY", 1474, "Name \'%-.64s\' has become \'\'" },
-{ "ER_AMBIGUOUS_FIELD_TERM", 1475, "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" },
-{ "ER_FOREIGN_SERVER_EXISTS", 1476, "The foreign server, %s, you are trying to create already exists." },
-{ "ER_FOREIGN_SERVER_DOESNT_EXIST", 1477, "The foreign server name you are trying to reference does not exist. Data source error: %-.64s" },
-{ "ER_ILLEGAL_HA_CREATE_OPTION", 1478, "Table storage engine \'%-.64s\' does not support the create option \'%.64s\'" },
-{ "ER_PARTITION_REQUIRES_VALUES_ERROR", 1479, "Syntax error: %-.64s PARTITIONING requires definition of VALUES %-.64s for each partition" },
-{ "ER_PARTITION_WRONG_VALUES_ERROR", 1480, "Only %-.64s PARTITIONING can use VALUES %-.64s in partition definition" },
-{ "ER_PARTITION_MAXVALUE_ERROR", 1481, "MAXVALUE can only be used in last partition definition" },
-{ "ER_PARTITION_SUBPARTITION_ERROR", 1482, "Subpartitions can only be hash partitions and by key" },
-{ "ER_PARTITION_SUBPART_MIX_ERROR", 1483, "Must define subpartitions on all partitions if on one partition" },
-{ "ER_PARTITION_WRONG_NO_PART_ERROR", 1484, "Wrong number of partitions defined, mismatch with previous setting" },
-{ "ER_PARTITION_WRONG_NO_SUBPART_ERROR", 1485, "Wrong number of subpartitions defined, mismatch with previous setting" },
-{ "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR", 1486, "Constant, random or timezone-dependent expressions in (sub)partitioning function are not allowed" },
-{ "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR", 1487, "Expression in RANGE/LIST VALUES must be constant" },
-{ "ER_FIELD_NOT_FOUND_PART_ERROR", 1488, "Field in list of fields for partition function not found in table" },
-{ "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR", 1489, "List of fields is only allowed in KEY partitions" },
-{ "ER_INCONSISTENT_PARTITION_INFO_ERROR", 1490, "The partition info in the frm file is not consistent with what can be written into the frm file" },
-{ "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR", 1491, "The %-.192s function returns the wrong type" },
-{ "ER_PARTITIONS_MUST_BE_DEFINED_ERROR", 1492, "For %-.64s partitions each partition must be defined" },
-{ "ER_RANGE_NOT_INCREASING_ERROR", 1493, "VALUES LESS THAN value must be strictly increasing for each partition" },
-{ "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR", 1494, "VALUES value must be of same type as partition function" },
-{ "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR", 1495, "Multiple definition of same constant in list partitioning" },
-{ "ER_PARTITION_ENTRY_ERROR", 1496, "Partitioning can not be used stand-alone in query" },
-{ "ER_MIX_HANDLER_ERROR", 1497, "The mix of handlers in the partitions is not allowed in this version of MySQL" },
-{ "ER_PARTITION_NOT_DEFINED_ERROR", 1498, "For the partitioned engine it is necessary to define all %-.64s" },
-{ "ER_TOO_MANY_PARTITIONS_ERROR", 1499, "Too many partitions (including subpartitions) were defined" },
-{ "ER_SUBPARTITION_ERROR", 1500, "It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning" },
-{ "ER_CANT_CREATE_HANDLER_FILE", 1501, "Failed to create specific handler file" },
-{ "ER_BLOB_FIELD_IN_PART_FUNC_ERROR", 1502, "A BLOB field is not allowed in partition function" },
-{ "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF", 1503, "A %-.192s must include all columns in the table\'s partitioning function" },
-{ "ER_NO_PARTS_ERROR", 1504, "Number of %-.64s = 0 is not an allowed value" },
-{ "ER_PARTITION_MGMT_ON_NONPARTITIONED", 1505, "Partition management on a not partitioned table is not possible" },
-{ "ER_FOREIGN_KEY_ON_PARTITIONED", 1506, "Foreign key clause is not yet supported in conjunction with partitioning" },
-{ "ER_DROP_PARTITION_NON_EXISTENT", 1507, "Error in list of partitions to %-.64s" },
-{ "ER_DROP_LAST_PARTITION", 1508, "Cannot remove all partitions, use DROP TABLE instead" },
-{ "ER_COALESCE_ONLY_ON_HASH_PARTITION", 1509, "COALESCE PARTITION can only be used on HASH/KEY partitions" },
-{ "ER_REORG_HASH_ONLY_ON_SAME_NO", 1510, "REORGANIZE PARTITION can only be used to reorganize partitions not to change their numbers" },
-{ "ER_REORG_NO_PARAM_ERROR", 1511, "REORGANIZE PARTITION without parameters can only be used on auto-partitioned tables using HASH PARTITIONs" },
-{ "ER_ONLY_ON_RANGE_LIST_PARTITION", 1512, "%-.64s PARTITION can only be used on RANGE/LIST partitions" },
-{ "ER_ADD_PARTITION_SUBPART_ERROR", 1513, "Trying to Add partition(s) with wrong number of subpartitions" },
-{ "ER_ADD_PARTITION_NO_NEW_PARTITION", 1514, "At least one partition must be added" },
-{ "ER_COALESCE_PARTITION_NO_PARTITION", 1515, "At least one partition must be coalesced" },
-{ "ER_REORG_PARTITION_NOT_EXIST", 1516, "More partitions to reorganize than there are partitions" },
-{ "ER_SAME_NAME_PARTITION", 1517, "Duplicate partition name %-.192s" },
-{ "ER_NO_BINLOG_ERROR", 1518, "It is not allowed to shut off binlog on this command" },
-{ "ER_CONSECUTIVE_REORG_PARTITIONS", 1519, "When reorganizing a set of partitions they must be in consecutive order" },
-{ "ER_REORG_OUTSIDE_RANGE", 1520, "Reorganize of range partitions cannot change total ranges except for last partition where it can extend the range" },
-{ "ER_PARTITION_FUNCTION_FAILURE", 1521, "Partition function not supported in this version for this handler" },
-{ "ER_PART_STATE_ERROR", 1522, "Partition state cannot be defined from CREATE/ALTER TABLE" },
-{ "ER_LIMITED_PART_RANGE", 1523, "The %-.64s handler only supports 32 bit integers in VALUES" },
-{ "ER_PLUGIN_IS_NOT_LOADED", 1524, "Plugin \'%-.192s\' is not loaded" },
-{ "ER_WRONG_VALUE", 1525, "Incorrect %-.32s value: \'%-.128s\'" },
-{ "ER_NO_PARTITION_FOR_GIVEN_VALUE", 1526, "Table has no partition for value %-.64s" },
-{ "ER_FILEGROUP_OPTION_ONLY_ONCE", 1527, "It is not allowed to specify %s more than once" },
-{ "ER_CREATE_FILEGROUP_FAILED", 1528, "Failed to create %s" },
-{ "ER_DROP_FILEGROUP_FAILED", 1529, "Failed to drop %s" },
-{ "ER_TABLESPACE_AUTO_EXTEND_ERROR", 1530, "The handler doesn\'t support autoextend of tablespaces" },
-{ "ER_WRONG_SIZE_NUMBER", 1531, "A size parameter was incorrectly specified, either number or on the form 10M" },
-{ "ER_SIZE_OVERFLOW_ERROR", 1532, "The size number was correct but we don\'t allow the digit part to be more than 2 billion" },
-{ "ER_ALTER_FILEGROUP_FAILED", 1533, "Failed to alter: %s" },
-{ "ER_BINLOG_ROW_LOGGING_FAILED", 1534, "Writing one row to the row-based binary log failed" },
-{ "ER_BINLOG_ROW_WRONG_TABLE_DEF", 1535, "Table definition on master and slave does not match: %s" },
-{ "ER_BINLOG_ROW_RBR_TO_SBR", 1536, "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events" },
-{ "ER_EVENT_ALREADY_EXISTS", 1537, "Event \'%-.192s\' already exists" },
-{ "ER_EVENT_STORE_FAILED", 1538, "Failed to store event %s. Error code %d from storage engine." },
-{ "ER_EVENT_DOES_NOT_EXIST", 1539, "Unknown event \'%-.192s\'" },
-{ "ER_EVENT_CANT_ALTER", 1540, "Failed to alter event \'%-.192s\'" },
-{ "ER_EVENT_DROP_FAILED", 1541, "Failed to drop %s" },
-{ "ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG", 1542, "INTERVAL is either not positive or too big" },
-{ "ER_EVENT_ENDS_BEFORE_STARTS", 1543, "ENDS is either invalid or before STARTS" },
-{ "ER_EVENT_EXEC_TIME_IN_THE_PAST", 1544, "Event execution time is in the past. Event has been disabled" },
-{ "ER_EVENT_OPEN_TABLE_FAILED", 1545, "Failed to open mysql.event" },
-{ "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT", 1546, "No datetime expression provided" },
-{ "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED", 1547, "Column count of mysql.%s is wrong. Expected %d, found %d. The table is probably corrupted" },
-{ "ER_CANNOT_LOAD_FROM_TABLE", 1548, "Cannot load from mysql.%s. The table is probably corrupted" },
-{ "ER_EVENT_CANNOT_DELETE", 1549, "Failed to delete the event from mysql.event" },
-{ "ER_EVENT_COMPILE_ERROR", 1550, "Error during compilation of event\'s body" },
-{ "ER_EVENT_SAME_NAME", 1551, "Same old and new event name" },
-{ "ER_EVENT_DATA_TOO_LONG", 1552, "Data for column \'%s\' too long" },
-{ "ER_DROP_INDEX_FK", 1553, "Cannot drop index \'%-.192s\': needed in a foreign key constraint" },
-{ "ER_WARN_DEPRECATED_SYNTAX_WITH_VER", 1554, "The syntax \'%s\' is deprecated and will be removed in MySQL %s. Please use %s instead" },
-{ "ER_CANT_WRITE_LOCK_LOG_TABLE", 1555, "You can\'t write-lock a log table. Only read access is possible" },
-{ "ER_CANT_LOCK_LOG_TABLE", 1556, "You can\'t use locks with log tables." },
-{ "ER_FOREIGN_DUPLICATE_KEY", 1557, "Upholding foreign key constraints for table \'%.192s\', entry \'%-.192s\', key %d would lead to a duplicate entry" },
-{ "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE", 1558, "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error." },
-{ "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR", 1559, "Cannot switch out of the row-based binary log format when the session has open temporary tables" },
-{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1560, "Cannot change the binary logging format inside a stored function or trigger" },
-{ "ER_NDB_CANT_SWITCH_BINLOG_FORMAT", 1561, "The NDB cluster engine does not support changing the binlog format on the fly yet" },
-{ "ER_PARTITION_NO_TEMPORARY", 1562, "Cannot create temporary table with partitions" },
-{ "ER_PARTITION_CONST_DOMAIN_ERROR", 1563, "Partition constant is out of partition function domain" },
-{ "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED", 1564, "This partition function is not allowed" },
-{ "ER_DDL_LOG_ERROR", 1565, "Error in DDL log" },
-{ "ER_NULL_IN_VALUES_LESS_THAN", 1566, "Not allowed to use NULL value in VALUES LESS THAN" },
-{ "ER_WRONG_PARTITION_NAME", 1567, "Incorrect partition name" },
-{ "ER_CANT_CHANGE_TX_ISOLATION", 1568, "Transaction isolation level can\'t be changed while a transaction is in progress" },
-{ "ER_DUP_ENTRY_AUTOINCREMENT_CASE", 1569, "ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry \'%-.192s\' for key \'%-.192s\'" },
-{ "ER_EVENT_MODIFY_QUEUE_ERROR", 1570, "Internal scheduler error %d" },
-{ "ER_EVENT_SET_VAR_ERROR", 1571, "Error during starting/stopping of the scheduler. Error code %u" },
-{ "ER_PARTITION_MERGE_ERROR", 1572, "Engine cannot be used in partitioned tables" },
-{ "ER_CANT_ACTIVATE_LOG", 1573, "Cannot activate \'%-.64s\' log" },
-{ "ER_RBR_NOT_AVAILABLE", 1574, "The server was not built with row-based replication" },
-{ "ER_BASE64_DECODE_ERROR", 1575, "Decoding of base64 string failed" },
-{ "ER_EVENT_RECURSION_FORBIDDEN", 1576, "Recursion of EVENT DDL statements is forbidden when body is present" },
-{ "ER_EVENTS_DB_ERROR", 1577, "Cannot proceed because system tables used by Event Scheduler were found damaged at server start" },
-{ "ER_ONLY_INTEGERS_ALLOWED", 1578, "Only integers allowed as number here" },
-{ "ER_UNSUPORTED_LOG_ENGINE", 1579, "This storage engine cannot be used for log tables\"" },
-{ "ER_BAD_LOG_STATEMENT", 1580, "You cannot \'%s\' a log table if logging is enabled" },
-{ "ER_CANT_RENAME_LOG_TABLE", 1581, "Cannot rename \'%s\'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to \'%s\'" },
-{ "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT", 1582, "Incorrect parameter count in the call to native function \'%-.192s\'" },
-{ "ER_WRONG_PARAMETERS_TO_NATIVE_FCT", 1583, "Incorrect parameters in the call to native function \'%-.192s\'" },
-{ "ER_WRONG_PARAMETERS_TO_STORED_FCT", 1584, "Incorrect parameters in the call to stored function \'%-.192s\'" },
-{ "ER_NATIVE_FCT_NAME_COLLISION", 1585, "This function \'%-.192s\' has the same name as a native function" },
-{ "ER_DUP_ENTRY_WITH_KEY_NAME", 1586, "Duplicate entry \'%-.64s\' for key \'%-.192s\'" },
-{ "ER_BINLOG_PURGE_EMFILE", 1587, "Too many files opened, please execute the command again" },
-{ "ER_EVENT_CANNOT_CREATE_IN_THE_PAST", 1588, "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." },
-{ "ER_EVENT_CANNOT_ALTER_IN_THE_PAST", 1589, "Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. The event was dropped immediately after creation." },
-{ "ER_SLAVE_INCIDENT", 1590, "The incident %s occured on the master. Message: %-.64s" },
-{ "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT", 1591, "Table has no partition for some existing values" },
-{ "ER_BINLOG_UNSAFE_STATEMENT", 1592, "Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. %s" },
-{ "ER_SLAVE_FATAL_ERROR", 1593, "Fatal error: %s" },
-{ "ER_SLAVE_RELAY_LOG_READ_FAILURE", 1594, "Relay log read failure: %s" },
-{ "ER_SLAVE_RELAY_LOG_WRITE_FAILURE", 1595, "Relay log write failure: %s" },
-{ "ER_SLAVE_CREATE_EVENT_FAILURE", 1596, "Failed to create %s" },
-{ "ER_SLAVE_MASTER_COM_FAILURE", 1597, "Master command %s failed: %s" },
-{ "ER_BINLOG_LOGGING_IMPOSSIBLE", 1598, "Binary logging not possible. Message: %s" },
-{ "ER_VIEW_NO_CREATION_CTX", 1599, "View `%-.64s`.`%-.64s` has no creation context" },
-{ "ER_VIEW_INVALID_CREATION_CTX", 1600, "Creation context of view `%-.64s`.`%-.64s\' is invalid" },
-{ "ER_SR_INVALID_CREATION_CTX", 1601, "Creation context of stored routine `%-.64s`.`%-.64s` is invalid" },
-{ "ER_TRG_CORRUPTED_FILE", 1602, "Corrupted TRG file for table `%-.64s`.`%-.64s`" },
-{ "ER_TRG_NO_CREATION_CTX", 1603, "Triggers for table `%-.64s`.`%-.64s` have no creation context" },
-{ "ER_TRG_INVALID_CREATION_CTX", 1604, "Trigger creation context of table `%-.64s`.`%-.64s` is invalid" },
-{ "ER_EVENT_INVALID_CREATION_CTX", 1605, "Creation context of event `%-.64s`.`%-.64s` is invalid" },
-{ "ER_TRG_CANT_OPEN_TABLE", 1606, "Cannot open table for trigger `%-.64s`.`%-.64s`" },
-{ "ER_CANT_CREATE_SROUTINE", 1607, "Cannot create stored routine `%-.64s`. Check warnings" },
-{ "ER_NEVER_USED", 1608, "Ambiguous slave modes combination. %s" },
-{ "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT", 1609, "The BINLOG statement of type `%s` was not preceded by a format description BINLOG statement." },
-{ "ER_SLAVE_CORRUPT_EVENT", 1610, "Corrupted replication event was detected" },
-{ "ER_LOAD_DATA_INVALID_COLUMN", 1611, "Invalid column reference (%-.64s) in LOAD DATA" },
-{ "ER_LOG_PURGE_NO_FILE", 1612, "Being purged log %s was not found" },
-{ "ER_XA_RBTIMEOUT", 1613, "XA_RBTIMEOUT: Transaction branch was rolled back: took too long" },
-{ "ER_XA_RBDEADLOCK", 1614, "XA_RBDEADLOCK: Transaction branch was rolled back: deadlock was detected" },
-{ "ER_NEED_REPREPARE", 1615, "Prepared statement needs to be re-prepared" },
-{ "ER_DELAYED_NOT_SUPPORTED", 1616, "DELAYED option not supported for table \'%-.192s\'" },
-{ "WARN_NO_MASTER_INFO", 1617, "The master info structure does not exist" },
-{ "WARN_OPTION_IGNORED", 1618, "<%-.64s> option ignored" },
-{ "WARN_PLUGIN_DELETE_BUILTIN", 1619, "Built-in plugins cannot be deleted" },
-{ "WARN_PLUGIN_BUSY", 1620, "Plugin is busy and will be uninstalled on shutdown" },
-{ "ER_VARIABLE_IS_READONLY", 1621, "%s variable \'%s\' is read-only. Use SET %s to assign the value" },
-{ "ER_WARN_ENGINE_TRANSACTION_ROLLBACK", 1622, "Storage engine %s does not support rollback for this statement. Transaction rolled back and must be restarted" },
-{ "ER_SLAVE_HEARTBEAT_FAILURE", 1623, "Unexpected master\'s heartbeat data: %s" },
-{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE", 1624, "The requested value for the heartbeat period is either negative or exceeds the maximum allowed (%s seconds)." },
-{ "ER_NDB_REPLICATION_SCHEMA_ERROR", 1625, "Bad schema for mysql.ndb_replication table. Message: %-.64s" },
-{ "ER_CONFLICT_FN_PARSE_ERROR", 1626, "Error in parsing conflict function. Message: %-.64s" },
-{ "ER_EXCEPTIONS_WRITE_ERROR", 1627, "Write to exceptions table failed. Message: %-.128s\"" },
-{ "ER_TOO_LONG_TABLE_COMMENT", 1628, "Comment for table \'%-.64s\' is too long (max = %lu)" },
-{ "ER_TOO_LONG_FIELD_COMMENT", 1629, "Comment for field \'%-.64s\' is too long (max = %lu)" },
-{ "ER_FUNC_INEXISTENT_NAME_COLLISION", 1630, "FUNCTION %s does not exist. Check the \'Function Name Parsing and Resolution\' section in the Reference Manual" },
-{ "ER_DATABASE_NAME", 1631, "Database" },
-{ "ER_TABLE_NAME", 1632, "Table" },
-{ "ER_PARTITION_NAME", 1633, "Partition" },
-{ "ER_SUBPARTITION_NAME", 1634, "Subpartition" },
-{ "ER_TEMPORARY_NAME", 1635, "Temporary" },
-{ "ER_RENAMED_NAME", 1636, "Renamed" },
-{ "ER_TOO_MANY_CONCURRENT_TRXS", 1637, "Too many active concurrent transactions" },
-{ "WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED", 1638, "Non-ASCII separator arguments are not fully supported" },
-{ "ER_DEBUG_SYNC_TIMEOUT", 1639, "debug sync point wait timed out" },
-{ "ER_DEBUG_SYNC_HIT_LIMIT", 1640, "debug sync point hit limit reached" },
-{ "ER_DUP_SIGNAL_SET", 1641, "Duplicate condition information item \'%s\'" },
-{ "ER_SIGNAL_WARN", 1642, "Unhandled user-defined warning condition" },
-{ "ER_SIGNAL_NOT_FOUND", 1643, "Unhandled user-defined not found condition" },
-{ "ER_SIGNAL_EXCEPTION", 1644, "Unhandled user-defined exception condition" },
-{ "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER", 1645, "RESIGNAL when handler not active" },
-{ "ER_SIGNAL_BAD_CONDITION_TYPE", 1646, "SIGNAL/RESIGNAL can only use a CONDITION defined with SQLSTATE" },
-{ "WARN_COND_ITEM_TRUNCATED", 1647, "Data truncated for condition item \'%s\'" },
-{ "ER_COND_ITEM_TOO_LONG", 1648, "Data too long for condition item \'%s\'" },
-{ "ER_UNKNOWN_LOCALE", 1649, "Unknown locale: \'%-.64s\'" },
-{ "ER_SLAVE_IGNORE_SERVER_IDS", 1650, "The requested server id %d clashes with the slave startup option --replicate-same-server-id" },
-{ "ER_QUERY_CACHE_DISABLED", 1651, "Query cache is disabled; restart the server with query_cache_type=1 to enable it" },
-{ "ER_SAME_NAME_PARTITION_FIELD", 1652, "Duplicate partition field name \'%-.192s\'" },
-{ "ER_PARTITION_COLUMN_LIST_ERROR", 1653, "Inconsistency in usage of column lists for partitioning" },
-{ "ER_WRONG_TYPE_COLUMN_VALUE_ERROR", 1654, "Partition column values of incorrect type" },
-{ "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR", 1655, "Too many fields in \'%-.192s\'" },
-{ "ER_MAXVALUE_IN_VALUES_IN", 1656, "Cannot use MAXVALUE as value in VALUES IN" },
-{ "ER_TOO_MANY_VALUES_ERROR", 1657, "Cannot have more than one value for this type of %-.64s partitioning" },
-{ "ER_ROW_SINGLE_PARTITION_FIELD_ERROR", 1658, "Row expressions in VALUES IN only allowed for multi-field column partitioning" },
-{ "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD", 1659, "Field \'%-.192s\' is of a not allowed type for this type of partitioning" },
-{ "ER_PARTITION_FIELDS_TOO_LONG", 1660, "The total length of the partitioning fields is too large" },
-{ "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE", 1661, "Cannot execute statement: impossible to write to binary log since both row-incapable engines and statement-incapable engines are involved." },
-{ "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE", 1662, "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = ROW and at least one table uses a storage engine limited to statement-based logging." },
-{ "ER_BINLOG_UNSAFE_AND_STMT_ENGINE", 1663, "Cannot execute statement: impossible to write to binary log since statement is unsafe, storage engine is limited to statement-based logging, and BINLOG_FORMAT = MIXED. %s" },
-{ "ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE", 1664, "Cannot execute statement: impossible to write to binary log since statement is in row format and at least one table uses a storage engine limited to statement-based logging." },
-{ "ER_BINLOG_STMT_MODE_AND_ROW_ENGINE", 1665, "Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging.%s" },
-{ "ER_BINLOG_ROW_INJECTION_AND_STMT_MODE", 1666, "Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT." },
-{ "ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE", 1667, "Cannot execute statement: impossible to write to binary log since more than one engine is involved and at least one engine is self-logging." },
-{ "ER_BINLOG_UNSAFE_LIMIT", 1668, "The statement is unsafe because it uses a LIMIT clause. This is unsafe because the set of rows included cannot be predicted." },
-{ "ER_BINLOG_UNSAFE_INSERT_DELAYED", 1669, "The statement is unsafe because it uses INSERT DELAYED. This is unsafe because the times when rows are inserted cannot be predicted." },
-{ "ER_BINLOG_UNSAFE_SYSTEM_TABLE", 1670, "The statement is unsafe because it uses the general log, slow query log, or performance_schema table(s). This is unsafe because system tables may differ on slaves." },
-{ "ER_BINLOG_UNSAFE_AUTOINC_COLUMNS", 1671, "Statement is unsafe because it invokes a trigger or a stored function that inserts into an AUTO_INCREMENT column. Inserted values cannot be logged correctly." },
-{ "ER_BINLOG_UNSAFE_UDF", 1672, "Statement is unsafe because it uses a UDF which may not return the same value on the slave." },
-{ "ER_BINLOG_UNSAFE_SYSTEM_VARIABLE", 1673, "Statement is unsafe because it uses a system variable that may have a different value on the slave." },
-{ "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION", 1674, "Statement is unsafe because it uses a system function that may return a different value on the slave." },
-{ "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS", 1675, "Statement is unsafe because it accesses a non-transactional table after accessing a transactional table within the same transaction." },
-{ "ER_MESSAGE_AND_STATEMENT", 1676, "%s Statement: %s" },
-{ "ER_SLAVE_CONVERSION_FAILED", 1677, "Column %d of table \'%-.192s.%-.192s\' cannot be converted from type \'%-.32s\' to type \'%-.32s\'" },
-{ "ER_SLAVE_CANT_CREATE_CONVERSION", 1678, "Can\'t create conversion table for table \'%-.192s.%-.192s\'" },
-{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT", 1679, "Cannot modify @@session.binlog_format inside a transaction" },
-{ "ER_PATH_LENGTH", 1680, "The path specified for %.64s is too long." },
-{ "ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT", 1681, "The syntax \'%s\' is deprecated and will be removed in MySQL %s." },
-{ "ER_WRONG_NATIVE_TABLE_STRUCTURE", 1682, "Native table \'%-.64s\'.\'%-.64s\' has the wrong structure" },
-{ "ER_WRONG_PERFSCHEMA_USAGE", 1683, "Invalid performance_schema usage." },
-{ "ER_WARN_I_S_SKIPPED_TABLE", 1684, "Table \'%s\'.\'%s\' was skipped since its definition is being modified by concurrent DDL statement" },
-{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1685, "Cannot modify @@session.binlog_direct_non_transactional_updates inside a transaction" },
-{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT", 1686, "Cannot change the binlog direct flag inside a stored function or trigger" },
-{ "ER_SPATIAL_MUST_HAVE_GEOM_COL", 1687, "A SPATIAL index may only contain a geometrical type column" },
-{ "ER_TOO_LONG_INDEX_COMMENT", 1688, "Comment for index \'%-.64s\' is too long (max = %lu)" },
-{ "ER_LOCK_ABORTED", 1689, "Wait on a lock was aborted due to a pending exclusive lock" },
-{ "ER_DATA_OUT_OF_RANGE", 1690, "%s value is out of range in \'%s\'" },
-{ "ER_WRONG_SPVAR_TYPE_IN_LIMIT", 1691, "A variable of a non-integer type in LIMIT clause" },
-{ "ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE", 1692, "Mixing self-logging and non-self-logging engines in a statement is unsafe." },
-{ "ER_BINLOG_UNSAFE_MIXED_STATEMENT", 1693, "Statement accesses nontransactional table as well as transactional or temporary table, and writes to any of them." },
-{ "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN", 1694, "Cannot modify @@session.sql_log_bin inside a transaction" },
-{ "ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN", 1695, "Cannot change the sql_log_bin inside a stored function or trigger" },
-{ "ER_FAILED_READ_FROM_PAR_FILE", 1696, "Failed to read from the .par file" },
-{ "ER_VALUES_IS_NOT_INT_TYPE_ERROR", 1697, "VALUES value for partition \'%-.64s\' must have type INT" },
-{ "ER_ACCESS_DENIED_NO_PASSWORD_ERROR", 1698, "Access denied for user \'%-.48s\'@\'%-.64s\'" },
-{ "ER_SET_PASSWORD_AUTH_PLUGIN", 1699, "SET PASSWORD has no significance for users authenticating via plugins" },
-{ "ER_GRANT_PLUGIN_USER_EXISTS", 1700, "GRANT with IDENTIFIED WITH is illegal because the user %-.*s already exists" },
-{ "ER_TRUNCATE_ILLEGAL_FK", 1701, "Cannot truncate a table referenced in a foreign key constraint (%.192s)" },
-{ "ER_PLUGIN_IS_PERMANENT", 1702, "Plugin \'%s\' is force_plus_permanent and can not be unloaded" },
-{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN", 1703, "The requested value for the heartbeat period is less than 1 millisecond. The value is reset to 0, meaning that heartbeating will effectively be disabled." },
-{ "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX", 1704, "The requested value for the heartbeat period exceeds the value of `slave_net_timeout\' seconds. A sensible value for the period should be less than the timeout." },
-{ "ER_STMT_CACHE_FULL", 1705, "Multi-row statements required more than \'max_binlog_stmt_cache_size\' bytes of storage; increase this mysqld variable and try again" },
diff --git a/dep/mysqllite/include/mysqld_error.h b/dep/mysqllite/include/mysqld_error.h
deleted file mode 100644
index b886241cfb4..00000000000
--- a/dep/mysqllite/include/mysqld_error.h
+++ /dev/null
@@ -1,710 +0,0 @@
-/* Autogenerated file, please don't edit */
-
-#define ER_ERROR_FIRST 1000
-#define ER_HASHCHK 1000
-#define ER_NISAMCHK 1001
-#define ER_NO 1002
-#define ER_YES 1003
-#define ER_CANT_CREATE_FILE 1004
-#define ER_CANT_CREATE_TABLE 1005
-#define ER_CANT_CREATE_DB 1006
-#define ER_DB_CREATE_EXISTS 1007
-#define ER_DB_DROP_EXISTS 1008
-#define ER_DB_DROP_DELETE 1009
-#define ER_DB_DROP_RMDIR 1010
-#define ER_CANT_DELETE_FILE 1011
-#define ER_CANT_FIND_SYSTEM_REC 1012
-#define ER_CANT_GET_STAT 1013
-#define ER_CANT_GET_WD 1014
-#define ER_CANT_LOCK 1015
-#define ER_CANT_OPEN_FILE 1016
-#define ER_FILE_NOT_FOUND 1017
-#define ER_CANT_READ_DIR 1018
-#define ER_CANT_SET_WD 1019
-#define ER_CHECKREAD 1020
-#define ER_DISK_FULL 1021
-#define ER_DUP_KEY 1022
-#define ER_ERROR_ON_CLOSE 1023
-#define ER_ERROR_ON_READ 1024
-#define ER_ERROR_ON_RENAME 1025
-#define ER_ERROR_ON_WRITE 1026
-#define ER_FILE_USED 1027
-#define ER_FILSORT_ABORT 1028
-#define ER_FORM_NOT_FOUND 1029
-#define ER_GET_ERRNO 1030
-#define ER_ILLEGAL_HA 1031
-#define ER_KEY_NOT_FOUND 1032
-#define ER_NOT_FORM_FILE 1033
-#define ER_NOT_KEYFILE 1034
-#define ER_OLD_KEYFILE 1035
-#define ER_OPEN_AS_READONLY 1036
-#define ER_OUTOFMEMORY 1037
-#define ER_OUT_OF_SORTMEMORY 1038
-#define ER_UNEXPECTED_EOF 1039
-#define ER_CON_COUNT_ERROR 1040
-#define ER_OUT_OF_RESOURCES 1041
-#define ER_BAD_HOST_ERROR 1042
-#define ER_HANDSHAKE_ERROR 1043
-#define ER_DBACCESS_DENIED_ERROR 1044
-#define ER_ACCESS_DENIED_ERROR 1045
-#define ER_NO_DB_ERROR 1046
-#define ER_UNKNOWN_COM_ERROR 1047
-#define ER_BAD_NULL_ERROR 1048
-#define ER_BAD_DB_ERROR 1049
-#define ER_TABLE_EXISTS_ERROR 1050
-#define ER_BAD_TABLE_ERROR 1051
-#define ER_NON_UNIQ_ERROR 1052
-#define ER_SERVER_SHUTDOWN 1053
-#define ER_BAD_FIELD_ERROR 1054
-#define ER_WRONG_FIELD_WITH_GROUP 1055
-#define ER_WRONG_GROUP_FIELD 1056
-#define ER_WRONG_SUM_SELECT 1057
-#define ER_WRONG_VALUE_COUNT 1058
-#define ER_TOO_LONG_IDENT 1059
-#define ER_DUP_FIELDNAME 1060
-#define ER_DUP_KEYNAME 1061
-#define ER_DUP_ENTRY 1062
-#define ER_WRONG_FIELD_SPEC 1063
-#define ER_PARSE_ERROR 1064
-#define ER_EMPTY_QUERY 1065
-#define ER_NONUNIQ_TABLE 1066
-#define ER_INVALID_DEFAULT 1067
-#define ER_MULTIPLE_PRI_KEY 1068
-#define ER_TOO_MANY_KEYS 1069
-#define ER_TOO_MANY_KEY_PARTS 1070
-#define ER_TOO_LONG_KEY 1071
-#define ER_KEY_COLUMN_DOES_NOT_EXITS 1072
-#define ER_BLOB_USED_AS_KEY 1073
-#define ER_TOO_BIG_FIELDLENGTH 1074
-#define ER_WRONG_AUTO_KEY 1075
-#define ER_READY 1076
-#define ER_NORMAL_SHUTDOWN 1077
-#define ER_GOT_SIGNAL 1078
-#define ER_SHUTDOWN_COMPLETE 1079
-#define ER_FORCING_CLOSE 1080
-#define ER_IPSOCK_ERROR 1081
-#define ER_NO_SUCH_INDEX 1082
-#define ER_WRONG_FIELD_TERMINATORS 1083
-#define ER_BLOBS_AND_NO_TERMINATED 1084
-#define ER_TEXTFILE_NOT_READABLE 1085
-#define ER_FILE_EXISTS_ERROR 1086
-#define ER_LOAD_INFO 1087
-#define ER_ALTER_INFO 1088
-#define ER_WRONG_SUB_KEY 1089
-#define ER_CANT_REMOVE_ALL_FIELDS 1090
-#define ER_CANT_DROP_FIELD_OR_KEY 1091
-#define ER_INSERT_INFO 1092
-#define ER_UPDATE_TABLE_USED 1093
-#define ER_NO_SUCH_THREAD 1094
-#define ER_KILL_DENIED_ERROR 1095
-#define ER_NO_TABLES_USED 1096
-#define ER_TOO_BIG_SET 1097
-#define ER_NO_UNIQUE_LOGFILE 1098
-#define ER_TABLE_NOT_LOCKED_FOR_WRITE 1099
-#define ER_TABLE_NOT_LOCKED 1100
-#define ER_BLOB_CANT_HAVE_DEFAULT 1101
-#define ER_WRONG_DB_NAME 1102
-#define ER_WRONG_TABLE_NAME 1103
-#define ER_TOO_BIG_SELECT 1104
-#define ER_UNKNOWN_ERROR 1105
-#define ER_UNKNOWN_PROCEDURE 1106
-#define ER_WRONG_PARAMCOUNT_TO_PROCEDURE 1107
-#define ER_WRONG_PARAMETERS_TO_PROCEDURE 1108
-#define ER_UNKNOWN_TABLE 1109
-#define ER_FIELD_SPECIFIED_TWICE 1110
-#define ER_INVALID_GROUP_FUNC_USE 1111
-#define ER_UNSUPPORTED_EXTENSION 1112
-#define ER_TABLE_MUST_HAVE_COLUMNS 1113
-#define ER_RECORD_FILE_FULL 1114
-#define ER_UNKNOWN_CHARACTER_SET 1115
-#define ER_TOO_MANY_TABLES 1116
-#define ER_TOO_MANY_FIELDS 1117
-#define ER_TOO_BIG_ROWSIZE 1118
-#define ER_STACK_OVERRUN 1119
-#define ER_WRONG_OUTER_JOIN 1120
-#define ER_NULL_COLUMN_IN_INDEX 1121
-#define ER_CANT_FIND_UDF 1122
-#define ER_CANT_INITIALIZE_UDF 1123
-#define ER_UDF_NO_PATHS 1124
-#define ER_UDF_EXISTS 1125
-#define ER_CANT_OPEN_LIBRARY 1126
-#define ER_CANT_FIND_DL_ENTRY 1127
-#define ER_FUNCTION_NOT_DEFINED 1128
-#define ER_HOST_IS_BLOCKED 1129
-#define ER_HOST_NOT_PRIVILEGED 1130
-#define ER_PASSWORD_ANONYMOUS_USER 1131
-#define ER_PASSWORD_NOT_ALLOWED 1132
-#define ER_PASSWORD_NO_MATCH 1133
-#define ER_UPDATE_INFO 1134
-#define ER_CANT_CREATE_THREAD 1135
-#define ER_WRONG_VALUE_COUNT_ON_ROW 1136
-#define ER_CANT_REOPEN_TABLE 1137
-#define ER_INVALID_USE_OF_NULL 1138
-#define ER_REGEXP_ERROR 1139
-#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS 1140
-#define ER_NONEXISTING_GRANT 1141
-#define ER_TABLEACCESS_DENIED_ERROR 1142
-#define ER_COLUMNACCESS_DENIED_ERROR 1143
-#define ER_ILLEGAL_GRANT_FOR_TABLE 1144
-#define ER_GRANT_WRONG_HOST_OR_USER 1145
-#define ER_NO_SUCH_TABLE 1146
-#define ER_NONEXISTING_TABLE_GRANT 1147
-#define ER_NOT_ALLOWED_COMMAND 1148
-#define ER_SYNTAX_ERROR 1149
-#define ER_DELAYED_CANT_CHANGE_LOCK 1150
-#define ER_TOO_MANY_DELAYED_THREADS 1151
-#define ER_ABORTING_CONNECTION 1152
-#define ER_NET_PACKET_TOO_LARGE 1153
-#define ER_NET_READ_ERROR_FROM_PIPE 1154
-#define ER_NET_FCNTL_ERROR 1155
-#define ER_NET_PACKETS_OUT_OF_ORDER 1156
-#define ER_NET_UNCOMPRESS_ERROR 1157
-#define ER_NET_READ_ERROR 1158
-#define ER_NET_READ_INTERRUPTED 1159
-#define ER_NET_ERROR_ON_WRITE 1160
-#define ER_NET_WRITE_INTERRUPTED 1161
-#define ER_TOO_LONG_STRING 1162
-#define ER_TABLE_CANT_HANDLE_BLOB 1163
-#define ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 1164
-#define ER_DELAYED_INSERT_TABLE_LOCKED 1165
-#define ER_WRONG_COLUMN_NAME 1166
-#define ER_WRONG_KEY_COLUMN 1167
-#define ER_WRONG_MRG_TABLE 1168
-#define ER_DUP_UNIQUE 1169
-#define ER_BLOB_KEY_WITHOUT_LENGTH 1170
-#define ER_PRIMARY_CANT_HAVE_NULL 1171
-#define ER_TOO_MANY_ROWS 1172
-#define ER_REQUIRES_PRIMARY_KEY 1173
-#define ER_NO_RAID_COMPILED 1174
-#define ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 1175
-#define ER_KEY_DOES_NOT_EXITS 1176
-#define ER_CHECK_NO_SUCH_TABLE 1177
-#define ER_CHECK_NOT_IMPLEMENTED 1178
-#define ER_CANT_DO_THIS_DURING_AN_TRANSACTION 1179
-#define ER_ERROR_DURING_COMMIT 1180
-#define ER_ERROR_DURING_ROLLBACK 1181
-#define ER_ERROR_DURING_FLUSH_LOGS 1182
-#define ER_ERROR_DURING_CHECKPOINT 1183
-#define ER_NEW_ABORTING_CONNECTION 1184
-#define ER_DUMP_NOT_IMPLEMENTED 1185
-#define ER_FLUSH_MASTER_BINLOG_CLOSED 1186
-#define ER_INDEX_REBUILD 1187
-#define ER_MASTER 1188
-#define ER_MASTER_NET_READ 1189
-#define ER_MASTER_NET_WRITE 1190
-#define ER_FT_MATCHING_KEY_NOT_FOUND 1191
-#define ER_LOCK_OR_ACTIVE_TRANSACTION 1192
-#define ER_UNKNOWN_SYSTEM_VARIABLE 1193
-#define ER_CRASHED_ON_USAGE 1194
-#define ER_CRASHED_ON_REPAIR 1195
-#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196
-#define ER_TRANS_CACHE_FULL 1197
-#define ER_SLAVE_MUST_STOP 1198
-#define ER_SLAVE_NOT_RUNNING 1199
-#define ER_BAD_SLAVE 1200
-#define ER_MASTER_INFO 1201
-#define ER_SLAVE_THREAD 1202
-#define ER_TOO_MANY_USER_CONNECTIONS 1203
-#define ER_SET_CONSTANTS_ONLY 1204
-#define ER_LOCK_WAIT_TIMEOUT 1205
-#define ER_LOCK_TABLE_FULL 1206
-#define ER_READ_ONLY_TRANSACTION 1207
-#define ER_DROP_DB_WITH_READ_LOCK 1208
-#define ER_CREATE_DB_WITH_READ_LOCK 1209
-#define ER_WRONG_ARGUMENTS 1210
-#define ER_NO_PERMISSION_TO_CREATE_USER 1211
-#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212
-#define ER_LOCK_DEADLOCK 1213
-#define ER_TABLE_CANT_HANDLE_FT 1214
-#define ER_CANNOT_ADD_FOREIGN 1215
-#define ER_NO_REFERENCED_ROW 1216
-#define ER_ROW_IS_REFERENCED 1217
-#define ER_CONNECT_TO_MASTER 1218
-#define ER_QUERY_ON_MASTER 1219
-#define ER_ERROR_WHEN_EXECUTING_COMMAND 1220
-#define ER_WRONG_USAGE 1221
-#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222
-#define ER_CANT_UPDATE_WITH_READLOCK 1223
-#define ER_MIXING_NOT_ALLOWED 1224
-#define ER_DUP_ARGUMENT 1225
-#define ER_USER_LIMIT_REACHED 1226
-#define ER_SPECIFIC_ACCESS_DENIED_ERROR 1227
-#define ER_LOCAL_VARIABLE 1228
-#define ER_GLOBAL_VARIABLE 1229
-#define ER_NO_DEFAULT 1230
-#define ER_WRONG_VALUE_FOR_VAR 1231
-#define ER_WRONG_TYPE_FOR_VAR 1232
-#define ER_VAR_CANT_BE_READ 1233
-#define ER_CANT_USE_OPTION_HERE 1234
-#define ER_NOT_SUPPORTED_YET 1235
-#define ER_MASTER_FATAL_ERROR_READING_BINLOG 1236
-#define ER_SLAVE_IGNORED_TABLE 1237
-#define ER_INCORRECT_GLOBAL_LOCAL_VAR 1238
-#define ER_WRONG_FK_DEF 1239
-#define ER_KEY_REF_DO_NOT_MATCH_TABLE_REF 1240
-#define ER_OPERAND_COLUMNS 1241
-#define ER_SUBQUERY_NO_1_ROW 1242
-#define ER_UNKNOWN_STMT_HANDLER 1243
-#define ER_CORRUPT_HELP_DB 1244
-#define ER_CYCLIC_REFERENCE 1245
-#define ER_AUTO_CONVERT 1246
-#define ER_ILLEGAL_REFERENCE 1247
-#define ER_DERIVED_MUST_HAVE_ALIAS 1248
-#define ER_SELECT_REDUCED 1249
-#define ER_TABLENAME_NOT_ALLOWED_HERE 1250
-#define ER_NOT_SUPPORTED_AUTH_MODE 1251
-#define ER_SPATIAL_CANT_HAVE_NULL 1252
-#define ER_COLLATION_CHARSET_MISMATCH 1253
-#define ER_SLAVE_WAS_RUNNING 1254
-#define ER_SLAVE_WAS_NOT_RUNNING 1255
-#define ER_TOO_BIG_FOR_UNCOMPRESS 1256
-#define ER_ZLIB_Z_MEM_ERROR 1257
-#define ER_ZLIB_Z_BUF_ERROR 1258
-#define ER_ZLIB_Z_DATA_ERROR 1259
-#define ER_CUT_VALUE_GROUP_CONCAT 1260
-#define ER_WARN_TOO_FEW_RECORDS 1261
-#define ER_WARN_TOO_MANY_RECORDS 1262
-#define ER_WARN_NULL_TO_NOTNULL 1263
-#define ER_WARN_DATA_OUT_OF_RANGE 1264
-#define WARN_DATA_TRUNCATED 1265
-#define ER_WARN_USING_OTHER_HANDLER 1266
-#define ER_CANT_AGGREGATE_2COLLATIONS 1267
-#define ER_DROP_USER 1268
-#define ER_REVOKE_GRANTS 1269
-#define ER_CANT_AGGREGATE_3COLLATIONS 1270
-#define ER_CANT_AGGREGATE_NCOLLATIONS 1271
-#define ER_VARIABLE_IS_NOT_STRUCT 1272
-#define ER_UNKNOWN_COLLATION 1273
-#define ER_SLAVE_IGNORED_SSL_PARAMS 1274
-#define ER_SERVER_IS_IN_SECURE_AUTH_MODE 1275
-#define ER_WARN_FIELD_RESOLVED 1276
-#define ER_BAD_SLAVE_UNTIL_COND 1277
-#define ER_MISSING_SKIP_SLAVE 1278
-#define ER_UNTIL_COND_IGNORED 1279
-#define ER_WRONG_NAME_FOR_INDEX 1280
-#define ER_WRONG_NAME_FOR_CATALOG 1281
-#define ER_WARN_QC_RESIZE 1282
-#define ER_BAD_FT_COLUMN 1283
-#define ER_UNKNOWN_KEY_CACHE 1284
-#define ER_WARN_HOSTNAME_WONT_WORK 1285
-#define ER_UNKNOWN_STORAGE_ENGINE 1286
-#define ER_WARN_DEPRECATED_SYNTAX 1287
-#define ER_NON_UPDATABLE_TABLE 1288
-#define ER_FEATURE_DISABLED 1289
-#define ER_OPTION_PREVENTS_STATEMENT 1290
-#define ER_DUPLICATED_VALUE_IN_TYPE 1291
-#define ER_TRUNCATED_WRONG_VALUE 1292
-#define ER_TOO_MUCH_AUTO_TIMESTAMP_COLS 1293
-#define ER_INVALID_ON_UPDATE 1294
-#define ER_UNSUPPORTED_PS 1295
-#define ER_GET_ERRMSG 1296
-#define ER_GET_TEMPORARY_ERRMSG 1297
-#define ER_UNKNOWN_TIME_ZONE 1298
-#define ER_WARN_INVALID_TIMESTAMP 1299
-#define ER_INVALID_CHARACTER_STRING 1300
-#define ER_WARN_ALLOWED_PACKET_OVERFLOWED 1301
-#define ER_CONFLICTING_DECLARATIONS 1302
-#define ER_SP_NO_RECURSIVE_CREATE 1303
-#define ER_SP_ALREADY_EXISTS 1304
-#define ER_SP_DOES_NOT_EXIST 1305
-#define ER_SP_DROP_FAILED 1306
-#define ER_SP_STORE_FAILED 1307
-#define ER_SP_LILABEL_MISMATCH 1308
-#define ER_SP_LABEL_REDEFINE 1309
-#define ER_SP_LABEL_MISMATCH 1310
-#define ER_SP_UNINIT_VAR 1311
-#define ER_SP_BADSELECT 1312
-#define ER_SP_BADRETURN 1313
-#define ER_SP_BADSTATEMENT 1314
-#define ER_UPDATE_LOG_DEPRECATED_IGNORED 1315
-#define ER_UPDATE_LOG_DEPRECATED_TRANSLATED 1316
-#define ER_QUERY_INTERRUPTED 1317
-#define ER_SP_WRONG_NO_OF_ARGS 1318
-#define ER_SP_COND_MISMATCH 1319
-#define ER_SP_NORETURN 1320
-#define ER_SP_NORETURNEND 1321
-#define ER_SP_BAD_CURSOR_QUERY 1322
-#define ER_SP_BAD_CURSOR_SELECT 1323
-#define ER_SP_CURSOR_MISMATCH 1324
-#define ER_SP_CURSOR_ALREADY_OPEN 1325
-#define ER_SP_CURSOR_NOT_OPEN 1326
-#define ER_SP_UNDECLARED_VAR 1327
-#define ER_SP_WRONG_NO_OF_FETCH_ARGS 1328
-#define ER_SP_FETCH_NO_DATA 1329
-#define ER_SP_DUP_PARAM 1330
-#define ER_SP_DUP_VAR 1331
-#define ER_SP_DUP_COND 1332
-#define ER_SP_DUP_CURS 1333
-#define ER_SP_CANT_ALTER 1334
-#define ER_SP_SUBSELECT_NYI 1335
-#define ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG 1336
-#define ER_SP_VARCOND_AFTER_CURSHNDLR 1337
-#define ER_SP_CURSOR_AFTER_HANDLER 1338
-#define ER_SP_CASE_NOT_FOUND 1339
-#define ER_FPARSER_TOO_BIG_FILE 1340
-#define ER_FPARSER_BAD_HEADER 1341
-#define ER_FPARSER_EOF_IN_COMMENT 1342
-#define ER_FPARSER_ERROR_IN_PARAMETER 1343
-#define ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER 1344
-#define ER_VIEW_NO_EXPLAIN 1345
-#define ER_FRM_UNKNOWN_TYPE 1346
-#define ER_WRONG_OBJECT 1347
-#define ER_NONUPDATEABLE_COLUMN 1348
-#define ER_VIEW_SELECT_DERIVED 1349
-#define ER_VIEW_SELECT_CLAUSE 1350
-#define ER_VIEW_SELECT_VARIABLE 1351
-#define ER_VIEW_SELECT_TMPTABLE 1352
-#define ER_VIEW_WRONG_LIST 1353
-#define ER_WARN_VIEW_MERGE 1354
-#define ER_WARN_VIEW_WITHOUT_KEY 1355
-#define ER_VIEW_INVALID 1356
-#define ER_SP_NO_DROP_SP 1357
-#define ER_SP_GOTO_IN_HNDLR 1358
-#define ER_TRG_ALREADY_EXISTS 1359
-#define ER_TRG_DOES_NOT_EXIST 1360
-#define ER_TRG_ON_VIEW_OR_TEMP_TABLE 1361
-#define ER_TRG_CANT_CHANGE_ROW 1362
-#define ER_TRG_NO_SUCH_ROW_IN_TRG 1363
-#define ER_NO_DEFAULT_FOR_FIELD 1364
-#define ER_DIVISION_BY_ZERO 1365
-#define ER_TRUNCATED_WRONG_VALUE_FOR_FIELD 1366
-#define ER_ILLEGAL_VALUE_FOR_TYPE 1367
-#define ER_VIEW_NONUPD_CHECK 1368
-#define ER_VIEW_CHECK_FAILED 1369
-#define ER_PROCACCESS_DENIED_ERROR 1370
-#define ER_RELAY_LOG_FAIL 1371
-#define ER_PASSWD_LENGTH 1372
-#define ER_UNKNOWN_TARGET_BINLOG 1373
-#define ER_IO_ERR_LOG_INDEX_READ 1374
-#define ER_BINLOG_PURGE_PROHIBITED 1375
-#define ER_FSEEK_FAIL 1376
-#define ER_BINLOG_PURGE_FATAL_ERR 1377
-#define ER_LOG_IN_USE 1378
-#define ER_LOG_PURGE_UNKNOWN_ERR 1379
-#define ER_RELAY_LOG_INIT 1380
-#define ER_NO_BINARY_LOGGING 1381
-#define ER_RESERVED_SYNTAX 1382
-#define ER_WSAS_FAILED 1383
-#define ER_DIFF_GROUPS_PROC 1384
-#define ER_NO_GROUP_FOR_PROC 1385
-#define ER_ORDER_WITH_PROC 1386
-#define ER_LOGGING_PROHIBIT_CHANGING_OF 1387
-#define ER_NO_FILE_MAPPING 1388
-#define ER_WRONG_MAGIC 1389
-#define ER_PS_MANY_PARAM 1390
-#define ER_KEY_PART_0 1391
-#define ER_VIEW_CHECKSUM 1392
-#define ER_VIEW_MULTIUPDATE 1393
-#define ER_VIEW_NO_INSERT_FIELD_LIST 1394
-#define ER_VIEW_DELETE_MERGE_VIEW 1395
-#define ER_CANNOT_USER 1396
-#define ER_XAER_NOTA 1397
-#define ER_XAER_INVAL 1398
-#define ER_XAER_RMFAIL 1399
-#define ER_XAER_OUTSIDE 1400
-#define ER_XAER_RMERR 1401
-#define ER_XA_RBROLLBACK 1402
-#define ER_NONEXISTING_PROC_GRANT 1403
-#define ER_PROC_AUTO_GRANT_FAIL 1404
-#define ER_PROC_AUTO_REVOKE_FAIL 1405
-#define ER_DATA_TOO_LONG 1406
-#define ER_SP_BAD_SQLSTATE 1407
-#define ER_STARTUP 1408
-#define ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR 1409
-#define ER_CANT_CREATE_USER_WITH_GRANT 1410
-#define ER_WRONG_VALUE_FOR_TYPE 1411
-#define ER_TABLE_DEF_CHANGED 1412
-#define ER_SP_DUP_HANDLER 1413
-#define ER_SP_NOT_VAR_ARG 1414
-#define ER_SP_NO_RETSET 1415
-#define ER_CANT_CREATE_GEOMETRY_OBJECT 1416
-#define ER_FAILED_ROUTINE_BREAK_BINLOG 1417
-#define ER_BINLOG_UNSAFE_ROUTINE 1418
-#define ER_BINLOG_CREATE_ROUTINE_NEED_SUPER 1419
-#define ER_EXEC_STMT_WITH_OPEN_CURSOR 1420
-#define ER_STMT_HAS_NO_OPEN_CURSOR 1421
-#define ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG 1422
-#define ER_NO_DEFAULT_FOR_VIEW_FIELD 1423
-#define ER_SP_NO_RECURSION 1424
-#define ER_TOO_BIG_SCALE 1425
-#define ER_TOO_BIG_PRECISION 1426
-#define ER_M_BIGGER_THAN_D 1427
-#define ER_WRONG_LOCK_OF_SYSTEM_TABLE 1428
-#define ER_CONNECT_TO_FOREIGN_DATA_SOURCE 1429
-#define ER_QUERY_ON_FOREIGN_DATA_SOURCE 1430
-#define ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST 1431
-#define ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE 1432
-#define ER_FOREIGN_DATA_STRING_INVALID 1433
-#define ER_CANT_CREATE_FEDERATED_TABLE 1434
-#define ER_TRG_IN_WRONG_SCHEMA 1435
-#define ER_STACK_OVERRUN_NEED_MORE 1436
-#define ER_TOO_LONG_BODY 1437
-#define ER_WARN_CANT_DROP_DEFAULT_KEYCACHE 1438
-#define ER_TOO_BIG_DISPLAYWIDTH 1439
-#define ER_XAER_DUPID 1440
-#define ER_DATETIME_FUNCTION_OVERFLOW 1441
-#define ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG 1442
-#define ER_VIEW_PREVENT_UPDATE 1443
-#define ER_PS_NO_RECURSION 1444
-#define ER_SP_CANT_SET_AUTOCOMMIT 1445
-#define ER_MALFORMED_DEFINER 1446
-#define ER_VIEW_FRM_NO_USER 1447
-#define ER_VIEW_OTHER_USER 1448
-#define ER_NO_SUCH_USER 1449
-#define ER_FORBID_SCHEMA_CHANGE 1450
-#define ER_ROW_IS_REFERENCED_2 1451
-#define ER_NO_REFERENCED_ROW_2 1452
-#define ER_SP_BAD_VAR_SHADOW 1453
-#define ER_TRG_NO_DEFINER 1454
-#define ER_OLD_FILE_FORMAT 1455
-#define ER_SP_RECURSION_LIMIT 1456
-#define ER_SP_PROC_TABLE_CORRUPT 1457
-#define ER_SP_WRONG_NAME 1458
-#define ER_TABLE_NEEDS_UPGRADE 1459
-#define ER_SP_NO_AGGREGATE 1460
-#define ER_MAX_PREPARED_STMT_COUNT_REACHED 1461
-#define ER_VIEW_RECURSIVE 1462
-#define ER_NON_GROUPING_FIELD_USED 1463
-#define ER_TABLE_CANT_HANDLE_SPKEYS 1464
-#define ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA 1465
-#define ER_REMOVED_SPACES 1466
-#define ER_AUTOINC_READ_FAILED 1467
-#define ER_USERNAME 1468
-#define ER_HOSTNAME 1469
-#define ER_WRONG_STRING_LENGTH 1470
-#define ER_NON_INSERTABLE_TABLE 1471
-#define ER_ADMIN_WRONG_MRG_TABLE 1472
-#define ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT 1473
-#define ER_NAME_BECOMES_EMPTY 1474
-#define ER_AMBIGUOUS_FIELD_TERM 1475
-#define ER_FOREIGN_SERVER_EXISTS 1476
-#define ER_FOREIGN_SERVER_DOESNT_EXIST 1477
-#define ER_ILLEGAL_HA_CREATE_OPTION 1478
-#define ER_PARTITION_REQUIRES_VALUES_ERROR 1479
-#define ER_PARTITION_WRONG_VALUES_ERROR 1480
-#define ER_PARTITION_MAXVALUE_ERROR 1481
-#define ER_PARTITION_SUBPARTITION_ERROR 1482
-#define ER_PARTITION_SUBPART_MIX_ERROR 1483
-#define ER_PARTITION_WRONG_NO_PART_ERROR 1484
-#define ER_PARTITION_WRONG_NO_SUBPART_ERROR 1485
-#define ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR 1486
-#define ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR 1487
-#define ER_FIELD_NOT_FOUND_PART_ERROR 1488
-#define ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR 1489
-#define ER_INCONSISTENT_PARTITION_INFO_ERROR 1490
-#define ER_PARTITION_FUNC_NOT_ALLOWED_ERROR 1491
-#define ER_PARTITIONS_MUST_BE_DEFINED_ERROR 1492
-#define ER_RANGE_NOT_INCREASING_ERROR 1493
-#define ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR 1494
-#define ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR 1495
-#define ER_PARTITION_ENTRY_ERROR 1496
-#define ER_MIX_HANDLER_ERROR 1497
-#define ER_PARTITION_NOT_DEFINED_ERROR 1498
-#define ER_TOO_MANY_PARTITIONS_ERROR 1499
-#define ER_SUBPARTITION_ERROR 1500
-#define ER_CANT_CREATE_HANDLER_FILE 1501
-#define ER_BLOB_FIELD_IN_PART_FUNC_ERROR 1502
-#define ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF 1503
-#define ER_NO_PARTS_ERROR 1504
-#define ER_PARTITION_MGMT_ON_NONPARTITIONED 1505
-#define ER_FOREIGN_KEY_ON_PARTITIONED 1506
-#define ER_DROP_PARTITION_NON_EXISTENT 1507
-#define ER_DROP_LAST_PARTITION 1508
-#define ER_COALESCE_ONLY_ON_HASH_PARTITION 1509
-#define ER_REORG_HASH_ONLY_ON_SAME_NO 1510
-#define ER_REORG_NO_PARAM_ERROR 1511
-#define ER_ONLY_ON_RANGE_LIST_PARTITION 1512
-#define ER_ADD_PARTITION_SUBPART_ERROR 1513
-#define ER_ADD_PARTITION_NO_NEW_PARTITION 1514
-#define ER_COALESCE_PARTITION_NO_PARTITION 1515
-#define ER_REORG_PARTITION_NOT_EXIST 1516
-#define ER_SAME_NAME_PARTITION 1517
-#define ER_NO_BINLOG_ERROR 1518
-#define ER_CONSECUTIVE_REORG_PARTITIONS 1519
-#define ER_REORG_OUTSIDE_RANGE 1520
-#define ER_PARTITION_FUNCTION_FAILURE 1521
-#define ER_PART_STATE_ERROR 1522
-#define ER_LIMITED_PART_RANGE 1523
-#define ER_PLUGIN_IS_NOT_LOADED 1524
-#define ER_WRONG_VALUE 1525
-#define ER_NO_PARTITION_FOR_GIVEN_VALUE 1526
-#define ER_FILEGROUP_OPTION_ONLY_ONCE 1527
-#define ER_CREATE_FILEGROUP_FAILED 1528
-#define ER_DROP_FILEGROUP_FAILED 1529
-#define ER_TABLESPACE_AUTO_EXTEND_ERROR 1530
-#define ER_WRONG_SIZE_NUMBER 1531
-#define ER_SIZE_OVERFLOW_ERROR 1532
-#define ER_ALTER_FILEGROUP_FAILED 1533
-#define ER_BINLOG_ROW_LOGGING_FAILED 1534
-#define ER_BINLOG_ROW_WRONG_TABLE_DEF 1535
-#define ER_BINLOG_ROW_RBR_TO_SBR 1536
-#define ER_EVENT_ALREADY_EXISTS 1537
-#define ER_EVENT_STORE_FAILED 1538
-#define ER_EVENT_DOES_NOT_EXIST 1539
-#define ER_EVENT_CANT_ALTER 1540
-#define ER_EVENT_DROP_FAILED 1541
-#define ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG 1542
-#define ER_EVENT_ENDS_BEFORE_STARTS 1543
-#define ER_EVENT_EXEC_TIME_IN_THE_PAST 1544
-#define ER_EVENT_OPEN_TABLE_FAILED 1545
-#define ER_EVENT_NEITHER_M_EXPR_NOR_M_AT 1546
-#define ER_COL_COUNT_DOESNT_MATCH_CORRUPTED 1547
-#define ER_CANNOT_LOAD_FROM_TABLE 1548
-#define ER_EVENT_CANNOT_DELETE 1549
-#define ER_EVENT_COMPILE_ERROR 1550
-#define ER_EVENT_SAME_NAME 1551
-#define ER_EVENT_DATA_TOO_LONG 1552
-#define ER_DROP_INDEX_FK 1553
-#define ER_WARN_DEPRECATED_SYNTAX_WITH_VER 1554
-#define ER_CANT_WRITE_LOCK_LOG_TABLE 1555
-#define ER_CANT_LOCK_LOG_TABLE 1556
-#define ER_FOREIGN_DUPLICATE_KEY 1557
-#define ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE 1558
-#define ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR 1559
-#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT 1560
-#define ER_NDB_CANT_SWITCH_BINLOG_FORMAT 1561
-#define ER_PARTITION_NO_TEMPORARY 1562
-#define ER_PARTITION_CONST_DOMAIN_ERROR 1563
-#define ER_PARTITION_FUNCTION_IS_NOT_ALLOWED 1564
-#define ER_DDL_LOG_ERROR 1565
-#define ER_NULL_IN_VALUES_LESS_THAN 1566
-#define ER_WRONG_PARTITION_NAME 1567
-#define ER_CANT_CHANGE_TX_ISOLATION 1568
-#define ER_DUP_ENTRY_AUTOINCREMENT_CASE 1569
-#define ER_EVENT_MODIFY_QUEUE_ERROR 1570
-#define ER_EVENT_SET_VAR_ERROR 1571
-#define ER_PARTITION_MERGE_ERROR 1572
-#define ER_CANT_ACTIVATE_LOG 1573
-#define ER_RBR_NOT_AVAILABLE 1574
-#define ER_BASE64_DECODE_ERROR 1575
-#define ER_EVENT_RECURSION_FORBIDDEN 1576
-#define ER_EVENTS_DB_ERROR 1577
-#define ER_ONLY_INTEGERS_ALLOWED 1578
-#define ER_UNSUPORTED_LOG_ENGINE 1579
-#define ER_BAD_LOG_STATEMENT 1580
-#define ER_CANT_RENAME_LOG_TABLE 1581
-#define ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT 1582
-#define ER_WRONG_PARAMETERS_TO_NATIVE_FCT 1583
-#define ER_WRONG_PARAMETERS_TO_STORED_FCT 1584
-#define ER_NATIVE_FCT_NAME_COLLISION 1585
-#define ER_DUP_ENTRY_WITH_KEY_NAME 1586
-#define ER_BINLOG_PURGE_EMFILE 1587
-#define ER_EVENT_CANNOT_CREATE_IN_THE_PAST 1588
-#define ER_EVENT_CANNOT_ALTER_IN_THE_PAST 1589
-#define ER_SLAVE_INCIDENT 1590
-#define ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT 1591
-#define ER_BINLOG_UNSAFE_STATEMENT 1592
-#define ER_SLAVE_FATAL_ERROR 1593
-#define ER_SLAVE_RELAY_LOG_READ_FAILURE 1594
-#define ER_SLAVE_RELAY_LOG_WRITE_FAILURE 1595
-#define ER_SLAVE_CREATE_EVENT_FAILURE 1596
-#define ER_SLAVE_MASTER_COM_FAILURE 1597
-#define ER_BINLOG_LOGGING_IMPOSSIBLE 1598
-#define ER_VIEW_NO_CREATION_CTX 1599
-#define ER_VIEW_INVALID_CREATION_CTX 1600
-#define ER_SR_INVALID_CREATION_CTX 1601
-#define ER_TRG_CORRUPTED_FILE 1602
-#define ER_TRG_NO_CREATION_CTX 1603
-#define ER_TRG_INVALID_CREATION_CTX 1604
-#define ER_EVENT_INVALID_CREATION_CTX 1605
-#define ER_TRG_CANT_OPEN_TABLE 1606
-#define ER_CANT_CREATE_SROUTINE 1607
-#define ER_NEVER_USED 1608
-#define ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT 1609
-#define ER_SLAVE_CORRUPT_EVENT 1610
-#define ER_LOAD_DATA_INVALID_COLUMN 1611
-#define ER_LOG_PURGE_NO_FILE 1612
-#define ER_XA_RBTIMEOUT 1613
-#define ER_XA_RBDEADLOCK 1614
-#define ER_NEED_REPREPARE 1615
-#define ER_DELAYED_NOT_SUPPORTED 1616
-#define WARN_NO_MASTER_INFO 1617
-#define WARN_OPTION_IGNORED 1618
-#define WARN_PLUGIN_DELETE_BUILTIN 1619
-#define WARN_PLUGIN_BUSY 1620
-#define ER_VARIABLE_IS_READONLY 1621
-#define ER_WARN_ENGINE_TRANSACTION_ROLLBACK 1622
-#define ER_SLAVE_HEARTBEAT_FAILURE 1623
-#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE 1624
-#define ER_NDB_REPLICATION_SCHEMA_ERROR 1625
-#define ER_CONFLICT_FN_PARSE_ERROR 1626
-#define ER_EXCEPTIONS_WRITE_ERROR 1627
-#define ER_TOO_LONG_TABLE_COMMENT 1628
-#define ER_TOO_LONG_FIELD_COMMENT 1629
-#define ER_FUNC_INEXISTENT_NAME_COLLISION 1630
-#define ER_DATABASE_NAME 1631
-#define ER_TABLE_NAME 1632
-#define ER_PARTITION_NAME 1633
-#define ER_SUBPARTITION_NAME 1634
-#define ER_TEMPORARY_NAME 1635
-#define ER_RENAMED_NAME 1636
-#define ER_TOO_MANY_CONCURRENT_TRXS 1637
-#define WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED 1638
-#define ER_DEBUG_SYNC_TIMEOUT 1639
-#define ER_DEBUG_SYNC_HIT_LIMIT 1640
-#define ER_DUP_SIGNAL_SET 1641
-#define ER_SIGNAL_WARN 1642
-#define ER_SIGNAL_NOT_FOUND 1643
-#define ER_SIGNAL_EXCEPTION 1644
-#define ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER 1645
-#define ER_SIGNAL_BAD_CONDITION_TYPE 1646
-#define WARN_COND_ITEM_TRUNCATED 1647
-#define ER_COND_ITEM_TOO_LONG 1648
-#define ER_UNKNOWN_LOCALE 1649
-#define ER_SLAVE_IGNORE_SERVER_IDS 1650
-#define ER_QUERY_CACHE_DISABLED 1651
-#define ER_SAME_NAME_PARTITION_FIELD 1652
-#define ER_PARTITION_COLUMN_LIST_ERROR 1653
-#define ER_WRONG_TYPE_COLUMN_VALUE_ERROR 1654
-#define ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR 1655
-#define ER_MAXVALUE_IN_VALUES_IN 1656
-#define ER_TOO_MANY_VALUES_ERROR 1657
-#define ER_ROW_SINGLE_PARTITION_FIELD_ERROR 1658
-#define ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD 1659
-#define ER_PARTITION_FIELDS_TOO_LONG 1660
-#define ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE 1661
-#define ER_BINLOG_ROW_MODE_AND_STMT_ENGINE 1662
-#define ER_BINLOG_UNSAFE_AND_STMT_ENGINE 1663
-#define ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE 1664
-#define ER_BINLOG_STMT_MODE_AND_ROW_ENGINE 1665
-#define ER_BINLOG_ROW_INJECTION_AND_STMT_MODE 1666
-#define ER_BINLOG_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1667
-#define ER_BINLOG_UNSAFE_LIMIT 1668
-#define ER_BINLOG_UNSAFE_INSERT_DELAYED 1669
-#define ER_BINLOG_UNSAFE_SYSTEM_TABLE 1670
-#define ER_BINLOG_UNSAFE_AUTOINC_COLUMNS 1671
-#define ER_BINLOG_UNSAFE_UDF 1672
-#define ER_BINLOG_UNSAFE_SYSTEM_VARIABLE 1673
-#define ER_BINLOG_UNSAFE_SYSTEM_FUNCTION 1674
-#define ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS 1675
-#define ER_MESSAGE_AND_STATEMENT 1676
-#define ER_SLAVE_CONVERSION_FAILED 1677
-#define ER_SLAVE_CANT_CREATE_CONVERSION 1678
-#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT 1679
-#define ER_PATH_LENGTH 1680
-#define ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT 1681
-#define ER_WRONG_NATIVE_TABLE_STRUCTURE 1682
-#define ER_WRONG_PERFSCHEMA_USAGE 1683
-#define ER_WARN_I_S_SKIPPED_TABLE 1684
-#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_DIRECT 1685
-#define ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_DIRECT 1686
-#define ER_SPATIAL_MUST_HAVE_GEOM_COL 1687
-#define ER_TOO_LONG_INDEX_COMMENT 1688
-#define ER_LOCK_ABORTED 1689
-#define ER_DATA_OUT_OF_RANGE 1690
-#define ER_WRONG_SPVAR_TYPE_IN_LIMIT 1691
-#define ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE 1692
-#define ER_BINLOG_UNSAFE_MIXED_STATEMENT 1693
-#define ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN 1694
-#define ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN 1695
-#define ER_FAILED_READ_FROM_PAR_FILE 1696
-#define ER_VALUES_IS_NOT_INT_TYPE_ERROR 1697
-#define ER_ACCESS_DENIED_NO_PASSWORD_ERROR 1698
-#define ER_SET_PASSWORD_AUTH_PLUGIN 1699
-#define ER_GRANT_PLUGIN_USER_EXISTS 1700
-#define ER_TRUNCATE_ILLEGAL_FK 1701
-#define ER_PLUGIN_IS_PERMANENT 1702
-#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN 1703
-#define ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX 1704
-#define ER_STMT_CACHE_FULL 1705
-#define ER_ERROR_LAST 1705
diff --git a/dep/mysqllite/include/plugin.h b/dep/mysqllite/include/plugin.h
deleted file mode 100644
index 7ec68ff5040..00000000000
--- a/dep/mysqllite/include/plugin.h
+++ /dev/null
@@ -1,633 +0,0 @@
-/* Copyright (C) 2005 MySQL AB, 2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_plugin_h
-#define _my_plugin_h
-
-/*
- On Windows, exports from DLL need to be declared
- Also, plugin needs to be declared as extern "C" because MSVC
- unlike other compilers, uses C++ mangling for variables not only
- for functions.
-*/
-#if defined(_MSC_VER)
-#if defined(MYSQL_DYNAMIC_PLUGIN)
- #ifdef __cplusplus
- #define MYSQL_PLUGIN_EXPORT extern "C" __declspec(dllexport)
- #else
- #define MYSQL_PLUGIN_EXPORT __declspec(dllexport)
- #endif
-#else /* MYSQL_DYNAMIC_PLUGIN */
- #ifdef __cplusplus
- #define MYSQL_PLUGIN_EXPORT extern "C"
- #else
- #define MYSQL_PLUGIN_EXPORT
- #endif
-#endif /*MYSQL_DYNAMIC_PLUGIN */
-#else /*_MSC_VER */
-#define MYSQL_PLUGIN_EXPORT
-#endif
-
-#ifdef __cplusplus
-class THD;
-class Item;
-#define MYSQL_THD THD*
-#else
-#define MYSQL_THD void*
-#endif
-
-#include <mysql/services.h>
-
-#define MYSQL_XIDDATASIZE 128
-/**
- struct st_mysql_xid is binary compatible with the XID structure as
- in the X/Open CAE Specification, Distributed Transaction Processing:
- The XA Specification, X/Open Company Ltd., 1991.
- http://www.opengroup.org/bookstore/catalog/c193.htm
-
- @see XID in sql/handler.h
-*/
-struct st_mysql_xid {
- long formatID;
- long gtrid_length;
- long bqual_length;
- char data[MYSQL_XIDDATASIZE]; /* Not \0-terminated */
-};
-typedef struct st_mysql_xid MYSQL_XID;
-
-/*************************************************************************
- Plugin API. Common for all plugin types.
-*/
-
-#define MYSQL_PLUGIN_INTERFACE_VERSION 0x0102
-
-/*
- The allowable types of plugins
-*/
-#define MYSQL_UDF_PLUGIN 0 /* User-defined function */
-#define MYSQL_STORAGE_ENGINE_PLUGIN 1 /* Storage Engine */
-#define MYSQL_FTPARSER_PLUGIN 2 /* Full-text parser plugin */
-#define MYSQL_DAEMON_PLUGIN 3 /* The daemon/raw plugin type */
-#define MYSQL_INFORMATION_SCHEMA_PLUGIN 4 /* The I_S plugin type */
-#define MYSQL_AUDIT_PLUGIN 5 /* The Audit plugin type */
-#define MYSQL_REPLICATION_PLUGIN 6 /* The replication plugin type */
-#define MYSQL_AUTHENTICATION_PLUGIN 7 /* The authentication plugin type */
-#define MYSQL_MAX_PLUGIN_TYPE_NUM 8 /* The number of plugin types */
-
-/* We use the following strings to define licenses for plugins */
-#define PLUGIN_LICENSE_PROPRIETARY 0
-#define PLUGIN_LICENSE_GPL 1
-#define PLUGIN_LICENSE_BSD 2
-
-#define PLUGIN_LICENSE_PROPRIETARY_STRING "PROPRIETARY"
-#define PLUGIN_LICENSE_GPL_STRING "GPL"
-#define PLUGIN_LICENSE_BSD_STRING "BSD"
-
-/*
- Macros for beginning and ending plugin declarations. Between
- mysql_declare_plugin and mysql_declare_plugin_end there should
- be a st_mysql_plugin struct for each plugin to be declared.
-*/
-
-
-#ifndef MYSQL_DYNAMIC_PLUGIN
-#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
-MYSQL_PLUGIN_EXPORT int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
-MYSQL_PLUGIN_EXPORT int PSIZE= sizeof(struct st_mysql_plugin); \
-MYSQL_PLUGIN_EXPORT struct st_mysql_plugin DECLS[]= {
-#else
-#define __MYSQL_DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
-MYSQL_PLUGIN_EXPORT int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
-MYSQL_PLUGIN_EXPORT int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
-MYSQL_PLUGIN_EXPORT struct st_mysql_plugin _mysql_plugin_declarations_[]= {
-#endif
-
-#define mysql_declare_plugin(NAME) \
-__MYSQL_DECLARE_PLUGIN(NAME, \
- builtin_ ## NAME ## _plugin_interface_version, \
- builtin_ ## NAME ## _sizeof_struct_st_plugin, \
- builtin_ ## NAME ## _plugin)
-
-#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0,0,0,0}}
-
-/*
- declarations for SHOW STATUS support in plugins
-*/
-enum enum_mysql_show_type
-{
- SHOW_UNDEF, SHOW_BOOL, SHOW_INT, SHOW_LONG,
- SHOW_LONGLONG, SHOW_CHAR, SHOW_CHAR_PTR,
- SHOW_ARRAY, SHOW_FUNC, SHOW_DOUBLE,
- SHOW_always_last
-};
-
-struct st_mysql_show_var {
- const char *name;
- char *value;
- enum enum_mysql_show_type type;
-};
-
-#define SHOW_VAR_FUNC_BUFF_SIZE 1024
-typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, char *);
-
-
-/*
- declarations for server variables and command line options
-*/
-
-
-#define PLUGIN_VAR_BOOL 0x0001
-#define PLUGIN_VAR_INT 0x0002
-#define PLUGIN_VAR_LONG 0x0003
-#define PLUGIN_VAR_LONGLONG 0x0004
-#define PLUGIN_VAR_STR 0x0005
-#define PLUGIN_VAR_ENUM 0x0006
-#define PLUGIN_VAR_SET 0x0007
-#define PLUGIN_VAR_UNSIGNED 0x0080
-#define PLUGIN_VAR_THDLOCAL 0x0100 /* Variable is per-connection */
-#define PLUGIN_VAR_READONLY 0x0200 /* Server variable is read only */
-#define PLUGIN_VAR_NOSYSVAR 0x0400 /* Not a server variable */
-#define PLUGIN_VAR_NOCMDOPT 0x0800 /* Not a command line option */
-#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */
-#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */
-#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */
-#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */
-
-struct st_mysql_sys_var;
-struct st_mysql_value;
-
-/*
- SYNOPSIS
- (*mysql_var_check_func)()
- thd thread handle
- var dynamic variable being altered
- save pointer to temporary storage
- value user provided value
- RETURN
- 0 user provided value is OK and the update func may be called.
- any other value indicates error.
-
- This function should parse the user provided value and store in the
- provided temporary storage any data as required by the update func.
- There is sufficient space in the temporary storage to store a double.
- Note that the update func may not be called if any other error occurs
- so any memory allocated should be thread-local so that it may be freed
- automatically at the end of the statement.
-*/
-
-typedef int (*mysql_var_check_func)(MYSQL_THD thd,
- struct st_mysql_sys_var *var,
- void *save, struct st_mysql_value *value);
-
-/*
- SYNOPSIS
- (*mysql_var_update_func)()
- thd thread handle
- var dynamic variable being altered
- var_ptr pointer to dynamic variable
- save pointer to temporary storage
- RETURN
- NONE
-
- This function should use the validated value stored in the temporary store
- and persist it in the provided pointer to the dynamic variable.
- For example, strings may require memory to be allocated.
-*/
-typedef void (*mysql_var_update_func)(MYSQL_THD thd,
- struct st_mysql_sys_var *var,
- void *var_ptr, const void *save);
-
-
-/* the following declarations are for internal use only */
-
-
-#define PLUGIN_VAR_MASK \
- (PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \
- PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \
- PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC)
-
-#define MYSQL_PLUGIN_VAR_HEADER \
- int flags; \
- const char *name; \
- const char *comment; \
- mysql_var_check_func check; \
- mysql_var_update_func update
-
-#define MYSQL_SYSVAR_NAME(name) mysql_sysvar_ ## name
-#define MYSQL_SYSVAR(name) \
- ((struct st_mysql_sys_var *)&(MYSQL_SYSVAR_NAME(name)))
-
-/*
- for global variables, the value pointer is the first
- element after the header, the default value is the second.
- for thread variables, the value offset is the first
- element after the header, the default value is the second.
-*/
-
-
-#define DECLARE_MYSQL_SYSVAR_BASIC(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; \
- const type def_val; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_SYSVAR_SIMPLE(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; type def_val; \
- type min_val; type max_val; \
- type blk_sz; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_SYSVAR_TYPELIB(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- type *value; type def_val; \
- TYPELIB *typelib; \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_THDVAR_FUNC(type) \
- type *(*resolve)(MYSQL_THD thd, int offset)
-
-#define DECLARE_MYSQL_THDVAR_BASIC(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- const type def_val; \
- DECLARE_THDVAR_FUNC(type); \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_THDVAR_SIMPLE(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- type def_val; type min_val; \
- type max_val; type blk_sz; \
- DECLARE_THDVAR_FUNC(type); \
-} MYSQL_SYSVAR_NAME(name)
-
-#define DECLARE_MYSQL_THDVAR_TYPELIB(name, type) struct { \
- MYSQL_PLUGIN_VAR_HEADER; \
- int offset; \
- type def_val; \
- DECLARE_THDVAR_FUNC(type); \
- TYPELIB *typelib; \
-} MYSQL_SYSVAR_NAME(name)
-
-
-/*
- the following declarations are for use by plugin implementors
-*/
-
-#define MYSQL_SYSVAR_BOOL(name, varname, opt, comment, check, update, def) \
-DECLARE_MYSQL_SYSVAR_BASIC(name, char) = { \
- PLUGIN_VAR_BOOL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def}
-
-#define MYSQL_SYSVAR_STR(name, varname, opt, comment, check, update, def) \
-DECLARE_MYSQL_SYSVAR_BASIC(name, char *) = { \
- PLUGIN_VAR_STR | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def}
-
-#define MYSQL_SYSVAR_INT(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, int) = { \
- PLUGIN_VAR_INT | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_UINT(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_LONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, long) = { \
- PLUGIN_VAR_LONG | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ULONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_LONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, long long) = { \
- PLUGIN_VAR_LONGLONG | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ULONGLONG(name, varname, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, min, max, blk }
-
-#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
- PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, typelib }
-
-#define MYSQL_SYSVAR_SET(name, varname, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long long) = { \
- PLUGIN_VAR_SET | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, &varname, def, typelib }
-
-#define MYSQL_THDVAR_BOOL(name, opt, comment, check, update, def) \
-DECLARE_MYSQL_THDVAR_BASIC(name, char) = { \
- PLUGIN_VAR_BOOL | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL}
-
-#define MYSQL_THDVAR_STR(name, opt, comment, check, update, def) \
-DECLARE_MYSQL_THDVAR_BASIC(name, char *) = { \
- PLUGIN_VAR_STR | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL}
-
-#define MYSQL_THDVAR_INT(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_UINT(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned int) = { \
- PLUGIN_VAR_INT | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_LONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ULONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long) = { \
- PLUGIN_VAR_LONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_LONGLONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ULONGLONG(name, opt, comment, check, update, def, min, max, blk) \
-DECLARE_MYSQL_THDVAR_SIMPLE(name, unsigned long long) = { \
- PLUGIN_VAR_LONGLONG | PLUGIN_VAR_THDLOCAL | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, min, max, blk, NULL }
-
-#define MYSQL_THDVAR_ENUM(name, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long) = { \
- PLUGIN_VAR_ENUM | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL, typelib }
-
-#define MYSQL_THDVAR_SET(name, opt, comment, check, update, def, typelib) \
-DECLARE_MYSQL_THDVAR_TYPELIB(name, unsigned long long) = { \
- PLUGIN_VAR_SET | PLUGIN_VAR_THDLOCAL | ((opt) & PLUGIN_VAR_MASK), \
- #name, comment, check, update, -1, def, NULL, typelib }
-
-/* accessor macros */
-
-#define SYSVAR(name) \
- (*(MYSQL_SYSVAR_NAME(name).value))
-
-/* when thd == null, result points to global value */
-#define THDVAR(thd, name) \
- (*(MYSQL_SYSVAR_NAME(name).resolve(thd, MYSQL_SYSVAR_NAME(name).offset)))
-
-
-/*
- Plugin description structure.
-*/
-
-struct st_mysql_plugin
-{
- int type; /* the plugin type (a MYSQL_XXX_PLUGIN value) */
- void *info; /* pointer to type-specific plugin descriptor */
- const char *name; /* plugin name */
- const char *author; /* plugin author (for I_S.PLUGINS) */
- const char *descr; /* general descriptive text (for I_S.PLUGINS) */
- int license; /* the plugin license (PLUGIN_LICENSE_XXX) */
- int (*init)(void *); /* the function to invoke when plugin is loaded */
- int (*deinit)(void *);/* the function to invoke when plugin is unloaded */
- unsigned int version; /* plugin version (for I_S.PLUGINS) */
- struct st_mysql_show_var *status_vars;
- struct st_mysql_sys_var **system_vars;
- void * __reserved1; /* reserved for dependency checking */
-};
-
-/*************************************************************************
- API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
-*/
-#include "plugin_ftparser.h"
-
-/*************************************************************************
- API for Storage Engine plugin. (MYSQL_DAEMON_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_DAEMON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_daemon
-{
- int interface_version;
-};
-
-
-/*************************************************************************
- API for I_S plugin. (MYSQL_INFORMATION_SCHEMA_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_information_schema
-{
- int interface_version;
-};
-
-
-/*************************************************************************
- API for Storage Engine plugin. (MYSQL_STORAGE_ENGINE_PLUGIN)
-*/
-
-/* handlertons of different MySQL releases are incompatible */
-#define MYSQL_HANDLERTON_INTERFACE_VERSION (MYSQL_VERSION_ID << 8)
-
-/*
- The real API is in the sql/handler.h
- Here we define only the descriptor structure, that is referred from
- st_mysql_plugin.
-*/
-
-struct st_mysql_storage_engine
-{
- int interface_version;
-};
-
-struct handlerton;
-
-
-/*
- API for Replication plugin. (MYSQL_REPLICATION_PLUGIN)
-*/
- #define MYSQL_REPLICATION_INTERFACE_VERSION 0x0100
-
- /**
- Replication plugin descriptor
- */
- struct Mysql_replication {
- int interface_version;
- };
-
-/*************************************************************************
- st_mysql_value struct for reading values from mysqld.
- Used by server variables framework to parse user-provided values.
- Will be used for arguments when implementing UDFs.
-
- Note that val_str() returns a string in temporary memory
- that will be freed at the end of statement. Copy the string
- if you need it to persist.
-*/
-
-#define MYSQL_VALUE_TYPE_STRING 0
-#define MYSQL_VALUE_TYPE_REAL 1
-#define MYSQL_VALUE_TYPE_INT 2
-
-struct st_mysql_value
-{
- int (*value_type)(struct st_mysql_value *);
- const char *(*val_str)(struct st_mysql_value *, char *buffer, int *length);
- int (*val_real)(struct st_mysql_value *, double *realbuf);
- int (*val_int)(struct st_mysql_value *, long long *intbuf);
- int (*is_unsigned)(struct st_mysql_value *);
-};
-
-
-/*************************************************************************
- Miscellaneous functions for plugin implementors
-*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int thd_in_lock_tables(const MYSQL_THD thd);
-int thd_tablespace_op(const MYSQL_THD thd);
-long long thd_test_options(const MYSQL_THD thd, long long test_options);
-int thd_sql_command(const MYSQL_THD thd);
-const char *thd_proc_info(MYSQL_THD thd, const char *info);
-void **thd_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
-void thd_storage_lock_wait(MYSQL_THD thd, long long value);
-int thd_tx_isolation(const MYSQL_THD thd);
-char *thd_security_context(MYSQL_THD thd, char *buffer, unsigned int length,
- unsigned int max_query_len);
-/* Increments the row counter, see THD::row_count */
-void thd_inc_row_count(MYSQL_THD thd);
-
-/**
- Create a temporary file.
-
- @details
- The temporary file is created in a location specified by the mysql
- server configuration (--tmpdir option). The caller does not need to
- delete the file, it will be deleted automatically.
-
- @param prefix prefix for temporary file name
- @retval -1 error
- @retval >= 0 a file handle that can be passed to dup or my_close
-*/
-int mysql_tmpfile(const char *prefix);
-
-/**
- Check the killed state of a connection
-
- @details
- In MySQL support for the KILL statement is cooperative. The KILL
- statement only sets a "killed" flag. This function returns the value
- of that flag. A thread should check it often, especially inside
- time-consuming loops, and gracefully abort the operation if it is
- non-zero.
-
- @param thd user thread connection handle
- @retval 0 the connection is active
- @retval 1 the connection has been killed
-*/
-int thd_killed(const MYSQL_THD thd);
-
-
-/**
- Return the thread id of a user thread
-
- @param thd user thread connection handle
- @return thread id
-*/
-unsigned long thd_get_thread_id(const MYSQL_THD thd);
-
-/**
- Get the XID for this connection's transaction
-
- @param thd user thread connection handle
- @param xid location where identifier is stored
-*/
-void thd_get_xid(const MYSQL_THD thd, MYSQL_XID *xid);
-
-/**
- Invalidate the query cache for a given table.
-
- @param thd user thread connection handle
- @param key databasename\\0tablename\\0
- @param key_length length of key in bytes, including the NUL bytes
- @param using_trx flag: TRUE if using transactions, FALSE otherwise
-*/
-void mysql_query_cache_invalidate4(MYSQL_THD thd,
- const char *key, unsigned int key_length,
- int using_trx);
-
-
-/**
- Provide a handler data getter to simplify coding
-*/
-void *thd_get_ha_data(const MYSQL_THD thd, const struct handlerton *hton);
-
-
-/**
- Provide a handler data setter to simplify coding
-
- @details
- Set ha_data pointer (storage engine per-connection information).
-
- To avoid unclean deactivation (uninstall) of storage engine plugin
- in the middle of transaction, additional storage engine plugin
- lock is acquired.
-
- If ha_data is not null and storage engine plugin was not locked
- by thd_set_ha_data() in this connection before, storage engine
- plugin gets locked.
-
- If ha_data is null and storage engine plugin was locked by
- thd_set_ha_data() in this connection before, storage engine
- plugin lock gets released.
-
- If handlerton::close_connection() didn't reset ha_data, server does
- it immediately after calling handlerton::close_connection().
-*/
-void thd_set_ha_data(MYSQL_THD thd, const struct handlerton *hton,
- const void *ha_data);
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/dep/mysqllite/include/plugin_audit.h b/dep/mysqllite/include/plugin_audit.h
deleted file mode 100644
index 8811c832949..00000000000
--- a/dep/mysqllite/include/plugin_audit.h
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2007 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_audit_h
-#define _my_audit_h
-
-/*************************************************************************
- API for Audit plugin. (MYSQL_AUDIT_PLUGIN)
-*/
-
-#include "plugin.h"
-
-#define MYSQL_AUDIT_CLASS_MASK_SIZE 1
-
-#define MYSQL_AUDIT_INTERFACE_VERSION 0x0200
-
-/*
- The first word in every event class struct indicates the specific
- class of the event.
-*/
-struct mysql_event
-{
- unsigned int event_class;
-};
-
-
-/*************************************************************************
- AUDIT CLASS : GENERAL
-
- LOG events occurs before emitting to the general query log.
- ERROR events occur before transmitting errors to the user.
- RESULT events occur after transmitting a resultset to the user.
- STATUS events occur after transmitting a resultset or errors
- to the user.
-*/
-
-#define MYSQL_AUDIT_GENERAL_CLASS 0
-#define MYSQL_AUDIT_GENERAL_CLASSMASK (1 << MYSQL_AUDIT_GENERAL_CLASS)
-#define MYSQL_AUDIT_GENERAL_LOG 0
-#define MYSQL_AUDIT_GENERAL_ERROR 1
-#define MYSQL_AUDIT_GENERAL_RESULT 2
-#define MYSQL_AUDIT_GENERAL_STATUS 3
-
-struct mysql_event_general
-{
- unsigned int event_class;
- unsigned int event_subclass;
- int general_error_code;
- unsigned long general_thread_id;
- const char *general_user;
- unsigned int general_user_length;
- const char *general_command;
- unsigned int general_command_length;
- const char *general_query;
- unsigned int general_query_length;
- struct charset_info_st *general_charset;
- unsigned long long general_time;
- unsigned long long general_rows;
-};
-
-
-/*
- AUDIT CLASS : CONNECTION
-
- CONNECT occurs after authentication phase is completed.
- DISCONNECT occurs after connection is terminated.
- CHANGE_USER occurs after COM_CHANGE_USER RPC is completed.
-*/
-
-#define MYSQL_AUDIT_CONNECTION_CLASS 1
-#define MYSQL_AUDIT_CONNECTION_CLASSMASK (1 << MYSQL_AUDIT_CONNECTION_CLASS)
-#define MYSQL_AUDIT_CONNECTION_CONNECT 0
-#define MYSQL_AUDIT_CONNECTION_DISCONNECT 1
-#define MYSQL_AUDIT_CONNECTION_CHANGE_USER 2
-
-struct mysql_event_connection
-{
- unsigned int event_class;
- unsigned int event_subclass;
- int status;
- unsigned long thread_id;
- const char *user;
- unsigned int user_length;
- const char *priv_user;
- unsigned int priv_user_length;
- const char *external_user;
- unsigned int external_user_length;
- const char *proxy_user;
- unsigned int proxy_user_length;
- const char *host;
- unsigned int host_length;
- const char *ip;
- unsigned int ip_length;
- const char *database;
- unsigned int database_length;
-};
-
-
-/*************************************************************************
- Here we define the descriptor structure, that is referred from
- st_mysql_plugin.
-
- release_thd() event occurs when the event class consumer is to be
- disassociated from the specified THD. This would typically occur
- before some operation which may require sleeping - such as when
- waiting for the next query from the client.
-
- event_notify() is invoked whenever an event occurs which is of any
- class for which the plugin has interest. The first word of the
- mysql_event argument indicates the specific event class and the
- remainder of the structure is as required for that class.
-
- class_mask is an array of bits used to indicate what event classes
- that this plugin wants to receive.
-*/
-
-struct st_mysql_audit
-{
- int interface_version;
- void (*release_thd)(MYSQL_THD);
- void (*event_notify)(MYSQL_THD, const struct mysql_event *);
- unsigned long class_mask[MYSQL_AUDIT_CLASS_MASK_SIZE];
-};
-
-
-#endif
diff --git a/dep/mysqllite/include/plugin_ftparser.h b/dep/mysqllite/include/plugin_ftparser.h
deleted file mode 100644
index 7f9bde3a6a0..00000000000
--- a/dep/mysqllite/include/plugin_ftparser.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright (C) 2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef _my_plugin_ftparser_h
-#define _my_plugin_ftparser_h
-#include "plugin.h"
-
-/*************************************************************************
- API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN)
-*/
-
-#define MYSQL_FTPARSER_INTERFACE_VERSION 0x0100
-
-/* Parsing modes. Set in MYSQL_FTPARSER_PARAM::mode */
-enum enum_ftparser_mode
-{
-/*
- Fast and simple mode. This mode is used for indexing, and natural
- language queries.
-
- The parser is expected to return only those words that go into the
- index. Stopwords or too short/long words should not be returned. The
- 'boolean_info' argument of mysql_add_word() does not have to be set.
-*/
- MYSQL_FTPARSER_SIMPLE_MODE= 0,
-
-/*
- Parse with stopwords mode. This mode is used in boolean searches for
- "phrase matching."
-
- The parser is not allowed to ignore words in this mode. Every word
- should be returned, including stopwords and words that are too short
- or long. The 'boolean_info' argument of mysql_add_word() does not
- have to be set.
-*/
- MYSQL_FTPARSER_WITH_STOPWORDS= 1,
-
-/*
- Parse in boolean mode. This mode is used to parse a boolean query string.
-
- The parser should provide a valid MYSQL_FTPARSER_BOOLEAN_INFO
- structure in the 'boolean_info' argument to mysql_add_word().
- Usually that means that the parser should recognize boolean operators
- in the parsing stream and set appropriate fields in
- MYSQL_FTPARSER_BOOLEAN_INFO structure accordingly. As for
- MYSQL_FTPARSER_WITH_STOPWORDS mode, no word should be ignored.
- Instead, use FT_TOKEN_STOPWORD for the token type of such a word.
-*/
- MYSQL_FTPARSER_FULL_BOOLEAN_INFO= 2
-};
-
-/*
- Token types for boolean mode searching (used for the type member of
- MYSQL_FTPARSER_BOOLEAN_INFO struct)
-
- FT_TOKEN_EOF: End of data.
- FT_TOKEN_WORD: Regular word.
- FT_TOKEN_LEFT_PAREN: Left parenthesis (start of group/sub-expression).
- FT_TOKEN_RIGHT_PAREN: Right parenthesis (end of group/sub-expression).
- FT_TOKEN_STOPWORD: Stopword.
-*/
-
-enum enum_ft_token_type
-{
- FT_TOKEN_EOF= 0,
- FT_TOKEN_WORD= 1,
- FT_TOKEN_LEFT_PAREN= 2,
- FT_TOKEN_RIGHT_PAREN= 3,
- FT_TOKEN_STOPWORD= 4
-};
-
-/*
- This structure is used in boolean search mode only. It conveys
- boolean-mode metadata to the MySQL search engine for every word in
- the search query. A valid instance of this structure must be filled
- in by the plugin parser and passed as an argument in the call to
- mysql_add_word (the callback function in the MYSQL_FTPARSER_PARAM
- structure) when a query is parsed in boolean mode.
-
- type: The token type. Should be one of the enum_ft_token_type values.
-
- yesno: Whether the word must be present for a match to occur:
- >0 Must be present
- <0 Must not be present
- 0 Neither; the word is optional but its presence increases the relevance
- With the default settings of the ft_boolean_syntax system variable,
- >0 corresponds to the '+' operator, <0 corrresponds to the '-' operator,
- and 0 means neither operator was used.
-
- weight_adjust: A weighting factor that determines how much a match
- for the word counts. Positive values increase, negative - decrease the
- relative word's importance in the query.
-
- wasign: The sign of the word's weight in the query. If it's non-negative
- the match for the word will increase document relevance, if it's
- negative - decrease (the word becomes a "noise word", the less of it the
- better).
-
- trunc: Corresponds to the '*' operator in the default setting of the
- ft_boolean_syntax system variable.
-*/
-
-typedef struct st_mysql_ftparser_boolean_info
-{
- enum enum_ft_token_type type;
- int yesno;
- int weight_adjust;
- char wasign;
- char trunc;
- /* These are parser state and must be removed. */
- char prev;
- char *quot;
-} MYSQL_FTPARSER_BOOLEAN_INFO;
-
-/*
- The following flag means that buffer with a string (document, word)
- may be overwritten by the caller before the end of the parsing (that is
- before st_mysql_ftparser::deinit() call). If one needs the string
- to survive between two successive calls of the parsing function, she
- needs to save a copy of it. The flag may be set by MySQL before calling
- st_mysql_ftparser::parse(), or it may be set by a plugin before calling
- st_mysql_ftparser_param::mysql_parse() or
- st_mysql_ftparser_param::mysql_add_word().
-*/
-#define MYSQL_FTFLAGS_NEED_COPY 1
-
-/*
- An argument of the full-text parser plugin. This structure is
- filled in by MySQL server and passed to the parsing function of the
- plugin as an in/out parameter.
-
- mysql_parse: A pointer to the built-in parser implementation of the
- server. It's set by the server and can be used by the parser plugin
- to invoke the MySQL default parser. If plugin's role is to extract
- textual data from .doc, .pdf or .xml content, it might extract
- plaintext from the content, and then pass the text to the default
- MySQL parser to be parsed.
-
- mysql_add_word: A server callback to add a new word. When parsing
- a document, the server sets this to point at a function that adds
- the word to MySQL full-text index. When parsing a search query,
- this function will add the new word to the list of words to search
- for. The boolean_info argument can be NULL for all cases except
- when mode is MYSQL_FTPARSER_FULL_BOOLEAN_INFO.
-
- ftparser_state: A generic pointer. The plugin can set it to point
- to information to be used internally for its own purposes.
-
- mysql_ftparam: This is set by the server. It is used by MySQL functions
- called via mysql_parse() and mysql_add_word() callback. The plugin
- should not modify it.
-
- cs: Information about the character set of the document or query string.
-
- doc: A pointer to the document or query string to be parsed.
-
- length: Length of the document or query string, in bytes.
-
- flags: See MYSQL_FTFLAGS_* constants above.
-
- mode: The parsing mode. With boolean operators, with stopwords, or
- nothing. See enum_ftparser_mode above.
-*/
-
-typedef struct st_mysql_ftparser_param
-{
- int (*mysql_parse)(struct st_mysql_ftparser_param *,
- char *doc, int doc_len);
- int (*mysql_add_word)(struct st_mysql_ftparser_param *,
- char *word, int word_len,
- MYSQL_FTPARSER_BOOLEAN_INFO *boolean_info);
- void *ftparser_state;
- void *mysql_ftparam;
- struct charset_info_st *cs;
- char *doc;
- int length;
- int flags;
- enum enum_ftparser_mode mode;
-} MYSQL_FTPARSER_PARAM;
-
-/*
- Full-text parser descriptor.
-
- interface_version is, e.g., MYSQL_FTPARSER_INTERFACE_VERSION.
- The parsing, initialization, and deinitialization functions are
- invoked per SQL statement for which the parser is used.
-*/
-
-struct st_mysql_ftparser
-{
- int interface_version;
- int (*parse)(MYSQL_FTPARSER_PARAM *param);
- int (*init)(MYSQL_FTPARSER_PARAM *param);
- int (*deinit)(MYSQL_FTPARSER_PARAM *param);
-};
-
-
-#endif
-
diff --git a/dep/mysqllite/include/sql_common.h b/dep/mysqllite/include/sql_common.h
deleted file mode 100644
index a9a3168b691..00000000000
--- a/dep/mysqllite/include/sql_common.h
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef SQL_COMMON_INCLUDED
-#define SQL_COMMON_INCLUDED
-
-/* Copyright (C) 2003-2004, 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#define SQL_COMMON_INCLUDED
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <mysql.h>
-
-extern const char *unknown_sqlstate;
-extern const char *cant_connect_sqlstate;
-extern const char *not_error_sqlstate;
-
-struct st_mysql_options_extention {
- char *plugin_dir;
- char *default_auth;
-};
-
-typedef struct st_mysql_methods
-{
- my_bool (*read_query_result)(MYSQL *mysql);
- my_bool (*advanced_command)(MYSQL *mysql,
- enum enum_server_command command,
- const unsigned char *header,
- unsigned long header_length,
- const unsigned char *arg,
- unsigned long arg_length,
- my_bool skip_check,
- MYSQL_STMT *stmt);
- MYSQL_DATA *(*read_rows)(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
- unsigned int fields);
- MYSQL_RES * (*use_result)(MYSQL *mysql);
- void (*fetch_lengths)(unsigned long *to,
- MYSQL_ROW column, unsigned int field_count);
- void (*flush_use_result)(MYSQL *mysql, my_bool flush_all_results);
- int (*read_change_user_result)(MYSQL *mysql);
-#if !defined(MYSQL_SERVER) || defined(EMBEDDED_LIBRARY)
- MYSQL_FIELD * (*list_fields)(MYSQL *mysql);
- my_bool (*read_prepare_result)(MYSQL *mysql, MYSQL_STMT *stmt);
- int (*stmt_execute)(MYSQL_STMT *stmt);
- int (*read_binary_rows)(MYSQL_STMT *stmt);
- int (*unbuffered_fetch)(MYSQL *mysql, char **row);
- void (*free_embedded_thd)(MYSQL *mysql);
- const char *(*read_statistics)(MYSQL *mysql);
- my_bool (*next_result)(MYSQL *mysql);
- int (*read_rows_from_cursor)(MYSQL_STMT *stmt);
-#endif
-} MYSQL_METHODS;
-
-#define simple_command(mysql, command, arg, length, skip_check) \
- (*(mysql)->methods->advanced_command)(mysql, command, 0, \
- 0, arg, length, skip_check, NULL)
-#define stmt_command(mysql, command, arg, length, stmt) \
- (*(mysql)->methods->advanced_command)(mysql, command, 0, \
- 0, arg, length, 1, stmt)
-
-extern CHARSET_INFO *default_client_charset_info;
-MYSQL_FIELD *unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields,
- my_bool default_value, uint server_capabilities);
-void free_rows(MYSQL_DATA *cur);
-void free_old_query(MYSQL *mysql);
-void end_server(MYSQL *mysql);
-my_bool mysql_reconnect(MYSQL *mysql);
-void mysql_read_default_options(struct st_mysql_options *options,
- const char *filename,const char *group);
-my_bool
-cli_advanced_command(MYSQL *mysql, enum enum_server_command command,
- const unsigned char *header, ulong header_length,
- const unsigned char *arg, ulong arg_length,
- my_bool skip_check, MYSQL_STMT *stmt);
-unsigned long cli_safe_read(MYSQL *mysql);
-void net_clear_error(NET *net);
-void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net);
-void set_stmt_error(MYSQL_STMT *stmt, int errcode, const char *sqlstate,
- const char *err);
-void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate);
-void set_mysql_extended_error(MYSQL *mysql, int errcode, const char *sqlstate,
- const char *format, ...);
-
-/* client side of the pluggable authentication */
-struct st_plugin_vio_info;
-void mpvio_info(Vio *vio, struct st_plugin_vio_info *info);
-int run_plugin_auth(MYSQL *mysql, char *data, uint data_len,
- const char *data_plugin, const char *db);
-int mysql_client_plugin_init();
-void mysql_client_plugin_deinit();
-struct st_mysql_client_plugin;
-extern struct st_mysql_client_plugin *mysql_client_builtins[];
-
-#ifdef __cplusplus
-}
-#endif
-
-#define protocol_41(A) ((A)->server_capabilities & CLIENT_PROTOCOL_41)
-
-#endif /* SQL_COMMON_INCLUDED */
diff --git a/dep/mysqllite/include/sql_state.h b/dep/mysqllite/include/sql_state.h
deleted file mode 100644
index edd6f694bd9..00000000000
--- a/dep/mysqllite/include/sql_state.h
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Autogenerated file, please don't edit */
-
-{ ER_DUP_KEY ,"23000", "" },
-{ ER_OUTOFMEMORY ,"HY001", "S1001" },
-{ ER_OUT_OF_SORTMEMORY ,"HY001", "S1001" },
-{ ER_CON_COUNT_ERROR ,"08004", "" },
-{ ER_BAD_HOST_ERROR ,"08S01", "" },
-{ ER_HANDSHAKE_ERROR ,"08S01", "" },
-{ ER_DBACCESS_DENIED_ERROR ,"42000", "" },
-{ ER_ACCESS_DENIED_ERROR ,"28000", "" },
-{ ER_NO_DB_ERROR ,"3D000", "" },
-{ ER_UNKNOWN_COM_ERROR ,"08S01", "" },
-{ ER_BAD_NULL_ERROR ,"23000", "" },
-{ ER_BAD_DB_ERROR ,"42000", "" },
-{ ER_TABLE_EXISTS_ERROR ,"42S01", "" },
-{ ER_BAD_TABLE_ERROR ,"42S02", "" },
-{ ER_NON_UNIQ_ERROR ,"23000", "" },
-{ ER_SERVER_SHUTDOWN ,"08S01", "" },
-{ ER_BAD_FIELD_ERROR ,"42S22", "S0022" },
-{ ER_WRONG_FIELD_WITH_GROUP ,"42000", "S1009" },
-{ ER_WRONG_GROUP_FIELD ,"42000", "S1009" },
-{ ER_WRONG_SUM_SELECT ,"42000", "S1009" },
-{ ER_WRONG_VALUE_COUNT ,"21S01", "" },
-{ ER_TOO_LONG_IDENT ,"42000", "S1009" },
-{ ER_DUP_FIELDNAME ,"42S21", "S1009" },
-{ ER_DUP_KEYNAME ,"42000", "S1009" },
-{ ER_DUP_ENTRY ,"23000", "S1009" },
-{ ER_WRONG_FIELD_SPEC ,"42000", "S1009" },
-{ ER_PARSE_ERROR ,"42000", "s1009" },
-{ ER_EMPTY_QUERY ,"42000", "" },
-{ ER_NONUNIQ_TABLE ,"42000", "S1009" },
-{ ER_INVALID_DEFAULT ,"42000", "S1009" },
-{ ER_MULTIPLE_PRI_KEY ,"42000", "S1009" },
-{ ER_TOO_MANY_KEYS ,"42000", "S1009" },
-{ ER_TOO_MANY_KEY_PARTS ,"42000", "S1009" },
-{ ER_TOO_LONG_KEY ,"42000", "S1009" },
-{ ER_KEY_COLUMN_DOES_NOT_EXITS ,"42000", "S1009" },
-{ ER_BLOB_USED_AS_KEY ,"42000", "S1009" },
-{ ER_TOO_BIG_FIELDLENGTH ,"42000", "S1009" },
-{ ER_WRONG_AUTO_KEY ,"42000", "S1009" },
-{ ER_FORCING_CLOSE ,"08S01", "" },
-{ ER_IPSOCK_ERROR ,"08S01", "" },
-{ ER_NO_SUCH_INDEX ,"42S12", "S1009" },
-{ ER_WRONG_FIELD_TERMINATORS ,"42000", "S1009" },
-{ ER_BLOBS_AND_NO_TERMINATED ,"42000", "S1009" },
-{ ER_CANT_REMOVE_ALL_FIELDS ,"42000", "" },
-{ ER_CANT_DROP_FIELD_OR_KEY ,"42000", "" },
-{ ER_BLOB_CANT_HAVE_DEFAULT ,"42000", "" },
-{ ER_WRONG_DB_NAME ,"42000", "" },
-{ ER_WRONG_TABLE_NAME ,"42000", "" },
-{ ER_TOO_BIG_SELECT ,"42000", "" },
-{ ER_UNKNOWN_PROCEDURE ,"42000", "" },
-{ ER_WRONG_PARAMCOUNT_TO_PROCEDURE ,"42000", "" },
-{ ER_UNKNOWN_TABLE ,"42S02", "" },
-{ ER_FIELD_SPECIFIED_TWICE ,"42000", "" },
-{ ER_UNSUPPORTED_EXTENSION ,"42000", "" },
-{ ER_TABLE_MUST_HAVE_COLUMNS ,"42000", "" },
-{ ER_UNKNOWN_CHARACTER_SET ,"42000", "" },
-{ ER_TOO_BIG_ROWSIZE ,"42000", "" },
-{ ER_WRONG_OUTER_JOIN ,"42000", "" },
-{ ER_NULL_COLUMN_IN_INDEX ,"42000", "" },
-{ ER_PASSWORD_ANONYMOUS_USER ,"42000", "" },
-{ ER_PASSWORD_NOT_ALLOWED ,"42000", "" },
-{ ER_PASSWORD_NO_MATCH ,"42000", "" },
-{ ER_WRONG_VALUE_COUNT_ON_ROW ,"21S01", "" },
-{ ER_INVALID_USE_OF_NULL ,"22004", "" },
-{ ER_REGEXP_ERROR ,"42000", "" },
-{ ER_MIX_OF_GROUP_FUNC_AND_FIELDS ,"42000", "" },
-{ ER_NONEXISTING_GRANT ,"42000", "" },
-{ ER_TABLEACCESS_DENIED_ERROR ,"42000", "" },
-{ ER_COLUMNACCESS_DENIED_ERROR ,"42000", "" },
-{ ER_ILLEGAL_GRANT_FOR_TABLE ,"42000", "" },
-{ ER_GRANT_WRONG_HOST_OR_USER ,"42000", "" },
-{ ER_NO_SUCH_TABLE ,"42S02", "" },
-{ ER_NONEXISTING_TABLE_GRANT ,"42000", "" },
-{ ER_NOT_ALLOWED_COMMAND ,"42000", "" },
-{ ER_SYNTAX_ERROR ,"42000", "" },
-{ ER_ABORTING_CONNECTION ,"08S01", "" },
-{ ER_NET_PACKET_TOO_LARGE ,"08S01", "" },
-{ ER_NET_READ_ERROR_FROM_PIPE ,"08S01", "" },
-{ ER_NET_FCNTL_ERROR ,"08S01", "" },
-{ ER_NET_PACKETS_OUT_OF_ORDER ,"08S01", "" },
-{ ER_NET_UNCOMPRESS_ERROR ,"08S01", "" },
-{ ER_NET_READ_ERROR ,"08S01", "" },
-{ ER_NET_READ_INTERRUPTED ,"08S01", "" },
-{ ER_NET_ERROR_ON_WRITE ,"08S01", "" },
-{ ER_NET_WRITE_INTERRUPTED ,"08S01", "" },
-{ ER_TOO_LONG_STRING ,"42000", "" },
-{ ER_TABLE_CANT_HANDLE_BLOB ,"42000", "" },
-{ ER_TABLE_CANT_HANDLE_AUTO_INCREMENT ,"42000", "" },
-{ ER_WRONG_COLUMN_NAME ,"42000", "" },
-{ ER_WRONG_KEY_COLUMN ,"42000", "" },
-{ ER_DUP_UNIQUE ,"23000", "" },
-{ ER_BLOB_KEY_WITHOUT_LENGTH ,"42000", "" },
-{ ER_PRIMARY_CANT_HAVE_NULL ,"42000", "" },
-{ ER_TOO_MANY_ROWS ,"42000", "" },
-{ ER_REQUIRES_PRIMARY_KEY ,"42000", "" },
-{ ER_KEY_DOES_NOT_EXITS ,"42000", "S1009" },
-{ ER_CHECK_NO_SUCH_TABLE ,"42000", "" },
-{ ER_CHECK_NOT_IMPLEMENTED ,"42000", "" },
-{ ER_CANT_DO_THIS_DURING_AN_TRANSACTION ,"25000", "" },
-{ ER_NEW_ABORTING_CONNECTION ,"08S01", "" },
-{ ER_MASTER_NET_READ ,"08S01", "" },
-{ ER_MASTER_NET_WRITE ,"08S01", "" },
-{ ER_TOO_MANY_USER_CONNECTIONS ,"42000", "" },
-{ ER_READ_ONLY_TRANSACTION ,"25000", "" },
-{ ER_NO_PERMISSION_TO_CREATE_USER ,"42000", "" },
-{ ER_LOCK_DEADLOCK ,"40001", "" },
-{ ER_NO_REFERENCED_ROW ,"23000", "" },
-{ ER_ROW_IS_REFERENCED ,"23000", "" },
-{ ER_CONNECT_TO_MASTER ,"08S01", "" },
-{ ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT ,"21000", "" },
-{ ER_USER_LIMIT_REACHED ,"42000", "" },
-{ ER_SPECIFIC_ACCESS_DENIED_ERROR ,"42000", "" },
-{ ER_NO_DEFAULT ,"42000", "" },
-{ ER_WRONG_VALUE_FOR_VAR ,"42000", "" },
-{ ER_WRONG_TYPE_FOR_VAR ,"42000", "" },
-{ ER_CANT_USE_OPTION_HERE ,"42000", "" },
-{ ER_NOT_SUPPORTED_YET ,"42000", "" },
-{ ER_WRONG_FK_DEF ,"42000", "" },
-{ ER_OPERAND_COLUMNS ,"21000", "" },
-{ ER_SUBQUERY_NO_1_ROW ,"21000", "" },
-{ ER_ILLEGAL_REFERENCE ,"42S22", "" },
-{ ER_DERIVED_MUST_HAVE_ALIAS ,"42000", "" },
-{ ER_SELECT_REDUCED ,"01000", "" },
-{ ER_TABLENAME_NOT_ALLOWED_HERE ,"42000", "" },
-{ ER_NOT_SUPPORTED_AUTH_MODE ,"08004", "" },
-{ ER_SPATIAL_CANT_HAVE_NULL ,"42000", "" },
-{ ER_COLLATION_CHARSET_MISMATCH ,"42000", "" },
-{ ER_WARN_TOO_FEW_RECORDS ,"01000", "" },
-{ ER_WARN_TOO_MANY_RECORDS ,"01000", "" },
-{ ER_WARN_NULL_TO_NOTNULL ,"22004", "" },
-{ ER_WARN_DATA_OUT_OF_RANGE ,"22003", "" },
-{ WARN_DATA_TRUNCATED ,"01000", "" },
-{ ER_WRONG_NAME_FOR_INDEX ,"42000", "" },
-{ ER_WRONG_NAME_FOR_CATALOG ,"42000", "" },
-{ ER_UNKNOWN_STORAGE_ENGINE ,"42000", "" },
-{ ER_TRUNCATED_WRONG_VALUE ,"22007", "" },
-{ ER_SP_NO_RECURSIVE_CREATE ,"2F003", "" },
-{ ER_SP_ALREADY_EXISTS ,"42000", "" },
-{ ER_SP_DOES_NOT_EXIST ,"42000", "" },
-{ ER_SP_LILABEL_MISMATCH ,"42000", "" },
-{ ER_SP_LABEL_REDEFINE ,"42000", "" },
-{ ER_SP_LABEL_MISMATCH ,"42000", "" },
-{ ER_SP_UNINIT_VAR ,"01000", "" },
-{ ER_SP_BADSELECT ,"0A000", "" },
-{ ER_SP_BADRETURN ,"42000", "" },
-{ ER_SP_BADSTATEMENT ,"0A000", "" },
-{ ER_UPDATE_LOG_DEPRECATED_IGNORED ,"42000", "" },
-{ ER_UPDATE_LOG_DEPRECATED_TRANSLATED ,"42000", "" },
-{ ER_QUERY_INTERRUPTED ,"70100", "" },
-{ ER_SP_WRONG_NO_OF_ARGS ,"42000", "" },
-{ ER_SP_COND_MISMATCH ,"42000", "" },
-{ ER_SP_NORETURN ,"42000", "" },
-{ ER_SP_NORETURNEND ,"2F005", "" },
-{ ER_SP_BAD_CURSOR_QUERY ,"42000", "" },
-{ ER_SP_BAD_CURSOR_SELECT ,"42000", "" },
-{ ER_SP_CURSOR_MISMATCH ,"42000", "" },
-{ ER_SP_CURSOR_ALREADY_OPEN ,"24000", "" },
-{ ER_SP_CURSOR_NOT_OPEN ,"24000", "" },
-{ ER_SP_UNDECLARED_VAR ,"42000", "" },
-{ ER_SP_FETCH_NO_DATA ,"02000", "" },
-{ ER_SP_DUP_PARAM ,"42000", "" },
-{ ER_SP_DUP_VAR ,"42000", "" },
-{ ER_SP_DUP_COND ,"42000", "" },
-{ ER_SP_DUP_CURS ,"42000", "" },
-{ ER_SP_SUBSELECT_NYI ,"0A000", "" },
-{ ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG ,"0A000", "" },
-{ ER_SP_VARCOND_AFTER_CURSHNDLR ,"42000", "" },
-{ ER_SP_CURSOR_AFTER_HANDLER ,"42000", "" },
-{ ER_SP_CASE_NOT_FOUND ,"20000", "" },
-{ ER_DIVISION_BY_ZERO ,"22012", "" },
-{ ER_ILLEGAL_VALUE_FOR_TYPE ,"22007", "" },
-{ ER_PROCACCESS_DENIED_ERROR ,"42000", "" },
-{ ER_XAER_NOTA ,"XAE04", "" },
-{ ER_XAER_INVAL ,"XAE05", "" },
-{ ER_XAER_RMFAIL ,"XAE07", "" },
-{ ER_XAER_OUTSIDE ,"XAE09", "" },
-{ ER_XAER_RMERR ,"XAE03", "" },
-{ ER_XA_RBROLLBACK ,"XA100", "" },
-{ ER_NONEXISTING_PROC_GRANT ,"42000", "" },
-{ ER_DATA_TOO_LONG ,"22001", "" },
-{ ER_SP_BAD_SQLSTATE ,"42000", "" },
-{ ER_CANT_CREATE_USER_WITH_GRANT ,"42000", "" },
-{ ER_SP_DUP_HANDLER ,"42000", "" },
-{ ER_SP_NOT_VAR_ARG ,"42000", "" },
-{ ER_SP_NO_RETSET ,"0A000", "" },
-{ ER_CANT_CREATE_GEOMETRY_OBJECT ,"22003", "" },
-{ ER_TOO_BIG_SCALE ,"42000", "S1009" },
-{ ER_TOO_BIG_PRECISION ,"42000", "S1009" },
-{ ER_M_BIGGER_THAN_D ,"42000", "S1009" },
-{ ER_TOO_LONG_BODY ,"42000", "S1009" },
-{ ER_TOO_BIG_DISPLAYWIDTH ,"42000", "S1009" },
-{ ER_XAER_DUPID ,"XAE08", "" },
-{ ER_DATETIME_FUNCTION_OVERFLOW ,"22008", "" },
-{ ER_ROW_IS_REFERENCED_2 ,"23000", "" },
-{ ER_NO_REFERENCED_ROW_2 ,"23000", "" },
-{ ER_SP_BAD_VAR_SHADOW ,"42000", "" },
-{ ER_SP_WRONG_NAME ,"42000", "" },
-{ ER_SP_NO_AGGREGATE ,"42000", "" },
-{ ER_MAX_PREPARED_STMT_COUNT_REACHED ,"42000", "" },
-{ ER_NON_GROUPING_FIELD_USED ,"42000", "" },
-{ ER_FOREIGN_DUPLICATE_KEY ,"23000", "S1009" },
-{ ER_CANT_CHANGE_TX_ISOLATION ,"25001", "" },
-{ ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT ,"42000", "" },
-{ ER_WRONG_PARAMETERS_TO_NATIVE_FCT ,"42000", "" },
-{ ER_WRONG_PARAMETERS_TO_STORED_FCT ,"42000", "" },
-{ ER_DUP_ENTRY_WITH_KEY_NAME ,"23000", "S1009" },
-{ ER_XA_RBTIMEOUT ,"XA106", "" },
-{ ER_XA_RBDEADLOCK ,"XA102", "" },
-{ ER_FUNC_INEXISTENT_NAME_COLLISION ,"42000", "" },
-{ ER_DUP_SIGNAL_SET ,"42000", "" },
-{ ER_SIGNAL_WARN ,"01000", "" },
-{ ER_SIGNAL_NOT_FOUND ,"02000", "" },
-{ ER_SIGNAL_EXCEPTION ,"HY000", "" },
-{ ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER ,"0K000", "" },
-{ ER_SPATIAL_MUST_HAVE_GEOM_COL ,"42000", "" },
-{ ER_DATA_OUT_OF_RANGE ,"22003", "" },
-{ ER_ACCESS_DENIED_NO_PASSWORD_ERROR ,"28000", "" },
-{ ER_TRUNCATE_ILLEGAL_FK ,"42000", "" },
diff --git a/dep/mysqllite/include/sslopt-case.h b/dep/mysqllite/include/sslopt-case.h
deleted file mode 100644
index 3b64a225fe2..00000000000
--- a/dep/mysqllite/include/sslopt-case.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef SSLOPT_CASE_INCLUDED
-#define SSLOPT_CASE_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- case OPT_SSL_KEY:
- case OPT_SSL_CERT:
- case OPT_SSL_CA:
- case OPT_SSL_CAPATH:
- case OPT_SSL_CIPHER:
- /*
- Enable use of SSL if we are using any ssl option
- One can disable SSL later by using --skip-ssl or --ssl=0
- */
- opt_use_ssl= 1;
- break;
-#endif
-#endif /* SSLOPT_CASE_INCLUDED */
diff --git a/dep/mysqllite/include/sslopt-longopts.h b/dep/mysqllite/include/sslopt-longopts.h
deleted file mode 100644
index 5315b2e12b1..00000000000
--- a/dep/mysqllite/include/sslopt-longopts.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#ifndef SSLOPT_LONGOPTS_INCLUDED
-#define SSLOPT_LONGOPTS_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
-
- {"ssl", OPT_SSL_SSL,
- "Enable SSL for connection (automatically enabled with other flags).",
- &opt_use_ssl, &opt_use_ssl, 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0},
- {"ssl-ca", OPT_SSL_CA,
- "CA file in PEM format (check OpenSSL docs, implies --ssl).",
- &opt_ssl_ca, &opt_ssl_ca, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
- {"ssl-capath", OPT_SSL_CAPATH,
- "CA directory (check OpenSSL docs, implies --ssl).",
- &opt_ssl_capath, &opt_ssl_capath, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
- {"ssl-cert", OPT_SSL_CERT, "X509 cert in PEM format (implies --ssl).",
- &opt_ssl_cert, &opt_ssl_cert, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
- {"ssl-cipher", OPT_SSL_CIPHER, "SSL cipher to use (implies --ssl).",
- &opt_ssl_cipher, &opt_ssl_cipher, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
- {"ssl-key", OPT_SSL_KEY, "X509 key in PEM format (implies --ssl).",
- &opt_ssl_key, &opt_ssl_key, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
-#ifdef MYSQL_CLIENT
- {"ssl-verify-server-cert", OPT_SSL_VERIFY_SERVER_CERT,
- "Verify server's \"Common Name\" in its cert against hostname used "
- "when connecting. This option is disabled by default.",
- &opt_ssl_verify_server_cert, &opt_ssl_verify_server_cert,
- 0, GET_BOOL, OPT_ARG, 0, 0, 0, 0, 0, 0},
-#endif
-#endif /* HAVE_OPENSSL */
-#endif /* SSLOPT_LONGOPTS_INCLUDED */
diff --git a/dep/mysqllite/include/sslopt-vars.h b/dep/mysqllite/include/sslopt-vars.h
deleted file mode 100644
index d0eec3b6d74..00000000000
--- a/dep/mysqllite/include/sslopt-vars.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef SSLOPT_VARS_INCLUDED
-#define SSLOPT_VARS_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
-#ifdef SSL_VARS_NOT_STATIC
-#define SSL_STATIC
-#else
-#define SSL_STATIC static
-#endif
-SSL_STATIC my_bool opt_use_ssl = 0;
-SSL_STATIC char *opt_ssl_ca = 0;
-SSL_STATIC char *opt_ssl_capath = 0;
-SSL_STATIC char *opt_ssl_cert = 0;
-SSL_STATIC char *opt_ssl_cipher = 0;
-SSL_STATIC char *opt_ssl_key = 0;
-#ifdef MYSQL_CLIENT
-SSL_STATIC my_bool opt_ssl_verify_server_cert= 0;
-#endif
-#endif
-#endif /* SSLOPT_VARS_INCLUDED */
diff --git a/dep/mysqllite/include/typelib.h b/dep/mysqllite/include/typelib.h
deleted file mode 100644
index 3badb14c96e..00000000000
--- a/dep/mysqllite/include/typelib.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-#ifndef _typelib_h
-#define _typelib_h
-
-#include "my_alloc.h"
-
-typedef struct st_typelib { /* Different types saved here */
- unsigned int count; /* How many types */
- const char *name; /* Name of typelib */
- const char **type_names;
- unsigned int *type_lengths;
-} TYPELIB;
-
-extern my_ulonglong find_typeset(char *x, TYPELIB *typelib,int *error_position);
-extern int find_type_or_exit(const char *x, TYPELIB *typelib,
- const char *option);
-extern int find_type(char *x, const TYPELIB *typelib, unsigned int full_name);
-extern void make_type(char *to,unsigned int nr,TYPELIB *typelib);
-extern const char *get_type(TYPELIB *typelib,unsigned int nr);
-extern TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from);
-
-extern TYPELIB sql_protocol_typelib;
-
-my_ulonglong find_set_from_flags(const TYPELIB *lib, unsigned int default_name,
- my_ulonglong cur_set, my_ulonglong default_set,
- const char *str, unsigned int length,
- char **err_pos, unsigned int *err_len);
-
-#endif /* _typelib_h */
diff --git a/dep/mysqllite/libmysql/client_settings.h b/dep/mysqllite/libmysql/client_settings.h
deleted file mode 100644
index c5a08ce1fcc..00000000000
--- a/dep/mysqllite/libmysql/client_settings.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2003-2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#ifndef CLIENT_SETTINGS_INCLUDED
-#define CLIENT_SETTINGS_INCLUDED
-#else
-#error You have already included an client_settings.h and it should not be included twice
-#endif /* CLIENT_SETTINGS_INCLUDED */
-
-extern uint mysql_port;
-extern char * mysql_unix_port;
-
-#define CLIENT_CAPABILITIES (CLIENT_LONG_PASSWORD | \
- CLIENT_LONG_FLAG | \
- CLIENT_TRANSACTIONS | \
- CLIENT_PROTOCOL_41 | \
- CLIENT_SECURE_CONNECTION | \
- CLIENT_MULTI_RESULTS | \
- CLIENT_PS_MULTI_RESULTS | \
- CLIENT_PLUGIN_AUTH)
-
-sig_handler my_pipe_sig_handler(int sig);
-void read_user_name(char *name);
-my_bool handle_local_infile(MYSQL *mysql, const char *net_filename);
-
-void mysql_read_default_options(struct st_mysql_options *options,
- const char *filename,const char *group);
-void mysql_detach_stmt_list(LIST **stmt_list, const char *func_name);
-MYSQL * STDCALL
-cli_mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
- const char *passwd, const char *db,
- uint port, const char *unix_socket,ulong client_flag);
-
-void cli_mysql_close(MYSQL *mysql);
-
-MYSQL_FIELD * cli_list_fields(MYSQL *mysql);
-my_bool cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt);
-MYSQL_DATA * cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
- uint fields);
-int cli_stmt_execute(MYSQL_STMT *stmt);
-int cli_read_binary_rows(MYSQL_STMT *stmt);
-int cli_unbuffered_fetch(MYSQL *mysql, char **row);
-const char * cli_read_statistics(MYSQL *mysql);
-int cli_read_change_user_result(MYSQL *mysql);
-
-#ifdef EMBEDDED_LIBRARY
-int init_embedded_server(int argc, char **argv, char **groups);
-void end_embedded_server();
-#endif /*EMBEDDED_LIBRARY*/
-
-C_MODE_START
-extern int mysql_init_character_set(MYSQL *mysql);
-C_MODE_END
diff --git a/dep/mysqllite/libmysql/errmsg.c b/dep/mysqllite/libmysql/errmsg.c
deleted file mode 100644
index b99b3f2de30..00000000000
--- a/dep/mysqllite/libmysql/errmsg.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2000-2004 MySQL AB
-
- This program 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.
-
- There are special exceptions to the terms and conditions of the GPL as it
- is applied to this software.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Error messages for MySQL clients */
-/* (Error messages for the daemon are in share/language/errmsg.sys) */
-
-#include <my_global.h>
-#include <my_sys.h>
-#include "errmsg.h"
-
-const char *client_errors[]=
-{
- "Unknown MySQL error",
- "Can't create UNIX socket (%d)",
- "Can't connect to local MySQL server through socket '%-.100s' (%d)",
- "Can't connect to MySQL server on '%-.100s' (%d)",
- "Can't create TCP/IP socket (%d)",
- "Unknown MySQL server host '%-.100s' (%d)",
- "MySQL server has gone away",
- "Protocol mismatch; server version = %d, client version = %d",
- "MySQL client ran out of memory",
- "Wrong host info",
- "Localhost via UNIX socket",
- "%-.100s via TCP/IP",
- "Error in server handshake",
- "Lost connection to MySQL server during query",
- "Commands out of sync; you can't run this command now",
- "Named pipe: %-.32s",
- "Can't wait for named pipe to host: %-.64s pipe: %-.32s (%lu)",
- "Can't open named pipe to host: %-.64s pipe: %-.32s (%lu)",
- "Can't set state of named pipe to host: %-.64s pipe: %-.32s (%lu)",
- "Can't initialize character set %-.32s (path: %-.100s)",
- "Got packet bigger than 'max_allowed_packet' bytes",
- "Embedded server",
- "Error on SHOW SLAVE STATUS:",
- "Error on SHOW SLAVE HOSTS:",
- "Error connecting to slave:",
- "Error connecting to master:",
- "SSL connection error",
- "Malformed packet",
- "This client library is licensed only for use with MySQL servers having '%s' license",
- "Invalid use of null pointer",
- "Statement not prepared",
- "No data supplied for parameters in prepared statement",
- "Data truncated",
- "No parameters exist in the statement",
- "Invalid parameter number",
- "Can't send long data for non-string/non-binary data types (parameter: %d)",
- "Using unsupported buffer type: %d (parameter: %d)",
- "Shared memory: %-.100s",
- "Can't open shared memory; client could not create request event (%lu)",
- "Can't open shared memory; no answer event received from server (%lu)",
- "Can't open shared memory; server could not allocate file mapping (%lu)",
- "Can't open shared memory; server could not get pointer to file mapping (%lu)",
- "Can't open shared memory; client could not allocate file mapping (%lu)",
- "Can't open shared memory; client could not get pointer to file mapping (%lu)",
- "Can't open shared memory; client could not create %s event (%lu)",
- "Can't open shared memory; no answer from server (%lu)",
- "Can't open shared memory; cannot send request event to server (%lu)",
- "Wrong or unknown protocol",
- "Invalid connection handle",
- "Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)",
- "Row retrieval was canceled by mysql_stmt_close() call",
- "Attempt to read column without prior row fetch",
- "Prepared statement contains no metadata",
- "Attempt to read a row while there is no result set associated with the statement",
- "This feature is not implemented yet",
- "Lost connection to MySQL server at '%s', system error: %d",
- "Statement closed indirectly because of a preceeding %s() call",
- "The number of columns in the result set differs from the number of bound buffers. You must reset the statement, rebind the result set columns, and execute the statement again",
- "This handle is already connected. Use a separate handle for each connection.",
- "Authentication plugin '%s' cannot be loaded: %s",
- ""
-};
-
-const char** get_client_errmsgs()
-{
- return client_errors;
-}
-
-/*
- Register client error messages for use with my_error().
-
- SYNOPSIS
- init_client_errs()
-
- RETURN
- void
-*/
-
-void init_client_errs(void)
-{
- (void) my_error_register(get_client_errmsgs, CR_ERROR_FIRST, CR_ERROR_LAST);
-}
-
-
-/*
- Unregister client error messages.
-
- SYNOPSIS
- finish_client_errs()
-
- RETURN
- void
-*/
-
-void finish_client_errs(void)
-{
- (void) my_error_unregister(CR_ERROR_FIRST, CR_ERROR_LAST);
-}
diff --git a/dep/mysqllite/libmysql/get_password.c b/dep/mysqllite/libmysql/get_password.c
deleted file mode 100644
index 455b4b3c8f1..00000000000
--- a/dep/mysqllite/libmysql/get_password.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright (C) 2000-2004 MySQL AB
-
- This program 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.
-
- There are special exceptions to the terms and conditions of the GPL as it
- is applied to this software.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
-** Ask for a password from tty
-** This is an own file to avoid conflicts with curses
-*/
-#include <my_global.h>
-#include <my_sys.h>
-#include "mysql.h"
-#include <m_string.h>
-#include <m_ctype.h>
-
-#if defined(HAVE_BROKEN_GETPASS) && !defined(HAVE_GETPASSPHRASE)
-#undef HAVE_GETPASS
-#endif
-
-#ifdef HAVE_GETPASS
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif /* HAVE_PWD_H */
-#else /* ! HAVE_GETPASS */
-#if !defined(__WIN__)
-#include <sys/ioctl.h>
-#ifdef HAVE_TERMIOS_H /* For tty-password */
-#include <termios.h>
-#define TERMIO struct termios
-#else
-#ifdef HAVE_TERMIO_H /* For tty-password */
-#include <termio.h>
-#define TERMIO struct termio
-#else
-#include <sgtty.h>
-#define TERMIO struct sgttyb
-#endif
-#endif
-#ifdef alpha_linux_port
-#include <asm/ioctls.h> /* QQ; Fix this in configure */
-#include <asm/termiobits.h>
-#endif
-#else
-#include <conio.h>
-#endif /* __WIN__ */
-#endif /* HAVE_GETPASS */
-
-#ifdef HAVE_GETPASSPHRASE /* For Solaris */
-#define getpass(A) getpassphrase(A)
-#endif
-
-#if defined(__WIN__)
-/* were just going to fake it here and get input from the keyboard */
-char *get_tty_password(const char *opt_message)
-{
- char to[80];
- char *pos=to,*end=to+sizeof(to)-1;
- int i=0;
- DBUG_ENTER("get_tty_password");
- _cputs(opt_message ? opt_message : "Enter password: ");
- for (;;)
- {
- char tmp;
- tmp=_getch();
- if (tmp == '\b' || (int) tmp == 127)
- {
- if (pos != to)
- {
- _cputs("\b \b");
- pos--;
- continue;
- }
- }
- if (tmp == '\n' || tmp == '\r' || tmp == 3)
- break;
- if (iscntrl(tmp) || pos == end)
- continue;
- _cputs("*");
- *(pos++) = tmp;
- }
- while (pos != to && isspace(pos[-1]) == ' ')
- pos--; /* Allow dummy space at end */
- *pos=0;
- _cputs("\n");
- DBUG_RETURN(my_strdup(to,MYF(MY_FAE)));
-}
-
-#else
-
-#ifndef HAVE_GETPASS
-/*
- Can't use fgets, because readline will get confused
- length is max number of chars in to, not counting \0
- to will not include the eol characters.
-*/
-
-static void get_password(char *to,uint length,int fd, my_bool echo)
-{
- char *pos=to,*end=to+length;
-
- for (;;)
- {
- char tmp;
- if (my_read(fd,&tmp,1,MYF(0)) != 1)
- break;
- if (tmp == '\b' || (int) tmp == 127)
- {
- if (pos != to)
- {
- if (echo)
- {
- fputs("\b \b",stdout);
- fflush(stdout);
- }
- pos--;
- continue;
- }
- }
- if (tmp == '\n' || tmp == '\r' || tmp == 3)
- break;
- if (iscntrl(tmp) || pos == end)
- continue;
- if (echo)
- {
- fputc('*',stdout);
- fflush(stdout);
- }
- *(pos++) = tmp;
- }
- while (pos != to && isspace(pos[-1]) == ' ')
- pos--; /* Allow dummy space at end */
- *pos=0;
- return;
-}
-#endif /* ! HAVE_GETPASS */
-
-
-char *get_tty_password(const char *opt_message)
-{
-#ifdef HAVE_GETPASS
- char *passbuff;
-#else /* ! HAVE_GETPASS */
- TERMIO org,tmp;
-#endif /* HAVE_GETPASS */
- char buff[80];
-
- DBUG_ENTER("get_tty_password");
-
-#ifdef HAVE_GETPASS
- passbuff = getpass(opt_message ? opt_message : "Enter password: ");
-
- /* copy the password to buff and clear original (static) buffer */
- strnmov(buff, passbuff, sizeof(buff) - 1);
-#ifdef _PASSWORD_LEN
- memset(passbuff, 0, _PASSWORD_LEN);
-#endif
-#else
- if (isatty(fileno(stdout)))
- {
- fputs(opt_message ? opt_message : "Enter password: ",stdout);
- fflush(stdout);
- }
-#if defined(HAVE_TERMIOS_H)
- tcgetattr(fileno(stdin), &org);
- tmp = org;
- tmp.c_lflag &= ~(ECHO | ISIG | ICANON);
- tmp.c_cc[VMIN] = 1;
- tmp.c_cc[VTIME] = 0;
- tcsetattr(fileno(stdin), TCSADRAIN, &tmp);
- get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stdout)));
- tcsetattr(fileno(stdin), TCSADRAIN, &org);
-#elif defined(HAVE_TERMIO_H)
- ioctl(fileno(stdin), (int) TCGETA, &org);
- tmp=org;
- tmp.c_lflag &= ~(ECHO | ISIG | ICANON);
- tmp.c_cc[VMIN] = 1;
- tmp.c_cc[VTIME]= 0;
- ioctl(fileno(stdin),(int) TCSETA, &tmp);
- get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
- ioctl(fileno(stdin),(int) TCSETA, &org);
-#else
- gtty(fileno(stdin), &org);
- tmp=org;
- tmp.sg_flags &= ~ECHO;
- tmp.sg_flags |= RAW;
- stty(fileno(stdin), &tmp);
- get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
- stty(fileno(stdin), &org);
-#endif
- if (isatty(fileno(stdout)))
- fputc('\n',stdout);
-#endif /* HAVE_GETPASS */
-
- DBUG_RETURN(my_strdup(buff,MYF(MY_FAE)));
-}
-#endif /*__WIN__*/
diff --git a/dep/mysqllite/libmysql/libmysql.c b/dep/mysqllite/libmysql/libmysql.c
deleted file mode 100644
index 3af9165de8c..00000000000
--- a/dep/mysqllite/libmysql/libmysql.c
+++ /dev/null
@@ -1,4832 +0,0 @@
-/* Copyright (C) 2000-2004 MySQL AB
-
- This program 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.
-
- There are special exceptions to the terms and conditions of the GPL as it
- is applied to this software.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <my_sys.h>
-#include <my_time.h>
-#include <mysys_err.h>
-#include <m_string.h>
-#include <m_ctype.h>
-#include "mysql.h"
-#include "mysql_version.h"
-#include "mysqld_error.h"
-#include "errmsg.h"
-#include <violite.h>
-#include <sys/stat.h>
-#include <signal.h>
-#include <time.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#if !defined(__WIN__)
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#ifdef HAVE_SELECT_H
-#include <select.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif /* !defined(__WIN__) */
-#ifdef HAVE_POLL
-#include <sys/poll.h>
-#endif
-#ifdef HAVE_SYS_UN_H
-#include <sys/un.h>
-#endif
-#if !defined(__WIN__)
-#include <my_pthread.h> /* because of signal() */
-#endif
-#ifndef INADDR_NONE
-#define INADDR_NONE -1
-#endif
-
-#include <sql_common.h>
-#include "client_settings.h"
-
-#undef net_buffer_length
-#undef max_allowed_packet
-
-ulong net_buffer_length=8192;
-ulong max_allowed_packet= 1024L*1024L*1024L;
-
-
-#ifdef EMBEDDED_LIBRARY
-#undef net_flush
-my_bool net_flush(NET *net);
-#endif
-
-#if defined(__WIN__)
-/* socket_errno is defined in my_global.h for all platforms */
-#define perror(A)
-#else
-#include <errno.h>
-#define SOCKET_ERROR -1
-#endif /* __WIN__ */
-
-/*
- If allowed through some configuration, then this needs to
- be changed
-*/
-#define MAX_LONG_DATA_LENGTH 8192
-#define unsigned_field(A) ((A)->flags & UNSIGNED_FLAG)
-
-static void append_wild(char *to,char *end,const char *wild);
-sig_handler my_pipe_sig_handler(int sig);
-
-static my_bool mysql_client_init= 0;
-static my_bool org_my_init_done= 0;
-
-
-/*
- Initialize the MySQL client library
-
- SYNOPSIS
- mysql_server_init()
-
- NOTES
- Should be called before doing any other calls to the MySQL
- client library to initialize thread specific variables etc.
- It's called by mysql_init() to ensure that things will work for
- old not threaded applications that doesn't call mysql_server_init()
- directly.
-
- RETURN
- 0 ok
- 1 could not initialize environment (out of memory or thread keys)
-*/
-
-int STDCALL mysql_server_init(int argc __attribute__((unused)),
- char **argv __attribute__((unused)),
- char **groups __attribute__((unused)))
-{
- int result= 0;
- if (!mysql_client_init)
- {
- mysql_client_init=1;
- org_my_init_done=my_init_done;
- if (my_init()) /* Will init threads */
- return 1;
- init_client_errs();
- if (mysql_client_plugin_init())
- return 1;
- if (!mysql_port)
- {
- char *env;
- struct servent *serv_ptr __attribute__((unused));
-
- mysql_port = MYSQL_PORT;
-
- /*
- if builder specifically requested a default port, use that
- (even if it coincides with our factory default).
- only if they didn't do we check /etc/services (and, failing
- on that, fall back to the factory default of 3306).
- either default can be overridden by the environment variable
- MYSQL_TCP_PORT, which in turn can be overridden with command
- line options.
- */
-
-#if MYSQL_PORT_DEFAULT == 0
- if ((serv_ptr= getservbyname("mysql", "tcp")))
- mysql_port= (uint) ntohs((ushort) serv_ptr->s_port);
-#endif
- if ((env= getenv("MYSQL_TCP_PORT")))
- mysql_port=(uint) atoi(env);
- }
-
- if (!mysql_unix_port)
- {
- char *env;
-#ifdef __WIN__
- mysql_unix_port = (char*) MYSQL_NAMEDPIPE;
-#else
- mysql_unix_port = (char*) MYSQL_UNIX_ADDR;
-#endif
- if ((env = getenv("MYSQL_UNIX_PORT")))
- mysql_unix_port = env;
- }
- mysql_debug(NullS);
-#if defined(SIGPIPE) && !defined(__WIN__)
- (void) signal(SIGPIPE, SIG_IGN);
-#endif
-#ifdef EMBEDDED_LIBRARY
- if (argc > -1)
- result= init_embedded_server(argc, argv, groups);
-#endif
- }
- else
- result= (int)my_thread_init(); /* Init if new thread */
- return result;
-}
-
-
-/*
- Free all memory and resources used by the client library
-
- NOTES
- When calling this there should not be any other threads using
- the library.
-
- To make things simpler when used with windows dll's (which calls this
- function automaticly), it's safe to call this function multiple times.
-*/
-
-
-void STDCALL mysql_server_end()
-{
- if (!mysql_client_init)
- return;
-
- mysql_client_plugin_deinit();
-
-#ifdef EMBEDDED_LIBRARY
- end_embedded_server();
-#endif
- finish_client_errs();
- vio_end();
-
- /* If library called my_init(), free memory allocated by it */
- if (!org_my_init_done)
- {
- my_end(0);
- }
- else
- {
- free_charsets();
- mysql_thread_end();
- }
-
- mysql_client_init= org_my_init_done= 0;
-}
-
-static MYSQL_PARAMETERS mysql_internal_parameters=
-{&max_allowed_packet, &net_buffer_length, 0};
-
-MYSQL_PARAMETERS *STDCALL mysql_get_parameters(void)
-{
- return &mysql_internal_parameters;
-}
-
-my_bool STDCALL mysql_thread_init()
-{
- return my_thread_init();
-}
-
-void STDCALL mysql_thread_end()
-{
- my_thread_end();
-}
-
-
-/*
- Expand wildcard to a sql string
-*/
-
-static void
-append_wild(char *to, char *end, const char *wild)
-{
- end-=5; /* Some extra */
- if (wild && wild[0])
- {
- to=strmov(to," like '");
- while (*wild && to < end)
- {
- if (*wild == '\\' || *wild == '\'')
- *to++='\\';
- *to++= *wild++;
- }
- if (*wild) /* Too small buffer */
- *to++='%'; /* Nicer this way */
- to[0]='\'';
- to[1]=0;
- }
-}
-
-
-/**************************************************************************
- Init debugging if MYSQL_DEBUG environment variable is found
-**************************************************************************/
-
-void STDCALL
-mysql_debug(const char *debug __attribute__((unused)))
-{
-#ifndef DBUG_OFF
- char *env;
- if (debug)
- {
- DBUG_PUSH(debug);
- }
- else if ((env = getenv("MYSQL_DEBUG")))
- {
- DBUG_PUSH(env);
-#if !defined(_WINVER) && !defined(WINVER)
- puts("\n-------------------------------------------------------");
- puts("MYSQL_DEBUG found. libmysql started with the following:");
- puts(env);
- puts("-------------------------------------------------------\n");
-#else
- {
- char buff[80];
- buff[sizeof(buff)-1]= 0;
- strxnmov(buff,sizeof(buff)-1,"libmysql: ", env, NullS);
- MessageBox((HWND) 0,"Debugging variable MYSQL_DEBUG used",buff,MB_OK);
- }
-#endif
- }
-#endif
-}
-
-
-/**************************************************************************
- Ignore SIGPIPE handler
- ARGSUSED
-**************************************************************************/
-
-sig_handler
-my_pipe_sig_handler(int sig __attribute__((unused)))
-{
- DBUG_PRINT("info",("Hit by signal %d",sig));
-#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
- (void) signal(SIGPIPE, my_pipe_sig_handler);
-#endif
-}
-
-
-/**************************************************************************
- Connect to sql server
- If host == 0 then use localhost
-**************************************************************************/
-
-#ifdef USE_OLD_FUNCTIONS
-MYSQL * STDCALL
-mysql_connect(MYSQL *mysql,const char *host,
- const char *user, const char *passwd)
-{
- MYSQL *res;
- mysql=mysql_init(mysql); /* Make it thread safe */
- {
- DBUG_ENTER("mysql_connect");
- if (!(res=mysql_real_connect(mysql,host,user,passwd,NullS,0,NullS,0)))
- {
- if (mysql->free_me)
- my_free(mysql);
- }
- mysql->reconnect= 1;
- DBUG_RETURN(res);
- }
-}
-#endif
-
-
-/**************************************************************************
- Change user and database
-**************************************************************************/
-
-my_bool STDCALL mysql_change_user(MYSQL *mysql, const char *user,
- const char *passwd, const char *db)
-{
- int rc;
- CHARSET_INFO *saved_cs= mysql->charset;
- char *saved_user= mysql->user;
- char *saved_passwd= mysql->passwd;
- char *saved_db= mysql->db;
-
- DBUG_ENTER("mysql_change_user");
-
- /* Get the connection-default character set. */
-
- if (mysql_init_character_set(mysql))
- {
- mysql->charset= saved_cs;
- DBUG_RETURN(TRUE);
- }
-
- /* Use an empty string instead of NULL. */
-
- mysql->user= (char*)(user ? user : "");
- mysql->passwd= (char*)(passwd ? passwd : "");
- mysql->db= 0;
-
- rc= run_plugin_auth(mysql, 0, 0, 0, db);
-
- /*
- The server will close all statements no matter was the attempt
- to change user successful or not.
- */
- mysql_detach_stmt_list(&mysql->stmts, "mysql_change_user");
- if (rc == 0)
- {
- /* Free old connect information */
- my_free(saved_user);
- my_free(saved_passwd);
- my_free(saved_db);
-
- /* alloc new connect information */
- mysql->user= my_strdup(mysql->user, MYF(MY_WME));
- mysql->passwd= my_strdup(mysql->passwd, MYF(MY_WME));
- mysql->db= db ? my_strdup(db, MYF(MY_WME)) : 0;
- }
- else
- {
- mysql->charset= saved_cs;
- mysql->user= saved_user;
- mysql->passwd= saved_passwd;
- mysql->db= saved_db;
- }
-
- DBUG_RETURN(rc);
-}
-
-#if defined(HAVE_GETPWUID) && defined(NO_GETPWUID_DECL)
-struct passwd *getpwuid(uid_t);
-char* getlogin(void);
-#endif
-
-#if !defined(__WIN__)
-
-void read_user_name(char *name)
-{
- DBUG_ENTER("read_user_name");
- if (geteuid() == 0)
- (void) strmov(name,"root"); /* allow use of surun */
- else
- {
-#ifdef HAVE_GETPWUID
- struct passwd *skr;
- const char *str;
- if ((str=getlogin()) == NULL)
- {
- if ((skr=getpwuid(geteuid())) != NULL)
- str=skr->pw_name;
- else if (!(str=getenv("USER")) && !(str=getenv("LOGNAME")) &&
- !(str=getenv("LOGIN")))
- str="UNKNOWN_USER";
- }
- (void) strmake(name,str,USERNAME_LENGTH);
-#elif HAVE_CUSERID
- (void) cuserid(name);
-#else
- strmov(name,"UNKNOWN_USER");
-#endif
- }
- DBUG_VOID_RETURN;
-}
-
-#else /* If Windows */
-
-void read_user_name(char *name)
-{
- char *str=getenv("USER"); /* ODBC will send user variable */
- strmake(name,str ? str : "ODBC", USERNAME_LENGTH);
-}
-
-#endif
-
-my_bool handle_local_infile(MYSQL *mysql, const char *net_filename)
-{
- my_bool result= 1;
- uint packet_length=MY_ALIGN(mysql->net.max_packet-16,IO_SIZE);
- NET *net= &mysql->net;
- int readcount;
- void *li_ptr; /* pass state to local_infile functions */
- char *buf; /* buffer to be filled by local_infile_read */
- struct st_mysql_options *options= &mysql->options;
- DBUG_ENTER("handle_local_infile");
-
- /* check that we've got valid callback functions */
- if (!(options->local_infile_init &&
- options->local_infile_read &&
- options->local_infile_end &&
- options->local_infile_error))
- {
- /* if any of the functions is invalid, set the default */
- mysql_set_local_infile_default(mysql);
- }
-
- /* copy filename into local memory and allocate read buffer */
- if (!(buf=my_malloc(packet_length, MYF(0))))
- {
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- DBUG_RETURN(1);
- }
-
- /* initialize local infile (open file, usually) */
- if ((*options->local_infile_init)(&li_ptr, net_filename,
- options->local_infile_userdata))
- {
- (void) my_net_write(net,(const uchar*) "",0); /* Server needs one packet */
- net_flush(net);
- strmov(net->sqlstate, unknown_sqlstate);
- net->last_errno=
- (*options->local_infile_error)(li_ptr,
- net->last_error,
- sizeof(net->last_error)-1);
- goto err;
- }
-
- /* read blocks of data from local infile callback */
- while ((readcount =
- (*options->local_infile_read)(li_ptr, buf,
- packet_length)) > 0)
- {
- if (my_net_write(net, (uchar*) buf, readcount))
- {
- DBUG_PRINT("error",
- ("Lost connection to MySQL server during LOAD DATA of local file"));
- set_mysql_error(mysql, CR_SERVER_LOST, unknown_sqlstate);
- goto err;
- }
- }
-
- /* Send empty packet to mark end of file */
- if (my_net_write(net, (const uchar*) "", 0) || net_flush(net))
- {
- set_mysql_error(mysql, CR_SERVER_LOST, unknown_sqlstate);
- goto err;
- }
-
- if (readcount < 0)
- {
- net->last_errno=
- (*options->local_infile_error)(li_ptr,
- net->last_error,
- sizeof(net->last_error)-1);
- goto err;
- }
-
- result=0; /* Ok */
-
-err:
- /* free up memory allocated with _init, usually */
- (*options->local_infile_end)(li_ptr);
- my_free(buf);
- DBUG_RETURN(result);
-}
-
-
-/****************************************************************************
- Default handlers for LOAD LOCAL INFILE
-****************************************************************************/
-
-typedef struct st_default_local_infile
-{
- int fd;
- int error_num;
- const char *filename;
- char error_msg[LOCAL_INFILE_ERROR_LEN];
-} default_local_infile_data;
-
-
-/*
- Open file for LOAD LOCAL INFILE
-
- SYNOPSIS
- default_local_infile_init()
- ptr Store pointer to internal data here
- filename File name to open. This may be in unix format !
-
-
- NOTES
- Even if this function returns an error, the load data interface
- guarantees that default_local_infile_end() is called.
-
- RETURN
- 0 ok
- 1 error
-*/
-
-static int default_local_infile_init(void **ptr, const char *filename,
- void *userdata __attribute__ ((unused)))
-{
- default_local_infile_data *data;
- char tmp_name[FN_REFLEN];
-
- if (!(*ptr= data= ((default_local_infile_data *)
- my_malloc(sizeof(default_local_infile_data), MYF(0)))))
- return 1; /* out of memory */
-
- data->error_msg[0]= 0;
- data->error_num= 0;
- data->filename= filename;
-
- fn_format(tmp_name, filename, "", "", MY_UNPACK_FILENAME);
- if ((data->fd = my_open(tmp_name, O_RDONLY, MYF(0))) < 0)
- {
- data->error_num= my_errno;
- my_snprintf(data->error_msg, sizeof(data->error_msg)-1,
- EE(EE_FILENOTFOUND), tmp_name, data->error_num);
- return 1;
- }
- return 0; /* ok */
-}
-
-
-/*
- Read data for LOAD LOCAL INFILE
-
- SYNOPSIS
- default_local_infile_read()
- ptr Points to handle allocated by _init
- buf Read data here
- buf_len Ammount of data to read
-
- RETURN
- > 0 number of bytes read
- == 0 End of data
- < 0 Error
-*/
-
-static int default_local_infile_read(void *ptr, char *buf, uint buf_len)
-{
- int count;
- default_local_infile_data*data = (default_local_infile_data *) ptr;
-
- if ((count= (int) my_read(data->fd, (uchar *) buf, buf_len, MYF(0))) < 0)
- {
- data->error_num= EE_READ; /* the errmsg for not entire file read */
- my_snprintf(data->error_msg, sizeof(data->error_msg)-1,
- EE(EE_READ),
- data->filename, my_errno);
- }
- return count;
-}
-
-
-/*
- Read data for LOAD LOCAL INFILE
-
- SYNOPSIS
- default_local_infile_end()
- ptr Points to handle allocated by _init
- May be NULL if _init failed!
-
- RETURN
-*/
-
-static void default_local_infile_end(void *ptr)
-{
- default_local_infile_data *data= (default_local_infile_data *) ptr;
- if (data) /* If not error on open */
- {
- if (data->fd >= 0)
- my_close(data->fd, MYF(MY_WME));
- my_free(ptr);
- }
-}
-
-
-/*
- Return error from LOAD LOCAL INFILE
-
- SYNOPSIS
- default_local_infile_end()
- ptr Points to handle allocated by _init
- May be NULL if _init failed!
- error_msg Store error text here
- error_msg_len Max lenght of error_msg
-
- RETURN
- error message number
-*/
-
-static int
-default_local_infile_error(void *ptr, char *error_msg, uint error_msg_len)
-{
- default_local_infile_data *data = (default_local_infile_data *) ptr;
- if (data) /* If not error on open */
- {
- strmake(error_msg, data->error_msg, error_msg_len);
- return data->error_num;
- }
- /* This can only happen if we got error on malloc of handle */
- strmov(error_msg, ER(CR_OUT_OF_MEMORY));
- return CR_OUT_OF_MEMORY;
-}
-
-
-void
-mysql_set_local_infile_handler(MYSQL *mysql,
- int (*local_infile_init)(void **, const char *,
- void *),
- int (*local_infile_read)(void *, char *, uint),
- void (*local_infile_end)(void *),
- int (*local_infile_error)(void *, char *, uint),
- void *userdata)
-{
- mysql->options.local_infile_init= local_infile_init;
- mysql->options.local_infile_read= local_infile_read;
- mysql->options.local_infile_end= local_infile_end;
- mysql->options.local_infile_error= local_infile_error;
- mysql->options.local_infile_userdata = userdata;
-}
-
-
-void mysql_set_local_infile_default(MYSQL *mysql)
-{
- mysql->options.local_infile_init= default_local_infile_init;
- mysql->options.local_infile_read= default_local_infile_read;
- mysql->options.local_infile_end= default_local_infile_end;
- mysql->options.local_infile_error= default_local_infile_error;
-}
-
-
-/**************************************************************************
- Do a query. If query returned rows, free old rows.
- Read data by mysql_store_result or by repeat call of mysql_fetch_row
-**************************************************************************/
-
-int STDCALL
-mysql_query(MYSQL *mysql, const char *query)
-{
- return mysql_real_query(mysql,query, (uint) strlen(query));
-}
-
-
-/**************************************************************************
- Return next field of the query results
-**************************************************************************/
-
-MYSQL_FIELD * STDCALL
-mysql_fetch_field(MYSQL_RES *result)
-{
- if (result->current_field >= result->field_count)
- return(NULL);
- return &result->fields[result->current_field++];
-}
-
-
-/**************************************************************************
- Move to a specific row and column
-**************************************************************************/
-
-void STDCALL
-mysql_data_seek(MYSQL_RES *result, my_ulonglong row)
-{
- MYSQL_ROWS *tmp=0;
- DBUG_PRINT("info",("mysql_data_seek(%ld)",(long) row));
- if (result->data)
- for (tmp=result->data->data; row-- && tmp ; tmp = tmp->next) ;
- result->current_row=0;
- result->data_cursor = tmp;
-}
-
-
-/*************************************************************************
- put the row or field cursor one a position one got from mysql_row_tell()
- This doesn't restore any data. The next mysql_fetch_row or
- mysql_fetch_field will return the next row or field after the last used
-*************************************************************************/
-
-MYSQL_ROW_OFFSET STDCALL
-mysql_row_seek(MYSQL_RES *result, MYSQL_ROW_OFFSET row)
-{
- MYSQL_ROW_OFFSET return_value=result->data_cursor;
- result->current_row= 0;
- result->data_cursor= row;
- return return_value;
-}
-
-
-MYSQL_FIELD_OFFSET STDCALL
-mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET field_offset)
-{
- MYSQL_FIELD_OFFSET return_value=result->current_field;
- result->current_field=field_offset;
- return return_value;
-}
-
-
-/*****************************************************************************
- List all databases
-*****************************************************************************/
-
-MYSQL_RES * STDCALL
-mysql_list_dbs(MYSQL *mysql, const char *wild)
-{
- char buff[255];
- DBUG_ENTER("mysql_list_dbs");
-
- append_wild(strmov(buff,"show databases"),buff+sizeof(buff),wild);
- if (mysql_query(mysql,buff))
- DBUG_RETURN(0);
- DBUG_RETURN (mysql_store_result(mysql));
-}
-
-
-/*****************************************************************************
- List all tables in a database
- If wild is given then only the tables matching wild is returned
-*****************************************************************************/
-
-MYSQL_RES * STDCALL
-mysql_list_tables(MYSQL *mysql, const char *wild)
-{
- char buff[255];
- DBUG_ENTER("mysql_list_tables");
-
- append_wild(strmov(buff,"show tables"),buff+sizeof(buff),wild);
- if (mysql_query(mysql,buff))
- DBUG_RETURN(0);
- DBUG_RETURN (mysql_store_result(mysql));
-}
-
-
-MYSQL_FIELD *cli_list_fields(MYSQL *mysql)
-{
- MYSQL_DATA *query;
- if (!(query= cli_read_rows(mysql,(MYSQL_FIELD*) 0,
- protocol_41(mysql) ? 8 : 6)))
- return NULL;
-
- mysql->field_count= (uint) query->rows;
- return unpack_fields(query,&mysql->field_alloc,
- mysql->field_count, 1, mysql->server_capabilities);
-}
-
-
-/**************************************************************************
- List all fields in a table
- If wild is given then only the fields matching wild is returned
- Instead of this use query:
- show fields in 'table' like "wild"
-**************************************************************************/
-
-MYSQL_RES * STDCALL
-mysql_list_fields(MYSQL *mysql, const char *table, const char *wild)
-{
- MYSQL_RES *result;
- MYSQL_FIELD *fields;
- char buff[258],*end;
- DBUG_ENTER("mysql_list_fields");
- DBUG_PRINT("enter",("table: '%s' wild: '%s'",table,wild ? wild : ""));
-
- end=strmake(strmake(buff, table,128)+1,wild ? wild : "",128);
- free_old_query(mysql);
- if (simple_command(mysql, COM_FIELD_LIST, (uchar*) buff,
- (ulong) (end-buff), 1) ||
- !(fields= (*mysql->methods->list_fields)(mysql)))
- DBUG_RETURN(NULL);
-
- if (!(result = (MYSQL_RES *) my_malloc(sizeof(MYSQL_RES),
- MYF(MY_WME | MY_ZEROFILL))))
- DBUG_RETURN(NULL);
-
- result->methods= mysql->methods;
- result->field_alloc=mysql->field_alloc;
- mysql->fields=0;
- result->field_count = mysql->field_count;
- result->fields= fields;
- result->eof=1;
- DBUG_RETURN(result);
-}
-
-/* List all running processes (threads) in server */
-
-MYSQL_RES * STDCALL
-mysql_list_processes(MYSQL *mysql)
-{
- MYSQL_DATA *fields;
- uint field_count;
- uchar *pos;
- DBUG_ENTER("mysql_list_processes");
-
- LINT_INIT(fields);
- if (simple_command(mysql,COM_PROCESS_INFO,0,0,0))
- DBUG_RETURN(0);
- free_old_query(mysql);
- pos=(uchar*) mysql->net.read_pos;
- field_count=(uint) net_field_length(&pos);
- if (!(fields = (*mysql->methods->read_rows)(mysql,(MYSQL_FIELD*) 0,
- protocol_41(mysql) ? 7 : 5)))
- DBUG_RETURN(NULL);
- if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,field_count,0,
- mysql->server_capabilities)))
- DBUG_RETURN(0);
- mysql->status=MYSQL_STATUS_GET_RESULT;
- mysql->field_count=field_count;
- DBUG_RETURN(mysql_store_result(mysql));
-}
-
-
-#ifdef USE_OLD_FUNCTIONS
-int STDCALL
-mysql_create_db(MYSQL *mysql, const char *db)
-{
- DBUG_ENTER("mysql_createdb");
- DBUG_PRINT("enter",("db: %s",db));
- DBUG_RETURN(simple_command(mysql,COM_CREATE_DB,db, (ulong) strlen(db),0));
-}
-
-
-int STDCALL
-mysql_drop_db(MYSQL *mysql, const char *db)
-{
- DBUG_ENTER("mysql_drop_db");
- DBUG_PRINT("enter",("db: %s",db));
- DBUG_RETURN(simple_command(mysql,COM_DROP_DB,db,(ulong) strlen(db),0));
-}
-#endif
-
-
-int STDCALL
-mysql_shutdown(MYSQL *mysql, enum mysql_enum_shutdown_level shutdown_level)
-{
- uchar level[1];
- DBUG_ENTER("mysql_shutdown");
- level[0]= (uchar) shutdown_level;
- DBUG_RETURN(simple_command(mysql, COM_SHUTDOWN, level, 1, 0));
-}
-
-
-int STDCALL
-mysql_refresh(MYSQL *mysql,uint options)
-{
- uchar bits[1];
- DBUG_ENTER("mysql_refresh");
- bits[0]= (uchar) options;
- DBUG_RETURN(simple_command(mysql, COM_REFRESH, bits, 1, 0));
-}
-
-
-int STDCALL
-mysql_kill(MYSQL *mysql,ulong pid)
-{
- uchar buff[4];
- DBUG_ENTER("mysql_kill");
- int4store(buff,pid);
- DBUG_RETURN(simple_command(mysql,COM_PROCESS_KILL,buff,sizeof(buff),0));
-}
-
-
-int STDCALL
-mysql_set_server_option(MYSQL *mysql, enum enum_mysql_set_option option)
-{
- uchar buff[2];
- DBUG_ENTER("mysql_set_server_option");
- int2store(buff, (uint) option);
- DBUG_RETURN(simple_command(mysql, COM_SET_OPTION, buff, sizeof(buff), 0));
-}
-
-
-int STDCALL
-mysql_dump_debug_info(MYSQL *mysql)
-{
- DBUG_ENTER("mysql_dump_debug_info");
- DBUG_RETURN(simple_command(mysql,COM_DEBUG,0,0,0));
-}
-
-
-const char *cli_read_statistics(MYSQL *mysql)
-{
- mysql->net.read_pos[mysql->packet_length]=0; /* End of stat string */
- if (!mysql->net.read_pos[0])
- {
- set_mysql_error(mysql, CR_WRONG_HOST_INFO, unknown_sqlstate);
- return mysql->net.last_error;
- }
- return (char*) mysql->net.read_pos;
-}
-
-
-const char * STDCALL
-mysql_stat(MYSQL *mysql)
-{
- DBUG_ENTER("mysql_stat");
- if (simple_command(mysql,COM_STATISTICS,0,0,0))
- DBUG_RETURN(mysql->net.last_error);
- DBUG_RETURN((*mysql->methods->read_statistics)(mysql));
-}
-
-
-int STDCALL
-mysql_ping(MYSQL *mysql)
-{
- int res;
- DBUG_ENTER("mysql_ping");
- res= simple_command(mysql,COM_PING,0,0,0);
- if (res == CR_SERVER_LOST && mysql->reconnect)
- res= simple_command(mysql,COM_PING,0,0,0);
- DBUG_RETURN(res);
-}
-
-
-const char * STDCALL
-mysql_get_server_info(MYSQL *mysql)
-{
- return((char*) mysql->server_version);
-}
-
-
-const char * STDCALL
-mysql_get_host_info(MYSQL *mysql)
-{
- return(mysql->host_info);
-}
-
-
-uint STDCALL
-mysql_get_proto_info(MYSQL *mysql)
-{
- return (mysql->protocol_version);
-}
-
-const char * STDCALL
-mysql_get_client_info(void)
-{
- return (char*) MYSQL_SERVER_VERSION;
-}
-
-ulong STDCALL mysql_get_client_version(void)
-{
- return MYSQL_VERSION_ID;
-}
-
-my_bool STDCALL mysql_eof(MYSQL_RES *res)
-{
- return res->eof;
-}
-
-MYSQL_FIELD * STDCALL mysql_fetch_field_direct(MYSQL_RES *res,uint fieldnr)
-{
- return &(res)->fields[fieldnr];
-}
-
-MYSQL_FIELD * STDCALL mysql_fetch_fields(MYSQL_RES *res)
-{
- return (res)->fields;
-}
-
-MYSQL_ROW_OFFSET STDCALL mysql_row_tell(MYSQL_RES *res)
-{
- return res->data_cursor;
-}
-
-MYSQL_FIELD_OFFSET STDCALL mysql_field_tell(MYSQL_RES *res)
-{
- return (res)->current_field;
-}
-
-/* MYSQL */
-
-unsigned int STDCALL mysql_field_count(MYSQL *mysql)
-{
- return mysql->field_count;
-}
-
-my_ulonglong STDCALL mysql_affected_rows(MYSQL *mysql)
-{
- return mysql->affected_rows;
-}
-
-my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
-{
- return mysql->insert_id;
-}
-
-const char *STDCALL mysql_sqlstate(MYSQL *mysql)
-{
- return mysql ? mysql->net.sqlstate : cant_connect_sqlstate;
-}
-
-uint STDCALL mysql_warning_count(MYSQL *mysql)
-{
- return mysql->warning_count;
-}
-
-const char *STDCALL mysql_info(MYSQL *mysql)
-{
- return mysql->info;
-}
-
-ulong STDCALL mysql_thread_id(MYSQL *mysql)
-{
- return (mysql)->thread_id;
-}
-
-const char * STDCALL mysql_character_set_name(MYSQL *mysql)
-{
- return mysql->charset->csname;
-}
-
-void STDCALL mysql_get_character_set_info(MYSQL *mysql, MY_CHARSET_INFO *csinfo)
-{
- csinfo->number = mysql->charset->number;
- csinfo->state = mysql->charset->state;
- csinfo->csname = mysql->charset->csname;
- csinfo->name = mysql->charset->name;
- csinfo->comment = mysql->charset->comment;
- csinfo->mbminlen = mysql->charset->mbminlen;
- csinfo->mbmaxlen = mysql->charset->mbmaxlen;
-
- if (mysql->options.charset_dir)
- csinfo->dir = mysql->options.charset_dir;
- else
- csinfo->dir = charsets_dir;
-}
-
-uint STDCALL mysql_thread_safe(void)
-{
- return 1;
-}
-
-
-my_bool STDCALL mysql_embedded(void)
-{
-#ifdef EMBEDDED_LIBRARY
- return 1;
-#else
- return 0;
-#endif
-}
-
-/****************************************************************************
- Some support functions
-****************************************************************************/
-
-/*
- Functions called my my_net_init() to set some application specific variables
-*/
-
-void my_net_local_init(NET *net)
-{
- net->max_packet= (uint) net_buffer_length;
- my_net_set_read_timeout(net, CLIENT_NET_READ_TIMEOUT);
- my_net_set_write_timeout(net, CLIENT_NET_WRITE_TIMEOUT);
- net->retry_count= 1;
- net->max_packet_size= max(net_buffer_length, max_allowed_packet);
-}
-
-/*
- This function is used to create HEX string that you
- can use in a SQL statement in of the either ways:
- INSERT INTO blob_column VALUES (0xAABBCC); (any MySQL version)
- INSERT INTO blob_column VALUES (X'AABBCC'); (4.1 and higher)
-
- The string in "from" is encoded to a HEX string.
- The result is placed in "to" and a terminating null byte is appended.
-
- The string pointed to by "from" must be "length" bytes long.
- You must allocate the "to" buffer to be at least length*2+1 bytes long.
- Each character needs two bytes, and you need room for the terminating
- null byte. When mysql_hex_string() returns, the contents of "to" will
- be a null-terminated string. The return value is the length of the
- encoded string, not including the terminating null character.
-
- The return value does not contain any leading 0x or a leading X' and
- trailing '. The caller must supply whichever of those is desired.
-*/
-
-ulong STDCALL
-mysql_hex_string(char *to, const char *from, ulong length)
-{
- char *to0= to;
- const char *end;
-
- for (end= from + length; from < end; from++)
- {
- *to++= _dig_vec_upper[((unsigned char) *from) >> 4];
- *to++= _dig_vec_upper[((unsigned char) *from) & 0x0F];
- }
- *to= '\0';
- return (ulong) (to-to0);
-}
-
-/*
- Add escape characters to a string (blob?) to make it suitable for a insert
- to should at least have place for length*2+1 chars
- Returns the length of the to string
-*/
-
-ulong STDCALL
-mysql_escape_string(char *to,const char *from,ulong length)
-{
- return (uint) escape_string_for_mysql(default_charset_info, to, 0, from, length);
-}
-
-ulong STDCALL
-mysql_real_escape_string(MYSQL *mysql, char *to,const char *from,
- ulong length)
-{
- if (mysql->server_status & SERVER_STATUS_NO_BACKSLASH_ESCAPES)
- return (uint) escape_quotes_for_mysql(mysql->charset, to, 0, from, length);
- return (uint) escape_string_for_mysql(mysql->charset, to, 0, from, length);
-}
-
-void STDCALL
-myodbc_remove_escape(MYSQL *mysql,char *name)
-{
- char *to;
-#ifdef USE_MB
- my_bool use_mb_flag=use_mb(mysql->charset);
- char *UNINIT_VAR(end);
- if (use_mb_flag)
- for (end=name; *end ; end++) ;
-#endif
-
- for (to=name ; *name ; name++)
- {
-#ifdef USE_MB
- int l;
- if (use_mb_flag && (l = my_ismbchar( mysql->charset, name , end ) ) )
- {
- while (l--)
- *to++ = *name++;
- name--;
- continue;
- }
-#endif
- if (*name == '\\' && name[1])
- name++;
- *to++= *name;
- }
- *to=0;
-}
-
-/********************************************************************
- Implementation of new client API for 4.1 version.
-
- mysql_stmt_* are real prototypes used by applications.
-
- To make API work in embedded library all functions performing
- real I/O are prefixed with 'cli_' (abbreviated from 'Call Level
- Interface'). This functions are invoked via pointers set in
- MYSQL::methods structure. Embedded counterparts, prefixed with
- 'emb_' reside in libmysqld/lib_sql.cc.
-*********************************************************************/
-
-/******************* Declarations ***********************************/
-
-/* Default number of rows fetched per one COM_STMT_FETCH command. */
-
-#define DEFAULT_PREFETCH_ROWS (ulong) 1
-
-/*
- These functions are called by function pointer MYSQL_STMT::read_row_func.
- Each function corresponds to one of the read methods:
- - mysql_stmt_fetch without prior mysql_stmt_store_result,
- - mysql_stmt_fetch when result is stored,
- - mysql_stmt_fetch when there are no rows (always returns MYSQL_NO_DATA)
-*/
-
-static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row);
-static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row);
-static int stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row);
-static int stmt_read_row_no_data(MYSQL_STMT *stmt, unsigned char **row);
-static int stmt_read_row_no_result_set(MYSQL_STMT *stmt, unsigned char **row);
-
-/*
- This function is used in mysql_stmt_store_result if
- STMT_ATTR_UPDATE_MAX_LENGTH attribute is set.
-*/
-static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data);
-static my_bool setup_one_fetch_function(MYSQL_BIND *, MYSQL_FIELD *field);
-
-/* Auxilary function used to reset statement handle. */
-
-#define RESET_SERVER_SIDE 1
-#define RESET_LONG_DATA 2
-#define RESET_STORE_RESULT 4
-#define RESET_CLEAR_ERROR 8
-
-static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags);
-
-/*
- Maximum sizes of MYSQL_TYPE_DATE, MYSQL_TYPE_TIME, MYSQL_TYPE_DATETIME
- values stored in network buffer.
-*/
-
-/* 1 (length) + 2 (year) + 1 (month) + 1 (day) */
-#define MAX_DATE_REP_LENGTH 5
-
-/*
- 1 (length) + 1 (is negative) + 4 (day count) + 1 (hour)
- + 1 (minute) + 1 (seconds) + 4 (microseconds)
-*/
-#define MAX_TIME_REP_LENGTH 13
-
-/*
- 1 (length) + 2 (year) + 1 (month) + 1 (day) +
- 1 (hour) + 1 (minute) + 1 (second) + 4 (microseconds)
-*/
-#define MAX_DATETIME_REP_LENGTH 12
-
-#define MAX_DOUBLE_STRING_REP_LENGTH 331
-
-/* A macro to check truncation errors */
-
-#define IS_TRUNCATED(value, is_unsigned, min, max, umax) \
- ((is_unsigned) ? (((value) > (umax) || (value) < 0) ? 1 : 0) : \
- (((value) > (max) || (value) < (min)) ? 1 : 0))
-
-#define BIND_RESULT_DONE 1
-/*
- We report truncations only if at least one of MYSQL_BIND::error
- pointers is set. In this case stmt->bind_result_done |-ed with
- this flag.
-*/
-#define REPORT_DATA_TRUNCATION 2
-
-/**************** Misc utility functions ****************************/
-
-/*
- Reallocate the NET package to have at least length bytes available.
-
- SYNPOSIS
- my_realloc_str()
- net The NET structure to modify.
- length Ensure that net->buff has space for at least
- this number of bytes.
-
- RETURN VALUES
- 0 Success.
- 1 Error, i.e. out of memory or requested packet size is bigger
- than max_allowed_packet. The error code is stored in net->last_errno.
-*/
-
-static my_bool my_realloc_str(NET *net, ulong length)
-{
- ulong buf_length= (ulong) (net->write_pos - net->buff);
- my_bool res=0;
- DBUG_ENTER("my_realloc_str");
- if (buf_length + length > net->max_packet)
- {
- res= net_realloc(net, buf_length + length);
- if (res)
- {
- strmov(net->sqlstate, unknown_sqlstate);
- strmov(net->last_error, ER(net->last_errno));
- }
- net->write_pos= net->buff+ buf_length;
- }
- DBUG_RETURN(res);
-}
-
-
-static void stmt_clear_error(MYSQL_STMT *stmt)
-{
- if (stmt->last_errno)
- {
- stmt->last_errno= 0;
- stmt->last_error[0]= '\0';
- strmov(stmt->sqlstate, not_error_sqlstate);
- }
-}
-
-/**
- Set statement error code, sqlstate, and error message
- from given errcode and sqlstate.
-*/
-
-void set_stmt_error(MYSQL_STMT * stmt, int errcode,
- const char *sqlstate, const char *err)
-{
- DBUG_ENTER("set_stmt_error");
- DBUG_PRINT("enter", ("error: %d '%s'", errcode, ER(errcode)));
- DBUG_ASSERT(stmt != 0);
-
- if (err == 0)
- err= ER(errcode);
-
- stmt->last_errno= errcode;
- strmov(stmt->last_error, ER(errcode));
- strmov(stmt->sqlstate, sqlstate);
-
- DBUG_VOID_RETURN;
-}
-
-
-/**
- Set statement error code, sqlstate, and error message from NET.
-
- @param stmt a statement handle. Copy the error here.
- @param net mysql->net. Source of the error.
-*/
-
-void set_stmt_errmsg(MYSQL_STMT *stmt, NET *net)
-{
- DBUG_ENTER("set_stmt_errmsg");
- DBUG_PRINT("enter", ("error: %d/%s '%s'",
- net->last_errno,
- net->sqlstate,
- net->last_error));
- DBUG_ASSERT(stmt != 0);
-
- stmt->last_errno= net->last_errno;
- if (net->last_error && net->last_error[0])
- strmov(stmt->last_error, net->last_error);
- strmov(stmt->sqlstate, net->sqlstate);
-
- DBUG_VOID_RETURN;
-}
-
-/*
- Read and unpack server reply to COM_STMT_PREPARE command (sent from
- mysql_stmt_prepare).
-
- SYNOPSIS
- cli_read_prepare_result()
- mysql connection handle
- stmt statement handle
-
- RETURN VALUES
- 0 ok
- 1 error
-*/
-
-my_bool cli_read_prepare_result(MYSQL *mysql, MYSQL_STMT *stmt)
-{
- uchar *pos;
- uint field_count, param_count;
- ulong packet_length;
- MYSQL_DATA *fields_data;
- DBUG_ENTER("cli_read_prepare_result");
-
- if ((packet_length= cli_safe_read(mysql)) == packet_error)
- DBUG_RETURN(1);
- mysql->warning_count= 0;
-
- pos= (uchar*) mysql->net.read_pos;
- stmt->stmt_id= uint4korr(pos+1); pos+= 5;
- /* Number of columns in result set */
- field_count= uint2korr(pos); pos+= 2;
- /* Number of placeholders in the statement */
- param_count= uint2korr(pos); pos+= 2;
- if (packet_length >= 12)
- mysql->warning_count= uint2korr(pos+1);
-
- if (param_count != 0)
- {
- MYSQL_DATA *param_data;
-
- /* skip parameters data: we don't support it yet */
- if (!(param_data= (*mysql->methods->read_rows)(mysql, (MYSQL_FIELD*)0, 7)))
- DBUG_RETURN(1);
- free_rows(param_data);
- }
-
- if (field_count != 0)
- {
- if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT))
- mysql->server_status|= SERVER_STATUS_IN_TRANS;
-
- if (!(fields_data= (*mysql->methods->read_rows)(mysql,(MYSQL_FIELD*)0,7)))
- DBUG_RETURN(1);
- if (!(stmt->fields= unpack_fields(fields_data,&stmt->mem_root,
- field_count,0,
- mysql->server_capabilities)))
- DBUG_RETURN(1);
- }
- stmt->field_count= field_count;
- stmt->param_count= (ulong) param_count;
- DBUG_PRINT("exit",("field_count: %u param_count: %u warning_count: %u",
- field_count, param_count, (uint) mysql->warning_count));
-
- DBUG_RETURN(0);
-}
-
-
-/*
- Allocate memory and init prepared statement structure.
-
- SYNOPSIS
- mysql_stmt_init()
- mysql connection handle
-
- DESCRIPTION
- This is an entry point of the new API. Returned handle stands for
- a server-side prepared statement. Memory for this structure (~700
- bytes) is allocated using 'malloc'. Once created, the handle can be
- reused many times. Created statement handle is bound to connection
- handle provided to this call: its lifetime is limited by lifetime
- of connection.
- 'mysql_stmt_init()' is a pure local call, server side structure is
- created only in mysql_stmt_prepare.
- Next steps you may want to make:
- - set a statement attribute (mysql_stmt_attr_set()),
- - prepare statement handle with a query (mysql_stmt_prepare()),
- - close statement handle and free its memory (mysql_stmt_close()),
- - reset statement with mysql_stmt_reset() (a no-op which will
- just return).
- Behaviour of the rest of API calls on this statement is not defined yet
- (though we're working on making each wrong call sequence return
- error).
-
- RETURN VALUE
- statement structure upon success and NULL if out of
- memory
-*/
-
-MYSQL_STMT * STDCALL
-mysql_stmt_init(MYSQL *mysql)
-{
- MYSQL_STMT *stmt;
- DBUG_ENTER("mysql_stmt_init");
-
- if (!(stmt= (MYSQL_STMT *) my_malloc(sizeof(MYSQL_STMT),
- MYF(MY_WME | MY_ZEROFILL))))
- {
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- DBUG_RETURN(0);
- }
-
- init_alloc_root(&stmt->mem_root, 2048, 2048);
- init_alloc_root(&stmt->result.alloc, 4096, 4096);
- stmt->result.alloc.min_malloc= sizeof(MYSQL_ROWS);
- mysql->stmts= list_add(mysql->stmts, &stmt->list);
- stmt->list.data= stmt;
- stmt->state= MYSQL_STMT_INIT_DONE;
- stmt->mysql= mysql;
- stmt->read_row_func= stmt_read_row_no_result_set;
- stmt->prefetch_rows= DEFAULT_PREFETCH_ROWS;
- strmov(stmt->sqlstate, not_error_sqlstate);
- /* The rest of statement members was bzeroed inside malloc */
-
- DBUG_RETURN(stmt);
-}
-
-
-/*
- Prepare server side statement with query.
-
- SYNOPSIS
- mysql_stmt_prepare()
- stmt statement handle
- query statement to prepare
- length statement length
-
- DESCRIPTION
- Associate statement with statement handle. This is done both on
- client and server sides. At this point the server parses given query
- and creates an internal structure to represent it.
- Next steps you may want to make:
- - find out if this statement returns a result set by
- calling mysql_stmt_field_count(), and get result set metadata
- with mysql_stmt_result_metadata(),
- - if query contains placeholders, bind input parameters to placeholders
- using mysql_stmt_bind_param(),
- - otherwise proceed directly to mysql_stmt_execute().
-
- IMPLEMENTATION NOTES
- - if this is a re-prepare of the statement, first close previous data
- structure on the server and free old statement data
- - then send the query to server and get back number of placeholders,
- number of columns in result set (if any), and result set metadata.
- At the same time allocate memory for input and output parameters
- to have less checks in mysql_stmt_bind_{param, result}.
-
- RETURN VALUES
- 0 success
- !0 error
-*/
-
-int STDCALL
-mysql_stmt_prepare(MYSQL_STMT *stmt, const char *query, ulong length)
-{
- MYSQL *mysql= stmt->mysql;
- DBUG_ENTER("mysql_stmt_prepare");
-
- if (!mysql)
- {
- /* mysql can be reset in mysql_close called from mysql_reconnect */
- set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- /*
- Reset the last error in any case: that would clear the statement
- if the previous prepare failed.
- */
- stmt->last_errno= 0;
- stmt->last_error[0]= '\0';
-
- if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE)
- {
- /* This is second prepare with another statement */
- uchar buff[MYSQL_STMT_HEADER]; /* 4 bytes - stmt id */
-
- if (reset_stmt_handle(stmt, RESET_LONG_DATA | RESET_STORE_RESULT))
- DBUG_RETURN(1);
- /*
- These members must be reset for API to
- function in case of error or misuse.
- */
- stmt->bind_param_done= stmt->bind_result_done= FALSE;
- stmt->param_count= stmt->field_count= 0;
- free_root(&stmt->mem_root, MYF(MY_KEEP_PREALLOC));
-
- int4store(buff, stmt->stmt_id);
-
- /*
- Close statement in server
-
- If there was a 'use' result from another statement, or from
- mysql_use_result it won't be freed in mysql_stmt_free_result and
- we should get 'Commands out of sync' here.
- */
- stmt->state= MYSQL_STMT_INIT_DONE;
- if (stmt_command(mysql, COM_STMT_CLOSE, buff, 4, stmt))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- DBUG_RETURN(1);
- }
- }
-
- if (stmt_command(mysql, COM_STMT_PREPARE, (const uchar*) query, length, stmt))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- DBUG_RETURN(1);
- }
-
- if ((*mysql->methods->read_prepare_result)(mysql, stmt))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- DBUG_RETURN(1);
- }
-
- /*
- alloc_root will return valid address even in case when param_count
- and field_count are zero. Thus we should never rely on stmt->bind
- or stmt->params when checking for existence of placeholders or
- result set.
- */
- if (!(stmt->params= (MYSQL_BIND *) alloc_root(&stmt->mem_root,
- sizeof(MYSQL_BIND)*
- (stmt->param_count +
- stmt->field_count))))
- {
- set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
- stmt->bind= stmt->params + stmt->param_count;
- stmt->state= MYSQL_STMT_PREPARE_DONE;
- DBUG_PRINT("info", ("Parameter count: %u", stmt->param_count));
- DBUG_RETURN(0);
-}
-
-/*
- Get result set metadata from reply to mysql_stmt_execute.
- This is used mainly for SHOW commands, as metadata for these
- commands is sent only with result set.
- To be removed when all commands will fully support prepared mode.
-*/
-
-static void alloc_stmt_fields(MYSQL_STMT *stmt)
-{
- MYSQL_FIELD *fields, *field, *end;
- MEM_ROOT *alloc= &stmt->mem_root;
- MYSQL *mysql= stmt->mysql;
-
- DBUG_ASSERT(mysql->field_count);
-
- stmt->field_count= mysql->field_count;
-
- /*
- Get the field information for non-select statements
- like SHOW and DESCRIBE commands
- */
- if (!(stmt->fields= (MYSQL_FIELD *) alloc_root(alloc,
- sizeof(MYSQL_FIELD) *
- stmt->field_count)) ||
- !(stmt->bind= (MYSQL_BIND *) alloc_root(alloc,
- sizeof(MYSQL_BIND) *
- stmt->field_count)))
- {
- set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL);
- return;
- }
-
- for (fields= mysql->fields, end= fields+stmt->field_count,
- field= stmt->fields;
- field && fields < end; fields++, field++)
- {
- *field= *fields; /* To copy all numeric parts. */
- field->catalog= strmake_root(alloc, fields->catalog,
- fields->catalog_length);
- field->db= strmake_root(alloc, fields->db, fields->db_length);
- field->table= strmake_root(alloc, fields->table, fields->table_length);
- field->org_table= strmake_root(alloc, fields->org_table,
- fields->org_table_length);
- field->name= strmake_root(alloc, fields->name, fields->name_length);
- field->org_name= strmake_root(alloc, fields->org_name,
- fields->org_name_length);
- field->def= fields->def ? strmake_root(alloc, fields->def,
- fields->def_length) : 0;
- field->def_length= field->def ? fields->def_length : 0;
- field->extension= 0; /* Avoid dangling links. */
- field->max_length= 0; /* max_length is set in mysql_stmt_store_result() */
- }
-}
-
-
-/**
- Update result set columns metadata if it was sent again in
- reply to COM_STMT_EXECUTE.
-
- @note If the new field count is different from the original one,
- an error is set and no update is performed.
-*/
-
-static void update_stmt_fields(MYSQL_STMT *stmt)
-{
- MYSQL_FIELD *field= stmt->mysql->fields;
- MYSQL_FIELD *field_end= field + stmt->field_count;
- MYSQL_FIELD *stmt_field= stmt->fields;
- MYSQL_BIND *my_bind= stmt->bind_result_done ? stmt->bind : 0;
-
- if (stmt->field_count != stmt->mysql->field_count)
- {
- /*
- The tables used in the statement were altered,
- and the query now returns a different number of columns.
- There is no way to continue without reallocating the bind
- array:
- - if the number of columns increased, mysql_stmt_fetch()
- will write beyond allocated memory
- - if the number of columns decreased, some user-bound
- buffers will be left unassigned without user knowing
- that.
- */
- set_stmt_error(stmt, CR_NEW_STMT_METADATA, unknown_sqlstate, NULL);
- return;
- }
-
- for (; field < field_end; ++field, ++stmt_field)
- {
- stmt_field->charsetnr= field->charsetnr;
- stmt_field->length = field->length;
- stmt_field->type = field->type;
- stmt_field->flags = field->flags;
- stmt_field->decimals = field->decimals;
- if (my_bind)
- {
- /* Ignore return value: it should be 0 if bind_result succeeded. */
- (void) setup_one_fetch_function(my_bind++, stmt_field);
- }
- }
-}
-
-/*
- Returns prepared statement metadata in the form of a result set.
-
- SYNOPSIS
- mysql_stmt_result_metadata()
- stmt statement handle
-
- DESCRIPTION
- This function should be used after mysql_stmt_execute().
- You can safely check that prepared statement has a result set by calling
- mysql_stmt_field_count(): if number of fields is not zero, you can call
- this function to get fields metadata.
- Next steps you may want to make:
- - find out number of columns in result set by calling
- mysql_num_fields(res) (the same value is returned by
- mysql_stmt_field_count())
- - fetch metadata for any column with mysql_fetch_field,
- mysql_fetch_field_direct, mysql_fetch_fields, mysql_field_seek.
- - free returned MYSQL_RES structure with mysql_free_result.
- - proceed to binding of output parameters.
-
- RETURN
- NULL statement contains no result set or out of memory.
- In the latter case you can retreive error message
- with mysql_stmt_error.
- MYSQL_RES a result set with no rows
-*/
-
-MYSQL_RES * STDCALL
-mysql_stmt_result_metadata(MYSQL_STMT *stmt)
-{
- MYSQL_RES *result;
- DBUG_ENTER("mysql_stmt_result_metadata");
-
- /*
- stmt->fields is only defined if stmt->field_count is not null;
- stmt->field_count is initialized in prepare.
- */
- if (!stmt->field_count)
- DBUG_RETURN(0);
-
- if (!(result=(MYSQL_RES*) my_malloc(sizeof(*result),
- MYF(MY_WME | MY_ZEROFILL))))
- {
- set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL);
- DBUG_RETURN(0);
- }
-
- result->methods= stmt->mysql->methods;
- result->eof= 1; /* Marker for buffered */
- result->fields= stmt->fields;
- result->field_count= stmt->field_count;
- /* The rest of members of 'result' was bzeroed inside malloc */
- DBUG_RETURN(result);
-}
-
-
-/*
- Returns parameter columns meta information in the form of
- result set.
-
- SYNOPSYS
- mysql_stmt_param_metadata()
- stmt statement handle
-
- DESCRIPTION
- This function can be called after you prepared the statement handle
- with mysql_stmt_prepare().
- XXX: not implemented yet.
-
- RETURN
- MYSQL_RES on success, 0 if there is no metadata.
- Currently this function always returns 0.
-*/
-
-MYSQL_RES * STDCALL
-mysql_stmt_param_metadata(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("mysql_stmt_param_metadata");
-
- if (!stmt->param_count)
- DBUG_RETURN(0);
-
- /*
- TODO: Fix this when server sends the information.
- Till then keep a dummy prototype.
- */
- DBUG_RETURN(0);
-}
-
-
-/* Store type of parameter in network buffer. */
-
-static void store_param_type(unsigned char **pos, MYSQL_BIND *param)
-{
- uint typecode= param->buffer_type | (param->is_unsigned ? 32768 : 0);
- int2store(*pos, typecode);
- *pos+= 2;
-}
-
-
-/*
- Functions to store parameter data in network packet.
-
- SYNOPSIS
- store_param_xxx()
- net MySQL NET connection
- param MySQL bind param
-
- DESCRIPTION
- These funtions are invoked from mysql_stmt_execute() by
- MYSQL_BIND::store_param_func pointer. This pointer is set once per
- many executions in mysql_stmt_bind_param(). The caller must ensure
- that network buffer have enough capacity to store parameter
- (MYSQL_BIND::buffer_length contains needed number of bytes).
-*/
-
-static void store_param_tinyint(NET *net, MYSQL_BIND *param)
-{
- *(net->write_pos++)= *(uchar *) param->buffer;
-}
-
-static void store_param_short(NET *net, MYSQL_BIND *param)
-{
- short value= *(short*) param->buffer;
- int2store(net->write_pos,value);
- net->write_pos+=2;
-}
-
-static void store_param_int32(NET *net, MYSQL_BIND *param)
-{
- int32 value= *(int32*) param->buffer;
- int4store(net->write_pos,value);
- net->write_pos+=4;
-}
-
-static void store_param_int64(NET *net, MYSQL_BIND *param)
-{
- longlong value= *(longlong*) param->buffer;
- int8store(net->write_pos,value);
- net->write_pos+= 8;
-}
-
-static void store_param_float(NET *net, MYSQL_BIND *param)
-{
- float value= *(float*) param->buffer;
- float4store(net->write_pos, value);
- net->write_pos+= 4;
-}
-
-static void store_param_double(NET *net, MYSQL_BIND *param)
-{
- double value= *(double*) param->buffer;
- float8store(net->write_pos, value);
- net->write_pos+= 8;
-}
-
-static void store_param_time(NET *net, MYSQL_BIND *param)
-{
- MYSQL_TIME *tm= (MYSQL_TIME *) param->buffer;
- char buff[MAX_TIME_REP_LENGTH], *pos;
- uint length;
-
- pos= buff+1;
- pos[0]= tm->neg ? 1: 0;
- int4store(pos+1, tm->day);
- pos[5]= (uchar) tm->hour;
- pos[6]= (uchar) tm->minute;
- pos[7]= (uchar) tm->second;
- int4store(pos+8, tm->second_part);
- if (tm->second_part)
- length= 12;
- else if (tm->hour || tm->minute || tm->second || tm->day)
- length= 8;
- else
- length= 0;
- buff[0]= (char) length++;
- memcpy((char *)net->write_pos, buff, length);
- net->write_pos+= length;
-}
-
-static void net_store_datetime(NET *net, MYSQL_TIME *tm)
-{
- char buff[MAX_DATETIME_REP_LENGTH], *pos;
- uint length;
-
- pos= buff+1;
-
- int2store(pos, tm->year);
- pos[2]= (uchar) tm->month;
- pos[3]= (uchar) tm->day;
- pos[4]= (uchar) tm->hour;
- pos[5]= (uchar) tm->minute;
- pos[6]= (uchar) tm->second;
- int4store(pos+7, tm->second_part);
- if (tm->second_part)
- length= 11;
- else if (tm->hour || tm->minute || tm->second)
- length= 7;
- else if (tm->year || tm->month || tm->day)
- length= 4;
- else
- length= 0;
- buff[0]= (char) length++;
- memcpy((char *)net->write_pos, buff, length);
- net->write_pos+= length;
-}
-
-static void store_param_date(NET *net, MYSQL_BIND *param)
-{
- MYSQL_TIME tm= *((MYSQL_TIME *) param->buffer);
- tm.hour= tm.minute= tm.second= tm.second_part= 0;
- net_store_datetime(net, &tm);
-}
-
-static void store_param_datetime(NET *net, MYSQL_BIND *param)
-{
- MYSQL_TIME *tm= (MYSQL_TIME *) param->buffer;
- net_store_datetime(net, tm);
-}
-
-static void store_param_str(NET *net, MYSQL_BIND *param)
-{
- /* param->length is always set in mysql_stmt_bind_param */
- ulong length= *param->length;
- uchar *to= net_store_length(net->write_pos, length);
- memcpy(to, param->buffer, length);
- net->write_pos= to+length;
-}
-
-
-/*
- Mark if the parameter is NULL.
-
- SYNOPSIS
- store_param_null()
- net MySQL NET connection
- param MySQL bind param
-
- DESCRIPTION
- A data package starts with a string of bits where we set a bit
- if a parameter is NULL. Unlike bit string in result set row, here
- we don't have reserved bits for OK/error packet.
-*/
-
-static void store_param_null(NET *net, MYSQL_BIND *param)
-{
- uint pos= param->param_number;
- net->buff[pos/8]|= (uchar) (1 << (pos & 7));
-}
-
-
-/*
- Store one parameter in network packet: data is read from
- client buffer and saved in network packet by means of one
- of store_param_xxxx functions.
-*/
-
-static my_bool store_param(MYSQL_STMT *stmt, MYSQL_BIND *param)
-{
- NET *net= &stmt->mysql->net;
- DBUG_ENTER("store_param");
- DBUG_PRINT("enter",("type: %d buffer: 0x%lx length: %lu is_null: %d",
- param->buffer_type,
- (long) (param->buffer ? param->buffer : NullS),
- *param->length, *param->is_null));
-
- if (*param->is_null)
- store_param_null(net, param);
- else
- {
- /*
- Param->length should ALWAYS point to the correct length for the type
- Either to the length pointer given by the user or param->buffer_length
- */
- if ((my_realloc_str(net, *param->length)))
- {
- set_stmt_errmsg(stmt, net);
- DBUG_RETURN(1);
- }
- (*param->store_param_func)(net, param);
- }
- DBUG_RETURN(0);
-}
-
-
-/*
- Auxilary function to send COM_STMT_EXECUTE packet to server and read reply.
- Used from cli_stmt_execute, which is in turn used by mysql_stmt_execute.
-*/
-
-static my_bool execute(MYSQL_STMT *stmt, char *packet, ulong length)
-{
- MYSQL *mysql= stmt->mysql;
- NET *net= &mysql->net;
- uchar buff[4 /* size of stmt id */ +
- 5 /* execution flags */];
- my_bool res;
- DBUG_ENTER("execute");
- DBUG_DUMP("packet", (uchar *) packet, length);
-
- int4store(buff, stmt->stmt_id); /* Send stmt id to server */
- buff[4]= (char) stmt->flags;
- int4store(buff+5, 1); /* iteration count */
-
- res= test(cli_advanced_command(mysql, COM_STMT_EXECUTE, buff, sizeof(buff),
- (uchar*) packet, length, 1, stmt) ||
- (*mysql->methods->read_query_result)(mysql));
- stmt->affected_rows= mysql->affected_rows;
- stmt->server_status= mysql->server_status;
- stmt->insert_id= mysql->insert_id;
- if (res)
- {
- /*
- Don't set stmt error if stmt->mysql is NULL, as the error in this case
- has already been set by mysql_prune_stmt_list().
- */
- if (stmt->mysql)
- set_stmt_errmsg(stmt, net);
- DBUG_RETURN(1);
- }
- else if (mysql->status == MYSQL_STATUS_GET_RESULT)
- stmt->mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT;
- DBUG_RETURN(0);
-}
-
-
-int cli_stmt_execute(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("cli_stmt_execute");
-
- if (stmt->param_count)
- {
- MYSQL *mysql= stmt->mysql;
- NET *net= &mysql->net;
- MYSQL_BIND *param, *param_end;
- char *param_data;
- ulong length;
- uint null_count;
- my_bool result;
-
- if (!stmt->bind_param_done)
- {
- set_stmt_error(stmt, CR_PARAMS_NOT_BOUND, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
- if (mysql->status != MYSQL_STATUS_READY ||
- mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
- {
- set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- net_clear(net, 1); /* Sets net->write_pos */
- /* Reserve place for null-marker bytes */
- null_count= (stmt->param_count+7) /8;
- if (my_realloc_str(net, null_count + 1))
- {
- set_stmt_errmsg(stmt, net);
- DBUG_RETURN(1);
- }
- bzero((char*) net->write_pos, null_count);
- net->write_pos+= null_count;
- param_end= stmt->params + stmt->param_count;
-
- /* In case if buffers (type) altered, indicate to server */
- *(net->write_pos)++= (uchar) stmt->send_types_to_server;
- if (stmt->send_types_to_server)
- {
- if (my_realloc_str(net, 2 * stmt->param_count))
- {
- set_stmt_errmsg(stmt, net);
- DBUG_RETURN(1);
- }
- /*
- Store types of parameters in first in first package
- that is sent to the server.
- */
- for (param= stmt->params; param < param_end ; param++)
- store_param_type(&net->write_pos, param);
- }
-
- for (param= stmt->params; param < param_end; param++)
- {
- /* check if mysql_stmt_send_long_data() was used */
- if (param->long_data_used)
- param->long_data_used= 0; /* Clear for next execute call */
- else if (store_param(stmt, param))
- DBUG_RETURN(1);
- }
- length= (ulong) (net->write_pos - net->buff);
- /* TODO: Look into avoding the following memdup */
- if (!(param_data= my_memdup(net->buff, length, MYF(0))))
- {
- set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
- result= execute(stmt, param_data, length);
- stmt->send_types_to_server=0;
- my_free(param_data);
- DBUG_RETURN(result);
- }
- DBUG_RETURN((int) execute(stmt,0,0));
-}
-
-/*
- Read one row from buffered result set. Result set is created by prior
- call to mysql_stmt_store_result().
- SYNOPSIS
- stmt_read_row_buffered()
-
- RETURN VALUE
- 0 - success; *row is set to valid row pointer (row data
- is stored in result set buffer)
- MYSQL_NO_DATA - end of result set. *row is set to NULL
-*/
-
-static int stmt_read_row_buffered(MYSQL_STMT *stmt, unsigned char **row)
-{
- if (stmt->data_cursor)
- {
- *row= (uchar *) stmt->data_cursor->data;
- stmt->data_cursor= stmt->data_cursor->next;
- return 0;
- }
- *row= 0;
- return MYSQL_NO_DATA;
-}
-
-/*
- Read one row from network: unbuffered non-cursor fetch.
- If last row was read, or error occured, erase this statement
- from record pointing to object unbuffered fetch is performed from.
-
- SYNOPSIS
- stmt_read_row_unbuffered()
- stmt statement handle
- row pointer to write pointer to row data;
-
- RETURN VALUE
- 0 - success; *row contains valid address of a row;
- row data is stored in network buffer
- 1 - error; error code is written to
- stmt->last_{errno,error}; *row is not changed
- MYSQL_NO_DATA - end of file was read from network;
- *row is set to NULL
-*/
-
-static int stmt_read_row_unbuffered(MYSQL_STMT *stmt, unsigned char **row)
-{
- int rc= 1;
- MYSQL *mysql= stmt->mysql;
- /*
- This function won't be called if stmt->field_count is zero
- or execution wasn't done: this is ensured by mysql_stmt_execute.
- */
- if (!mysql)
- {
- set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
- return 1;
- }
- if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT)
- {
- set_stmt_error(stmt, stmt->unbuffered_fetch_cancelled ?
- CR_FETCH_CANCELED : CR_COMMANDS_OUT_OF_SYNC,
- unknown_sqlstate, NULL);
- goto error;
- }
- if ((*mysql->methods->unbuffered_fetch)(mysql, (char**) row))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- /*
- If there was an error, there are no more pending rows:
- reset statement status to not hang up in following
- mysql_stmt_close (it will try to flush result set before
- closing the statement).
- */
- mysql->status= MYSQL_STATUS_READY;
- goto error;
- }
- if (!*row)
- {
- mysql->status= MYSQL_STATUS_READY;
- rc= MYSQL_NO_DATA;
- goto error;
- }
- return 0;
-error:
- if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled)
- mysql->unbuffered_fetch_owner= 0;
- return rc;
-}
-
-
-/*
- Fetch statement row using server side cursor.
-
- SYNOPSIS
- stmt_read_row_from_cursor()
-
- RETURN VALUE
- 0 success
- 1 error
- MYSQL_NO_DATA end of data
-*/
-
-static int
-stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row)
-{
- if (stmt->data_cursor)
- return stmt_read_row_buffered(stmt, row);
- if (stmt->server_status & SERVER_STATUS_LAST_ROW_SENT)
- stmt->server_status &= ~SERVER_STATUS_LAST_ROW_SENT;
- else
- {
- MYSQL *mysql= stmt->mysql;
- NET *net= &mysql->net;
- MYSQL_DATA *result= &stmt->result;
- uchar buff[4 /* statement id */ +
- 4 /* number of rows to fetch */];
-
- free_root(&result->alloc, MYF(MY_KEEP_PREALLOC));
- result->data= NULL;
- result->rows= 0;
- /* Send row request to the server */
- int4store(buff, stmt->stmt_id);
- int4store(buff + 4, stmt->prefetch_rows); /* number of rows to fetch */
- if ((*mysql->methods->advanced_command)(mysql, COM_STMT_FETCH,
- buff, sizeof(buff), (uchar*) 0, 0,
- 1, stmt))
- {
- /*
- Don't set stmt error if stmt->mysql is NULL, as the error in this case
- has already been set by mysql_prune_stmt_list().
- */
- if (stmt->mysql)
- set_stmt_errmsg(stmt, net);
- return 1;
- }
- if ((*mysql->methods->read_rows_from_cursor)(stmt))
- return 1;
- stmt->server_status= mysql->server_status;
-
- stmt->data_cursor= result->data;
- return stmt_read_row_buffered(stmt, row);
- }
- *row= 0;
- return MYSQL_NO_DATA;
-}
-
-
-/*
- Default read row function to not SIGSEGV in client in
- case of wrong sequence of API calls.
-*/
-
-static int
-stmt_read_row_no_data(MYSQL_STMT *stmt __attribute__((unused)),
- unsigned char **row __attribute__((unused)))
-{
- return MYSQL_NO_DATA;
-}
-
-static int
-stmt_read_row_no_result_set(MYSQL_STMT *stmt __attribute__((unused)),
- unsigned char **row __attribute__((unused)))
-{
- set_stmt_error(stmt, CR_NO_RESULT_SET, unknown_sqlstate, NULL);
- return 1;
-}
-
-
-/*
- Get/set statement attributes
-
- SYNOPSIS
- mysql_stmt_attr_get()
- mysql_stmt_attr_set()
-
- attr_type statement attribute
- value cast to const void * pointer to value.
-
- RETURN VALUE
- 0 success
- !0 wrong attribute type
-*/
-
-my_bool STDCALL mysql_stmt_attr_set(MYSQL_STMT *stmt,
- enum enum_stmt_attr_type attr_type,
- const void *value)
-{
- switch (attr_type) {
- case STMT_ATTR_UPDATE_MAX_LENGTH:
- stmt->update_max_length= value ? *(const my_bool*) value : 0;
- break;
- case STMT_ATTR_CURSOR_TYPE:
- {
- ulong cursor_type;
- cursor_type= value ? *(ulong*) value : 0UL;
- if (cursor_type > (ulong) CURSOR_TYPE_READ_ONLY)
- goto err_not_implemented;
- stmt->flags= cursor_type;
- break;
- }
- case STMT_ATTR_PREFETCH_ROWS:
- {
- ulong prefetch_rows= value ? *(ulong*) value : DEFAULT_PREFETCH_ROWS;
- if (value == 0)
- return TRUE;
- stmt->prefetch_rows= prefetch_rows;
- break;
- }
- default:
- goto err_not_implemented;
- }
- return FALSE;
-err_not_implemented:
- set_stmt_error(stmt, CR_NOT_IMPLEMENTED, unknown_sqlstate, NULL);
- return TRUE;
-}
-
-
-my_bool STDCALL mysql_stmt_attr_get(MYSQL_STMT *stmt,
- enum enum_stmt_attr_type attr_type,
- void *value)
-{
- switch (attr_type) {
- case STMT_ATTR_UPDATE_MAX_LENGTH:
- *(my_bool*) value= stmt->update_max_length;
- break;
- case STMT_ATTR_CURSOR_TYPE:
- *(ulong*) value= stmt->flags;
- break;
- case STMT_ATTR_PREFETCH_ROWS:
- *(ulong*) value= stmt->prefetch_rows;
- break;
- default:
- return TRUE;
- }
- return FALSE;
-}
-
-
-/**
- Update statement result set metadata from with the new field
- information sent during statement execute.
-
- @pre mysql->field_count is not zero
-
- @retval TRUE if error: out of memory or the new
- result set has a different number of columns
- @retval FALSE success
-*/
-
-static void reinit_result_set_metadata(MYSQL_STMT *stmt)
-{
- /* Server has sent result set metadata */
- if (stmt->field_count == 0)
- {
- /*
- This is 'SHOW'/'EXPLAIN'-like query. Current implementation of
- prepared statements can't send result set metadata for these queries
- on prepare stage. Read it now.
- */
- alloc_stmt_fields(stmt);
- }
- else
- {
- /*
- Update result set metadata if it for some reason changed between
- prepare and execute, i.e.:
- - in case of 'SELECT ?' we don't know column type unless data was
- supplied to mysql_stmt_execute, so updated column type is sent
- now.
- - if data dictionary changed between prepare and execute, for
- example a table used in the query was altered.
- Note, that now (4.1.3) we always send metadata in reply to
- COM_STMT_EXECUTE (even if it is not necessary), so either this or
- previous branch always works.
- TODO: send metadata only when it's really necessary and add a warning
- 'Metadata changed' when it's sent twice.
- */
- update_stmt_fields(stmt);
- }
-}
-
-
-static void prepare_to_fetch_result(MYSQL_STMT *stmt)
-{
- if (stmt->server_status & SERVER_STATUS_CURSOR_EXISTS)
- {
- stmt->mysql->status= MYSQL_STATUS_READY;
- stmt->read_row_func= stmt_read_row_from_cursor;
- }
- else if (stmt->flags & CURSOR_TYPE_READ_ONLY)
- {
- /*
- This is a single-row result set, a result set with no rows, EXPLAIN,
- SHOW VARIABLES, or some other command which either a) bypasses the
- cursors framework in the server and writes rows directly to the
- network or b) is more efficient if all (few) result set rows are
- precached on client and server's resources are freed.
- */
- mysql_stmt_store_result(stmt);
- }
- else
- {
- stmt->mysql->unbuffered_fetch_owner= &stmt->unbuffered_fetch_cancelled;
- stmt->unbuffered_fetch_cancelled= FALSE;
- stmt->read_row_func= stmt_read_row_unbuffered;
- }
-}
-
-
-/*
- Send placeholders data to server (if there are placeholders)
- and execute prepared statement.
-
- SYNOPSIS
- mysql_stmt_execute()
- stmt statement handle. The handle must be created
- with mysql_stmt_init() and prepared with
- mysql_stmt_prepare(). If there are placeholders
- in the statement they must be bound to local
- variables with mysql_stmt_bind_param().
-
- DESCRIPTION
- This function will automatically flush pending result
- set (if there is one), send parameters data to the server
- and read result of statement execution.
- If previous result set was cached with mysql_stmt_store_result()
- it will also be freed in the beginning of this call.
- The server can return 3 types of responses to this command:
- - error, can be retrieved with mysql_stmt_error()
- - ok, no result set pending. In this case we just update
- stmt->insert_id and stmt->affected_rows.
- - the query returns a result set: there could be 0 .. N
- rows in it. In this case the server can also send updated
- result set metadata.
-
- Next steps you may want to make:
- - find out if there is result set with mysql_stmt_field_count().
- If there is one:
- - optionally, cache entire result set on client to unblock
- connection with mysql_stmt_store_result()
- - bind client variables to result set columns and start read rows
- with mysql_stmt_fetch().
- - reset statement with mysql_stmt_reset() or close it with
- mysql_stmt_close()
- Otherwise:
- - find out last insert id and number of affected rows with
- mysql_stmt_insert_id(), mysql_stmt_affected_rows()
-
- RETURN
- 0 success
- 1 error, message can be retrieved with mysql_stmt_error().
-*/
-
-int STDCALL mysql_stmt_execute(MYSQL_STMT *stmt)
-{
- MYSQL *mysql= stmt->mysql;
- DBUG_ENTER("mysql_stmt_execute");
-
- if (!mysql)
- {
- /* Error is already set in mysql_detatch_stmt_list */
- DBUG_RETURN(1);
- }
-
- if (reset_stmt_handle(stmt, RESET_STORE_RESULT | RESET_CLEAR_ERROR))
- DBUG_RETURN(1);
- /*
- No need to check for stmt->state: if the statement wasn't
- prepared we'll get 'unknown statement handler' error from server.
- */
- if (mysql->methods->stmt_execute(stmt))
- DBUG_RETURN(1);
- stmt->state= MYSQL_STMT_EXECUTE_DONE;
- if (mysql->field_count)
- {
- reinit_result_set_metadata(stmt);
- prepare_to_fetch_result(stmt);
- }
- DBUG_RETURN(test(stmt->last_errno));
-}
-
-
-/*
- Return total parameters count in the statement
-*/
-
-ulong STDCALL mysql_stmt_param_count(MYSQL_STMT * stmt)
-{
- DBUG_ENTER("mysql_stmt_param_count");
- DBUG_RETURN(stmt->param_count);
-}
-
-/*
- Return total affected rows from the last statement
-*/
-
-my_ulonglong STDCALL mysql_stmt_affected_rows(MYSQL_STMT *stmt)
-{
- return stmt->affected_rows;
-}
-
-
-/*
- Returns the number of result columns for the most recent query
- run on this statement.
-*/
-
-unsigned int STDCALL mysql_stmt_field_count(MYSQL_STMT *stmt)
-{
- return stmt->field_count;
-}
-
-/*
- Return last inserted id for auto_increment columns.
-
- SYNOPSIS
- mysql_stmt_insert_id()
- stmt statement handle
-
- DESCRIPTION
- Current implementation of this call has a caveat: stmt->insert_id is
- unconditionally updated from mysql->insert_id in the end of each
- mysql_stmt_execute(). This works OK if mysql->insert_id contains new
- value (sent in reply to mysql_stmt_execute()), otherwise stmt->insert_id
- value gets undefined, as it's updated from some arbitrary value saved in
- connection structure during some other call.
-*/
-
-my_ulonglong STDCALL mysql_stmt_insert_id(MYSQL_STMT *stmt)
-{
- return stmt->insert_id;
-}
-
-
-static my_bool int_is_null_true= 1; /* Used for MYSQL_TYPE_NULL */
-static my_bool int_is_null_false= 0;
-
-
-/*
- Set up input data buffers for a statement.
-
- SYNOPSIS
- mysql_stmt_bind_param()
- stmt statement handle
- The statement must be prepared with mysql_stmt_prepare().
- my_bind Array of mysql_stmt_param_count() bind parameters.
- This function doesn't check that size of this argument
- is >= mysql_stmt_field_count(): it's user's responsibility.
-
- DESCRIPTION
- Use this call after mysql_stmt_prepare() to bind user variables to
- placeholders.
- Each element of bind array stands for a placeholder. Placeholders
- are counted from 0. For example statement
- 'INSERT INTO t (a, b) VALUES (?, ?)'
- contains two placeholders, and for such statement you should supply
- bind array of two elements (MYSQL_BIND bind[2]).
-
- By properly initializing bind array you can bind virtually any
- C language type to statement's placeholders:
- First, it's strongly recommended to always zero-initialize entire
- bind structure before setting its members. This will both shorten
- your application code and make it robust to future extensions of
- MYSQL_BIND structure.
- Then you need to assign typecode of your application buffer to
- MYSQL_BIND::buffer_type. The following typecodes with their
- correspondence to C language types are supported:
- MYSQL_TYPE_TINY for 8-bit integer variables. Normally it's
- 'signed char' and 'unsigned char';
- MYSQL_TYPE_SHORT for 16-bit signed and unsigned variables. This
- is usually 'short' and 'unsigned short';
- MYSQL_TYPE_LONG for 32-bit signed and unsigned variables. It
- corresponds to 'int' and 'unsigned int' on
- vast majority of platforms. On IA-32 and some
- other 32-bit systems you can also use 'long'
- here;
- MYSQL_TYPE_LONGLONG 64-bit signed or unsigned integer. Stands for
- '[unsigned] long long' on most platforms;
- MYSQL_TYPE_FLOAT 32-bit floating point type, 'float' on most
- systems;
- MYSQL_TYPE_DOUBLE 64-bit floating point type, 'double' on most
- systems;
- MYSQL_TYPE_TIME broken-down time stored in MYSQL_TIME
- structure
- MYSQL_TYPE_DATE date stored in MYSQL_TIME structure
- MYSQL_TYPE_DATETIME datetime stored in MYSQL_TIME structure See
- more on how to use these types for sending
- dates and times below;
- MYSQL_TYPE_STRING character string, assumed to be in
- character-set-client. If character set of
- client is not equal to character set of
- column, value for this placeholder will be
- converted to destination character set before
- insert.
- MYSQL_TYPE_BLOB sequence of bytes. This sequence is assumed to
- be in binary character set (which is the same
- as no particular character set), and is never
- converted to any other character set. See also
- notes about supplying string/blob length
- below.
- MYSQL_TYPE_NULL special typecode for binding nulls.
- These C/C++ types are not supported yet by the API: long double,
- bool.
-
- As you can see from the list above, it's responsibility of
- application programmer to ensure that chosen typecode properly
- corresponds to host language type. For example on all platforms
- where we build MySQL packages (as of MySQL 4.1.4) int is a 32-bit
- type. So for int you can always assume that proper typecode is
- MYSQL_TYPE_LONG (however queer it sounds, the name is legacy of the
- old MySQL API). In contrary sizeof(long) can be 4 or 8 8-bit bytes,
- depending on platform.
-
- TODO: provide client typedefs for each integer and floating point
- typecode, i. e. int8, uint8, float32, etc.
-
- Once typecode was set, it's necessary to assign MYSQL_BIND::buffer
- to point to the buffer of given type. Finally, additional actions
- may be taken for some types or use cases:
-
- Binding integer types.
- For integer types you might also need to set MYSQL_BIND::is_unsigned
- member. Set it to TRUE when binding unsigned char, unsigned short,
- unsigned int, unsigned long, unsigned long long.
-
- Binding floating point types.
- For floating point types you just need to set
- MYSQL_BIND::buffer_type and MYSQL_BIND::buffer. The rest of the
- members should be zero-initialized.
-
- Binding NULLs.
- You might have a column always NULL, never NULL, or sometimes
- NULL. For an always NULL column set MYSQL_BIND::buffer_type to
- MYSQL_TYPE_NULL. The rest of the members just need to be
- zero-initialized. For never NULL columns set
- MYSQL_BIND::is_null to 0, or this has already been done if you
- zero-initialized the entire structure. If you set
- MYSQL_TYPE::is_null to point to an application buffer of type
- 'my_bool', then this buffer will be checked on each execution:
- this way you can set the buffer to TRUE, or any non-0 value for
- NULLs, and to FALSE or 0 for not NULL data.
-
- Binding text strings and sequences of bytes.
- For strings, in addition to MYSQL_BIND::buffer_type and
- MYSQL_BIND::buffer you need to set MYSQL_BIND::length or
- MYSQL_BIND::buffer_length. If 'length' is set, 'buffer_length'
- is ignored. 'buffer_length' member should be used when size of
- string doesn't change between executions. If you want to vary
- buffer length for each value, set 'length' to point to an
- application buffer of type 'unsigned long' and set this long to
- length of the string before each mysql_stmt_execute().
-
- Binding dates and times.
- For binding dates and times prepared statements API provides
- clients with MYSQL_TIME structure. A pointer to instance of this
- structure should be assigned to MYSQL_BIND::buffer whenever
- MYSQL_TYPE_TIME, MYSQL_TYPE_DATE, MYSQL_TYPE_DATETIME typecodes
- are used. When typecode is MYSQL_TYPE_TIME, only members
- 'hour', 'minute', 'second' and 'neg' (is time offset negative)
- are used. These members only will be sent to the server.
- MYSQL_TYPE_DATE implies use of 'year', 'month', 'day', 'neg'.
- MYSQL_TYPE_DATETIME utilizes both parts of MYSQL_TIME structure.
- You don't have to set MYSQL_TIME::time_type member: it's not
- used when sending data to the server, typecode information is
- enough. 'second_part' member can hold microsecond precision of
- time value, but now it's only supported on protocol level: you
- can't store microsecond in a column, or use in temporal
- calculations. However, if you send a time value with microsecond
- part for 'SELECT ?', statement, you'll get it back unchanged
- from the server.
-
- Data conversion.
- If conversion from host language type to data representation,
- corresponding to SQL type, is required it's done on the server.
- Data truncation is possible when conversion is lossy. For
- example, if you supply MYSQL_TYPE_DATETIME value out of valid
- SQL type TIMESTAMP range, the same conversion will be applied as
- if this value would have been sent as string in the old
- protocol. TODO: document how the server will behave in case of
- truncation/data loss.
-
- After variables were bound, you can repeatedly set/change their
- values and mysql_stmt_execute() the statement.
-
- See also: mysql_stmt_send_long_data() for sending long text/blob
- data in pieces, examples in tests/mysql_client_test.c.
- Next steps you might want to make:
- - execute statement with mysql_stmt_execute(),
- - reset statement using mysql_stmt_reset() or reprepare it with
- another query using mysql_stmt_prepare()
- - close statement with mysql_stmt_close().
-
- IMPLEMENTATION
- The function copies given bind array to internal storage of the
- statement, and sets up typecode-specific handlers to perform
- serialization of bound data. This means that although you don't need
- to call this routine after each assignment to bind buffers, you
- need to call it each time you change parameter typecodes, or other
- members of MYSQL_BIND array.
- This is a pure local call. Data types of client buffers are sent
- along with buffers' data at first execution of the statement.
-
- RETURN
- 0 success
- 1 error, can be retrieved with mysql_stmt_error.
-*/
-
-my_bool STDCALL mysql_stmt_bind_param(MYSQL_STMT *stmt, MYSQL_BIND *my_bind)
-{
- uint count=0;
- MYSQL_BIND *param, *end;
- DBUG_ENTER("mysql_stmt_bind_param");
-
- if (!stmt->param_count)
- {
- if ((int) stmt->state < (int) MYSQL_STMT_PREPARE_DONE)
- {
- set_stmt_error(stmt, CR_NO_PREPARE_STMT, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
- DBUG_RETURN(0);
- }
-
- /* Allocated on prepare */
- memcpy((char*) stmt->params, (char*) my_bind,
- sizeof(MYSQL_BIND) * stmt->param_count);
-
- for (param= stmt->params, end= param+stmt->param_count;
- param < end ;
- param++)
- {
- param->param_number= count++;
- param->long_data_used= 0;
-
- /* If param->is_null is not set, then the value can never be NULL */
- if (!param->is_null)
- param->is_null= &int_is_null_false;
-
- /* Setup data copy functions for the different supported types */
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL:
- param->is_null= &int_is_null_true;
- break;
- case MYSQL_TYPE_TINY:
- /* Force param->length as this is fixed for this type */
- param->length= &param->buffer_length;
- param->buffer_length= 1;
- param->store_param_func= store_param_tinyint;
- break;
- case MYSQL_TYPE_SHORT:
- param->length= &param->buffer_length;
- param->buffer_length= 2;
- param->store_param_func= store_param_short;
- break;
- case MYSQL_TYPE_LONG:
- param->length= &param->buffer_length;
- param->buffer_length= 4;
- param->store_param_func= store_param_int32;
- break;
- case MYSQL_TYPE_LONGLONG:
- param->length= &param->buffer_length;
- param->buffer_length= 8;
- param->store_param_func= store_param_int64;
- break;
- case MYSQL_TYPE_FLOAT:
- param->length= &param->buffer_length;
- param->buffer_length= 4;
- param->store_param_func= store_param_float;
- break;
- case MYSQL_TYPE_DOUBLE:
- param->length= &param->buffer_length;
- param->buffer_length= 8;
- param->store_param_func= store_param_double;
- break;
- case MYSQL_TYPE_TIME:
- param->store_param_func= store_param_time;
- param->buffer_length= MAX_TIME_REP_LENGTH;
- break;
- case MYSQL_TYPE_DATE:
- param->store_param_func= store_param_date;
- param->buffer_length= MAX_DATE_REP_LENGTH;
- break;
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- param->store_param_func= store_param_datetime;
- param->buffer_length= MAX_DATETIME_REP_LENGTH;
- break;
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_VARCHAR:
- case MYSQL_TYPE_VAR_STRING:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- param->store_param_func= store_param_str;
- /*
- For variable length types user must set either length or
- buffer_length.
- */
- break;
- default:
- strmov(stmt->sqlstate, unknown_sqlstate);
- sprintf(stmt->last_error,
- ER(stmt->last_errno= CR_UNSUPPORTED_PARAM_TYPE),
- param->buffer_type, count);
- DBUG_RETURN(1);
- }
- /*
- If param->length is not given, change it to point to buffer_length.
- This way we can always use *param->length to get the length of data
- */
- if (!param->length)
- param->length= &param->buffer_length;
- }
- /* We have to send/resend type information to MySQL */
- stmt->send_types_to_server= TRUE;
- stmt->bind_param_done= TRUE;
- DBUG_RETURN(0);
-}
-
-
-/********************************************************************
- Long data implementation
-*********************************************************************/
-
-/*
- Send long data in pieces to the server
-
- SYNOPSIS
- mysql_stmt_send_long_data()
- stmt Statement handler
- param_number Parameter number (0 - N-1)
- data Data to send to server
- length Length of data to send (may be 0)
-
- DESCRIPTION
- This call can be used repeatedly to send long data in pieces
- for any string/binary placeholder. Data supplied for
- a placeholder is saved at server side till execute, and then
- used instead of value from MYSQL_BIND object. More precisely,
- if long data for a parameter was supplied, MYSQL_BIND object
- corresponding to this parameter is not sent to server. In the
- end of execution long data states of placeholders are reset,
- so next time values of such placeholders will be taken again
- from MYSQL_BIND array.
- The server does not reply to this call: if there was an error
- in data handling (which now only can happen if server run out
- of memory) it would be returned in reply to
- mysql_stmt_execute().
- You should choose type of long data carefully if you care
- about character set conversions performed by server when the
- statement is executed. No conversion is performed at all for
- MYSQL_TYPE_BLOB and other binary typecodes. For
- MYSQL_TYPE_STRING and the rest of text placeholders data is
- converted from client character set to character set of
- connection. If these character sets are different, this
- conversion may require additional memory at server, equal to
- total size of supplied pieces.
-
- RETURN VALUES
- 0 ok
- 1 error
-*/
-
-my_bool STDCALL
-mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number,
- const char *data, ulong length)
-{
- MYSQL_BIND *param;
- DBUG_ENTER("mysql_stmt_send_long_data");
- DBUG_ASSERT(stmt != 0);
- DBUG_PRINT("enter",("param no: %d data: 0x%lx, length : %ld",
- param_number, (long) data, length));
-
- /*
- We only need to check for stmt->param_count, if it's not null
- prepare was done.
- */
- if (param_number >= stmt->param_count)
- {
- set_stmt_error(stmt, CR_INVALID_PARAMETER_NO, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- param= stmt->params+param_number;
- if (!IS_LONGDATA(param->buffer_type))
- {
- /* Long data handling should be used only for string/binary types */
- strmov(stmt->sqlstate, unknown_sqlstate);
- sprintf(stmt->last_error, ER(stmt->last_errno= CR_INVALID_BUFFER_USE),
- param->param_number);
- DBUG_RETURN(1);
- }
-
- /*
- Send long data packet if there is data or we're sending long data
- for the first time.
- */
- if (length || param->long_data_used == 0)
- {
- MYSQL *mysql= stmt->mysql;
- /* Packet header: stmt id (4 bytes), param no (2 bytes) */
- uchar buff[MYSQL_LONG_DATA_HEADER];
-
- int4store(buff, stmt->stmt_id);
- int2store(buff + 4, param_number);
- param->long_data_used= 1;
-
- /*
- Note that we don't get any ok packet from the server in this case
- This is intentional to save bandwidth.
- */
- if ((*mysql->methods->advanced_command)(mysql, COM_STMT_SEND_LONG_DATA,
- buff, sizeof(buff), (uchar*) data,
- length, 1, stmt))
- {
- /*
- Don't set stmt error if stmt->mysql is NULL, as the error in this case
- has already been set by mysql_prune_stmt_list().
- */
- if (stmt->mysql)
- set_stmt_errmsg(stmt, &mysql->net);
- DBUG_RETURN(1);
- }
- }
- DBUG_RETURN(0);
-}
-
-
-/********************************************************************
- Fetch and conversion of result set rows (binary protocol).
-*********************************************************************/
-
-/*
- Read date, (time, datetime) value from network buffer and store it
- in MYSQL_TIME structure.
-
- SYNOPSIS
- read_binary_{date,time,datetime}()
- tm MYSQL_TIME structure to fill
- pos pointer to current position in network buffer.
- These functions increase pos to point to the beginning of the
- next column.
-
- Auxiliary functions to read time (date, datetime) values from network
- buffer and store in MYSQL_TIME structure. Jointly used by conversion
- and no-conversion fetching.
-*/
-
-static void read_binary_time(MYSQL_TIME *tm, uchar **pos)
-{
- /* net_field_length will set pos to the first byte of data */
- uint length= net_field_length(pos);
-
- if (length)
- {
- uchar *to= *pos;
- tm->neg= to[0];
-
- tm->day= (ulong) sint4korr(to+1);
- tm->hour= (uint) to[5];
- tm->minute= (uint) to[6];
- tm->second= (uint) to[7];
- tm->second_part= (length > 8) ? (ulong) sint4korr(to+8) : 0;
- tm->year= tm->month= 0;
- if (tm->day)
- {
- /* Convert days to hours at once */
- tm->hour+= tm->day*24;
- tm->day= 0;
- }
- tm->time_type= MYSQL_TIMESTAMP_TIME;
-
- *pos+= length;
- }
- else
- set_zero_time(tm, MYSQL_TIMESTAMP_TIME);
-}
-
-static void read_binary_datetime(MYSQL_TIME *tm, uchar **pos)
-{
- uint length= net_field_length(pos);
-
- if (length)
- {
- uchar *to= *pos;
-
- tm->neg= 0;
- tm->year= (uint) sint2korr(to);
- tm->month= (uint) to[2];
- tm->day= (uint) to[3];
-
- if (length > 4)
- {
- tm->hour= (uint) to[4];
- tm->minute= (uint) to[5];
- tm->second= (uint) to[6];
- }
- else
- tm->hour= tm->minute= tm->second= 0;
- tm->second_part= (length > 7) ? (ulong) sint4korr(to+7) : 0;
- tm->time_type= MYSQL_TIMESTAMP_DATETIME;
-
- *pos+= length;
- }
- else
- set_zero_time(tm, MYSQL_TIMESTAMP_DATETIME);
-}
-
-static void read_binary_date(MYSQL_TIME *tm, uchar **pos)
-{
- uint length= net_field_length(pos);
-
- if (length)
- {
- uchar *to= *pos;
- tm->year = (uint) sint2korr(to);
- tm->month= (uint) to[2];
- tm->day= (uint) to[3];
-
- tm->hour= tm->minute= tm->second= 0;
- tm->second_part= 0;
- tm->neg= 0;
- tm->time_type= MYSQL_TIMESTAMP_DATE;
-
- *pos+= length;
- }
- else
- set_zero_time(tm, MYSQL_TIMESTAMP_DATE);
-}
-
-
-/*
- Convert string to supplied buffer of any type.
-
- SYNOPSIS
- fetch_string_with_conversion()
- param output buffer descriptor
- value column data
- length data length
-*/
-
-static void fetch_string_with_conversion(MYSQL_BIND *param, char *value,
- uint length)
-{
- char *buffer= (char *)param->buffer;
- int err= 0;
- char *endptr= value + length;
-
- /*
- This function should support all target buffer types: the rest
- of conversion functions can delegate conversion to it.
- */
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL: /* do nothing */
- break;
- case MYSQL_TYPE_TINY:
- {
- longlong data= my_strtoll10(value, &endptr, &err);
- *param->error= (IS_TRUNCATED(data, param->is_unsigned,
- INT_MIN8, INT_MAX8, UINT_MAX8) || err > 0);
- *buffer= (uchar) data;
- break;
- }
- case MYSQL_TYPE_SHORT:
- {
- longlong data= my_strtoll10(value, &endptr, &err);
- *param->error= (IS_TRUNCATED(data, param->is_unsigned,
- INT_MIN16, INT_MAX16, UINT_MAX16) || err > 0);
- shortstore(buffer, (short) data);
- break;
- }
- case MYSQL_TYPE_LONG:
- {
- longlong data= my_strtoll10(value, &endptr, &err);
- *param->error= (IS_TRUNCATED(data, param->is_unsigned,
- INT_MIN32, INT_MAX32, UINT_MAX32) || err > 0);
- longstore(buffer, (int32) data);
- break;
- }
- case MYSQL_TYPE_LONGLONG:
- {
- longlong data= my_strtoll10(value, &endptr, &err);
- *param->error= param->is_unsigned ? err != 0 :
- (err > 0 || (err == 0 && data < 0));
- longlongstore(buffer, data);
- break;
- }
- case MYSQL_TYPE_FLOAT:
- {
- double data= my_strntod(&my_charset_latin1, value, length, &endptr, &err);
- float fdata= (float) data;
- *param->error= (fdata != data) | test(err);
- floatstore(buffer, fdata);
- break;
- }
- case MYSQL_TYPE_DOUBLE:
- {
- double data= my_strntod(&my_charset_latin1, value, length, &endptr, &err);
- *param->error= test(err);
- doublestore(buffer, data);
- break;
- }
- case MYSQL_TYPE_TIME:
- {
- MYSQL_TIME *tm= (MYSQL_TIME *)buffer;
- str_to_time(value, length, tm, &err);
- *param->error= test(err);
- break;
- }
- case MYSQL_TYPE_DATE:
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- {
- MYSQL_TIME *tm= (MYSQL_TIME *)buffer;
- (void) str_to_datetime(value, length, tm, TIME_FUZZY_DATE, &err);
- *param->error= test(err) && (param->buffer_type == MYSQL_TYPE_DATE &&
- tm->time_type != MYSQL_TIMESTAMP_DATE);
- break;
- }
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- default:
- {
- /*
- Copy column data to the buffer taking into account offset,
- data length and buffer length.
- */
- char *start= value + param->offset;
- char *end= value + length;
- ulong copy_length;
- if (start < end)
- {
- copy_length= end - start;
- /* We've got some data beyond offset: copy up to buffer_length bytes */
- if (param->buffer_length)
- memcpy(buffer, start, min(copy_length, param->buffer_length));
- }
- else
- copy_length= 0;
- if (copy_length < param->buffer_length)
- buffer[copy_length]= '\0';
- *param->error= copy_length > param->buffer_length;
- /*
- param->length will always contain length of entire column;
- number of copied bytes may be way different:
- */
- *param->length= length;
- break;
- }
- }
-}
-
-
-/*
- Convert integer value to client buffer of any type.
-
- SYNOPSIS
- fetch_long_with_conversion()
- param output buffer descriptor
- field column metadata
- value column data
-*/
-
-static void fetch_long_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
- longlong value, my_bool is_unsigned)
-{
- char *buffer= (char *)param->buffer;
-
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL: /* do nothing */
- break;
- case MYSQL_TYPE_TINY:
- *param->error= IS_TRUNCATED(value, param->is_unsigned,
- INT_MIN8, INT_MAX8, UINT_MAX8);
- *(uchar *)param->buffer= (uchar) value;
- break;
- case MYSQL_TYPE_SHORT:
- *param->error= IS_TRUNCATED(value, param->is_unsigned,
- INT_MIN16, INT_MAX16, UINT_MAX16);
- shortstore(buffer, (short) value);
- break;
- case MYSQL_TYPE_LONG:
- *param->error= IS_TRUNCATED(value, param->is_unsigned,
- INT_MIN32, INT_MAX32, UINT_MAX32);
- longstore(buffer, (int32) value);
- break;
- case MYSQL_TYPE_LONGLONG:
- longlongstore(buffer, value);
- *param->error= param->is_unsigned != is_unsigned && value < 0;
- break;
- case MYSQL_TYPE_FLOAT:
- {
- /*
- We need to mark the local variable volatile to
- workaround Intel FPU executive precision feature.
- (See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 for details)
- */
- volatile float data;
- if (is_unsigned)
- {
- data= (float) ulonglong2double(value);
- *param->error= ((ulonglong) value) != ((ulonglong) data);
- }
- else
- {
- data= (float)value;
- *param->error= value != ((longlong) data);
- }
- floatstore(buffer, data);
- break;
- }
- case MYSQL_TYPE_DOUBLE:
- {
- volatile double data;
- if (is_unsigned)
- {
- data= ulonglong2double(value);
- *param->error= ((ulonglong) value) != ((ulonglong) data);
- }
- else
- {
- data= (double)value;
- *param->error= value != ((longlong) data);
- }
- doublestore(buffer, data);
- break;
- }
- case MYSQL_TYPE_TIME:
- case MYSQL_TYPE_DATE:
- case MYSQL_TYPE_TIMESTAMP:
- case MYSQL_TYPE_DATETIME:
- {
- int error;
- value= number_to_datetime(value, (MYSQL_TIME *) buffer, TIME_FUZZY_DATE,
- &error);
- *param->error= test(error);
- break;
- }
- default:
- {
- uchar buff[22]; /* Enough for longlong */
- uchar *end= (uchar*) longlong10_to_str(value, (char*) buff,
- is_unsigned ? 10: -10);
- /* Resort to string conversion which supports all typecodes */
- uint length= (uint) (end-buff);
-
- if (field->flags & ZEROFILL_FLAG && length < field->length &&
- field->length < 21)
- {
- bmove_upp(buff+field->length,buff+length, length);
- bfill(buff, field->length - length,'0');
- length= field->length;
- }
- fetch_string_with_conversion(param, (char*) buff, length);
- break;
- }
- }
-}
-
-/*
- Convert double/float column to supplied buffer of any type.
-
- SYNOPSIS
- fetch_float_with_conversion()
- param output buffer descriptor
- field column metadata
- value column data
- type either MY_GCVT_ARG_FLOAT or MY_GCVT_ARG_DOUBLE.
- Affects the maximum number of significant digits
- returned by my_gcvt().
-*/
-
-static void fetch_float_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
- double value, my_gcvt_arg_type type)
-{
- char *buffer= (char *)param->buffer;
- double val64 = (value < 0 ? -floor(-value) : floor(value));
-
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL: /* do nothing */
- break;
- case MYSQL_TYPE_TINY:
- /*
- We need to _store_ data in the buffer before the truncation check to
- workaround Intel FPU executive precision feature.
- (See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=323 for details)
- Sic: AFAIU it does not guarantee to work.
- */
- if (param->is_unsigned)
- *buffer= (uint8) value;
- else
- *buffer= (int8) value;
- *param->error= val64 != (param->is_unsigned ? (double)((uint8) *buffer) :
- (double)((int8) *buffer));
- break;
- case MYSQL_TYPE_SHORT:
- if (param->is_unsigned)
- {
- ushort data= (ushort) value;
- shortstore(buffer, data);
- }
- else
- {
- short data= (short) value;
- shortstore(buffer, data);
- }
- *param->error= val64 != (param->is_unsigned ? (double) (*(ushort*) buffer):
- (double) (*(short*) buffer));
- break;
- case MYSQL_TYPE_LONG:
- if (param->is_unsigned)
- {
- uint32 data= (uint32) value;
- longstore(buffer, data);
- }
- else
- {
- int32 data= (int32) value;
- longstore(buffer, data);
- }
- *param->error= val64 != (param->is_unsigned ? (double) (*(uint32*) buffer):
- (double) (*(int32*) buffer));
- break;
- case MYSQL_TYPE_LONGLONG:
- if (param->is_unsigned)
- {
- ulonglong data= (ulonglong) value;
- longlongstore(buffer, data);
- }
- else
- {
- longlong data= (longlong) value;
- longlongstore(buffer, data);
- }
- *param->error= val64 != (param->is_unsigned ?
- ulonglong2double(*(ulonglong*) buffer) :
- (double) (*(longlong*) buffer));
- break;
- case MYSQL_TYPE_FLOAT:
- {
- float data= (float) value;
- floatstore(buffer, data);
- *param->error= (*(float*) buffer) != value;
- break;
- }
- case MYSQL_TYPE_DOUBLE:
- {
- doublestore(buffer, value);
- break;
- }
- default:
- {
- /*
- Resort to fetch_string_with_conversion: this should handle
- floating point -> string conversion nicely, honor all typecodes
- and param->offset possibly set in mysql_stmt_fetch_column
- */
- char buff[FLOATING_POINT_BUFFER];
- size_t len;
- if (field->decimals >= NOT_FIXED_DEC)
- len= my_gcvt(value, type,
- (int) min(sizeof(buff)-1, param->buffer_length),
- buff, NULL);
- else
- len= my_fcvt(value, (int) field->decimals, buff, NULL);
-
- if (field->flags & ZEROFILL_FLAG && len < field->length &&
- field->length < MAX_DOUBLE_STRING_REP_LENGTH - 1)
- {
- bmove_upp((uchar*) buff + field->length, (uchar*) buff + len,
- len);
- bfill((char*) buff, field->length - len, '0');
- len= field->length;
- }
- fetch_string_with_conversion(param, buff, len);
-
- break;
- }
- }
-}
-
-
-/*
- Fetch time/date/datetime to supplied buffer of any type
-
- SYNOPSIS
- param output buffer descriptor
- time column data
-*/
-
-static void fetch_datetime_with_conversion(MYSQL_BIND *param,
- MYSQL_FIELD *field,
- MYSQL_TIME *my_time)
-{
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL: /* do nothing */
- break;
- case MYSQL_TYPE_DATE:
- *(MYSQL_TIME *)(param->buffer)= *my_time;
- *param->error= my_time->time_type != MYSQL_TIMESTAMP_DATE;
- break;
- case MYSQL_TYPE_TIME:
- *(MYSQL_TIME *)(param->buffer)= *my_time;
- *param->error= my_time->time_type != MYSQL_TIMESTAMP_TIME;
- break;
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- *(MYSQL_TIME *)(param->buffer)= *my_time;
- /* No error: time and date are compatible with datetime */
- break;
- case MYSQL_TYPE_YEAR:
- shortstore(param->buffer, my_time->year);
- *param->error= 1;
- break;
- case MYSQL_TYPE_FLOAT:
- case MYSQL_TYPE_DOUBLE:
- {
- ulonglong value= TIME_to_ulonglong(my_time);
- fetch_float_with_conversion(param, field,
- ulonglong2double(value), MY_GCVT_ARG_DOUBLE);
- break;
- }
- case MYSQL_TYPE_TINY:
- case MYSQL_TYPE_SHORT:
- case MYSQL_TYPE_INT24:
- case MYSQL_TYPE_LONG:
- case MYSQL_TYPE_LONGLONG:
- {
- longlong value= (longlong) TIME_to_ulonglong(my_time);
- fetch_long_with_conversion(param, field, value, TRUE);
- break;
- }
- default:
- {
- /*
- Convert time value to string and delegate the rest to
- fetch_string_with_conversion:
- */
- char buff[MAX_DATE_STRING_REP_LENGTH];
- uint length= my_TIME_to_str(my_time, buff);
- /* Resort to string conversion */
- fetch_string_with_conversion(param, (char *)buff, length);
- break;
- }
- }
-}
-
-
-/*
- Fetch and convert result set column to output buffer.
-
- SYNOPSIS
- fetch_result_with_conversion()
- param output buffer descriptor
- field column metadata
- row points to a column of result set tuple in binary format
-
- DESCRIPTION
- This is a fallback implementation of column fetch used
- if column and output buffer types do not match.
- Increases tuple pointer to point at the next column within the
- tuple.
-*/
-
-static void fetch_result_with_conversion(MYSQL_BIND *param, MYSQL_FIELD *field,
- uchar **row)
-{
- enum enum_field_types field_type= field->type;
- uint field_is_unsigned= field->flags & UNSIGNED_FLAG;
-
- switch (field_type) {
- case MYSQL_TYPE_TINY:
- {
- uchar value= **row;
- /* sic: we need to cast to 'signed char' as 'char' may be unsigned */
- longlong data= field_is_unsigned ? (longlong) value :
- (longlong) (signed char) value;
- fetch_long_with_conversion(param, field, data, 0);
- *row+= 1;
- break;
- }
- case MYSQL_TYPE_SHORT:
- case MYSQL_TYPE_YEAR:
- {
- short value= sint2korr(*row);
- longlong data= field_is_unsigned ? (longlong) (unsigned short) value :
- (longlong) value;
- fetch_long_with_conversion(param, field, data, 0);
- *row+= 2;
- break;
- }
- case MYSQL_TYPE_INT24: /* mediumint is sent as 4 bytes int */
- case MYSQL_TYPE_LONG:
- {
- int32 value= sint4korr(*row);
- longlong data= field_is_unsigned ? (longlong) (uint32) value :
- (longlong) value;
- fetch_long_with_conversion(param, field, data, 0);
- *row+= 4;
- break;
- }
- case MYSQL_TYPE_LONGLONG:
- {
- longlong value= (longlong)sint8korr(*row);
- fetch_long_with_conversion(param, field, value,
- field->flags & UNSIGNED_FLAG);
- *row+= 8;
- break;
- }
- case MYSQL_TYPE_FLOAT:
- {
- float value;
- float4get(value,*row);
- fetch_float_with_conversion(param, field, value, MY_GCVT_ARG_FLOAT);
- *row+= 4;
- break;
- }
- case MYSQL_TYPE_DOUBLE:
- {
- double value;
- float8get(value,*row);
- fetch_float_with_conversion(param, field, value, MY_GCVT_ARG_DOUBLE);
- *row+= 8;
- break;
- }
- case MYSQL_TYPE_DATE:
- {
- MYSQL_TIME tm;
-
- read_binary_date(&tm, row);
- fetch_datetime_with_conversion(param, field, &tm);
- break;
- }
- case MYSQL_TYPE_TIME:
- {
- MYSQL_TIME tm;
-
- read_binary_time(&tm, row);
- fetch_datetime_with_conversion(param, field, &tm);
- break;
- }
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- {
- MYSQL_TIME tm;
-
- read_binary_datetime(&tm, row);
- fetch_datetime_with_conversion(param, field, &tm);
- break;
- }
- default:
- {
- ulong length= net_field_length(row);
- fetch_string_with_conversion(param, (char*) *row, length);
- *row+= length;
- break;
- }
- }
-}
-
-
-/*
- Functions to fetch data to application buffers without conversion.
-
- All functions have the following characteristics:
-
- SYNOPSIS
- fetch_result_xxx()
- param MySQL bind param
- pos Row value
-
- DESCRIPTION
- These are no-conversion functions, used in binary protocol to store
- rows in application buffers. A function used only if type of binary data
- is compatible with type of application buffer.
-
- RETURN
- none
-*/
-
-static void fetch_result_tinyint(MYSQL_BIND *param, MYSQL_FIELD *field,
- uchar **row)
-{
- my_bool field_is_unsigned= test(field->flags & UNSIGNED_FLAG);
- uchar data= **row;
- *(uchar *)param->buffer= data;
- *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX8;
- (*row)++;
-}
-
-static void fetch_result_short(MYSQL_BIND *param, MYSQL_FIELD *field,
- uchar **row)
-{
- my_bool field_is_unsigned= test(field->flags & UNSIGNED_FLAG);
- ushort data= (ushort) sint2korr(*row);
- shortstore(param->buffer, data);
- *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX16;
- *row+= 2;
-}
-
-static void fetch_result_int32(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- my_bool field_is_unsigned= test(field->flags & UNSIGNED_FLAG);
- uint32 data= (uint32) sint4korr(*row);
- longstore(param->buffer, data);
- *param->error= param->is_unsigned != field_is_unsigned && data > INT_MAX32;
- *row+= 4;
-}
-
-static void fetch_result_int64(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- my_bool field_is_unsigned= test(field->flags & UNSIGNED_FLAG);
- ulonglong data= (ulonglong) sint8korr(*row);
- *param->error= param->is_unsigned != field_is_unsigned && data > LONGLONG_MAX;
- longlongstore(param->buffer, data);
- *row+= 8;
-}
-
-static void fetch_result_float(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- float value;
- float4get(value,*row);
- floatstore(param->buffer, value);
- *row+= 4;
-}
-
-static void fetch_result_double(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- double value;
- float8get(value,*row);
- doublestore(param->buffer, value);
- *row+= 8;
-}
-
-static void fetch_result_time(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
- read_binary_time(tm, row);
-}
-
-static void fetch_result_date(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
- read_binary_date(tm, row);
-}
-
-static void fetch_result_datetime(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- MYSQL_TIME *tm= (MYSQL_TIME *)param->buffer;
- read_binary_datetime(tm, row);
-}
-
-static void fetch_result_bin(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- ulong length= net_field_length(row);
- ulong copy_length= min(length, param->buffer_length);
- memcpy(param->buffer, (char *)*row, copy_length);
- *param->length= length;
- *param->error= copy_length < length;
- *row+= length;
-}
-
-static void fetch_result_str(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-{
- ulong length= net_field_length(row);
- ulong copy_length= min(length, param->buffer_length);
- memcpy(param->buffer, (char *)*row, copy_length);
- /* Add an end null if there is room in the buffer */
- if (copy_length != param->buffer_length)
- ((uchar *)param->buffer)[copy_length]= '\0';
- *param->length= length; /* return total length */
- *param->error= copy_length < length;
- *row+= length;
-}
-
-
-/*
- functions to calculate max lengths for strings during
- mysql_stmt_store_result()
-*/
-
-static void skip_result_fixed(MYSQL_BIND *param,
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-
-{
- (*row)+= param->pack_length;
-}
-
-
-static void skip_result_with_length(MYSQL_BIND *param __attribute__((unused)),
- MYSQL_FIELD *field __attribute__((unused)),
- uchar **row)
-
-{
- ulong length= net_field_length(row);
- (*row)+= length;
-}
-
-
-static void skip_result_string(MYSQL_BIND *param __attribute__((unused)),
- MYSQL_FIELD *field,
- uchar **row)
-
-{
- ulong length= net_field_length(row);
- (*row)+= length;
- if (field->max_length < length)
- field->max_length= length;
-}
-
-
-/*
- Check that two field types are binary compatible i. e.
- have equal representation in the binary protocol and
- require client-side buffers of the same type.
-
- SYNOPSIS
- is_binary_compatible()
- type1 parameter type supplied by user
- type2 field type, obtained from result set metadata
-
- RETURN
- TRUE or FALSE
-*/
-
-static my_bool is_binary_compatible(enum enum_field_types type1,
- enum enum_field_types type2)
-{
- static const enum enum_field_types
- range1[]= { MYSQL_TYPE_SHORT, MYSQL_TYPE_YEAR, MYSQL_TYPE_NULL },
- range2[]= { MYSQL_TYPE_INT24, MYSQL_TYPE_LONG, MYSQL_TYPE_NULL },
- range3[]= { MYSQL_TYPE_DATETIME, MYSQL_TYPE_TIMESTAMP, MYSQL_TYPE_NULL },
- range4[]= { MYSQL_TYPE_ENUM, MYSQL_TYPE_SET, MYSQL_TYPE_TINY_BLOB,
- MYSQL_TYPE_MEDIUM_BLOB, MYSQL_TYPE_LONG_BLOB, MYSQL_TYPE_BLOB,
- MYSQL_TYPE_VAR_STRING, MYSQL_TYPE_STRING, MYSQL_TYPE_GEOMETRY,
- MYSQL_TYPE_DECIMAL, MYSQL_TYPE_NULL };
- static const enum enum_field_types
- *range_list[]= { range1, range2, range3, range4 },
- **range_list_end= range_list + sizeof(range_list)/sizeof(*range_list);
- const enum enum_field_types **range, *type;
-
- if (type1 == type2)
- return TRUE;
- for (range= range_list; range != range_list_end; ++range)
- {
- /* check that both type1 and type2 are in the same range */
- my_bool type1_found= FALSE, type2_found= FALSE;
- for (type= *range; *type != MYSQL_TYPE_NULL; type++)
- {
- type1_found|= type1 == *type;
- type2_found|= type2 == *type;
- }
- if (type1_found || type2_found)
- return type1_found && type2_found;
- }
- return FALSE;
-}
-
-
-/*
- Setup a fetch function for one column of a result set.
-
- SYNOPSIS
- setup_one_fetch_function()
- param output buffer descriptor
- field column descriptor
-
- DESCRIPTION
- When user binds result set buffers or when result set
- metadata is changed, we need to setup fetch (and possibly
- conversion) functions for all columns of the result set.
- In addition to that here we set up skip_result function, used
- to update result set metadata in case when
- STMT_ATTR_UPDATE_MAX_LENGTH attribute is set.
- Notice that while fetch_result is chosen depending on both
- field->type and param->type, skip_result depends on field->type
- only.
-
- RETURN
- TRUE fetch function for this typecode was not found (typecode
- is not supported by the client library)
- FALSE success
-*/
-
-static my_bool setup_one_fetch_function(MYSQL_BIND *param, MYSQL_FIELD *field)
-{
- DBUG_ENTER("setup_one_fetch_function");
-
- /* Setup data copy functions for the different supported types */
- switch (param->buffer_type) {
- case MYSQL_TYPE_NULL: /* for dummy binds */
- /*
- It's not binary compatible with anything the server can return:
- no need to setup fetch_result, as it'll be reset anyway
- */
- *param->length= 0;
- break;
- case MYSQL_TYPE_TINY:
- param->fetch_result= fetch_result_tinyint;
- *param->length= 1;
- break;
- case MYSQL_TYPE_SHORT:
- case MYSQL_TYPE_YEAR:
- param->fetch_result= fetch_result_short;
- *param->length= 2;
- break;
- case MYSQL_TYPE_INT24:
- case MYSQL_TYPE_LONG:
- param->fetch_result= fetch_result_int32;
- *param->length= 4;
- break;
- case MYSQL_TYPE_LONGLONG:
- param->fetch_result= fetch_result_int64;
- *param->length= 8;
- break;
- case MYSQL_TYPE_FLOAT:
- param->fetch_result= fetch_result_float;
- *param->length= 4;
- break;
- case MYSQL_TYPE_DOUBLE:
- param->fetch_result= fetch_result_double;
- *param->length= 8;
- break;
- case MYSQL_TYPE_TIME:
- param->fetch_result= fetch_result_time;
- *param->length= sizeof(MYSQL_TIME);
- break;
- case MYSQL_TYPE_DATE:
- param->fetch_result= fetch_result_date;
- *param->length= sizeof(MYSQL_TIME);
- break;
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- param->fetch_result= fetch_result_datetime;
- *param->length= sizeof(MYSQL_TIME);
- break;
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_BIT:
- DBUG_ASSERT(param->buffer_length != 0);
- param->fetch_result= fetch_result_bin;
- break;
- case MYSQL_TYPE_VAR_STRING:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- case MYSQL_TYPE_NEWDATE:
- DBUG_ASSERT(param->buffer_length != 0);
- param->fetch_result= fetch_result_str;
- break;
- default:
- DBUG_PRINT("error", ("Unknown param->buffer_type: %u",
- (uint) param->buffer_type));
- DBUG_RETURN(TRUE);
- }
- if (! is_binary_compatible(param->buffer_type, field->type))
- param->fetch_result= fetch_result_with_conversion;
-
- /* Setup skip_result functions (to calculate max_length) */
- param->skip_result= skip_result_fixed;
- switch (field->type) {
- case MYSQL_TYPE_NULL: /* for dummy binds */
- param->pack_length= 0;
- field->max_length= 0;
- break;
- case MYSQL_TYPE_TINY:
- param->pack_length= 1;
- field->max_length= 4; /* as in '-127' */
- break;
- case MYSQL_TYPE_YEAR:
- case MYSQL_TYPE_SHORT:
- param->pack_length= 2;
- field->max_length= 6; /* as in '-32767' */
- break;
- case MYSQL_TYPE_INT24:
- field->max_length= 9; /* as in '16777216' or in '-8388607' */
- param->pack_length= 4;
- break;
- case MYSQL_TYPE_LONG:
- field->max_length= 11; /* '-2147483647' */
- param->pack_length= 4;
- break;
- case MYSQL_TYPE_LONGLONG:
- field->max_length= 21; /* '18446744073709551616' */
- param->pack_length= 8;
- break;
- case MYSQL_TYPE_FLOAT:
- param->pack_length= 4;
- field->max_length= MAX_DOUBLE_STRING_REP_LENGTH;
- break;
- case MYSQL_TYPE_DOUBLE:
- param->pack_length= 8;
- field->max_length= MAX_DOUBLE_STRING_REP_LENGTH;
- break;
- case MYSQL_TYPE_TIME:
- field->max_length= 15; /* 19:23:48.123456 */
- param->skip_result= skip_result_with_length;
- break;
- case MYSQL_TYPE_DATE:
- field->max_length= 10; /* 2003-11-11 */
- param->skip_result= skip_result_with_length;
- break;
- case MYSQL_TYPE_DATETIME:
- case MYSQL_TYPE_TIMESTAMP:
- param->skip_result= skip_result_with_length;
- field->max_length= MAX_DATE_STRING_REP_LENGTH;
- break;
- case MYSQL_TYPE_DECIMAL:
- case MYSQL_TYPE_NEWDECIMAL:
- case MYSQL_TYPE_ENUM:
- case MYSQL_TYPE_SET:
- case MYSQL_TYPE_GEOMETRY:
- case MYSQL_TYPE_TINY_BLOB:
- case MYSQL_TYPE_MEDIUM_BLOB:
- case MYSQL_TYPE_LONG_BLOB:
- case MYSQL_TYPE_BLOB:
- case MYSQL_TYPE_VAR_STRING:
- case MYSQL_TYPE_STRING:
- case MYSQL_TYPE_BIT:
- case MYSQL_TYPE_NEWDATE:
- param->skip_result= skip_result_string;
- break;
- default:
- DBUG_PRINT("error", ("Unknown field->type: %u", (uint) field->type));
- DBUG_RETURN(TRUE);
- }
- DBUG_RETURN(FALSE);
-}
-
-
-/*
- Setup the bind buffers for resultset processing
-*/
-
-my_bool STDCALL mysql_stmt_bind_result(MYSQL_STMT *stmt, MYSQL_BIND *my_bind)
-{
- MYSQL_BIND *param, *end;
- MYSQL_FIELD *field;
- ulong bind_count= stmt->field_count;
- uint param_count= 0;
- DBUG_ENTER("mysql_stmt_bind_result");
- DBUG_PRINT("enter",("field_count: %lu", bind_count));
-
- if (!bind_count)
- {
- int errorcode= (int) stmt->state < (int) MYSQL_STMT_PREPARE_DONE ?
- CR_NO_PREPARE_STMT : CR_NO_STMT_METADATA;
- set_stmt_error(stmt, errorcode, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- /*
- We only need to check that stmt->field_count - if it is not null
- stmt->bind was initialized in mysql_stmt_prepare
- stmt->bind overlaps with bind if mysql_stmt_bind_param
- is called from mysql_stmt_store_result.
- */
-
- if (stmt->bind != my_bind)
- memcpy((char*) stmt->bind, (char*) my_bind,
- sizeof(MYSQL_BIND) * bind_count);
-
- for (param= stmt->bind, end= param + bind_count, field= stmt->fields ;
- param < end ;
- param++, field++)
- {
- DBUG_PRINT("info",("buffer_type: %u field_type: %u",
- (uint) param->buffer_type, (uint) field->type));
- /*
- Set param->is_null to point to a dummy variable if it's not set.
- This is to make the execute code easier
- */
- if (!param->is_null)
- param->is_null= &param->is_null_value;
-
- if (!param->length)
- param->length= &param->length_value;
-
- if (!param->error)
- param->error= &param->error_value;
-
- param->param_number= param_count++;
- param->offset= 0;
-
- if (setup_one_fetch_function(param, field))
- {
- strmov(stmt->sqlstate, unknown_sqlstate);
- sprintf(stmt->last_error,
- ER(stmt->last_errno= CR_UNSUPPORTED_PARAM_TYPE),
- field->type, param_count);
- DBUG_RETURN(1);
- }
- }
- stmt->bind_result_done= BIND_RESULT_DONE;
- if (stmt->mysql->options.report_data_truncation)
- stmt->bind_result_done|= REPORT_DATA_TRUNCATION;
-
- DBUG_RETURN(0);
-}
-
-
-/*
- Fetch row data to bind buffers
-*/
-
-static int stmt_fetch_row(MYSQL_STMT *stmt, uchar *row)
-{
- MYSQL_BIND *my_bind, *end;
- MYSQL_FIELD *field;
- uchar *null_ptr, bit;
- int truncation_count= 0;
- /*
- Precondition: if stmt->field_count is zero or row is NULL, read_row_*
- function must return no data.
- */
- DBUG_ASSERT(stmt->field_count);
- DBUG_ASSERT(row);
-
- if (!stmt->bind_result_done)
- {
- /* If output parameters were not bound we should just return success */
- return 0;
- }
-
- null_ptr= row;
- row+= (stmt->field_count+9)/8; /* skip null bits */
- bit= 4; /* first 2 bits are reserved */
-
- /* Copy complete row to application buffers */
- for (my_bind= stmt->bind, end= my_bind + stmt->field_count,
- field= stmt->fields ;
- my_bind < end ;
- my_bind++, field++)
- {
- *my_bind->error= 0;
- if (*null_ptr & bit)
- {
- /*
- We should set both row_ptr and is_null to be able to see
- nulls in mysql_stmt_fetch_column. This is because is_null may point
- to user data which can be overwritten between mysql_stmt_fetch and
- mysql_stmt_fetch_column, and in this case nullness of column will be
- lost. See mysql_stmt_fetch_column for details.
- */
- my_bind->row_ptr= NULL;
- *my_bind->is_null= 1;
- }
- else
- {
- *my_bind->is_null= 0;
- my_bind->row_ptr= row;
- (*my_bind->fetch_result)(my_bind, field, &row);
- truncation_count+= *my_bind->error;
- }
- if (!((bit<<=1) & 255))
- {
- bit= 1; /* To next uchar */
- null_ptr++;
- }
- }
- if (truncation_count && (stmt->bind_result_done & REPORT_DATA_TRUNCATION))
- return MYSQL_DATA_TRUNCATED;
- return 0;
-}
-
-
-int cli_unbuffered_fetch(MYSQL *mysql, char **row)
-{
- if (packet_error == cli_safe_read(mysql))
- return 1;
-
- *row= ((mysql->net.read_pos[0] == 254) ? NULL :
- (char*) (mysql->net.read_pos+1));
- return 0;
-}
-
-
-/*
- Fetch and return row data to bound buffers, if any
-*/
-
-int STDCALL mysql_stmt_fetch(MYSQL_STMT *stmt)
-{
- int rc;
- uchar *row;
- DBUG_ENTER("mysql_stmt_fetch");
-
- if ((rc= (*stmt->read_row_func)(stmt, &row)) ||
- ((rc= stmt_fetch_row(stmt, row)) && rc != MYSQL_DATA_TRUNCATED))
- {
- stmt->state= MYSQL_STMT_PREPARE_DONE; /* XXX: this is buggy */
- stmt->read_row_func= (rc == MYSQL_NO_DATA) ?
- stmt_read_row_no_data : stmt_read_row_no_result_set;
- }
- else
- {
- /* This is to know in mysql_stmt_fetch_column that data was fetched */
- stmt->state= MYSQL_STMT_FETCH_DONE;
- }
- DBUG_RETURN(rc);
-}
-
-
-/*
- Fetch data for one specified column data
-
- SYNOPSIS
- mysql_stmt_fetch_column()
- stmt Prepared statement handler
- my_bind Where data should be placed. Should be filled in as
- when calling mysql_stmt_bind_result()
- column Column to fetch (first column is 0)
- ulong offset Offset in result data (to fetch blob in pieces)
- This is normally 0
- RETURN
- 0 ok
- 1 error
-*/
-
-int STDCALL mysql_stmt_fetch_column(MYSQL_STMT *stmt, MYSQL_BIND *my_bind,
- uint column, ulong offset)
-{
- MYSQL_BIND *param= stmt->bind+column;
- DBUG_ENTER("mysql_stmt_fetch_column");
-
- if ((int) stmt->state < (int) MYSQL_STMT_FETCH_DONE)
- {
- set_stmt_error(stmt, CR_NO_DATA, unknown_sqlstate, NULL);
- return 1;
- }
- if (column >= stmt->field_count)
- {
- set_stmt_error(stmt, CR_INVALID_PARAMETER_NO, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- if (!my_bind->error)
- my_bind->error= &my_bind->error_value;
- *my_bind->error= 0;
- if (param->row_ptr)
- {
- MYSQL_FIELD *field= stmt->fields+column;
- uchar *row= param->row_ptr;
- my_bind->offset= offset;
- if (my_bind->is_null)
- *my_bind->is_null= 0;
- if (my_bind->length) /* Set the length if non char/binary types */
- *my_bind->length= *param->length;
- else
- my_bind->length= &param->length_value; /* Needed for fetch_result() */
- fetch_result_with_conversion(my_bind, field, &row);
- }
- else
- {
- if (my_bind->is_null)
- *my_bind->is_null= 1;
- }
- DBUG_RETURN(0);
-}
-
-
-/*
- Read all rows of data from server (binary format)
-*/
-
-int cli_read_binary_rows(MYSQL_STMT *stmt)
-{
- ulong pkt_len;
- uchar *cp;
- MYSQL *mysql= stmt->mysql;
- MYSQL_DATA *result= &stmt->result;
- MYSQL_ROWS *cur, **prev_ptr= &result->data;
- NET *net;
-
- DBUG_ENTER("cli_read_binary_rows");
-
- if (!mysql)
- {
- set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- net = &mysql->net;
-
- while ((pkt_len= cli_safe_read(mysql)) != packet_error)
- {
- cp= net->read_pos;
- if (cp[0] != 254 || pkt_len >= 8)
- {
- if (!(cur= (MYSQL_ROWS*) alloc_root(&result->alloc,
- sizeof(MYSQL_ROWS) + pkt_len - 1)))
- {
- set_stmt_error(stmt, CR_OUT_OF_MEMORY, unknown_sqlstate, NULL);
- goto err;
- }
- cur->data= (MYSQL_ROW) (cur+1);
- *prev_ptr= cur;
- prev_ptr= &cur->next;
- memcpy((char *) cur->data, (char *) cp+1, pkt_len-1);
- cur->length= pkt_len; /* To allow us to do sanity checks */
- result->rows++;
- }
- else
- {
- /* end of data */
- *prev_ptr= 0;
- mysql->warning_count= uint2korr(cp+1);
- mysql->server_status= uint2korr(cp+3);
- DBUG_PRINT("info",("status: %u warning_count: %u",
- mysql->server_status, mysql->warning_count));
- DBUG_RETURN(0);
- }
- }
- set_stmt_errmsg(stmt, net);
-
-err:
- DBUG_RETURN(1);
-}
-
-
-/*
- Update meta data for statement
-
- SYNOPSIS
- stmt_update_metadata()
- stmt Statement handler
- row Binary data
-
- NOTES
- Only updates MYSQL_FIELD->max_length for strings
-*/
-
-static void stmt_update_metadata(MYSQL_STMT *stmt, MYSQL_ROWS *data)
-{
- MYSQL_BIND *my_bind, *end;
- MYSQL_FIELD *field;
- uchar *null_ptr, bit;
- uchar *row= (uchar*) data->data;
-#ifndef DBUG_OFF
- uchar *row_end= row + data->length;
-#endif
-
- null_ptr= row;
- row+= (stmt->field_count+9)/8; /* skip null bits */
- bit= 4; /* first 2 bits are reserved */
-
- /* Go through all fields and calculate metadata */
- for (my_bind= stmt->bind, end= my_bind + stmt->field_count, field= stmt->fields ;
- my_bind < end ;
- my_bind++, field++)
- {
- if (!(*null_ptr & bit))
- (*my_bind->skip_result)(my_bind, field, &row);
- DBUG_ASSERT(row <= row_end);
- if (!((bit<<=1) & 255))
- {
- bit= 1; /* To next uchar */
- null_ptr++;
- }
- }
-}
-
-
-/*
- Store or buffer the binary results to stmt
-*/
-
-int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt)
-{
- MYSQL *mysql= stmt->mysql;
- MYSQL_DATA *result= &stmt->result;
- DBUG_ENTER("mysql_stmt_store_result");
-
- if (!mysql)
- {
- /* mysql can be reset in mysql_close called from mysql_reconnect */
- set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- if (!stmt->field_count)
- DBUG_RETURN(0);
-
- if ((int) stmt->state < (int) MYSQL_STMT_EXECUTE_DONE)
- {
- set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- if (stmt->last_errno)
- {
- /* An attempt to use an invalid statement handle. */
- DBUG_RETURN(1);
- }
-
- if (mysql->status == MYSQL_STATUS_READY &&
- stmt->server_status & SERVER_STATUS_CURSOR_EXISTS)
- {
- /*
- Server side cursor exist, tell server to start sending the rows
- */
- NET *net= &mysql->net;
- uchar buff[4 /* statement id */ +
- 4 /* number of rows to fetch */];
-
- /* Send row request to the server */
- int4store(buff, stmt->stmt_id);
- int4store(buff + 4, (int)~0); /* number of rows to fetch */
- if (cli_advanced_command(mysql, COM_STMT_FETCH, buff, sizeof(buff),
- (uchar*) 0, 0, 1, stmt))
- {
- /*
- Don't set stmt error if stmt->mysql is NULL, as the error in this case
- has already been set by mysql_prune_stmt_list().
- */
- if (stmt->mysql)
- set_stmt_errmsg(stmt, net);
- DBUG_RETURN(1);
- }
- }
- else if (mysql->status != MYSQL_STATUS_STATEMENT_GET_RESULT)
- {
- set_stmt_error(stmt, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
-
- if (stmt->update_max_length && !stmt->bind_result_done)
- {
- /*
- We must initalize the bind structure to be able to calculate
- max_length
- */
- MYSQL_BIND *my_bind, *end;
- MYSQL_FIELD *field;
- bzero((char*) stmt->bind, sizeof(*stmt->bind)* stmt->field_count);
-
- for (my_bind= stmt->bind, end= my_bind + stmt->field_count,
- field= stmt->fields;
- my_bind < end ;
- my_bind++, field++)
- {
- my_bind->buffer_type= MYSQL_TYPE_NULL;
- my_bind->buffer_length=1;
- }
-
- if (mysql_stmt_bind_result(stmt, stmt->bind))
- DBUG_RETURN(1);
- stmt->bind_result_done= 0; /* No normal bind done */
- }
-
- if ((*mysql->methods->read_binary_rows)(stmt))
- {
- free_root(&result->alloc, MYF(MY_KEEP_PREALLOC));
- result->data= NULL;
- result->rows= 0;
- mysql->status= MYSQL_STATUS_READY;
- DBUG_RETURN(1);
- }
-
- /* Assert that if there was a cursor, all rows have been fetched */
- DBUG_ASSERT(mysql->status != MYSQL_STATUS_READY ||
- (mysql->server_status & SERVER_STATUS_LAST_ROW_SENT));
-
- if (stmt->update_max_length)
- {
- MYSQL_ROWS *cur= result->data;
- for(; cur; cur=cur->next)
- stmt_update_metadata(stmt, cur);
- }
-
- stmt->data_cursor= result->data;
- mysql->affected_rows= stmt->affected_rows= result->rows;
- stmt->read_row_func= stmt_read_row_buffered;
- mysql->unbuffered_fetch_owner= 0; /* set in stmt_execute */
- mysql->status= MYSQL_STATUS_READY; /* server is ready */
- DBUG_RETURN(0); /* Data buffered, must be fetched with mysql_stmt_fetch() */
-}
-
-
-/*
- Seek to desired row in the statement result set
-*/
-
-MYSQL_ROW_OFFSET STDCALL
-mysql_stmt_row_seek(MYSQL_STMT *stmt, MYSQL_ROW_OFFSET row)
-{
- MYSQL_ROW_OFFSET offset= stmt->data_cursor;
- DBUG_ENTER("mysql_stmt_row_seek");
-
- stmt->data_cursor= row;
- DBUG_RETURN(offset);
-}
-
-
-/*
- Return the current statement row cursor position
-*/
-
-MYSQL_ROW_OFFSET STDCALL
-mysql_stmt_row_tell(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("mysql_stmt_row_tell");
-
- DBUG_RETURN(stmt->data_cursor);
-}
-
-
-/*
- Move the stmt result set data cursor to specified row
-*/
-
-void STDCALL
-mysql_stmt_data_seek(MYSQL_STMT *stmt, my_ulonglong row)
-{
- MYSQL_ROWS *tmp= stmt->result.data;
- DBUG_ENTER("mysql_stmt_data_seek");
- DBUG_PRINT("enter",("row id to seek: %ld",(long) row));
-
- for (; tmp && row; --row, tmp= tmp->next)
- ;
- stmt->data_cursor= tmp;
- if (!row && tmp)
- {
- /* Rewind the counter */
- stmt->read_row_func= stmt_read_row_buffered;
- stmt->state= MYSQL_STMT_EXECUTE_DONE;
- }
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Return total rows the current statement result set
-*/
-
-my_ulonglong STDCALL mysql_stmt_num_rows(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("mysql_stmt_num_rows");
-
- DBUG_RETURN(stmt->result.rows);
-}
-
-
-/*
- Free the client side memory buffers, reset long data state
- on client if necessary, and reset the server side statement if
- this has been requested.
-*/
-
-static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags)
-{
- /* If statement hasn't been prepared there is nothing to reset */
- if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE)
- {
- MYSQL *mysql= stmt->mysql;
- MYSQL_DATA *result= &stmt->result;
-
- /*
- Reset stored result set if so was requested or it's a part
- of cursor fetch.
- */
- if (flags & RESET_STORE_RESULT)
- {
- /* Result buffered */
- free_root(&result->alloc, MYF(MY_KEEP_PREALLOC));
- result->data= NULL;
- result->rows= 0;
- stmt->data_cursor= NULL;
- }
- if (flags & RESET_LONG_DATA)
- {
- MYSQL_BIND *param= stmt->params, *param_end= param + stmt->param_count;
- /* Clear long_data_used flags */
- for (; param < param_end; param++)
- param->long_data_used= 0;
- }
- stmt->read_row_func= stmt_read_row_no_result_set;
- if (mysql)
- {
- if ((int) stmt->state > (int) MYSQL_STMT_PREPARE_DONE)
- {
- if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled)
- mysql->unbuffered_fetch_owner= 0;
- if (stmt->field_count && mysql->status != MYSQL_STATUS_READY)
- {
- /* There is a result set and it belongs to this statement */
- (*mysql->methods->flush_use_result)(mysql, FALSE);
- if (mysql->unbuffered_fetch_owner)
- *mysql->unbuffered_fetch_owner= TRUE;
- mysql->status= MYSQL_STATUS_READY;
- }
- }
- if (flags & RESET_SERVER_SIDE)
- {
- /*
- Reset the server side statement and close the server side
- cursor if it exists.
- */
- uchar buff[MYSQL_STMT_HEADER]; /* packet header: 4 bytes for stmt id */
- int4store(buff, stmt->stmt_id);
- if ((*mysql->methods->advanced_command)(mysql, COM_STMT_RESET, buff,
- sizeof(buff), 0, 0, 0, stmt))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- stmt->state= MYSQL_STMT_INIT_DONE;
- return 1;
- }
- }
- }
- if (flags & RESET_CLEAR_ERROR)
- stmt_clear_error(stmt);
- stmt->state= MYSQL_STMT_PREPARE_DONE;
- }
- return 0;
-}
-
-my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("mysql_stmt_free_result");
-
- /* Free the client side and close the server side cursor if there is one */
- DBUG_RETURN(reset_stmt_handle(stmt, RESET_LONG_DATA | RESET_STORE_RESULT |
- RESET_CLEAR_ERROR));
-}
-
-/********************************************************************
- statement error handling and close
-*********************************************************************/
-
-/*
- Close the statement handle by freeing all alloced resources
-
- SYNOPSIS
- mysql_stmt_close()
- stmt Statement handle
-
- RETURN VALUES
- 0 ok
- 1 error
-*/
-
-my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt)
-{
- MYSQL *mysql= stmt->mysql;
- int rc= 0;
- DBUG_ENTER("mysql_stmt_close");
-
- free_root(&stmt->result.alloc, MYF(0));
- free_root(&stmt->mem_root, MYF(0));
-
- if (mysql)
- {
- mysql->stmts= list_delete(mysql->stmts, &stmt->list);
- /*
- Clear NET error state: if the following commands come through
- successfully, connection will still be usable for other commands.
- */
- net_clear_error(&mysql->net);
- if ((int) stmt->state > (int) MYSQL_STMT_INIT_DONE)
- {
- uchar buff[MYSQL_STMT_HEADER]; /* 4 bytes - stmt id */
-
- if (mysql->unbuffered_fetch_owner == &stmt->unbuffered_fetch_cancelled)
- mysql->unbuffered_fetch_owner= 0;
- if (mysql->status != MYSQL_STATUS_READY)
- {
- /*
- Flush result set of the connection. If it does not belong
- to this statement, set a warning.
- */
- (*mysql->methods->flush_use_result)(mysql, TRUE);
- if (mysql->unbuffered_fetch_owner)
- *mysql->unbuffered_fetch_owner= TRUE;
- mysql->status= MYSQL_STATUS_READY;
- }
- int4store(buff, stmt->stmt_id);
- if ((rc= stmt_command(mysql, COM_STMT_CLOSE, buff, 4, stmt)))
- {
- set_stmt_errmsg(stmt, &mysql->net);
- }
- }
- }
-
- my_free(stmt);
-
- DBUG_RETURN(test(rc));
-}
-
-/*
- Reset the statement buffers in server
-*/
-
-my_bool STDCALL mysql_stmt_reset(MYSQL_STMT *stmt)
-{
- DBUG_ENTER("mysql_stmt_reset");
- DBUG_ASSERT(stmt != 0);
- if (!stmt->mysql)
- {
- /* mysql can be reset in mysql_close called from mysql_reconnect */
- set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate, NULL);
- DBUG_RETURN(1);
- }
- /* Reset the client and server sides of the prepared statement */
- DBUG_RETURN(reset_stmt_handle(stmt,
- RESET_SERVER_SIDE | RESET_LONG_DATA |
- RESET_CLEAR_ERROR));
-}
-
-/*
- Return statement error code
-*/
-
-uint STDCALL mysql_stmt_errno(MYSQL_STMT * stmt)
-{
- DBUG_ENTER("mysql_stmt_errno");
- DBUG_RETURN(stmt->last_errno);
-}
-
-const char *STDCALL mysql_stmt_sqlstate(MYSQL_STMT * stmt)
-{
- DBUG_ENTER("mysql_stmt_sqlstate");
- DBUG_RETURN(stmt->sqlstate);
-}
-
-/*
- Return statement error message
-*/
-
-const char *STDCALL mysql_stmt_error(MYSQL_STMT * stmt)
-{
- DBUG_ENTER("mysql_stmt_error");
- DBUG_RETURN(stmt->last_error);
-}
-
-
-/********************************************************************
- Transactional APIs
-*********************************************************************/
-
-/*
- Commit the current transaction
-*/
-
-my_bool STDCALL mysql_commit(MYSQL * mysql)
-{
- DBUG_ENTER("mysql_commit");
- DBUG_RETURN((my_bool) mysql_real_query(mysql, "commit", 6));
-}
-
-/*
- Rollback the current transaction
-*/
-
-my_bool STDCALL mysql_rollback(MYSQL * mysql)
-{
- DBUG_ENTER("mysql_rollback");
- DBUG_RETURN((my_bool) mysql_real_query(mysql, "rollback", 8));
-}
-
-
-/*
- Set autocommit to either true or false
-*/
-
-my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode)
-{
- DBUG_ENTER("mysql_autocommit");
- DBUG_PRINT("enter", ("mode : %d", auto_mode));
-
- DBUG_RETURN((my_bool) mysql_real_query(mysql, auto_mode ?
- "set autocommit=1":"set autocommit=0",
- 16));
-}
-
-
-/********************************************************************
- Multi query execution + SPs APIs
-*********************************************************************/
-
-/*
- Returns true/false to indicate whether any more query results exist
- to be read using mysql_next_result()
-*/
-
-my_bool STDCALL mysql_more_results(MYSQL *mysql)
-{
- my_bool res;
- DBUG_ENTER("mysql_more_results");
-
- res= ((mysql->server_status & SERVER_MORE_RESULTS_EXISTS) ? 1: 0);
- DBUG_PRINT("exit",("More results exists ? %d", res));
- DBUG_RETURN(res);
-}
-
-
-/*
- Reads and returns the next query results
-*/
-int STDCALL mysql_next_result(MYSQL *mysql)
-{
- DBUG_ENTER("mysql_next_result");
-
- if (mysql->status != MYSQL_STATUS_READY)
- {
- set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate);
- DBUG_RETURN(1);
- }
-
- net_clear_error(&mysql->net);
- mysql->affected_rows= ~(my_ulonglong) 0;
-
- if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
- DBUG_RETURN((*mysql->methods->next_result)(mysql));
-
- DBUG_RETURN(-1); /* No more results */
-}
-
-
-int STDCALL mysql_stmt_next_result(MYSQL_STMT *stmt)
-{
- MYSQL *mysql= stmt->mysql;
- int rc;
- DBUG_ENTER("mysql_stmt_next_result");
-
- if (!mysql)
- DBUG_RETURN(1);
-
- if (stmt->last_errno)
- DBUG_RETURN(stmt->last_errno);
-
- if (mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
- {
- if (reset_stmt_handle(stmt, RESET_STORE_RESULT))
- DBUG_RETURN(1);
- }
-
- rc= mysql_next_result(mysql);
-
- if (rc)
- {
- set_stmt_errmsg(stmt, &mysql->net);
- DBUG_RETURN(rc);
- }
-
- if (mysql->status == MYSQL_STATUS_GET_RESULT)
- mysql->status= MYSQL_STATUS_STATEMENT_GET_RESULT;
-
- stmt->state= MYSQL_STMT_EXECUTE_DONE;
- stmt->bind_result_done= FALSE;
-
- if (mysql->field_count)
- {
- alloc_stmt_fields(stmt);
- prepare_to_fetch_result(stmt);
- }
- else
- {
- stmt->field_count= mysql->field_count;
- }
-
- DBUG_RETURN(0);
-}
-
-
-MYSQL_RES * STDCALL mysql_use_result(MYSQL *mysql)
-{
- return (*mysql->methods->use_result)(mysql);
-}
-
-my_bool STDCALL mysql_read_query_result(MYSQL *mysql)
-{
- return (*mysql->methods->read_query_result)(mysql);
-}
-
diff --git a/dep/mysqllite/libmysql/libmysql_exports.def b/dep/mysqllite/libmysql/libmysql_exports.def
deleted file mode 100644
index b871320f3a3..00000000000
--- a/dep/mysqllite/libmysql/libmysql_exports.def
+++ /dev/null
@@ -1,107 +0,0 @@
-EXPORTS
- load_defaults
- mysql_thread_end
- mysql_thread_init
- myodbc_remove_escape
- mysql_affected_rows
- mysql_autocommit
- mysql_stmt_bind_param
- mysql_stmt_bind_result
- mysql_change_user
- mysql_character_set_name
- mysql_close
- mysql_commit
- mysql_data_seek
- mysql_debug
- mysql_dump_debug_info
- mysql_eof
- mysql_errno
- mysql_error
- mysql_escape_string
- mysql_hex_string
- mysql_stmt_execute
- mysql_stmt_fetch
- mysql_stmt_fetch_column
- mysql_fetch_field
- mysql_fetch_field_direct
- mysql_fetch_fields
- mysql_fetch_lengths
- mysql_fetch_row
- mysql_field_count
- mysql_field_seek
- mysql_field_tell
- mysql_free_result
- mysql_get_client_info
- mysql_get_host_info
- mysql_get_proto_info
- mysql_get_server_info
- mysql_get_client_version
- mysql_get_ssl_cipher
- mysql_info
- mysql_init
- mysql_insert_id
- mysql_kill
- mysql_set_server_option
- mysql_list_dbs
- mysql_list_fields
- mysql_list_processes
- mysql_list_tables
- mysql_more_results
- mysql_next_result
- mysql_num_fields
- mysql_num_rows
- mysql_options
- mysql_stmt_param_count
- mysql_stmt_param_metadata
- mysql_ping
- mysql_stmt_result_metadata
- mysql_query
- mysql_read_query_result
- mysql_real_connect
- mysql_real_escape_string
- mysql_real_query
- mysql_refresh
- mysql_rollback
- mysql_row_seek
- mysql_row_tell
- mysql_select_db
- mysql_stmt_send_long_data
- mysql_send_query
- mysql_shutdown
- mysql_ssl_set
- mysql_stat
- mysql_stmt_affected_rows
- mysql_stmt_close
- mysql_stmt_reset
- mysql_stmt_data_seek
- mysql_stmt_errno
- mysql_stmt_error
- mysql_stmt_free_result
- mysql_stmt_num_rows
- mysql_stmt_row_seek
- mysql_stmt_row_tell
- mysql_stmt_store_result
- mysql_store_result
- mysql_thread_id
- mysql_thread_safe
- mysql_use_result
- mysql_warning_count
- mysql_stmt_sqlstate
- mysql_sqlstate
- mysql_get_server_version
- mysql_stmt_prepare
- mysql_stmt_init
- mysql_stmt_insert_id
- mysql_stmt_attr_get
- mysql_stmt_attr_set
- mysql_stmt_field_count
- mysql_set_local_infile_default
- mysql_set_local_infile_handler
- mysql_embedded
- mysql_server_init
- mysql_server_end
- mysql_set_character_set
- mysql_get_character_set_info
- mysql_stmt_next_result
-
-
diff --git a/dep/mysqllite/mysys/ChangeLog b/dep/mysqllite/mysys/ChangeLog
deleted file mode 100644
index 7a426106667..00000000000
--- a/dep/mysqllite/mysys/ChangeLog
+++ /dev/null
@@ -1,221 +0,0 @@
-2000-02-16 Michael Widenius <monty@monty.pp.sci.fi>
-
-* Added an extra argument to the compare routine for queues to allow
- more advanced key compare functions.
-
-2000-02-10 Michael Widenius <monty@monty.pp.sci.fi>
-
-* Added THR_READ_NO_INSERT lock privilege to thr_lock.
-
-1999-08-21 Michael Widenius <monty@tik.pp.sci.fi>
-
-* Fix that '-1.49 or -1.49' is true
-* Allow negative hexadecimal numbers (like -0x0f).
-* Fixed problem with auto_increment on float and double.
-
-Wed Dec 17 02:13:58 1997 <monty@monty.pp.sci.fi>
-
-* Faster flush of keycache.
-
-Sat Dec 2 21:36:20 1995 Michael Widenius (monty@bitch)
-
- * array.c push_element & alloc_element.
-
-Wed Mar 3 00:54:20 1993 Michael Widenius (monty@bitch)
-
- * Removed automatic O_TRUNC from my_create.
-
-Wed Oct 28 02:10:56 1992 Michael Widenius (monty@bitch)
-
- * Enabled ASNYNC_IO on SUN.
-
-Mon Aug 31 23:51:13 1992 Michael Widenius (monty@bitch)
-
- * Changed tree_insert to return element if ok.
- * Added new define tree_set_pointer().
- * Chagned delete_queue() to not free if allready freed.
-
-Mon Aug 17 01:46:36 1992 Michael Widenius (monty@bitch)
-
- * Added ny cashing-rutine mf_iocash for quicker io.
-
-Wed Aug 12 13:41:18 1992 Michael Widenius (monty@bitch)
-
- * Added new function get_copy_of_memory for combined malloc/copy.
- * Splitted my_malloc to three files.
-
-Thu Jan 23 22:02:37 1992 Michael Widenius (monty at LYNX)
-
- * Added range-checks and aligned checks on ptrs to
- safe_malloc:free and safe_malloc:realloc to catch more
- error nicely without core-dumps.
-
-Wed Nov 13 01:52:18 1991 Michael Widenius (monty at LYNX)
-
- * Added use of mysys as a shared library.
-
-Sat Nov 9 14:38:21 1991 Michael Widenius (monty at LYNX)
-
- * Added expand of ~username to unpack_dirname.
-
-Tue Sep 17 21:15:08 1991 Michael Widenius (monty at LYNX)
-
- * Don't free null-pointers if passed to my_free
-
-Fri May 17 20:11:27 1991 Michael Widenius (monty at LYNX)
-
- * Changed all char * to string. (Can't change const char * because
- of bug in C-definition.
-
-Tue Apr 30 01:32:56 1991 Michael Widenius (monty at LYNX)
-
- * my_path now examines environment for posix variable "_" if
- progname is given and has no path.
-
-Mon Apr 22 16:12:56 1991 Michael Widenius (monty at LYNX)
-
- * Added function my_load_path() to fix path to a hard-path.
-
-Mon Apr 15 22:08:58 1991 Michael Widenius (monty at LYNX)
-
- * Added more info on DBUG-stream when freeing unallocated data.
-
-Wed Apr 3 18:41:28 1991 Michael Widenius (monty at LYNX)
-
- * Added global flag sf_malloc_no_sanity to make it possibly
- to avoid sanity-checks in right code with uses malloc a lot.
-
-Tue Mar 26 15:09:45 1991 Mikael WIDENIUS (monty at panther)
-
- * Made soundex look nicer
-
-Sat Mar 23 10:49:49 1991 Michael Widenius (monty at LYNX)
-
- * Added init of alarm variables to skip some warnings from gcc.
-
-Tue Mar 5 16:50:34 1991 Michael Widenius (monty at LYNX)
-
- * Our qsort now only test if compare() function returns >= 0
- and is optimized for compare() returning > 0.
-
-Fri Nov 23 23:53:46 1990 Michael Widenius (monty at LYNX)
-
- * Added function my_set_alarm_variable to get a variable set
- on some time.
- my_alarm.h added for functions who want to print stat after
- a given time or after a number of loops.
- Changed my_lock to use new function and use defines in my_alarm.h
-
-Mon Oct 1 13:16:15 1990 Michael Widenius (monty at LYNX)
-
- * Added use of asynchronic io in read_cash_record().
- * Added write_cash and flush_write_cash to record cashing.
-
-Sun Sep 16 22:05:25 1990 Michael Widenius (monty at LYNX)
-
- * Added optional alarm to my_lock if one has FCNTL_LOCK. Added new
- defines to my_sys.h.
-
-Mon Aug 27 22:20:38 1990 Michael Widenius (monty at lynx)
-
- * my_end() now can print output about executed program.
- * Added parameter-defines for my_end in my_sys.h
-
-Sun Apr 1 23:29:47 1990 Monty (monty at monty)
-
- * Changed mf_keydisk.c to have separate functions for read and write.
- Read can now return pointer to intern key-buffer to skip
- unessessary memcpy-s.
-
-Fri Mar 23 23:03:39 1990 Monty (monty at monty)
-
- * function test_if_hard_pathname() added in dirname.c
- * my_getwd now only saves changed current dir if dir is a
- hard pathname.
- * changed my_path() to use test_if_hard_pathname()
-
-Thu Mar 1 14:47:59 1990 Monty (monty at monty)
-
- * New function my_path().
-
-Sat Feb 24 02:54:35 1990 Monty (monty at monty)
-
- * Added print of my_progname in my_mess.c
-
-Sun Feb 11 17:55:58 1990 David Axmark (davida at isil)
-
- * Concatenated libarys my_func and my_sys because of to much
- crosswise dependencies.
- * Fixed varagrs code in mf_fixadr.c
-
-Mon Dec 4 17:36:16 1989 Monty (monty at monty)
-
- * Changed safemalloc() to use my_message() if out of memory and
- to check MY_WME if we want this error-messages.
- * Changed my_setwd() to use dos_setdrive() insted of system().
-
-Wed Oct 25 02:56:07 1989 Monty (monty at monty)
-
- * Changed my_mktmp1() to work like tempnam() with default dirname.
- * Changed name of my_mktmp1.c to my_tempnam.c
-
-Thu Oct 19 16:39:27 1989 David Axmark (davida at isil)
-
- * Removed libary mysysnc. Instead added a hook to my_error that
- can call my_message if needed.
-
-Thu Oct 5 01:33:29 1989 David Axmark (davida at isil)
-
- * Use MY_SEEK_{SET,CUR,END} as arguments to my_seek
-
- * Added a a array of structs that holds properties of open files.
- Removed include file extras.h
-
-Wed Jun 21 01:34:04 1989 Monty (monty at monty)
-
- * Added two new malloc-functions: my_once_alloc() and
- my_once_free(). These give easyer and quicker startup.
-
-Mon May 22 14:03:44 1989 Monty (monty at monty)
-
- * Fixed my_getwd and my_setwd so they work.
- * Added extern variabel curr_char[] with is set to current
- directory after my_getwd() or my_setwd();
-
-Mon Jan 23 03:38:50 1989 Monty (monty at monty)
-
- * Changed my_chsize to check if NO_CHSIZE is defined. If new file
- should be shorter it fills unused part with null.
- * Changed my_lock to not check for arg 0 (Functions should use
- LK_TO_EOF to lock all file.
-
-Tue Dec 6 15:09:44 1988 Monty (monty at monty)
-
- * Added DBUG_PRINT if error in my_seek.
-
-Mon Dec 5 15:58:48 1988 Monty (monty at monty)
-
- * Added DBUG_PRINT if not all byte read/written in my_read(),
- my_fread(), my_write() and my_fwrite();
-
-Sat Dec 3 01:48:03 1988 Monty (monty at monty)
-
- * Fixed bug in Makefile; quick did't work.
- * Changed safemalloc to use bmove, bfill and memcpy when handling
- memoryblocks.
-
-Fri Dec 2 03:29:21 1988 Monty (monty at monty)
-
- * Added more defines under MEMORY in my_func.h
- * Added functions to llib-lmysys.
- * Removed RCS/* files and installed ewerything as stable.
- (Because errors in old RCS-files.
-
-Wed Nov 9 00:32:33 1988 Monty (monty at monty)
-
- * Changed realloc for MSDOS; Previous version freed old block on
- * error, new version (of compiler) dosn't.
-
-Wed Oct 26 21:07:27 1988 Monty (monty at monty)
-
- * Fixed missing updateing of my_stream_opened;
diff --git a/dep/mysqllite/mysys/array.c b/dep/mysqllite/mysys/array.c
deleted file mode 100644
index 70c7a59aa3a..00000000000
--- a/dep/mysqllite/mysys/array.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Handling of arrays that can grow dynamicly. */
-
-#include "mysys_priv.h"
-#include "m_string.h"
-
-/*
- Initiate dynamic array
-
- SYNOPSIS
- init_dynamic_array2()
- array Pointer to an array
- element_size Size of element
- init_buffer Initial buffer pointer
- init_alloc Number of initial elements
- alloc_increment Increment for adding new elements
-
- DESCRIPTION
- init_dynamic_array() initiates array and allocate space for
- init_alloc eilements.
- Array is usable even if space allocation failed, hence, the
- function never returns TRUE.
- Static buffers must begin immediately after the array structure.
-
- RETURN VALUE
- FALSE Ok
-*/
-
-my_bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
- void *init_buffer, uint init_alloc,
- uint alloc_increment)
-{
- DBUG_ENTER("init_dynamic_array");
- if (!alloc_increment)
- {
- alloc_increment=max((8192-MALLOC_OVERHEAD)/element_size,16);
- if (init_alloc > 8 && alloc_increment > init_alloc * 2)
- alloc_increment=init_alloc*2;
- }
-
- if (!init_alloc)
- {
- init_alloc=alloc_increment;
- init_buffer= 0;
- }
- array->elements=0;
- array->max_element=init_alloc;
- array->alloc_increment=alloc_increment;
- array->size_of_element=element_size;
- if ((array->buffer= init_buffer))
- DBUG_RETURN(FALSE);
- /*
- Since the dynamic array is usable even if allocation fails here malloc
- should not throw an error
- */
- if (!(array->buffer= (uchar*) my_malloc(element_size*init_alloc, MYF(0))))
- array->max_element=0;
- DBUG_RETURN(FALSE);
-}
-
-my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
- uint init_alloc, uint alloc_increment)
-{
- /* placeholder to preserve ABI */
- return my_init_dynamic_array_ci(array, element_size, init_alloc,
- alloc_increment);
-}
-/*
- Insert element at the end of array. Allocate memory if needed.
-
- SYNOPSIS
- insert_dynamic()
- array
- element
-
- RETURN VALUE
- TRUE Insert failed
- FALSE Ok
-*/
-
-my_bool insert_dynamic(DYNAMIC_ARRAY *array, uchar* element)
-{
- uchar* buffer;
- if (array->elements == array->max_element)
- { /* Call only when nessesary */
- if (!(buffer=alloc_dynamic(array)))
- return TRUE;
- }
- else
- {
- buffer=array->buffer+(array->elements * array->size_of_element);
- array->elements++;
- }
- memcpy(buffer,element,(size_t) array->size_of_element);
- return FALSE;
-}
-
-
-/*
- Alloc space for next element(s)
-
- SYNOPSIS
- alloc_dynamic()
- array
-
- DESCRIPTION
- alloc_dynamic() checks if there is empty space for at least
- one element if not tries to allocate space for alloc_increment
- elements at the end of array.
-
- RETURN VALUE
- pointer Pointer to empty space for element
- 0 Error
-*/
-
-uchar *alloc_dynamic(DYNAMIC_ARRAY *array)
-{
- if (array->elements == array->max_element)
- {
- char *new_ptr;
- if (array->buffer == (uchar *)(array + 1))
- {
- /*
- In this senerio, the buffer is statically preallocated,
- so we have to create an all-new malloc since we overflowed
- */
- if (!(new_ptr= (char *) my_malloc((array->max_element+
- array->alloc_increment) *
- array->size_of_element,
- MYF(MY_WME))))
- return 0;
- memcpy(new_ptr, array->buffer,
- array->elements * array->size_of_element);
- }
- else
- if (!(new_ptr=(char*) my_realloc(array->buffer,(array->max_element+
- array->alloc_increment)*
- array->size_of_element,
- MYF(MY_WME | MY_ALLOW_ZERO_PTR))))
- return 0;
- array->buffer= (uchar*) new_ptr;
- array->max_element+=array->alloc_increment;
- }
- return array->buffer+(array->elements++ * array->size_of_element);
-}
-
-
-/*
- Pop last element from array.
-
- SYNOPSIS
- pop_dynamic()
- array
-
- RETURN VALUE
- pointer Ok
- 0 Array is empty
-*/
-
-uchar *pop_dynamic(DYNAMIC_ARRAY *array)
-{
- if (array->elements)
- return array->buffer+(--array->elements * array->size_of_element);
- return 0;
-}
-
-/*
- Replace element in array with given element and index
-
- SYNOPSIS
- set_dynamic()
- array
- element Element to be inserted
- idx Index where element is to be inserted
-
- DESCRIPTION
- set_dynamic() replaces element in array.
- If idx > max_element insert new element. Allocate memory if needed.
-
- RETURN VALUE
- TRUE Idx was out of range and allocation of new memory failed
- FALSE Ok
-*/
-
-my_bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx)
-{
- if (idx >= array->elements)
- {
- if (idx >= array->max_element && allocate_dynamic(array, idx))
- return TRUE;
- bzero((uchar*) (array->buffer+array->elements*array->size_of_element),
- (idx - array->elements)*array->size_of_element);
- array->elements=idx+1;
- }
- memcpy(array->buffer+(idx * array->size_of_element),element,
- (size_t) array->size_of_element);
- return FALSE;
-}
-
-
-/*
- Ensure that dynamic array has enough elements
-
- SYNOPSIS
- allocate_dynamic()
- array
- max_elements Numbers of elements that is needed
-
- NOTES
- Any new allocated element are NOT initialized
-
- RETURN VALUE
- FALSE Ok
- TRUE Allocation of new memory failed
-*/
-
-my_bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements)
-{
- if (max_elements >= array->max_element)
- {
- uint size;
- uchar *new_ptr;
- size= (max_elements + array->alloc_increment)/array->alloc_increment;
- size*= array->alloc_increment;
- if (array->buffer == (uchar *)(array + 1))
- {
- /*
- In this senerio, the buffer is statically preallocated,
- so we have to create an all-new malloc since we overflowed
- */
- if (!(new_ptr= (uchar *) my_malloc(size *
- array->size_of_element,
- MYF(MY_WME))))
- return 0;
- memcpy(new_ptr, array->buffer,
- array->elements * array->size_of_element);
- }
- else
-
-
- if (!(new_ptr= (uchar*) my_realloc(array->buffer,size*
- array->size_of_element,
- MYF(MY_WME | MY_ALLOW_ZERO_PTR))))
- return TRUE;
- array->buffer= new_ptr;
- array->max_element= size;
- }
- return FALSE;
-}
-
-
-/*
- Get an element from array by given index
-
- SYNOPSIS
- get_dynamic()
- array
- uchar* Element to be returned. If idx > elements contain zeroes.
- idx Index of element wanted.
-*/
-
-void get_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx)
-{
- if (idx >= array->elements)
- {
- DBUG_PRINT("warning",("To big array idx: %d, array size is %d",
- idx,array->elements));
- bzero(element,array->size_of_element);
- return;
- }
- memcpy(element,array->buffer+idx*array->size_of_element,
- (size_t) array->size_of_element);
-}
-
-
-/*
- Empty array by freeing all memory
-
- SYNOPSIS
- delete_dynamic()
- array Array to be deleted
-*/
-
-void delete_dynamic(DYNAMIC_ARRAY *array)
-{
- /*
- Just mark as empty if we are using a static buffer
- */
- if (array->buffer == (uchar *)(array + 1))
- array->elements= 0;
- else
- if (array->buffer)
- {
- my_free(array->buffer);
- array->buffer=0;
- array->elements=array->max_element=0;
- }
-}
-
-/*
- Delete element by given index
-
- SYNOPSIS
- delete_dynamic_element()
- array
- idx Index of element to be deleted
-*/
-
-void delete_dynamic_element(DYNAMIC_ARRAY *array, uint idx)
-{
- char *ptr= (char*) array->buffer+array->size_of_element*idx;
- array->elements--;
- memmove(ptr,ptr+array->size_of_element,
- (array->elements-idx)*array->size_of_element);
-}
-
-
-/*
- Free unused memory
-
- SYNOPSIS
- freeze_size()
- array Array to be freed
-
-*/
-
-void freeze_size(DYNAMIC_ARRAY *array)
-{
- uint elements=max(array->elements,1);
-
- /*
- Do nothing if we are using a static buffer
- */
- if (array->buffer == (uchar *)(array + 1))
- return;
-
- if (array->buffer && array->max_element != elements)
- {
- array->buffer=(uchar*) my_realloc(array->buffer,
- elements*array->size_of_element,
- MYF(MY_WME));
- array->max_element=elements;
- }
-}
-
-
-/*
- Get the index of a dynamic element
-
- SYNOPSIS
- get_index_dynamic()
- array Array
- element Whose element index
-
-*/
-
-int get_index_dynamic(DYNAMIC_ARRAY *array, uchar* element)
-{
- size_t ret;
- if (array->buffer > element)
- return -1;
-
- ret= (element - array->buffer) / array->size_of_element;
- if (ret > array->elements)
- return -1;
-
- return ret;
-
-}
diff --git a/dep/mysqllite/mysys/base64.c b/dep/mysqllite/mysys/base64.c
deleted file mode 100644
index ab66715c929..00000000000
--- a/dep/mysqllite/mysys/base64.c
+++ /dev/null
@@ -1,311 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_string.h> /* strchr() */
-#include <m_ctype.h> /* my_isspace() */
-#include <base64.h>
-
-#ifndef MAIN
-
-static char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "abcdefghijklmnopqrstuvwxyz"
- "0123456789+/";
-
-
-int
-base64_needed_encoded_length(int length_of_data)
-{
- int nb_base64_chars;
- nb_base64_chars= (length_of_data + 2) / 3 * 4;
-
- return
- nb_base64_chars + /* base64 char incl padding */
- (nb_base64_chars - 1)/ 76 + /* newlines */
- 1; /* NUL termination of string */
-}
-
-
-int
-base64_needed_decoded_length(int length_of_encoded_data)
-{
- return (int) ceil(length_of_encoded_data * 3 / 4);
-}
-
-
-/*
- Encode a data as base64.
-
- Note: We require that dst is pre-allocated to correct size.
- See base64_needed_encoded_length().
-*/
-
-int
-base64_encode(const void *src, size_t src_len, char *dst)
-{
- const unsigned char *s= (const unsigned char*)src;
- size_t i= 0;
- size_t len= 0;
-
- for (; i < src_len; len += 4)
- {
- unsigned c;
-
- if (len == 76)
- {
- len= 0;
- *dst++= '\n';
- }
-
- c= s[i++];
- c <<= 8;
-
- if (i < src_len)
- c += s[i];
- c <<= 8;
- i++;
-
- if (i < src_len)
- c += s[i];
- i++;
-
- *dst++= base64_table[(c >> 18) & 0x3f];
- *dst++= base64_table[(c >> 12) & 0x3f];
-
- if (i > (src_len + 1))
- *dst++= '=';
- else
- *dst++= base64_table[(c >> 6) & 0x3f];
-
- if (i > src_len)
- *dst++= '=';
- else
- *dst++= base64_table[(c >> 0) & 0x3f];
- }
- *dst= '\0';
-
- return 0;
-}
-
-
-static inline uint
-pos(unsigned char c)
-{
- return (uint) (strchr(base64_table, c) - base64_table);
-}
-
-
-#define SKIP_SPACE(src, i, size) \
-{ \
- while (i < size && my_isspace(&my_charset_latin1, * src)) \
- { \
- i++; \
- src++; \
- } \
- if (i == size) \
- { \
- break; \
- } \
-}
-
-
-/*
- Decode a base64 string
-
- SYNOPSIS
- base64_decode()
- src Pointer to base64-encoded string
- len Length of string at 'src'
- dst Pointer to location where decoded data will be stored
- end_ptr Pointer to variable that will refer to the character
- after the end of the encoded data that were decoded. Can
- be NULL.
-
- DESCRIPTION
-
- The base64-encoded data in the range ['src','*end_ptr') will be
- decoded and stored starting at 'dst'. The decoding will stop
- after 'len' characters have been read from 'src', or when padding
- occurs in the base64-encoded data. In either case: if 'end_ptr' is
- non-null, '*end_ptr' will be set to point to the character after
- the last read character, even in the presence of error.
-
- NOTE
- We require that 'dst' is pre-allocated to correct size.
-
- SEE ALSO
- base64_needed_decoded_length().
-
- RETURN VALUE
- Number of bytes written at 'dst' or -1 in case of failure
-*/
-int
-base64_decode(const char *src_base, size_t len,
- void *dst, const char **end_ptr)
-{
- char b[3];
- size_t i= 0;
- char *dst_base= (char *)dst;
- char const *src= src_base;
- char *d= dst_base;
- size_t j;
-
- while (i < len)
- {
- unsigned c= 0;
- size_t mark= 0;
-
- SKIP_SPACE(src, i, len);
-
- c += pos(*src++);
- c <<= 6;
- i++;
-
- SKIP_SPACE(src, i, len);
-
- c += pos(*src++);
- c <<= 6;
- i++;
-
- SKIP_SPACE(src, i, len);
-
- if (*src != '=')
- c += pos(*src++);
- else
- {
- src += 2; /* There should be two bytes padding */
- i= len;
- mark= 2;
- c <<= 6;
- goto end;
- }
- c <<= 6;
- i++;
-
- SKIP_SPACE(src, i, len);
-
- if (*src != '=')
- c += pos(*src++);
- else
- {
- src += 1; /* There should be one byte padding */
- i= len;
- mark= 1;
- goto end;
- }
- i++;
-
- end:
- b[0]= (c >> 16) & 0xff;
- b[1]= (c >> 8) & 0xff;
- b[2]= (c >> 0) & 0xff;
-
- for (j=0; j<3-mark; j++)
- *d++= b[j];
- }
-
- if (end_ptr != NULL)
- *end_ptr= src;
-
- /*
- The variable 'i' is set to 'len' when padding has been read, so it
- does not actually reflect the number of bytes read from 'src'.
- */
- return i != len ? -1 : (int) (d - dst_base);
-}
-
-
-#else /* MAIN */
-
-#define require(b) { \
- if (!(b)) { \
- printf("Require failed at %s:%d\n", __FILE__, __LINE__); \
- abort(); \
- } \
-}
-
-
-int
-main(void)
-{
- int i;
- size_t j;
- size_t k, l;
- size_t dst_len;
- size_t needed_length;
-
- for (i= 0; i < 500; i++)
- {
- /* Create source data */
- const size_t src_len= rand() % 1000 + 1;
-
- char * src= (char *) malloc(src_len);
- char * s= src;
- char * str;
- char * dst;
-
- require(src);
- for (j= 0; j<src_len; j++)
- {
- char c= rand();
- *s++= c;
- }
-
- /* Encode */
- needed_length= base64_needed_encoded_length(src_len);
- str= (char *) malloc(needed_length);
- require(str);
- for (k= 0; k < needed_length; k++)
- str[k]= 0xff; /* Fill memory to check correct NUL termination */
- require(base64_encode(src, src_len, str) == 0);
- require(needed_length == strlen(str) + 1);
-
- /* Decode */
- dst= (char *) malloc(base64_needed_decoded_length(strlen(str)));
- require(dst);
- dst_len= base64_decode(str, strlen(str), dst, NULL);
- require(dst_len == src_len);
-
- if (memcmp(src, dst, src_len) != 0)
- {
- printf(" --------- src --------- --------- dst ---------\n");
- for (k= 0; k<src_len; k+=8)
- {
- printf("%.4x ", (uint) k);
- for (l=0; l<8 && k+l<src_len; l++)
- {
- unsigned char c= src[k+l];
- printf("%.2x ", (unsigned)c);
- }
-
- printf(" ");
-
- for (l=0; l<8 && k+l<dst_len; l++)
- {
- unsigned char c= dst[k+l];
- printf("%.2x ", (unsigned)c);
- }
- printf("\n");
- }
- printf("src length: %.8x, dst length: %.8x\n",
- (uint) src_len, (uint) dst_len);
- require(0);
- }
- }
- printf("Test succeeded.\n");
- return 0;
-}
-
-#endif
diff --git a/dep/mysqllite/mysys/charset-def.c b/dep/mysqllite/mysys/charset-def.c
deleted file mode 100644
index 9089347f002..00000000000
--- a/dep/mysqllite/mysys/charset-def.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-/*
- Include all compiled character sets into the client
- If a client don't want to use all of them, he can define his own
- init_compiled_charsets() that only adds those that he wants
-*/
-
-#ifdef HAVE_UCA_COLLATIONS
-
-#ifdef HAVE_CHARSET_ucs2
-extern CHARSET_INFO my_charset_ucs2_icelandic_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_latvian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_romanian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_slovenian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_polish_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_estonian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_spanish_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_swedish_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_turkish_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_czech_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_danish_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_slovak_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_spanish2_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_roman_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_persian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_esperanto_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_hungarian_uca_ci;
-extern CHARSET_INFO my_charset_ucs2_sinhala_uca_ci;
-#endif
-
-
-#ifdef HAVE_CHARSET_utf32
-extern CHARSET_INFO my_charset_utf32_icelandic_uca_ci;
-extern CHARSET_INFO my_charset_utf32_latvian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_romanian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_slovenian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_polish_uca_ci;
-extern CHARSET_INFO my_charset_utf32_estonian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_spanish_uca_ci;
-extern CHARSET_INFO my_charset_utf32_swedish_uca_ci;
-extern CHARSET_INFO my_charset_utf32_turkish_uca_ci;
-extern CHARSET_INFO my_charset_utf32_czech_uca_ci;
-extern CHARSET_INFO my_charset_utf32_danish_uca_ci;
-extern CHARSET_INFO my_charset_utf32_lithuanian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_slovak_uca_ci;
-extern CHARSET_INFO my_charset_utf32_spanish2_uca_ci;
-extern CHARSET_INFO my_charset_utf32_roman_uca_ci;
-extern CHARSET_INFO my_charset_utf32_persian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_esperanto_uca_ci;
-extern CHARSET_INFO my_charset_utf32_hungarian_uca_ci;
-extern CHARSET_INFO my_charset_utf32_sinhala_uca_ci;
-#endif /* HAVE_CHARSET_utf32 */
-
-
-#ifdef HAVE_CHARSET_utf16
-extern CHARSET_INFO my_charset_utf16_icelandic_uca_ci;
-extern CHARSET_INFO my_charset_utf16_latvian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_romanian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_slovenian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_polish_uca_ci;
-extern CHARSET_INFO my_charset_utf16_estonian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_spanish_uca_ci;
-extern CHARSET_INFO my_charset_utf16_swedish_uca_ci;
-extern CHARSET_INFO my_charset_utf16_turkish_uca_ci;
-extern CHARSET_INFO my_charset_utf16_czech_uca_ci;
-extern CHARSET_INFO my_charset_utf16_danish_uca_ci;
-extern CHARSET_INFO my_charset_utf16_lithuanian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_slovak_uca_ci;
-extern CHARSET_INFO my_charset_utf16_spanish2_uca_ci;
-extern CHARSET_INFO my_charset_utf16_roman_uca_ci;
-extern CHARSET_INFO my_charset_utf16_persian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_esperanto_uca_ci;
-extern CHARSET_INFO my_charset_utf16_hungarian_uca_ci;
-extern CHARSET_INFO my_charset_utf16_sinhala_uca_ci;
-#endif /* HAVE_CHARSET_utf16 */
-
-
-#ifdef HAVE_CHARSET_utf8
-extern CHARSET_INFO my_charset_utf8_icelandic_uca_ci;
-extern CHARSET_INFO my_charset_utf8_latvian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_romanian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_slovenian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_polish_uca_ci;
-extern CHARSET_INFO my_charset_utf8_estonian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_spanish_uca_ci;
-extern CHARSET_INFO my_charset_utf8_swedish_uca_ci;
-extern CHARSET_INFO my_charset_utf8_turkish_uca_ci;
-extern CHARSET_INFO my_charset_utf8_czech_uca_ci;
-extern CHARSET_INFO my_charset_utf8_danish_uca_ci;
-extern CHARSET_INFO my_charset_utf8_lithuanian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_slovak_uca_ci;
-extern CHARSET_INFO my_charset_utf8_spanish2_uca_ci;
-extern CHARSET_INFO my_charset_utf8_roman_uca_ci;
-extern CHARSET_INFO my_charset_utf8_persian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_esperanto_uca_ci;
-extern CHARSET_INFO my_charset_utf8_hungarian_uca_ci;
-extern CHARSET_INFO my_charset_utf8_sinhala_uca_ci;
-#ifdef HAVE_UTF8_GENERAL_CS
-extern CHARSET_INFO my_charset_utf8_general_cs;
-#endif
-#endif
-
-#ifdef HAVE_CHARSET_utf8mb4
-extern CHARSET_INFO my_charset_utf8mb4_icelandic_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_latvian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_romanian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_slovenian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_polish_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_estonian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_spanish_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_swedish_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_turkish_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_czech_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_danish_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_lithuanian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_slovak_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_spanish2_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_roman_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_persian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_esperanto_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_hungarian_uca_ci;
-extern CHARSET_INFO my_charset_utf8mb4_sinhala_uca_ci;
-#endif /* HAVE_CHARSET_utf8mb4 */
-
-#endif /* HAVE_UCA_COLLATIONS */
-
-my_bool init_compiled_charsets(myf flags __attribute__((unused)))
-{
- CHARSET_INFO *cs;
-
- add_compiled_collation(&my_charset_bin);
- add_compiled_collation(&my_charset_filename);
-
- add_compiled_collation(&my_charset_latin1);
- add_compiled_collation(&my_charset_latin1_bin);
- add_compiled_collation(&my_charset_latin1_german2_ci);
-
-#ifdef HAVE_CHARSET_big5
- add_compiled_collation(&my_charset_big5_chinese_ci);
- add_compiled_collation(&my_charset_big5_bin);
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
- add_compiled_collation(&my_charset_cp1250_czech_ci);
-#endif
-
-#ifdef HAVE_CHARSET_cp932
- add_compiled_collation(&my_charset_cp932_japanese_ci);
- add_compiled_collation(&my_charset_cp932_bin);
-#endif
-
-#ifdef HAVE_CHARSET_latin2
- add_compiled_collation(&my_charset_latin2_czech_ci);
-#endif
-
-#ifdef HAVE_CHARSET_eucjpms
- add_compiled_collation(&my_charset_eucjpms_japanese_ci);
- add_compiled_collation(&my_charset_eucjpms_bin);
-#endif
-
-#ifdef HAVE_CHARSET_euckr
- add_compiled_collation(&my_charset_euckr_korean_ci);
- add_compiled_collation(&my_charset_euckr_bin);
-#endif
-
-#ifdef HAVE_CHARSET_gb2312
- add_compiled_collation(&my_charset_gb2312_chinese_ci);
- add_compiled_collation(&my_charset_gb2312_bin);
-#endif
-
-#ifdef HAVE_CHARSET_gbk
- add_compiled_collation(&my_charset_gbk_chinese_ci);
- add_compiled_collation(&my_charset_gbk_bin);
-#endif
-
-#ifdef HAVE_CHARSET_sjis
- add_compiled_collation(&my_charset_sjis_japanese_ci);
- add_compiled_collation(&my_charset_sjis_bin);
-#endif
-
-#ifdef HAVE_CHARSET_tis620
- add_compiled_collation(&my_charset_tis620_thai_ci);
- add_compiled_collation(&my_charset_tis620_bin);
-#endif
-
-#ifdef HAVE_CHARSET_ucs2
- add_compiled_collation(&my_charset_ucs2_general_ci);
- add_compiled_collation(&my_charset_ucs2_bin);
-#ifdef HAVE_UCA_COLLATIONS
- add_compiled_collation(&my_charset_ucs2_unicode_ci);
- add_compiled_collation(&my_charset_ucs2_icelandic_uca_ci);
- add_compiled_collation(&my_charset_ucs2_latvian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_romanian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_slovenian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_polish_uca_ci);
- add_compiled_collation(&my_charset_ucs2_estonian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_spanish_uca_ci);
- add_compiled_collation(&my_charset_ucs2_swedish_uca_ci);
- add_compiled_collation(&my_charset_ucs2_turkish_uca_ci);
- add_compiled_collation(&my_charset_ucs2_czech_uca_ci);
- add_compiled_collation(&my_charset_ucs2_danish_uca_ci);
- add_compiled_collation(&my_charset_ucs2_lithuanian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_slovak_uca_ci);
- add_compiled_collation(&my_charset_ucs2_spanish2_uca_ci);
- add_compiled_collation(&my_charset_ucs2_roman_uca_ci);
- add_compiled_collation(&my_charset_ucs2_persian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_esperanto_uca_ci);
- add_compiled_collation(&my_charset_ucs2_hungarian_uca_ci);
- add_compiled_collation(&my_charset_ucs2_sinhala_uca_ci);
-#endif
-#endif
-
-#ifdef HAVE_CHARSET_ujis
- add_compiled_collation(&my_charset_ujis_japanese_ci);
- add_compiled_collation(&my_charset_ujis_bin);
-#endif
-
-#ifdef HAVE_CHARSET_utf8
- add_compiled_collation(&my_charset_utf8_general_ci);
- add_compiled_collation(&my_charset_utf8_bin);
-#ifdef HAVE_UTF8_GENERAL_CS
- add_compiled_collation(&my_charset_utf8_general_cs);
-#endif
-#ifdef HAVE_UCA_COLLATIONS
- add_compiled_collation(&my_charset_utf8_unicode_ci);
- add_compiled_collation(&my_charset_utf8_icelandic_uca_ci);
- add_compiled_collation(&my_charset_utf8_latvian_uca_ci);
- add_compiled_collation(&my_charset_utf8_romanian_uca_ci);
- add_compiled_collation(&my_charset_utf8_slovenian_uca_ci);
- add_compiled_collation(&my_charset_utf8_polish_uca_ci);
- add_compiled_collation(&my_charset_utf8_estonian_uca_ci);
- add_compiled_collation(&my_charset_utf8_spanish_uca_ci);
- add_compiled_collation(&my_charset_utf8_swedish_uca_ci);
- add_compiled_collation(&my_charset_utf8_turkish_uca_ci);
- add_compiled_collation(&my_charset_utf8_czech_uca_ci);
- add_compiled_collation(&my_charset_utf8_danish_uca_ci);
- add_compiled_collation(&my_charset_utf8_lithuanian_uca_ci);
- add_compiled_collation(&my_charset_utf8_slovak_uca_ci);
- add_compiled_collation(&my_charset_utf8_spanish2_uca_ci);
- add_compiled_collation(&my_charset_utf8_roman_uca_ci);
- add_compiled_collation(&my_charset_utf8_persian_uca_ci);
- add_compiled_collation(&my_charset_utf8_esperanto_uca_ci);
- add_compiled_collation(&my_charset_utf8_hungarian_uca_ci);
- add_compiled_collation(&my_charset_utf8_sinhala_uca_ci);
-#endif
-#endif /* HAVE_CHARSET_utf8 */
-
-
-#ifdef HAVE_CHARSET_utf8mb4
- add_compiled_collation(&my_charset_utf8mb4_general_ci);
- add_compiled_collation(&my_charset_utf8mb4_bin);
-#ifdef HAVE_UCA_COLLATIONS
- add_compiled_collation(&my_charset_utf8mb4_unicode_ci);
- add_compiled_collation(&my_charset_utf8mb4_icelandic_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_latvian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_romanian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_slovenian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_polish_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_estonian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_spanish_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_swedish_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_turkish_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_czech_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_danish_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_lithuanian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_slovak_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_spanish2_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_roman_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_persian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_esperanto_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_hungarian_uca_ci);
- add_compiled_collation(&my_charset_utf8mb4_sinhala_uca_ci);
-#endif /* HAVE_UCA_COLLATIONS */
-#endif /* HAVE_CHARSET_utf8mb4 */
-
-
-#ifdef HAVE_CHARSET_utf16
- add_compiled_collation(&my_charset_utf16_general_ci);
- add_compiled_collation(&my_charset_utf16_bin);
-#ifdef HAVE_UCA_COLLATIONS
- add_compiled_collation(&my_charset_utf16_unicode_ci);
- add_compiled_collation(&my_charset_utf16_icelandic_uca_ci);
- add_compiled_collation(&my_charset_utf16_latvian_uca_ci);
- add_compiled_collation(&my_charset_utf16_romanian_uca_ci);
- add_compiled_collation(&my_charset_utf16_slovenian_uca_ci);
- add_compiled_collation(&my_charset_utf16_polish_uca_ci);
- add_compiled_collation(&my_charset_utf16_estonian_uca_ci);
- add_compiled_collation(&my_charset_utf16_spanish_uca_ci);
- add_compiled_collation(&my_charset_utf16_swedish_uca_ci);
- add_compiled_collation(&my_charset_utf16_turkish_uca_ci);
- add_compiled_collation(&my_charset_utf16_czech_uca_ci);
- add_compiled_collation(&my_charset_utf16_danish_uca_ci);
- add_compiled_collation(&my_charset_utf16_lithuanian_uca_ci);
- add_compiled_collation(&my_charset_utf16_slovak_uca_ci);
- add_compiled_collation(&my_charset_utf16_spanish2_uca_ci);
- add_compiled_collation(&my_charset_utf16_roman_uca_ci);
- add_compiled_collation(&my_charset_utf16_persian_uca_ci);
- add_compiled_collation(&my_charset_utf16_esperanto_uca_ci);
- add_compiled_collation(&my_charset_utf16_hungarian_uca_ci);
- add_compiled_collation(&my_charset_utf16_sinhala_uca_ci);
-#endif /* HAVE_UCA_COLLATIOINS */
-#endif /* HAVE_CHARSET_utf16 */
-
-
-#ifdef HAVE_CHARSET_utf32
- add_compiled_collation(&my_charset_utf32_general_ci);
- add_compiled_collation(&my_charset_utf32_bin);
-#ifdef HAVE_UCA_COLLATIONS
- add_compiled_collation(&my_charset_utf32_unicode_ci);
- add_compiled_collation(&my_charset_utf32_icelandic_uca_ci);
- add_compiled_collation(&my_charset_utf32_latvian_uca_ci);
- add_compiled_collation(&my_charset_utf32_romanian_uca_ci);
- add_compiled_collation(&my_charset_utf32_slovenian_uca_ci);
- add_compiled_collation(&my_charset_utf32_polish_uca_ci);
- add_compiled_collation(&my_charset_utf32_estonian_uca_ci);
- add_compiled_collation(&my_charset_utf32_spanish_uca_ci);
- add_compiled_collation(&my_charset_utf32_swedish_uca_ci);
- add_compiled_collation(&my_charset_utf32_turkish_uca_ci);
- add_compiled_collation(&my_charset_utf32_czech_uca_ci);
- add_compiled_collation(&my_charset_utf32_danish_uca_ci);
- add_compiled_collation(&my_charset_utf32_lithuanian_uca_ci);
- add_compiled_collation(&my_charset_utf32_slovak_uca_ci);
- add_compiled_collation(&my_charset_utf32_spanish2_uca_ci);
- add_compiled_collation(&my_charset_utf32_roman_uca_ci);
- add_compiled_collation(&my_charset_utf32_persian_uca_ci);
- add_compiled_collation(&my_charset_utf32_esperanto_uca_ci);
- add_compiled_collation(&my_charset_utf32_hungarian_uca_ci);
- add_compiled_collation(&my_charset_utf32_sinhala_uca_ci);
-#endif /* HAVE_UCA_COLLATIONS */
-#endif /* HAVE_CHARSET_utf32 */
-
- /* Copy compiled charsets */
- for (cs=compiled_charsets; cs->name; cs++)
- add_compiled_collation(cs);
-
- return FALSE;
-}
diff --git a/dep/mysqllite/mysys/charset.c b/dep/mysqllite/mysys/charset.c
deleted file mode 100644
index 167d6b8ff6e..00000000000
--- a/dep/mysqllite/mysys/charset.c
+++ /dev/null
@@ -1,937 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <m_ctype.h>
-#include <m_string.h>
-#include <my_dir.h>
-#include <my_xml.h>
-
-
-/*
- The code below implements this functionality:
-
- - Initializing charset related structures
- - Loading dynamic charsets
- - Searching for a proper CHARSET_INFO
- using charset name, collation name or collation ID
- - Setting server default character set
-*/
-
-my_bool my_charset_same(CHARSET_INFO *cs1, CHARSET_INFO *cs2)
-{
- return ((cs1 == cs2) || !strcmp(cs1->csname,cs2->csname));
-}
-
-
-static uint
-get_collation_number_internal(const char *name)
-{
- CHARSET_INFO **cs;
- for (cs= all_charsets;
- cs < all_charsets + array_elements(all_charsets);
- cs++)
- {
- if ( cs[0] && cs[0]->name &&
- !my_strcasecmp(&my_charset_latin1, cs[0]->name, name))
- return cs[0]->number;
- }
- return 0;
-}
-
-
-static my_bool init_state_maps(CHARSET_INFO *cs)
-{
- uint i;
- uchar *state_map;
- uchar *ident_map;
-
- if (!(cs->state_map= (uchar*) my_once_alloc(256, MYF(MY_WME))))
- return 1;
-
- if (!(cs->ident_map= (uchar*) my_once_alloc(256, MYF(MY_WME))))
- return 1;
-
- state_map= cs->state_map;
- ident_map= cs->ident_map;
-
- /* Fill state_map with states to get a faster parser */
- for (i=0; i < 256 ; i++)
- {
- if (my_isalpha(cs,i))
- state_map[i]=(uchar) MY_LEX_IDENT;
- else if (my_isdigit(cs,i))
- state_map[i]=(uchar) MY_LEX_NUMBER_IDENT;
-#if defined(USE_MB) && defined(USE_MB_IDENT)
- else if (my_mbcharlen(cs, i)>1)
- state_map[i]=(uchar) MY_LEX_IDENT;
-#endif
- else if (my_isspace(cs,i))
- state_map[i]=(uchar) MY_LEX_SKIP;
- else
- state_map[i]=(uchar) MY_LEX_CHAR;
- }
- state_map[(uchar)'_']=state_map[(uchar)'$']=(uchar) MY_LEX_IDENT;
- state_map[(uchar)'\'']=(uchar) MY_LEX_STRING;
- state_map[(uchar)'.']=(uchar) MY_LEX_REAL_OR_POINT;
- state_map[(uchar)'>']=state_map[(uchar)'=']=state_map[(uchar)'!']= (uchar) MY_LEX_CMP_OP;
- state_map[(uchar)'<']= (uchar) MY_LEX_LONG_CMP_OP;
- state_map[(uchar)'&']=state_map[(uchar)'|']=(uchar) MY_LEX_BOOL;
- state_map[(uchar)'#']=(uchar) MY_LEX_COMMENT;
- state_map[(uchar)';']=(uchar) MY_LEX_SEMICOLON;
- state_map[(uchar)':']=(uchar) MY_LEX_SET_VAR;
- state_map[0]=(uchar) MY_LEX_EOL;
- state_map[(uchar)'\\']= (uchar) MY_LEX_ESCAPE;
- state_map[(uchar)'/']= (uchar) MY_LEX_LONG_COMMENT;
- state_map[(uchar)'*']= (uchar) MY_LEX_END_LONG_COMMENT;
- state_map[(uchar)'@']= (uchar) MY_LEX_USER_END;
- state_map[(uchar) '`']= (uchar) MY_LEX_USER_VARIABLE_DELIMITER;
- state_map[(uchar)'"']= (uchar) MY_LEX_STRING_OR_DELIMITER;
-
- /*
- Create a second map to make it faster to find identifiers
- */
- for (i=0; i < 256 ; i++)
- {
- ident_map[i]= (uchar) (state_map[i] == MY_LEX_IDENT ||
- state_map[i] == MY_LEX_NUMBER_IDENT);
- }
-
- /* Special handling of hex and binary strings */
- state_map[(uchar)'x']= state_map[(uchar)'X']= (uchar) MY_LEX_IDENT_OR_HEX;
- state_map[(uchar)'b']= state_map[(uchar)'B']= (uchar) MY_LEX_IDENT_OR_BIN;
- state_map[(uchar)'n']= state_map[(uchar)'N']= (uchar) MY_LEX_IDENT_OR_NCHAR;
- return 0;
-}
-
-
-static void simple_cs_init_functions(CHARSET_INFO *cs)
-{
- if (cs->state & MY_CS_BINSORT)
- cs->coll= &my_collation_8bit_bin_handler;
- else
- cs->coll= &my_collation_8bit_simple_ci_handler;
-
- cs->cset= &my_charset_8bit_handler;
-}
-
-
-
-static int cs_copy_data(CHARSET_INFO *to, CHARSET_INFO *from)
-{
- to->number= from->number ? from->number : to->number;
-
- if (from->csname)
- if (!(to->csname= my_once_strdup(from->csname,MYF(MY_WME))))
- goto err;
-
- if (from->name)
- if (!(to->name= my_once_strdup(from->name,MYF(MY_WME))))
- goto err;
-
- if (from->comment)
- if (!(to->comment= my_once_strdup(from->comment,MYF(MY_WME))))
- goto err;
-
- if (from->ctype)
- {
- if (!(to->ctype= (uchar*) my_once_memdup((char*) from->ctype,
- MY_CS_CTYPE_TABLE_SIZE,
- MYF(MY_WME))))
- goto err;
- if (init_state_maps(to))
- goto err;
- }
- if (from->to_lower)
- if (!(to->to_lower= (uchar*) my_once_memdup((char*) from->to_lower,
- MY_CS_TO_LOWER_TABLE_SIZE,
- MYF(MY_WME))))
- goto err;
-
- if (from->to_upper)
- if (!(to->to_upper= (uchar*) my_once_memdup((char*) from->to_upper,
- MY_CS_TO_UPPER_TABLE_SIZE,
- MYF(MY_WME))))
- goto err;
- if (from->sort_order)
- {
- if (!(to->sort_order= (uchar*) my_once_memdup((char*) from->sort_order,
- MY_CS_SORT_ORDER_TABLE_SIZE,
- MYF(MY_WME))))
- goto err;
-
- }
- if (from->tab_to_uni)
- {
- uint sz= MY_CS_TO_UNI_TABLE_SIZE*sizeof(uint16);
- if (!(to->tab_to_uni= (uint16*) my_once_memdup((char*)from->tab_to_uni,
- sz, MYF(MY_WME))))
- goto err;
- }
- if (from->tailoring)
- if (!(to->tailoring= my_once_strdup(from->tailoring,MYF(MY_WME))))
- goto err;
-
- return 0;
-
-err:
- return 1;
-}
-
-
-
-static my_bool simple_cs_is_full(CHARSET_INFO *cs)
-{
- return ((cs->csname && cs->tab_to_uni && cs->ctype && cs->to_upper &&
- cs->to_lower) &&
- (cs->number && cs->name &&
- (cs->sort_order || (cs->state & MY_CS_BINSORT) )));
-}
-
-
-static void
-copy_uca_collation(CHARSET_INFO *to, CHARSET_INFO *from)
-{
- to->cset= from->cset;
- to->coll= from->coll;
- to->strxfrm_multiply= from->strxfrm_multiply;
- to->min_sort_char= from->min_sort_char;
- to->max_sort_char= from->max_sort_char;
- to->mbminlen= from->mbminlen;
- to->mbmaxlen= from->mbmaxlen;
- to->state|= MY_CS_AVAILABLE | MY_CS_LOADED |
- MY_CS_STRNXFRM | MY_CS_UNICODE;
-}
-
-
-static int add_collation(CHARSET_INFO *cs)
-{
- if (cs->name && (cs->number ||
- (cs->number=get_collation_number_internal(cs->name))) &&
- cs->number < array_elements(all_charsets))
- {
- if (!all_charsets[cs->number])
- {
- if (!(all_charsets[cs->number]=
- (CHARSET_INFO*) my_once_alloc(sizeof(CHARSET_INFO),MYF(0))))
- return MY_XML_ERROR;
- bzero((void*)all_charsets[cs->number],sizeof(CHARSET_INFO));
- }
-
- if (cs->primary_number == cs->number)
- cs->state |= MY_CS_PRIMARY;
-
- if (cs->binary_number == cs->number)
- cs->state |= MY_CS_BINSORT;
-
- all_charsets[cs->number]->state|= cs->state;
-
- if (!(all_charsets[cs->number]->state & MY_CS_COMPILED))
- {
- CHARSET_INFO *newcs= all_charsets[cs->number];
- if (cs_copy_data(all_charsets[cs->number],cs))
- return MY_XML_ERROR;
-
- newcs->caseup_multiply= newcs->casedn_multiply= 1;
-
- if (!strcmp(cs->csname,"ucs2") )
- {
-#if defined(HAVE_CHARSET_ucs2) && defined(HAVE_UCA_COLLATIONS)
- copy_uca_collation(newcs, &my_charset_ucs2_unicode_ci);
- newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII;
-#endif
- }
- else if (!strcmp(cs->csname, "utf8") || !strcmp(cs->csname, "utf8mb3"))
- {
-#if defined (HAVE_CHARSET_utf8) && defined(HAVE_UCA_COLLATIONS)
- copy_uca_collation(newcs, &my_charset_utf8_unicode_ci);
- newcs->ctype= my_charset_utf8_unicode_ci.ctype;
- if (init_state_maps(newcs))
- return MY_XML_ERROR;
-#endif
- }
- else if (!strcmp(cs->csname, "utf8mb4"))
- {
-#if defined (HAVE_CHARSET_utf8mb4) && defined(HAVE_UCA_COLLATIONS)
- copy_uca_collation(newcs, &my_charset_utf8mb4_unicode_ci);
- newcs->ctype= my_charset_utf8mb4_unicode_ci.ctype;
- newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED;
-#endif
- }
- else if (!strcmp(cs->csname, "utf16"))
- {
-#if defined (HAVE_CHARSET_utf16) && defined(HAVE_UCA_COLLATIONS)
- copy_uca_collation(newcs, &my_charset_utf16_unicode_ci);
- newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII;
-#endif
- }
- else if (!strcmp(cs->csname, "utf32"))
- {
-#if defined (HAVE_CHARSET_utf32) && defined(HAVE_UCA_COLLATIONS)
- copy_uca_collation(newcs, &my_charset_utf32_unicode_ci);
- newcs->state|= MY_CS_AVAILABLE | MY_CS_LOADED | MY_CS_NONASCII;
-#endif
- }
- else
- {
- uchar *sort_order= all_charsets[cs->number]->sort_order;
- simple_cs_init_functions(all_charsets[cs->number]);
- newcs->mbminlen= 1;
- newcs->mbmaxlen= 1;
- if (simple_cs_is_full(all_charsets[cs->number]))
- {
- all_charsets[cs->number]->state |= MY_CS_LOADED;
- }
- all_charsets[cs->number]->state|= MY_CS_AVAILABLE;
-
- /*
- Check if case sensitive sort order: A < a < B.
- We need MY_CS_FLAG for regex library, and for
- case sensitivity flag for 5.0 client protocol,
- to support isCaseSensitive() method in JDBC driver
- */
- if (sort_order && sort_order['A'] < sort_order['a'] &&
- sort_order['a'] < sort_order['B'])
- all_charsets[cs->number]->state|= MY_CS_CSSORT;
-
- if (my_charset_is_8bit_pure_ascii(all_charsets[cs->number]))
- all_charsets[cs->number]->state|= MY_CS_PUREASCII;
- if (!my_charset_is_ascii_compatible(cs))
- all_charsets[cs->number]->state|= MY_CS_NONASCII;
- }
- }
- else
- {
- /*
- We need the below to make get_charset_name()
- and get_charset_number() working even if a
- character set has not been really incompiled.
- The above functions are used for example
- in error message compiler extra/comp_err.c.
- If a character set was compiled, this information
- will get lost and overwritten in add_compiled_collation().
- */
- CHARSET_INFO *dst= all_charsets[cs->number];
- dst->number= cs->number;
- if (cs->comment)
- if (!(dst->comment= my_once_strdup(cs->comment,MYF(MY_WME))))
- return MY_XML_ERROR;
- if (cs->csname)
- if (!(dst->csname= my_once_strdup(cs->csname,MYF(MY_WME))))
- return MY_XML_ERROR;
- if (cs->name)
- if (!(dst->name= my_once_strdup(cs->name,MYF(MY_WME))))
- return MY_XML_ERROR;
- }
- cs->number= 0;
- cs->primary_number= 0;
- cs->binary_number= 0;
- cs->name= NULL;
- cs->state= 0;
- cs->sort_order= NULL;
- cs->state= 0;
- }
- return MY_XML_OK;
-}
-
-
-#define MY_MAX_ALLOWED_BUF 1024*1024
-#define MY_CHARSET_INDEX "Index.xml"
-
-const char *charsets_dir= NULL;
-
-
-static my_bool my_read_charset_file(const char *filename, myf myflags)
-{
- uchar *buf;
- int fd;
- size_t len, tmp_len;
- MY_STAT stat_info;
-
- if (!my_stat(filename, &stat_info, MYF(myflags)) ||
- ((len= (uint)stat_info.st_size) > MY_MAX_ALLOWED_BUF) ||
- !(buf= (uchar*) my_malloc(len,myflags)))
- return TRUE;
-
- if ((fd= mysql_file_open(key_file_charset, filename, O_RDONLY, myflags)) < 0)
- goto error;
- tmp_len= mysql_file_read(fd, buf, len, myflags);
- mysql_file_close(fd, myflags);
- if (tmp_len != len)
- goto error;
-
- if (my_parse_charset_xml((char*) buf,len,add_collation))
- {
-#ifdef NOT_YET
- printf("ERROR at line %d pos %d '%s'\n",
- my_xml_error_lineno(&p)+1,
- my_xml_error_pos(&p),
- my_xml_error_string(&p));
-#endif
- }
-
- my_free(buf);
- return FALSE;
-
-error:
- my_free(buf);
- return TRUE;
-}
-
-
-char *get_charsets_dir(char *buf)
-{
- const char *sharedir= SHAREDIR;
- char *res;
- DBUG_ENTER("get_charsets_dir");
-
- if (charsets_dir != NULL)
- strmake(buf, charsets_dir, FN_REFLEN-1);
- else
- {
- if (test_if_hard_path(sharedir) ||
- is_prefix(sharedir, DEFAULT_CHARSET_HOME))
- strxmov(buf, sharedir, "/", CHARSET_DIR, NullS);
- else
- strxmov(buf, DEFAULT_CHARSET_HOME, "/", sharedir, "/", CHARSET_DIR,
- NullS);
- }
- res= convert_dirname(buf,buf,NullS);
- DBUG_PRINT("info",("charsets dir: '%s'", buf));
- DBUG_RETURN(res);
-}
-
-CHARSET_INFO *all_charsets[MY_ALL_CHARSETS_SIZE]={NULL};
-CHARSET_INFO *default_charset_info = &my_charset_latin1;
-
-void add_compiled_collation(CHARSET_INFO *cs)
-{
- all_charsets[cs->number]= cs;
- cs->state|= MY_CS_AVAILABLE;
-}
-
-static void *cs_alloc(size_t size)
-{
- return my_once_alloc(size, MYF(MY_WME));
-}
-
-
-static my_pthread_once_t charsets_initialized= MY_PTHREAD_ONCE_INIT;
-static my_pthread_once_t charsets_template= MY_PTHREAD_ONCE_INIT;
-
-static void init_available_charsets(void)
-{
- char fname[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
- CHARSET_INFO **cs;
-
- bzero(&all_charsets,sizeof(all_charsets));
- init_compiled_charsets(MYF(0));
-
- /* Copy compiled charsets */
- for (cs=all_charsets;
- cs < all_charsets+array_elements(all_charsets)-1 ;
- cs++)
- {
- if (*cs)
- {
- if (cs[0]->ctype)
- if (init_state_maps(*cs))
- *cs= NULL;
- }
- }
-
- strmov(get_charsets_dir(fname), MY_CHARSET_INDEX);
- my_read_charset_file(fname, MYF(0));
-}
-
-
-void free_charsets(void)
-{
- charsets_initialized= charsets_template;
-}
-
-
-static const char*
-get_collation_name_alias(const char *name, char *buf, size_t bufsize)
-{
- if (!strncasecmp(name, "utf8mb3_", 8))
- {
- my_snprintf(buf, bufsize, "utf8_%s", name + 8);
- return buf;
- }
- return NULL;
-}
-
-
-uint get_collation_number(const char *name)
-{
- uint id;
- char alias[64];
- my_pthread_once(&charsets_initialized, init_available_charsets);
- if ((id= get_collation_number_internal(name)))
- return id;
- if ((name= get_collation_name_alias(name, alias, sizeof(alias))))
- return get_collation_number_internal(name);
- return 0;
-}
-
-
-static uint
-get_charset_number_internal(const char *charset_name, uint cs_flags)
-{
- CHARSET_INFO **cs;
-
- for (cs= all_charsets;
- cs < all_charsets + array_elements(all_charsets);
- cs++)
- {
- if ( cs[0] && cs[0]->csname && (cs[0]->state & cs_flags) &&
- !my_strcasecmp(&my_charset_latin1, cs[0]->csname, charset_name))
- return cs[0]->number;
- }
- return 0;
-}
-
-
-static const char*
-get_charset_name_alias(const char *name)
-{
- if (!my_strcasecmp(&my_charset_latin1, name, "utf8mb3"))
- return "utf8";
- return NULL;
-}
-
-
-uint get_charset_number(const char *charset_name, uint cs_flags)
-{
- uint id;
- my_pthread_once(&charsets_initialized, init_available_charsets);
- if ((id= get_charset_number_internal(charset_name, cs_flags)))
- return id;
- if ((charset_name= get_charset_name_alias(charset_name)))
- return get_charset_number_internal(charset_name, cs_flags);
- return 0;
-}
-
-
-const char *get_charset_name(uint charset_number)
-{
- CHARSET_INFO *cs;
- my_pthread_once(&charsets_initialized, init_available_charsets);
-
- cs=all_charsets[charset_number];
- if (cs && (cs->number == charset_number) && cs->name )
- return (char*) cs->name;
-
- return (char*) "?"; /* this mimics find_type() */
-}
-
-
-static CHARSET_INFO *get_internal_charset(uint cs_number, myf flags)
-{
- char buf[FN_REFLEN];
- CHARSET_INFO *cs;
-
- if ((cs= all_charsets[cs_number]))
- {
- if (cs->state & MY_CS_READY) /* if CS is already initialized */
- return cs;
-
- /*
- To make things thread safe we are not allowing other threads to interfere
- while we may changing the cs_info_table
- */
- mysql_mutex_lock(&THR_LOCK_charset);
-
- if (!(cs->state & (MY_CS_COMPILED|MY_CS_LOADED))) /* if CS is not in memory */
- {
- strxmov(get_charsets_dir(buf), cs->csname, ".xml", NullS);
- my_read_charset_file(buf,flags);
- }
-
- if (cs->state & MY_CS_AVAILABLE)
- {
- if (!(cs->state & MY_CS_READY))
- {
- if ((cs->cset->init && cs->cset->init(cs, cs_alloc)) ||
- (cs->coll->init && cs->coll->init(cs, cs_alloc)))
- cs= NULL;
- else
- cs->state|= MY_CS_READY;
- }
- }
- else
- cs= NULL;
-
- mysql_mutex_unlock(&THR_LOCK_charset);
- }
- return cs;
-}
-
-
-CHARSET_INFO *get_charset(uint cs_number, myf flags)
-{
- CHARSET_INFO *cs;
- if (cs_number == default_charset_info->number)
- return default_charset_info;
-
- my_pthread_once(&charsets_initialized, init_available_charsets);
-
- if (!cs_number || cs_number > array_elements(all_charsets))
- return NULL;
-
- cs=get_internal_charset(cs_number, flags);
-
- if (!cs && (flags & MY_WME))
- {
- char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)], cs_string[23];
- strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
- cs_string[0]='#';
- int10_to_str(cs_number, cs_string+1, 10);
- my_error(EE_UNKNOWN_CHARSET, MYF(ME_BELL), cs_string, index_file);
- }
- return cs;
-}
-
-CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags)
-{
- uint cs_number;
- CHARSET_INFO *cs;
- my_pthread_once(&charsets_initialized, init_available_charsets);
-
- cs_number=get_collation_number(cs_name);
- cs= cs_number ? get_internal_charset(cs_number,flags) : NULL;
-
- if (!cs && (flags & MY_WME))
- {
- char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
- strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
- my_error(EE_UNKNOWN_COLLATION, MYF(ME_BELL), cs_name, index_file);
- }
-
- return cs;
-}
-
-
-CHARSET_INFO *get_charset_by_csname(const char *cs_name,
- uint cs_flags,
- myf flags)
-{
- uint cs_number;
- CHARSET_INFO *cs;
- DBUG_ENTER("get_charset_by_csname");
- DBUG_PRINT("enter",("name: '%s'", cs_name));
-
- my_pthread_once(&charsets_initialized, init_available_charsets);
-
- cs_number= get_charset_number(cs_name, cs_flags);
- cs= cs_number ? get_internal_charset(cs_number, flags) : NULL;
-
- if (!cs && (flags & MY_WME))
- {
- char index_file[FN_REFLEN + sizeof(MY_CHARSET_INDEX)];
- strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
- my_error(EE_UNKNOWN_CHARSET, MYF(ME_BELL), cs_name, index_file);
- }
-
- DBUG_RETURN(cs);
-}
-
-
-/**
- Resolve character set by the character set name (utf8, latin1, ...).
-
- The function tries to resolve character set by the specified name. If
- there is character set with the given name, it is assigned to the "cs"
- parameter and FALSE is returned. If there is no such character set,
- "default_cs" is assigned to the "cs" and TRUE is returned.
-
- @param[in] cs_name Character set name.
- @param[in] default_cs Default character set.
- @param[out] cs Variable to store character set.
-
- @return FALSE if character set was resolved successfully; TRUE if there
- is no character set with given name.
-*/
-
-my_bool resolve_charset(const char *cs_name,
- CHARSET_INFO *default_cs,
- CHARSET_INFO **cs)
-{
- *cs= get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0));
-
- if (*cs == NULL)
- {
- *cs= default_cs;
- return TRUE;
- }
-
- return FALSE;
-}
-
-
-/**
- Resolve collation by the collation name (utf8_general_ci, ...).
-
- The function tries to resolve collation by the specified name. If there
- is collation with the given name, it is assigned to the "cl" parameter
- and FALSE is returned. If there is no such collation, "default_cl" is
- assigned to the "cl" and TRUE is returned.
-
- @param[out] cl Variable to store collation.
- @param[in] cl_name Collation name.
- @param[in] default_cl Default collation.
-
- @return FALSE if collation was resolved successfully; TRUE if there is no
- collation with given name.
-*/
-
-my_bool resolve_collation(const char *cl_name,
- CHARSET_INFO *default_cl,
- CHARSET_INFO **cl)
-{
- *cl= get_charset_by_name(cl_name, MYF(0));
-
- if (*cl == NULL)
- {
- *cl= default_cl;
- return TRUE;
- }
-
- return FALSE;
-}
-
-
-/*
- Escape string with backslashes (\)
-
- SYNOPSIS
- escape_string_for_mysql()
- charset_info Charset of the strings
- to Buffer for escaped string
- to_length Length of destination buffer, or 0
- from The string to escape
- length The length of the string to escape
-
- DESCRIPTION
- This escapes the contents of a string by adding backslashes before special
- characters, and turning others into specific escape sequences, such as
- turning newlines into \n and null bytes into \0.
-
- NOTE
- To maintain compatibility with the old C API, to_length may be 0 to mean
- "big enough"
-
- RETURN VALUES
- (size_t) -1 The escaped string did not fit in the to buffer
- # The length of the escaped string
-*/
-
-size_t escape_string_for_mysql(CHARSET_INFO *charset_info,
- char *to, size_t to_length,
- const char *from, size_t length)
-{
- const char *to_start= to;
- const char *end, *to_end=to_start + (to_length ? to_length-1 : 2*length);
- my_bool overflow= FALSE;
-#ifdef USE_MB
- my_bool use_mb_flag= use_mb(charset_info);
-#endif
- for (end= from + length; from < end; from++)
- {
- char escape= 0;
-#ifdef USE_MB
- int tmp_length;
- if (use_mb_flag && (tmp_length= my_ismbchar(charset_info, from, end)))
- {
- if (to + tmp_length > to_end)
- {
- overflow= TRUE;
- break;
- }
- while (tmp_length--)
- *to++= *from++;
- from--;
- continue;
- }
- /*
- If the next character appears to begin a multi-byte character, we
- escape that first byte of that apparent multi-byte character. (The
- character just looks like a multi-byte character -- if it were actually
- a multi-byte character, it would have been passed through in the test
- above.)
-
- Without this check, we can create a problem by converting an invalid
- multi-byte character into a valid one. For example, 0xbf27 is not
- a valid GBK character, but 0xbf5c is. (0x27 = ', 0x5c = \)
- */
- if (use_mb_flag && (tmp_length= my_mbcharlen(charset_info, *from)) > 1)
- escape= *from;
- else
-#endif
- switch (*from) {
- case 0: /* Must be escaped for 'mysql' */
- escape= '0';
- break;
- case '\n': /* Must be escaped for logs */
- escape= 'n';
- break;
- case '\r':
- escape= 'r';
- break;
- case '\\':
- escape= '\\';
- break;
- case '\'':
- escape= '\'';
- break;
- case '"': /* Better safe than sorry */
- escape= '"';
- break;
- case '\032': /* This gives problems on Win32 */
- escape= 'Z';
- break;
- }
- if (escape)
- {
- if (to + 2 > to_end)
- {
- overflow= TRUE;
- break;
- }
- *to++= '\\';
- *to++= escape;
- }
- else
- {
- if (to + 1 > to_end)
- {
- overflow= TRUE;
- break;
- }
- *to++= *from;
- }
- }
- *to= 0;
- return overflow ? (size_t) -1 : (size_t) (to - to_start);
-}
-
-
-#ifdef BACKSLASH_MBTAIL
-static CHARSET_INFO *fs_cset_cache= NULL;
-
-CHARSET_INFO *fs_character_set()
-{
- if (!fs_cset_cache)
- {
- char buf[10]= "cp";
- GetLocaleInfo(LOCALE_SYSTEM_DEFAULT, LOCALE_IDEFAULTANSICODEPAGE,
- buf+2, sizeof(buf)-3);
- /*
- We cannot call get_charset_by_name here
- because fs_character_set() is executed before
- LOCK_THD_charset mutex initialization, which
- is used inside get_charset_by_name.
- As we're now interested in cp932 only,
- let's just detect it using strcmp().
- */
- fs_cset_cache= !strcmp(buf, "cp932") ?
- &my_charset_cp932_japanese_ci : &my_charset_bin;
- }
- return fs_cset_cache;
-}
-#endif
-
-/*
- Escape apostrophes by doubling them up
-
- SYNOPSIS
- escape_quotes_for_mysql()
- charset_info Charset of the strings
- to Buffer for escaped string
- to_length Length of destination buffer, or 0
- from The string to escape
- length The length of the string to escape
-
- DESCRIPTION
- This escapes the contents of a string by doubling up any apostrophes that
- it contains. This is used when the NO_BACKSLASH_ESCAPES SQL_MODE is in
- effect on the server.
-
- NOTE
- To be consistent with escape_string_for_mysql(), to_length may be 0 to
- mean "big enough"
-
- RETURN VALUES
- ~0 The escaped string did not fit in the to buffer
- >=0 The length of the escaped string
-*/
-
-size_t escape_quotes_for_mysql(CHARSET_INFO *charset_info,
- char *to, size_t to_length,
- const char *from, size_t length)
-{
- const char *to_start= to;
- const char *end, *to_end=to_start + (to_length ? to_length-1 : 2*length);
- my_bool overflow= FALSE;
-#ifdef USE_MB
- my_bool use_mb_flag= use_mb(charset_info);
-#endif
- for (end= from + length; from < end; from++)
- {
-#ifdef USE_MB
- int tmp_length;
- if (use_mb_flag && (tmp_length= my_ismbchar(charset_info, from, end)))
- {
- if (to + tmp_length > to_end)
- {
- overflow= TRUE;
- break;
- }
- while (tmp_length--)
- *to++= *from++;
- from--;
- continue;
- }
- /*
- We don't have the same issue here with a non-multi-byte character being
- turned into a multi-byte character by the addition of an escaping
- character, because we are only escaping the ' character with itself.
- */
-#endif
- if (*from == '\'')
- {
- if (to + 2 > to_end)
- {
- overflow= TRUE;
- break;
- }
- *to++= '\'';
- *to++= '\'';
- }
- else
- {
- if (to + 1 > to_end)
- {
- overflow= TRUE;
- break;
- }
- *to++= *from;
- }
- }
- *to= 0;
- return overflow ? (ulong)~0 : (ulong) (to - to_start);
-}
diff --git a/dep/mysqllite/mysys/checksum.c b/dep/mysqllite/mysys/checksum.c
deleted file mode 100644
index a96ea31ea0e..00000000000
--- a/dep/mysqllite/mysys/checksum.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-#include <my_global.h>
-#include <my_sys.h>
-#include <zlib.h>
-
-/*
- Calculate a long checksum for a memoryblock.
-
- SYNOPSIS
- my_checksum()
- crc start value for crc
- pos pointer to memory block
- length length of the block
-*/
-
-ha_checksum my_checksum(ha_checksum crc, const uchar *pos, size_t length)
-{
- return (ha_checksum)crc32((uint)crc, pos, (uint)length);
-}
-
diff --git a/dep/mysqllite/mysys/default.c b/dep/mysqllite/mysys/default.c
deleted file mode 100644
index 75eb4709e1e..00000000000
--- a/dep/mysqllite/mysys/default.c
+++ /dev/null
@@ -1,1217 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/****************************************************************************
- Add all options from files named "group".cnf from the default_directories
- before the command line arguments.
- On Windows defaults will also search in the Windows directory for a file
- called 'group'.ini
- As long as the program uses the last argument for conflicting
- options one only have to add a call to "load_defaults" to enable
- use of default values.
- pre- and end 'blank space' are removed from options and values. The
- following escape sequences are recognized in values: \b \t \n \r \\
-
- The following arguments are handled automaticly; If used, they must be
- first argument on the command line!
- --no-defaults ; no options are read.
- --defaults-file=full-path-to-default-file ; Only this file will be read.
- --defaults-extra-file=full-path-to-default-file ; Read this file before ~/
- --defaults-group-suffix ; Also read groups with concat(group, suffix)
- --print-defaults ; Print the modified command line and exit
-****************************************************************************/
-
-#include "mysys_priv.h"
-#include "m_string.h"
-#include "m_ctype.h"
-#include <my_dir.h>
-#ifdef __WIN__
-#include <winbase.h>
-#endif
-
-/**
- arguments separator
-
- load_defaults() loads arguments from config file and put them
- before the arguments from command line, this separator is used to
- separate the arguments loaded from config file and arguments user
- provided on command line.
-
- Options with value loaded from config file are always in the form
- '--option=value', while for command line options, the value can be
- given as the next argument. Thus we used a separator so that
- handle_options() can distinguish them.
-
- Note: any other places that does not need to distinguish them
- should skip the separator.
-
- The content of arguments separator does not matter, one should only
- check the pointer, use "----args-separator----" here to ease debug
- if someone misused it.
-
- See BUG#25192
-*/
-const char *args_separator= "----args-separator----";
-const char *my_defaults_file=0;
-const char *my_defaults_group_suffix=0;
-const char *my_defaults_extra_file=0;
-
-static char my_defaults_file_buffer[FN_REFLEN];
-static char my_defaults_extra_file_buffer[FN_REFLEN];
-
-static my_bool defaults_already_read= FALSE;
-
-/* Which directories are searched for options (and in which order) */
-
-#define MAX_DEFAULT_DIRS 6
-#define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */
-static const char **default_directories = NULL;
-
-#ifdef __WIN__
-static const char *f_extensions[]= { ".ini", ".cnf", 0 };
-#define NEWLINE "\r\n"
-#else
-static const char *f_extensions[]= { ".cnf", 0 };
-#define NEWLINE "\n"
-#endif
-
-static int handle_default_option(void *in_ctx, const char *group_name,
- const char *option);
-
-/*
- This structure defines the context that we pass to callback
- function 'handle_default_option' used in search_default_file
- to process each option. This context is used if search_default_file
- was called from load_defaults.
-*/
-
-struct handle_option_ctx
-{
- MEM_ROOT *alloc;
- DYNAMIC_ARRAY *args;
- TYPELIB *group;
-};
-
-static int search_default_file(Process_option_func func, void *func_ctx,
- const char *dir, const char *config_file);
-static int search_default_file_with_ext(Process_option_func func,
- void *func_ctx,
- const char *dir, const char *ext,
- const char *config_file, int recursion_level);
-
-
-/**
- Create the list of default directories.
-
- @param alloc MEM_ROOT where the list of directories is stored
-
- @details
- The directories searched, in order, are:
- - Windows: GetSystemWindowsDirectory()
- - Windows: GetWindowsDirectory()
- - Windows: C:/
- - Windows: Directory above where the executable is located
- - Unix: /etc/
- - Unix: /etc/mysql/
- - Unix: --sysconfdir=<path> (compile-time option)
- - ALL: getenv(DEFAULT_HOME_ENV)
- - ALL: --defaults-extra-file=<path> (run-time option)
- - Unix: ~/
-
- On all systems, if a directory is already in the list, it will be moved
- to the end of the list. This avoids reading defaults files multiple times,
- while ensuring the correct precedence.
-
- @retval NULL Failure (out of memory, probably)
- @retval other Pointer to NULL-terminated array of default directories
-*/
-
-static const char **init_default_directories(MEM_ROOT *alloc);
-
-
-static char *remove_end_comment(char *ptr);
-
-
-/*
- Expand a file name so that the current working directory is added if
- the name is relative.
-
- RETURNS
- 0 All OK
- 2 Out of memory or path to long
- 3 Not able to get working directory
- */
-
-static int
-fn_expand(const char *filename, char *result_buf)
-{
- char dir[FN_REFLEN];
- const int flags= MY_UNPACK_FILENAME | MY_SAFE_PATH | MY_RELATIVE_PATH;
- DBUG_ENTER("fn_expand");
- DBUG_PRINT("enter", ("filename: %s, result_buf: 0x%lx",
- filename, (unsigned long) result_buf));
- if (my_getwd(dir, sizeof(dir), MYF(0)))
- DBUG_RETURN(3);
- DBUG_PRINT("debug", ("dir: %s", dir));
- if (fn_format(result_buf, filename, dir, NULL, flags) == NULL)
- DBUG_RETURN(2);
- DBUG_PRINT("return", ("result: %s", result_buf));
- DBUG_RETURN(0);
-}
-
-/*
- Process config files in default directories.
-
- SYNOPSIS
- my_search_option_files()
- conf_file Basename for configuration file to search for.
- If this is a path, then only this file is read.
- argc Pointer to argc of original program
- argv Pointer to argv of original program
- args_used Pointer to variable for storing the number of
- arguments used.
- func Pointer to the function to process options
- func_ctx It's context. Usually it is the structure to
- store additional options.
- DESCRIPTION
- Process the default options from argc & argv
- Read through each found config file looks and calls 'func' to process
- each option.
-
- NOTES
- --defaults-group-suffix is only processed if we are called from
- load_defaults().
-
-
- RETURN
- 0 ok
- 1 given cinf_file doesn't exist
- 2 out of memory
- 3 Can't get current working directory
-
- The global variable 'my_defaults_group_suffix' is updated with value for
- --defaults_group_suffix
-*/
-
-int my_search_option_files(const char *conf_file, int *argc, char ***argv,
- uint *args_used, Process_option_func func,
- void *func_ctx, const char **default_directories)
-{
- const char **dirs, *forced_default_file, *forced_extra_defaults;
- int error= 0;
- DBUG_ENTER("my_search_option_files");
-
- /* Check if we want to force the use a specific default file */
- *args_used+= get_defaults_options(*argc - *args_used, *argv + *args_used,
- (char **) &forced_default_file,
- (char **) &forced_extra_defaults,
- (char **) &my_defaults_group_suffix);
-
- if (! my_defaults_group_suffix)
- my_defaults_group_suffix= getenv(STRINGIFY_ARG(DEFAULT_GROUP_SUFFIX_ENV));
-
- if (forced_extra_defaults && !defaults_already_read)
- {
- int error= fn_expand(forced_extra_defaults, my_defaults_extra_file_buffer);
- if (error)
- DBUG_RETURN(error);
- my_defaults_extra_file= my_defaults_extra_file_buffer;
- }
-
- if (forced_default_file && !defaults_already_read)
- {
- int error= fn_expand(forced_default_file, my_defaults_file_buffer);
- if (error)
- DBUG_RETURN(error);
- my_defaults_file= my_defaults_file_buffer;
- }
-
- defaults_already_read= TRUE;
-
- /*
- We can only handle 'defaults-group-suffix' if we are called from
- load_defaults() as otherwise we can't know the type of 'func_ctx'
- */
-
- if (my_defaults_group_suffix && func == handle_default_option)
- {
- /* Handle --defaults-group-suffix= */
- uint i;
- const char **extra_groups;
- const size_t instance_len= strlen(my_defaults_group_suffix);
- struct handle_option_ctx *ctx= (struct handle_option_ctx*) func_ctx;
- char *ptr;
- TYPELIB *group= ctx->group;
-
- if (!(extra_groups=
- (const char**)alloc_root(ctx->alloc,
- (2*group->count+1)*sizeof(char*))))
- DBUG_RETURN(2);
-
- for (i= 0; i < group->count; i++)
- {
- size_t len;
- extra_groups[i]= group->type_names[i]; /** copy group */
-
- len= strlen(extra_groups[i]);
- if (!(ptr= alloc_root(ctx->alloc, (uint) (len+instance_len+1))))
- DBUG_RETURN(2);
-
- extra_groups[i+group->count]= ptr;
-
- /** Construct new group */
- memcpy(ptr, extra_groups[i], len);
- memcpy(ptr+len, my_defaults_group_suffix, instance_len+1);
- }
-
- group->count*= 2;
- group->type_names= extra_groups;
- group->type_names[group->count]= 0;
- }
-
- if (my_defaults_file)
- {
- if ((error= search_default_file_with_ext(func, func_ctx, "", "",
- my_defaults_file, 0)) < 0)
- goto err;
- if (error > 0)
- {
- fprintf(stderr, "Could not open required defaults file: %s\n",
- my_defaults_file);
- goto err;
- }
- }
- else if (dirname_length(conf_file))
- {
- if ((error= search_default_file(func, func_ctx, NullS, conf_file)) < 0)
- goto err;
- }
- else
- {
- for (dirs= default_directories ; *dirs; dirs++)
- {
- if (**dirs)
- {
- if (search_default_file(func, func_ctx, *dirs, conf_file) < 0)
- goto err;
- }
- else if (my_defaults_extra_file)
- {
- if ((error= search_default_file_with_ext(func, func_ctx, "", "",
- my_defaults_extra_file, 0)) < 0)
- goto err; /* Fatal error */
- if (error > 0)
- {
- fprintf(stderr, "Could not open required defaults file: %s\n",
- my_defaults_extra_file);
- goto err;
- }
- }
- }
- }
-
- DBUG_RETURN(0);
-
-err:
- fprintf(stderr,"Fatal error in defaults handling. Program aborted\n");
- DBUG_RETURN(1);
-}
-
-
-/*
- The option handler for load_defaults.
-
- SYNOPSIS
- handle_deault_option()
- in_ctx Handler context. In this case it is a
- handle_option_ctx structure.
- group_name The name of the group the option belongs to.
- option The very option to be processed. It is already
- prepared to be used in argv (has -- prefix). If it
- is NULL, we are handling a new group (section).
-
- DESCRIPTION
- This handler checks whether a group is one of the listed and adds an option
- to the array if yes. Some other handler can record, for instance, all
- groups and their options, not knowing in advance the names and amount of
- groups.
-
- RETURN
- 0 - ok
- 1 - error occured
-*/
-
-static int handle_default_option(void *in_ctx, const char *group_name,
- const char *option)
-{
- char *tmp;
- struct handle_option_ctx *ctx= (struct handle_option_ctx *) in_ctx;
-
- if (!option)
- return 0;
-
- if (find_type((char *)group_name, ctx->group, 3))
- {
- if (!(tmp= alloc_root(ctx->alloc, strlen(option) + 1)))
- return 1;
- if (insert_dynamic(ctx->args, (uchar*) &tmp))
- return 1;
- strmov(tmp, option);
- }
-
- return 0;
-}
-
-
-/*
- Gets options from the command line
-
- SYNOPSIS
- get_defaults_options()
- argc Pointer to argc of original program
- argv Pointer to argv of original program
- defaults --defaults-file option
- extra_defaults --defaults-extra-file option
-
- RETURN
- # Number of arguments used from *argv
- defaults and extra_defaults will be set to option of the appropriate
- items of argv array, or to NULL if there are no such options
-*/
-
-int get_defaults_options(int argc, char **argv,
- char **defaults,
- char **extra_defaults,
- char **group_suffix)
-{
- int org_argc= argc, prev_argc= 0;
- *defaults= *extra_defaults= *group_suffix= 0;
-
- while (argc >= 2 && argc != prev_argc)
- {
- /* Skip program name or previously handled argument */
- argv++;
- prev_argc= argc; /* To check if we found */
- if (!*defaults && is_prefix(*argv,"--defaults-file="))
- {
- *defaults= *argv + sizeof("--defaults-file=")-1;
- argc--;
- continue;
- }
- if (!*extra_defaults && is_prefix(*argv,"--defaults-extra-file="))
- {
- *extra_defaults= *argv + sizeof("--defaults-extra-file=")-1;
- argc--;
- continue;
- }
- if (!*group_suffix && is_prefix(*argv, "--defaults-group-suffix="))
- {
- *group_suffix= *argv + sizeof("--defaults-group-suffix=")-1;
- argc--;
- continue;
- }
- }
- return org_argc - argc;
-}
-
-/*
- Wrapper around my_load_defaults() for interface compatibility.
-
- SYNOPSIS
- load_defaults()
- conf_file Basename for configuration file to search for.
- If this is a path, then only this file is read.
- groups Which [group] entrys to read.
- Points to an null terminated array of pointers
- argc Pointer to argc of original program
- argv Pointer to argv of original program
-
- NOTES
-
- This function is NOT thread-safe as it uses a global pointer internally.
- See also notes for my_load_defaults().
-
- RETURN
- 0 ok
- 1 The given conf_file didn't exists
-*/
-int load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv)
-{
- return my_load_defaults(conf_file, groups, argc, argv, &default_directories);
-}
-
-/*
- Read options from configurations files
-
- SYNOPSIS
- my_load_defaults()
- conf_file Basename for configuration file to search for.
- If this is a path, then only this file is read.
- groups Which [group] entrys to read.
- Points to an null terminated array of pointers
- argc Pointer to argc of original program
- argv Pointer to argv of original program
- default_directories Pointer to a location where a pointer to the list
- of default directories will be stored
-
- IMPLEMENTATION
-
- Read options from configuration files and put them BEFORE the arguments
- that are already in argc and argv. This way the calling program can
- easily command line options override options in configuration files
-
- NOTES
- In case of fatal error, the function will print a warning and do
- exit(1)
-
- To free used memory one should call free_defaults() with the argument
- that was put in *argv
-
- RETURN
- - If successful, 0 is returned. If 'default_directories' is not NULL,
- a pointer to the array of default directory paths is stored to a location
- it points to. That stored value must be passed to my_search_option_files()
- later.
-
- - 1 is returned if the given conf_file didn't exist. In this case, the
- value pointed to by default_directories is undefined.
-*/
-
-
-int my_load_defaults(const char *conf_file, const char **groups,
- int *argc, char ***argv, const char ***default_directories)
-{
- DYNAMIC_ARRAY args;
- TYPELIB group;
- my_bool found_print_defaults= 0;
- uint args_used= 0;
- int error= 0;
- MEM_ROOT alloc;
- char *ptr,**res;
- struct handle_option_ctx ctx;
- const char **dirs;
- DBUG_ENTER("load_defaults");
-
- init_alloc_root(&alloc,512,0);
- if ((dirs= init_default_directories(&alloc)) == NULL)
- goto err;
- /*
- Check if the user doesn't want any default option processing
- --no-defaults is always the first option
- */
- if (*argc >= 2 && !strcmp(argv[0][1],"--no-defaults"))
- {
- /* remove the --no-defaults argument and return only the other arguments */
- uint i;
- if (!(ptr=(char*) alloc_root(&alloc,sizeof(alloc)+
- (*argc + 1)*sizeof(char*))))
- goto err;
- res= (char**) (ptr+sizeof(alloc));
- res[0]= **argv; /* Copy program name */
- /* set arguments separator */
- res[1]= (char *)args_separator;
- for (i=2 ; i < (uint) *argc ; i++)
- res[i]=argv[0][i];
- res[i]=0; /* End pointer */
- *argv=res;
- *(MEM_ROOT*) ptr= alloc; /* Save alloc root for free */
- if (default_directories)
- *default_directories= dirs;
- DBUG_RETURN(0);
- }
-
- group.count=0;
- group.name= "defaults";
- group.type_names= groups;
-
- for (; *groups ; groups++)
- group.count++;
-
- if (my_init_dynamic_array(&args, sizeof(char*),*argc, 32))
- goto err;
-
- ctx.alloc= &alloc;
- ctx.args= &args;
- ctx.group= &group;
-
- if ((error= my_search_option_files(conf_file, argc, argv, &args_used,
- handle_default_option, (void *) &ctx,
- dirs)))
- {
- free_root(&alloc,MYF(0));
- DBUG_RETURN(error);
- }
- /*
- Here error contains <> 0 only if we have a fully specified conf_file
- or a forced default file
- */
- if (!(ptr=(char*) alloc_root(&alloc,sizeof(alloc)+
- (args.elements + *argc + 1 + 1) *sizeof(char*))))
- goto err;
- res= (char**) (ptr+sizeof(alloc));
-
- /* copy name + found arguments + command line arguments to new array */
- res[0]= argv[0][0]; /* Name MUST be set, even by embedded library */
- memcpy((uchar*) (res+1), args.buffer, args.elements*sizeof(char*));
- /* Skip --defaults-xxx options */
- (*argc)-= args_used;
- (*argv)+= args_used;
-
- /*
- Check if we wan't to see the new argument list
- This options must always be the last of the default options
- */
- if (*argc >= 2 && !strcmp(argv[0][1],"--print-defaults"))
- {
- found_print_defaults=1;
- --*argc; ++*argv; /* skip argument */
- }
-
- /* set arguments separator for arguments from config file and
- command line */
- res[args.elements+1]= (char *)args_separator;
-
- if (*argc)
- memcpy((uchar*) (res+1+args.elements+1), (char*) ((*argv)+1),
- (*argc-1)*sizeof(char*));
- res[args.elements+ *argc+1]=0; /* last null */
-
- (*argc)+=args.elements+1;
- *argv= (char**) res;
- *(MEM_ROOT*) ptr= alloc; /* Save alloc root for free */
- delete_dynamic(&args);
- if (found_print_defaults)
- {
- int i;
- printf("%s would have been started with the following arguments:\n",
- **argv);
- for (i=1 ; i < *argc ; i++)
- if ((*argv)[i] != args_separator) /* skip arguments separator */
- printf("%s ", (*argv)[i]);
- puts("");
- exit(0);
- }
-
- if (default_directories)
- *default_directories= dirs;
-
- DBUG_RETURN(0);
-
- err:
- fprintf(stderr,"Fatal error in defaults handling. Program aborted\n");
- exit(1);
- return 0; /* Keep compiler happy */
-}
-
-
-void free_defaults(char **argv)
-{
- MEM_ROOT ptr;
- memcpy(&ptr, ((char *) argv) - sizeof(ptr), sizeof(ptr));
- free_root(&ptr,MYF(0));
-}
-
-
-static int search_default_file(Process_option_func opt_handler,
- void *handler_ctx,
- const char *dir,
- const char *config_file)
-{
- char **ext;
- const char *empty_list[]= { "", 0 };
- my_bool have_ext= fn_ext(config_file)[0] != 0;
- const char **exts_to_use= have_ext ? empty_list : f_extensions;
-
- for (ext= (char**) exts_to_use; *ext; ext++)
- {
- int error;
- if ((error= search_default_file_with_ext(opt_handler, handler_ctx,
- dir, *ext,
- config_file, 0)) < 0)
- return error;
- }
- return 0;
-}
-
-
-/*
- Skip over keyword and get argument after keyword
-
- SYNOPSIS
- get_argument()
- keyword Include directive keyword
- kwlen Length of keyword
- ptr Pointer to the keword in the line under process
- line line number
-
- RETURN
- 0 error
- # Returns pointer to the argument after the keyword.
-*/
-
-static char *get_argument(const char *keyword, size_t kwlen,
- char *ptr, char *name, uint line)
-{
- char *end;
-
- /* Skip over "include / includedir keyword" and following whitespace */
-
- for (ptr+= kwlen - 1;
- my_isspace(&my_charset_latin1, ptr[0]);
- ptr++)
- {}
-
- /*
- Trim trailing whitespace from directory name
- The -1 below is for the newline added by fgets()
- Note that my_isspace() is true for \r and \n
- */
- for (end= ptr + strlen(ptr) - 1;
- my_isspace(&my_charset_latin1, *(end - 1));
- end--)
- {}
- end[0]= 0; /* Cut off end space */
-
- /* Print error msg if there is nothing after !include* directive */
- if (end <= ptr)
- {
- fprintf(stderr,
- "error: Wrong '!%s' directive in config file: %s at line %d\n",
- keyword, name, line);
- return 0;
- }
- return ptr;
-}
-
-
-/*
- Open a configuration file (if exists) and read given options from it
-
- SYNOPSIS
- search_default_file_with_ext()
- opt_handler Option handler function. It is used to process
- every separate option.
- handler_ctx Pointer to the structure to store actual
- parameters of the function.
- dir directory to read
- ext Extension for configuration file
- config_file Name of configuration file
- group groups to read
- recursion_level the level of recursion, got while processing
- "!include" or "!includedir"
-
- RETURN
- 0 Success
- -1 Fatal error, abort
- 1 File not found (Warning)
-*/
-
-static int search_default_file_with_ext(Process_option_func opt_handler,
- void *handler_ctx,
- const char *dir,
- const char *ext,
- const char *config_file,
- int recursion_level)
-{
- char name[FN_REFLEN + 10], buff[4096], curr_gr[4096], *ptr, *end, **tmp_ext;
- char *value, option[4096+2], tmp[FN_REFLEN];
- static const char includedir_keyword[]= "includedir";
- static const char include_keyword[]= "include";
- const int max_recursion_level= 10;
- MYSQL_FILE *fp;
- uint line=0;
- my_bool found_group=0;
- uint i;
- MY_DIR *search_dir;
- FILEINFO *search_file;
-
- if ((dir ? strlen(dir) : 0 )+strlen(config_file) >= FN_REFLEN-3)
- return 0; /* Ignore wrong paths */
- if (dir)
- {
- end=convert_dirname(name, dir, NullS);
- if (dir[0] == FN_HOMELIB) /* Add . to filenames in home */
- *end++='.';
- strxmov(end,config_file,ext,NullS);
- }
- else
- {
- strmov(name,config_file);
- }
- fn_format(name,name,"","",4);
-#if !defined(__WIN__)
- {
- MY_STAT stat_info;
- if (!my_stat(name,&stat_info,MYF(0)))
- return 1;
- /*
- Ignore world-writable regular files.
- This is mainly done to protect us to not read a file created by
- the mysqld server, but the check is still valid in most context.
- */
- if ((stat_info.st_mode & S_IWOTH) &&
- (stat_info.st_mode & S_IFMT) == S_IFREG)
- {
- fprintf(stderr, "Warning: World-writable config file '%s' is ignored\n",
- name);
- return 0;
- }
- }
-#endif
- if (!(fp= mysql_file_fopen(key_file_cnf, name, O_RDONLY, MYF(0))))
- return 1; /* Ignore wrong files */
-
- while (mysql_file_fgets(buff, sizeof(buff) - 1, fp))
- {
- line++;
- /* Ignore comment and empty lines */
- for (ptr= buff; my_isspace(&my_charset_latin1, *ptr); ptr++)
- {}
-
- if (*ptr == '#' || *ptr == ';' || !*ptr)
- continue;
-
- /* Configuration File Directives */
- if ((*ptr == '!'))
- {
- if (recursion_level >= max_recursion_level)
- {
- for (end= ptr + strlen(ptr) - 1;
- my_isspace(&my_charset_latin1, *(end - 1));
- end--)
- {}
- end[0]= 0;
- fprintf(stderr,
- "Warning: skipping '%s' directive as maximum include"
- "recursion level was reached in file %s at line %d\n",
- ptr, name, line);
- continue;
- }
-
- /* skip over `!' and following whitespace */
- for (++ptr; my_isspace(&my_charset_latin1, ptr[0]); ptr++)
- {}
-
- if ((!strncmp(ptr, includedir_keyword,
- sizeof(includedir_keyword) - 1)) &&
- my_isspace(&my_charset_latin1, ptr[sizeof(includedir_keyword) - 1]))
- {
- if (!(ptr= get_argument(includedir_keyword,
- sizeof(includedir_keyword),
- ptr, name, line)))
- goto err;
-
- if (!(search_dir= my_dir(ptr, MYF(MY_WME))))
- goto err;
-
- for (i= 0; i < (uint) search_dir->number_off_files; i++)
- {
- search_file= search_dir->dir_entry + i;
- ext= fn_ext(search_file->name);
-
- /* check extension */
- for (tmp_ext= (char**) f_extensions; *tmp_ext; tmp_ext++)
- {
- if (!strcmp(ext, *tmp_ext))
- break;
- }
-
- if (*tmp_ext)
- {
- fn_format(tmp, search_file->name, ptr, "",
- MY_UNPACK_FILENAME | MY_SAFE_PATH);
-
- search_default_file_with_ext(opt_handler, handler_ctx, "", "", tmp,
- recursion_level + 1);
- }
- }
-
- my_dirend(search_dir);
- }
- else if ((!strncmp(ptr, include_keyword, sizeof(include_keyword) - 1)) &&
- my_isspace(&my_charset_latin1, ptr[sizeof(include_keyword)-1]))
- {
- if (!(ptr= get_argument(include_keyword,
- sizeof(include_keyword), ptr,
- name, line)))
- goto err;
-
- search_default_file_with_ext(opt_handler, handler_ctx, "", "", ptr,
- recursion_level + 1);
- }
-
- continue;
- }
-
- if (*ptr == '[') /* Group name */
- {
- found_group=1;
- if (!(end=(char *) strchr(++ptr,']')))
- {
- fprintf(stderr,
- "error: Wrong group definition in config file: %s at line %d\n",
- name,line);
- goto err;
- }
- /* Remove end space */
- for ( ; my_isspace(&my_charset_latin1,end[-1]) ; end--) ;
- end[0]=0;
-
- strmake(curr_gr, ptr, min((size_t) (end-ptr)+1, sizeof(curr_gr)-1));
-
- /* signal that a new group is found */
- opt_handler(handler_ctx, curr_gr, NULL);
-
- continue;
- }
- if (!found_group)
- {
- fprintf(stderr,
- "error: Found option without preceding group in config file: %s at line: %d\n",
- name,line);
- goto err;
- }
-
-
- end= remove_end_comment(ptr);
- if ((value= strchr(ptr, '=')))
- end= value; /* Option without argument */
- for ( ; my_isspace(&my_charset_latin1,end[-1]) ; end--) ;
- if (!value)
- {
- strmake(strmov(option,"--"),ptr, (size_t) (end-ptr));
- if (opt_handler(handler_ctx, curr_gr, option))
- goto err;
- }
- else
- {
- /* Remove pre- and end space */
- char *value_end;
- for (value++ ; my_isspace(&my_charset_latin1,*value); value++) ;
- value_end=strend(value);
- /*
- We don't have to test for value_end >= value as we know there is
- an '=' before
- */
- for ( ; my_isspace(&my_charset_latin1,value_end[-1]) ; value_end--) ;
- if (value_end < value) /* Empty string */
- value_end=value;
-
- /* remove quotes around argument */
- if ((*value == '\"' || *value == '\'') && /* First char is quote */
- (value + 1 < value_end ) && /* String is longer than 1 */
- *value == value_end[-1] ) /* First char is equal to last char */
- {
- value++;
- value_end--;
- }
- ptr=strnmov(strmov(option,"--"),ptr,(size_t) (end-ptr));
- *ptr++= '=';
-
- for ( ; value != value_end; value++)
- {
- if (*value == '\\' && value != value_end-1)
- {
- switch(*++value) {
- case 'n':
- *ptr++='\n';
- break;
- case 't':
- *ptr++= '\t';
- break;
- case 'r':
- *ptr++ = '\r';
- break;
- case 'b':
- *ptr++ = '\b';
- break;
- case 's':
- *ptr++= ' '; /* space */
- break;
- case '\"':
- *ptr++= '\"';
- break;
- case '\'':
- *ptr++= '\'';
- break;
- case '\\':
- *ptr++= '\\';
- break;
- default: /* Unknown; Keep '\' */
- *ptr++= '\\';
- *ptr++= *value;
- break;
- }
- }
- else
- *ptr++= *value;
- }
- *ptr=0;
- if (opt_handler(handler_ctx, curr_gr, option))
- goto err;
- }
- }
- mysql_file_fclose(fp, MYF(0));
- return(0);
-
- err:
- mysql_file_fclose(fp, MYF(0));
- return -1; /* Fatal error */
-}
-
-
-static char *remove_end_comment(char *ptr)
-{
- char quote= 0; /* we are inside quote marks */
- char escape= 0; /* symbol is protected by escape chagacter */
-
- for (; *ptr; ptr++)
- {
- if ((*ptr == '\'' || *ptr == '\"') && !escape)
- {
- if (!quote)
- quote= *ptr;
- else if (quote == *ptr)
- quote= 0;
- }
- /* We are not inside a string */
- if (!quote && *ptr == '#')
- {
- *ptr= 0;
- return ptr;
- }
- escape= (quote && *ptr == '\\' && !escape);
- }
- return ptr;
-}
-
-
-void my_print_default_files(const char *conf_file)
-{
- const char *empty_list[]= { "", 0 };
- my_bool have_ext= fn_ext(conf_file)[0] != 0;
- const char **exts_to_use= have_ext ? empty_list : f_extensions;
- char name[FN_REFLEN], **ext;
-
- puts("\nDefault options are read from the following files in the given order:");
-
- if (dirname_length(conf_file))
- fputs(conf_file,stdout);
- else
- {
- const char **dirs;
- MEM_ROOT alloc;
- init_alloc_root(&alloc,512,0);
-
- if ((dirs= init_default_directories(&alloc)) == NULL)
- {
- fputs("Internal error initializing default directories list", stdout);
- }
- else
- {
- for ( ; *dirs; dirs++)
- {
- for (ext= (char**) exts_to_use; *ext; ext++)
- {
- const char *pos;
- char *end;
- if (**dirs)
- pos= *dirs;
- else if (my_defaults_extra_file)
- pos= my_defaults_extra_file;
- else
- continue;
- end= convert_dirname(name, pos, NullS);
- if (name[0] == FN_HOMELIB) /* Add . to filenames in home */
- *end++= '.';
- strxmov(end, conf_file, *ext, " ", NullS);
- fputs(name, stdout);
- }
- }
- }
-
- free_root(&alloc, MYF(0));
- }
- puts("");
-}
-
-void print_defaults(const char *conf_file, const char **groups)
-{
- const char **groups_save= groups;
- my_print_default_files(conf_file);
-
- fputs("The following groups are read:",stdout);
- for ( ; *groups ; groups++)
- {
- fputc(' ',stdout);
- fputs(*groups,stdout);
- }
-
- if (my_defaults_group_suffix)
- {
- groups= groups_save;
- for ( ; *groups ; groups++)
- {
- fputc(' ',stdout);
- fputs(*groups,stdout);
- fputs(my_defaults_group_suffix,stdout);
- }
- }
- puts("\nThe following options may be given as the first argument:\n\
---print-defaults Print the program argument list and exit.\n\
---no-defaults Don't read default options from any option file.\n\
---defaults-file=# Only read default options from the given file #.\n\
---defaults-extra-file=# Read this file after the global files are read.");
-}
-
-
-static int add_directory(MEM_ROOT *alloc, const char *dir, const char **dirs)
-{
- char buf[FN_REFLEN];
- size_t len;
- char *p;
- my_bool err __attribute__((unused));
-
- len= normalize_dirname(buf, dir);
- if (!(p= strmake_root(alloc, buf, len)))
- return 1; /* Failure */
- /* Should never fail if DEFAULT_DIRS_SIZE is correct size */
- err= array_append_string_unique(p, dirs, DEFAULT_DIRS_SIZE);
- DBUG_ASSERT(err == FALSE);
-
- return 0;
-}
-
-
-#ifdef __WIN__
-/*
- This wrapper for GetSystemWindowsDirectory() will dynamically bind to the
- function if it is available, emulate it on NT4 Terminal Server by stripping
- the \SYSTEM32 from the end of the results of GetSystemDirectory(), or just
- return GetSystemDirectory().
- */
-
-typedef UINT (WINAPI *GET_SYSTEM_WINDOWS_DIRECTORY)(LPSTR, UINT);
-
-static size_t my_get_system_windows_directory(char *buffer, size_t size)
-{
- size_t count;
- GET_SYSTEM_WINDOWS_DIRECTORY
- func_ptr= (GET_SYSTEM_WINDOWS_DIRECTORY)
- GetProcAddress(GetModuleHandle("kernel32.dll"),
- "GetSystemWindowsDirectoryA");
-
- if (func_ptr)
- return func_ptr(buffer, (uint) size);
-
- /*
- Windows NT 4.0 Terminal Server Edition:
- To retrieve the shared Windows directory, call GetSystemDirectory and
- trim the "System32" element from the end of the returned path.
- */
- count= GetSystemDirectory(buffer, (uint) size);
- if (count > 8 && stricmp(buffer+(count-8), "\\System32") == 0)
- {
- count-= 8;
- buffer[count] = '\0';
- }
- return count;
-}
-
-
-static const char *my_get_module_parent(char *buf, size_t size)
-{
- char *last= NULL;
- char *end;
- if (!GetModuleFileName(NULL, buf, (DWORD) size))
- return NULL;
- end= strend(buf);
-
- /*
- Look for the second-to-last \ in the filename, but hang on
- to a pointer after the last \ in case we're in the root of
- a drive.
- */
- for ( ; end > buf; end--)
- {
- if (*end == FN_LIBCHAR)
- {
- if (last)
- {
- /* Keep the last '\' as this works both with D:\ and a directory */
- end[1]= 0;
- break;
- }
- last= end;
- }
- }
-
- return buf;
-}
-#endif /* __WIN__ */
-
-
-static const char **init_default_directories(MEM_ROOT *alloc)
-{
- const char **dirs;
- char *env;
- int errors= 0;
-
- dirs= (const char **)alloc_root(alloc, DEFAULT_DIRS_SIZE * sizeof(char *));
- if (dirs == NULL)
- return NULL;
- bzero((char *) dirs, DEFAULT_DIRS_SIZE * sizeof(char *));
-
-#ifdef __WIN__
-
- {
- char fname_buffer[FN_REFLEN];
- if (my_get_system_windows_directory(fname_buffer, sizeof(fname_buffer)))
- errors += add_directory(alloc, fname_buffer, dirs);
-
- if (GetWindowsDirectory(fname_buffer, sizeof(fname_buffer)))
- errors += add_directory(alloc, fname_buffer, dirs);
-
- errors += add_directory(alloc, "C:/", dirs);
-
- if (my_get_module_parent(fname_buffer, sizeof(fname_buffer)) != NULL)
- errors += add_directory(alloc, fname_buffer, dirs);
- }
-
-#else
-
- errors += add_directory(alloc, "/etc/", dirs);
- errors += add_directory(alloc, "/etc/mysql/", dirs);
-
-#if defined(DEFAULT_SYSCONFDIR)
- if (DEFAULT_SYSCONFDIR[0])
- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs);
-#endif /* DEFAULT_SYSCONFDIR */
-
-#endif
-
- if ((env= getenv(STRINGIFY_ARG(DEFAULT_HOME_ENV))))
- errors += add_directory(alloc, env, dirs);
-
- /* Placeholder for --defaults-extra-file=<path> */
- errors += add_directory(alloc, "", dirs);
-
-#if !defined(__WIN__)
- errors += add_directory(alloc, "~/", dirs);
-#endif
-
- return (errors > 0 ? NULL : dirs);
-}
diff --git a/dep/mysqllite/mysys/errors.c b/dep/mysqllite/mysys/errors.c
deleted file mode 100644
index c74ed292906..00000000000
--- a/dep/mysqllite/mysys/errors.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-
-#ifndef SHARED_LIBRARY
-
-const char *globerrs[GLOBERRS]=
-{
- "Can't create/write to file '%s' (Errcode: %d)",
- "Error reading file '%s' (Errcode: %d)",
- "Error writing file '%s' (Errcode: %d)",
- "Error on close of '%s' (Errcode: %d)",
- "Out of memory (Needed %u bytes)",
- "Error on delete of '%s' (Errcode: %d)",
- "Error on rename of '%s' to '%s' (Errcode: %d)",
- "",
- "Unexpected eof found when reading file '%s' (Errcode: %d)",
- "Can't lock file (Errcode: %d)",
- "Can't unlock file (Errcode: %d)",
- "Can't read dir of '%s' (Errcode: %d)",
- "Can't get stat of '%s' (Errcode: %d)",
- "Can't change size of file (Errcode: %d)",
- "Can't open stream from handle (Errcode: %d)",
- "Can't get working dirctory (Errcode: %d)",
- "Can't change dir to '%s' (Errcode: %d)",
- "Warning: '%s' had %d links",
- "Warning: %d files and %d streams is left open\n",
- "Disk is full writing '%s' (Errcode: %d). Waiting for someone to free space... (Expect up to %d secs delay for server to continue after freeing disk space)",
- "Can't create directory '%s' (Errcode: %d)",
- "Character set '%s' is not a compiled character set and is not specified in the '%s' file",
- "Out of resources when opening file '%s' (Errcode: %d)",
- "Can't read value for symlink '%s' (Error %d)",
- "Can't create symlink '%s' pointing at '%s' (Error %d)",
- "Error on realpath() on '%s' (Error %d)",
- "Can't sync file '%s' to disk (Errcode: %d)",
- "Collation '%s' is not a compiled collation and is not specified in the '%s' file",
- "File '%s' not found (Errcode: %d)",
- "File '%s' (fileno: %d) was not closed",
- "Can't change ownership of the file '%s' (Errcode: %d)",
- "Can't change permissions of the file '%s' (Errcode: %d)",
- "Can't seek in file '%s' (Errcode: %d)"
-};
-
-void init_glob_errs(void)
-{
- /* This is now done statically. */
-}
-
-#else
-
-void init_glob_errs()
-{
- EE(EE_CANTCREATEFILE) = "Can't create/write to file '%s' (Errcode: %d)";
- EE(EE_READ) = "Error reading file '%s' (Errcode: %d)";
- EE(EE_WRITE) = "Error writing file '%s' (Errcode: %d)";
- EE(EE_BADCLOSE) = "Error on close of '%'s (Errcode: %d)";
- EE(EE_OUTOFMEMORY) = "Out of memory (Needed %u bytes)";
- EE(EE_DELETE) = "Error on delete of '%s' (Errcode: %d)";
- EE(EE_LINK) = "Error on rename of '%s' to '%s' (Errcode: %d)";
- EE(EE_EOFERR) = "Unexpected eof found when reading file '%s' (Errcode: %d)";
- EE(EE_CANTLOCK) = "Can't lock file (Errcode: %d)";
- EE(EE_CANTUNLOCK) = "Can't unlock file (Errcode: %d)";
- EE(EE_DIR) = "Can't read dir of '%s' (Errcode: %d)";
- EE(EE_STAT) = "Can't get stat of '%s' (Errcode: %d)";
- EE(EE_CANT_CHSIZE) = "Can't change size of file (Errcode: %d)";
- EE(EE_CANT_OPEN_STREAM)= "Can't open stream from handle (Errcode: %d)";
- EE(EE_GETWD) = "Can't get working directory (Errcode: %d)";
- EE(EE_SETWD) = "Can't change dir to '%s' (Errcode: %d)";
- EE(EE_LINK_WARNING) = "Warning: '%s' had %d links";
- EE(EE_OPEN_WARNING) = "Warning: %d files and %d streams is left open\n";
- EE(EE_DISK_FULL) = "Disk is full writing '%s'. Waiting for someone to free space...";
- EE(EE_CANT_MKDIR) ="Can't create directory '%s' (Errcode: %d)";
- EE(EE_UNKNOWN_CHARSET)= "Character set '%s' is not a compiled character set and is not specified in the %s file";
- EE(EE_OUT_OF_FILERESOURCES)="Out of resources when opening file '%s' (Errcode: %d)";
- EE(EE_CANT_READLINK)= "Can't read value for symlink '%s' (Error %d)";
- EE(EE_CANT_SYMLINK)= "Can't create symlink '%s' pointing at '%s' (Error %d)";
- EE(EE_REALPATH)= "Error on realpath() on '%s' (Error %d)";
- EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %d)";
- EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file";
- EE(EE_FILENOTFOUND) = "File '%s' not found (Errcode: %d)";
- EE(EE_FILE_NOT_CLOSED) = "File '%s' (fileno: %d) was not closed";
- EE(EE_CHANGE_OWNERSHIP) = "Can't change ownership of the file '%s' (Errcode: %d)";
- EE(EE_CHANGE_PERMISSIONS) = "Can't change permissions of the file '%s' (Errcode: %d)";
- EE(EE_CANT_SEEK) = "Can't seek in file '%s' (Errcode: %d)";
-}
-#endif
-
-void wait_for_free_space(const char *filename, int errors)
-{
- if (errors == 0)
- my_error(EE_DISK_FULL,MYF(ME_BELL | ME_NOREFRESH),
- filename,my_errno,MY_WAIT_FOR_USER_TO_FIX_PANIC);
- if (!(errors % MY_WAIT_GIVE_USER_A_MESSAGE))
- my_printf_error(EE_DISK_FULL,
- "Retry in %d secs. Message reprinted in %d secs",
- MYF(ME_BELL | ME_NOREFRESH),
- MY_WAIT_FOR_USER_TO_FIX_PANIC,
- MY_WAIT_GIVE_USER_A_MESSAGE * MY_WAIT_FOR_USER_TO_FIX_PANIC );
- (void) sleep(MY_WAIT_FOR_USER_TO_FIX_PANIC);
-}
-
-const char **get_global_errmsgs()
-{
- return globerrs;
-}
diff --git a/dep/mysqllite/mysys/hash.c b/dep/mysqllite/mysys/hash.c
deleted file mode 100644
index f54ac1a4abb..00000000000
--- a/dep/mysqllite/mysys/hash.c
+++ /dev/null
@@ -1,769 +0,0 @@
-/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* The hash functions used for saveing keys */
-/* One of key_length or key_length_offset must be given */
-/* Key length of 0 isn't allowed */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <m_ctype.h>
-#include "hash.h"
-
-#define NO_RECORD ((uint) -1)
-#define LOWFIND 1
-#define LOWUSED 2
-#define HIGHFIND 4
-#define HIGHUSED 8
-
-typedef struct st_hash_info {
- uint next; /* index to next key */
- uchar *data; /* data for current entry */
-} HASH_LINK;
-
-static uint my_hash_mask(my_hash_value_type hashnr,
- size_t buffmax, size_t maxlength);
-static void movelink(HASH_LINK *array,uint pos,uint next_link,uint newlink);
-static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key,
- size_t length);
-
-static my_hash_value_type calc_hash(const HASH *hash,
- const uchar *key, size_t length)
-{
- ulong nr1=1, nr2=4;
- hash->charset->coll->hash_sort(hash->charset,(uchar*) key,length,&nr1,&nr2);
- return (my_hash_value_type)nr1;
-}
-
-/**
- @brief Initialize the hash
-
- @details
-
- Initialize the hash, by defining and giving valid values for
- its elements. The failure to allocate memory for the
- hash->array element will not result in a fatal failure. The
- dynamic array that is part of the hash will allocate memory
- as required during insertion.
-
- @param[in,out] hash The hash that is initialized
- @param[in] charset The charater set information
- @param[in] size The hash size
- @param[in] key_offest The key offset for the hash
- @param[in] key_length The length of the key used in
- the hash
- @param[in] get_key get the key for the hash
- @param[in] free_element pointer to the function that
- does cleanup
- @return inidicates success or failure of initialization
- @retval 0 success
- @retval 1 failure
-*/
-my_bool
-_my_hash_init(HASH *hash, uint growth_size, CHARSET_INFO *charset,
- ulong size, size_t key_offset, size_t key_length,
- my_hash_get_key get_key,
- void (*free_element)(void*), uint flags)
-{
- DBUG_ENTER("my_hash_init");
- DBUG_PRINT("enter",("hash: 0x%lx size: %u", (long) hash, (uint) size));
-
- hash->records=0;
- hash->key_offset=key_offset;
- hash->key_length=key_length;
- hash->blength=1;
- hash->get_key=get_key;
- hash->free=free_element;
- hash->flags=flags;
- hash->charset=charset;
- DBUG_RETURN(my_init_dynamic_array_ci(&hash->array,
- sizeof(HASH_LINK), size, growth_size));
-}
-
-
-/*
- Call hash->free on all elements in hash.
-
- SYNOPSIS
- my_hash_free_elements()
- hash hash table
-
- NOTES:
- Sets records to 0
-*/
-
-static inline void my_hash_free_elements(HASH *hash)
-{
- if (hash->free)
- {
- HASH_LINK *data=dynamic_element(&hash->array,0,HASH_LINK*);
- HASH_LINK *end= data + hash->records;
- while (data < end)
- (*hash->free)((data++)->data);
- }
- hash->records=0;
-}
-
-
-/*
- Free memory used by hash.
-
- SYNOPSIS
- my_hash_free()
- hash the hash to delete elements of
-
- NOTES: Hash can't be reused without calling my_hash_init again.
-*/
-
-void my_hash_free(HASH *hash)
-{
- DBUG_ENTER("my_hash_free");
- DBUG_PRINT("enter",("hash: 0x%lx", (long) hash));
-
- my_hash_free_elements(hash);
- hash->free= 0;
- delete_dynamic(&hash->array);
- hash->blength= 0;
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Delete all elements from the hash (the hash itself is to be reused).
-
- SYNOPSIS
- my_hash_reset()
- hash the hash to delete elements of
-*/
-
-void my_hash_reset(HASH *hash)
-{
- DBUG_ENTER("my_hash_reset");
- DBUG_PRINT("enter",("hash: 0x%lxd", (long) hash));
-
- my_hash_free_elements(hash);
- reset_dynamic(&hash->array);
- /* Set row pointers so that the hash can be reused at once */
- hash->blength= 1;
- DBUG_VOID_RETURN;
-}
-
-/* some helper functions */
-
-/*
- This function is char* instead of uchar* as HPUX11 compiler can't
- handle inline functions that are not defined as native types
-*/
-
-static inline char*
-my_hash_key(const HASH *hash, const uchar *record, size_t *length,
- my_bool first)
-{
- if (hash->get_key)
- return (char*) (*hash->get_key)(record,length,first);
- *length=hash->key_length;
- return (char*) record+hash->key_offset;
-}
-
- /* Calculate pos according to keys */
-
-static uint my_hash_mask(my_hash_value_type hashnr, size_t buffmax,
- size_t maxlength)
-{
- if ((hashnr & (buffmax-1)) < maxlength) return (hashnr & (buffmax-1));
- return (hashnr & ((buffmax >> 1) -1));
-}
-
-static uint my_hash_rec_mask(const HASH *hash, HASH_LINK *pos,
- size_t buffmax, size_t maxlength)
-{
- size_t length;
- uchar *key= (uchar*) my_hash_key(hash, pos->data, &length, 0);
- return my_hash_mask(calc_hash(hash, key, length), buffmax, maxlength);
-}
-
-
-
-/* for compilers which can not handle inline */
-static
-#if !defined(__USLC__) && !defined(__sgi)
-inline
-#endif
-my_hash_value_type rec_hashnr(HASH *hash,const uchar *record)
-{
- size_t length;
- uchar *key= (uchar*) my_hash_key(hash, record, &length, 0);
- return calc_hash(hash,key,length);
-}
-
-
-uchar* my_hash_search(const HASH *hash, const uchar *key, size_t length)
-{
- HASH_SEARCH_STATE state;
- return my_hash_first(hash, key, length, &state);
-}
-
-uchar* my_hash_search_using_hash_value(const HASH *hash,
- my_hash_value_type hash_value,
- const uchar *key,
- size_t length)
-{
- HASH_SEARCH_STATE state;
- return my_hash_first_from_hash_value(hash, hash_value,
- key, length, &state);
-}
-
-my_hash_value_type my_calc_hash(const HASH *hash,
- const uchar *key, size_t length)
-{
- return calc_hash(hash, key, length ? length : hash->key_length);
-}
-
-
-/*
- Search after a record based on a key
-
- NOTE
- Assigns the number of the found record to HASH_SEARCH_STATE state
-*/
-
-uchar* my_hash_first(const HASH *hash, const uchar *key, size_t length,
- HASH_SEARCH_STATE *current_record)
-{
- uchar *res;
- if (my_hash_inited(hash))
- res= my_hash_first_from_hash_value(hash,
- calc_hash(hash, key, length ? length : hash->key_length),
- key, length, current_record);
- else
- res= 0;
- return res;
-}
-
-
-uchar* my_hash_first_from_hash_value(const HASH *hash,
- my_hash_value_type hash_value,
- const uchar *key,
- size_t length,
- HASH_SEARCH_STATE *current_record)
-{
- HASH_LINK *pos;
- uint flag,idx;
- DBUG_ENTER("my_hash_first_from_hash_value");
-
- flag=1;
- if (hash->records)
- {
- idx= my_hash_mask(hash_value,
- hash->blength, hash->records);
- do
- {
- pos= dynamic_element(&hash->array,idx,HASH_LINK*);
- if (!hashcmp(hash,pos,key,length))
- {
- DBUG_PRINT("exit",("found key at %d",idx));
- *current_record= idx;
- DBUG_RETURN (pos->data);
- }
- if (flag)
- {
- flag=0; /* Reset flag */
- if (my_hash_rec_mask(hash, pos, hash->blength, hash->records) != idx)
- break; /* Wrong link */
- }
- }
- while ((idx=pos->next) != NO_RECORD);
- }
- *current_record= NO_RECORD;
- DBUG_RETURN(0);
-}
-
- /* Get next record with identical key */
- /* Can only be called if previous calls was my_hash_search */
-
-uchar* my_hash_next(const HASH *hash, const uchar *key, size_t length,
- HASH_SEARCH_STATE *current_record)
-{
- HASH_LINK *pos;
- uint idx;
-
- if (*current_record != NO_RECORD)
- {
- HASH_LINK *data=dynamic_element(&hash->array,0,HASH_LINK*);
- for (idx=data[*current_record].next; idx != NO_RECORD ; idx=pos->next)
- {
- pos=data+idx;
- if (!hashcmp(hash,pos,key,length))
- {
- *current_record= idx;
- return pos->data;
- }
- }
- *current_record= NO_RECORD;
- }
- return 0;
-}
-
-
- /* Change link from pos to new_link */
-
-static void movelink(HASH_LINK *array,uint find,uint next_link,uint newlink)
-{
- HASH_LINK *old_link;
- do
- {
- old_link=array+next_link;
- }
- while ((next_link=old_link->next) != find);
- old_link->next= newlink;
- return;
-}
-
-/*
- Compare a key in a record to a whole key. Return 0 if identical
-
- SYNOPSIS
- hashcmp()
- hash hash table
- pos position of hash record to use in comparison
- key key for comparison
- length length of key
-
- NOTES:
- If length is 0, comparison is done using the length of the
- record being compared against.
-
- RETURN
- = 0 key of record == key
- != 0 key of record != key
- */
-
-static int hashcmp(const HASH *hash, HASH_LINK *pos, const uchar *key,
- size_t length)
-{
- size_t rec_keylength;
- uchar *rec_key= (uchar*) my_hash_key(hash, pos->data, &rec_keylength, 1);
- return ((length && length != rec_keylength) ||
- my_strnncoll(hash->charset, (uchar*) rec_key, rec_keylength,
- (uchar*) key, rec_keylength));
-}
-
-
- /* Write a hash-key to the hash-index */
-
-my_bool my_hash_insert(HASH *info, const uchar *record)
-{
- int flag;
- size_t idx,halfbuff,first_index;
- my_hash_value_type hash_nr;
- uchar *UNINIT_VAR(ptr_to_rec),*UNINIT_VAR(ptr_to_rec2);
- HASH_LINK *data,*empty,*UNINIT_VAR(gpos),*UNINIT_VAR(gpos2),*pos;
-
- if (HASH_UNIQUE & info->flags)
- {
- uchar *key= (uchar*) my_hash_key(info, record, &idx, 1);
- if (my_hash_search(info, key, idx))
- return(TRUE); /* Duplicate entry */
- }
-
- flag=0;
- if (!(empty=(HASH_LINK*) alloc_dynamic(&info->array)))
- return(TRUE); /* No more memory */
-
- data=dynamic_element(&info->array,0,HASH_LINK*);
- halfbuff= info->blength >> 1;
-
- idx=first_index=info->records-halfbuff;
- if (idx != info->records) /* If some records */
- {
- do
- {
- pos=data+idx;
- hash_nr=rec_hashnr(info,pos->data);
- if (flag == 0) /* First loop; Check if ok */
- if (my_hash_mask(hash_nr, info->blength, info->records) != first_index)
- break;
- if (!(hash_nr & halfbuff))
- { /* Key will not move */
- if (!(flag & LOWFIND))
- {
- if (flag & HIGHFIND)
- {
- flag=LOWFIND | HIGHFIND;
- /* key shall be moved to the current empty position */
- gpos=empty;
- ptr_to_rec=pos->data;
- empty=pos; /* This place is now free */
- }
- else
- {
- flag=LOWFIND | LOWUSED; /* key isn't changed */
- gpos=pos;
- ptr_to_rec=pos->data;
- }
- }
- else
- {
- if (!(flag & LOWUSED))
- {
- /* Change link of previous LOW-key */
- gpos->data=ptr_to_rec;
- gpos->next= (uint) (pos-data);
- flag= (flag & HIGHFIND) | (LOWFIND | LOWUSED);
- }
- gpos=pos;
- ptr_to_rec=pos->data;
- }
- }
- else
- { /* key will be moved */
- if (!(flag & HIGHFIND))
- {
- flag= (flag & LOWFIND) | HIGHFIND;
- /* key shall be moved to the last (empty) position */
- gpos2 = empty; empty=pos;
- ptr_to_rec2=pos->data;
- }
- else
- {
- if (!(flag & HIGHUSED))
- {
- /* Change link of previous hash-key and save */
- gpos2->data=ptr_to_rec2;
- gpos2->next=(uint) (pos-data);
- flag= (flag & LOWFIND) | (HIGHFIND | HIGHUSED);
- }
- gpos2=pos;
- ptr_to_rec2=pos->data;
- }
- }
- }
- while ((idx=pos->next) != NO_RECORD);
-
- if ((flag & (LOWFIND | LOWUSED)) == LOWFIND)
- {
- gpos->data=ptr_to_rec;
- gpos->next=NO_RECORD;
- }
- if ((flag & (HIGHFIND | HIGHUSED)) == HIGHFIND)
- {
- gpos2->data=ptr_to_rec2;
- gpos2->next=NO_RECORD;
- }
- }
- /* Check if we are at the empty position */
-
- idx= my_hash_mask(rec_hashnr(info, record), info->blength, info->records + 1);
- pos=data+idx;
- if (pos == empty)
- {
- pos->data=(uchar*) record;
- pos->next=NO_RECORD;
- }
- else
- {
- /* Check if more records in same hash-nr family */
- empty[0]=pos[0];
- gpos= data + my_hash_rec_mask(info, pos, info->blength, info->records + 1);
- if (pos == gpos)
- {
- pos->data=(uchar*) record;
- pos->next=(uint) (empty - data);
- }
- else
- {
- pos->data=(uchar*) record;
- pos->next=NO_RECORD;
- movelink(data,(uint) (pos-data),(uint) (gpos-data),(uint) (empty-data));
- }
- }
- if (++info->records == info->blength)
- info->blength+= info->blength;
- return(0);
-}
-
-
-/******************************************************************************
-** Remove one record from hash-table. The record with the same record
-** ptr is removed.
-** if there is a free-function it's called for record if found
-******************************************************************************/
-
-my_bool my_hash_delete(HASH *hash, uchar *record)
-{
- uint blength,pos2,idx,empty_index;
- my_hash_value_type pos_hashnr, lastpos_hashnr;
- HASH_LINK *data,*lastpos,*gpos,*pos,*pos3,*empty;
- DBUG_ENTER("my_hash_delete");
- if (!hash->records)
- DBUG_RETURN(1);
-
- blength=hash->blength;
- data=dynamic_element(&hash->array,0,HASH_LINK*);
- /* Search after record with key */
- pos= data + my_hash_mask(rec_hashnr(hash, record), blength, hash->records);
- gpos = 0;
-
- while (pos->data != record)
- {
- gpos=pos;
- if (pos->next == NO_RECORD)
- DBUG_RETURN(1); /* Key not found */
- pos=data+pos->next;
- }
-
- if ( --(hash->records) < hash->blength >> 1) hash->blength>>=1;
- lastpos=data+hash->records;
-
- /* Remove link to record */
- empty=pos; empty_index=(uint) (empty-data);
- if (gpos)
- gpos->next=pos->next; /* unlink current ptr */
- else if (pos->next != NO_RECORD)
- {
- empty=data+(empty_index=pos->next);
- pos->data=empty->data;
- pos->next=empty->next;
- }
-
- if (empty == lastpos) /* last key at wrong pos or no next link */
- goto exit;
-
- /* Move the last key (lastpos) */
- lastpos_hashnr=rec_hashnr(hash,lastpos->data);
- /* pos is where lastpos should be */
- pos= data + my_hash_mask(lastpos_hashnr, hash->blength, hash->records);
- if (pos == empty) /* Move to empty position. */
- {
- empty[0]=lastpos[0];
- goto exit;
- }
- pos_hashnr=rec_hashnr(hash,pos->data);
- /* pos3 is where the pos should be */
- pos3= data + my_hash_mask(pos_hashnr, hash->blength, hash->records);
- if (pos != pos3)
- { /* pos is on wrong posit */
- empty[0]=pos[0]; /* Save it here */
- pos[0]=lastpos[0]; /* This should be here */
- movelink(data,(uint) (pos-data),(uint) (pos3-data),empty_index);
- goto exit;
- }
- pos2= my_hash_mask(lastpos_hashnr, blength, hash->records + 1);
- if (pos2 == my_hash_mask(pos_hashnr, blength, hash->records + 1))
- { /* Identical key-positions */
- if (pos2 != hash->records)
- {
- empty[0]=lastpos[0];
- movelink(data,(uint) (lastpos-data),(uint) (pos-data),empty_index);
- goto exit;
- }
- idx= (uint) (pos-data); /* Link pos->next after lastpos */
- }
- else idx= NO_RECORD; /* Different positions merge */
-
- empty[0]=lastpos[0];
- movelink(data,idx,empty_index,pos->next);
- pos->next=empty_index;
-
-exit:
- (void) pop_dynamic(&hash->array);
- if (hash->free)
- (*hash->free)((uchar*) record);
- DBUG_RETURN(0);
-}
-
- /*
- Update keys when record has changed.
- This is much more efficent than using a delete & insert.
- */
-
-my_bool my_hash_update(HASH *hash, uchar *record, uchar *old_key,
- size_t old_key_length)
-{
- uint new_index,new_pos_index,blength,records;
- size_t idx,empty;
- HASH_LINK org_link,*data,*previous,*pos;
- DBUG_ENTER("my_hash_update");
-
- if (HASH_UNIQUE & hash->flags)
- {
- HASH_SEARCH_STATE state;
- uchar *found, *new_key= (uchar*) my_hash_key(hash, record, &idx, 1);
- if ((found= my_hash_first(hash, new_key, idx, &state)))
- {
- do
- {
- if (found != record)
- DBUG_RETURN(1); /* Duplicate entry */
- }
- while ((found= my_hash_next(hash, new_key, idx, &state)));
- }
- }
-
- data=dynamic_element(&hash->array,0,HASH_LINK*);
- blength=hash->blength; records=hash->records;
-
- /* Search after record with key */
-
- idx= my_hash_mask(calc_hash(hash, old_key, (old_key_length ?
- old_key_length :
- hash->key_length)),
- blength, records);
- new_index= my_hash_mask(rec_hashnr(hash, record), blength, records);
- if (idx == new_index)
- DBUG_RETURN(0); /* Nothing to do (No record check) */
- previous=0;
- for (;;)
- {
-
- if ((pos= data+idx)->data == record)
- break;
- previous=pos;
- if ((idx=pos->next) == NO_RECORD)
- DBUG_RETURN(1); /* Not found in links */
- }
- org_link= *pos;
- empty=idx;
-
- /* Relink record from current chain */
-
- if (!previous)
- {
- if (pos->next != NO_RECORD)
- {
- empty=pos->next;
- *pos= data[pos->next];
- }
- }
- else
- previous->next=pos->next; /* unlink pos */
-
- /* Move data to correct position */
- if (new_index == empty)
- {
- /*
- At this point record is unlinked from the old chain, thus it holds
- random position. By the chance this position is equal to position
- for the first element in the new chain. That means updated record
- is the only record in the new chain.
- */
- if (empty != idx)
- {
- /*
- Record was moved while unlinking it from the old chain.
- Copy data to a new position.
- */
- data[empty]= org_link;
- }
- data[empty].next= NO_RECORD;
- DBUG_RETURN(0);
- }
- pos=data+new_index;
- new_pos_index= my_hash_rec_mask(hash, pos, blength, records);
- if (new_index != new_pos_index)
- { /* Other record in wrong position */
- data[empty] = *pos;
- movelink(data,new_index,new_pos_index,empty);
- org_link.next=NO_RECORD;
- data[new_index]= org_link;
- }
- else
- { /* Link in chain at right position */
- org_link.next=data[new_index].next;
- data[empty]=org_link;
- data[new_index].next=empty;
- }
- DBUG_RETURN(0);
-}
-
-
-uchar *my_hash_element(HASH *hash, ulong idx)
-{
- if (idx < hash->records)
- return dynamic_element(&hash->array,idx,HASH_LINK*)->data;
- return 0;
-}
-
-
-/*
- Replace old row with new row. This should only be used when key
- isn't changed
-*/
-
-void my_hash_replace(HASH *hash, HASH_SEARCH_STATE *current_record,
- uchar *new_row)
-{
- if (*current_record != NO_RECORD) /* Safety */
- dynamic_element(&hash->array, *current_record, HASH_LINK*)->data= new_row;
-}
-
-
-#ifndef DBUG_OFF
-
-my_bool my_hash_check(HASH *hash)
-{
- int error;
- uint i,rec_link,found,max_links,seek,links,idx;
- uint records,blength;
- HASH_LINK *data,*hash_info;
-
- records=hash->records; blength=hash->blength;
- data=dynamic_element(&hash->array,0,HASH_LINK*);
- error=0;
-
- for (i=found=max_links=seek=0 ; i < records ; i++)
- {
- if (my_hash_rec_mask(hash, data + i, blength, records) == i)
- {
- found++; seek++; links=1;
- for (idx=data[i].next ;
- idx != NO_RECORD && found < records + 1;
- idx=hash_info->next)
- {
- if (idx >= records)
- {
- DBUG_PRINT("error",
- ("Found pointer outside array to %d from link starting at %d",
- idx,i));
- error=1;
- }
- hash_info=data+idx;
- seek+= ++links;
- if ((rec_link= my_hash_rec_mask(hash, hash_info,
- blength, records)) != i)
- {
- DBUG_PRINT("error", ("Record in wrong link at %d: Start %d "
- "Record: 0x%lx Record-link %d",
- idx, i, (long) hash_info->data, rec_link));
- error=1;
- }
- else
- found++;
- }
- if (links > max_links) max_links=links;
- }
- }
- if (found != records)
- {
- DBUG_PRINT("error",("Found %u of %u records", found, records));
- error=1;
- }
- if (records)
- DBUG_PRINT("info",
- ("records: %u seeks: %d max links: %d hitrate: %.2f",
- records,seek,max_links,(float) seek / (float) records));
- return error;
-}
-#endif
diff --git a/dep/mysqllite/mysys/lf_alloc-pin.c b/dep/mysqllite/mysys/lf_alloc-pin.c
deleted file mode 100644
index 4ed01ac8083..00000000000
--- a/dep/mysqllite/mysys/lf_alloc-pin.c
+++ /dev/null
@@ -1,527 +0,0 @@
-/* QQ: TODO multi-pinbox */
-/* Copyright (C) 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- wait-free concurrent allocator based on pinning addresses
-
- It works as follows: every thread (strictly speaking - every CPU, but
- it's too difficult to do) has a small array of pointers. They're called
- "pins". Before using an object its address must be stored in this array
- (pinned). When an object is no longer necessary its address must be
- removed from this array (unpinned). When a thread wants to free() an
- object it scans all pins of all threads to see if somebody has this
- object pinned. If yes - the object is not freed (but stored in a
- "purgatory"). To reduce the cost of a single free() pins are not scanned
- on every free() but only added to (thread-local) purgatory. On every
- LF_PURGATORY_SIZE free() purgatory is scanned and all unpinned objects
- are freed.
-
- Pins are used to solve ABA problem. To use pins one must obey
- a pinning protocol:
-
- 1. Let's assume that PTR is a shared pointer to an object. Shared means
- that any thread may modify it anytime to point to a different object
- and free the old object. Later the freed object may be potentially
- allocated by another thread. If we're unlucky that other thread may
- set PTR to point to this object again. This is ABA problem.
- 2. Create a local pointer LOCAL_PTR.
- 3. Pin the PTR in a loop:
- do
- {
- LOCAL_PTR= PTR;
- pin(PTR, PIN_NUMBER);
- } while (LOCAL_PTR != PTR)
- 4. It is guaranteed that after the loop has ended, LOCAL_PTR
- points to an object (or NULL, if PTR may be NULL), that
- will never be freed. It is not guaranteed though
- that LOCAL_PTR == PTR (as PTR can change any time)
- 5. When done working with the object, remove the pin:
- unpin(PIN_NUMBER)
- 6. When copying pins (as in the list traversing loop:
- pin(CUR, 1);
- while ()
- {
- do // standard
- { // pinning
- NEXT=CUR->next; // loop
- pin(NEXT, 0); // see #3
- } while (NEXT != CUR->next); // above
- ...
- ...
- CUR=NEXT;
- pin(CUR, 1); // copy pin[0] to pin[1]
- }
- which keeps CUR address constantly pinned), note than pins may be
- copied only upwards (!!!), that is pin[N] to pin[M], M > N.
- 7. Don't keep the object pinned longer than necessary - the number of
- pins you have is limited (and small), keeping an object pinned
- prevents its reuse and cause unnecessary mallocs.
-
- Explanations:
-
- 3. The loop is important. The following can occur:
- thread1> LOCAL_PTR= PTR
- thread2> free(PTR); PTR=0;
- thread1> pin(PTR, PIN_NUMBER);
- now thread1 cannot access LOCAL_PTR, even if it's pinned,
- because it points to a freed memory. That is, it *must*
- verify that it has indeed pinned PTR, the shared pointer.
-
- 6. When a thread wants to free some LOCAL_PTR, and it scans
- all lists of pins to see whether it's pinned, it does it
- upwards, from low pin numbers to high. Thus another thread
- must copy an address from one pin to another in the same
- direction - upwards, otherwise the scanning thread may
- miss it.
-
- Implementation details:
-
- Pins are given away from a "pinbox". Pinbox is stack-based allocator.
- It used dynarray for storing pins, new elements are allocated by dynarray
- as necessary, old are pushed in the stack for reuse. ABA is solved by
- versioning a pointer - because we use an array, a pointer to pins is 16 bit,
- upper 16 bits are used for a version.
-
- It is assumed that pins belong to a THD and are not transferable
- between THD's (LF_PINS::stack_ends_here being a primary reason
- for this limitation).
-*/
-#include <my_global.h>
-#include <my_sys.h>
-#include <lf.h>
-
-#define LF_PINBOX_MAX_PINS 65536
-
-static void _lf_pinbox_real_free(LF_PINS *pins);
-
-/*
- Initialize a pinbox. Normally called from lf_alloc_init.
- See the latter for details.
-*/
-void lf_pinbox_init(LF_PINBOX *pinbox, uint free_ptr_offset,
- lf_pinbox_free_func *free_func, void *free_func_arg)
-{
- DBUG_ASSERT(free_ptr_offset % sizeof(void *) == 0);
- compile_time_assert(sizeof(LF_PINS) == 64);
- lf_dynarray_init(&pinbox->pinarray, sizeof(LF_PINS));
- pinbox->pinstack_top_ver= 0;
- pinbox->pins_in_array= 0;
- pinbox->free_ptr_offset= free_ptr_offset;
- pinbox->free_func= free_func;
- pinbox->free_func_arg= free_func_arg;
-}
-
-void lf_pinbox_destroy(LF_PINBOX *pinbox)
-{
- lf_dynarray_destroy(&pinbox->pinarray);
-}
-
-/*
- Get pins from a pinbox. Usually called via lf_alloc_get_pins() or
- lf_hash_get_pins().
-
- SYNOPSYS
- pinbox -
-
- DESCRIPTION
- get a new LF_PINS structure from a stack of unused pins,
- or allocate a new one out of dynarray.
-
- NOTE
- It is assumed that pins belong to a thread and are not transferable
- between threads.
-*/
-LF_PINS *_lf_pinbox_get_pins(LF_PINBOX *pinbox)
-{
- uint32 pins, next, top_ver;
- LF_PINS *el;
- /*
- We have an array of max. 64k elements.
- The highest index currently allocated is pinbox->pins_in_array.
- Freed elements are in a lifo stack, pinstack_top_ver.
- pinstack_top_ver is 32 bits; 16 low bits are the index in the
- array, to the first element of the list. 16 high bits are a version
- (every time the 16 low bits are updated, the 16 high bits are
- incremented). Versioniong prevents the ABA problem.
- */
- top_ver= pinbox->pinstack_top_ver;
- do
- {
- if (!(pins= top_ver % LF_PINBOX_MAX_PINS))
- {
- /* the stack of free elements is empty */
- pins= my_atomic_add32((int32 volatile*) &pinbox->pins_in_array, 1)+1;
- if (unlikely(pins >= LF_PINBOX_MAX_PINS))
- return 0;
- /*
- note that the first allocated element has index 1 (pins==1).
- index 0 is reserved to mean "NULL pointer"
- */
- el= (LF_PINS *)_lf_dynarray_lvalue(&pinbox->pinarray, pins);
- if (unlikely(!el))
- return 0;
- break;
- }
- el= (LF_PINS *)_lf_dynarray_value(&pinbox->pinarray, pins);
- next= el->link;
- } while (!my_atomic_cas32((int32 volatile*) &pinbox->pinstack_top_ver,
- (int32*) &top_ver,
- top_ver-pins+next+LF_PINBOX_MAX_PINS));
- /*
- set el->link to the index of el in the dynarray (el->link has two usages:
- - if element is allocated, it's its own index
- - if element is free, it's its next element in the free stack
- */
- el->link= pins;
- el->purgatory_count= 0;
- el->pinbox= pinbox;
- el->stack_ends_here= & my_thread_var->stack_ends_here;
- return el;
-}
-
-/*
- Put pins back to a pinbox. Usually called via lf_alloc_put_pins() or
- lf_hash_put_pins().
-
- DESCRIPTION
- empty the purgatory (XXX deadlock warning below!),
- push LF_PINS structure to a stack
-*/
-void _lf_pinbox_put_pins(LF_PINS *pins)
-{
- LF_PINBOX *pinbox= pins->pinbox;
- uint32 top_ver, nr;
- nr= pins->link;
-#ifdef MY_LF_EXTRA_DEBUG
- {
- int i;
- for (i= 0; i < LF_PINBOX_PINS; i++)
- DBUG_ASSERT(pins->pin[i] == 0);
- }
-#endif
- /*
- XXX this will deadlock if other threads will wait for
- the caller to do something after _lf_pinbox_put_pins(),
- and they would have pinned addresses that the caller wants to free.
- Thus: only free pins when all work is done and nobody can wait for you!!!
- */
- while (pins->purgatory_count)
- {
- _lf_pinbox_real_free(pins);
- if (pins->purgatory_count)
- {
- my_atomic_rwlock_wrunlock(&pins->pinbox->pinarray.lock);
- pthread_yield();
- my_atomic_rwlock_wrlock(&pins->pinbox->pinarray.lock);
- }
- }
- top_ver= pinbox->pinstack_top_ver;
- do
- {
- pins->link= top_ver % LF_PINBOX_MAX_PINS;
- } while (!my_atomic_cas32((int32 volatile*) &pinbox->pinstack_top_ver,
- (int32*) &top_ver,
- top_ver-pins->link+nr+LF_PINBOX_MAX_PINS));
- return;
-}
-
-static int ptr_cmp(void **a, void **b)
-{
- return *a < *b ? -1 : *a == *b ? 0 : 1;
-}
-
-#define add_to_purgatory(PINS, ADDR) \
- do \
- { \
- *(void **)((char *)(ADDR)+(PINS)->pinbox->free_ptr_offset)= \
- (PINS)->purgatory; \
- (PINS)->purgatory= (ADDR); \
- (PINS)->purgatory_count++; \
- } while (0)
-
-/*
- Free an object allocated via pinbox allocator
-
- DESCRIPTION
- add an object to purgatory. if necessary, call _lf_pinbox_real_free()
- to actually free something.
-*/
-void _lf_pinbox_free(LF_PINS *pins, void *addr)
-{
- add_to_purgatory(pins, addr);
- if (pins->purgatory_count % LF_PURGATORY_SIZE)
- _lf_pinbox_real_free(pins);
-}
-
-struct st_harvester {
- void **granary;
- int npins;
-};
-
-/*
- callback for _lf_dynarray_iterate:
- scan all pins of all threads and accumulate all pins
-*/
-static int harvest_pins(LF_PINS *el, struct st_harvester *hv)
-{
- int i;
- LF_PINS *el_end= el+min(hv->npins, LF_DYNARRAY_LEVEL_LENGTH);
- for (; el < el_end; el++)
- {
- for (i= 0; i < LF_PINBOX_PINS; i++)
- {
- void *p= el->pin[i];
- if (p)
- *hv->granary++= p;
- }
- }
- /*
- hv->npins may become negative below, but it means that
- we're on the last dynarray page and harvest_pins() won't be
- called again. We don't bother to make hv->npins() correct
- (that is 0) in this case.
- */
- hv->npins-= LF_DYNARRAY_LEVEL_LENGTH;
- return 0;
-}
-
-/*
- callback for _lf_dynarray_iterate:
- scan all pins of all threads and see if addr is present there
-*/
-static int match_pins(LF_PINS *el, void *addr)
-{
- int i;
- LF_PINS *el_end= el+LF_DYNARRAY_LEVEL_LENGTH;
- for (; el < el_end; el++)
- for (i= 0; i < LF_PINBOX_PINS; i++)
- if (el->pin[i] == addr)
- return 1;
- return 0;
-}
-
-#if STACK_DIRECTION < 0
-#define available_stack_size(CUR,END) (long) ((char*)(CUR) - (char*)(END))
-#else
-#define available_stack_size(CUR,END) (long) ((char*)(END) - (char*)(CUR))
-#endif
-
-#define next_node(P, X) (*((uchar * volatile *)(((uchar *)(X)) + (P)->free_ptr_offset)))
-#define anext_node(X) next_node(&allocator->pinbox, (X))
-
-/*
- Scan the purgatory and free everything that can be freed
-*/
-static void _lf_pinbox_real_free(LF_PINS *pins)
-{
- int npins, alloca_size;
- void *list, **addr;
- void *first= NULL, *last= NULL;
- LF_PINBOX *pinbox= pins->pinbox;
-
- npins= pinbox->pins_in_array+1;
-
-#ifdef HAVE_ALLOCA
- alloca_size= sizeof(void *)*LF_PINBOX_PINS*npins;
- /* create a sorted list of pinned addresses, to speed up searches */
- if (available_stack_size(&pinbox, *pins->stack_ends_here) > alloca_size)
- {
- struct st_harvester hv;
- addr= (void **) alloca(alloca_size);
- hv.granary= addr;
- hv.npins= npins;
- /* scan the dynarray and accumulate all pinned addresses */
- _lf_dynarray_iterate(&pinbox->pinarray,
- (lf_dynarray_func)harvest_pins, &hv);
-
- npins= hv.granary-addr;
- /* and sort them */
- if (npins)
- qsort(addr, npins, sizeof(void *), (qsort_cmp)ptr_cmp);
- }
- else
-#endif
- addr= 0;
-
- list= pins->purgatory;
- pins->purgatory= 0;
- pins->purgatory_count= 0;
- while (list)
- {
- void *cur= list;
- list= *(void **)((char *)cur+pinbox->free_ptr_offset);
- if (npins)
- {
- if (addr) /* use binary search */
- {
- void **a, **b, **c;
- for (a= addr, b= addr+npins-1, c= a+(b-a)/2; (b-a) > 1; c= a+(b-a)/2)
- if (cur == *c)
- a= b= c;
- else if (cur > *c)
- a= c;
- else
- b= c;
- if (cur == *a || cur == *b)
- goto found;
- }
- else /* no alloca - no cookie. linear search here */
- {
- if (_lf_dynarray_iterate(&pinbox->pinarray,
- (lf_dynarray_func)match_pins, cur))
- goto found;
- }
- }
- /* not pinned - freeing */
- if (last)
- last= next_node(pinbox, last)= (uchar *)cur;
- else
- first= last= (uchar *)cur;
- continue;
-found:
- /* pinned - keeping */
- add_to_purgatory(pins, cur);
- }
- if (last)
- pinbox->free_func(first, last, pinbox->free_func_arg);
-}
-
-/* lock-free memory allocator for fixed-size objects */
-
-LF_REQUIRE_PINS(1)
-
-/*
- callback for _lf_pinbox_real_free to free a list of unpinned objects -
- add it back to the allocator stack
-
- DESCRIPTION
- 'first' and 'last' are the ends of the linked list of nodes:
- first->el->el->....->el->last. Use first==last to free only one element.
-*/
-static void alloc_free(uchar *first,
- uchar volatile *last,
- LF_ALLOCATOR *allocator)
-{
- /*
- we need a union here to access type-punned pointer reliably.
- otherwise gcc -fstrict-aliasing will not see 'tmp' changed in the loop
- */
- union { uchar * node; void *ptr; } tmp;
- tmp.node= allocator->top;
- do
- {
- anext_node(last)= tmp.node;
- } while (!my_atomic_casptr((void **)(char *)&allocator->top,
- (void **)&tmp.ptr, first) && LF_BACKOFF);
-}
-
-/*
- initialize lock-free allocator
-
- SYNOPSYS
- allocator -
- size a size of an object to allocate
- free_ptr_offset an offset inside the object to a sizeof(void *)
- memory that is guaranteed to be unused after
- the object is put in the purgatory. Unused by ANY
- thread, not only the purgatory owner.
- This memory will be used to link waiting-to-be-freed
- objects in a purgatory list.
-*/
-void lf_alloc_init(LF_ALLOCATOR *allocator, uint size, uint free_ptr_offset)
-{
- lf_pinbox_init(&allocator->pinbox, free_ptr_offset,
- (lf_pinbox_free_func *)alloc_free, allocator);
- allocator->top= 0;
- allocator->mallocs= 0;
- allocator->element_size= size;
- DBUG_ASSERT(size >= sizeof(void*) + free_ptr_offset);
-}
-
-/*
- destroy the allocator, free everything that's in it
-
- NOTE
- As every other init/destroy function here and elsewhere it
- is not thread safe. No, this function is no different, ensure
- that no thread needs the allocator before destroying it.
- We are not responsible for any damage that may be caused by
- accessing the allocator when it is being or has been destroyed.
- Oh yes, and don't put your cat in a microwave.
-*/
-void lf_alloc_destroy(LF_ALLOCATOR *allocator)
-{
- uchar *node= allocator->top;
- while (node)
- {
- uchar *tmp= anext_node(node);
- my_free(node);
- node= tmp;
- }
- lf_pinbox_destroy(&allocator->pinbox);
- allocator->top= 0;
-}
-
-/*
- Allocate and return an new object.
-
- DESCRIPTION
- Pop an unused object from the stack or malloc it is the stack is empty.
- pin[0] is used, it's removed on return.
-*/
-void *_lf_alloc_new(LF_PINS *pins)
-{
- LF_ALLOCATOR *allocator= (LF_ALLOCATOR *)(pins->pinbox->free_func_arg);
- uchar *node;
- for (;;)
- {
- do
- {
- node= allocator->top;
- _lf_pin(pins, 0, node);
- } while (node != allocator->top && LF_BACKOFF);
- if (!node)
- {
- node= (void *)my_malloc(allocator->element_size, MYF(MY_WME));
-#ifdef MY_LF_EXTRA_DEBUG
- if (likely(node != 0))
- my_atomic_add32(&allocator->mallocs, 1);
-#endif
- break;
- }
- if (my_atomic_casptr((void **)(char *)&allocator->top,
- (void *)&node, anext_node(node)))
- break;
- }
- _lf_unpin(pins, 0);
- return node;
-}
-
-/*
- count the number of objects in a pool.
-
- NOTE
- This is NOT thread-safe !!!
-*/
-uint lf_alloc_pool_count(LF_ALLOCATOR *allocator)
-{
- uint i;
- uchar *node;
- for (node= allocator->top, i= 0; node; node= anext_node(node), i++)
- /* no op */;
- return i;
-}
-
diff --git a/dep/mysqllite/mysys/lf_dynarray.c b/dep/mysqllite/mysys/lf_dynarray.c
deleted file mode 100644
index 0941c8762bb..00000000000
--- a/dep/mysqllite/mysys/lf_dynarray.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Analog of DYNAMIC_ARRAY that never reallocs
- (so no pointer into the array may ever become invalid).
-
- Memory is allocated in non-contiguous chunks.
- This data structure is not space efficient for sparse arrays.
-
- Every element is aligned to sizeof(element) boundary
- (to avoid false sharing if element is big enough).
-
- LF_DYNARRAY is a recursive structure. On the zero level
- LF_DYNARRAY::level[0] it's an array of LF_DYNARRAY_LEVEL_LENGTH elements,
- on the first level it's an array of LF_DYNARRAY_LEVEL_LENGTH pointers
- to arrays of elements, on the second level it's an array of pointers
- to arrays of pointers to arrays of elements. And so on.
-
- With four levels the number of elements is limited to 4311810304
- (but as in all functions index is uint, the real limit is 2^32-1)
-
- Actually, it's wait-free, not lock-free ;-)
-*/
-
-#include <my_global.h>
-#include <m_string.h>
-#include <my_sys.h>
-#include <lf.h>
-
-void lf_dynarray_init(LF_DYNARRAY *array, uint element_size)
-{
- bzero(array, sizeof(*array));
- array->size_of_element= element_size;
- my_atomic_rwlock_init(&array->lock);
-}
-
-static void recursive_free(void **alloc, int level)
-{
- if (!alloc)
- return;
-
- if (level)
- {
- int i;
- for (i= 0; i < LF_DYNARRAY_LEVEL_LENGTH; i++)
- recursive_free(alloc[i], level-1);
- my_free(alloc);
- }
- else
- my_free(alloc[-1]);
-}
-
-void lf_dynarray_destroy(LF_DYNARRAY *array)
-{
- int i;
- for (i= 0; i < LF_DYNARRAY_LEVELS; i++)
- recursive_free(array->level[i], i);
- my_atomic_rwlock_destroy(&array->lock);
-}
-
-static const ulong dynarray_idxes_in_prev_levels[LF_DYNARRAY_LEVELS]=
-{
- 0, /* +1 here to to avoid -1's below */
- LF_DYNARRAY_LEVEL_LENGTH,
- LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH +
- LF_DYNARRAY_LEVEL_LENGTH,
- LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH *
- LF_DYNARRAY_LEVEL_LENGTH + LF_DYNARRAY_LEVEL_LENGTH *
- LF_DYNARRAY_LEVEL_LENGTH + LF_DYNARRAY_LEVEL_LENGTH
-};
-
-static const ulong dynarray_idxes_in_prev_level[LF_DYNARRAY_LEVELS]=
-{
- 0, /* +1 here to to avoid -1's below */
- LF_DYNARRAY_LEVEL_LENGTH,
- LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH,
- LF_DYNARRAY_LEVEL_LENGTH * LF_DYNARRAY_LEVEL_LENGTH *
- LF_DYNARRAY_LEVEL_LENGTH,
-};
-
-/*
- Returns a valid lvalue pointer to the element number 'idx'.
- Allocates memory if necessary.
-*/
-void *_lf_dynarray_lvalue(LF_DYNARRAY *array, uint idx)
-{
- void * ptr, * volatile * ptr_ptr= 0;
- int i;
-
- for (i= LF_DYNARRAY_LEVELS-1; idx < dynarray_idxes_in_prev_levels[i]; i--)
- /* no-op */;
- ptr_ptr= &array->level[i];
- idx-= dynarray_idxes_in_prev_levels[i];
- for (; i > 0; i--)
- {
- if (!(ptr= *ptr_ptr))
- {
- void *alloc= my_malloc(LF_DYNARRAY_LEVEL_LENGTH * sizeof(void *),
- MYF(MY_WME|MY_ZEROFILL));
- if (unlikely(!alloc))
- return(NULL);
- if (my_atomic_casptr(ptr_ptr, &ptr, alloc))
- ptr= alloc;
- else
- my_free(alloc);
- }
- ptr_ptr= ((void **)ptr) + idx / dynarray_idxes_in_prev_level[i];
- idx%= dynarray_idxes_in_prev_level[i];
- }
- if (!(ptr= *ptr_ptr))
- {
- uchar *alloc, *data;
- alloc= my_malloc(LF_DYNARRAY_LEVEL_LENGTH * array->size_of_element +
- max(array->size_of_element, sizeof(void *)),
- MYF(MY_WME|MY_ZEROFILL));
- if (unlikely(!alloc))
- return(NULL);
- /* reserve the space for free() address */
- data= alloc + sizeof(void *);
- { /* alignment */
- intptr mod= ((intptr)data) % array->size_of_element;
- if (mod)
- data+= array->size_of_element - mod;
- }
- ((void **)data)[-1]= alloc; /* free() will need the original pointer */
- if (my_atomic_casptr(ptr_ptr, &ptr, data))
- ptr= data;
- else
- my_free(alloc);
- }
- return ((uchar*)ptr) + array->size_of_element * idx;
-}
-
-/*
- Returns a pointer to the element number 'idx'
- or NULL if an element does not exists
-*/
-void *_lf_dynarray_value(LF_DYNARRAY *array, uint idx)
-{
- void * ptr, * volatile * ptr_ptr= 0;
- int i;
-
- for (i= LF_DYNARRAY_LEVELS-1; idx < dynarray_idxes_in_prev_levels[i]; i--)
- /* no-op */;
- ptr_ptr= &array->level[i];
- idx-= dynarray_idxes_in_prev_levels[i];
- for (; i > 0; i--)
- {
- if (!(ptr= *ptr_ptr))
- return(NULL);
- ptr_ptr= ((void **)ptr) + idx / dynarray_idxes_in_prev_level[i];
- idx %= dynarray_idxes_in_prev_level[i];
- }
- if (!(ptr= *ptr_ptr))
- return(NULL);
- return ((uchar*)ptr) + array->size_of_element * idx;
-}
-
-static int recursive_iterate(LF_DYNARRAY *array, void *ptr, int level,
- lf_dynarray_func func, void *arg)
-{
- int res, i;
- if (!ptr)
- return 0;
- if (!level)
- return func(ptr, arg);
- for (i= 0; i < LF_DYNARRAY_LEVEL_LENGTH; i++)
- if ((res= recursive_iterate(array, ((void **)ptr)[i], level-1, func, arg)))
- return res;
- return 0;
-}
-
-/*
- Calls func(array, arg) on every array of LF_DYNARRAY_LEVEL_LENGTH elements
- in lf_dynarray.
-
- DESCRIPTION
- lf_dynarray consists of a set of arrays, LF_DYNARRAY_LEVEL_LENGTH elements
- each. _lf_dynarray_iterate() calls user-supplied function on every array
- from the set. It is the fastest way to scan the array, faster than
- for (i=0; i < N; i++) { func(_lf_dynarray_value(dynarray, i)); }
-
- NOTE
- if func() returns non-zero, the scan is aborted
-*/
-int _lf_dynarray_iterate(LF_DYNARRAY *array, lf_dynarray_func func, void *arg)
-{
- int i, res;
- for (i= 0; i < LF_DYNARRAY_LEVELS; i++)
- if ((res= recursive_iterate(array, array->level[i], i, func, arg)))
- return res;
- return 0;
-}
-
diff --git a/dep/mysqllite/mysys/lf_hash.c b/dep/mysqllite/mysys/lf_hash.c
deleted file mode 100644
index e7bf82fc6ca..00000000000
--- a/dep/mysqllite/mysys/lf_hash.c
+++ /dev/null
@@ -1,503 +0,0 @@
-/* Copyright (C) 2006-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- extensible hash
-
- TODO
- try to get rid of dummy nodes ?
- for non-unique hash, count only _distinct_ values
- (but how to do it in lf_hash_delete ?)
-*/
-#include <my_global.h>
-#include <m_string.h>
-#include <my_sys.h>
-#include <my_bit.h>
-#include <lf.h>
-
-LF_REQUIRE_PINS(3)
-
-/* An element of the list */
-typedef struct {
- intptr volatile link; /* a pointer to the next element in a listand a flag */
- uint32 hashnr; /* reversed hash number, for sorting */
- const uchar *key;
- size_t keylen;
- /*
- data is stored here, directly after the keylen.
- thus the pointer to data is (void*)(slist_element_ptr+1)
- */
-} LF_SLIST;
-
-/*
- a structure to pass the context (pointers two the three successive elements
- in a list) from lfind to linsert/ldelete
-*/
-typedef struct {
- intptr volatile *prev;
- LF_SLIST *curr, *next;
-} CURSOR;
-
-/*
- the last bit in LF_SLIST::link is a "deleted" flag.
- the helper macros below convert it to a pure pointer or a pure flag
-*/
-#define PTR(V) (LF_SLIST *)((V) & (~(intptr)1))
-#define DELETED(V) ((V) & 1)
-
-/*
- DESCRIPTION
- Search for hashnr/key/keylen in the list starting from 'head' and
- position the cursor. The list is ORDER BY hashnr, key
-
- RETURN
- 0 - not found
- 1 - found
-
- NOTE
- cursor is positioned in either case
- pins[0..2] are used, they are NOT removed on return
-*/
-static int lfind(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr,
- const uchar *key, uint keylen, CURSOR *cursor, LF_PINS *pins)
-{
- uint32 cur_hashnr;
- const uchar *cur_key;
- uint cur_keylen;
- intptr link;
-
-retry:
- cursor->prev= (intptr *)head;
- do { /* PTR() isn't necessary below, head is a dummy node */
- cursor->curr= (LF_SLIST *)(*cursor->prev);
- _lf_pin(pins, 1, cursor->curr);
- } while (*cursor->prev != (intptr)cursor->curr && LF_BACKOFF);
- for (;;)
- {
- if (unlikely(!cursor->curr))
- return 0; /* end of the list */
- do {
- /* QQ: XXX or goto retry ? */
- link= cursor->curr->link;
- cursor->next= PTR(link);
- _lf_pin(pins, 0, cursor->next);
- } while (link != cursor->curr->link && LF_BACKOFF);
- cur_hashnr= cursor->curr->hashnr;
- cur_key= cursor->curr->key;
- cur_keylen= cursor->curr->keylen;
- if (*cursor->prev != (intptr)cursor->curr)
- {
- (void)LF_BACKOFF;
- goto retry;
- }
- if (!DELETED(link))
- {
- if (cur_hashnr >= hashnr)
- {
- int r= 1;
- if (cur_hashnr > hashnr ||
- (r= my_strnncoll(cs, (uchar*) cur_key, cur_keylen, (uchar*) key,
- keylen)) >= 0)
- return !r;
- }
- cursor->prev= &(cursor->curr->link);
- _lf_pin(pins, 2, cursor->curr);
- }
- else
- {
- /*
- we found a deleted node - be nice, help the other thread
- and remove this deleted node
- */
- if (my_atomic_casptr((void **)cursor->prev,
- (void **)&cursor->curr, cursor->next))
- _lf_alloc_free(pins, cursor->curr);
- else
- {
- (void)LF_BACKOFF;
- goto retry;
- }
- }
- cursor->curr= cursor->next;
- _lf_pin(pins, 1, cursor->curr);
- }
-}
-
-/*
- DESCRIPTION
- insert a 'node' in the list that starts from 'head' in the correct
- position (as found by lfind)
-
- RETURN
- 0 - inserted
- not 0 - a pointer to a duplicate (not pinned and thus unusable)
-
- NOTE
- it uses pins[0..2], on return all pins are removed.
- if there're nodes with the same key value, a new node is added before them.
-*/
-static LF_SLIST *linsert(LF_SLIST * volatile *head, CHARSET_INFO *cs,
- LF_SLIST *node, LF_PINS *pins, uint flags)
-{
- CURSOR cursor;
- int res;
-
- for (;;)
- {
- if (lfind(head, cs, node->hashnr, node->key, node->keylen,
- &cursor, pins) &&
- (flags & LF_HASH_UNIQUE))
- {
- res= 0; /* duplicate found */
- break;
- }
- else
- {
- node->link= (intptr)cursor.curr;
- DBUG_ASSERT(node->link != (intptr)node); /* no circular references */
- DBUG_ASSERT(cursor.prev != &node->link); /* no circular references */
- if (my_atomic_casptr((void **)cursor.prev, (void **)&cursor.curr, node))
- {
- res= 1; /* inserted ok */
- break;
- }
- }
- }
- _lf_unpin(pins, 0);
- _lf_unpin(pins, 1);
- _lf_unpin(pins, 2);
- /*
- Note that cursor.curr is not pinned here and the pointer is unreliable,
- the object may dissapear anytime. But if it points to a dummy node, the
- pointer is safe, because dummy nodes are never freed - initialize_bucket()
- uses this fact.
- */
- return res ? 0 : cursor.curr;
-}
-
-/*
- DESCRIPTION
- deletes a node as identified by hashnr/keey/keylen from the list
- that starts from 'head'
-
- RETURN
- 0 - ok
- 1 - not found
-
- NOTE
- it uses pins[0..2], on return all pins are removed.
-*/
-static int ldelete(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr,
- const uchar *key, uint keylen, LF_PINS *pins)
-{
- CURSOR cursor;
- int res;
-
- for (;;)
- {
- if (!lfind(head, cs, hashnr, key, keylen, &cursor, pins))
- {
- res= 1; /* not found */
- break;
- }
- else
- {
- /* mark the node deleted */
- if (my_atomic_casptr((void **)&(cursor.curr->link),
- (void **)&cursor.next,
- (void *)(((intptr)cursor.next) | 1)))
- {
- /* and remove it from the list */
- if (my_atomic_casptr((void **)cursor.prev,
- (void **)&cursor.curr, cursor.next))
- _lf_alloc_free(pins, cursor.curr);
- else
- {
- /*
- somebody already "helped" us and removed the node ?
- Let's check if we need to help that someone too!
- (to ensure the number of "set DELETED flag" actions
- is equal to the number of "remove from the list" actions)
- */
- lfind(head, cs, hashnr, key, keylen, &cursor, pins);
- }
- res= 0;
- break;
- }
- }
- }
- _lf_unpin(pins, 0);
- _lf_unpin(pins, 1);
- _lf_unpin(pins, 2);
- return res;
-}
-
-/*
- DESCRIPTION
- searches for a node as identified by hashnr/keey/keylen in the list
- that starts from 'head'
-
- RETURN
- 0 - not found
- node - found
-
- NOTE
- it uses pins[0..2], on return the pin[2] keeps the node found
- all other pins are removed.
-*/
-static LF_SLIST *lsearch(LF_SLIST * volatile *head, CHARSET_INFO *cs,
- uint32 hashnr, const uchar *key, uint keylen,
- LF_PINS *pins)
-{
- CURSOR cursor;
- int res= lfind(head, cs, hashnr, key, keylen, &cursor, pins);
- if (res)
- _lf_pin(pins, 2, cursor.curr);
- _lf_unpin(pins, 0);
- _lf_unpin(pins, 1);
- return res ? cursor.curr : 0;
-}
-
-static inline const uchar* hash_key(const LF_HASH *hash,
- const uchar *record, size_t *length)
-{
- if (hash->get_key)
- return (*hash->get_key)(record, length, 0);
- *length= hash->key_length;
- return record + hash->key_offset;
-}
-
-/*
- Compute the hash key value from the raw key.
-
- @note, that the hash value is limited to 2^31, because we need one
- bit to distinguish between normal and dummy nodes.
-*/
-static inline uint calc_hash(LF_HASH *hash, const uchar *key, uint keylen)
-{
- ulong nr1= 1, nr2= 4;
- hash->charset->coll->hash_sort(hash->charset, (uchar*) key, keylen,
- &nr1, &nr2);
- return nr1 & INT_MAX32;
-}
-
-#define MAX_LOAD 1.0 /* average number of elements in a bucket */
-
-static int initialize_bucket(LF_HASH *, LF_SLIST * volatile*, uint, LF_PINS *);
-
-/*
- Initializes lf_hash, the arguments are compatible with hash_init
-
- @note element_size sets both the size of allocated memory block for
- lf_alloc and a size of memcpy'ed block size in lf_hash_insert. Typically
- they are the same, indeed. But LF_HASH::element_size can be decreased
- after lf_hash_init, and then lf_alloc will allocate larger block that
- lf_hash_insert will copy over. It is desireable if part of the element
- is expensive to initialize - for example if there is a mutex or
- DYNAMIC_ARRAY. In this case they should be initialize in the
- LF_ALLOCATOR::constructor, and lf_hash_insert should not overwrite them.
- See wt_init() for example.
-*/
-void lf_hash_init(LF_HASH *hash, uint element_size, uint flags,
- uint key_offset, uint key_length, my_hash_get_key get_key,
- CHARSET_INFO *charset)
-{
- lf_alloc_init(&hash->alloc, sizeof(LF_SLIST)+element_size,
- offsetof(LF_SLIST, key));
- lf_dynarray_init(&hash->array, sizeof(LF_SLIST *));
- hash->size= 1;
- hash->count= 0;
- hash->element_size= element_size;
- hash->flags= flags;
- hash->charset= charset ? charset : &my_charset_bin;
- hash->key_offset= key_offset;
- hash->key_length= key_length;
- hash->get_key= get_key;
- DBUG_ASSERT(get_key ? !key_offset && !key_length : key_length);
-}
-
-void lf_hash_destroy(LF_HASH *hash)
-{
- LF_SLIST *el, **head= (LF_SLIST **)_lf_dynarray_value(&hash->array, 0);
-
- if (unlikely(!head))
- return;
- el= *head;
-
- while (el)
- {
- intptr next= el->link;
- if (el->hashnr & 1)
- lf_alloc_direct_free(&hash->alloc, el); /* normal node */
- else
- my_free(el); /* dummy node */
- el= (LF_SLIST *)next;
- }
- lf_alloc_destroy(&hash->alloc);
- lf_dynarray_destroy(&hash->array);
-}
-
-/*
- DESCRIPTION
- inserts a new element to a hash. it will have a _copy_ of
- data, not a pointer to it.
-
- RETURN
- 0 - inserted
- 1 - didn't (unique key conflict)
- -1 - out of memory
-
- NOTE
- see linsert() for pin usage notes
-*/
-int lf_hash_insert(LF_HASH *hash, LF_PINS *pins, const void *data)
-{
- int csize, bucket, hashnr;
- LF_SLIST *node, * volatile *el;
-
- lf_rwlock_by_pins(pins);
- node= (LF_SLIST *)_lf_alloc_new(pins);
- if (unlikely(!node))
- return -1;
- memcpy(node+1, data, hash->element_size);
- node->key= hash_key(hash, (uchar *)(node+1), &node->keylen);
- hashnr= calc_hash(hash, node->key, node->keylen);
- bucket= hashnr % hash->size;
- el= _lf_dynarray_lvalue(&hash->array, bucket);
- if (unlikely(!el))
- return -1;
- if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins)))
- return -1;
- node->hashnr= my_reverse_bits(hashnr) | 1; /* normal node */
- if (linsert(el, hash->charset, node, pins, hash->flags))
- {
- _lf_alloc_free(pins, node);
- lf_rwunlock_by_pins(pins);
- return 1;
- }
- csize= hash->size;
- if ((my_atomic_add32(&hash->count, 1)+1.0) / csize > MAX_LOAD)
- my_atomic_cas32(&hash->size, &csize, csize*2);
- lf_rwunlock_by_pins(pins);
- return 0;
-}
-
-/*
- DESCRIPTION
- deletes an element with the given key from the hash (if a hash is
- not unique and there're many elements with this key - the "first"
- matching element is deleted)
- RETURN
- 0 - deleted
- 1 - didn't (not found)
- -1 - out of memory
- NOTE
- see ldelete() for pin usage notes
-*/
-int lf_hash_delete(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen)
-{
- LF_SLIST * volatile *el;
- uint bucket, hashnr= calc_hash(hash, (uchar *)key, keylen);
-
- bucket= hashnr % hash->size;
- lf_rwlock_by_pins(pins);
- el= _lf_dynarray_lvalue(&hash->array, bucket);
- if (unlikely(!el))
- return -1;
- /*
- note that we still need to initialize_bucket here,
- we cannot return "node not found", because an old bucket of that
- node may've been split and the node was assigned to a new bucket
- that was never accessed before and thus is not initialized.
- */
- if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins)))
- return -1;
- if (ldelete(el, hash->charset, my_reverse_bits(hashnr) | 1,
- (uchar *)key, keylen, pins))
- {
- lf_rwunlock_by_pins(pins);
- return 1;
- }
- my_atomic_add32(&hash->count, -1);
- lf_rwunlock_by_pins(pins);
- return 0;
-}
-
-/*
- RETURN
- a pointer to an element with the given key (if a hash is not unique and
- there're many elements with this key - the "first" matching element)
- NULL if nothing is found
- MY_ERRPTR if OOM
-
- NOTE
- see lsearch() for pin usage notes
-*/
-void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen)
-{
- LF_SLIST * volatile *el, *found;
- uint bucket, hashnr= calc_hash(hash, (uchar *)key, keylen);
-
- bucket= hashnr % hash->size;
- lf_rwlock_by_pins(pins);
- el= _lf_dynarray_lvalue(&hash->array, bucket);
- if (unlikely(!el))
- return MY_ERRPTR;
- if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins)))
- return MY_ERRPTR;
- found= lsearch(el, hash->charset, my_reverse_bits(hashnr) | 1,
- (uchar *)key, keylen, pins);
- lf_rwunlock_by_pins(pins);
- return found ? found+1 : 0;
-}
-
-static const uchar *dummy_key= (uchar*)"";
-
-/*
- RETURN
- 0 - ok
- -1 - out of memory
-*/
-static int initialize_bucket(LF_HASH *hash, LF_SLIST * volatile *node,
- uint bucket, LF_PINS *pins)
-{
- uint parent= my_clear_highest_bit(bucket);
- LF_SLIST *dummy= (LF_SLIST *)my_malloc(sizeof(LF_SLIST), MYF(MY_WME));
- LF_SLIST **tmp= 0, *cur;
- LF_SLIST * volatile *el= _lf_dynarray_lvalue(&hash->array, parent);
- if (unlikely(!el || !dummy))
- return -1;
- if (*el == NULL && bucket &&
- unlikely(initialize_bucket(hash, el, parent, pins)))
- return -1;
- dummy->hashnr= my_reverse_bits(bucket) | 0; /* dummy node */
- dummy->key= dummy_key;
- dummy->keylen= 0;
- if ((cur= linsert(el, hash->charset, dummy, pins, LF_HASH_UNIQUE)))
- {
- my_free(dummy);
- dummy= cur;
- }
- my_atomic_casptr((void **)node, (void **)&tmp, dummy);
- /*
- note that if the CAS above failed (after linsert() succeeded),
- it would mean that some other thread has executed linsert() for
- the same dummy node, its linsert() failed, it picked up our
- dummy node (in "dummy= cur") and executed the same CAS as above.
- Which means that even if CAS above failed we don't need to retry,
- and we should not free(dummy) - there's no memory leak here
- */
- return 0;
-}
diff --git a/dep/mysqllite/mysys/list.c b/dep/mysqllite/mysys/list.c
deleted file mode 100644
index e68fbf519d1..00000000000
--- a/dep/mysqllite/mysys/list.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Code for handling dubble-linked lists in C
-*/
-
-#include "mysys_priv.h"
-#include <my_list.h>
-
-
-
- /* Add a element to start of list */
-
-LIST *list_add(LIST *root, LIST *element)
-{
- DBUG_ENTER("list_add");
- DBUG_PRINT("enter",("root: 0x%lx element: 0x%lx", (long) root, (long) element));
- if (root)
- {
- if (root->prev) /* If add in mid of list */
- root->prev->next= element;
- element->prev=root->prev;
- root->prev=element;
- }
- else
- element->prev=0;
- element->next=root;
- DBUG_RETURN(element); /* New root */
-}
-
-
-LIST *list_delete(LIST *root, LIST *element)
-{
- if (element->prev)
- element->prev->next=element->next;
- else
- root=element->next;
- if (element->next)
- element->next->prev=element->prev;
- return root;
-}
-
-
-void list_free(LIST *root, uint free_data)
-{
- LIST *next;
- while (root)
- {
- next=root->next;
- if (free_data)
- my_free(root->data);
- my_free(root);
- root=next;
- }
-}
-
-
-LIST *list_cons(void *data, LIST *list)
-{
- LIST *new_charset=(LIST*) my_malloc(sizeof(LIST),MYF(MY_FAE));
- if (!new_charset)
- return 0;
- new_charset->data=data;
- return list_add(list,new_charset);
-}
-
-
-LIST *list_reverse(LIST *root)
-{
- LIST *last;
-
- last=root;
- while (root)
- {
- last=root;
- root=root->next;
- last->next=last->prev;
- last->prev=root;
- }
- return last;
-}
-
-uint list_length(LIST *list)
-{
- uint count;
- for (count=0 ; list ; list=list->next, count++) ;
- return count;
-}
-
-
-int list_walk(LIST *list, list_walk_action action, uchar* argument)
-{
- int error=0;
- while (list)
- {
- if ((error = (*action)(list->data,argument)))
- return error;
- list=list_rest(list);
- }
- return 0;
-}
diff --git a/dep/mysqllite/mysys/md5.c b/dep/mysqllite/mysys/md5.c
deleted file mode 100644
index 2388cebedc4..00000000000
--- a/dep/mysqllite/mysys/md5.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest. This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-
-/* This code was modified in 1997 by Jim Kingdon of Cyclic Software to
- not require an integer type which is exactly 32 bits. This work
- draws on the changes for the same purpose by Tatu Ylonen
- <ylo@cs.hut.fi> as part of SSH, but since I didn't actually use
- that code, there is no copyright issue. I hereby disclaim
- copyright in any changes I have made; this code remains in the
- public domain. */
-
-#include <my_global.h>
-#include <m_string.h>
-#include "my_md5.h"
-
-#include <string.h> /* for memcpy() and memset() */
-
-
-static void
-my_MD5Transform (cvs_uint32 buf[4], const unsigned char in[64]);
-
-/* Little-endian byte-swapping routines. Note that these do not
- depend on the size of datatypes such as uint32, nor do they require
- us to detect the endianness of the machine we are running on. It
- is possible they should be macros for speed, but I would be
- surprised if they were a performance bottleneck for MD5. */
-
-static uint32 getu32 (const unsigned char *addr)
-{
- return (((((unsigned long)addr[3] << 8) | addr[2]) << 8)
- | addr[1]) << 8 | addr[0];
-}
-
-static void
-putu32 (uint32 data, unsigned char *addr)
-{
- addr[0] = (unsigned char)data;
- addr[1] = (unsigned char)(data >> 8);
- addr[2] = (unsigned char)(data >> 16);
- addr[3] = (unsigned char)(data >> 24);
-}
-
-/*
- Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
- initialization constants.
-*/
-void
-my_MD5Init (my_MD5Context *ctx)
-{
- ctx->buf[0] = 0x67452301;
- ctx->buf[1] = 0xefcdab89;
- ctx->buf[2] = 0x98badcfe;
- ctx->buf[3] = 0x10325476;
-
- ctx->bits[0] = 0;
- ctx->bits[1] = 0;
-}
-
-/*
- Update context to reflect the concatenation of another buffer full
- of bytes.
-*/
-void
-my_MD5Update (my_MD5Context *ctx, unsigned char const *buf, unsigned len)
-{
- uint32 t;
-
- /* Update bitcount */
-
- t = ctx->bits[0];
- if ((ctx->bits[0] = (t + ((uint32)len << 3)) & 0xffffffff) < t)
- ctx->bits[1]++; /* Carry from low to high */
- ctx->bits[1] += len >> 29;
-
- t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */
-
- /* Handle any leading odd-sized chunks */
-
- if ( t ) {
- unsigned char *p = ctx->in + t;
-
- t = 64-t;
- if (len < t) {
- memcpy(p, buf, len);
- return;
- }
- memcpy(p, buf, t);
- my_MD5Transform (ctx->buf, ctx->in);
- buf += t;
- len -= t;
- }
-
- /* Process data in 64-byte chunks */
-
- while (len >= 64) {
- memcpy(ctx->in, buf, 64);
- my_MD5Transform (ctx->buf, ctx->in);
- buf += 64;
- len -= 64;
- }
-
- /* Handle any remaining bytes of data. */
-
- memcpy(ctx->in, buf, len);
-}
-
-/*
- Final wrapup - pad to 64-byte boundary with the bit pattern
- 1 0* (64-bit count of bits processed, MSB-first)
-*/
-void
-my_MD5Final (unsigned char digest[16], my_MD5Context *ctx)
-{
- unsigned count;
- unsigned char *p;
-
- /* Compute number of bytes mod 64 */
- count = (ctx->bits[0] >> 3) & 0x3F;
-
- /* Set the first char of padding to 0x80. This is safe since there is
- always at least one byte free */
- p = ctx->in + count;
- *p++ = 0x80;
-
- /* Bytes of padding needed to make 64 bytes */
- count = 64 - 1 - count;
-
- /* Pad out to 56 mod 64 */
- if (count < 8) {
- /* Two lots of padding: Pad the first block to 64 bytes */
- memset(p, 0, count);
- my_MD5Transform (ctx->buf, ctx->in);
-
- /* Now fill the next block with 56 bytes */
- memset(ctx->in, 0, 56);
- } else {
- /* Pad block to 56 bytes */
- memset(p, 0, count-8);
- }
-
- /* Append length in bits and transform */
- putu32(ctx->bits[0], ctx->in + 56);
- putu32(ctx->bits[1], ctx->in + 60);
-
- my_MD5Transform (ctx->buf, ctx->in);
- putu32(ctx->buf[0], digest);
- putu32(ctx->buf[1], digest + 4);
- putu32(ctx->buf[2], digest + 8);
- putu32(ctx->buf[3], digest + 12);
- memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
-}
-
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f, w, x, y, z, data, s) \
- ( w += f(x, y, z) + data, w &= 0xffffffff, w = w<<s | w>>(32-s), w += x )
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data. MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-static void
-my_MD5Transform (uint32 buf[4], const unsigned char inraw[64])
-{
- register uint32 a, b, c, d;
- uint32 in[16];
- int i;
-
- for (i = 0; i < 16; ++i)
- in[i] = getu32 (inraw + 4 * i);
-
- a = buf[0];
- b = buf[1];
- c = buf[2];
- d = buf[3];
-
- MD5STEP(F1, a, b, c, d, in[ 0]+0xd76aa478, 7);
- MD5STEP(F1, d, a, b, c, in[ 1]+0xe8c7b756, 12);
- MD5STEP(F1, c, d, a, b, in[ 2]+0x242070db, 17);
- MD5STEP(F1, b, c, d, a, in[ 3]+0xc1bdceee, 22);
- MD5STEP(F1, a, b, c, d, in[ 4]+0xf57c0faf, 7);
- MD5STEP(F1, d, a, b, c, in[ 5]+0x4787c62a, 12);
- MD5STEP(F1, c, d, a, b, in[ 6]+0xa8304613, 17);
- MD5STEP(F1, b, c, d, a, in[ 7]+0xfd469501, 22);
- MD5STEP(F1, a, b, c, d, in[ 8]+0x698098d8, 7);
- MD5STEP(F1, d, a, b, c, in[ 9]+0x8b44f7af, 12);
- MD5STEP(F1, c, d, a, b, in[10]+0xffff5bb1, 17);
- MD5STEP(F1, b, c, d, a, in[11]+0x895cd7be, 22);
- MD5STEP(F1, a, b, c, d, in[12]+0x6b901122, 7);
- MD5STEP(F1, d, a, b, c, in[13]+0xfd987193, 12);
- MD5STEP(F1, c, d, a, b, in[14]+0xa679438e, 17);
- MD5STEP(F1, b, c, d, a, in[15]+0x49b40821, 22);
-
- MD5STEP(F2, a, b, c, d, in[ 1]+0xf61e2562, 5);
- MD5STEP(F2, d, a, b, c, in[ 6]+0xc040b340, 9);
- MD5STEP(F2, c, d, a, b, in[11]+0x265e5a51, 14);
- MD5STEP(F2, b, c, d, a, in[ 0]+0xe9b6c7aa, 20);
- MD5STEP(F2, a, b, c, d, in[ 5]+0xd62f105d, 5);
- MD5STEP(F2, d, a, b, c, in[10]+0x02441453, 9);
- MD5STEP(F2, c, d, a, b, in[15]+0xd8a1e681, 14);
- MD5STEP(F2, b, c, d, a, in[ 4]+0xe7d3fbc8, 20);
- MD5STEP(F2, a, b, c, d, in[ 9]+0x21e1cde6, 5);
- MD5STEP(F2, d, a, b, c, in[14]+0xc33707d6, 9);
- MD5STEP(F2, c, d, a, b, in[ 3]+0xf4d50d87, 14);
- MD5STEP(F2, b, c, d, a, in[ 8]+0x455a14ed, 20);
- MD5STEP(F2, a, b, c, d, in[13]+0xa9e3e905, 5);
- MD5STEP(F2, d, a, b, c, in[ 2]+0xfcefa3f8, 9);
- MD5STEP(F2, c, d, a, b, in[ 7]+0x676f02d9, 14);
- MD5STEP(F2, b, c, d, a, in[12]+0x8d2a4c8a, 20);
-
- MD5STEP(F3, a, b, c, d, in[ 5]+0xfffa3942, 4);
- MD5STEP(F3, d, a, b, c, in[ 8]+0x8771f681, 11);
- MD5STEP(F3, c, d, a, b, in[11]+0x6d9d6122, 16);
- MD5STEP(F3, b, c, d, a, in[14]+0xfde5380c, 23);
- MD5STEP(F3, a, b, c, d, in[ 1]+0xa4beea44, 4);
- MD5STEP(F3, d, a, b, c, in[ 4]+0x4bdecfa9, 11);
- MD5STEP(F3, c, d, a, b, in[ 7]+0xf6bb4b60, 16);
- MD5STEP(F3, b, c, d, a, in[10]+0xbebfbc70, 23);
- MD5STEP(F3, a, b, c, d, in[13]+0x289b7ec6, 4);
- MD5STEP(F3, d, a, b, c, in[ 0]+0xeaa127fa, 11);
- MD5STEP(F3, c, d, a, b, in[ 3]+0xd4ef3085, 16);
- MD5STEP(F3, b, c, d, a, in[ 6]+0x04881d05, 23);
- MD5STEP(F3, a, b, c, d, in[ 9]+0xd9d4d039, 4);
- MD5STEP(F3, d, a, b, c, in[12]+0xe6db99e5, 11);
- MD5STEP(F3, c, d, a, b, in[15]+0x1fa27cf8, 16);
- MD5STEP(F3, b, c, d, a, in[ 2]+0xc4ac5665, 23);
-
- MD5STEP(F4, a, b, c, d, in[ 0]+0xf4292244, 6);
- MD5STEP(F4, d, a, b, c, in[ 7]+0x432aff97, 10);
- MD5STEP(F4, c, d, a, b, in[14]+0xab9423a7, 15);
- MD5STEP(F4, b, c, d, a, in[ 5]+0xfc93a039, 21);
- MD5STEP(F4, a, b, c, d, in[12]+0x655b59c3, 6);
- MD5STEP(F4, d, a, b, c, in[ 3]+0x8f0ccc92, 10);
- MD5STEP(F4, c, d, a, b, in[10]+0xffeff47d, 15);
- MD5STEP(F4, b, c, d, a, in[ 1]+0x85845dd1, 21);
- MD5STEP(F4, a, b, c, d, in[ 8]+0x6fa87e4f, 6);
- MD5STEP(F4, d, a, b, c, in[15]+0xfe2ce6e0, 10);
- MD5STEP(F4, c, d, a, b, in[ 6]+0xa3014314, 15);
- MD5STEP(F4, b, c, d, a, in[13]+0x4e0811a1, 21);
- MD5STEP(F4, a, b, c, d, in[ 4]+0xf7537e82, 6);
- MD5STEP(F4, d, a, b, c, in[11]+0xbd3af235, 10);
- MD5STEP(F4, c, d, a, b, in[ 2]+0x2ad7d2bb, 15);
- MD5STEP(F4, b, c, d, a, in[ 9]+0xeb86d391, 21);
-
- buf[0] += a;
- buf[1] += b;
- buf[2] += c;
- buf[3] += d;
-}
-#endif
-
-#ifdef TEST
-/*
- Simple test program. Can use it to manually run the tests from
- RFC1321 for example.
-*/
-#include <stdio.h>
-
-int
-main (int argc, char **argv)
-{
- my_MD5Context context;
- unsigned char checksum[16];
- int i;
- int j;
-
- if (argc < 2)
- {
- fprintf (stderr, "usage: %s string-to-hash\n", argv[0]);
- exit (1);
- }
- for (j = 1; j < argc; ++j)
- {
- printf ("MD5 (\"%s\") = ", argv[j]);
- my_MD5Init (&context);
- my_MD5Update (&context, argv[j], strlen (argv[j]));
- my_MD5Final (checksum, &context);
- for (i = 0; i < 16; i++)
- {
- printf ("%02x", (unsigned int) checksum[i]);
- }
- printf ("\n");
- }
- return 0;
-}
-#endif /* TEST */
diff --git a/dep/mysqllite/mysys/mf_arr_appstr.c b/dep/mysqllite/mysys/mf_arr_appstr.c
deleted file mode 100644
index 1edbea9df4a..00000000000
--- a/dep/mysqllite/mysys/mf_arr_appstr.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2007 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h> /* strcmp() */
-
-
-/**
- Append str to array, or move to the end if it already exists
-
- @param str String to be appended
- @param array The array, terminated by a NULL element, all unused elements
- pre-initialized to NULL
- @param size Size of the array; array must be terminated by a NULL
- pointer, so can hold size - 1 elements
-
- @retval FALSE Success
- @retval TRUE Failure, array is full
-*/
-
-my_bool array_append_string_unique(const char *str,
- const char **array, size_t size)
-{
- const char **p;
- /* end points at the terminating NULL element */
- const char **end= array + size - 1;
- DBUG_ASSERT(*end == NULL);
-
- for (p= array; *p; ++p)
- {
- if (strcmp(*p, str) == 0)
- break;
- }
- if (p >= end)
- return TRUE; /* Array is full */
-
- DBUG_ASSERT(*p == NULL || strcmp(*p, str) == 0);
-
- while (*(p + 1))
- {
- *p= *(p + 1);
- ++p;
- }
-
- DBUG_ASSERT(p < end);
- *p= str;
-
- return FALSE; /* Success */
-}
diff --git a/dep/mysqllite/mysys/mf_cache.c b/dep/mysqllite/mysys/mf_cache.c
deleted file mode 100644
index 691532c0d80..00000000000
--- a/dep/mysqllite/mysys/mf_cache.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Open a temporary file and cache it with io_cache. Delete it on close */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include "my_static.h"
-#include "mysys_err.h"
-
- /*
- Remove an open tempfile so that it doesn't survive
- if we crash; If the operating system doesn't support
- this, just remember the file name for later removal
- */
-
-static my_bool cache_remove_open_tmp(IO_CACHE *cache __attribute__((unused)),
- const char *name)
-{
-#if O_TEMPORARY == 0
-#if !defined(CANT_DELETE_OPEN_FILES)
- /* The following should always succeed */
- (void) my_delete(name,MYF(MY_WME | ME_NOINPUT));
-#else
- int length;
- if (!(cache->file_name=
- (char*) my_malloc((length=strlen(name)+1),MYF(MY_WME))))
- {
- my_close(cache->file,MYF(0));
- cache->file = -1;
- errno=my_errno=ENOMEM;
- return 1;
- }
- memcpy(cache->file_name,name,length);
-#endif
-#endif /* O_TEMPORARY == 0 */
- return 0;
-}
-
- /*
- ** Open tempfile cached by IO_CACHE
- ** Should be used when no seeks are done (only reinit_io_buff)
- ** Return 0 if cache is inited ok
- ** The actual file is created when the IO_CACHE buffer gets filled
- ** If dir is not given, use TMPDIR.
- */
-
-my_bool open_cached_file(IO_CACHE *cache, const char* dir, const char *prefix,
- size_t cache_size, myf cache_myflags)
-{
- DBUG_ENTER("open_cached_file");
- cache->dir= dir ? my_strdup(dir,MYF(cache_myflags & MY_WME)) : (char*) 0;
- cache->prefix= (prefix ? my_strdup(prefix,MYF(cache_myflags & MY_WME)) :
- (char*) 0);
- cache->file_name=0;
- cache->buffer=0; /* Mark that not open */
- if (!init_io_cache(cache,-1,cache_size,WRITE_CACHE,0L,0,
- MYF(cache_myflags | MY_NABP)))
- {
- DBUG_RETURN(0);
- }
- my_free(cache->dir);
- my_free(cache->prefix);
- DBUG_RETURN(1);
-}
-
- /* Create the temporary file */
-
-my_bool real_open_cached_file(IO_CACHE *cache)
-{
- char name_buff[FN_REFLEN];
- int error=1;
- DBUG_ENTER("real_open_cached_file");
- if ((cache->file=create_temp_file(name_buff, cache->dir, cache->prefix,
- (O_RDWR | O_BINARY | O_TRUNC |
- O_TEMPORARY | O_SHORT_LIVED),
- MYF(MY_WME))) >= 0)
- {
- error=0;
- cache_remove_open_tmp(cache, name_buff);
- }
- DBUG_RETURN(error);
-}
-
-
-void close_cached_file(IO_CACHE *cache)
-{
- DBUG_ENTER("close_cached_file");
- if (my_b_inited(cache))
- {
- File file=cache->file;
- cache->file= -1; /* Don't flush data */
- (void) end_io_cache(cache);
- if (file >= 0)
- {
- (void) my_close(file,MYF(0));
-#ifdef CANT_DELETE_OPEN_FILES
- if (cache->file_name)
- {
- (void) my_delete(cache->file_name,MYF(MY_WME | ME_NOINPUT));
- my_free(cache->file_name);
- }
-#endif
- }
- my_free(cache->dir);
- my_free(cache->prefix);
- }
- DBUG_VOID_RETURN;
-}
diff --git a/dep/mysqllite/mysys/mf_dirname.c b/dep/mysqllite/mysys/mf_dirname.c
deleted file mode 100644
index 5a9440483e4..00000000000
--- a/dep/mysqllite/mysys/mf_dirname.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
- /* Functions definied in this file */
-
-size_t dirname_length(const char *name)
-{
- register char *pos, *gpos;
-#ifdef BASKSLASH_MBTAIL
- CHARSET_INFO *fs= fs_character_set();
-#endif
-#ifdef FN_DEVCHAR
- if ((pos=(char*)strrchr(name,FN_DEVCHAR)) == 0)
-#endif
- pos=(char*) name-1;
-
- gpos= pos++;
- for ( ; *pos ; pos++) /* Find last FN_LIBCHAR */
- {
-#ifdef BASKSLASH_MBTAIL
- uint l;
- if (use_mb(fs) && (l= my_ismbchar(fs, pos, pos + 3)))
- {
- pos+= l - 1;
- continue;
- }
-#endif
- if (*pos == FN_LIBCHAR || *pos == '/')
- gpos=pos;
- }
- return (size_t) (gpos+1-(char*) name);
-}
-
-
-/*
- Gives directory part of filename. Directory ends with '/'
-
- SYNOPSIS
- dirname_part()
- to Store directory name here
- name Original name
- to_length Store length of 'to' here
-
- RETURN
- # Length of directory part in 'name'
-*/
-
-size_t dirname_part(char *to, const char *name, size_t *to_res_length)
-{
- size_t length;
- DBUG_ENTER("dirname_part");
- DBUG_PRINT("enter",("'%s'",name));
-
- length=dirname_length(name);
- *to_res_length= (size_t) (convert_dirname(to, name, name+length) - to);
- DBUG_RETURN(length);
-} /* dirname */
-
-
-/*
- Convert directory name to use under this system
-
- SYNPOSIS
- convert_dirname()
- to Store result here. Must be at least of size
- min(FN_REFLEN, strlen(from) + 1) to make room
- for adding FN_LIBCHAR at the end.
- from Original filename. May be == to
- from_end Pointer at end of filename (normally end \0)
-
- IMPLEMENTATION
- If Windows converts '/' to '\'
- Adds a FN_LIBCHAR to end if the result string if there isn't one
- and the last isn't dev_char.
- Copies data from 'from' until ASCII(0) for until from == from_end
- If you want to use the whole 'from' string, just send NullS as the
- last argument.
-
- If the result string is larger than FN_REFLEN -1, then it's cut.
-
- RETURN
- Returns pointer to end \0 in to
-*/
-
-#ifndef FN_DEVCHAR
-#define FN_DEVCHAR '\0' /* For easier code */
-#endif
-
-char *convert_dirname(char *to, const char *from, const char *from_end)
-{
- char *to_org=to;
-#ifdef BACKSLASH_MBTAIL
- CHARSET_INFO *fs= fs_character_set();
-#endif
- DBUG_ENTER("convert_dirname");
-
- /* We use -2 here, becasue we need place for the last FN_LIBCHAR */
- if (!from_end || (from_end - from) > FN_REFLEN-2)
- from_end=from+FN_REFLEN -2;
-
-#if FN_LIBCHAR != '/'
- {
- for (; from != from_end && *from ; from++)
- {
- if (*from == '/')
- *to++= FN_LIBCHAR;
- else
- {
-#ifdef BACKSLASH_MBTAIL
- uint l;
- if (use_mb(fs) && (l= my_ismbchar(fs, from, from + 3)))
- {
- memmove(to, from, l);
- to+= l;
- from+= l - 1;
- to_org= to; /* Don't look inside mbchar */
- }
- else
-#endif
- {
- *to++= *from;
- }
- }
- }
- *to=0;
- }
-#else
- /* This is ok even if to == from, becasue we need to cut the string */
- to= strmake(to, from, (size_t) (from_end-from));
-#endif
-
- /* Add FN_LIBCHAR to the end of directory path */
- if (to != to_org && (to[-1] != FN_LIBCHAR && to[-1] != FN_DEVCHAR))
- {
- *to++=FN_LIBCHAR;
- *to=0;
- }
- DBUG_RETURN(to); /* Pointer to end of dir */
-} /* convert_dirname */
diff --git a/dep/mysqllite/mysys/mf_fn_ext.c b/dep/mysqllite/mysys/mf_fn_ext.c
deleted file mode 100644
index c872f2993c4..00000000000
--- a/dep/mysqllite/mysys/mf_fn_ext.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-/*
- Return a pointer to the extension of the filename.
-
- SYNOPSIS
- fn_ext()
- name Name of file
-
- DESCRIPTION
- The extension is defined as everything after the first extension character
- (normally '.') after the directory name.
-
- RETURN VALUES
- Pointer to to the extension character. If there isn't any extension,
- points at the end ASCII(0) of the filename.
-*/
-
-char *fn_ext(const char *name)
-{
- register const char *pos, *gpos;
- DBUG_ENTER("fn_ext");
- DBUG_PRINT("mfunkt",("name: '%s'",name));
-
-#if defined(FN_DEVCHAR) || defined(BASKSLASH_MBTAIL)
- {
- char buff[FN_REFLEN];
- size_t res_length;
- gpos= name+ dirname_part(buff,(char*) name, &res_length);
- }
-#else
- if (!(gpos= strrchr(name, FN_LIBCHAR)))
- gpos= name;
-#endif
- pos=strchr(gpos,FN_EXTCHAR);
- DBUG_RETURN((char*) (pos ? pos : strend(gpos)));
-} /* fn_ext */
diff --git a/dep/mysqllite/mysys/mf_format.c b/dep/mysqllite/mysys/mf_format.c
deleted file mode 100644
index 6afa2938fa3..00000000000
--- a/dep/mysqllite/mysys/mf_format.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-/*
- Formats a filename with possible replace of directory of extension
- Function can handle the case where 'to' == 'name'
- For a description of the flag values, consult my_sys.h
- The arguments should be in unix format.
-*/
-
-char * fn_format(char * to, const char *name, const char *dir,
- const char *extension, uint flag)
-{
- char dev[FN_REFLEN], buff[FN_REFLEN], *pos, *startpos;
- const char *ext;
- reg1 size_t length;
- size_t dev_length;
- DBUG_ENTER("fn_format");
- DBUG_PRINT("enter",("name: %s dir: %s extension: %s flag: %d",
- name,dir,extension,flag));
-
- /* Copy and skip directory */
- name+=(length=dirname_part(dev, (startpos=(char *) name), &dev_length));
- if (length == 0 || (flag & MY_REPLACE_DIR))
- {
- /* Use given directory */
- convert_dirname(dev,dir,NullS); /* Fix to this OS */
- }
- else if ((flag & MY_RELATIVE_PATH) && !test_if_hard_path(dev))
- {
- /* Put 'dir' before the given path */
- strmake(buff,dev,sizeof(buff)-1);
- pos=convert_dirname(dev,dir,NullS);
- strmake(pos,buff,sizeof(buff)-1- (int) (pos-dev));
- }
-
- if (flag & MY_PACK_FILENAME)
- pack_dirname(dev,dev); /* Put in ./.. and ~/.. */
- if (flag & MY_UNPACK_FILENAME)
- (void) unpack_dirname(dev,dev); /* Replace ~/.. with dir */
-
- if (!(flag & MY_APPEND_EXT) &&
- (pos= (char*) strchr(name,FN_EXTCHAR)) != NullS)
- {
- if ((flag & MY_REPLACE_EXT) == 0) /* If we should keep old ext */
- {
- length=strlength(name); /* Use old extension */
- ext = "";
- }
- else
- {
- length= (size_t) (pos-(char*) name); /* Change extension */
- ext= extension;
- }
- }
- else
- {
- length=strlength(name); /* No ext, use the now one */
- ext=extension;
- }
-
- if (strlen(dev)+length+strlen(ext) >= FN_REFLEN || length >= FN_LEN )
- {
- /* To long path, return original or NULL */
- size_t tmp_length;
- if (flag & MY_SAFE_PATH)
- DBUG_RETURN(NullS);
- tmp_length= strlength(startpos);
- DBUG_PRINT("error",("dev: '%s' ext: '%s' length: %u",dev,ext,
- (uint) length));
- (void) strmake(to,startpos,min(tmp_length,FN_REFLEN-1));
- }
- else
- {
- if (to == startpos)
- {
- bmove(buff,(uchar*) name,length); /* Save name for last copy */
- name=buff;
- }
- pos=strmake(strmov(to,dev),name,length);
- (void) strmov(pos,ext); /* Don't convert extension */
- }
- /*
- If MY_RETURN_REAL_PATH and MY_RESOLVE_SYMLINK is given, only do
- realpath if the file is a symbolic link
- */
- if (flag & MY_RETURN_REAL_PATH)
- (void) my_realpath(to, to, MYF(flag & MY_RESOLVE_SYMLINKS ?
- MY_RESOLVE_LINK: 0));
- else if (flag & MY_RESOLVE_SYMLINKS)
- {
- strmov(buff,to);
- (void) my_readlink(to, buff, MYF(0));
- }
- DBUG_RETURN(to);
-} /* fn_format */
-
-
-/*
- strlength(const string str)
- Return length of string with end-space:s not counted.
-*/
-
-size_t strlength(const char *str)
-{
- reg1 const char * pos;
- reg2 const char * found;
- DBUG_ENTER("strlength");
-
- pos= found= str;
-
- while (*pos)
- {
- if (*pos != ' ')
- {
- while (*++pos && *pos != ' ') {};
- if (!*pos)
- {
- found=pos; /* String ends here */
- break;
- }
- }
- found=pos;
- while (*++pos == ' ') {};
- }
- DBUG_RETURN((size_t) (found - str));
-} /* strlength */
diff --git a/dep/mysqllite/mysys/mf_getdate.c b/dep/mysqllite/mysys/mf_getdate.c
deleted file mode 100644
index 9475bebd107..00000000000
--- a/dep/mysqllite/mysys/mf_getdate.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Get date in a printable form: yyyy-mm-dd hh:mm:ss */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-/*
- get date as string
-
- SYNOPSIS
- get_date()
- to - string where date will be written
- flag - format of date:
- If flag & GETDATE_TIME Return date and time
- If flag & GETDATE_SHORT_DATE Return short date format YYMMDD
- If flag & GETDATE_HHMMSSTIME Return time in HHMMDD format.
- If flag & GETDATE_GMT Date/time in GMT
- If flag & GETDATE_FIXEDLENGTH Return fixed length date/time
- date - for conversion
-*/
-
-
-void get_date(register char * to, int flag, time_t date)
-{
- reg2 struct tm *start_time;
- time_t skr;
-#if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT)
- struct tm tm_tmp;
-#endif
-
- skr=date ? (time_t) date : my_time(0);
-#if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT)
- if (flag & GETDATE_GMT)
- gmtime_r(&skr,&tm_tmp);
- else
- localtime_r(&skr,&tm_tmp);
- start_time= &tm_tmp;
-#else
- if (flag & GETDATE_GMT)
- start_time= gmtime(&skr);
- else
- start_time= localtime(&skr);
-#endif
- if (flag & GETDATE_SHORT_DATE)
- sprintf(to,"%02d%02d%02d",
- start_time->tm_year % 100,
- start_time->tm_mon+1,
- start_time->tm_mday);
- else
- sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ?
- "%4d-%02d-%02d" : "%d-%02d-%02d"),
- start_time->tm_year+1900,
- start_time->tm_mon+1,
- start_time->tm_mday);
- if (flag & GETDATE_DATE_TIME)
- sprintf(strend(to),
- ((flag & GETDATE_FIXEDLENGTH) ?
- " %02d:%02d:%02d" : " %2d:%02d:%02d"),
- start_time->tm_hour,
- start_time->tm_min,
- start_time->tm_sec);
- else if (flag & GETDATE_HHMMSSTIME)
- sprintf(strend(to),"%02d%02d%02d",
- start_time->tm_hour,
- start_time->tm_min,
- start_time->tm_sec);
-} /* get_date */
diff --git a/dep/mysqllite/mysys/mf_iocache.c b/dep/mysqllite/mysys/mf_iocache.c
deleted file mode 100644
index 62e51ffb629..00000000000
--- a/dep/mysqllite/mysys/mf_iocache.c
+++ /dev/null
@@ -1,1949 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Cashing of files with only does (sequential) read or writes of fixed-
- length records. A read isn't allowed to go over file-length. A read is ok
- if it ends at file-length and next read can try to read after file-length
- (and get a EOF-error).
- Possibly use of asyncronic io.
- macros for read and writes for faster io.
- Used instead of FILE when reading or writing whole files.
- This code makes mf_rec_cache obsolete (currently only used by ISAM)
- One can change info->pos_in_file to a higher value to skip bytes in file if
- also info->read_pos is set to info->read_end.
- If called through open_cached_file(), then the temporary file will
- only be created if a write exeeds the file buffer or if one calls
- my_b_flush_io_cache().
-
- If one uses SEQ_READ_APPEND, then two buffers are allocated, one for
- reading and another for writing. Reads are first done from disk and
- then done from the write buffer. This is an efficient way to read
- from a log file when one is writing to it at the same time.
- For this to work, the file has to be opened in append mode!
- Note that when one uses SEQ_READ_APPEND, one MUST write using
- my_b_append ! This is needed because we need to lock the mutex
- every time we access the write buffer.
-
-TODO:
- When one SEQ_READ_APPEND and we are reading and writing at the same time,
- each time the write buffer gets full and it's written to disk, we will
- always do a disk read to read a part of the buffer from disk to the
- read buffer.
- This should be fixed so that when we do a my_b_flush_io_cache() and
- we have been reading the write buffer, we should transfer the rest of the
- write buffer to the read buffer before we start to reuse it.
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#ifdef HAVE_AIOWAIT
-#include "mysys_err.h"
-static void my_aiowait(my_aio_result *result);
-#endif
-#include <errno.h>
-
-#define lock_append_buffer(info) \
- mysql_mutex_lock(&(info)->append_buffer_lock)
-#define unlock_append_buffer(info) \
- mysql_mutex_unlock(&(info)->append_buffer_lock)
-
-#define IO_ROUND_UP(X) (((X)+IO_SIZE-1) & ~(IO_SIZE-1))
-#define IO_ROUND_DN(X) ( (X) & ~(IO_SIZE-1))
-
-/*
- Setup internal pointers inside IO_CACHE
-
- SYNOPSIS
- setup_io_cache()
- info IO_CACHE handler
-
- NOTES
- This is called on automaticly on init or reinit of IO_CACHE
- It must be called externally if one moves or copies an IO_CACHE
- object.
-*/
-
-void setup_io_cache(IO_CACHE* info)
-{
- /* Ensure that my_b_tell() and my_b_bytes_in_cache works */
- if (info->type == WRITE_CACHE)
- {
- info->current_pos= &info->write_pos;
- info->current_end= &info->write_end;
- }
- else
- {
- info->current_pos= &info->read_pos;
- info->current_end= &info->read_end;
- }
-}
-
-
-static void
-init_functions(IO_CACHE* info)
-{
- enum cache_type type= info->type;
- switch (type) {
- case READ_NET:
- /*
- Must be initialized by the caller. The problem is that
- _my_b_net_read has to be defined in sql directory because of
- the dependency on THD, and therefore cannot be visible to
- programs that link against mysys but know nothing about THD, such
- as myisamchk
- */
- break;
- case SEQ_READ_APPEND:
- info->read_function = _my_b_seq_read;
- info->write_function = 0; /* Force a core if used */
- break;
- default:
- info->read_function = info->share ? _my_b_read_r : _my_b_read;
- info->write_function = _my_b_write;
- }
-
- setup_io_cache(info);
-}
-
-
-/*
- Initialize an IO_CACHE object
-
- SYNOPSOS
- init_io_cache()
- info cache handler to initialize
- file File that should be associated to to the handler
- If == -1 then real_open_cached_file()
- will be called when it's time to open file.
- cachesize Size of buffer to allocate for read/write
- If == 0 then use my_default_record_cache_size
- type Type of cache
- seek_offset Where cache should start reading/writing
- use_async_io Set to 1 of we should use async_io (if avaiable)
- cache_myflags Bitmap of differnt flags
- MY_WME | MY_FAE | MY_NABP | MY_FNABP |
- MY_DONT_CHECK_FILESIZE
-
- RETURN
- 0 ok
- # error
-*/
-
-int init_io_cache(IO_CACHE *info, File file, size_t cachesize,
- enum cache_type type, my_off_t seek_offset,
- pbool use_async_io, myf cache_myflags)
-{
- size_t min_cache;
- my_off_t pos;
- my_off_t end_of_file= ~(my_off_t) 0;
- DBUG_ENTER("init_io_cache");
- DBUG_PRINT("enter",("cache: 0x%lx type: %d pos: %ld",
- (ulong) info, (int) type, (ulong) seek_offset));
-
- info->file= file;
- info->type= TYPE_NOT_SET; /* Don't set it until mutex are created */
- info->pos_in_file= seek_offset;
- info->pre_close = info->pre_read = info->post_read = 0;
- info->arg = 0;
- info->alloced_buffer = 0;
- info->buffer=0;
- info->seek_not_done= 0;
-
- if (file >= 0)
- {
- pos= mysql_file_tell(file, MYF(0));
- if ((pos == (my_off_t) -1) && (my_errno == ESPIPE))
- {
- /*
- This kind of object doesn't support seek() or tell(). Don't set a
- flag that will make us again try to seek() later and fail.
- */
- info->seek_not_done= 0;
- /*
- Additionally, if we're supposed to start somewhere other than the
- the beginning of whatever this file is, then somebody made a bad
- assumption.
- */
- DBUG_ASSERT(seek_offset == 0);
- }
- else
- info->seek_not_done= test(seek_offset != pos);
- }
-
- info->disk_writes= 0;
- info->share=0;
-
- if (!cachesize && !(cachesize= my_default_record_cache_size))
- DBUG_RETURN(1); /* No cache requested */
- min_cache=use_async_io ? IO_SIZE*4 : IO_SIZE*2;
- if (type == READ_CACHE || type == SEQ_READ_APPEND)
- { /* Assume file isn't growing */
- if (!(cache_myflags & MY_DONT_CHECK_FILESIZE))
- {
- /* Calculate end of file to avoid allocating oversized buffers */
- end_of_file= mysql_file_seek(file, 0L, MY_SEEK_END, MYF(0));
- /* Need to reset seek_not_done now that we just did a seek. */
- info->seek_not_done= end_of_file == seek_offset ? 0 : 1;
- if (end_of_file < seek_offset)
- end_of_file=seek_offset;
- /* Trim cache size if the file is very small */
- if ((my_off_t) cachesize > end_of_file-seek_offset+IO_SIZE*2-1)
- {
- cachesize= (size_t) (end_of_file-seek_offset)+IO_SIZE*2-1;
- use_async_io=0; /* No need to use async */
- }
- }
- }
- cache_myflags &= ~MY_DONT_CHECK_FILESIZE;
- if (type != READ_NET && type != WRITE_NET)
- {
- /* Retry allocating memory in smaller blocks until we get one */
- cachesize= ((cachesize + min_cache-1) & ~(min_cache-1));
- for (;;)
- {
- size_t buffer_block;
- /*
- Unset MY_WAIT_IF_FULL bit if it is set, to prevent conflict with
- MY_ZEROFILL.
- */
- myf flags= (myf) (cache_myflags & ~(MY_WME | MY_WAIT_IF_FULL));
-
- if (cachesize < min_cache)
- cachesize = min_cache;
- buffer_block= cachesize;
- if (type == SEQ_READ_APPEND)
- buffer_block *= 2;
- if (cachesize == min_cache)
- flags|= (myf) MY_WME;
-
- if ((info->buffer= (uchar*) my_malloc(buffer_block, flags)) != 0)
- {
- info->write_buffer=info->buffer;
- if (type == SEQ_READ_APPEND)
- info->write_buffer = info->buffer + cachesize;
- info->alloced_buffer=1;
- break; /* Enough memory found */
- }
- if (cachesize == min_cache)
- DBUG_RETURN(2); /* Can't alloc cache */
- /* Try with less memory */
- cachesize= (cachesize*3/4 & ~(min_cache-1));
- }
- }
-
- DBUG_PRINT("info",("init_io_cache: cachesize = %lu", (ulong) cachesize));
- info->read_length=info->buffer_length=cachesize;
- info->myflags=cache_myflags & ~(MY_NABP | MY_FNABP);
- info->request_pos= info->read_pos= info->write_pos = info->buffer;
- if (type == SEQ_READ_APPEND)
- {
- info->append_read_pos = info->write_pos = info->write_buffer;
- info->write_end = info->write_buffer + info->buffer_length;
- mysql_mutex_init(key_IO_CACHE_append_buffer_lock,
- &info->append_buffer_lock, MY_MUTEX_INIT_FAST);
- }
-#if defined(SAFE_MUTEX)
- else
- {
- /* Clear mutex so that safe_mutex will notice that it's not initialized */
- bzero((char*) &info->append_buffer_lock, sizeof(info));
- }
-#endif
-
- if (type == WRITE_CACHE)
- info->write_end=
- info->buffer+info->buffer_length- (seek_offset & (IO_SIZE-1));
- else
- info->read_end=info->buffer; /* Nothing in cache */
-
- /* End_of_file may be changed by user later */
- info->end_of_file= end_of_file;
- info->error=0;
- info->type= type;
- init_functions(info);
-#ifdef HAVE_AIOWAIT
- if (use_async_io && ! my_disable_async_io)
- {
- DBUG_PRINT("info",("Using async io"));
- info->read_length/=2;
- info->read_function=_my_b_async_read;
- }
- info->inited=info->aio_result.pending=0;
-#endif
- DBUG_RETURN(0);
-} /* init_io_cache */
-
- /* Wait until current request is ready */
-
-#ifdef HAVE_AIOWAIT
-static void my_aiowait(my_aio_result *result)
-{
- if (result->pending)
- {
- struct aio_result_t *tmp;
- for (;;)
- {
- if ((int) (tmp=aiowait((struct timeval *) 0)) == -1)
- {
- if (errno == EINTR)
- continue;
- DBUG_PRINT("error",("No aio request, error: %d",errno));
- result->pending=0; /* Assume everythings is ok */
- break;
- }
- ((my_aio_result*) tmp)->pending=0;
- if ((my_aio_result*) tmp == result)
- break;
- }
- }
- return;
-}
-#endif
-
-
-/*
- Use this to reset cache to re-start reading or to change the type
- between READ_CACHE <-> WRITE_CACHE
- If we are doing a reinit of a cache where we have the start of the file
- in the cache, we are reusing this memory without flushing it to disk.
-*/
-
-my_bool reinit_io_cache(IO_CACHE *info, enum cache_type type,
- my_off_t seek_offset,
- pbool use_async_io __attribute__((unused)),
- pbool clear_cache)
-{
- DBUG_ENTER("reinit_io_cache");
- DBUG_PRINT("enter",("cache: 0x%lx type: %d seek_offset: %lu clear_cache: %d",
- (ulong) info, type, (ulong) seek_offset,
- (int) clear_cache));
-
- /* One can't do reinit with the following types */
- DBUG_ASSERT(type != READ_NET && info->type != READ_NET &&
- type != WRITE_NET && info->type != WRITE_NET &&
- type != SEQ_READ_APPEND && info->type != SEQ_READ_APPEND);
-
- /* If the whole file is in memory, avoid flushing to disk */
- if (! clear_cache &&
- seek_offset >= info->pos_in_file &&
- seek_offset <= my_b_tell(info))
- {
- /* Reuse current buffer without flushing it to disk */
- uchar *pos;
- if (info->type == WRITE_CACHE && type == READ_CACHE)
- {
- info->read_end=info->write_pos;
- info->end_of_file=my_b_tell(info);
- /*
- Trigger a new seek only if we have a valid
- file handle.
- */
- info->seek_not_done= (info->file != -1);
- }
- else if (type == WRITE_CACHE)
- {
- if (info->type == READ_CACHE)
- {
- info->write_end=info->write_buffer+info->buffer_length;
- info->seek_not_done=1;
- }
- info->end_of_file = ~(my_off_t) 0;
- }
- pos=info->request_pos+(seek_offset-info->pos_in_file);
- if (type == WRITE_CACHE)
- info->write_pos=pos;
- else
- info->read_pos= pos;
-#ifdef HAVE_AIOWAIT
- my_aiowait(&info->aio_result); /* Wait for outstanding req */
-#endif
- }
- else
- {
- /*
- If we change from WRITE_CACHE to READ_CACHE, assume that everything
- after the current positions should be ignored
- */
- if (info->type == WRITE_CACHE && type == READ_CACHE)
- info->end_of_file=my_b_tell(info);
- /* flush cache if we want to reuse it */
- if (!clear_cache && my_b_flush_io_cache(info,1))
- DBUG_RETURN(1);
- info->pos_in_file=seek_offset;
- /* Better to do always do a seek */
- info->seek_not_done=1;
- info->request_pos=info->read_pos=info->write_pos=info->buffer;
- if (type == READ_CACHE)
- {
- info->read_end=info->buffer; /* Nothing in cache */
- }
- else
- {
- info->write_end=(info->buffer + info->buffer_length -
- (seek_offset & (IO_SIZE-1)));
- info->end_of_file= ~(my_off_t) 0;
- }
- }
- info->type=type;
- info->error=0;
- init_functions(info);
-
-#ifdef HAVE_AIOWAIT
- if (use_async_io && ! my_disable_async_io &&
- ((ulong) info->buffer_length <
- (ulong) (info->end_of_file - seek_offset)))
- {
- info->read_length=info->buffer_length/2;
- info->read_function=_my_b_async_read;
- }
- info->inited=0;
-#endif
- DBUG_RETURN(0);
-} /* reinit_io_cache */
-
-
-
-/*
- Read buffered.
-
- SYNOPSIS
- _my_b_read()
- info IO_CACHE pointer
- Buffer Buffer to retrieve count bytes from file
- Count Number of bytes to read into Buffer
-
- NOTE
- This function is only called from the my_b_read() macro when there
- isn't enough characters in the buffer to satisfy the request.
-
- WARNING
-
- When changing this function, be careful with handling file offsets
- (end-of_file, pos_in_file). Do not cast them to possibly smaller
- types than my_off_t unless you can be sure that their value fits.
- Same applies to differences of file offsets.
-
- When changing this function, check _my_b_read_r(). It might need the
- same change.
-
- RETURN
- 0 we succeeded in reading all data
- 1 Error: couldn't read requested characters. In this case:
- If info->error == -1, we got a read error.
- Otherwise info->error contains the number of bytes in Buffer.
-*/
-
-int _my_b_read(register IO_CACHE *info, uchar *Buffer, size_t Count)
-{
- size_t length,diff_length,left_length, max_length;
- my_off_t pos_in_file;
- DBUG_ENTER("_my_b_read");
-
- /* If the buffer is not empty yet, copy what is available. */
- if ((left_length= (size_t) (info->read_end-info->read_pos)))
- {
- DBUG_ASSERT(Count >= left_length); /* User is not using my_b_read() */
- memcpy(Buffer,info->read_pos, left_length);
- Buffer+=left_length;
- Count-=left_length;
- }
-
- /* pos_in_file always point on where info->buffer was read */
- pos_in_file=info->pos_in_file+ (size_t) (info->read_end - info->buffer);
-
- /*
- Whenever a function which operates on IO_CACHE flushes/writes
- some part of the IO_CACHE to disk it will set the property
- "seek_not_done" to indicate this to other functions operating
- on the IO_CACHE.
- */
- if (info->seek_not_done)
- {
- if ((mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0))
- != MY_FILEPOS_ERROR))
- {
- /* No error, reset seek_not_done flag. */
- info->seek_not_done= 0;
- }
- else
- {
- /*
- If the seek failed and the error number is ESPIPE, it is because
- info->file is a pipe or socket or FIFO. We never should have tried
- to seek on that. See Bugs#25807 and #22828 for more info.
- */
- DBUG_ASSERT(my_errno != ESPIPE);
- info->error= -1;
- DBUG_RETURN(1);
- }
- }
-
- /*
- Calculate, how much we are within a IO_SIZE block. Ideally this
- should be zero.
- */
- diff_length= (size_t) (pos_in_file & (IO_SIZE-1));
-
- /*
- If more than a block plus the rest of the current block is wanted,
- we do read directly, without filling the buffer.
- */
- if (Count >= (size_t) (IO_SIZE+(IO_SIZE-diff_length)))
- { /* Fill first intern buffer */
- size_t read_length;
- if (info->end_of_file <= pos_in_file)
- {
- /* End of file. Return, what we did copy from the buffer. */
- info->error= (int) left_length;
- DBUG_RETURN(1);
- }
- /*
- Crop the wanted count to a multiple of IO_SIZE and subtract,
- what we did already read from a block. That way, the read will
- end aligned with a block.
- */
- length=(Count & (size_t) ~(IO_SIZE-1))-diff_length;
- if ((read_length= mysql_file_read(info->file,Buffer, length, info->myflags))
- != length)
- {
- /*
- If we didn't get, what we wanted, we either return -1 for a read
- error, or (it's end of file), how much we got in total.
- */
- info->error= (read_length == (size_t) -1 ? -1 :
- (int) (read_length+left_length));
- DBUG_RETURN(1);
- }
- Count-=length;
- Buffer+=length;
- pos_in_file+=length;
- left_length+=length;
- diff_length=0;
- }
-
- /*
- At this point, we want less than one and a partial block.
- We will read a full cache, minus the number of bytes, we are
- within a block already. So we will reach new alignment.
- */
- max_length= info->read_length-diff_length;
- /* We will not read past end of file. */
- if (info->type != READ_FIFO &&
- max_length > (info->end_of_file - pos_in_file))
- max_length= (size_t) (info->end_of_file - pos_in_file);
- /*
- If there is nothing left to read,
- we either are done, or we failed to fulfill the request.
- Otherwise, we read max_length into the cache.
- */
- if (!max_length)
- {
- if (Count)
- {
- /* We couldn't fulfil the request. Return, how much we got. */
- info->error= left_length;
- DBUG_RETURN(1);
- }
- length=0; /* Didn't read any chars */
- }
- else if ((length= mysql_file_read(info->file,info->buffer, max_length,
- info->myflags)) < Count ||
- length == (size_t) -1)
- {
- /*
- We got an read error, or less than requested (end of file).
- If not a read error, copy, what we got.
- */
- if (length != (size_t) -1)
- memcpy(Buffer, info->buffer, length);
- info->pos_in_file= pos_in_file;
- /* For a read error, return -1, otherwise, what we got in total. */
- info->error= length == (size_t) -1 ? -1 : (int) (length+left_length);
- info->read_pos=info->read_end=info->buffer;
- DBUG_RETURN(1);
- }
- /*
- Count is the remaining number of bytes requested.
- length is the amount of data in the cache.
- Read Count bytes from the cache.
- */
- info->read_pos=info->buffer+Count;
- info->read_end=info->buffer+length;
- info->pos_in_file=pos_in_file;
- memcpy(Buffer, info->buffer, Count);
- DBUG_RETURN(0);
-}
-
-
-/*
- Prepare IO_CACHE for shared use.
-
- SYNOPSIS
- init_io_cache_share()
- read_cache A read cache. This will be copied for
- every thread after setup.
- cshare The share.
- write_cache If non-NULL a write cache that is to be
- synchronized with the read caches.
- num_threads Number of threads sharing the cache
- including the write thread if any.
-
- DESCRIPTION
-
- The shared cache is used so: One IO_CACHE is initialized with
- init_io_cache(). This includes the allocation of a buffer. Then a
- share is allocated and init_io_cache_share() is called with the io
- cache and the share. Then the io cache is copied for each thread. So
- every thread has its own copy of IO_CACHE. But the allocated buffer
- is shared because cache->buffer is the same for all caches.
-
- One thread reads data from the file into the buffer. All threads
- read from the buffer, but every thread maintains its own set of
- pointers into the buffer. When all threads have used up the buffer
- contents, one of the threads reads the next block of data into the
- buffer. To accomplish this, each thread enters the cache lock before
- accessing the buffer. They wait in lock_io_cache() until all threads
- joined the lock. The last thread entering the lock is in charge of
- reading from file to buffer. It wakes all threads when done.
-
- Synchronizing a write cache to the read caches works so: Whenever
- the write buffer needs a flush, the write thread enters the lock and
- waits for all other threads to enter the lock too. They do this when
- they have used up the read buffer. When all threads are in the lock,
- the write thread copies the write buffer to the read buffer and
- wakes all threads.
-
- share->running_threads is the number of threads not being in the
- cache lock. When entering lock_io_cache() the number is decreased.
- When the thread that fills the buffer enters unlock_io_cache() the
- number is reset to the number of threads. The condition
- running_threads == 0 means that all threads are in the lock. Bumping
- up the number to the full count is non-intuitive. But increasing the
- number by one for each thread that leaves the lock could lead to a
- solo run of one thread. The last thread to join a lock reads from
- file to buffer, wakes the other threads, processes the data in the
- cache and enters the lock again. If no other thread left the lock
- meanwhile, it would think it's the last one again and read the next
- block...
-
- The share has copies of 'error', 'buffer', 'read_end', and
- 'pos_in_file' from the thread that filled the buffer. We may not be
- able to access this information directly from its cache because the
- thread may be removed from the share before the variables could be
- copied by all other threads. Or, if a write buffer is synchronized,
- it would change its 'pos_in_file' after waking the other threads,
- possibly before they could copy its value.
-
- However, the 'buffer' variable in the share is for a synchronized
- write cache. It needs to know where to put the data. Otherwise it
- would need access to the read cache of one of the threads that is
- not yet removed from the share.
-
- RETURN
- void
-*/
-
-void init_io_cache_share(IO_CACHE *read_cache, IO_CACHE_SHARE *cshare,
- IO_CACHE *write_cache, uint num_threads)
-{
- DBUG_ENTER("init_io_cache_share");
- DBUG_PRINT("io_cache_share", ("read_cache: 0x%lx share: 0x%lx "
- "write_cache: 0x%lx threads: %u",
- (long) read_cache, (long) cshare,
- (long) write_cache, num_threads));
-
- DBUG_ASSERT(num_threads > 1);
- DBUG_ASSERT(read_cache->type == READ_CACHE);
- DBUG_ASSERT(!write_cache || (write_cache->type == WRITE_CACHE));
-
- mysql_mutex_init(key_IO_CACHE_SHARE_mutex,
- &cshare->mutex, MY_MUTEX_INIT_FAST);
- mysql_cond_init(key_IO_CACHE_SHARE_cond, &cshare->cond, 0);
- mysql_cond_init(key_IO_CACHE_SHARE_cond_writer, &cshare->cond_writer, 0);
-
- cshare->running_threads= num_threads;
- cshare->total_threads= num_threads;
- cshare->error= 0; /* Initialize. */
- cshare->buffer= read_cache->buffer;
- cshare->read_end= NULL; /* See function comment of lock_io_cache(). */
- cshare->pos_in_file= 0; /* See function comment of lock_io_cache(). */
- cshare->source_cache= write_cache; /* Can be NULL. */
-
- read_cache->share= cshare;
- read_cache->read_function= _my_b_read_r;
- read_cache->current_pos= NULL;
- read_cache->current_end= NULL;
-
- if (write_cache)
- write_cache->share= cshare;
-
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Remove a thread from shared access to IO_CACHE.
-
- SYNOPSIS
- remove_io_thread()
- cache The IO_CACHE to be removed from the share.
-
- NOTE
-
- Every thread must do that on exit for not to deadlock other threads.
-
- The last thread destroys the pthread resources.
-
- A writer flushes its cache first.
-
- RETURN
- void
-*/
-
-void remove_io_thread(IO_CACHE *cache)
-{
- IO_CACHE_SHARE *cshare= cache->share;
- uint total;
- DBUG_ENTER("remove_io_thread");
-
- /* If the writer goes, it needs to flush the write cache. */
- if (cache == cshare->source_cache)
- flush_io_cache(cache);
-
- mysql_mutex_lock(&cshare->mutex);
- DBUG_PRINT("io_cache_share", ("%s: 0x%lx",
- (cache == cshare->source_cache) ?
- "writer" : "reader", (long) cache));
-
- /* Remove from share. */
- total= --cshare->total_threads;
- DBUG_PRINT("io_cache_share", ("remaining threads: %u", total));
-
- /* Detach from share. */
- cache->share= NULL;
-
- /* If the writer goes, let the readers know. */
- if (cache == cshare->source_cache)
- {
- DBUG_PRINT("io_cache_share", ("writer leaves"));
- cshare->source_cache= NULL;
- }
-
- /* If all threads are waiting for me to join the lock, wake them. */
- if (!--cshare->running_threads)
- {
- DBUG_PRINT("io_cache_share", ("the last running thread leaves, wake all"));
- mysql_cond_signal(&cshare->cond_writer);
- mysql_cond_broadcast(&cshare->cond);
- }
-
- mysql_mutex_unlock(&cshare->mutex);
-
- if (!total)
- {
- DBUG_PRINT("io_cache_share", ("last thread removed, destroy share"));
- mysql_cond_destroy (&cshare->cond_writer);
- mysql_cond_destroy (&cshare->cond);
- mysql_mutex_destroy(&cshare->mutex);
- }
-
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Lock IO cache and wait for all other threads to join.
-
- SYNOPSIS
- lock_io_cache()
- cache The cache of the thread entering the lock.
- pos File position of the block to read.
- Unused for the write thread.
-
- DESCRIPTION
-
- Wait for all threads to finish with the current buffer. We want
- all threads to proceed in concert. The last thread to join
- lock_io_cache() will read the block from file and all threads start
- to use it. Then they will join again for reading the next block.
-
- The waiting threads detect a fresh buffer by comparing
- cshare->pos_in_file with the position they want to process next.
- Since the first block may start at position 0, we take
- cshare->read_end as an additional condition. This variable is
- initialized to NULL and will be set after a block of data is written
- to the buffer.
-
- RETURN
- 1 OK, lock in place, go ahead and read.
- 0 OK, unlocked, another thread did the read.
-*/
-
-static int lock_io_cache(IO_CACHE *cache, my_off_t pos)
-{
- IO_CACHE_SHARE *cshare= cache->share;
- DBUG_ENTER("lock_io_cache");
-
- /* Enter the lock. */
- mysql_mutex_lock(&cshare->mutex);
- cshare->running_threads--;
- DBUG_PRINT("io_cache_share", ("%s: 0x%lx pos: %lu running: %u",
- (cache == cshare->source_cache) ?
- "writer" : "reader", (long) cache, (ulong) pos,
- cshare->running_threads));
-
- if (cshare->source_cache)
- {
- /* A write cache is synchronized to the read caches. */
-
- if (cache == cshare->source_cache)
- {
- /* The writer waits until all readers are here. */
- while (cshare->running_threads)
- {
- DBUG_PRINT("io_cache_share", ("writer waits in lock"));
- mysql_cond_wait(&cshare->cond_writer, &cshare->mutex);
- }
- DBUG_PRINT("io_cache_share", ("writer awoke, going to copy"));
-
- /* Stay locked. Leave the lock later by unlock_io_cache(). */
- DBUG_RETURN(1);
- }
-
- /* The last thread wakes the writer. */
- if (!cshare->running_threads)
- {
- DBUG_PRINT("io_cache_share", ("waking writer"));
- mysql_cond_signal(&cshare->cond_writer);
- }
-
- /*
- Readers wait until the data is copied from the writer. Another
- reason to stop waiting is the removal of the write thread. If this
- happens, we leave the lock with old data in the buffer.
- */
- while ((!cshare->read_end || (cshare->pos_in_file < pos)) &&
- cshare->source_cache)
- {
- DBUG_PRINT("io_cache_share", ("reader waits in lock"));
- mysql_cond_wait(&cshare->cond, &cshare->mutex);
- }
-
- /*
- If the writer was removed from the share while this thread was
- asleep, we need to simulate an EOF condition. The writer cannot
- reset the share variables as they might still be in use by readers
- of the last block. When we awake here then because the last
- joining thread signalled us. If the writer is not the last, it
- will not signal. So it is safe to clear the buffer here.
- */
- if (!cshare->read_end || (cshare->pos_in_file < pos))
- {
- DBUG_PRINT("io_cache_share", ("reader found writer removed. EOF"));
- cshare->read_end= cshare->buffer; /* Empty buffer. */
- cshare->error= 0; /* EOF is not an error. */
- }
- }
- else
- {
- /*
- There are read caches only. The last thread arriving in
- lock_io_cache() continues with a locked cache and reads the block.
- */
- if (!cshare->running_threads)
- {
- DBUG_PRINT("io_cache_share", ("last thread joined, going to read"));
- /* Stay locked. Leave the lock later by unlock_io_cache(). */
- DBUG_RETURN(1);
- }
-
- /*
- All other threads wait until the requested block is read by the
- last thread arriving. Another reason to stop waiting is the
- removal of a thread. If this leads to all threads being in the
- lock, we have to continue also. The first of the awaken threads
- will then do the read.
- */
- while ((!cshare->read_end || (cshare->pos_in_file < pos)) &&
- cshare->running_threads)
- {
- DBUG_PRINT("io_cache_share", ("reader waits in lock"));
- mysql_cond_wait(&cshare->cond, &cshare->mutex);
- }
-
- /* If the block is not yet read, continue with a locked cache and read. */
- if (!cshare->read_end || (cshare->pos_in_file < pos))
- {
- DBUG_PRINT("io_cache_share", ("reader awoke, going to read"));
- /* Stay locked. Leave the lock later by unlock_io_cache(). */
- DBUG_RETURN(1);
- }
-
- /* Another thread did read the block already. */
- }
- DBUG_PRINT("io_cache_share", ("reader awoke, going to process %u bytes",
- (uint) (cshare->read_end ? (size_t)
- (cshare->read_end - cshare->buffer) :
- 0)));
-
- /*
- Leave the lock. Do not call unlock_io_cache() later. The thread that
- filled the buffer did this and marked all threads as running.
- */
- mysql_mutex_unlock(&cshare->mutex);
- DBUG_RETURN(0);
-}
-
-
-/*
- Unlock IO cache.
-
- SYNOPSIS
- unlock_io_cache()
- cache The cache of the thread leaving the lock.
-
- NOTE
- This is called by the thread that filled the buffer. It marks all
- threads as running and awakes them. This must not be done by any
- other thread.
-
- Do not signal cond_writer. Either there is no writer or the writer
- is the only one who can call this function.
-
- The reason for resetting running_threads to total_threads before
- waking all other threads is that it could be possible that this
- thread is so fast with processing the buffer that it enters the lock
- before even one other thread has left it. If every awoken thread
- would increase running_threads by one, this thread could think that
- he is again the last to join and would not wait for the other
- threads to process the data.
-
- RETURN
- void
-*/
-
-static void unlock_io_cache(IO_CACHE *cache)
-{
- IO_CACHE_SHARE *cshare= cache->share;
- DBUG_ENTER("unlock_io_cache");
- DBUG_PRINT("io_cache_share", ("%s: 0x%lx pos: %lu running: %u",
- (cache == cshare->source_cache) ?
- "writer" : "reader",
- (long) cache, (ulong) cshare->pos_in_file,
- cshare->total_threads));
-
- cshare->running_threads= cshare->total_threads;
- mysql_cond_broadcast(&cshare->cond);
- mysql_mutex_unlock(&cshare->mutex);
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Read from IO_CACHE when it is shared between several threads.
-
- SYNOPSIS
- _my_b_read_r()
- cache IO_CACHE pointer
- Buffer Buffer to retrieve count bytes from file
- Count Number of bytes to read into Buffer
-
- NOTE
- This function is only called from the my_b_read() macro when there
- isn't enough characters in the buffer to satisfy the request.
-
- IMPLEMENTATION
-
- It works as follows: when a thread tries to read from a file (that
- is, after using all the data from the (shared) buffer), it just
- hangs on lock_io_cache(), waiting for other threads. When the very
- last thread attempts a read, lock_io_cache() returns 1, the thread
- does actual IO and unlock_io_cache(), which signals all the waiting
- threads that data is in the buffer.
-
- WARNING
-
- When changing this function, be careful with handling file offsets
- (end-of_file, pos_in_file). Do not cast them to possibly smaller
- types than my_off_t unless you can be sure that their value fits.
- Same applies to differences of file offsets. (Bug #11527)
-
- When changing this function, check _my_b_read(). It might need the
- same change.
-
- RETURN
- 0 we succeeded in reading all data
- 1 Error: can't read requested characters
-*/
-
-int _my_b_read_r(register IO_CACHE *cache, uchar *Buffer, size_t Count)
-{
- my_off_t pos_in_file;
- size_t length, diff_length, left_length;
- IO_CACHE_SHARE *cshare= cache->share;
- DBUG_ENTER("_my_b_read_r");
-
- if ((left_length= (size_t) (cache->read_end - cache->read_pos)))
- {
- DBUG_ASSERT(Count >= left_length); /* User is not using my_b_read() */
- memcpy(Buffer, cache->read_pos, left_length);
- Buffer+= left_length;
- Count-= left_length;
- }
- while (Count)
- {
- size_t cnt, len;
-
- pos_in_file= cache->pos_in_file + (cache->read_end - cache->buffer);
- diff_length= (size_t) (pos_in_file & (IO_SIZE-1));
- length=IO_ROUND_UP(Count+diff_length)-diff_length;
- length= ((length <= cache->read_length) ?
- length + IO_ROUND_DN(cache->read_length - length) :
- length - IO_ROUND_UP(length - cache->read_length));
- if (cache->type != READ_FIFO &&
- (length > (cache->end_of_file - pos_in_file)))
- length= (size_t) (cache->end_of_file - pos_in_file);
- if (length == 0)
- {
- cache->error= (int) left_length;
- DBUG_RETURN(1);
- }
- if (lock_io_cache(cache, pos_in_file))
- {
- /* With a synchronized write/read cache we won't come here... */
- DBUG_ASSERT(!cshare->source_cache);
- /*
- ... unless the writer has gone before this thread entered the
- lock. Simulate EOF in this case. It can be distinguished by
- cache->file.
- */
- if (cache->file < 0)
- len= 0;
- else
- {
- /*
- Whenever a function which operates on IO_CACHE flushes/writes
- some part of the IO_CACHE to disk it will set the property
- "seek_not_done" to indicate this to other functions operating
- on the IO_CACHE.
- */
- if (cache->seek_not_done)
- {
- if (mysql_file_seek(cache->file, pos_in_file, MY_SEEK_SET, MYF(0))
- == MY_FILEPOS_ERROR)
- {
- cache->error= -1;
- unlock_io_cache(cache);
- DBUG_RETURN(1);
- }
- }
- len= mysql_file_read(cache->file, cache->buffer, length, cache->myflags);
- }
- DBUG_PRINT("io_cache_share", ("read %lu bytes", (ulong) len));
-
- cache->read_end= cache->buffer + (len == (size_t) -1 ? 0 : len);
- cache->error= (len == length ? 0 : (int) len);
- cache->pos_in_file= pos_in_file;
-
- /* Copy important values to the share. */
- cshare->error= cache->error;
- cshare->read_end= cache->read_end;
- cshare->pos_in_file= pos_in_file;
-
- /* Mark all threads as running and wake them. */
- unlock_io_cache(cache);
- }
- else
- {
- /*
- With a synchronized write/read cache readers always come here.
- Copy important values from the share.
- */
- cache->error= cshare->error;
- cache->read_end= cshare->read_end;
- cache->pos_in_file= cshare->pos_in_file;
-
- len= ((cache->error == -1) ? (size_t) -1 :
- (size_t) (cache->read_end - cache->buffer));
- }
- cache->read_pos= cache->buffer;
- cache->seek_not_done= 0;
- if (len == 0 || len == (size_t) -1)
- {
- DBUG_PRINT("io_cache_share", ("reader error. len %lu left %lu",
- (ulong) len, (ulong) left_length));
- cache->error= (int) left_length;
- DBUG_RETURN(1);
- }
- cnt= (len > Count) ? Count : len;
- memcpy(Buffer, cache->read_pos, cnt);
- Count -= cnt;
- Buffer+= cnt;
- left_length+= cnt;
- cache->read_pos+= cnt;
- }
- DBUG_RETURN(0);
-}
-
-
-/*
- Copy data from write cache to read cache.
-
- SYNOPSIS
- copy_to_read_buffer()
- write_cache The write cache.
- write_buffer The source of data, mostly the cache buffer.
- write_length The number of bytes to copy.
-
- NOTE
- The write thread will wait for all read threads to join the cache
- lock. Then it copies the data over and wakes the read threads.
-
- RETURN
- void
-*/
-
-static void copy_to_read_buffer(IO_CACHE *write_cache,
- const uchar *write_buffer, size_t write_length)
-{
- IO_CACHE_SHARE *cshare= write_cache->share;
-
- DBUG_ASSERT(cshare->source_cache == write_cache);
- /*
- write_length is usually less or equal to buffer_length.
- It can be bigger if _my_b_write() is called with a big length.
- */
- while (write_length)
- {
- size_t copy_length= min(write_length, write_cache->buffer_length);
- int __attribute__((unused)) rc;
-
- rc= lock_io_cache(write_cache, write_cache->pos_in_file);
- /* The writing thread does always have the lock when it awakes. */
- DBUG_ASSERT(rc);
-
- memcpy(cshare->buffer, write_buffer, copy_length);
-
- cshare->error= 0;
- cshare->read_end= cshare->buffer + copy_length;
- cshare->pos_in_file= write_cache->pos_in_file;
-
- /* Mark all threads as running and wake them. */
- unlock_io_cache(write_cache);
-
- write_buffer+= copy_length;
- write_length-= copy_length;
- }
-}
-
-
-/*
- Do sequential read from the SEQ_READ_APPEND cache.
-
- We do this in three stages:
- - first read from info->buffer
- - then if there are still data to read, try the file descriptor
- - afterwards, if there are still data to read, try append buffer
-
- RETURNS
- 0 Success
- 1 Failed to read
-*/
-
-int _my_b_seq_read(register IO_CACHE *info, uchar *Buffer, size_t Count)
-{
- size_t length, diff_length, left_length, save_count, max_length;
- my_off_t pos_in_file;
- save_count=Count;
-
- /* first, read the regular buffer */
- if ((left_length=(size_t) (info->read_end-info->read_pos)))
- {
- DBUG_ASSERT(Count > left_length); /* User is not using my_b_read() */
- memcpy(Buffer,info->read_pos, left_length);
- Buffer+=left_length;
- Count-=left_length;
- }
- lock_append_buffer(info);
-
- /* pos_in_file always point on where info->buffer was read */
- if ((pos_in_file=info->pos_in_file +
- (size_t) (info->read_end - info->buffer)) >= info->end_of_file)
- goto read_append_buffer;
-
- /*
- With read-append cache we must always do a seek before we read,
- because the write could have moved the file pointer astray
- */
- if (mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0)) == MY_FILEPOS_ERROR)
- {
- info->error= -1;
- unlock_append_buffer(info);
- return (1);
- }
- info->seek_not_done=0;
-
- diff_length= (size_t) (pos_in_file & (IO_SIZE-1));
-
- /* now the second stage begins - read from file descriptor */
- if (Count >= (size_t) (IO_SIZE+(IO_SIZE-diff_length)))
- {
- /* Fill first intern buffer */
- size_t read_length;
-
- length=(Count & (size_t) ~(IO_SIZE-1))-diff_length;
- if ((read_length= mysql_file_read(info->file,Buffer, length,
- info->myflags)) == (size_t) -1)
- {
- info->error= -1;
- unlock_append_buffer(info);
- return 1;
- }
- Count-=read_length;
- Buffer+=read_length;
- pos_in_file+=read_length;
-
- if (read_length != length)
- {
- /*
- We only got part of data; Read the rest of the data from the
- write buffer
- */
- goto read_append_buffer;
- }
- left_length+=length;
- diff_length=0;
- }
-
- max_length= info->read_length-diff_length;
- if (max_length > (info->end_of_file - pos_in_file))
- max_length= (size_t) (info->end_of_file - pos_in_file);
- if (!max_length)
- {
- if (Count)
- goto read_append_buffer;
- length=0; /* Didn't read any more chars */
- }
- else
- {
- length= mysql_file_read(info->file,info->buffer, max_length, info->myflags);
- if (length == (size_t) -1)
- {
- info->error= -1;
- unlock_append_buffer(info);
- return 1;
- }
- if (length < Count)
- {
- memcpy(Buffer, info->buffer, length);
- Count -= length;
- Buffer += length;
-
- /*
- added the line below to make
- DBUG_ASSERT(pos_in_file==info->end_of_file) pass.
- otherwise this does not appear to be needed
- */
- pos_in_file += length;
- goto read_append_buffer;
- }
- }
- unlock_append_buffer(info);
- info->read_pos=info->buffer+Count;
- info->read_end=info->buffer+length;
- info->pos_in_file=pos_in_file;
- memcpy(Buffer,info->buffer,(size_t) Count);
- return 0;
-
-read_append_buffer:
-
- /*
- Read data from the current write buffer.
- Count should never be == 0 here (The code will work even if count is 0)
- */
-
- {
- /* First copy the data to Count */
- size_t len_in_buff = (size_t) (info->write_pos - info->append_read_pos);
- size_t copy_len;
- size_t transfer_len;
-
- DBUG_ASSERT(info->append_read_pos <= info->write_pos);
- /*
- TODO: figure out if the assert below is needed or correct.
- */
- DBUG_ASSERT(pos_in_file == info->end_of_file);
- copy_len=min(Count, len_in_buff);
- memcpy(Buffer, info->append_read_pos, copy_len);
- info->append_read_pos += copy_len;
- Count -= copy_len;
- if (Count)
- info->error = save_count - Count;
-
- /* Fill read buffer with data from write buffer */
- memcpy(info->buffer, info->append_read_pos,
- (size_t) (transfer_len=len_in_buff - copy_len));
- info->read_pos= info->buffer;
- info->read_end= info->buffer+transfer_len;
- info->append_read_pos=info->write_pos;
- info->pos_in_file=pos_in_file+copy_len;
- info->end_of_file+=len_in_buff;
- }
- unlock_append_buffer(info);
- return Count ? 1 : 0;
-}
-
-
-#ifdef HAVE_AIOWAIT
-
-/*
- Read from the IO_CACHE into a buffer and feed asynchronously
- from disk when needed.
-
- SYNOPSIS
- _my_b_async_read()
- info IO_CACHE pointer
- Buffer Buffer to retrieve count bytes from file
- Count Number of bytes to read into Buffer
-
- RETURN VALUE
- -1 An error has occurred; my_errno is set.
- 0 Success
- 1 An error has occurred; IO_CACHE to error state.
-*/
-
-int _my_b_async_read(register IO_CACHE *info, uchar *Buffer, size_t Count)
-{
- size_t length,read_length,diff_length,left_length,use_length,org_Count;
- size_t max_length;
- my_off_t next_pos_in_file;
- uchar *read_buffer;
-
- memcpy(Buffer,info->read_pos,
- (left_length= (size_t) (info->read_end-info->read_pos)));
- Buffer+=left_length;
- org_Count=Count;
- Count-=left_length;
-
- if (info->inited)
- { /* wait for read block */
- info->inited=0; /* No more block to read */
- my_aiowait(&info->aio_result); /* Wait for outstanding req */
- if (info->aio_result.result.aio_errno)
- {
- if (info->myflags & MY_WME)
- my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
- my_filename(info->file),
- info->aio_result.result.aio_errno);
- my_errno=info->aio_result.result.aio_errno;
- info->error= -1;
- return(1);
- }
- if (! (read_length= (size_t) info->aio_result.result.aio_return) ||
- read_length == (size_t) -1)
- {
- my_errno=0; /* For testing */
- info->error= (read_length == (size_t) -1 ? -1 :
- (int) (read_length+left_length));
- return(1);
- }
- info->pos_in_file+= (size_t) (info->read_end - info->request_pos);
-
- if (info->request_pos != info->buffer)
- info->request_pos=info->buffer;
- else
- info->request_pos=info->buffer+info->read_length;
- info->read_pos=info->request_pos;
- next_pos_in_file=info->aio_read_pos+read_length;
-
- /* Check if pos_in_file is changed
- (_ni_read_cache may have skipped some bytes) */
-
- if (info->aio_read_pos < info->pos_in_file)
- { /* Fix if skipped bytes */
- if (info->aio_read_pos + read_length < info->pos_in_file)
- {
- read_length=0; /* Skip block */
- next_pos_in_file=info->pos_in_file;
- }
- else
- {
- my_off_t offset= (info->pos_in_file - info->aio_read_pos);
- info->pos_in_file=info->aio_read_pos; /* Whe are here */
- info->read_pos=info->request_pos+offset;
- read_length-=offset; /* Bytes left from read_pos */
- }
- }
-#ifndef DBUG_OFF
- if (info->aio_read_pos > info->pos_in_file)
- {
- my_errno=EINVAL;
- return(info->read_length= (size_t) -1);
- }
-#endif
- /* Copy found bytes to buffer */
- length=min(Count,read_length);
- memcpy(Buffer,info->read_pos,(size_t) length);
- Buffer+=length;
- Count-=length;
- left_length+=length;
- info->read_end=info->rc_pos+read_length;
- info->read_pos+=length;
- }
- else
- next_pos_in_file=(info->pos_in_file+ (size_t)
- (info->read_end - info->request_pos));
-
- /* If reading large blocks, or first read or read with skip */
- if (Count)
- {
- if (next_pos_in_file == info->end_of_file)
- {
- info->error=(int) (read_length+left_length);
- return 1;
- }
-
- if (mysql_file_seek(info->file, next_pos_in_file, MY_SEEK_SET, MYF(0))
- == MY_FILEPOS_ERROR)
- {
- info->error= -1;
- return (1);
- }
-
- read_length=IO_SIZE*2- (size_t) (next_pos_in_file & (IO_SIZE-1));
- if (Count < read_length)
- { /* Small block, read to cache */
- if ((read_length=mysql_file_read(info->file,info->request_pos,
- read_length, info->myflags)) == (size_t) -1)
- return info->error= -1;
- use_length=min(Count,read_length);
- memcpy(Buffer,info->request_pos,(size_t) use_length);
- info->read_pos=info->request_pos+Count;
- info->read_end=info->request_pos+read_length;
- info->pos_in_file=next_pos_in_file; /* Start of block in cache */
- next_pos_in_file+=read_length;
-
- if (Count != use_length)
- { /* Didn't find hole block */
- if (info->myflags & (MY_WME | MY_FAE | MY_FNABP) && Count != org_Count)
- my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
- my_filename(info->file),my_errno);
- info->error=(int) (read_length+left_length);
- return 1;
- }
- }
- else
- { /* Big block, don't cache it */
- if ((read_length= mysql_file_read(info->file, Buffer, Count,info->myflags))
- != Count)
- {
- info->error= read_length == (size_t) -1 ? -1 : read_length+left_length;
- return 1;
- }
- info->read_pos=info->read_end=info->request_pos;
- info->pos_in_file=(next_pos_in_file+=Count);
- }
- }
-
- /* Read next block with asyncronic io */
- diff_length=(next_pos_in_file & (IO_SIZE-1));
- max_length= info->read_length - diff_length;
- if (max_length > info->end_of_file - next_pos_in_file)
- max_length= (size_t) (info->end_of_file - next_pos_in_file);
-
- if (info->request_pos != info->buffer)
- read_buffer=info->buffer;
- else
- read_buffer=info->buffer+info->read_length;
- info->aio_read_pos=next_pos_in_file;
- if (max_length)
- {
- info->aio_result.result.aio_errno=AIO_INPROGRESS; /* Marker for test */
- DBUG_PRINT("aioread",("filepos: %ld length: %lu",
- (ulong) next_pos_in_file, (ulong) max_length));
- if (aioread(info->file,read_buffer, max_length,
- (my_off_t) next_pos_in_file,MY_SEEK_SET,
- &info->aio_result.result))
- { /* Skip async io */
- my_errno=errno;
- DBUG_PRINT("error",("got error: %d, aio_result: %d from aioread, async skipped",
- errno, info->aio_result.result.aio_errno));
- if (info->request_pos != info->buffer)
- {
- bmove(info->buffer,info->request_pos,
- (size_t) (info->read_end - info->read_pos));
- info->request_pos=info->buffer;
- info->read_pos-=info->read_length;
- info->read_end-=info->read_length;
- }
- info->read_length=info->buffer_length; /* Use hole buffer */
- info->read_function=_my_b_read; /* Use normal IO_READ next */
- }
- else
- info->inited=info->aio_result.pending=1;
- }
- return 0; /* Block read, async in use */
-} /* _my_b_async_read */
-#endif
-
-
-/* Read one byte when buffer is empty */
-
-int _my_b_get(IO_CACHE *info)
-{
- uchar buff;
- IO_CACHE_CALLBACK pre_read,post_read;
- if ((pre_read = info->pre_read))
- (*pre_read)(info);
- if ((*(info)->read_function)(info,&buff,1))
- return my_b_EOF;
- if ((post_read = info->post_read))
- (*post_read)(info);
- return (int) (uchar) buff;
-}
-
-/*
- Write a byte buffer to IO_CACHE and flush to disk
- if IO_CACHE is full.
-
- RETURN VALUE
- 1 On error on write
- 0 On success
- -1 On error; my_errno contains error code.
-*/
-
-int _my_b_write(register IO_CACHE *info, const uchar *Buffer, size_t Count)
-{
- size_t rest_length,length;
-
- if (info->pos_in_file+info->buffer_length > info->end_of_file)
- {
- my_errno=errno=EFBIG;
- return info->error = -1;
- }
-
- rest_length= (size_t) (info->write_end - info->write_pos);
- memcpy(info->write_pos,Buffer,(size_t) rest_length);
- Buffer+=rest_length;
- Count-=rest_length;
- info->write_pos+=rest_length;
-
- if (my_b_flush_io_cache(info,1))
- return 1;
- if (Count >= IO_SIZE)
- { /* Fill first intern buffer */
- length=Count & (size_t) ~(IO_SIZE-1);
- if (info->seek_not_done)
- {
- /*
- Whenever a function which operates on IO_CACHE flushes/writes
- some part of the IO_CACHE to disk it will set the property
- "seek_not_done" to indicate this to other functions operating
- on the IO_CACHE.
- */
- if (mysql_file_seek(info->file, info->pos_in_file, MY_SEEK_SET, MYF(0)))
- {
- info->error= -1;
- return (1);
- }
- info->seek_not_done=0;
- }
- if (mysql_file_write(info->file, Buffer, length, info->myflags | MY_NABP))
- return info->error= -1;
-
- /*
- In case of a shared I/O cache with a writer we normally do direct
- write cache to read cache copy. Simulate this here by direct
- caller buffer to read cache copy. Do it after the write so that
- the cache readers actions on the flushed part can go in parallel
- with the write of the extra stuff. copy_to_read_buffer()
- synchronizes writer and readers so that after this call the
- readers can act on the extra stuff while the writer can go ahead
- and prepare the next output. copy_to_read_buffer() relies on
- info->pos_in_file.
- */
- if (info->share)
- copy_to_read_buffer(info, Buffer, length);
-
- Count-=length;
- Buffer+=length;
- info->pos_in_file+=length;
- }
- memcpy(info->write_pos,Buffer,(size_t) Count);
- info->write_pos+=Count;
- return 0;
-}
-
-
-/*
- Append a block to the write buffer.
- This is done with the buffer locked to ensure that we don't read from
- the write buffer before we are ready with it.
-*/
-
-int my_b_append(register IO_CACHE *info, const uchar *Buffer, size_t Count)
-{
- size_t rest_length,length;
-
- /*
- Assert that we cannot come here with a shared cache. If we do one
- day, we might need to add a call to copy_to_read_buffer().
- */
- DBUG_ASSERT(!info->share);
-
- lock_append_buffer(info);
- rest_length= (size_t) (info->write_end - info->write_pos);
- if (Count <= rest_length)
- goto end;
- memcpy(info->write_pos, Buffer, rest_length);
- Buffer+=rest_length;
- Count-=rest_length;
- info->write_pos+=rest_length;
- if (my_b_flush_io_cache(info,0))
- {
- unlock_append_buffer(info);
- return 1;
- }
- if (Count >= IO_SIZE)
- { /* Fill first intern buffer */
- length=Count & (size_t) ~(IO_SIZE-1);
- if (mysql_file_write(info->file,Buffer, length, info->myflags | MY_NABP))
- {
- unlock_append_buffer(info);
- return info->error= -1;
- }
- Count-=length;
- Buffer+=length;
- info->end_of_file+=length;
- }
-
-end:
- memcpy(info->write_pos,Buffer,(size_t) Count);
- info->write_pos+=Count;
- unlock_append_buffer(info);
- return 0;
-}
-
-
-int my_b_safe_write(IO_CACHE *info, const uchar *Buffer, size_t Count)
-{
- /*
- Sasha: We are not writing this with the ? operator to avoid hitting
- a possible compiler bug. At least gcc 2.95 cannot deal with
- several layers of ternary operators that evaluated comma(,) operator
- expressions inside - I do have a test case if somebody wants it
- */
- if (info->type == SEQ_READ_APPEND)
- return my_b_append(info, Buffer, Count);
- return my_b_write(info, Buffer, Count);
-}
-
-
-/*
- Write a block to disk where part of the data may be inside the record
- buffer. As all write calls to the data goes through the cache,
- we will never get a seek over the end of the buffer
-*/
-
-int my_block_write(register IO_CACHE *info, const uchar *Buffer, size_t Count,
- my_off_t pos)
-{
- size_t length;
- int error=0;
-
- /*
- Assert that we cannot come here with a shared cache. If we do one
- day, we might need to add a call to copy_to_read_buffer().
- */
- DBUG_ASSERT(!info->share);
-
- if (pos < info->pos_in_file)
- {
- /* Of no overlap, write everything without buffering */
- if (pos + Count <= info->pos_in_file)
- return mysql_file_pwrite(info->file, Buffer, Count, pos,
- info->myflags | MY_NABP);
- /* Write the part of the block that is before buffer */
- length= (uint) (info->pos_in_file - pos);
- if (mysql_file_pwrite(info->file, Buffer, length, pos, info->myflags | MY_NABP))
- info->error= error= -1;
- Buffer+=length;
- pos+= length;
- Count-= length;
-#ifndef HAVE_PREAD
- info->seek_not_done=1;
-#endif
- }
-
- /* Check if we want to write inside the used part of the buffer.*/
- length= (size_t) (info->write_end - info->buffer);
- if (pos < info->pos_in_file + length)
- {
- size_t offset= (size_t) (pos - info->pos_in_file);
- length-=offset;
- if (length > Count)
- length=Count;
- memcpy(info->buffer+offset, Buffer, length);
- Buffer+=length;
- Count-= length;
- /* Fix length of buffer if the new data was larger */
- if (info->buffer+length > info->write_pos)
- info->write_pos=info->buffer+length;
- if (!Count)
- return (error);
- }
- /* Write at the end of the current buffer; This is the normal case */
- if (_my_b_write(info, Buffer, Count))
- error= -1;
- return error;
-}
-
-
- /* Flush write cache */
-
-#define LOCK_APPEND_BUFFER if (need_append_buffer_lock) \
- lock_append_buffer(info);
-#define UNLOCK_APPEND_BUFFER if (need_append_buffer_lock) \
- unlock_append_buffer(info);
-
-int my_b_flush_io_cache(IO_CACHE *info,
- int need_append_buffer_lock __attribute__((unused)))
-{
- size_t length;
- my_off_t pos_in_file;
- my_bool append_cache= (info->type == SEQ_READ_APPEND);
- DBUG_ENTER("my_b_flush_io_cache");
- DBUG_PRINT("enter", ("cache: 0x%lx", (long) info));
-
- if (!append_cache)
- need_append_buffer_lock= 0;
-
- if (info->type == WRITE_CACHE || append_cache)
- {
- if (info->file == -1)
- {
- if (real_open_cached_file(info))
- DBUG_RETURN((info->error= -1));
- }
- LOCK_APPEND_BUFFER;
-
- if ((length=(size_t) (info->write_pos - info->write_buffer)))
- {
- /*
- In case of a shared I/O cache with a writer we do direct write
- cache to read cache copy. Do it before the write here so that
- the readers can work in parallel with the write.
- copy_to_read_buffer() relies on info->pos_in_file.
- */
- if (info->share)
- copy_to_read_buffer(info, info->write_buffer, length);
-
- pos_in_file=info->pos_in_file;
- /*
- If we have append cache, we always open the file with
- O_APPEND which moves the pos to EOF automatically on every write
- */
- if (!append_cache && info->seek_not_done)
- { /* File touched, do seek */
- if (mysql_file_seek(info->file, pos_in_file, MY_SEEK_SET, MYF(0)) ==
- MY_FILEPOS_ERROR)
- {
- UNLOCK_APPEND_BUFFER;
- DBUG_RETURN((info->error= -1));
- }
- if (!append_cache)
- info->seek_not_done=0;
- }
- if (!append_cache)
- info->pos_in_file+=length;
- info->write_end= (info->write_buffer+info->buffer_length-
- ((pos_in_file+length) & (IO_SIZE-1)));
-
- if (mysql_file_write(info->file,info->write_buffer,length,
- info->myflags | MY_NABP))
- info->error= -1;
- else
- info->error= 0;
- if (!append_cache)
- {
- set_if_bigger(info->end_of_file,(pos_in_file+length));
- }
- else
- {
- info->end_of_file+=(info->write_pos-info->append_read_pos);
- DBUG_ASSERT(info->end_of_file == mysql_file_tell(info->file, MYF(0)));
- }
-
- info->append_read_pos=info->write_pos=info->write_buffer;
- ++info->disk_writes;
- UNLOCK_APPEND_BUFFER;
- DBUG_RETURN(info->error);
- }
- }
-#ifdef HAVE_AIOWAIT
- else if (info->type != READ_NET)
- {
- my_aiowait(&info->aio_result); /* Wait for outstanding req */
- info->inited=0;
- }
-#endif
- UNLOCK_APPEND_BUFFER;
- DBUG_RETURN(0);
-}
-
-/*
- Free an IO_CACHE object
-
- SYNOPSOS
- end_io_cache()
- info IO_CACHE Handle to free
-
- NOTES
- It's currently safe to call this if one has called init_io_cache()
- on the 'info' object, even if init_io_cache() failed.
- This function is also safe to call twice with the same handle.
-
- RETURN
- 0 ok
- # Error
-*/
-
-int end_io_cache(IO_CACHE *info)
-{
- int error=0;
- IO_CACHE_CALLBACK pre_close;
- DBUG_ENTER("end_io_cache");
- DBUG_PRINT("enter",("cache: 0x%lx", (ulong) info));
-
- /*
- Every thread must call remove_io_thread(). The last one destroys
- the share elements.
- */
- DBUG_ASSERT(!info->share || !info->share->total_threads);
-
- if ((pre_close=info->pre_close))
- {
- (*pre_close)(info);
- info->pre_close= 0;
- }
- if (info->alloced_buffer)
- {
- info->alloced_buffer=0;
- if (info->file != -1) /* File doesn't exist */
- error= my_b_flush_io_cache(info,1);
- my_free(info->buffer);
- info->buffer=info->read_pos=(uchar*) 0;
- }
- if (info->type == SEQ_READ_APPEND)
- {
- /* Destroy allocated mutex */
- info->type= TYPE_NOT_SET;
- mysql_mutex_destroy(&info->append_buffer_lock);
- }
- DBUG_RETURN(error);
-} /* end_io_cache */
-
-
-/**********************************************************************
- Testing of MF_IOCACHE
-**********************************************************************/
-
-#ifdef MAIN
-
-#include <my_dir.h>
-
-void die(const char* fmt, ...)
-{
- va_list va_args;
- va_start(va_args,fmt);
- fprintf(stderr,"Error:");
- vfprintf(stderr, fmt,va_args);
- fprintf(stderr,", errno=%d\n", errno);
- exit(1);
-}
-
-int open_file(const char* fname, IO_CACHE* info, int cache_size)
-{
- int fd;
- if ((fd=my_open(fname,O_CREAT | O_RDWR,MYF(MY_WME))) < 0)
- die("Could not open %s", fname);
- if (init_io_cache(info, fd, cache_size, SEQ_READ_APPEND, 0,0,MYF(MY_WME)))
- die("failed in init_io_cache()");
- return fd;
-}
-
-void close_file(IO_CACHE* info)
-{
- end_io_cache(info);
- my_close(info->file, MYF(MY_WME));
-}
-
-int main(int argc, char** argv)
-{
- IO_CACHE sra_cache; /* SEQ_READ_APPEND */
- MY_STAT status;
- const char* fname="/tmp/iocache.test";
- int cache_size=16384;
- char llstr_buf[22];
- int max_block,total_bytes=0;
- int i,num_loops=100,error=0;
- char *p;
- char* block, *block_end;
- MY_INIT(argv[0]);
- max_block = cache_size*3;
- if (!(block=(char*)my_malloc(max_block,MYF(MY_WME))))
- die("Not enough memory to allocate test block");
- block_end = block + max_block;
- for (p = block,i=0; p < block_end;i++)
- {
- *p++ = (char)i;
- }
- if (my_stat(fname,&status, MYF(0)) &&
- my_delete(fname,MYF(MY_WME)))
- {
- die("Delete of %s failed, aborting", fname);
- }
- open_file(fname,&sra_cache, cache_size);
- for (i = 0; i < num_loops; i++)
- {
- char buf[4];
- int block_size = abs(rand() % max_block);
- int4store(buf, block_size);
- if (my_b_append(&sra_cache,buf,4) ||
- my_b_append(&sra_cache, block, block_size))
- die("write failed");
- total_bytes += 4+block_size;
- }
- close_file(&sra_cache);
- my_free(block);
- if (!my_stat(fname,&status,MYF(MY_WME)))
- die("%s failed to stat, but I had just closed it,\
- wonder how that happened");
- printf("Final size of %s is %s, wrote %d bytes\n",fname,
- llstr(status.st_size,llstr_buf),
- total_bytes);
- my_delete(fname, MYF(MY_WME));
- /* check correctness of tests */
- if (total_bytes != status.st_size)
- {
- fprintf(stderr,"Not the same number of bytes acutally in file as bytes \
-supposedly written\n");
- error=1;
- }
- exit(error);
- return 0;
-}
-#endif
diff --git a/dep/mysqllite/mysys/mf_iocache2.c b/dep/mysqllite/mysys/mf_iocache2.c
deleted file mode 100644
index 8962a037da0..00000000000
--- a/dep/mysqllite/mysys/mf_iocache2.c
+++ /dev/null
@@ -1,472 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- More functions to be used with IO_CACHE files
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <stdarg.h>
-#include <m_ctype.h>
-
-/*
- Copy contents of an IO_CACHE to a file.
-
- SYNOPSIS
- my_b_copy_to_file()
- cache IO_CACHE to copy from
- file File to copy to
-
- DESCRIPTION
- Copy the contents of the cache to the file. The cache will be
- re-inited to a read cache and will read from the beginning of the
- cache.
-
- If a failure to write fully occurs, the cache is only copied
- partially.
-
- TODO
- Make this function solid by handling partial reads from the cache
- in a correct manner: it should be atomic.
-
- RETURN VALUE
- 0 All OK
- 1 An error occured
-*/
-int
-my_b_copy_to_file(IO_CACHE *cache, FILE *file)
-{
- size_t bytes_in_cache;
- DBUG_ENTER("my_b_copy_to_file");
-
- /* Reinit the cache to read from the beginning of the cache */
- if (reinit_io_cache(cache, READ_CACHE, 0L, FALSE, FALSE))
- DBUG_RETURN(1);
- bytes_in_cache= my_b_bytes_in_cache(cache);
- do
- {
- if (my_fwrite(file, cache->read_pos, bytes_in_cache,
- MYF(MY_WME | MY_NABP)) == (size_t) -1)
- DBUG_RETURN(1);
- cache->read_pos= cache->read_end;
- } while ((bytes_in_cache= my_b_fill(cache)));
- DBUG_RETURN(0);
-}
-
-
-my_off_t my_b_append_tell(IO_CACHE* info)
-{
- /*
- Sometimes we want to make sure that the variable is not put into
- a register in debugging mode so we can see its value in the core
- */
-#ifndef DBUG_OFF
-# define dbug_volatile volatile
-#else
-# define dbug_volatile
-#endif
-
- /*
- Prevent optimizer from putting res in a register when debugging
- we need this to be able to see the value of res when the assert fails
- */
- dbug_volatile my_off_t res;
-
- /*
- We need to lock the append buffer mutex to keep flush_io_cache()
- from messing with the variables that we need in order to provide the
- answer to the question.
- */
- mysql_mutex_lock(&info->append_buffer_lock);
-
-#ifndef DBUG_OFF
- /*
- Make sure EOF is where we think it is. Note that we cannot just use
- my_tell() because we have a reader thread that could have left the
- file offset in a non-EOF location
- */
- {
- volatile my_off_t save_pos;
- save_pos = my_tell(info->file,MYF(0));
- my_seek(info->file,(my_off_t)0,MY_SEEK_END,MYF(0));
- /*
- Save the value of my_tell in res so we can see it when studying coredump
- */
- DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer)
- == (res=my_tell(info->file,MYF(0))));
- my_seek(info->file,save_pos,MY_SEEK_SET,MYF(0));
- }
-#endif
- res = info->end_of_file + (info->write_pos-info->append_read_pos);
- mysql_mutex_unlock(&info->append_buffer_lock);
- return res;
-}
-
-my_off_t my_b_safe_tell(IO_CACHE *info)
-{
- if (unlikely(info->type == SEQ_READ_APPEND))
- return my_b_append_tell(info);
- return my_b_tell(info);
-}
-
-/*
- Make next read happen at the given position
- For write cache, make next write happen at the given position
-*/
-
-void my_b_seek(IO_CACHE *info,my_off_t pos)
-{
- my_off_t offset;
- DBUG_ENTER("my_b_seek");
- DBUG_PRINT("enter",("pos: %lu", (ulong) pos));
-
- /*
- TODO:
- Verify that it is OK to do seek in the non-append
- area in SEQ_READ_APPEND cache
- a) see if this always works
- b) see if there is a better way to make it work
- */
- if (info->type == SEQ_READ_APPEND)
- (void) flush_io_cache(info);
-
- offset=(pos - info->pos_in_file);
-
- if (info->type == READ_CACHE || info->type == SEQ_READ_APPEND)
- {
- /* TODO: explain why this works if pos < info->pos_in_file */
- if ((ulonglong) offset < (ulonglong) (info->read_end - info->buffer))
- {
- /* The read is in the current buffer; Reuse it */
- info->read_pos = info->buffer + offset;
- DBUG_VOID_RETURN;
- }
- else
- {
- /* Force a new read on next my_b_read */
- info->read_pos=info->read_end=info->buffer;
- }
- }
- else if (info->type == WRITE_CACHE)
- {
- /* If write is in current buffer, reuse it */
- if ((ulonglong) offset <
- (ulonglong) (info->write_end - info->write_buffer))
- {
- info->write_pos = info->write_buffer + offset;
- DBUG_VOID_RETURN;
- }
- (void) flush_io_cache(info);
- /* Correct buffer end so that we write in increments of IO_SIZE */
- info->write_end=(info->write_buffer+info->buffer_length-
- (pos & (IO_SIZE-1)));
- }
- info->pos_in_file=pos;
- info->seek_not_done=1;
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Fill buffer of the cache.
-
- NOTES
- This assumes that you have already used all characters in the CACHE,
- independent of the read_pos value!
-
- RETURN
- 0 On error or EOF (info->error = -1 on error)
- # Number of characters
-*/
-
-
-size_t my_b_fill(IO_CACHE *info)
-{
- my_off_t pos_in_file=(info->pos_in_file+
- (size_t) (info->read_end - info->buffer));
- size_t diff_length, length, max_length;
-
- if (info->seek_not_done)
- { /* File touched, do seek */
- if (my_seek(info->file,pos_in_file,MY_SEEK_SET,MYF(0)) ==
- MY_FILEPOS_ERROR)
- {
- info->error= 0;
- return 0;
- }
- info->seek_not_done=0;
- }
- diff_length=(size_t) (pos_in_file & (IO_SIZE-1));
- max_length=(info->read_length-diff_length);
- if (max_length >= (info->end_of_file - pos_in_file))
- max_length= (size_t) (info->end_of_file - pos_in_file);
-
- if (!max_length)
- {
- info->error= 0;
- return 0; /* EOF */
- }
- if ((length= my_read(info->file,info->buffer,max_length,
- info->myflags)) == (size_t) -1)
- {
- info->error= -1;
- return 0;
- }
- info->read_pos=info->buffer;
- info->read_end=info->buffer+length;
- info->pos_in_file=pos_in_file;
- return length;
-}
-
-
-/*
- Read a string ended by '\n' into a buffer of 'max_length' size.
- Returns number of characters read, 0 on error.
- last byte is set to '\0'
- If buffer is full then to[max_length-1] will be set to \0.
-*/
-
-size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length)
-{
- char *start = to;
- size_t length;
- max_length--; /* Save place for end \0 */
-
- /* Calculate number of characters in buffer */
- if (!(length= my_b_bytes_in_cache(info)) &&
- !(length= my_b_fill(info)))
- return 0;
-
- for (;;)
- {
- uchar *pos, *end;
- if (length > max_length)
- length=max_length;
- for (pos=info->read_pos,end=pos+length ; pos < end ;)
- {
- if ((*to++ = *pos++) == '\n')
- {
- info->read_pos=pos;
- *to='\0';
- return (size_t) (to-start);
- }
- }
- if (!(max_length-=length))
- {
- /* Found enough charcters; Return found string */
- info->read_pos=pos;
- *to='\0';
- return (size_t) (to-start);
- }
- if (!(length=my_b_fill(info)))
- return 0;
- }
-}
-
-
-my_off_t my_b_filelength(IO_CACHE *info)
-{
- if (info->type == WRITE_CACHE)
- return my_b_tell(info);
-
- info->seek_not_done= 1;
- return my_seek(info->file, 0L, MY_SEEK_END, MYF(0));
-}
-
-
-/*
- Simple printf version. Supports '%s', '%d', '%u', "%ld" and "%lu"
- Used for logging in MySQL
- returns number of written character, or (size_t) -1 on error
-*/
-
-size_t my_b_printf(IO_CACHE *info, const char* fmt, ...)
-{
- size_t result;
- va_list args;
- va_start(args,fmt);
- result=my_b_vprintf(info, fmt, args);
- va_end(args);
- return result;
-}
-
-
-size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list args)
-{
- size_t out_length= 0;
- uint minimum_width; /* as yet unimplemented */
- uint minimum_width_sign;
- uint precision; /* as yet unimplemented for anything but %b */
- my_bool is_zero_padded;
-
- /*
- Store the location of the beginning of a format directive, for the
- case where we learn we shouldn't have been parsing a format string
- at all, and we don't want to lose the flag/precision/width/size
- information.
- */
- const char* backtrack;
-
- for (; *fmt != '\0'; fmt++)
- {
- /* Copy everything until '%' or end of string */
- const char *start=fmt;
- size_t length;
-
- for (; (*fmt != '\0') && (*fmt != '%'); fmt++) ;
-
- length= (size_t) (fmt - start);
- out_length+=length;
- if (my_b_write(info, (const uchar*) start, length))
- goto err;
-
- if (*fmt == '\0') /* End of format */
- return out_length;
-
- /*
- By this point, *fmt must be a percent; Keep track of this location and
- skip over the percent character.
- */
- DBUG_ASSERT(*fmt == '%');
- backtrack= fmt;
- fmt++;
-
- is_zero_padded= FALSE;
- minimum_width_sign= 1;
- minimum_width= 0;
- precision= 0;
- /* Skip if max size is used (to be compatible with printf) */
-
-process_flags:
- switch (*fmt)
- {
- case '-':
- minimum_width_sign= -1; fmt++; goto process_flags;
- case '0':
- is_zero_padded= TRUE; fmt++; goto process_flags;
- case '#':
- /** @todo Implement "#" conversion flag. */ fmt++; goto process_flags;
- case ' ':
- /** @todo Implement " " conversion flag. */ fmt++; goto process_flags;
- case '+':
- /** @todo Implement "+" conversion flag. */ fmt++; goto process_flags;
- }
-
- if (*fmt == '*')
- {
- precision= (int) va_arg(args, int);
- fmt++;
- }
- else
- {
- while (my_isdigit(&my_charset_latin1, *fmt)) {
- minimum_width=(minimum_width * 10) + (*fmt - '0');
- fmt++;
- }
- }
- minimum_width*= minimum_width_sign;
-
- if (*fmt == '.')
- {
- fmt++;
- if (*fmt == '*') {
- precision= (int) va_arg(args, int);
- fmt++;
- }
- else
- {
- while (my_isdigit(&my_charset_latin1, *fmt)) {
- precision=(precision * 10) + (*fmt - '0');
- fmt++;
- }
- }
- }
-
- if (*fmt == 's') /* String parameter */
- {
- reg2 char *par = va_arg(args, char *);
- size_t length2 = strlen(par);
- /* TODO: implement precision */
- out_length+= length2;
- if (my_b_write(info, (uchar*) par, length2))
- goto err;
- }
- else if (*fmt == 'b') /* Sized buffer parameter, only precision makes sense */
- {
- char *par = va_arg(args, char *);
- out_length+= precision;
- if (my_b_write(info, (uchar*) par, precision))
- goto err;
- }
- else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */
- {
- register int iarg;
- size_t length2;
- char buff[17];
-
- iarg = va_arg(args, int);
- if (*fmt == 'd')
- length2= (size_t) (int10_to_str((long) iarg,buff, -10) - buff);
- else
- length2= (uint) (int10_to_str((long) (uint) iarg,buff,10)- buff);
-
- /* minimum width padding */
- if (minimum_width > length2)
- {
- char *buffz;
-
- buffz= my_alloca(minimum_width - length2);
- if (is_zero_padded)
- memset(buffz, '0', minimum_width - length2);
- else
- memset(buffz, ' ', minimum_width - length2);
- my_b_write(info, buffz, minimum_width - length2);
- my_afree(buffz);
- }
-
- out_length+= length2;
- if (my_b_write(info, (uchar*) buff, length2))
- goto err;
- }
- else if ((*fmt == 'l' && fmt[1] == 'd') || fmt[1] == 'u')
- /* long parameter */
- {
- register long iarg;
- size_t length2;
- char buff[17];
-
- iarg = va_arg(args, long);
- if (*++fmt == 'd')
- length2= (size_t) (int10_to_str(iarg,buff, -10) - buff);
- else
- length2= (size_t) (int10_to_str(iarg,buff,10)- buff);
- out_length+= length2;
- if (my_b_write(info, (uchar*) buff, length2))
- goto err;
- }
- else
- {
- /* %% or unknown code */
- if (my_b_write(info, (uchar*) backtrack, (size_t) (fmt-backtrack)))
- goto err;
- out_length+= fmt-backtrack;
- }
- }
- return out_length;
-
-err:
- return (size_t) -1;
-}
diff --git a/dep/mysqllite/mysys/mf_keycache.c b/dep/mysqllite/mysys/mf_keycache.c
deleted file mode 100644
index 42cdea65f34..00000000000
--- a/dep/mysqllite/mysys/mf_keycache.c
+++ /dev/null
@@ -1,4523 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
- These functions handle keyblock cacheing for ISAM and MyISAM tables.
-
- One cache can handle many files.
- It must contain buffers of the same blocksize.
- init_key_cache() should be used to init cache handler.
-
- The free list (free_block_list) is a stack like structure.
- When a block is freed by free_block(), it is pushed onto the stack.
- When a new block is required it is first tried to pop one from the stack.
- If the stack is empty, it is tried to get a never-used block from the pool.
- If this is empty too, then a block is taken from the LRU ring, flushing it
- to disk, if neccessary. This is handled in find_key_block().
- With the new free list, the blocks can have three temperatures:
- hot, warm and cold (which is free). This is remembered in the block header
- by the enum BLOCK_TEMPERATURE temperature variable. Remembering the
- temperature is neccessary to correctly count the number of warm blocks,
- which is required to decide when blocks are allowed to become hot. Whenever
- a block is inserted to another (sub-)chain, we take the old and new
- temperature into account to decide if we got one more or less warm block.
- blocks_unused is the sum of never used blocks in the pool and of currently
- free blocks. blocks_used is the number of blocks fetched from the pool and
- as such gives the maximum number of in-use blocks at any time.
-*/
-
-/*
- Key Cache Locking
- =================
-
- All key cache locking is done with a single mutex per key cache:
- keycache->cache_lock. This mutex is locked almost all the time
- when executing code in this file (mf_keycache.c).
- However it is released for I/O and some copy operations.
-
- The cache_lock is also released when waiting for some event. Waiting
- and signalling is done via condition variables. In most cases the
- thread waits on its thread->suspend condition variable. Every thread
- has a my_thread_var structure, which contains this variable and a
- '*next' and '**prev' pointer. These pointers are used to insert the
- thread into a wait queue.
-
- A thread can wait for one block and thus be in one wait queue at a
- time only.
-
- Before starting to wait on its condition variable with
- mysql_cond_wait(), the thread enters itself to a specific wait queue
- with link_into_queue() (double linked with '*next' + '**prev') or
- wait_on_queue() (single linked with '*next').
-
- Another thread, when releasing a resource, looks up the waiting thread
- in the related wait queue. It sends a signal with
- mysql_cond_signal() to the waiting thread.
-
- NOTE: Depending on the particular wait situation, either the sending
- thread removes the waiting thread from the wait queue with
- unlink_from_queue() or release_whole_queue() respectively, or the waiting
- thread removes itself.
-
- There is one exception from this locking scheme when one thread wants
- to reuse a block for some other address. This works by first marking
- the block reserved (status= BLOCK_IN_SWITCH) and then waiting for all
- threads that are reading the block to finish. Each block has a
- reference to a condition variable (condvar). It holds a reference to
- the thread->suspend condition variable for the waiting thread (if such
- a thread exists). When that thread is signaled, the reference is
- cleared. The number of readers of a block is registered in
- block->hash_link->requests. See wait_for_readers() / remove_reader()
- for details. This is similar to the above, but it clearly means that
- only one thread can wait for a particular block. There is no queue in
- this case. Strangely enough block->convar is used for waiting for the
- assigned hash_link only. More precisely it is used to wait for all
- requests to be unregistered from the assigned hash_link.
-
- The resize_queue serves two purposes:
- 1. Threads that want to do a resize wait there if in_resize is set.
- This is not used in the server. The server refuses a second resize
- request if one is already active. keycache->in_init is used for the
- synchronization. See set_var.cc.
- 2. Threads that want to access blocks during resize wait here during
- the re-initialization phase.
- When the resize is done, all threads on the queue are signalled.
- Hypothetical resizers can compete for resizing, and read/write
- requests will restart to request blocks from the freshly resized
- cache. If the cache has been resized too small, it is disabled and
- 'can_be_used' is false. In this case read/write requests bypass the
- cache. Since they increment and decrement 'cnt_for_resize_op', the
- next resizer can wait on the queue 'waiting_for_resize_cnt' until all
- I/O finished.
-*/
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <keycache.h>
-#include "my_static.h"
-#include <m_string.h>
-#include <my_bit.h>
-#include <errno.h>
-#include <stdarg.h>
-#include "probes_mysql.h"
-
-/*
- Some compilation flags have been added specifically for this module
- to control the following:
- - not to let a thread to yield the control when reading directly
- from key cache, which might improve performance in many cases;
- to enable this add:
- #define SERIALIZED_READ_FROM_CACHE
- - to set an upper bound for number of threads simultaneously
- using the key cache; this setting helps to determine an optimal
- size for hash table and improve performance when the number of
- blocks in the key cache much less than the number of threads
- accessing it;
- to set this number equal to <N> add
- #define MAX_THREADS <N>
- - to substitute calls of mysql_cond_wait for calls of
- mysql_cond_timedwait (wait with timeout set up);
- this setting should be used only when you want to trap a deadlock
- situation, which theoretically should not happen;
- to set timeout equal to <T> seconds add
- #define KEYCACHE_TIMEOUT <T>
- - to enable the module traps and to send debug information from
- key cache module to a special debug log add:
- #define KEYCACHE_DEBUG
- the name of this debug log file <LOG NAME> can be set through:
- #define KEYCACHE_DEBUG_LOG <LOG NAME>
- if the name is not defined, it's set by default;
- if the KEYCACHE_DEBUG flag is not set up and we are in a debug
- mode, i.e. when ! defined(DBUG_OFF), the debug information from the
- module is sent to the regular debug log.
-
- Example of the settings:
- #define SERIALIZED_READ_FROM_CACHE
- #define MAX_THREADS 100
- #define KEYCACHE_TIMEOUT 1
- #define KEYCACHE_DEBUG
- #define KEYCACHE_DEBUG_LOG "my_key_cache_debug.log"
-*/
-
-#define STRUCT_PTR(TYPE, MEMBER, a) \
- (TYPE *) ((char *) (a) - offsetof(TYPE, MEMBER))
-
-/* types of condition variables */
-#define COND_FOR_REQUESTED 0
-#define COND_FOR_SAVED 1
-#define COND_FOR_READERS 2
-
-typedef mysql_cond_t KEYCACHE_CONDVAR;
-
-/* descriptor of the page in the key cache block buffer */
-struct st_keycache_page
-{
- int file; /* file to which the page belongs to */
- my_off_t filepos; /* position of the page in the file */
-};
-
-/* element in the chain of a hash table bucket */
-struct st_hash_link
-{
- struct st_hash_link *next, **prev; /* to connect links in the same bucket */
- struct st_block_link *block; /* reference to the block for the page: */
- File file; /* from such a file */
- my_off_t diskpos; /* with such an offset */
- uint requests; /* number of requests for the page */
-};
-
-/* simple states of a block */
-#define BLOCK_ERROR 1 /* an error occured when performing file i/o */
-#define BLOCK_READ 2 /* file block is in the block buffer */
-#define BLOCK_IN_SWITCH 4 /* block is preparing to read new page */
-#define BLOCK_REASSIGNED 8 /* blk does not accept requests for old page */
-#define BLOCK_IN_FLUSH 16 /* block is selected for flush */
-#define BLOCK_CHANGED 32 /* block buffer contains a dirty page */
-#define BLOCK_IN_USE 64 /* block is not free */
-#define BLOCK_IN_EVICTION 128 /* block is selected for eviction */
-#define BLOCK_IN_FLUSHWRITE 256 /* block is in write to file */
-#define BLOCK_FOR_UPDATE 512 /* block is selected for buffer modification */
-
-/* page status, returned by find_key_block */
-#define PAGE_READ 0
-#define PAGE_TO_BE_READ 1
-#define PAGE_WAIT_TO_BE_READ 2
-
-/* block temperature determines in which (sub-)chain the block currently is */
-enum BLOCK_TEMPERATURE { BLOCK_COLD /*free*/ , BLOCK_WARM , BLOCK_HOT };
-
-/* key cache block */
-struct st_block_link
-{
- struct st_block_link
- *next_used, **prev_used; /* to connect links in the LRU chain (ring) */
- struct st_block_link
- *next_changed, **prev_changed; /* for lists of file dirty/clean blocks */
- struct st_hash_link *hash_link; /* backward ptr to referring hash_link */
- KEYCACHE_WQUEUE wqueue[2]; /* queues on waiting requests for new/old pages */
- uint requests; /* number of requests for the block */
- uchar *buffer; /* buffer for the block page */
- uint offset; /* beginning of modified data in the buffer */
- uint length; /* end of data in the buffer */
- uint status; /* state of the block */
- enum BLOCK_TEMPERATURE temperature; /* block temperature: cold, warm, hot */
- uint hits_left; /* number of hits left until promotion */
- ulonglong last_hit_time; /* timestamp of the last hit */
- KEYCACHE_CONDVAR *condvar; /* condition variable for 'no readers' event */
-};
-
-KEY_CACHE dflt_key_cache_var;
-KEY_CACHE *dflt_key_cache= &dflt_key_cache_var;
-
-#define FLUSH_CACHE 2000 /* sort this many blocks at once */
-
-static int flush_all_key_blocks(KEY_CACHE *keycache);
-
-static void wait_on_queue(KEYCACHE_WQUEUE *wqueue,
- mysql_mutex_t *mutex);
-static void release_whole_queue(KEYCACHE_WQUEUE *wqueue);
-
-static void free_block(KEY_CACHE *keycache, BLOCK_LINK *block);
-#if !defined(DBUG_OFF)
-static void test_key_cache(KEY_CACHE *keycache,
- const char *where, my_bool lock);
-#endif
-
-#define KEYCACHE_HASH(f, pos) \
-(((ulong) ((pos) / keycache->key_cache_block_size) + \
- (ulong) (f)) & (keycache->hash_entries-1))
-#define FILE_HASH(f) ((uint) (f) & (CHANGED_BLOCKS_HASH-1))
-
-#define DEFAULT_KEYCACHE_DEBUG_LOG "keycache_debug.log"
-
-#if defined(KEYCACHE_DEBUG) && ! defined(KEYCACHE_DEBUG_LOG)
-#define KEYCACHE_DEBUG_LOG DEFAULT_KEYCACHE_DEBUG_LOG
-#endif
-
-#if defined(KEYCACHE_DEBUG_LOG)
-static FILE *keycache_debug_log=NULL;
-static void keycache_debug_print(const char *fmt,...);
-#define KEYCACHE_DEBUG_OPEN \
- if (!keycache_debug_log) \
- { \
- keycache_debug_log= fopen(KEYCACHE_DEBUG_LOG, "w"); \
- (void) setvbuf(keycache_debug_log, NULL, _IOLBF, BUFSIZ); \
- }
-
-#define KEYCACHE_DEBUG_CLOSE \
- if (keycache_debug_log) \
- { \
- fclose(keycache_debug_log); \
- keycache_debug_log= 0; \
- }
-#else
-#define KEYCACHE_DEBUG_OPEN
-#define KEYCACHE_DEBUG_CLOSE
-#endif /* defined(KEYCACHE_DEBUG_LOG) */
-
-#if defined(KEYCACHE_DEBUG_LOG) && defined(KEYCACHE_DEBUG)
-#define KEYCACHE_DBUG_PRINT(l, m) \
- { if (keycache_debug_log) fprintf(keycache_debug_log, "%s: ", l); \
- keycache_debug_print m; }
-
-#define KEYCACHE_DBUG_ASSERT(a) \
- { if (! (a) && keycache_debug_log) fclose(keycache_debug_log); \
- assert(a); }
-#else
-#define KEYCACHE_DBUG_PRINT(l, m) DBUG_PRINT(l, m)
-#define KEYCACHE_DBUG_ASSERT(a) DBUG_ASSERT(a)
-#endif /* defined(KEYCACHE_DEBUG_LOG) && defined(KEYCACHE_DEBUG) */
-
-#if defined(KEYCACHE_DEBUG) || !defined(DBUG_OFF)
-
-static long keycache_thread_id;
-#define KEYCACHE_THREAD_TRACE(l) \
- KEYCACHE_DBUG_PRINT(l,("|thread %ld",keycache_thread_id))
-
-#define KEYCACHE_THREAD_TRACE_BEGIN(l) \
- { struct st_my_thread_var *thread_var= my_thread_var; \
- keycache_thread_id= thread_var->id; \
- KEYCACHE_DBUG_PRINT(l,("[thread %ld",keycache_thread_id)) }
-
-#define KEYCACHE_THREAD_TRACE_END(l) \
- KEYCACHE_DBUG_PRINT(l,("]thread %ld",keycache_thread_id))
-#else
-#define KEYCACHE_THREAD_TRACE_BEGIN(l)
-#define KEYCACHE_THREAD_TRACE_END(l)
-#define KEYCACHE_THREAD_TRACE(l)
-#endif /* defined(KEYCACHE_DEBUG) || !defined(DBUG_OFF) */
-
-#define BLOCK_NUMBER(b) \
- ((uint) (((char*)(b)-(char *) keycache->block_root)/sizeof(BLOCK_LINK)))
-#define HASH_LINK_NUMBER(h) \
- ((uint) (((char*)(h)-(char *) keycache->hash_link_root)/sizeof(HASH_LINK)))
-
-#if (defined(KEYCACHE_TIMEOUT) && !defined(__WIN__)) || defined(KEYCACHE_DEBUG)
-static int keycache_pthread_cond_wait(mysql_cond_t *cond,
- mysql_mutex_t *mutex);
-#else
-#define keycache_pthread_cond_wait(C, M) mysql_cond_wait(C, M)
-#endif
-
-#if defined(KEYCACHE_DEBUG)
-static int keycache_pthread_mutex_lock(mysql_mutex_t *mutex);
-static void keycache_pthread_mutex_unlock(mysql_mutex_t *mutex);
-static int keycache_pthread_cond_signal(mysql_cond_t *cond);
-#else
-#define keycache_pthread_mutex_lock(M) mysql_mutex_lock(M)
-#define keycache_pthread_mutex_unlock(M) mysql_mutex_unlock(M)
-#define keycache_pthread_cond_signal(C) mysql_cond_signal(C)
-#endif /* defined(KEYCACHE_DEBUG) */
-
-#if !defined(DBUG_OFF)
-#if defined(inline)
-#undef inline
-#endif
-#define inline /* disabled inline for easier debugging */
-static int fail_block(BLOCK_LINK *block);
-static int fail_hlink(HASH_LINK *hlink);
-static int cache_empty(KEY_CACHE *keycache);
-#endif
-
-static inline uint next_power(uint value)
-{
- return (uint) my_round_up_to_next_power((uint32) value) << 1;
-}
-
-
-/*
- Initialize a key cache
-
- SYNOPSIS
- init_key_cache()
- keycache pointer to a key cache data structure
- key_cache_block_size size of blocks to keep cached data
- use_mem total memory to use for the key cache
- division_limit division limit (may be zero)
- age_threshold age threshold (may be zero)
-
- RETURN VALUE
- number of blocks in the key cache, if successful,
- 0 - otherwise.
-
- NOTES.
- if keycache->key_cache_inited != 0 we assume that the key cache
- is already initialized. This is for now used by myisamchk, but shouldn't
- be something that a program should rely on!
-
- It's assumed that no two threads call this function simultaneously
- referring to the same key cache handle.
-
-*/
-
-int init_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
- size_t use_mem, uint division_limit,
- uint age_threshold)
-{
- ulong blocks, hash_links;
- size_t length;
- int error;
- DBUG_ENTER("init_key_cache");
- DBUG_ASSERT(key_cache_block_size >= 512);
-
- KEYCACHE_DEBUG_OPEN;
- if (keycache->key_cache_inited && keycache->disk_blocks > 0)
- {
- DBUG_PRINT("warning",("key cache already in use"));
- DBUG_RETURN(0);
- }
-
- keycache->global_cache_w_requests= keycache->global_cache_r_requests= 0;
- keycache->global_cache_read= keycache->global_cache_write= 0;
- keycache->disk_blocks= -1;
- if (! keycache->key_cache_inited)
- {
- keycache->key_cache_inited= 1;
- /*
- Initialize these variables once only.
- Their value must survive re-initialization during resizing.
- */
- keycache->in_resize= 0;
- keycache->resize_in_flush= 0;
- keycache->cnt_for_resize_op= 0;
- keycache->waiting_for_resize_cnt.last_thread= NULL;
- keycache->in_init= 0;
- mysql_mutex_init(key_KEY_CACHE_cache_lock,
- &keycache->cache_lock, MY_MUTEX_INIT_FAST);
- keycache->resize_queue.last_thread= NULL;
- }
-
- keycache->key_cache_mem_size= use_mem;
- keycache->key_cache_block_size= key_cache_block_size;
- DBUG_PRINT("info", ("key_cache_block_size: %u",
- key_cache_block_size));
-
- blocks= (ulong) (use_mem / (sizeof(BLOCK_LINK) + 2 * sizeof(HASH_LINK) +
- sizeof(HASH_LINK*) * 5/4 + key_cache_block_size));
- /* It doesn't make sense to have too few blocks (less than 8) */
- if (blocks >= 8)
- {
- for ( ; ; )
- {
- /* Set my_hash_entries to the next bigger 2 power */
- if ((keycache->hash_entries= next_power(blocks)) < blocks * 5/4)
- keycache->hash_entries<<= 1;
- hash_links= 2 * blocks;
-#if defined(MAX_THREADS)
- if (hash_links < MAX_THREADS + blocks - 1)
- hash_links= MAX_THREADS + blocks - 1;
-#endif
- while ((length= (ALIGN_SIZE(blocks * sizeof(BLOCK_LINK)) +
- ALIGN_SIZE(hash_links * sizeof(HASH_LINK)) +
- ALIGN_SIZE(sizeof(HASH_LINK*) *
- keycache->hash_entries))) +
- ((size_t) blocks * keycache->key_cache_block_size) > use_mem)
- blocks--;
- /* Allocate memory for cache page buffers */
- if ((keycache->block_mem=
- my_large_malloc((size_t) blocks * keycache->key_cache_block_size,
- MYF(0))))
- {
- /*
- Allocate memory for blocks, hash_links and hash entries;
- For each block 2 hash links are allocated
- */
- if ((keycache->block_root= (BLOCK_LINK*) my_malloc(length,
- MYF(0))))
- break;
- my_large_free(keycache->block_mem);
- keycache->block_mem= 0;
- }
- if (blocks < 8)
- {
- my_errno= ENOMEM;
- my_error(EE_OUTOFMEMORY, MYF(0), blocks * keycache->key_cache_block_size);
- goto err;
- }
- blocks= blocks / 4*3;
- }
- keycache->blocks_unused= blocks;
- keycache->disk_blocks= (int) blocks;
- keycache->hash_links= hash_links;
- keycache->hash_root= (HASH_LINK**) ((char*) keycache->block_root +
- ALIGN_SIZE(blocks*sizeof(BLOCK_LINK)));
- keycache->hash_link_root= (HASH_LINK*) ((char*) keycache->hash_root +
- ALIGN_SIZE((sizeof(HASH_LINK*) *
- keycache->hash_entries)));
- bzero((uchar*) keycache->block_root,
- keycache->disk_blocks * sizeof(BLOCK_LINK));
- bzero((uchar*) keycache->hash_root,
- keycache->hash_entries * sizeof(HASH_LINK*));
- bzero((uchar*) keycache->hash_link_root,
- keycache->hash_links * sizeof(HASH_LINK));
- keycache->hash_links_used= 0;
- keycache->free_hash_list= NULL;
- keycache->blocks_used= keycache->blocks_changed= 0;
-
- keycache->global_blocks_changed= 0;
- keycache->blocks_available=0; /* For debugging */
-
- /* The LRU chain is empty after initialization */
- keycache->used_last= NULL;
- keycache->used_ins= NULL;
- keycache->free_block_list= NULL;
- keycache->keycache_time= 0;
- keycache->warm_blocks= 0;
- keycache->min_warm_blocks= (division_limit ?
- blocks * division_limit / 100 + 1 :
- blocks);
- keycache->age_threshold= (age_threshold ?
- blocks * age_threshold / 100 :
- blocks);
-
- keycache->can_be_used= 1;
-
- keycache->waiting_for_hash_link.last_thread= NULL;
- keycache->waiting_for_block.last_thread= NULL;
- DBUG_PRINT("exit",
- ("disk_blocks: %d block_root: 0x%lx hash_entries: %d\
- hash_root: 0x%lx hash_links: %d hash_link_root: 0x%lx",
- keycache->disk_blocks, (long) keycache->block_root,
- keycache->hash_entries, (long) keycache->hash_root,
- keycache->hash_links, (long) keycache->hash_link_root));
- bzero((uchar*) keycache->changed_blocks,
- sizeof(keycache->changed_blocks[0]) * CHANGED_BLOCKS_HASH);
- bzero((uchar*) keycache->file_blocks,
- sizeof(keycache->file_blocks[0]) * CHANGED_BLOCKS_HASH);
- }
- else
- {
- /* key_buffer_size is specified too small. Disable the cache. */
- keycache->can_be_used= 0;
- }
-
- keycache->blocks= keycache->disk_blocks > 0 ? keycache->disk_blocks : 0;
- DBUG_RETURN((int) keycache->disk_blocks);
-
-err:
- error= my_errno;
- keycache->disk_blocks= 0;
- keycache->blocks= 0;
- if (keycache->block_mem)
- {
- my_large_free((uchar*) keycache->block_mem);
- keycache->block_mem= NULL;
- }
- if (keycache->block_root)
- {
- my_free(keycache->block_root);
- keycache->block_root= NULL;
- }
- my_errno= error;
- keycache->can_be_used= 0;
- DBUG_RETURN(0);
-}
-
-
-/*
- Resize a key cache
-
- SYNOPSIS
- resize_key_cache()
- keycache pointer to a key cache data structure
- key_cache_block_size size of blocks to keep cached data
- use_mem total memory to use for the new key cache
- division_limit new division limit (if not zero)
- age_threshold new age threshold (if not zero)
-
- RETURN VALUE
- number of blocks in the key cache, if successful,
- 0 - otherwise.
-
- NOTES.
- The function first compares the memory size and the block size parameters
- with the key cache values.
-
- If they differ the function free the the memory allocated for the
- old key cache blocks by calling the end_key_cache function and
- then rebuilds the key cache with new blocks by calling
- init_key_cache.
-
- The function starts the operation only when all other threads
- performing operations with the key cache let her to proceed
- (when cnt_for_resize=0).
-*/
-
-int resize_key_cache(KEY_CACHE *keycache, uint key_cache_block_size,
- size_t use_mem, uint division_limit,
- uint age_threshold)
-{
- int blocks;
- DBUG_ENTER("resize_key_cache");
-
- if (!keycache->key_cache_inited)
- DBUG_RETURN(keycache->disk_blocks);
-
- if(key_cache_block_size == keycache->key_cache_block_size &&
- use_mem == keycache->key_cache_mem_size)
- {
- change_key_cache_param(keycache, division_limit, age_threshold);
- DBUG_RETURN(keycache->disk_blocks);
- }
-
- keycache_pthread_mutex_lock(&keycache->cache_lock);
-
- /*
- We may need to wait for another thread which is doing a resize
- already. This cannot happen in the MySQL server though. It allows
- one resizer only. In set_var.cc keycache->in_init is used to block
- multiple attempts.
- */
- while (keycache->in_resize)
- {
- /* purecov: begin inspected */
- wait_on_queue(&keycache->resize_queue, &keycache->cache_lock);
- /* purecov: end */
- }
-
- /*
- Mark the operation in progress. This blocks other threads from doing
- a resize in parallel. It prohibits new blocks to enter the cache.
- Read/write requests can bypass the cache during the flush phase.
- */
- keycache->in_resize= 1;
-
- /* Need to flush only if keycache is enabled. */
- if (keycache->can_be_used)
- {
- /* Start the flush phase. */
- keycache->resize_in_flush= 1;
-
- if (flush_all_key_blocks(keycache))
- {
- /* TODO: if this happens, we should write a warning in the log file ! */
- keycache->resize_in_flush= 0;
- blocks= 0;
- keycache->can_be_used= 0;
- goto finish;
- }
- DBUG_ASSERT(cache_empty(keycache));
-
- /* End the flush phase. */
- keycache->resize_in_flush= 0;
- }
-
- /*
- Some direct read/write operations (bypassing the cache) may still be
- unfinished. Wait until they are done. If the key cache can be used,
- direct I/O is done in increments of key_cache_block_size. That is,
- every block is checked if it is in the cache. We need to wait for
- pending I/O before re-initializing the cache, because we may change
- the block size. Otherwise they could check for blocks at file
- positions where the new block division has none. We do also want to
- wait for I/O done when (if) the cache was disabled. It must not
- run in parallel with normal cache operation.
- */
- while (keycache->cnt_for_resize_op)
- wait_on_queue(&keycache->waiting_for_resize_cnt, &keycache->cache_lock);
-
- /*
- Free old cache structures, allocate new structures, and initialize
- them. Note that the cache_lock mutex and the resize_queue are left
- untouched. We do not lose the cache_lock and will release it only at
- the end of this function.
- */
- end_key_cache(keycache, 0); /* Don't free mutex */
- /* The following will work even if use_mem is 0 */
- blocks= init_key_cache(keycache, key_cache_block_size, use_mem,
- division_limit, age_threshold);
-
-finish:
- /*
- Mark the resize finished. This allows other threads to start a
- resize or to request new cache blocks.
- */
- keycache->in_resize= 0;
-
- /* Signal waiting threads. */
- release_whole_queue(&keycache->resize_queue);
-
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- DBUG_RETURN(blocks);
-}
-
-
-/*
- Increment counter blocking resize key cache operation
-*/
-static inline void inc_counter_for_resize_op(KEY_CACHE *keycache)
-{
- keycache->cnt_for_resize_op++;
-}
-
-
-/*
- Decrement counter blocking resize key cache operation;
- Signal the operation to proceed when counter becomes equal zero
-*/
-static inline void dec_counter_for_resize_op(KEY_CACHE *keycache)
-{
- if (!--keycache->cnt_for_resize_op)
- release_whole_queue(&keycache->waiting_for_resize_cnt);
-}
-
-/*
- Change the key cache parameters
-
- SYNOPSIS
- change_key_cache_param()
- keycache pointer to a key cache data structure
- division_limit new division limit (if not zero)
- age_threshold new age threshold (if not zero)
-
- RETURN VALUE
- none
-
- NOTES.
- Presently the function resets the key cache parameters
- concerning midpoint insertion strategy - division_limit and
- age_threshold.
-*/
-
-void change_key_cache_param(KEY_CACHE *keycache, uint division_limit,
- uint age_threshold)
-{
- DBUG_ENTER("change_key_cache_param");
-
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- if (division_limit)
- keycache->min_warm_blocks= (keycache->disk_blocks *
- division_limit / 100 + 1);
- if (age_threshold)
- keycache->age_threshold= (keycache->disk_blocks *
- age_threshold / 100);
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Remove key_cache from memory
-
- SYNOPSIS
- end_key_cache()
- keycache key cache handle
- cleanup Complete free (Free also mutex for key cache)
-
- RETURN VALUE
- none
-*/
-
-void end_key_cache(KEY_CACHE *keycache, my_bool cleanup)
-{
- DBUG_ENTER("end_key_cache");
- DBUG_PRINT("enter", ("key_cache: 0x%lx", (long) keycache));
-
- if (!keycache->key_cache_inited)
- DBUG_VOID_RETURN;
-
- if (keycache->disk_blocks > 0)
- {
- if (keycache->block_mem)
- {
- my_large_free((uchar*) keycache->block_mem);
- keycache->block_mem= NULL;
- my_free(keycache->block_root);
- keycache->block_root= NULL;
- }
- keycache->disk_blocks= -1;
- /* Reset blocks_changed to be safe if flush_all_key_blocks is called */
- keycache->blocks_changed= 0;
- }
-
- DBUG_PRINT("status", ("used: %lu changed: %lu w_requests: %lu "
- "writes: %lu r_requests: %lu reads: %lu",
- keycache->blocks_used, keycache->global_blocks_changed,
- (ulong) keycache->global_cache_w_requests,
- (ulong) keycache->global_cache_write,
- (ulong) keycache->global_cache_r_requests,
- (ulong) keycache->global_cache_read));
-
- /*
- Reset these values to be able to detect a disabled key cache.
- See Bug#44068 (RESTORE can disable the MyISAM Key Cache).
- */
- keycache->blocks_used= 0;
- keycache->blocks_unused= 0;
-
- if (cleanup)
- {
- mysql_mutex_destroy(&keycache->cache_lock);
- keycache->key_cache_inited= keycache->can_be_used= 0;
- KEYCACHE_DEBUG_CLOSE;
- }
- DBUG_VOID_RETURN;
-} /* end_key_cache */
-
-
-/*
- Link a thread into double-linked queue of waiting threads.
-
- SYNOPSIS
- link_into_queue()
- wqueue pointer to the queue structure
- thread pointer to the thread to be added to the queue
-
- RETURN VALUE
- none
-
- NOTES.
- Queue is represented by a circular list of the thread structures
- The list is double-linked of the type (**prev,*next), accessed by
- a pointer to the last element.
-*/
-
-static void link_into_queue(KEYCACHE_WQUEUE *wqueue,
- struct st_my_thread_var *thread)
-{
- struct st_my_thread_var *last;
-
- DBUG_ASSERT(!thread->next && !thread->prev);
- if (! (last= wqueue->last_thread))
- {
- /* Queue is empty */
- thread->next= thread;
- thread->prev= &thread->next;
- }
- else
- {
- thread->prev= last->next->prev;
- last->next->prev= &thread->next;
- thread->next= last->next;
- last->next= thread;
- }
- wqueue->last_thread= thread;
-}
-
-/*
- Unlink a thread from double-linked queue of waiting threads
-
- SYNOPSIS
- unlink_from_queue()
- wqueue pointer to the queue structure
- thread pointer to the thread to be removed from the queue
-
- RETURN VALUE
- none
-
- NOTES.
- See NOTES for link_into_queue
-*/
-
-static void unlink_from_queue(KEYCACHE_WQUEUE *wqueue,
- struct st_my_thread_var *thread)
-{
- KEYCACHE_DBUG_PRINT("unlink_from_queue", ("thread %ld", thread->id));
- DBUG_ASSERT(thread->next && thread->prev);
- if (thread->next == thread)
- /* The queue contains only one member */
- wqueue->last_thread= NULL;
- else
- {
- thread->next->prev= thread->prev;
- *thread->prev=thread->next;
- if (wqueue->last_thread == thread)
- wqueue->last_thread= STRUCT_PTR(struct st_my_thread_var, next,
- thread->prev);
- }
- thread->next= NULL;
-#if !defined(DBUG_OFF)
- /*
- This makes it easier to see it's not in a chain during debugging.
- And some DBUG_ASSERT() rely on it.
- */
- thread->prev= NULL;
-#endif
-}
-
-
-/*
- Add a thread to single-linked queue of waiting threads
-
- SYNOPSIS
- wait_on_queue()
- wqueue Pointer to the queue structure.
- mutex Cache_lock to acquire after awake.
-
- RETURN VALUE
- none
-
- NOTES.
- Queue is represented by a circular list of the thread structures
- The list is single-linked of the type (*next), accessed by a pointer
- to the last element.
-
- The function protects against stray signals by verifying that the
- current thread is unlinked from the queue when awaking. However,
- since several threads can wait for the same event, it might be
- necessary for the caller of the function to check again if the
- condition for awake is indeed matched.
-*/
-
-static void wait_on_queue(KEYCACHE_WQUEUE *wqueue,
- mysql_mutex_t *mutex)
-{
- struct st_my_thread_var *last;
- struct st_my_thread_var *thread= my_thread_var;
-
- /* Add to queue. */
- DBUG_ASSERT(!thread->next);
- DBUG_ASSERT(!thread->prev); /* Not required, but must be true anyway. */
- if (! (last= wqueue->last_thread))
- thread->next= thread;
- else
- {
- thread->next= last->next;
- last->next= thread;
- }
- wqueue->last_thread= thread;
-
- /*
- Wait until thread is removed from queue by the signalling thread.
- The loop protects against stray signals.
- */
- do
- {
- KEYCACHE_DBUG_PRINT("wait", ("suspend thread %ld", thread->id));
- keycache_pthread_cond_wait(&thread->suspend, mutex);
- }
- while (thread->next);
-}
-
-
-/*
- Remove all threads from queue signaling them to proceed
-
- SYNOPSIS
- release_whole_queue()
- wqueue pointer to the queue structure
-
- RETURN VALUE
- none
-
- NOTES.
- See notes for wait_on_queue().
- When removed from the queue each thread is signaled via condition
- variable thread->suspend.
-*/
-
-static void release_whole_queue(KEYCACHE_WQUEUE *wqueue)
-{
- struct st_my_thread_var *last;
- struct st_my_thread_var *next;
- struct st_my_thread_var *thread;
-
- /* Queue may be empty. */
- if (!(last= wqueue->last_thread))
- return;
-
- next= last->next;
- do
- {
- thread=next;
- KEYCACHE_DBUG_PRINT("release_whole_queue: signal",
- ("thread %ld", thread->id));
- /* Signal the thread. */
- keycache_pthread_cond_signal(&thread->suspend);
- /* Take thread from queue. */
- next=thread->next;
- thread->next= NULL;
- }
- while (thread != last);
-
- /* Now queue is definitely empty. */
- wqueue->last_thread= NULL;
-}
-
-
-/*
- Unlink a block from the chain of dirty/clean blocks
-*/
-
-static inline void unlink_changed(BLOCK_LINK *block)
-{
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- if (block->next_changed)
- block->next_changed->prev_changed= block->prev_changed;
- *block->prev_changed= block->next_changed;
-
-#if !defined(DBUG_OFF)
- /*
- This makes it easier to see it's not in a chain during debugging.
- And some DBUG_ASSERT() rely on it.
- */
- block->next_changed= NULL;
- block->prev_changed= NULL;
-#endif
-}
-
-
-/*
- Link a block into the chain of dirty/clean blocks
-*/
-
-static inline void link_changed(BLOCK_LINK *block, BLOCK_LINK **phead)
-{
- DBUG_ASSERT(!block->next_changed);
- DBUG_ASSERT(!block->prev_changed);
- block->prev_changed= phead;
- if ((block->next_changed= *phead))
- (*phead)->prev_changed= &block->next_changed;
- *phead= block;
-}
-
-
-/*
- Link a block in a chain of clean blocks of a file.
-
- SYNOPSIS
- link_to_file_list()
- keycache Key cache handle
- block Block to relink
- file File to be linked to
- unlink If to unlink first
-
- DESCRIPTION
- Unlink a block from whichever chain it is linked in, if it's
- asked for, and link it to the chain of clean blocks of the
- specified file.
-
- NOTE
- Please do never set/clear BLOCK_CHANGED outside of
- link_to_file_list() or link_to_changed_list().
- You would risk to damage correct counting of changed blocks
- and to find blocks in the wrong hash.
-
- RETURN
- void
-*/
-
-static void link_to_file_list(KEY_CACHE *keycache,
- BLOCK_LINK *block, int file,
- my_bool unlink_block)
-{
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block);
- DBUG_ASSERT(block->hash_link->file == file);
- if (unlink_block)
- unlink_changed(block);
- link_changed(block, &keycache->file_blocks[FILE_HASH(file)]);
- if (block->status & BLOCK_CHANGED)
- {
- block->status&= ~BLOCK_CHANGED;
- keycache->blocks_changed--;
- keycache->global_blocks_changed--;
- }
-}
-
-
-/*
- Re-link a block from the clean chain to the dirty chain of a file.
-
- SYNOPSIS
- link_to_changed_list()
- keycache key cache handle
- block block to relink
-
- DESCRIPTION
- Unlink a block from the chain of clean blocks of a file
- and link it to the chain of dirty blocks of the same file.
-
- NOTE
- Please do never set/clear BLOCK_CHANGED outside of
- link_to_file_list() or link_to_changed_list().
- You would risk to damage correct counting of changed blocks
- and to find blocks in the wrong hash.
-
- RETURN
- void
-*/
-
-static void link_to_changed_list(KEY_CACHE *keycache,
- BLOCK_LINK *block)
-{
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT(!(block->status & BLOCK_CHANGED));
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block);
-
- unlink_changed(block);
- link_changed(block,
- &keycache->changed_blocks[FILE_HASH(block->hash_link->file)]);
- block->status|=BLOCK_CHANGED;
- keycache->blocks_changed++;
- keycache->global_blocks_changed++;
-}
-
-
-/*
- Link a block to the LRU chain at the beginning or at the end of
- one of two parts.
-
- SYNOPSIS
- link_block()
- keycache pointer to a key cache data structure
- block pointer to the block to link to the LRU chain
- hot <-> to link the block into the hot subchain
- at_end <-> to link the block at the end of the subchain
-
- RETURN VALUE
- none
-
- NOTES.
- The LRU ring is represented by a circular list of block structures.
- The list is double-linked of the type (**prev,*next) type.
- The LRU ring is divided into two parts - hot and warm.
- There are two pointers to access the last blocks of these two
- parts. The beginning of the warm part follows right after the
- end of the hot part.
- Only blocks of the warm part can be used for eviction.
- The first block from the beginning of this subchain is always
- taken for eviction (keycache->last_used->next)
-
- LRU chain: +------+ H O T +------+
- +----| end |----...<----| beg |----+
- | +------+last +------+ |
- v<-link in latest hot (new end) |
- | link in latest warm (new end)->^
- | +------+ W A R M +------+ |
- +----| beg |---->...----| end |----+
- +------+ +------+ins
- first for eviction
-
- It is also possible that the block is selected for eviction and thus
- not linked in the LRU ring.
-*/
-
-static void link_block(KEY_CACHE *keycache, BLOCK_LINK *block, my_bool hot,
- my_bool at_end)
-{
- BLOCK_LINK *ins;
- BLOCK_LINK **pins;
-
- DBUG_ASSERT((block->status & ~BLOCK_CHANGED) == (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/
- DBUG_ASSERT(!block->requests);
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- DBUG_ASSERT(!block->next_used);
- DBUG_ASSERT(!block->prev_used);
-
- if (!hot && keycache->waiting_for_block.last_thread)
- {
- /* Signal that in the LRU warm sub-chain an available block has appeared */
- struct st_my_thread_var *last_thread=
- keycache->waiting_for_block.last_thread;
- struct st_my_thread_var *first_thread= last_thread->next;
- struct st_my_thread_var *next_thread= first_thread;
- HASH_LINK *hash_link= (HASH_LINK *) first_thread->opt_info;
- struct st_my_thread_var *thread;
- do
- {
- thread= next_thread;
- next_thread= thread->next;
- /*
- We notify about the event all threads that ask
- for the same page as the first thread in the queue
- */
- if ((HASH_LINK *) thread->opt_info == hash_link)
- {
- KEYCACHE_DBUG_PRINT("link_block: signal", ("thread %ld", thread->id));
- keycache_pthread_cond_signal(&thread->suspend);
- unlink_from_queue(&keycache->waiting_for_block, thread);
- block->requests++;
- }
- }
- while (thread != last_thread);
- hash_link->block= block;
- /*
- NOTE: We assigned the block to the hash_link and signalled the
- requesting thread(s). But it is possible that other threads runs
- first. These threads see the hash_link assigned to a block which
- is assigned to another hash_link and not marked BLOCK_IN_SWITCH.
- This can be a problem for functions that do not select the block
- via its hash_link: flush and free. They do only see a block which
- is in a "normal" state and don't know that it will be evicted soon.
-
- We cannot set BLOCK_IN_SWITCH here because only one of the
- requesting threads must handle the eviction. All others must wait
- for it to complete. If we set the flag here, the threads would not
- know who is in charge of the eviction. Without the flag, the first
- thread takes the stick and sets the flag.
-
- But we need to note in the block that is has been selected for
- eviction. It must not be freed. The evicting thread will not
- expect the block in the free list. Before freeing we could also
- check if block->requests > 1. But I think including another flag
- in the check of block->status is slightly more efficient and
- probably easier to read.
- */
- block->status|= BLOCK_IN_EVICTION;
- KEYCACHE_THREAD_TRACE("link_block: after signaling");
-#if defined(KEYCACHE_DEBUG)
- KEYCACHE_DBUG_PRINT("link_block",
- ("linked,unlinked block %u status=%x #requests=%u #available=%u",
- BLOCK_NUMBER(block), block->status,
- block->requests, keycache->blocks_available));
-#endif
- return;
- }
-
- pins= hot ? &keycache->used_ins : &keycache->used_last;
- ins= *pins;
- if (ins)
- {
- ins->next_used->prev_used= &block->next_used;
- block->next_used= ins->next_used;
- block->prev_used= &ins->next_used;
- ins->next_used= block;
- if (at_end)
- *pins= block;
- }
- else
- {
- /* The LRU ring is empty. Let the block point to itself. */
- keycache->used_last= keycache->used_ins= block->next_used= block;
- block->prev_used= &block->next_used;
- }
- KEYCACHE_THREAD_TRACE("link_block");
-#if defined(KEYCACHE_DEBUG)
- keycache->blocks_available++;
- KEYCACHE_DBUG_PRINT("link_block",
- ("linked block %u:%1u status=%x #requests=%u #available=%u",
- BLOCK_NUMBER(block), at_end, block->status,
- block->requests, keycache->blocks_available));
- KEYCACHE_DBUG_ASSERT((ulong) keycache->blocks_available <=
- keycache->blocks_used);
-#endif
-}
-
-
-/*
- Unlink a block from the LRU chain
-
- SYNOPSIS
- unlink_block()
- keycache pointer to a key cache data structure
- block pointer to the block to unlink from the LRU chain
-
- RETURN VALUE
- none
-
- NOTES.
- See NOTES for link_block
-*/
-
-static void unlink_block(KEY_CACHE *keycache, BLOCK_LINK *block)
-{
- DBUG_ASSERT((block->status & ~BLOCK_CHANGED) == (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/
- DBUG_ASSERT(!block->requests);
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- DBUG_ASSERT(block->next_used && block->prev_used &&
- (block->next_used->prev_used == &block->next_used) &&
- (*block->prev_used == block));
- if (block->next_used == block)
- /* The list contains only one member */
- keycache->used_last= keycache->used_ins= NULL;
- else
- {
- block->next_used->prev_used= block->prev_used;
- *block->prev_used= block->next_used;
- if (keycache->used_last == block)
- keycache->used_last= STRUCT_PTR(BLOCK_LINK, next_used, block->prev_used);
- if (keycache->used_ins == block)
- keycache->used_ins=STRUCT_PTR(BLOCK_LINK, next_used, block->prev_used);
- }
- block->next_used= NULL;
-#if !defined(DBUG_OFF)
- /*
- This makes it easier to see it's not in a chain during debugging.
- And some DBUG_ASSERT() rely on it.
- */
- block->prev_used= NULL;
-#endif
-
- KEYCACHE_THREAD_TRACE("unlink_block");
-#if defined(KEYCACHE_DEBUG)
- KEYCACHE_DBUG_ASSERT(keycache->blocks_available != 0);
- keycache->blocks_available--;
- KEYCACHE_DBUG_PRINT("unlink_block",
- ("unlinked block %u status=%x #requests=%u #available=%u",
- BLOCK_NUMBER(block), block->status,
- block->requests, keycache->blocks_available));
-#endif
-}
-
-
-/*
- Register requests for a block.
-
- SYNOPSIS
- reg_requests()
- keycache Pointer to a key cache data structure.
- block Pointer to the block to register a request on.
- count Number of requests. Always 1.
-
- NOTE
- The first request unlinks the block from the LRU ring. This means
- that it is protected against eveiction.
-
- RETURN
- void
-*/
-static void reg_requests(KEY_CACHE *keycache, BLOCK_LINK *block, int count)
-{
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT(block->hash_link);
-
- if (!block->requests)
- unlink_block(keycache, block);
- block->requests+=count;
-}
-
-
-/*
- Unregister request for a block
- linking it to the LRU chain if it's the last request
-
- SYNOPSIS
- unreg_request()
- keycache pointer to a key cache data structure
- block pointer to the block to link to the LRU chain
- at_end <-> to link the block at the end of the LRU chain
-
- RETURN VALUE
- none
-
- NOTES.
- Every linking to the LRU ring decrements by one a special block
- counter (if it's positive). If the at_end parameter is TRUE the block is
- added either at the end of warm sub-chain or at the end of hot sub-chain.
- It is added to the hot subchain if its counter is zero and number of
- blocks in warm sub-chain is not less than some low limit (determined by
- the division_limit parameter). Otherwise the block is added to the warm
- sub-chain. If the at_end parameter is FALSE the block is always added
- at beginning of the warm sub-chain.
- Thus a warm block can be promoted to the hot sub-chain when its counter
- becomes zero for the first time.
- At the same time the block at the very beginning of the hot subchain
- might be moved to the beginning of the warm subchain if it stays untouched
- for a too long time (this time is determined by parameter age_threshold).
-
- It is also possible that the block is selected for eviction and thus
- not linked in the LRU ring.
-*/
-
-static void unreg_request(KEY_CACHE *keycache,
- BLOCK_LINK *block, int at_end)
-{
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(block->hash_link); /*backptr to block NULL from free_block()*/
- DBUG_ASSERT(block->requests);
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- DBUG_ASSERT(!block->next_used);
- DBUG_ASSERT(!block->prev_used);
- /*
- Unregister the request, but do not link erroneous blocks into the
- LRU ring.
- */
- if (!--block->requests && !(block->status & BLOCK_ERROR))
- {
- my_bool hot;
- if (block->hits_left)
- block->hits_left--;
- hot= !block->hits_left && at_end &&
- keycache->warm_blocks > keycache->min_warm_blocks;
- if (hot)
- {
- if (block->temperature == BLOCK_WARM)
- keycache->warm_blocks--;
- block->temperature= BLOCK_HOT;
- KEYCACHE_DBUG_PRINT("unreg_request", ("#warm_blocks: %lu",
- keycache->warm_blocks));
- }
- link_block(keycache, block, hot, (my_bool)at_end);
- block->last_hit_time= keycache->keycache_time;
- keycache->keycache_time++;
- /*
- At this place, the block might be in the LRU ring or not. If an
- evicter was waiting for a block, it was selected for eviction and
- not linked in the LRU ring.
- */
-
- /*
- Check if we should link a hot block to the warm block sub-chain.
- It is possible that we select the same block as above. But it can
- also be another block. In any case a block from the LRU ring is
- selected. In other words it works even if the above block was
- selected for eviction and not linked in the LRU ring. Since this
- happens only if the LRU ring is empty, the block selected below
- would be NULL and the rest of the function skipped.
- */
- block= keycache->used_ins;
- if (block && keycache->keycache_time - block->last_hit_time >
- keycache->age_threshold)
- {
- unlink_block(keycache, block);
- link_block(keycache, block, 0, 0);
- if (block->temperature != BLOCK_WARM)
- {
- keycache->warm_blocks++;
- block->temperature= BLOCK_WARM;
- }
- KEYCACHE_DBUG_PRINT("unreg_request", ("#warm_blocks: %lu",
- keycache->warm_blocks));
- }
- }
-}
-
-/*
- Remove a reader of the page in block
-*/
-
-static void remove_reader(BLOCK_LINK *block)
-{
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block);
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- DBUG_ASSERT(!block->next_used);
- DBUG_ASSERT(!block->prev_used);
- DBUG_ASSERT(block->hash_link->requests);
-
- if (! --block->hash_link->requests && block->condvar)
- keycache_pthread_cond_signal(block->condvar);
-}
-
-
-/*
- Wait until the last reader of the page in block
- signals on its termination
-*/
-
-static void wait_for_readers(KEY_CACHE *keycache,
- BLOCK_LINK *block)
-{
- struct st_my_thread_var *thread= my_thread_var;
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(!(block->status & (BLOCK_IN_FLUSH | BLOCK_CHANGED)));
- DBUG_ASSERT(block->hash_link);
- DBUG_ASSERT(block->hash_link->block == block);
- /* Linked in file_blocks or changed_blocks hash. */
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- /* Not linked in LRU ring. */
- DBUG_ASSERT(!block->next_used);
- DBUG_ASSERT(!block->prev_used);
- while (block->hash_link->requests)
- {
- KEYCACHE_DBUG_PRINT("wait_for_readers: wait",
- ("suspend thread %ld block %u",
- thread->id, BLOCK_NUMBER(block)));
- /* There must be no other waiter. We have no queue here. */
- DBUG_ASSERT(!block->condvar);
- block->condvar= &thread->suspend;
- keycache_pthread_cond_wait(&thread->suspend, &keycache->cache_lock);
- block->condvar= NULL;
- }
-}
-
-
-/*
- Add a hash link to a bucket in the hash_table
-*/
-
-static inline void link_hash(HASH_LINK **start, HASH_LINK *hash_link)
-{
- if (*start)
- (*start)->prev= &hash_link->next;
- hash_link->next= *start;
- hash_link->prev= start;
- *start= hash_link;
-}
-
-
-/*
- Remove a hash link from the hash table
-*/
-
-static void unlink_hash(KEY_CACHE *keycache, HASH_LINK *hash_link)
-{
- KEYCACHE_DBUG_PRINT("unlink_hash", ("fd: %u pos_ %lu #requests=%u",
- (uint) hash_link->file,(ulong) hash_link->diskpos, hash_link->requests));
- KEYCACHE_DBUG_ASSERT(hash_link->requests == 0);
- if ((*hash_link->prev= hash_link->next))
- hash_link->next->prev= hash_link->prev;
- hash_link->block= NULL;
-
- if (keycache->waiting_for_hash_link.last_thread)
- {
- /* Signal that a free hash link has appeared */
- struct st_my_thread_var *last_thread=
- keycache->waiting_for_hash_link.last_thread;
- struct st_my_thread_var *first_thread= last_thread->next;
- struct st_my_thread_var *next_thread= first_thread;
- KEYCACHE_PAGE *first_page= (KEYCACHE_PAGE *) (first_thread->opt_info);
- struct st_my_thread_var *thread;
-
- hash_link->file= first_page->file;
- hash_link->diskpos= first_page->filepos;
- do
- {
- KEYCACHE_PAGE *page;
- thread= next_thread;
- page= (KEYCACHE_PAGE *) thread->opt_info;
- next_thread= thread->next;
- /*
- We notify about the event all threads that ask
- for the same page as the first thread in the queue
- */
- if (page->file == hash_link->file && page->filepos == hash_link->diskpos)
- {
- KEYCACHE_DBUG_PRINT("unlink_hash: signal", ("thread %ld", thread->id));
- keycache_pthread_cond_signal(&thread->suspend);
- unlink_from_queue(&keycache->waiting_for_hash_link, thread);
- }
- }
- while (thread != last_thread);
- link_hash(&keycache->hash_root[KEYCACHE_HASH(hash_link->file,
- hash_link->diskpos)],
- hash_link);
- return;
- }
- hash_link->next= keycache->free_hash_list;
- keycache->free_hash_list= hash_link;
-}
-
-
-/*
- Get the hash link for a page
-*/
-
-static HASH_LINK *get_hash_link(KEY_CACHE *keycache,
- int file, my_off_t filepos)
-{
- reg1 HASH_LINK *hash_link, **start;
-#if defined(KEYCACHE_DEBUG)
- int cnt;
-#endif
-
- KEYCACHE_DBUG_PRINT("get_hash_link", ("fd: %u pos: %lu",
- (uint) file,(ulong) filepos));
-
-restart:
- /*
- Find the bucket in the hash table for the pair (file, filepos);
- start contains the head of the bucket list,
- hash_link points to the first member of the list
- */
- hash_link= *(start= &keycache->hash_root[KEYCACHE_HASH(file, filepos)]);
-#if defined(KEYCACHE_DEBUG)
- cnt= 0;
-#endif
- /* Look for an element for the pair (file, filepos) in the bucket chain */
- while (hash_link &&
- (hash_link->diskpos != filepos || hash_link->file != file))
- {
- hash_link= hash_link->next;
-#if defined(KEYCACHE_DEBUG)
- cnt++;
- if (! (cnt <= keycache->hash_links_used))
- {
- int i;
- for (i=0, hash_link= *start ;
- i < cnt ; i++, hash_link= hash_link->next)
- {
- KEYCACHE_DBUG_PRINT("get_hash_link", ("fd: %u pos: %lu",
- (uint) hash_link->file,(ulong) hash_link->diskpos));
- }
- }
- KEYCACHE_DBUG_ASSERT(cnt <= keycache->hash_links_used);
-#endif
- }
- if (! hash_link)
- {
- /* There is no hash link in the hash table for the pair (file, filepos) */
- if (keycache->free_hash_list)
- {
- hash_link= keycache->free_hash_list;
- keycache->free_hash_list= hash_link->next;
- }
- else if (keycache->hash_links_used < keycache->hash_links)
- {
- hash_link= &keycache->hash_link_root[keycache->hash_links_used++];
- }
- else
- {
- /* Wait for a free hash link */
- struct st_my_thread_var *thread= my_thread_var;
- KEYCACHE_PAGE page;
- KEYCACHE_DBUG_PRINT("get_hash_link", ("waiting"));
- page.file= file;
- page.filepos= filepos;
- thread->opt_info= (void *) &page;
- link_into_queue(&keycache->waiting_for_hash_link, thread);
- KEYCACHE_DBUG_PRINT("get_hash_link: wait",
- ("suspend thread %ld", thread->id));
- keycache_pthread_cond_wait(&thread->suspend,
- &keycache->cache_lock);
- thread->opt_info= NULL;
- goto restart;
- }
- hash_link->file= file;
- hash_link->diskpos= filepos;
- link_hash(start, hash_link);
- }
- /* Register the request for the page */
- hash_link->requests++;
-
- return hash_link;
-}
-
-
-/*
- Get a block for the file page requested by a keycache read/write operation;
- If the page is not in the cache return a free block, if there is none
- return the lru block after saving its buffer if the page is dirty.
-
- SYNOPSIS
-
- find_key_block()
- keycache pointer to a key cache data structure
- file handler for the file to read page from
- filepos position of the page in the file
- init_hits_left how initialize the block counter for the page
- wrmode <-> get for writing
- page_st out {PAGE_READ,PAGE_TO_BE_READ,PAGE_WAIT_TO_BE_READ}
-
- RETURN VALUE
- Pointer to the found block if successful, 0 - otherwise
-
- NOTES.
- For the page from file positioned at filepos the function checks whether
- the page is in the key cache specified by the first parameter.
- If this is the case it immediately returns the block.
- If not, the function first chooses a block for this page. If there is
- no not used blocks in the key cache yet, the function takes the block
- at the very beginning of the warm sub-chain. It saves the page in that
- block if it's dirty before returning the pointer to it.
- The function returns in the page_st parameter the following values:
- PAGE_READ - if page already in the block,
- PAGE_TO_BE_READ - if it is to be read yet by the current thread
- WAIT_TO_BE_READ - if it is to be read by another thread
- If an error occurs THE BLOCK_ERROR bit is set in the block status.
- It might happen that there are no blocks in LRU chain (in warm part) -
- all blocks are unlinked for some read/write operations. Then the function
- waits until first of this operations links any block back.
-*/
-
-static BLOCK_LINK *find_key_block(KEY_CACHE *keycache,
- File file, my_off_t filepos,
- int init_hits_left,
- int wrmode, int *page_st)
-{
- HASH_LINK *hash_link;
- BLOCK_LINK *block;
- int error= 0;
- int page_status;
-
- DBUG_ENTER("find_key_block");
- KEYCACHE_THREAD_TRACE("find_key_block:begin");
- DBUG_PRINT("enter", ("fd: %d pos: %lu wrmode: %d",
- file, (ulong) filepos, wrmode));
- KEYCACHE_DBUG_PRINT("find_key_block", ("fd: %d pos: %lu wrmode: %d",
- file, (ulong) filepos,
- wrmode));
-#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
- DBUG_EXECUTE("check_keycache2",
- test_key_cache(keycache, "start of find_key_block", 0););
-#endif
-
-restart:
- /*
- If the flush phase of a resize operation fails, the cache is left
- unusable. This will be detected only after "goto restart".
- */
- if (!keycache->can_be_used)
- DBUG_RETURN(0);
-
- /*
- Find the hash_link for the requested file block (file, filepos). We
- do always get a hash_link here. It has registered our request so
- that no other thread can use it for another file block until we
- release the request (which is done by remove_reader() usually). The
- hash_link can have a block assigned to it or not. If there is a
- block, it may be assigned to this hash_link or not. In cases where a
- block is evicted from the cache, it is taken from the LRU ring and
- referenced by the new hash_link. But the block can still be assigned
- to its old hash_link for some time if it needs to be flushed first,
- or if there are other threads still reading it.
-
- Summary:
- hash_link is always returned.
- hash_link->block can be:
- - NULL or
- - not assigned to this hash_link or
- - assigned to this hash_link. If assigned, the block can have
- - invalid data (when freshly assigned) or
- - valid data. Valid data can be
- - changed over the file contents (dirty) or
- - not changed (clean).
- */
- hash_link= get_hash_link(keycache, file, filepos);
- DBUG_ASSERT((hash_link->file == file) && (hash_link->diskpos == filepos));
-
- page_status= -1;
- if ((block= hash_link->block) &&
- block->hash_link == hash_link && (block->status & BLOCK_READ))
- {
- /* Assigned block with valid (changed or unchanged) contents. */
- page_status= PAGE_READ;
- }
- /*
- else (page_status == -1)
- - block == NULL or
- - block not assigned to this hash_link or
- - block assigned but not yet read from file (invalid data).
- */
-
- if (keycache->in_resize)
- {
- /* This is a request during a resize operation */
-
- if (!block)
- {
- struct st_my_thread_var *thread;
-
- /*
- The file block is not in the cache. We don't need it in the
- cache: we are going to read or write directly to file. Cancel
- the request. We can simply decrement hash_link->requests because
- we did not release cache_lock since increasing it. So no other
- thread can wait for our request to become released.
- */
- if (hash_link->requests == 1)
- {
- /*
- We are the only one to request this hash_link (this file/pos).
- Free the hash_link.
- */
- hash_link->requests--;
- unlink_hash(keycache, hash_link);
- DBUG_RETURN(0);
- }
-
- /*
- More requests on the hash_link. Someone tries to evict a block
- for this hash_link (could have started before resizing started).
- This means that the LRU ring is empty. Otherwise a block could
- be assigned immediately. Behave like a thread that wants to
- evict a block for this file/pos. Add to the queue of threads
- waiting for a block. Wait until there is one assigned.
-
- Refresh the request on the hash-link so that it cannot be reused
- for another file/pos.
- */
- thread= my_thread_var;
- thread->opt_info= (void *) hash_link;
- link_into_queue(&keycache->waiting_for_block, thread);
- do
- {
- KEYCACHE_DBUG_PRINT("find_key_block: wait",
- ("suspend thread %ld", thread->id));
- keycache_pthread_cond_wait(&thread->suspend,
- &keycache->cache_lock);
- } while (thread->next);
- thread->opt_info= NULL;
- /*
- A block should now be assigned to the hash_link. But it may
- still need to be evicted. Anyway, we should re-check the
- situation. page_status must be set correctly.
- */
- hash_link->requests--;
- goto restart;
- } /* end of if (!block) */
-
- /*
- There is a block for this file/pos in the cache. Register a
- request on it. This unlinks it from the LRU ring (if it is there)
- and hence protects it against eviction (if not already in
- eviction). We need this for returning the block to the caller, for
- calling remove_reader() (for debugging purposes), and for calling
- free_block(). The only case where we don't need the request is if
- the block is in eviction. In that case we have to unregister the
- request later.
- */
- reg_requests(keycache, block, 1);
-
- if (page_status != PAGE_READ)
- {
- /*
- - block not assigned to this hash_link or
- - block assigned but not yet read from file (invalid data).
-
- This must be a block in eviction. It will be read soon. We need
- to wait here until this happened. Otherwise the caller could
- access a wrong block or a block which is in read. While waiting
- we cannot lose hash_link nor block. We have registered a request
- on the hash_link. Everything can happen to the block but changes
- in the hash_link -> block relationship. In other words:
- everything can happen to the block but free or another completed
- eviction.
-
- Note that we bahave like a secondary requestor here. We just
- cannot return with PAGE_WAIT_TO_BE_READ. This would work for
- read requests and writes on dirty blocks that are not in flush
- only. Waiting here on COND_FOR_REQUESTED works in all
- situations.
- */
- DBUG_ASSERT(((block->hash_link != hash_link) &&
- (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))) ||
- ((block->hash_link == hash_link) &&
- !(block->status & BLOCK_READ)));
- wait_on_queue(&block->wqueue[COND_FOR_REQUESTED], &keycache->cache_lock);
- /*
- Here we can trust that the block has been assigned to this
- hash_link (block->hash_link == hash_link) and read into the
- buffer (BLOCK_READ). The worst things possible here are that the
- block is in free (BLOCK_REASSIGNED). But the block is still
- assigned to the hash_link. The freeing thread waits until we
- release our request on the hash_link. The block must not be
- again in eviction because we registered an request on it before
- starting to wait.
- */
- DBUG_ASSERT(block->hash_link == hash_link);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH)));
- }
- /*
- The block is in the cache. Assigned to the hash_link. Valid data.
- Note that in case of page_st == PAGE_READ, the block can be marked
- for eviction. In any case it can be marked for freeing.
- */
-
- if (!wrmode)
- {
- /* A reader can just read the block. */
- *page_st= PAGE_READ;
- DBUG_ASSERT((hash_link->file == file) &&
- (hash_link->diskpos == filepos) &&
- (block->hash_link == hash_link));
- DBUG_RETURN(block);
- }
-
- /*
- This is a writer. No two writers for the same block can exist.
- This must be assured by locks outside of the key cache.
- */
- DBUG_ASSERT(!(block->status & BLOCK_FOR_UPDATE) || fail_block(block));
-
- while (block->status & BLOCK_IN_FLUSH)
- {
- /*
- Wait until the block is flushed to file. Do not release the
- request on the hash_link yet to prevent that the block is freed
- or reassigned while we wait. While we wait, several things can
- happen to the block, including another flush. But the block
- cannot be reassigned to another hash_link until we release our
- request on it. But it can be marked BLOCK_REASSIGNED from free
- or eviction, while they wait for us to release the hash_link.
- */
- wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock);
- /*
- If the flush phase failed, the resize could have finished while
- we waited here.
- */
- if (!keycache->in_resize)
- {
- remove_reader(block);
- unreg_request(keycache, block, 1);
- goto restart;
- }
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(!(block->status & BLOCK_FOR_UPDATE) || fail_block(block));
- DBUG_ASSERT(block->hash_link == hash_link);
- }
-
- if (block->status & BLOCK_CHANGED)
- {
- /*
- We want to write a block with changed contents. If the cache
- block size is bigger than the callers block size (e.g. MyISAM),
- the caller may replace part of the block only. Changes of the
- other part of the block must be preserved. Since the block has
- not yet been selected for flush, we can still add our changes.
- */
- *page_st= PAGE_READ;
- DBUG_ASSERT((hash_link->file == file) &&
- (hash_link->diskpos == filepos) &&
- (block->hash_link == hash_link));
- DBUG_RETURN(block);
- }
-
- /*
- This is a write request for a clean block. We do not want to have
- new dirty blocks in the cache while resizing. We will free the
- block and write directly to file. If the block is in eviction or
- in free, we just let it go.
-
- Unregister from the hash_link. This must be done before freeing
- the block. And it must be done if not freeing the block. Because
- we could have waited above, we need to call remove_reader(). Other
- threads could wait for us to release our request on the hash_link.
- */
- remove_reader(block);
-
- /* If the block is not in eviction and not in free, we can free it. */
- if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_REASSIGNED)))
- {
- /*
- Free block as we are going to write directly to file.
- Although we have an exlusive lock for the updated key part,
- the control can be yielded by the current thread as we might
- have unfinished readers of other key parts in the block
- buffer. Still we are guaranteed not to have any readers
- of the key part we are writing into until the block is
- removed from the cache as we set the BLOCK_REASSIGNED
- flag (see the code below that handles reading requests).
- */
- free_block(keycache, block);
- }
- else
- {
- /*
- The block will be evicted/freed soon. Don't touch it in any way.
- Unregister the request that we registered above.
- */
- unreg_request(keycache, block, 1);
-
- /*
- The block is still assigned to the hash_link (the file/pos that
- we are going to write to). Wait until the eviction/free is
- complete. Otherwise the direct write could complete before all
- readers are done with the block. So they could read outdated
- data.
-
- Since we released our request on the hash_link, it can be reused
- for another file/pos. Hence we cannot just check for
- block->hash_link == hash_link. As long as the resize is
- proceeding the block cannot be reassigned to the same file/pos
- again. So we can terminate the loop when the block is no longer
- assigned to this file/pos.
- */
- do
- {
- wait_on_queue(&block->wqueue[COND_FOR_SAVED],
- &keycache->cache_lock);
- /*
- If the flush phase failed, the resize could have finished
- while we waited here.
- */
- if (!keycache->in_resize)
- goto restart;
- } while (block->hash_link &&
- (block->hash_link->file == file) &&
- (block->hash_link->diskpos == filepos));
- }
- DBUG_RETURN(0);
- }
-
- if (page_status == PAGE_READ &&
- (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_REASSIGNED)))
- {
- /*
- This is a request for a block to be removed from cache. The block
- is assigned to this hash_link and contains valid data, but is
- marked for eviction or to be freed. Possible reasons why it has
- not yet been evicted/freed can be a flush before reassignment
- (BLOCK_IN_SWITCH), readers of the block have not finished yet
- (BLOCK_REASSIGNED), or the evicting thread did not yet awake after
- the block has been selected for it (BLOCK_IN_EVICTION).
- */
-
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("request for old page in block %u "
- "wrmode: %d block->status: %d",
- BLOCK_NUMBER(block), wrmode, block->status));
- /*
- Only reading requests can proceed until the old dirty page is flushed,
- all others are to be suspended, then resubmitted
- */
- if (!wrmode && !(block->status & BLOCK_REASSIGNED))
- {
- /*
- This is a read request and the block not yet reassigned. We can
- register our request and proceed. This unlinks the block from
- the LRU ring and protects it against eviction.
- */
- reg_requests(keycache, block, 1);
- }
- else
- {
- /*
- Either this is a write request for a block that is in eviction
- or in free. We must not use it any more. Instead we must evict
- another block. But we cannot do this before the eviction/free is
- done. Otherwise we would find the same hash_link + block again
- and again.
-
- Or this is a read request for a block in eviction/free that does
- not require a flush, but waits for readers to finish with the
- block. We do not read this block to let the eviction/free happen
- as soon as possible. Again we must wait so that we don't find
- the same hash_link + block again and again.
- */
- DBUG_ASSERT(hash_link->requests);
- hash_link->requests--;
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("request waiting for old page to be saved"));
- wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock);
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("request for old page resubmitted"));
- /*
- The block is no longer assigned to this hash_link.
- Get another one.
- */
- goto restart;
- }
- }
- else
- {
- /*
- This is a request for a new block or for a block not to be removed.
- Either
- - block == NULL or
- - block not assigned to this hash_link or
- - block assigned but not yet read from file,
- or
- - block assigned with valid (changed or unchanged) data and
- - it will not be reassigned/freed.
- */
- if (! block)
- {
- /* No block is assigned to the hash_link yet. */
- if (keycache->blocks_unused)
- {
- if (keycache->free_block_list)
- {
- /* There is a block in the free list. */
- block= keycache->free_block_list;
- keycache->free_block_list= block->next_used;
- block->next_used= NULL;
- }
- else
- {
- size_t block_mem_offset;
- /* There are some never used blocks, take first of them */
- DBUG_ASSERT(keycache->blocks_used <
- (ulong) keycache->disk_blocks);
- block= &keycache->block_root[keycache->blocks_used];
- block_mem_offset=
- ((size_t) keycache->blocks_used) * keycache->key_cache_block_size;
- block->buffer= ADD_TO_PTR(keycache->block_mem,
- block_mem_offset,
- uchar*);
- keycache->blocks_used++;
- DBUG_ASSERT(!block->next_used);
- }
- DBUG_ASSERT(!block->prev_used);
- DBUG_ASSERT(!block->next_changed);
- DBUG_ASSERT(!block->prev_changed);
- DBUG_ASSERT(!block->hash_link);
- DBUG_ASSERT(!block->status);
- DBUG_ASSERT(!block->requests);
- keycache->blocks_unused--;
- block->status= BLOCK_IN_USE;
- block->length= 0;
- block->offset= keycache->key_cache_block_size;
- block->requests= 1;
- block->temperature= BLOCK_COLD;
- block->hits_left= init_hits_left;
- block->last_hit_time= 0;
- block->hash_link= hash_link;
- hash_link->block= block;
- link_to_file_list(keycache, block, file, 0);
- page_status= PAGE_TO_BE_READ;
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("got free or never used block %u",
- BLOCK_NUMBER(block)));
- }
- else
- {
- /*
- There are no free blocks and no never used blocks, use a block
- from the LRU ring.
- */
-
- if (! keycache->used_last)
- {
- /*
- The LRU ring is empty. Wait until a new block is added to
- it. Several threads might wait here for the same hash_link,
- all of them must get the same block. While waiting for a
- block, after a block is selected for this hash_link, other
- threads can run first before this one awakes. During this
- time interval other threads find this hash_link pointing to
- the block, which is still assigned to another hash_link. In
- this case the block is not marked BLOCK_IN_SWITCH yet, but
- it is marked BLOCK_IN_EVICTION.
- */
-
- struct st_my_thread_var *thread= my_thread_var;
- thread->opt_info= (void *) hash_link;
- link_into_queue(&keycache->waiting_for_block, thread);
- do
- {
- KEYCACHE_DBUG_PRINT("find_key_block: wait",
- ("suspend thread %ld", thread->id));
- keycache_pthread_cond_wait(&thread->suspend,
- &keycache->cache_lock);
- }
- while (thread->next);
- thread->opt_info= NULL;
- /* Assert that block has a request registered. */
- DBUG_ASSERT(hash_link->block->requests);
- /* Assert that block is not in LRU ring. */
- DBUG_ASSERT(!hash_link->block->next_used);
- DBUG_ASSERT(!hash_link->block->prev_used);
- }
-
- /*
- If we waited above, hash_link->block has been assigned by
- link_block(). Otherwise it is still NULL. In the latter case
- we need to grab a block from the LRU ring ourselves.
- */
- block= hash_link->block;
- if (! block)
- {
- /* Select the last block from the LRU ring. */
- block= keycache->used_last->next_used;
- block->hits_left= init_hits_left;
- block->last_hit_time= 0;
- hash_link->block= block;
- /*
- Register a request on the block. This unlinks it from the
- LRU ring and protects it against eviction.
- */
- DBUG_ASSERT(!block->requests);
- reg_requests(keycache, block,1);
- /*
- We do not need to set block->status|= BLOCK_IN_EVICTION here
- because we will set block->status|= BLOCK_IN_SWITCH
- immediately without releasing the lock in between. This does
- also support debugging. When looking at the block, one can
- see if the block has been selected by link_block() after the
- LRU ring was empty, or if it was grabbed directly from the
- LRU ring in this branch.
- */
- }
-
- /*
- If we had to wait above, there is a small chance that another
- thread grabbed this block for the same file block already. But
- in most cases the first condition is true.
- */
- if (block->hash_link != hash_link &&
- ! (block->status & BLOCK_IN_SWITCH) )
- {
- /* this is a primary request for a new page */
- block->status|= BLOCK_IN_SWITCH;
-
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("got block %u for new page", BLOCK_NUMBER(block)));
-
- if (block->status & BLOCK_CHANGED)
- {
- /* The block contains a dirty page - push it out of the cache */
-
- KEYCACHE_DBUG_PRINT("find_key_block", ("block is dirty"));
- if (block->status & BLOCK_IN_FLUSH)
- {
- /*
- The block is marked for flush. If we do not wait here,
- it could happen that we write the block, reassign it to
- another file block, then, before the new owner can read
- the new file block, the flusher writes the cache block
- (which still has the old contents) to the new file block!
- */
- wait_on_queue(&block->wqueue[COND_FOR_SAVED],
- &keycache->cache_lock);
- /*
- The block is marked BLOCK_IN_SWITCH. It should be left
- alone except for reading. No free, no write.
- */
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- DBUG_ASSERT(!(block->status & (BLOCK_REASSIGNED |
- BLOCK_CHANGED |
- BLOCK_FOR_UPDATE)));
- }
- else
- {
- block->status|= BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE;
- /*
- BLOCK_IN_EVICTION may be true or not. Other flags must
- have a fixed value.
- */
- DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) ==
- (BLOCK_READ | BLOCK_IN_SWITCH |
- BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE |
- BLOCK_CHANGED | BLOCK_IN_USE));
- DBUG_ASSERT(block->hash_link);
-
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- /*
- The call is thread safe because only the current
- thread might change the block->hash_link value
- */
- error= my_pwrite(block->hash_link->file,
- block->buffer + block->offset,
- block->length - block->offset,
- block->hash_link->diskpos + block->offset,
- MYF(MY_NABP | MY_WAIT_IF_FULL));
- keycache_pthread_mutex_lock(&keycache->cache_lock);
-
- /* Block status must not have changed. */
- DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) ==
- (BLOCK_READ | BLOCK_IN_SWITCH |
- BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE |
- BLOCK_CHANGED | BLOCK_IN_USE) || fail_block(block));
- keycache->global_cache_write++;
- }
- }
-
- block->status|= BLOCK_REASSIGNED;
- /*
- The block comes from the LRU ring. It must have a hash_link
- assigned.
- */
- DBUG_ASSERT(block->hash_link);
- if (block->hash_link)
- {
- /*
- All pending requests for this page must be resubmitted.
- This must be done before waiting for readers. They could
- wait for the flush to complete. And we must also do it
- after the wait. Flushers might try to free the block while
- we wait. They would wait until the reassignment is
- complete. Also the block status must reflect the correct
- situation: The block is not changed nor in flush any more.
- Note that we must not change the BLOCK_CHANGED flag
- outside of link_to_file_list() so that it is always in the
- correct queue and the *blocks_changed counters are
- correct.
- */
- block->status&= ~(BLOCK_IN_FLUSH | BLOCK_IN_FLUSHWRITE);
- link_to_file_list(keycache, block, block->hash_link->file, 1);
- release_whole_queue(&block->wqueue[COND_FOR_SAVED]);
- /*
- The block is still assigned to its old hash_link.
- Wait until all pending read requests
- for this page are executed
- (we could have avoided this waiting, if we had read
- a page in the cache in a sweep, without yielding control)
- */
- wait_for_readers(keycache, block);
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block &&
- block->prev_changed);
- /* The reader must not have been a writer. */
- DBUG_ASSERT(!(block->status & BLOCK_CHANGED));
-
- /* Wake flushers that might have found the block in between. */
- release_whole_queue(&block->wqueue[COND_FOR_SAVED]);
-
- /* Remove the hash link for the old file block from the hash. */
- unlink_hash(keycache, block->hash_link);
-
- /*
- For sanity checks link_to_file_list() asserts that block
- and hash_link refer to each other. Hence we need to assign
- the hash_link first, but then we would not know if it was
- linked before. Hence we would not know if to unlink it. So
- unlink it here and call link_to_file_list(..., FALSE).
- */
- unlink_changed(block);
- }
- block->status= error ? BLOCK_ERROR : BLOCK_IN_USE ;
- block->length= 0;
- block->offset= keycache->key_cache_block_size;
- block->hash_link= hash_link;
- link_to_file_list(keycache, block, file, 0);
- page_status= PAGE_TO_BE_READ;
-
- KEYCACHE_DBUG_ASSERT(block->hash_link->block == block);
- KEYCACHE_DBUG_ASSERT(hash_link->block->hash_link == hash_link);
- }
- else
- {
- /*
- Either (block->hash_link == hash_link),
- or (block->status & BLOCK_IN_SWITCH).
-
- This is for secondary requests for a new file block only.
- Either it is already assigned to the new hash_link meanwhile
- (if we had to wait due to empty LRU), or it is already in
- eviction by another thread. Since this block has been
- grabbed from the LRU ring and attached to this hash_link,
- another thread cannot grab the same block from the LRU ring
- anymore. If the block is in eviction already, it must become
- attached to the same hash_link and as such destined for the
- same file block.
- */
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("block->hash_link: %p hash_link: %p "
- "block->status: %u", block->hash_link,
- hash_link, block->status ));
- page_status= (((block->hash_link == hash_link) &&
- (block->status & BLOCK_READ)) ?
- PAGE_READ : PAGE_WAIT_TO_BE_READ);
- }
- }
- }
- else
- {
- /*
- Block is not NULL. This hash_link points to a block.
- Either
- - block not assigned to this hash_link (yet) or
- - block assigned but not yet read from file,
- or
- - block assigned with valid (changed or unchanged) data and
- - it will not be reassigned/freed.
-
- The first condition means hash_link points to a block in
- eviction. This is not necessarily marked by BLOCK_IN_SWITCH yet.
- But then it is marked BLOCK_IN_EVICTION. See the NOTE in
- link_block(). In both cases it is destined for this hash_link
- and its file block address. When this hash_link got its block
- address, the block was removed from the LRU ring and cannot be
- selected for eviction (for another hash_link) again.
-
- Register a request on the block. This is another protection
- against eviction.
- */
- DBUG_ASSERT(((block->hash_link != hash_link) &&
- (block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))) ||
- ((block->hash_link == hash_link) &&
- !(block->status & BLOCK_READ)) ||
- ((block->status & BLOCK_READ) &&
- !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH))));
- reg_requests(keycache, block, 1);
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("block->hash_link: %p hash_link: %p "
- "block->status: %u", block->hash_link,
- hash_link, block->status ));
- page_status= (((block->hash_link == hash_link) &&
- (block->status & BLOCK_READ)) ?
- PAGE_READ : PAGE_WAIT_TO_BE_READ);
- }
- }
-
- KEYCACHE_DBUG_ASSERT(page_status != -1);
- /* Same assert basically, but be very sure. */
- KEYCACHE_DBUG_ASSERT(block);
- /* Assert that block has a request and is not in LRU ring. */
- DBUG_ASSERT(block->requests);
- DBUG_ASSERT(!block->next_used);
- DBUG_ASSERT(!block->prev_used);
- /* Assert that we return the correct block. */
- DBUG_ASSERT((page_status == PAGE_WAIT_TO_BE_READ) ||
- ((block->hash_link->file == file) &&
- (block->hash_link->diskpos == filepos)));
- *page_st=page_status;
- KEYCACHE_DBUG_PRINT("find_key_block",
- ("fd: %d pos: %lu block->status: %u page_status: %d",
- file, (ulong) filepos, block->status,
- page_status));
-
-#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
- DBUG_EXECUTE("check_keycache2",
- test_key_cache(keycache, "end of find_key_block",0););
-#endif
- KEYCACHE_THREAD_TRACE("find_key_block:end");
- DBUG_RETURN(block);
-}
-
-
-/*
- Read into a key cache block buffer from disk.
-
- SYNOPSIS
-
- read_block()
- keycache pointer to a key cache data structure
- block block to which buffer the data is to be read
- read_length size of data to be read
- min_length at least so much data must be read
- primary <-> the current thread will read the data
-
- RETURN VALUE
- None
-
- NOTES.
- The function either reads a page data from file to the block buffer,
- or waits until another thread reads it. What page to read is determined
- by a block parameter - reference to a hash link for this page.
- If an error occurs THE BLOCK_ERROR bit is set in the block status.
- We do not report error when the size of successfully read
- portion is less than read_length, but not less than min_length.
-*/
-
-static void read_block(KEY_CACHE *keycache,
- BLOCK_LINK *block, uint read_length,
- uint min_length, my_bool primary)
-{
- size_t got_length;
-
- /* On entry cache_lock is locked */
-
- KEYCACHE_THREAD_TRACE("read_block");
- if (primary)
- {
- /*
- This code is executed only by threads that submitted primary
- requests. Until block->status contains BLOCK_READ, all other
- request for the block become secondary requests. For a primary
- request the block must be properly initialized.
- */
- DBUG_ASSERT(((block->status & ~BLOCK_FOR_UPDATE) == BLOCK_IN_USE) ||
- fail_block(block));
- DBUG_ASSERT((block->length == 0) || fail_block(block));
- DBUG_ASSERT((block->offset == keycache->key_cache_block_size) ||
- fail_block(block));
- DBUG_ASSERT((block->requests > 0) || fail_block(block));
-
- KEYCACHE_DBUG_PRINT("read_block",
- ("page to be read by primary request"));
-
- keycache->global_cache_read++;
- /* Page is not in buffer yet, is to be read from disk */
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- /*
- Here other threads may step in and register as secondary readers.
- They will register in block->wqueue[COND_FOR_REQUESTED].
- */
- got_length= my_pread(block->hash_link->file, block->buffer,
- read_length, block->hash_link->diskpos, MYF(0));
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /*
- The block can now have been marked for free (in case of
- FLUSH_RELEASE). Otherwise the state must be unchanged.
- */
- DBUG_ASSERT(((block->status & ~(BLOCK_REASSIGNED |
- BLOCK_FOR_UPDATE)) == BLOCK_IN_USE) ||
- fail_block(block));
- DBUG_ASSERT((block->length == 0) || fail_block(block));
- DBUG_ASSERT((block->offset == keycache->key_cache_block_size) ||
- fail_block(block));
- DBUG_ASSERT((block->requests > 0) || fail_block(block));
-
- if (got_length < min_length)
- block->status|= BLOCK_ERROR;
- else
- {
- block->status|= BLOCK_READ;
- block->length= got_length;
- /*
- Do not set block->offset here. If this block is marked
- BLOCK_CHANGED later, we want to flush only the modified part. So
- only a writer may set block->offset down from
- keycache->key_cache_block_size.
- */
- }
- KEYCACHE_DBUG_PRINT("read_block",
- ("primary request: new page in cache"));
- /* Signal that all pending requests for this page now can be processed */
- release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]);
- }
- else
- {
- /*
- This code is executed only by threads that submitted secondary
- requests. At this point it could happen that the cache block is
- not yet assigned to the hash_link for the requested file block.
- But at awake from the wait this should be the case. Unfortunately
- we cannot assert this here because we do not know the hash_link
- for the requested file block nor the file and position. So we have
- to assert this in the caller.
- */
- KEYCACHE_DBUG_PRINT("read_block",
- ("secondary request waiting for new page to be read"));
- wait_on_queue(&block->wqueue[COND_FOR_REQUESTED], &keycache->cache_lock);
- KEYCACHE_DBUG_PRINT("read_block",
- ("secondary request: new page in cache"));
- }
-}
-
-
-/*
- Read a block of data from a cached file into a buffer;
-
- SYNOPSIS
-
- key_cache_read()
- keycache pointer to a key cache data structure
- file handler for the file for the block of data to be read
- filepos position of the block of data in the file
- level determines the weight of the data
- buff buffer to where the data must be placed
- length length of the buffer
- block_length length of the block in the key cache buffer
- return_buffer return pointer to the key cache buffer with the data
-
- RETURN VALUE
- Returns address from where the data is placed if sucessful, 0 - otherwise.
-
- NOTES.
- The function ensures that a block of data of size length from file
- positioned at filepos is in the buffers for some key cache blocks.
- Then the function either copies the data into the buffer buff, or,
- if return_buffer is TRUE, it just returns the pointer to the key cache
- buffer with the data.
- Filepos must be a multiple of 'block_length', but it doesn't
- have to be a multiple of key_cache_block_size;
-*/
-
-uchar *key_cache_read(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length,
- uint block_length __attribute__((unused)),
- int return_buffer __attribute__((unused)))
-{
- my_bool locked_and_incremented= FALSE;
- int error=0;
- uchar *start= buff;
- DBUG_ENTER("key_cache_read");
- DBUG_PRINT("enter", ("fd: %u pos: %lu length: %u",
- (uint) file, (ulong) filepos, length));
-
- if (keycache->key_cache_inited)
- {
- /* Key cache is used */
- reg1 BLOCK_LINK *block;
- uint read_length;
- uint offset;
- int page_st;
-
- if (MYSQL_KEYCACHE_READ_START_ENABLED())
- {
- MYSQL_KEYCACHE_READ_START(my_filename(file), length,
- (ulong) (keycache->blocks_used *
- keycache->key_cache_block_size),
- (ulong) (keycache->blocks_unused *
- keycache->key_cache_block_size));
- }
-
- /*
- When the key cache is once initialized, we use the cache_lock to
- reliably distinguish the cases of normal operation, resizing, and
- disabled cache. We always increment and decrement
- 'cnt_for_resize_op' so that a resizer can wait for pending I/O.
- */
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /*
- Cache resizing has two phases: Flushing and re-initializing. In
- the flush phase read requests are allowed to bypass the cache for
- blocks not in the cache. find_key_block() returns NULL in this
- case.
-
- After the flush phase new I/O requests must wait until the
- re-initialization is done. The re-initialization can be done only
- if no I/O request is in progress. The reason is that
- key_cache_block_size can change. With enabled cache, I/O is done
- in chunks of key_cache_block_size. Every chunk tries to use a
- cache block first. If the block size changes in the middle, a
- block could be missed and old data could be read.
- */
- while (keycache->in_resize && !keycache->resize_in_flush)
- wait_on_queue(&keycache->resize_queue, &keycache->cache_lock);
- /* Register the I/O for the next resize. */
- inc_counter_for_resize_op(keycache);
- locked_and_incremented= TRUE;
- /* Requested data may not always be aligned to cache blocks. */
- offset= (uint) (filepos % keycache->key_cache_block_size);
- /* Read data in key_cache_block_size increments */
- do
- {
- /* Cache could be disabled in a later iteration. */
- if (!keycache->can_be_used)
- {
- KEYCACHE_DBUG_PRINT("key_cache_read", ("keycache cannot be used"));
- goto no_key_cache;
- }
- /* Start reading at the beginning of the cache block. */
- filepos-= offset;
- /* Do not read beyond the end of the cache block. */
- read_length= length;
- set_if_smaller(read_length, keycache->key_cache_block_size-offset);
- KEYCACHE_DBUG_ASSERT(read_length > 0);
-
- if (block_length > keycache->key_cache_block_size || offset)
- return_buffer=0;
-
- /* Request the cache block that matches file/pos. */
- keycache->global_cache_r_requests++;
-
- MYSQL_KEYCACHE_READ_BLOCK(keycache->key_cache_block_size);
-
- block=find_key_block(keycache, file, filepos, level, 0, &page_st);
- if (!block)
- {
- /*
- This happens only for requests submitted during key cache
- resize. The block is not in the cache and shall not go in.
- Read directly from file.
- */
- keycache->global_cache_read++;
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- error= (my_pread(file, (uchar*) buff, read_length,
- filepos + offset, MYF(MY_NABP)) != 0);
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- goto next_block;
- }
- if (!(block->status & BLOCK_ERROR))
- {
- if (page_st != PAGE_READ)
- {
- MYSQL_KEYCACHE_READ_MISS();
- /* The requested page is to be read into the block buffer */
- read_block(keycache, block,
- keycache->key_cache_block_size, read_length+offset,
- (my_bool)(page_st == PAGE_TO_BE_READ));
- /*
- A secondary request must now have the block assigned to the
- requested file block. It does not hurt to check it for
- primary requests too.
- */
- DBUG_ASSERT(keycache->can_be_used);
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT(block->hash_link->diskpos == filepos);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- }
- else if (block->length < read_length + offset)
- {
- /*
- Impossible if nothing goes wrong:
- this could only happen if we are using a file with
- small key blocks and are trying to read outside the file
- */
- my_errno= -1;
- block->status|= BLOCK_ERROR;
- }
- else
- {
- MYSQL_KEYCACHE_READ_HIT();
- }
- }
-
- /* block status may have added BLOCK_ERROR in the above 'if'. */
- if (!(block->status & BLOCK_ERROR))
- {
- {
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
-#endif
-
- /* Copy data from the cache buffer */
- memcpy(buff, block->buffer+offset, (size_t) read_length);
-
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
-#endif
- }
- }
-
- remove_reader(block);
-
- /* Error injection for coverage testing. */
- DBUG_EXECUTE_IF("key_cache_read_block_error",
- block->status|= BLOCK_ERROR;);
-
- /* Do not link erroneous blocks into the LRU ring, but free them. */
- if (!(block->status & BLOCK_ERROR))
- {
- /*
- Link the block into the LRU ring if it's the last submitted
- request for the block. This enables eviction for the block.
- */
- unreg_request(keycache, block, 1);
- }
- else
- {
- free_block(keycache, block);
- error= 1;
- break;
- }
-
- next_block:
- buff+= read_length;
- filepos+= read_length+offset;
- offset= 0;
-
- } while ((length-= read_length));
- if (MYSQL_KEYCACHE_READ_DONE_ENABLED())
- {
- MYSQL_KEYCACHE_READ_DONE((ulong) (keycache->blocks_used *
- keycache->key_cache_block_size),
- (ulong) (keycache->blocks_unused *
- keycache->key_cache_block_size));
- }
- goto end;
- }
- KEYCACHE_DBUG_PRINT("key_cache_read", ("keycache not initialized"));
-
-no_key_cache:
- /* Key cache is not used */
-
- keycache->global_cache_r_requests++;
- keycache->global_cache_read++;
-
- if (locked_and_incremented)
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- if (my_pread(file, (uchar*) buff, length, filepos, MYF(MY_NABP)))
- error= 1;
- if (locked_and_incremented)
- keycache_pthread_mutex_lock(&keycache->cache_lock);
-
-end:
- if (locked_and_incremented)
- {
- dec_counter_for_resize_op(keycache);
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- }
- DBUG_PRINT("exit", ("error: %d", error ));
- DBUG_RETURN(error ? (uchar*) 0 : start);
-}
-
-
-/*
- Insert a block of file data from a buffer into key cache
-
- SYNOPSIS
- key_cache_insert()
- keycache pointer to a key cache data structure
- file handler for the file to insert data from
- filepos position of the block of data in the file to insert
- level determines the weight of the data
- buff buffer to read data from
- length length of the data in the buffer
-
- NOTES
- This is used by MyISAM to move all blocks from a index file to the key
- cache
-
- RETURN VALUE
- 0 if a success, 1 - otherwise.
-*/
-
-int key_cache_insert(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length)
-{
- int error= 0;
- DBUG_ENTER("key_cache_insert");
- DBUG_PRINT("enter", ("fd: %u pos: %lu length: %u",
- (uint) file,(ulong) filepos, length));
-
- if (keycache->key_cache_inited)
- {
- /* Key cache is used */
- reg1 BLOCK_LINK *block;
- uint read_length;
- uint offset;
- int page_st;
- my_bool locked_and_incremented= FALSE;
-
- /*
- When the keycache is once initialized, we use the cache_lock to
- reliably distinguish the cases of normal operation, resizing, and
- disabled cache. We always increment and decrement
- 'cnt_for_resize_op' so that a resizer can wait for pending I/O.
- */
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /*
- We do not load index data into a disabled cache nor into an
- ongoing resize.
- */
- if (!keycache->can_be_used || keycache->in_resize)
- goto no_key_cache;
- /* Register the pseudo I/O for the next resize. */
- inc_counter_for_resize_op(keycache);
- locked_and_incremented= TRUE;
- /* Loaded data may not always be aligned to cache blocks. */
- offset= (uint) (filepos % keycache->key_cache_block_size);
- /* Load data in key_cache_block_size increments. */
- do
- {
- /* Cache could be disabled or resizing in a later iteration. */
- if (!keycache->can_be_used || keycache->in_resize)
- goto no_key_cache;
- /* Start loading at the beginning of the cache block. */
- filepos-= offset;
- /* Do not load beyond the end of the cache block. */
- read_length= length;
- set_if_smaller(read_length, keycache->key_cache_block_size-offset);
- KEYCACHE_DBUG_ASSERT(read_length > 0);
-
- /* The block has been read by the caller already. */
- keycache->global_cache_read++;
- /* Request the cache block that matches file/pos. */
- keycache->global_cache_r_requests++;
- block= find_key_block(keycache, file, filepos, level, 0, &page_st);
- if (!block)
- {
- /*
- This happens only for requests submitted during key cache
- resize. The block is not in the cache and shall not go in.
- Stop loading index data.
- */
- goto no_key_cache;
- }
- if (!(block->status & BLOCK_ERROR))
- {
- if ((page_st == PAGE_WAIT_TO_BE_READ) ||
- ((page_st == PAGE_TO_BE_READ) &&
- (offset || (read_length < keycache->key_cache_block_size))))
- {
- /*
- Either
-
- this is a secondary request for a block to be read into the
- cache. The block is in eviction. It is not yet assigned to
- the requested file block (It does not point to the right
- hash_link). So we cannot call remove_reader() on the block.
- And we cannot access the hash_link directly here. We need to
- wait until the assignment is complete. read_block() executes
- the correct wait when called with primary == FALSE.
-
- Or
-
- this is a primary request for a block to be read into the
- cache and the supplied data does not fill the whole block.
-
- This function is called on behalf of a LOAD INDEX INTO CACHE
- statement, which is a read-only task and allows other
- readers. It is possible that a parallel running reader tries
- to access this block. If it needs more data than has been
- supplied here, it would report an error. To be sure that we
- have all data in the block that is available in the file, we
- read the block ourselves.
-
- Though reading again what the caller did read already is an
- expensive operation, we need to do this for correctness.
- */
- read_block(keycache, block, keycache->key_cache_block_size,
- read_length + offset, (page_st == PAGE_TO_BE_READ));
- /*
- A secondary request must now have the block assigned to the
- requested file block. It does not hurt to check it for
- primary requests too.
- */
- DBUG_ASSERT(keycache->can_be_used);
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT(block->hash_link->diskpos == filepos);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- }
- else if (page_st == PAGE_TO_BE_READ)
- {
- /*
- This is a new block in the cache. If we come here, we have
- data for the whole block.
- */
- DBUG_ASSERT(block->hash_link->requests);
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT((page_st == PAGE_TO_BE_READ) ||
- (block->status & BLOCK_READ));
-
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- /*
- Here other threads may step in and register as secondary readers.
- They will register in block->wqueue[COND_FOR_REQUESTED].
- */
-#endif
-
- /* Copy data from buff */
- memcpy(block->buffer+offset, buff, (size_t) read_length);
-
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT((page_st == PAGE_TO_BE_READ) ||
- (block->status & BLOCK_READ));
-#endif
- /*
- After the data is in the buffer, we can declare the block
- valid. Now other threads do not need to register as
- secondary readers any more. They can immediately access the
- block.
- */
- block->status|= BLOCK_READ;
- block->length= read_length+offset;
- /*
- Do not set block->offset here. If this block is marked
- BLOCK_CHANGED later, we want to flush only the modified part. So
- only a writer may set block->offset down from
- keycache->key_cache_block_size.
- */
- KEYCACHE_DBUG_PRINT("key_cache_insert",
- ("primary request: new page in cache"));
- /* Signal all pending requests. */
- release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]);
- }
- else
- {
- /*
- page_st == PAGE_READ. The block is in the buffer. All data
- must already be present. Blocks are always read with all
- data available on file. Assert that the block does not have
- less contents than the preloader supplies. If the caller has
- data beyond block->length, it means that a file write has
- been done while this block was in cache and not extended
- with the new data. If the condition is met, we can simply
- ignore the block.
- */
- DBUG_ASSERT((page_st == PAGE_READ) &&
- (read_length + offset <= block->length));
- }
-
- /*
- A secondary request must now have the block assigned to the
- requested file block. It does not hurt to check it for primary
- requests too.
- */
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT(block->hash_link->diskpos == filepos);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- } /* end of if (!(block->status & BLOCK_ERROR)) */
-
- remove_reader(block);
-
- /* Error injection for coverage testing. */
- DBUG_EXECUTE_IF("key_cache_insert_block_error",
- block->status|= BLOCK_ERROR; errno=EIO;);
-
- /* Do not link erroneous blocks into the LRU ring, but free them. */
- if (!(block->status & BLOCK_ERROR))
- {
- /*
- Link the block into the LRU ring if it's the last submitted
- request for the block. This enables eviction for the block.
- */
- unreg_request(keycache, block, 1);
- }
- else
- {
- free_block(keycache, block);
- error= 1;
- break;
- }
-
- buff+= read_length;
- filepos+= read_length+offset;
- offset= 0;
-
- } while ((length-= read_length));
-
- no_key_cache:
- if (locked_and_incremented)
- dec_counter_for_resize_op(keycache);
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- }
- DBUG_RETURN(error);
-}
-
-
-/*
- Write a buffer into a cached file.
-
- SYNOPSIS
-
- key_cache_write()
- keycache pointer to a key cache data structure
- file handler for the file to write data to
- filepos position in the file to write data to
- level determines the weight of the data
- buff buffer with the data
- length length of the buffer
- dont_write if is 0 then all dirty pages involved in writing
- should have been flushed from key cache
-
- RETURN VALUE
- 0 if a success, 1 - otherwise.
-
- NOTES.
- The function copies the data of size length from buff into buffers
- for key cache blocks that are assigned to contain the portion of
- the file starting with position filepos.
- It ensures that this data is flushed to the file if dont_write is FALSE.
- Filepos must be a multiple of 'block_length', but it doesn't
- have to be a multiple of key_cache_block_size;
-
- dont_write is always TRUE in the server (info->lock_type is never F_UNLCK).
-*/
-
-int key_cache_write(KEY_CACHE *keycache,
- File file, my_off_t filepos, int level,
- uchar *buff, uint length,
- uint block_length __attribute__((unused)),
- int dont_write)
-{
- my_bool locked_and_incremented= FALSE;
- int error=0;
- DBUG_ENTER("key_cache_write");
- DBUG_PRINT("enter",
- ("fd: %u pos: %lu length: %u block_length: %u"
- " key_block_length: %u",
- (uint) file, (ulong) filepos, length, block_length,
- keycache ? keycache->key_cache_block_size : 0));
-
- if (!dont_write)
- {
- /* purecov: begin inspected */
- /* Not used in the server. */
- /* Force writing from buff into disk. */
- keycache->global_cache_w_requests++;
- keycache->global_cache_write++;
- if (my_pwrite(file, buff, length, filepos, MYF(MY_NABP | MY_WAIT_IF_FULL)))
- DBUG_RETURN(1);
- /* purecov: end */
- }
-
-#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
- DBUG_EXECUTE("check_keycache",
- test_key_cache(keycache, "start of key_cache_write", 1););
-#endif
-
- if (keycache->key_cache_inited)
- {
- /* Key cache is used */
- reg1 BLOCK_LINK *block;
- uint read_length;
- uint offset;
- int page_st;
-
- if (MYSQL_KEYCACHE_WRITE_START_ENABLED())
- {
- MYSQL_KEYCACHE_WRITE_START(my_filename(file), length,
- (ulong) (keycache->blocks_used *
- keycache->key_cache_block_size),
- (ulong) (keycache->blocks_unused *
- keycache->key_cache_block_size));
- }
-
- /*
- When the key cache is once initialized, we use the cache_lock to
- reliably distinguish the cases of normal operation, resizing, and
- disabled cache. We always increment and decrement
- 'cnt_for_resize_op' so that a resizer can wait for pending I/O.
- */
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /*
- Cache resizing has two phases: Flushing and re-initializing. In
- the flush phase write requests can modify dirty blocks that are
- not yet in flush. Otherwise they are allowed to bypass the cache.
- find_key_block() returns NULL in both cases (clean blocks and
- non-cached blocks).
-
- After the flush phase new I/O requests must wait until the
- re-initialization is done. The re-initialization can be done only
- if no I/O request is in progress. The reason is that
- key_cache_block_size can change. With enabled cache I/O is done in
- chunks of key_cache_block_size. Every chunk tries to use a cache
- block first. If the block size changes in the middle, a block
- could be missed and data could be written below a cached block.
- */
- while (keycache->in_resize && !keycache->resize_in_flush)
- wait_on_queue(&keycache->resize_queue, &keycache->cache_lock);
- /* Register the I/O for the next resize. */
- inc_counter_for_resize_op(keycache);
- locked_and_incremented= TRUE;
- /* Requested data may not always be aligned to cache blocks. */
- offset= (uint) (filepos % keycache->key_cache_block_size);
- /* Write data in key_cache_block_size increments. */
- do
- {
- /* Cache could be disabled in a later iteration. */
- if (!keycache->can_be_used)
- goto no_key_cache;
-
- MYSQL_KEYCACHE_WRITE_BLOCK(keycache->key_cache_block_size);
- /* Start writing at the beginning of the cache block. */
- filepos-= offset;
- /* Do not write beyond the end of the cache block. */
- read_length= length;
- set_if_smaller(read_length, keycache->key_cache_block_size-offset);
- KEYCACHE_DBUG_ASSERT(read_length > 0);
-
- /* Request the cache block that matches file/pos. */
- keycache->global_cache_w_requests++;
- block= find_key_block(keycache, file, filepos, level, 1, &page_st);
- if (!block)
- {
- /*
- This happens only for requests submitted during key cache
- resize. The block is not in the cache and shall not go in.
- Write directly to file.
- */
- if (dont_write)
- {
- /* Used in the server. */
- keycache->global_cache_write++;
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- if (my_pwrite(file, (uchar*) buff, read_length, filepos + offset,
- MYF(MY_NABP | MY_WAIT_IF_FULL)))
- error=1;
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- }
- goto next_block;
- }
- /*
- Prevent block from flushing and from being selected for to be
- freed. This must be set when we release the cache_lock.
- However, we must not set the status of the block before it is
- assigned to this file/pos.
- */
- if (page_st != PAGE_WAIT_TO_BE_READ)
- block->status|= BLOCK_FOR_UPDATE;
- /*
- We must read the file block first if it is not yet in the cache
- and we do not replace all of its contents.
-
- In cases where the cache block is big enough to contain (parts
- of) index blocks of different indexes, our request can be
- secondary (PAGE_WAIT_TO_BE_READ). In this case another thread is
- reading the file block. If the read completes after us, it
- overwrites our new contents with the old contents. So we have to
- wait for the other thread to complete the read of this block.
- read_block() takes care for the wait.
- */
- if (!(block->status & BLOCK_ERROR) &&
- ((page_st == PAGE_TO_BE_READ &&
- (offset || read_length < keycache->key_cache_block_size)) ||
- (page_st == PAGE_WAIT_TO_BE_READ)))
- {
- read_block(keycache, block,
- offset + read_length >= keycache->key_cache_block_size?
- offset : keycache->key_cache_block_size,
- offset, (page_st == PAGE_TO_BE_READ));
- DBUG_ASSERT(keycache->can_be_used);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- /*
- Prevent block from flushing and from being selected for to be
- freed. This must be set when we release the cache_lock.
- Here we set it in case we could not set it above.
- */
- block->status|= BLOCK_FOR_UPDATE;
- }
- /*
- The block should always be assigned to the requested file block
- here. It need not be BLOCK_READ when overwriting the whole block.
- */
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT(block->hash_link->diskpos == filepos);
- DBUG_ASSERT(block->status & BLOCK_IN_USE);
- DBUG_ASSERT((page_st == PAGE_TO_BE_READ) || (block->status & BLOCK_READ));
- /*
- The block to be written must not be marked BLOCK_REASSIGNED.
- Otherwise it could be freed in dirty state or reused without
- another flush during eviction. It must also not be in flush.
- Otherwise the old contens may have been flushed already and
- the flusher could clear BLOCK_CHANGED without flushing the
- new changes again.
- */
- DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED));
-
- while (block->status & BLOCK_IN_FLUSHWRITE)
- {
- /*
- Another thread is flushing the block. It was dirty already.
- Wait until the block is flushed to file. Otherwise we could
- modify the buffer contents just while it is written to file.
- An unpredictable file block contents would be the result.
- While we wait, several things can happen to the block,
- including another flush. But the block cannot be reassigned to
- another hash_link until we release our request on it.
- */
- wait_on_queue(&block->wqueue[COND_FOR_SAVED], &keycache->cache_lock);
- DBUG_ASSERT(keycache->can_be_used);
- DBUG_ASSERT(block->status & (BLOCK_READ | BLOCK_IN_USE));
- /* Still must not be marked for free. */
- DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED));
- DBUG_ASSERT(block->hash_link && (block->hash_link->block == block));
- }
-
- /*
- We could perhaps release the cache_lock during access of the
- data like in the other functions. Locks outside of the key cache
- assure that readers and a writer do not access the same range of
- data. Parallel accesses should happen only if the cache block
- contains multiple index block(fragment)s. So different parts of
- the buffer would be read/written. An attempt to flush during
- memcpy() is prevented with BLOCK_FOR_UPDATE.
- */
- if (!(block->status & BLOCK_ERROR))
- {
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
-#endif
- memcpy(block->buffer+offset, buff, (size_t) read_length);
-
-#if !defined(SERIALIZED_READ_FROM_CACHE)
- keycache_pthread_mutex_lock(&keycache->cache_lock);
-#endif
- }
-
- if (!dont_write)
- {
- /* Not used in the server. buff has been written to disk at start. */
- if ((block->status & BLOCK_CHANGED) &&
- (!offset && read_length >= keycache->key_cache_block_size))
- link_to_file_list(keycache, block, block->hash_link->file, 1);
- }
- else if (! (block->status & BLOCK_CHANGED))
- link_to_changed_list(keycache, block);
- block->status|=BLOCK_READ;
- /*
- Allow block to be selected for to be freed. Since it is marked
- BLOCK_CHANGED too, it won't be selected for to be freed without
- a flush.
- */
- block->status&= ~BLOCK_FOR_UPDATE;
- set_if_smaller(block->offset, offset);
- set_if_bigger(block->length, read_length+offset);
-
- /* Threads may be waiting for the changes to be complete. */
- release_whole_queue(&block->wqueue[COND_FOR_REQUESTED]);
-
- /*
- If only a part of the cache block is to be replaced, and the
- rest has been read from file, then the cache lock has been
- released for I/O and it could be possible that another thread
- wants to evict or free the block and waits for it to be
- released. So we must not just decrement hash_link->requests, but
- also wake a waiting thread.
- */
- remove_reader(block);
-
- /* Error injection for coverage testing. */
- DBUG_EXECUTE_IF("key_cache_write_block_error",
- block->status|= BLOCK_ERROR;);
-
- /* Do not link erroneous blocks into the LRU ring, but free them. */
- if (!(block->status & BLOCK_ERROR))
- {
- /*
- Link the block into the LRU ring if it's the last submitted
- request for the block. This enables eviction for the block.
- */
- unreg_request(keycache, block, 1);
- }
- else
- {
- /* Pretend a "clean" block to avoid complications. */
- block->status&= ~(BLOCK_CHANGED);
- free_block(keycache, block);
- error= 1;
- break;
- }
-
- next_block:
- buff+= read_length;
- filepos+= read_length+offset;
- offset= 0;
-
- } while ((length-= read_length));
- goto end;
- }
-
-no_key_cache:
- /* Key cache is not used */
- if (dont_write)
- {
- /* Used in the server. */
- keycache->global_cache_w_requests++;
- keycache->global_cache_write++;
- if (locked_and_incremented)
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- if (my_pwrite(file, (uchar*) buff, length, filepos,
- MYF(MY_NABP | MY_WAIT_IF_FULL)))
- error=1;
- if (locked_and_incremented)
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- }
-
-end:
- if (locked_and_incremented)
- {
- dec_counter_for_resize_op(keycache);
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- }
-
- if (MYSQL_KEYCACHE_WRITE_DONE_ENABLED())
- {
- MYSQL_KEYCACHE_WRITE_DONE((ulong) (keycache->blocks_used *
- keycache->key_cache_block_size),
- (ulong) (keycache->blocks_unused *
- keycache->key_cache_block_size));
- }
-
-#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
- DBUG_EXECUTE("exec",
- test_key_cache(keycache, "end of key_cache_write", 1););
-#endif
- DBUG_RETURN(error);
-}
-
-
-/*
- Free block.
-
- SYNOPSIS
- free_block()
- keycache Pointer to a key cache data structure
- block Pointer to the block to free
-
- DESCRIPTION
- Remove reference to block from hash table.
- Remove block from the chain of clean blocks.
- Add block to the free list.
-
- NOTE
- Block must not be free (status == 0).
- Block must not be in free_block_list.
- Block must not be in the LRU ring.
- Block must not be in eviction (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH).
- Block must not be in free (BLOCK_REASSIGNED).
- Block must not be in flush (BLOCK_IN_FLUSH).
- Block must not be dirty (BLOCK_CHANGED).
- Block must not be in changed_blocks (dirty) hash.
- Block must be in file_blocks (clean) hash.
- Block must refer to a hash_link.
- Block must have a request registered on it.
-*/
-
-static void free_block(KEY_CACHE *keycache, BLOCK_LINK *block)
-{
- KEYCACHE_THREAD_TRACE("free block");
- KEYCACHE_DBUG_PRINT("free_block",
- ("block %u to be freed, hash_link %p status: %u",
- BLOCK_NUMBER(block), block->hash_link,
- block->status));
- /*
- Assert that the block is not free already. And that it is in a clean
- state. Note that the block might just be assigned to a hash_link and
- not yet read (BLOCK_READ may not be set here). In this case a reader
- is registered in the hash_link and free_block() will wait for it
- below.
- */
- DBUG_ASSERT((block->status & BLOCK_IN_USE) &&
- !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_REASSIGNED | BLOCK_IN_FLUSH |
- BLOCK_CHANGED | BLOCK_FOR_UPDATE)));
- /* Assert that the block is in a file_blocks chain. */
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- /* Assert that the block is not in the LRU ring. */
- DBUG_ASSERT(!block->next_used && !block->prev_used);
- /*
- IMHO the below condition (if()) makes no sense. I can't see how it
- could be possible that free_block() is entered with a NULL hash_link
- pointer. The only place where it can become NULL is in free_block()
- (or before its first use ever, but for those blocks free_block() is
- not called). I don't remove the conditional as it cannot harm, but
- place an DBUG_ASSERT to confirm my hypothesis. Eventually the
- condition (if()) can be removed.
- */
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block);
- if (block->hash_link)
- {
- /*
- While waiting for readers to finish, new readers might request the
- block. But since we set block->status|= BLOCK_REASSIGNED, they
- will wait on block->wqueue[COND_FOR_SAVED]. They must be signalled
- later.
- */
- block->status|= BLOCK_REASSIGNED;
- wait_for_readers(keycache, block);
- /*
- The block must not have been freed by another thread. Repeat some
- checks. An additional requirement is that it must be read now
- (BLOCK_READ).
- */
- DBUG_ASSERT(block->hash_link && block->hash_link->block == block);
- DBUG_ASSERT((block->status & (BLOCK_READ | BLOCK_IN_USE |
- BLOCK_REASSIGNED)) &&
- !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_IN_FLUSH | BLOCK_CHANGED |
- BLOCK_FOR_UPDATE)));
- DBUG_ASSERT(block->prev_changed && *block->prev_changed == block);
- DBUG_ASSERT(!block->prev_used);
- /*
- Unset BLOCK_REASSIGNED again. If we hand the block to an evicting
- thread (through unreg_request() below), other threads must not see
- this flag. They could become confused.
- */
- block->status&= ~BLOCK_REASSIGNED;
- /*
- Do not release the hash_link until the block is off all lists.
- At least not if we hand it over for eviction in unreg_request().
- */
- }
-
- /*
- Unregister the block request and link the block into the LRU ring.
- This enables eviction for the block. If the LRU ring was empty and
- threads are waiting for a block, then the block wil be handed over
- for eviction immediately. Otherwise we will unlink it from the LRU
- ring again, without releasing the lock in between. So decrementing
- the request counter and updating statistics are the only relevant
- operation in this case. Assert that there are no other requests
- registered.
- */
- DBUG_ASSERT(block->requests == 1);
- unreg_request(keycache, block, 0);
- /*
- Note that even without releasing the cache lock it is possible that
- the block is immediately selected for eviction by link_block() and
- thus not added to the LRU ring. In this case we must not touch the
- block any more.
- */
- if (block->status & BLOCK_IN_EVICTION)
- return;
-
- /* Error blocks are not put into the LRU ring. */
- if (!(block->status & BLOCK_ERROR))
- {
- /* Here the block must be in the LRU ring. Unlink it again. */
- DBUG_ASSERT(block->next_used && block->prev_used &&
- *block->prev_used == block);
- unlink_block(keycache, block);
- }
- if (block->temperature == BLOCK_WARM)
- keycache->warm_blocks--;
- block->temperature= BLOCK_COLD;
-
- /* Remove from file_blocks hash. */
- unlink_changed(block);
-
- /* Remove reference to block from hash table. */
- unlink_hash(keycache, block->hash_link);
- block->hash_link= NULL;
-
- block->status= 0;
- block->length= 0;
- block->offset= keycache->key_cache_block_size;
- KEYCACHE_THREAD_TRACE("free block");
- KEYCACHE_DBUG_PRINT("free_block", ("block is freed"));
-
- /* Enforced by unlink_changed(), but just to be sure. */
- DBUG_ASSERT(!block->next_changed && !block->prev_changed);
- /* Enforced by unlink_block(): not in LRU ring nor in free_block_list. */
- DBUG_ASSERT(!block->next_used && !block->prev_used);
- /* Insert the free block in the free list. */
- block->next_used= keycache->free_block_list;
- keycache->free_block_list= block;
- /* Keep track of the number of currently unused blocks. */
- keycache->blocks_unused++;
-
- /* All pending requests for this page must be resubmitted. */
- release_whole_queue(&block->wqueue[COND_FOR_SAVED]);
-}
-
-
-static int cmp_sec_link(BLOCK_LINK **a, BLOCK_LINK **b)
-{
- return (((*a)->hash_link->diskpos < (*b)->hash_link->diskpos) ? -1 :
- ((*a)->hash_link->diskpos > (*b)->hash_link->diskpos) ? 1 : 0);
-}
-
-
-/*
- Flush a portion of changed blocks to disk,
- free used blocks if requested
-*/
-
-static int flush_cached_blocks(KEY_CACHE *keycache,
- File file, BLOCK_LINK **cache,
- BLOCK_LINK **end,
- enum flush_type type)
-{
- int error;
- int last_errno= 0;
- uint count= (uint) (end-cache);
-
- /* Don't lock the cache during the flush */
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- /*
- As all blocks referred in 'cache' are marked by BLOCK_IN_FLUSH
- we are guarunteed no thread will change them
- */
- my_qsort((uchar*) cache, count, sizeof(*cache), (qsort_cmp) cmp_sec_link);
-
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /*
- Note: Do not break the loop. We have registered a request on every
- block in 'cache'. These must be unregistered by free_block() or
- unreg_request().
- */
- for ( ; cache != end ; cache++)
- {
- BLOCK_LINK *block= *cache;
-
- KEYCACHE_DBUG_PRINT("flush_cached_blocks",
- ("block %u to be flushed", BLOCK_NUMBER(block)));
- /*
- If the block contents is going to be changed, we abandon the flush
- for this block. flush_key_blocks_int() will restart its search and
- handle the block properly.
- */
- if (!(block->status & BLOCK_FOR_UPDATE))
- {
- /* Blocks coming here must have a certain status. */
- DBUG_ASSERT(block->hash_link);
- DBUG_ASSERT(block->hash_link->block == block);
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT((block->status & ~BLOCK_IN_EVICTION) ==
- (BLOCK_READ | BLOCK_IN_FLUSH | BLOCK_CHANGED | BLOCK_IN_USE));
- block->status|= BLOCK_IN_FLUSHWRITE;
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- error= my_pwrite(file, block->buffer+block->offset,
- block->length - block->offset,
- block->hash_link->diskpos+ block->offset,
- MYF(MY_NABP | MY_WAIT_IF_FULL));
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- keycache->global_cache_write++;
- if (error)
- {
- block->status|= BLOCK_ERROR;
- if (!last_errno)
- last_errno= errno ? errno : -1;
- }
- block->status&= ~BLOCK_IN_FLUSHWRITE;
- /* Block must not have changed status except BLOCK_FOR_UPDATE. */
- DBUG_ASSERT(block->hash_link);
- DBUG_ASSERT(block->hash_link->block == block);
- DBUG_ASSERT(block->hash_link->file == file);
- DBUG_ASSERT((block->status & ~(BLOCK_FOR_UPDATE | BLOCK_IN_EVICTION)) ==
- (BLOCK_READ | BLOCK_IN_FLUSH | BLOCK_CHANGED | BLOCK_IN_USE));
- /*
- Set correct status and link in right queue for free or later use.
- free_block() must not see BLOCK_CHANGED and it may need to wait
- for readers of the block. These should not see the block in the
- wrong hash. If not freeing the block, we need to have it in the
- right queue anyway.
- */
- link_to_file_list(keycache, block, file, 1);
- }
- block->status&= ~BLOCK_IN_FLUSH;
- /*
- Let to proceed for possible waiting requests to write to the block page.
- It might happen only during an operation to resize the key cache.
- */
- release_whole_queue(&block->wqueue[COND_FOR_SAVED]);
- /* type will never be FLUSH_IGNORE_CHANGED here */
- if (!(type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE) &&
- !(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_FOR_UPDATE)))
- {
- /*
- Note that a request has been registered against the block in
- flush_key_blocks_int().
- */
- free_block(keycache, block);
- }
- else
- {
- /*
- Link the block into the LRU ring if it's the last submitted
- request for the block. This enables eviction for the block.
- Note that a request has been registered against the block in
- flush_key_blocks_int().
- */
- unreg_request(keycache, block, 1);
- }
-
- } /* end of for ( ; cache != end ; cache++) */
- return last_errno;
-}
-
-
-/*
- Flush all key blocks for a file to disk, but don't do any mutex locks.
-
- SYNOPSIS
- flush_key_blocks_int()
- keycache pointer to a key cache data structure
- file handler for the file to flush to
- flush_type type of the flush
-
- NOTES
- This function doesn't do any mutex locks because it needs to be called both
- from flush_key_blocks and flush_all_key_blocks (the later one does the
- mutex lock in the resize_key_cache() function).
-
- We do only care about changed blocks that exist when the function is
- entered. We do not guarantee that all changed blocks of the file are
- flushed if more blocks change while this function is running.
-
- RETURN
- 0 ok
- 1 error
-*/
-
-static int flush_key_blocks_int(KEY_CACHE *keycache,
- File file, enum flush_type type)
-{
- BLOCK_LINK *cache_buff[FLUSH_CACHE],**cache;
- int last_errno= 0;
- int last_errcnt= 0;
- DBUG_ENTER("flush_key_blocks_int");
- DBUG_PRINT("enter",("file: %d blocks_used: %lu blocks_changed: %lu",
- file, keycache->blocks_used, keycache->blocks_changed));
-
-#if !defined(DBUG_OFF) && defined(EXTRA_DEBUG)
- DBUG_EXECUTE("check_keycache",
- test_key_cache(keycache, "start of flush_key_blocks", 0););
-#endif
-
- cache= cache_buff;
- if (keycache->disk_blocks > 0 &&
- (!my_disable_flush_key_blocks || type != FLUSH_KEEP))
- {
- /* Key cache exists and flush is not disabled */
- int error= 0;
- uint count= FLUSH_CACHE;
- BLOCK_LINK **pos,**end;
- BLOCK_LINK *first_in_switch= NULL;
- BLOCK_LINK *last_in_flush;
- BLOCK_LINK *last_for_update;
- BLOCK_LINK *block, *next;
-#if defined(KEYCACHE_DEBUG)
- uint cnt=0;
-#endif
-
- if (type != FLUSH_IGNORE_CHANGED)
- {
- /*
- Count how many key blocks we have to cache to be able
- to flush all dirty pages with minimum seek moves
- */
- count= 0;
- for (block= keycache->changed_blocks[FILE_HASH(file)] ;
- block ;
- block= block->next_changed)
- {
- if ((block->hash_link->file == file) &&
- !(block->status & BLOCK_IN_FLUSH))
- {
- count++;
- KEYCACHE_DBUG_ASSERT(count<= keycache->blocks_used);
- }
- }
- /*
- Allocate a new buffer only if its bigger than the one we have.
- Assure that we always have some entries for the case that new
- changed blocks appear while we need to wait for something.
- */
- if ((count > FLUSH_CACHE) &&
- !(cache= (BLOCK_LINK**) my_malloc(sizeof(BLOCK_LINK*)*count,
- MYF(0))))
- cache= cache_buff;
- /*
- After a restart there could be more changed blocks than now.
- So we should not let count become smaller than the fixed buffer.
- */
- if (cache == cache_buff)
- count= FLUSH_CACHE;
- }
-
- /* Retrieve the blocks and write them to a buffer to be flushed */
-restart:
- last_in_flush= NULL;
- last_for_update= NULL;
- end= (pos= cache)+count;
- for (block= keycache->changed_blocks[FILE_HASH(file)] ;
- block ;
- block= next)
- {
-#if defined(KEYCACHE_DEBUG)
- cnt++;
- KEYCACHE_DBUG_ASSERT(cnt <= keycache->blocks_used);
-#endif
- next= block->next_changed;
- if (block->hash_link->file == file)
- {
- if (!(block->status & (BLOCK_IN_FLUSH | BLOCK_FOR_UPDATE)))
- {
- /*
- Note: The special handling of BLOCK_IN_SWITCH is obsolete
- since we set BLOCK_IN_FLUSH if the eviction includes a
- flush. It can be removed in a later version.
- */
- if (!(block->status & BLOCK_IN_SWITCH))
- {
- /*
- We care only for the blocks for which flushing was not
- initiated by another thread and which are not in eviction.
- Registering a request on the block unlinks it from the LRU
- ring and protects against eviction.
- */
- reg_requests(keycache, block, 1);
- if (type != FLUSH_IGNORE_CHANGED)
- {
- /* It's not a temporary file */
- if (pos == end)
- {
- /*
- This should happen relatively seldom. Remove the
- request because we won't do anything with the block
- but restart and pick it again in the next iteration.
- */
- unreg_request(keycache, block, 0);
- /*
- This happens only if there is not enough
- memory for the big block
- */
- if ((error= flush_cached_blocks(keycache, file, cache,
- end,type)))
- {
- /* Do not loop infinitely trying to flush in vain. */
- if ((last_errno == error) && (++last_errcnt > 5))
- goto err;
- last_errno= error;
- }
- /*
- Restart the scan as some other thread might have changed
- the changed blocks chain: the blocks that were in switch
- state before the flush started have to be excluded
- */
- goto restart;
- }
- /*
- Mark the block with BLOCK_IN_FLUSH in order not to let
- other threads to use it for new pages and interfere with
- our sequence of flushing dirty file pages. We must not
- set this flag before actually putting the block on the
- write burst array called 'cache'.
- */
- block->status|= BLOCK_IN_FLUSH;
- /* Add block to the array for a write burst. */
- *pos++= block;
- }
- else
- {
- /* It's a temporary file */
- DBUG_ASSERT(!(block->status & BLOCK_REASSIGNED));
- /*
- free_block() must not be called with BLOCK_CHANGED. Note
- that we must not change the BLOCK_CHANGED flag outside of
- link_to_file_list() so that it is always in the correct
- queue and the *blocks_changed counters are correct.
- */
- link_to_file_list(keycache, block, file, 1);
- if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH)))
- {
- /* A request has been registered against the block above. */
- free_block(keycache, block);
- }
- else
- {
- /*
- Link the block into the LRU ring if it's the last
- submitted request for the block. This enables eviction
- for the block. A request has been registered against
- the block above.
- */
- unreg_request(keycache, block, 1);
- }
- }
- }
- else
- {
- /*
- Link the block into a list of blocks 'in switch'.
-
- WARNING: Here we introduce a place where a changed block
- is not in the changed_blocks hash! This is acceptable for
- a BLOCK_IN_SWITCH. Never try this for another situation.
- Other parts of the key cache code rely on changed blocks
- being in the changed_blocks hash.
- */
- unlink_changed(block);
- link_changed(block, &first_in_switch);
- }
- }
- else if (type != FLUSH_KEEP)
- {
- /*
- During the normal flush at end of statement (FLUSH_KEEP) we
- do not need to ensure that blocks in flush or update by
- other threads are flushed. They will be flushed by them
- later. In all other cases we must assure that we do not have
- any changed block of this file in the cache when this
- function returns.
- */
- if (block->status & BLOCK_IN_FLUSH)
- {
- /* Remember the last block found to be in flush. */
- last_in_flush= block;
- }
- else
- {
- /* Remember the last block found to be selected for update. */
- last_for_update= block;
- }
- }
- }
- }
- if (pos != cache)
- {
- if ((error= flush_cached_blocks(keycache, file, cache, pos, type)))
- {
- /* Do not loop inifnitely trying to flush in vain. */
- if ((last_errno == error) && (++last_errcnt > 5))
- goto err;
- last_errno= error;
- }
- /*
- Do not restart here during the normal flush at end of statement
- (FLUSH_KEEP). We have now flushed at least all blocks that were
- changed when entering this function. In all other cases we must
- assure that we do not have any changed block of this file in the
- cache when this function returns.
- */
- if (type != FLUSH_KEEP)
- goto restart;
- }
- if (last_in_flush)
- {
- /*
- There are no blocks to be flushed by this thread, but blocks in
- flush by other threads. Wait until one of the blocks is flushed.
- Re-check the condition for last_in_flush. We may have unlocked
- the cache_lock in flush_cached_blocks(). The state of the block
- could have changed.
- */
- if (last_in_flush->status & BLOCK_IN_FLUSH)
- wait_on_queue(&last_in_flush->wqueue[COND_FOR_SAVED],
- &keycache->cache_lock);
- /* Be sure not to lose a block. They may be flushed in random order. */
- goto restart;
- }
- if (last_for_update)
- {
- /*
- There are no blocks to be flushed by this thread, but blocks for
- update by other threads. Wait until one of the blocks is updated.
- Re-check the condition for last_for_update. We may have unlocked
- the cache_lock in flush_cached_blocks(). The state of the block
- could have changed.
- */
- if (last_for_update->status & BLOCK_FOR_UPDATE)
- wait_on_queue(&last_for_update->wqueue[COND_FOR_REQUESTED],
- &keycache->cache_lock);
- /* The block is now changed. Flush it. */
- goto restart;
- }
-
- /*
- Wait until the list of blocks in switch is empty. The threads that
- are switching these blocks will relink them to clean file chains
- while we wait and thus empty the 'first_in_switch' chain.
- */
- while (first_in_switch)
- {
-#if defined(KEYCACHE_DEBUG)
- cnt= 0;
-#endif
- wait_on_queue(&first_in_switch->wqueue[COND_FOR_SAVED],
- &keycache->cache_lock);
-#if defined(KEYCACHE_DEBUG)
- cnt++;
- KEYCACHE_DBUG_ASSERT(cnt <= keycache->blocks_used);
-#endif
- /*
- Do not restart here. We have flushed all blocks that were
- changed when entering this function and were not marked for
- eviction. Other threads have now flushed all remaining blocks in
- the course of their eviction.
- */
- }
-
- if (! (type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE))
- {
- BLOCK_LINK *last_for_update= NULL;
- BLOCK_LINK *last_in_switch= NULL;
- uint total_found= 0;
- uint found;
-
- /*
- Finally free all clean blocks for this file.
- During resize this may be run by two threads in parallel.
- */
- do
- {
- found= 0;
- for (block= keycache->file_blocks[FILE_HASH(file)] ;
- block ;
- block= next)
- {
- /* Remember the next block. After freeing we cannot get at it. */
- next= block->next_changed;
-
- /* Changed blocks cannot appear in the file_blocks hash. */
- DBUG_ASSERT(!(block->status & BLOCK_CHANGED));
- if (block->hash_link->file == file)
- {
- /* We must skip blocks that will be changed. */
- if (block->status & BLOCK_FOR_UPDATE)
- {
- last_for_update= block;
- continue;
- }
-
- /*
- We must not free blocks in eviction (BLOCK_IN_EVICTION |
- BLOCK_IN_SWITCH) or blocks intended to be freed
- (BLOCK_REASSIGNED).
- */
- if (!(block->status & (BLOCK_IN_EVICTION | BLOCK_IN_SWITCH |
- BLOCK_REASSIGNED)))
- {
- struct st_hash_link *UNINIT_VAR(next_hash_link);
- my_off_t UNINIT_VAR(next_diskpos);
- File UNINIT_VAR(next_file);
- uint UNINIT_VAR(next_status);
- uint UNINIT_VAR(hash_requests);
-
- total_found++;
- found++;
- KEYCACHE_DBUG_ASSERT(found <= keycache->blocks_used);
-
- /*
- Register a request. This unlinks the block from the LRU
- ring and protects it against eviction. This is required
- by free_block().
- */
- reg_requests(keycache, block, 1);
-
- /*
- free_block() may need to wait for readers of the block.
- This is the moment where the other thread can move the
- 'next' block from the chain. free_block() needs to wait
- if there are requests for the block pending.
- */
- if (next && (hash_requests= block->hash_link->requests))
- {
- /* Copy values from the 'next' block and its hash_link. */
- next_status= next->status;
- next_hash_link= next->hash_link;
- next_diskpos= next_hash_link->diskpos;
- next_file= next_hash_link->file;
- DBUG_ASSERT(next == next_hash_link->block);
- }
-
- free_block(keycache, block);
- /*
- If we had to wait and the state of the 'next' block
- changed, break the inner loop. 'next' may no longer be
- part of the current chain.
-
- We do not want to break the loop after every free_block(),
- not even only after waits. The chain might be quite long
- and contain blocks for many files. Traversing it again and
- again to find more blocks for this file could become quite
- inefficient.
- */
- if (next && hash_requests &&
- ((next_status != next->status) ||
- (next_hash_link != next->hash_link) ||
- (next_file != next_hash_link->file) ||
- (next_diskpos != next_hash_link->diskpos) ||
- (next != next_hash_link->block)))
- break;
- }
- else
- {
- last_in_switch= block;
- }
- }
- } /* end for block in file_blocks */
- } while (found);
-
- /*
- If any clean block has been found, we may have waited for it to
- become free. In this case it could be possible that another clean
- block became dirty. This is possible if the write request existed
- before the flush started (BLOCK_FOR_UPDATE). Re-check the hashes.
- */
- if (total_found)
- goto restart;
-
- /*
- To avoid an infinite loop, wait until one of the blocks marked
- for update is updated.
- */
- if (last_for_update)
- {
- /* We did not wait. Block must not have changed status. */
- DBUG_ASSERT(last_for_update->status & BLOCK_FOR_UPDATE);
- wait_on_queue(&last_for_update->wqueue[COND_FOR_REQUESTED],
- &keycache->cache_lock);
- goto restart;
- }
-
- /*
- To avoid an infinite loop wait until one of the blocks marked
- for eviction is switched.
- */
- if (last_in_switch)
- {
- /* We did not wait. Block must not have changed status. */
- DBUG_ASSERT(last_in_switch->status & (BLOCK_IN_EVICTION |
- BLOCK_IN_SWITCH |
- BLOCK_REASSIGNED));
- wait_on_queue(&last_in_switch->wqueue[COND_FOR_SAVED],
- &keycache->cache_lock);
- goto restart;
- }
-
- } /* if (! (type == FLUSH_KEEP || type == FLUSH_FORCE_WRITE)) */
-
- } /* if (keycache->disk_blocks > 0 */
-
-#ifndef DBUG_OFF
- DBUG_EXECUTE("check_keycache",
- test_key_cache(keycache, "end of flush_key_blocks", 0););
-#endif
-err:
- if (cache != cache_buff)
- my_free(cache);
- if (last_errno)
- errno=last_errno; /* Return first error */
- DBUG_RETURN(last_errno != 0);
-}
-
-
-/*
- Flush all blocks for a file to disk
-
- SYNOPSIS
-
- flush_key_blocks()
- keycache pointer to a key cache data structure
- file handler for the file to flush to
- flush_type type of the flush
-
- RETURN
- 0 ok
- 1 error
-*/
-
-int flush_key_blocks(KEY_CACHE *keycache,
- File file, enum flush_type type)
-{
- int res= 0;
- DBUG_ENTER("flush_key_blocks");
- DBUG_PRINT("enter", ("keycache: 0x%lx", (long) keycache));
-
- if (!keycache->key_cache_inited)
- DBUG_RETURN(0);
-
- keycache_pthread_mutex_lock(&keycache->cache_lock);
- /* While waiting for lock, keycache could have been ended. */
- if (keycache->disk_blocks > 0)
- {
- inc_counter_for_resize_op(keycache);
- res= flush_key_blocks_int(keycache, file, type);
- dec_counter_for_resize_op(keycache);
- }
- keycache_pthread_mutex_unlock(&keycache->cache_lock);
- DBUG_RETURN(res);
-}
-
-
-/*
- Flush all blocks in the key cache to disk.
-
- SYNOPSIS
- flush_all_key_blocks()
- keycache pointer to key cache root structure
-
- DESCRIPTION
-
- Flushing of the whole key cache is done in two phases.
-
- 1. Flush all changed blocks, waiting for them if necessary. Loop
- until there is no changed block left in the cache.
-
- 2. Free all clean blocks. Normally this means free all blocks. The
- changed blocks were flushed in phase 1 and became clean. However we
- may need to wait for blocks that are read by other threads. While we
- wait, a clean block could become changed if that operation started
- before the resize operation started. To be safe we must restart at
- phase 1.
-
- When we can run through the changed_blocks and file_blocks hashes
- without finding a block any more, then we are done.
-
- Note that we hold keycache->cache_lock all the time unless we need
- to wait for something.
-
- RETURN
- 0 OK
- != 0 Error
-*/
-
-static int flush_all_key_blocks(KEY_CACHE *keycache)
-{
- BLOCK_LINK *block;
- uint total_found;
- uint found;
- uint idx;
- DBUG_ENTER("flush_all_key_blocks");
-
- do
- {
- mysql_mutex_assert_owner(&keycache->cache_lock);
- total_found= 0;
-
- /*
- Phase1: Flush all changed blocks, waiting for them if necessary.
- Loop until there is no changed block left in the cache.
- */
- do
- {
- found= 0;
- /* Step over the whole changed_blocks hash array. */
- for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++)
- {
- /*
- If an array element is non-empty, use the first block from its
- chain to find a file for flush. All changed blocks for this
- file are flushed. So the same block will not appear at this
- place again with the next iteration. New writes for blocks are
- not accepted during the flush. If multiple files share the
- same hash bucket, one of them will be flushed per iteration
- of the outer loop of phase 1.
- */
- if ((block= keycache->changed_blocks[idx]))
- {
- found++;
- /*
- Flush dirty blocks but do not free them yet. They can be used
- for reading until all other blocks are flushed too.
- */
- if (flush_key_blocks_int(keycache, block->hash_link->file,
- FLUSH_FORCE_WRITE))
- DBUG_RETURN(1);
- }
- }
-
- } while (found);
-
- /*
- Phase 2: Free all clean blocks. Normally this means free all
- blocks. The changed blocks were flushed in phase 1 and became
- clean. However we may need to wait for blocks that are read by
- other threads. While we wait, a clean block could become changed
- if that operation started before the resize operation started. To
- be safe we must restart at phase 1.
- */
- do
- {
- found= 0;
- /* Step over the whole file_blocks hash array. */
- for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++)
- {
- /*
- If an array element is non-empty, use the first block from its
- chain to find a file for flush. All blocks for this file are
- freed. So the same block will not appear at this place again
- with the next iteration. If multiple files share the
- same hash bucket, one of them will be flushed per iteration
- of the outer loop of phase 2.
- */
- if ((block= keycache->file_blocks[idx]))
- {
- total_found++;
- found++;
- if (flush_key_blocks_int(keycache, block->hash_link->file,
- FLUSH_RELEASE))
- DBUG_RETURN(1);
- }
- }
-
- } while (found);
-
- /*
- If any clean block has been found, we may have waited for it to
- become free. In this case it could be possible that another clean
- block became dirty. This is possible if the write request existed
- before the resize started (BLOCK_FOR_UPDATE). Re-check the hashes.
- */
- } while (total_found);
-
-#ifndef DBUG_OFF
- /* Now there should not exist any block any more. */
- for (idx= 0; idx < CHANGED_BLOCKS_HASH; idx++)
- {
- DBUG_ASSERT(!keycache->changed_blocks[idx]);
- DBUG_ASSERT(!keycache->file_blocks[idx]);
- }
-#endif
-
- DBUG_RETURN(0);
-}
-
-
-/*
- Reset the counters of a key cache.
-
- SYNOPSIS
- reset_key_cache_counters()
- name the name of a key cache
- key_cache pointer to the key kache to be reset
-
- DESCRIPTION
- This procedure is used by process_key_caches() to reset the counters of all
- currently used key caches, both the default one and the named ones.
-
- RETURN
- 0 on success (always because it can't fail)
-*/
-
-int reset_key_cache_counters(const char *name __attribute__((unused)),
- KEY_CACHE *key_cache)
-{
- DBUG_ENTER("reset_key_cache_counters");
- if (!key_cache->key_cache_inited)
- {
- DBUG_PRINT("info", ("Key cache %s not initialized.", name));
- DBUG_RETURN(0);
- }
- DBUG_PRINT("info", ("Resetting counters for key cache %s.", name));
-
- key_cache->global_blocks_changed= 0; /* Key_blocks_not_flushed */
- key_cache->global_cache_r_requests= 0; /* Key_read_requests */
- key_cache->global_cache_read= 0; /* Key_reads */
- key_cache->global_cache_w_requests= 0; /* Key_write_requests */
- key_cache->global_cache_write= 0; /* Key_writes */
- DBUG_RETURN(0);
-}
-
-
-#ifndef DBUG_OFF
-/*
- Test if disk-cache is ok
-*/
-static void test_key_cache(KEY_CACHE *keycache __attribute__((unused)),
- const char *where __attribute__((unused)),
- my_bool lock __attribute__((unused)))
-{
- /* TODO */
-}
-#endif
-
-#if defined(KEYCACHE_TIMEOUT)
-
-#define KEYCACHE_DUMP_FILE "keycache_dump.txt"
-#define MAX_QUEUE_LEN 100
-
-
-static void keycache_dump(KEY_CACHE *keycache)
-{
- FILE *keycache_dump_file=fopen(KEYCACHE_DUMP_FILE, "w");
- struct st_my_thread_var *last;
- struct st_my_thread_var *thread;
- BLOCK_LINK *block;
- HASH_LINK *hash_link;
- KEYCACHE_PAGE *page;
- uint i;
-
- fprintf(keycache_dump_file, "thread:%u\n", thread->id);
-
- i=0;
- thread=last=waiting_for_hash_link.last_thread;
- fprintf(keycache_dump_file, "queue of threads waiting for hash link\n");
- if (thread)
- do
- {
- thread=thread->next;
- page= (KEYCACHE_PAGE *) thread->opt_info;
- fprintf(keycache_dump_file,
- "thread:%u, (file,filepos)=(%u,%lu)\n",
- thread->id,(uint) page->file,(ulong) page->filepos);
- if (++i == MAX_QUEUE_LEN)
- break;
- }
- while (thread != last);
-
- i=0;
- thread=last=waiting_for_block.last_thread;
- fprintf(keycache_dump_file, "queue of threads waiting for block\n");
- if (thread)
- do
- {
- thread=thread->next;
- hash_link= (HASH_LINK *) thread->opt_info;
- fprintf(keycache_dump_file,
- "thread:%u hash_link:%u (file,filepos)=(%u,%lu)\n",
- thread->id, (uint) HASH_LINK_NUMBER(hash_link),
- (uint) hash_link->file,(ulong) hash_link->diskpos);
- if (++i == MAX_QUEUE_LEN)
- break;
- }
- while (thread != last);
-
- for (i=0 ; i< keycache->blocks_used ; i++)
- {
- int j;
- block= &keycache->block_root[i];
- hash_link= block->hash_link;
- fprintf(keycache_dump_file,
- "block:%u hash_link:%d status:%x #requests=%u waiting_for_readers:%d\n",
- i, (int) (hash_link ? HASH_LINK_NUMBER(hash_link) : -1),
- block->status, block->requests, block->condvar ? 1 : 0);
- for (j=0 ; j < 2; j++)
- {
- KEYCACHE_WQUEUE *wqueue=&block->wqueue[j];
- thread= last= wqueue->last_thread;
- fprintf(keycache_dump_file, "queue #%d\n", j);
- if (thread)
- {
- do
- {
- thread=thread->next;
- fprintf(keycache_dump_file,
- "thread:%u\n", thread->id);
- if (++i == MAX_QUEUE_LEN)
- break;
- }
- while (thread != last);
- }
- }
- }
- fprintf(keycache_dump_file, "LRU chain:");
- block= keycache= used_last;
- if (block)
- {
- do
- {
- block= block->next_used;
- fprintf(keycache_dump_file,
- "block:%u, ", BLOCK_NUMBER(block));
- }
- while (block != keycache->used_last);
- }
- fprintf(keycache_dump_file, "\n");
-
- fclose(keycache_dump_file);
-}
-
-#endif /* defined(KEYCACHE_TIMEOUT) */
-
-#if defined(KEYCACHE_TIMEOUT) && !defined(__WIN__)
-
-
-static int keycache_pthread_cond_wait(mysql_cond_t *cond,
- mysql_mutex_t *mutex)
-{
- int rc;
- struct timeval now; /* time when we started waiting */
- struct timespec timeout; /* timeout value for the wait function */
- struct timezone tz;
-#if defined(KEYCACHE_DEBUG)
- int cnt=0;
-#endif
-
- /* Get current time */
- gettimeofday(&now, &tz);
- /* Prepare timeout value */
- timeout.tv_sec= now.tv_sec + KEYCACHE_TIMEOUT;
- /*
- timeval uses microseconds.
- timespec uses nanoseconds.
- 1 nanosecond = 1000 micro seconds
- */
- timeout.tv_nsec= now.tv_usec * 1000;
- KEYCACHE_THREAD_TRACE_END("started waiting");
-#if defined(KEYCACHE_DEBUG)
- cnt++;
- if (cnt % 100 == 0)
- fprintf(keycache_debug_log, "waiting...\n");
- fflush(keycache_debug_log);
-#endif
- rc= mysql_cond_timedwait(cond, mutex, &timeout);
- KEYCACHE_THREAD_TRACE_BEGIN("finished waiting");
- if (rc == ETIMEDOUT || rc == ETIME)
- {
-#if defined(KEYCACHE_DEBUG)
- fprintf(keycache_debug_log,"aborted by keycache timeout\n");
- fclose(keycache_debug_log);
- abort();
-#endif
- keycache_dump();
- }
-
-#if defined(KEYCACHE_DEBUG)
- KEYCACHE_DBUG_ASSERT(rc != ETIMEDOUT);
-#else
- assert(rc != ETIMEDOUT);
-#endif
- return rc;
-}
-#else
-#if defined(KEYCACHE_DEBUG)
-static int keycache_pthread_cond_wait(mysql_cond_t *cond,
- mysql_mutex_t *mutex)
-{
- int rc;
- KEYCACHE_THREAD_TRACE_END("started waiting");
- rc= mysql_cond_wait(cond, mutex);
- KEYCACHE_THREAD_TRACE_BEGIN("finished waiting");
- return rc;
-}
-#endif
-#endif /* defined(KEYCACHE_TIMEOUT) && !defined(__WIN__) */
-
-#if defined(KEYCACHE_DEBUG)
-
-
-static int keycache_pthread_mutex_lock(mysql_mutex_t *mutex)
-{
- int rc;
- rc= mysql_mutex_lock(mutex);
- KEYCACHE_THREAD_TRACE_BEGIN("");
- return rc;
-}
-
-
-static void keycache_pthread_mutex_unlock(mysql_mutex_t *mutex)
-{
- KEYCACHE_THREAD_TRACE_END("");
- mysql_mutex_unlock(mutex);
-}
-
-
-static int keycache_pthread_cond_signal(mysql_cond_t *cond)
-{
- int rc;
- KEYCACHE_THREAD_TRACE("signal");
- rc= mysql_cond_signal(cond);
- return rc;
-}
-
-
-#if defined(KEYCACHE_DEBUG_LOG)
-
-
-static void keycache_debug_print(const char * fmt,...)
-{
- va_list args;
- va_start(args,fmt);
- if (keycache_debug_log)
- {
- (void) vfprintf(keycache_debug_log, fmt, args);
- (void) fputc('\n',keycache_debug_log);
- }
- va_end(args);
-}
-#endif /* defined(KEYCACHE_DEBUG_LOG) */
-
-#if defined(KEYCACHE_DEBUG_LOG)
-
-
-void keycache_debug_log_close(void)
-{
- if (keycache_debug_log)
- fclose(keycache_debug_log);
-}
-#endif /* defined(KEYCACHE_DEBUG_LOG) */
-
-#endif /* defined(KEYCACHE_DEBUG) */
-
-#if !defined(DBUG_OFF)
-#define F_B_PRT(_f_, _v_) DBUG_PRINT("assert_fail", (_f_, _v_))
-
-static int fail_block(BLOCK_LINK *block)
-{
- F_B_PRT("block->next_used: %lx\n", (ulong) block->next_used);
- F_B_PRT("block->prev_used: %lx\n", (ulong) block->prev_used);
- F_B_PRT("block->next_changed: %lx\n", (ulong) block->next_changed);
- F_B_PRT("block->prev_changed: %lx\n", (ulong) block->prev_changed);
- F_B_PRT("block->hash_link: %lx\n", (ulong) block->hash_link);
- F_B_PRT("block->status: %u\n", block->status);
- F_B_PRT("block->length: %u\n", block->length);
- F_B_PRT("block->offset: %u\n", block->offset);
- F_B_PRT("block->requests: %u\n", block->requests);
- F_B_PRT("block->temperature: %u\n", block->temperature);
- return 0; /* Let the assert fail. */
-}
-
-static int fail_hlink(HASH_LINK *hlink)
-{
- F_B_PRT("hlink->next: %lx\n", (ulong) hlink->next);
- F_B_PRT("hlink->prev: %lx\n", (ulong) hlink->prev);
- F_B_PRT("hlink->block: %lx\n", (ulong) hlink->block);
- F_B_PRT("hlink->diskpos: %lu\n", (ulong) hlink->diskpos);
- F_B_PRT("hlink->file: %d\n", hlink->file);
- return 0; /* Let the assert fail. */
-}
-
-static int cache_empty(KEY_CACHE *keycache)
-{
- int errcnt= 0;
- int idx;
- if (keycache->disk_blocks <= 0)
- return 1;
- for (idx= 0; idx < keycache->disk_blocks; idx++)
- {
- BLOCK_LINK *block= keycache->block_root + idx;
- if (block->status || block->requests || block->hash_link)
- {
- fprintf(stderr, "block index: %u\n", idx);
- fail_block(block);
- errcnt++;
- }
- }
- for (idx= 0; idx < keycache->hash_links; idx++)
- {
- HASH_LINK *hash_link= keycache->hash_link_root + idx;
- if (hash_link->requests || hash_link->block)
- {
- fprintf(stderr, "hash_link index: %u\n", idx);
- fail_hlink(hash_link);
- errcnt++;
- }
- }
- if (errcnt)
- {
- fprintf(stderr, "blocks: %d used: %lu\n",
- keycache->disk_blocks, keycache->blocks_used);
- fprintf(stderr, "hash_links: %d used: %d\n",
- keycache->hash_links, keycache->hash_links_used);
- fprintf(stderr, "\n");
- }
- return !errcnt;
-}
-#endif
-
diff --git a/dep/mysqllite/mysys/mf_keycaches.c b/dep/mysqllite/mysys/mf_keycaches.c
deleted file mode 100644
index 93b7eab4561..00000000000
--- a/dep/mysqllite/mysys/mf_keycaches.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Handling of multiple key caches
-
- The idea is to have a thread safe hash on the table name,
- with a default key cache value that is returned if the table name is not in
- the cache.
-*/
-
-#include "mysys_priv.h"
-#include <keycache.h>
-#include <hash.h>
-#include <m_string.h>
-
-/*****************************************************************************
- General functions to handle SAFE_HASH objects.
-
- A SAFE_HASH object is used to store the hash, the mutex and default value
- needed by the rest of the key cache code.
- This is a separate struct to make it easy to later reuse the code for other
- purposes
-
- All entries are linked in a list to allow us to traverse all elements
- and delete selected ones. (HASH doesn't allow any easy ways to do this).
-*****************************************************************************/
-
-/*
- Struct to store a key and pointer to object
-*/
-
-typedef struct st_safe_hash_entry
-{
- uchar *key;
- uint length;
- uchar *data;
- struct st_safe_hash_entry *next, **prev;
-} SAFE_HASH_ENTRY;
-
-
-typedef struct st_safe_hash_with_default
-{
- rw_lock_t mutex;
- HASH hash;
- uchar *default_value;
- SAFE_HASH_ENTRY *root;
-} SAFE_HASH;
-
-
-/*
- Free a SAFE_HASH_ENTRY
-
- This function is called by the hash object on delete
-*/
-
-static void safe_hash_entry_free(SAFE_HASH_ENTRY *entry)
-{
- DBUG_ENTER("free_assign_entry");
- my_free(entry);
- DBUG_VOID_RETURN;
-}
-
-
-/* Get key and length for a SAFE_HASH_ENTRY */
-
-static uchar *safe_hash_entry_get(SAFE_HASH_ENTRY *entry, size_t *length,
- my_bool not_used __attribute__((unused)))
-{
- *length=entry->length;
- return (uchar*) entry->key;
-}
-
-
-/*
- Init a SAFE_HASH object
-
- SYNOPSIS
- safe_hash_init()
- hash safe_hash handler
- elements Expected max number of elements
- default_value default value
-
- NOTES
- In case of error we set hash->default_value to 0 to allow one to call
- safe_hash_free on an object that couldn't be initialized.
-
- RETURN
- 0 ok
- 1 error
-*/
-
-static my_bool safe_hash_init(SAFE_HASH *hash, uint elements,
- uchar *default_value)
-{
- DBUG_ENTER("safe_hash");
- if (my_hash_init(&hash->hash, &my_charset_bin, elements,
- 0, 0, (my_hash_get_key) safe_hash_entry_get,
- (void (*)(void*)) safe_hash_entry_free, 0))
- {
- hash->default_value= 0;
- DBUG_RETURN(1);
- }
- my_rwlock_init(&hash->mutex, 0);
- hash->default_value= default_value;
- hash->root= 0;
- DBUG_RETURN(0);
-}
-
-
-/*
- Free a SAFE_HASH object
-
- NOTES
- This is safe to call on any object that has been sent to safe_hash_init()
-*/
-
-static void safe_hash_free(SAFE_HASH *hash)
-{
- /*
- Test if safe_hash_init succeeded. This will also guard us against multiple
- free calls.
- */
- if (hash->default_value)
- {
- my_hash_free(&hash->hash);
- rwlock_destroy(&hash->mutex);
- hash->default_value=0;
- }
-}
-
-/*
- Return the value stored for a key or default value if no key
-*/
-
-static uchar *safe_hash_search(SAFE_HASH *hash, const uchar *key, uint length)
-{
- uchar *result;
- DBUG_ENTER("safe_hash_search");
- rw_rdlock(&hash->mutex);
- result= my_hash_search(&hash->hash, key, length);
- rw_unlock(&hash->mutex);
- if (!result)
- result= hash->default_value;
- else
- result= ((SAFE_HASH_ENTRY*) result)->data;
- DBUG_PRINT("exit",("data: 0x%lx", (long) result));
- DBUG_RETURN(result);
-}
-
-
-/*
- Associate a key with some data
-
- SYONOPSIS
- safe_hash_set()
- hash Hash handle
- key key (path to table etc..)
- length Length of key
- data data to to associate with the data
-
- NOTES
- This can be used both to insert a new entry and change an existing
- entry.
- If one associates a key with the default key cache, the key is deleted
-
- RETURN
- 0 ok
- 1 error (Can only be EOM). In this case my_message() is called.
-*/
-
-static my_bool safe_hash_set(SAFE_HASH *hash, const uchar *key, uint length,
- uchar *data)
-{
- SAFE_HASH_ENTRY *entry;
- my_bool error= 0;
- DBUG_ENTER("safe_hash_set");
- DBUG_PRINT("enter",("key: %.*s data: 0x%lx", length, key, (long) data));
-
- rw_wrlock(&hash->mutex);
- entry= (SAFE_HASH_ENTRY*) my_hash_search(&hash->hash, key, length);
-
- if (data == hash->default_value)
- {
- /*
- The key is to be associated with the default entry. In this case
- we can just delete the entry (if it existed) from the hash as a
- search will return the default entry
- */
- if (!entry) /* nothing to do */
- goto end;
- /* unlink entry from list */
- if ((*entry->prev= entry->next))
- entry->next->prev= entry->prev;
- my_hash_delete(&hash->hash, (uchar*) entry);
- goto end;
- }
- if (entry)
- {
- /* Entry existed; Just change the pointer to point at the new data */
- entry->data= data;
- }
- else
- {
- if (!(entry= (SAFE_HASH_ENTRY *) my_malloc(sizeof(*entry) + length,
- MYF(MY_WME))))
- {
- error= 1;
- goto end;
- }
- entry->key= (uchar*) (entry +1);
- memcpy((char*) entry->key, (char*) key, length);
- entry->length= length;
- entry->data= data;
- /* Link entry to list */
- if ((entry->next= hash->root))
- entry->next->prev= &entry->next;
- entry->prev= &hash->root;
- hash->root= entry;
- if (my_hash_insert(&hash->hash, (uchar*) entry))
- {
- /* This can only happen if hash got out of memory */
- my_free(entry);
- error= 1;
- goto end;
- }
- }
-
-end:
- rw_unlock(&hash->mutex);
- DBUG_RETURN(error);
-}
-
-
-/*
- Change all entres with one data value to another data value
-
- SYONOPSIS
- safe_hash_change()
- hash Hash handle
- old_data Old data
- new_data Change all 'old_data' to this
-
- NOTES
- We use the linked list to traverse all elements in the hash as
- this allows us to delete elements in the case where 'new_data' is the
- default value.
-*/
-
-static void safe_hash_change(SAFE_HASH *hash, uchar *old_data, uchar *new_data)
-{
- SAFE_HASH_ENTRY *entry, *next;
- DBUG_ENTER("safe_hash_set");
-
- rw_wrlock(&hash->mutex);
-
- for (entry= hash->root ; entry ; entry= next)
- {
- next= entry->next;
- if (entry->data == old_data)
- {
- if (new_data == hash->default_value)
- {
- if ((*entry->prev= entry->next))
- entry->next->prev= entry->prev;
- my_hash_delete(&hash->hash, (uchar*) entry);
- }
- else
- entry->data= new_data;
- }
- }
-
- rw_unlock(&hash->mutex);
- DBUG_VOID_RETURN;
-}
-
-
-/*****************************************************************************
- Functions to handle the key cache objects
-*****************************************************************************/
-
-/* Variable to store all key cache objects */
-static SAFE_HASH key_cache_hash;
-
-
-my_bool multi_keycache_init(void)
-{
- return safe_hash_init(&key_cache_hash, 16, (uchar*) dflt_key_cache);
-}
-
-
-void multi_keycache_free(void)
-{
- safe_hash_free(&key_cache_hash);
-}
-
-/*
- Get a key cache to be used for a specific table.
-
- SYNOPSIS
- multi_key_cache_search()
- key key to find (usually table path)
- uint length Length of key.
-
- NOTES
- This function is coded in such a way that we will return the
- default key cache even if one never called multi_keycache_init.
- This will ensure that it works with old MyISAM clients.
-
- RETURN
- key cache to use
-*/
-
-KEY_CACHE *multi_key_cache_search(uchar *key, uint length)
-{
- if (!key_cache_hash.hash.records)
- return dflt_key_cache;
- return (KEY_CACHE*) safe_hash_search(&key_cache_hash, key, length);
-}
-
-
-/*
- Assosiate a key cache with a key
-
-
- SYONOPSIS
- multi_key_cache_set()
- key key (path to table etc..)
- length Length of key
- key_cache cache to assococite with the table
-
- NOTES
- This can be used both to insert a new entry and change an existing
- entry
-*/
-
-
-my_bool multi_key_cache_set(const uchar *key, uint length,
- KEY_CACHE *key_cache)
-{
- return safe_hash_set(&key_cache_hash, key, length, (uchar*) key_cache);
-}
-
-
-void multi_key_cache_change(KEY_CACHE *old_data,
- KEY_CACHE *new_data)
-{
- safe_hash_change(&key_cache_hash, (uchar*) old_data, (uchar*) new_data);
-}
diff --git a/dep/mysqllite/mysys/mf_loadpath.c b/dep/mysqllite/mysys/mf_loadpath.c
deleted file mode 100644
index 9350babc176..00000000000
--- a/dep/mysqllite/mysys/mf_loadpath.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
- /* Returns full load-path for a file. to may be = path */
- /* if path is a hard-path return path */
- /* if path starts with home-dir return path */
- /* if path starts with current dir or parent-dir unpack path */
- /* if there is no path, prepend with own_path_prefix if given */
- /* else unpack path according to current dir */
-
-char * my_load_path(char * to, const char *path,
- const char *own_path_prefix)
-{
- char buff[FN_REFLEN];
- int is_cur;
- DBUG_ENTER("my_load_path");
- DBUG_PRINT("enter",("path: %s prefix: %s",path,
- own_path_prefix ? own_path_prefix : ""));
-
- if ((path[0] == FN_HOMELIB && path[1] == FN_LIBCHAR) ||
- test_if_hard_path(path))
- (void) strnmov(buff, path, FN_REFLEN);
- else if ((is_cur=(path[0] == FN_CURLIB && path[1] == FN_LIBCHAR)) ||
- (is_prefix(path,FN_PARENTDIR)) ||
- ! own_path_prefix)
- {
- if (is_cur)
- is_cur=2; /* Remove current dir */
- if (! my_getwd(buff,(uint) (FN_REFLEN-strlen(path)+is_cur),MYF(0)))
- (void) strncat(buff, path+is_cur, FN_REFLEN-1);
- else
- (void) strnmov(buff, path, FN_REFLEN); /* Return org file name */
- }
- else
- (void) strxnmov(buff, FN_REFLEN, own_path_prefix, path, NullS);
- strnmov(to, buff, FN_REFLEN);
- to[FN_REFLEN-1]= '\0';
- DBUG_PRINT("exit",("to: %s",to));
- DBUG_RETURN(to);
-} /* my_load_path */
diff --git a/dep/mysqllite/mysys/mf_pack.c b/dep/mysqllite/mysys/mf_pack.c
deleted file mode 100644
index 292cd8c0454..00000000000
--- a/dep/mysqllite/mysys/mf_pack.c
+++ /dev/null
@@ -1,460 +0,0 @@
-/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-
-static char * expand_tilde(char **path);
-
- /* Pack a dirname ; Changes HOME to ~/ and current dev to ./ */
- /* from is a dirname (from dirname() ?) ending with FN_LIBCHAR */
- /* to may be == from */
-
-void pack_dirname(char * to, const char *from)
-{
- int cwd_err;
- size_t d_length,length,UNINIT_VAR(buff_length);
- char * start;
- char buff[FN_REFLEN];
- DBUG_ENTER("pack_dirname");
-
- (void) intern_filename(to,from); /* Change to intern name */
-
-#ifdef FN_DEVCHAR
- if ((start=strrchr(to,FN_DEVCHAR)) != 0) /* Skip device part */
- start++;
- else
-#endif
- start=to;
-
- if (!(cwd_err= my_getwd(buff,FN_REFLEN,MYF(0))))
- {
- buff_length= strlen(buff);
- d_length= (size_t) (start-to);
- if ((start == to ||
- (buff_length == d_length && !memcmp(buff,start,d_length))) &&
- *start != FN_LIBCHAR && *start)
- { /* Put current dir before */
- bchange((uchar*) to, d_length, (uchar*) buff, buff_length, strlen(to)+1);
- }
- }
-
- if ((d_length= cleanup_dirname(to,to)) != 0)
- {
- length=0;
- if (home_dir)
- {
- length= strlen(home_dir);
- if (home_dir[length-1] == FN_LIBCHAR)
- length--; /* Don't test last '/' */
- }
- if (length > 1 && length < d_length)
- { /* test if /xx/yy -> ~/yy */
- if (memcmp(to,home_dir,length) == 0 && to[length] == FN_LIBCHAR)
- {
- to[0]=FN_HOMELIB; /* Filename begins with ~ */
- (void) strmov_overlapp(to+1,to+length);
- }
- }
- if (! cwd_err)
- { /* Test if cwd is ~/... */
- if (length > 1 && length < buff_length)
- {
- if (memcmp(buff,home_dir,length) == 0 && buff[length] == FN_LIBCHAR)
- {
- buff[0]=FN_HOMELIB;
- (void) strmov_overlapp(buff+1,buff+length);
- }
- }
- if (is_prefix(to,buff))
- {
- length= strlen(buff);
- if (to[length])
- (void) strmov_overlapp(to,to+length); /* Remove everything before */
- else
- {
- to[0]= FN_CURLIB; /* Put ./ instead of cwd */
- to[1]= FN_LIBCHAR;
- to[2]= '\0';
- }
- }
- }
- }
- DBUG_PRINT("exit",("to: '%s'",to));
- DBUG_VOID_RETURN;
-} /* pack_dirname */
-
-
-/*
- remove unwanted chars from dirname
-
- SYNOPSIS
- cleanup_dirname()
- to Store result here
- from Dirname to fix. May be same as to
-
- IMPLEMENTATION
- "/../" removes prev dir
- "/~/" removes all before ~
- //" is same as "/", except on Win32 at start of a file
- "/./" is removed
- Unpacks home_dir if "~/.." used
- Unpacks current dir if if "./.." used
-
- RETURN
- # length of new name
-*/
-
-size_t cleanup_dirname(register char *to, const char *from)
-{
- reg5 size_t length;
- reg2 char * pos;
- reg3 char * from_ptr;
- reg4 char * start;
- char parent[5], /* for "FN_PARENTDIR" */
- buff[FN_REFLEN+1],*end_parentdir;
-#ifdef BACKSLASH_MBTAIL
- CHARSET_INFO *fs= fs_character_set();
-#endif
- DBUG_ENTER("cleanup_dirname");
- DBUG_PRINT("enter",("from: '%s'",from));
-
- start=buff;
- from_ptr=(char *) from;
-#ifdef FN_DEVCHAR
- if ((pos=strrchr(from_ptr,FN_DEVCHAR)) != 0)
- { /* Skip device part */
- length=(size_t) (pos-from_ptr)+1;
- start=strnmov(buff,from_ptr,length); from_ptr+=length;
- }
-#endif
-
- parent[0]=FN_LIBCHAR;
- length=(size_t) (strmov(parent+1,FN_PARENTDIR)-parent);
- for (pos=start ; (*pos= *from_ptr++) != 0 ; pos++)
- {
-#ifdef BACKSLASH_MBTAIL
- uint l;
- if (use_mb(fs) && (l= my_ismbchar(fs, from_ptr - 1, from_ptr + 2)))
- {
- for (l-- ; l ; *++pos= *from_ptr++, l--);
- start= pos + 1; /* Don't look inside multi-byte char */
- continue;
- }
-#endif
- if (*pos == '/')
- *pos = FN_LIBCHAR;
- if (*pos == FN_LIBCHAR)
- {
- if ((size_t) (pos-start) > length && memcmp(pos-length,parent,length) == 0)
- { /* If .../../; skip prev */
- pos-=length;
- if (pos != start)
- { /* not /../ */
- pos--;
- if (*pos == FN_HOMELIB && (pos == start || pos[-1] == FN_LIBCHAR))
- {
- if (!home_dir)
- {
- pos+=length+1; /* Don't unpack ~/.. */
- continue;
- }
- pos=strmov(buff,home_dir)-1; /* Unpacks ~/.. */
- if (*pos == FN_LIBCHAR)
- pos--; /* home ended with '/' */
- }
- if (*pos == FN_CURLIB && (pos == start || pos[-1] == FN_LIBCHAR))
- {
- if (my_getwd(curr_dir,FN_REFLEN,MYF(0)))
- {
- pos+=length+1; /* Don't unpack ./.. */
- continue;
- }
- pos=strmov(buff,curr_dir)-1; /* Unpacks ./.. */
- if (*pos == FN_LIBCHAR)
- pos--; /* home ended with '/' */
- }
- end_parentdir=pos;
- while (pos >= start && *pos != FN_LIBCHAR) /* remove prev dir */
- pos--;
- if (pos[1] == FN_HOMELIB ||
- (pos > start && memcmp(pos, parent, length) == 0))
- { /* Don't remove ~user/ */
- pos=strmov(end_parentdir+1,parent);
- *pos=FN_LIBCHAR;
- continue;
- }
- }
- }
- else if ((size_t) (pos-start) == length-1 &&
- !memcmp(start,parent+1,length-1))
- start=pos; /* Starts with "../" */
- else if (pos-start > 0 && pos[-1] == FN_LIBCHAR)
- {
-#ifdef FN_NETWORK_DRIVES
- if (pos-start != 1)
-#endif
- pos--; /* Remove dupplicate '/' */
- }
- else if (pos-start > 1 && pos[-1] == FN_CURLIB && pos[-2] == FN_LIBCHAR)
- pos-=2; /* Skip /./ */
- else if (pos > buff+1 && pos[-1] == FN_HOMELIB && pos[-2] == FN_LIBCHAR)
- { /* Found ..../~/ */
- buff[0]=FN_HOMELIB;
- buff[1]=FN_LIBCHAR;
- start=buff; pos=buff+1;
- }
- }
- }
- (void) strmov(to,buff);
- DBUG_PRINT("exit",("to: '%s'",to));
- DBUG_RETURN((size_t) (pos-buff));
-} /* cleanup_dirname */
-
-
-/*
- On system where you don't have symbolic links, the following
- code will allow you to create a file:
- directory-name.sym that should contain the real path
- to the directory. This will be used if the directory name
- doesn't exists
-*/
-
-
-my_bool my_use_symdir=0; /* Set this if you want to use symdirs */
-
-#ifdef USE_SYMDIR
-void symdirget(char *dir)
-{
- char buff[FN_REFLEN+1];
- char *pos=strend(dir);
- if (dir[0] && pos[-1] != FN_DEVCHAR && my_access(dir, F_OK))
- {
- File file;
- size_t length;
- char temp= *(--pos); /* May be "/" or "\" */
- strmov(pos,".sym");
- file= my_open(dir, O_RDONLY, MYF(0));
- *pos++=temp; *pos=0; /* Restore old filename */
- if (file >= 0)
- {
- if ((length= my_read(file, buff, sizeof(buff) - 1, MYF(0))) > 0)
- {
- for (pos= buff + length ;
- pos > buff && (iscntrl(pos[-1]) || isspace(pos[-1])) ;
- pos --);
-
- /* Ensure that the symlink ends with the directory symbol */
- if (pos == buff || pos[-1] != FN_LIBCHAR)
- *pos++=FN_LIBCHAR;
-
- strmake(dir,buff, (size_t) (pos-buff));
- }
- my_close(file, MYF(0));
- }
- }
-}
-#endif /* USE_SYMDIR */
-
-
-/**
- Convert a directory name to a format which can be compared as strings
-
- @param to result buffer, FN_REFLEN chars in length; may be == from
- @param from 'packed' directory name, in whatever format
- @returns size of the normalized name
-
- @details
- - Ensures that last char is FN_LIBCHAR, unless it is FN_DEVCHAR
- - Uses cleanup_dirname
-
- It does *not* expand ~/ (although, see cleanup_dirname). Nor does it do
- any case folding. All case-insensitive normalization should be done by
- the caller.
-*/
-
-size_t normalize_dirname(char *to, const char *from)
-{
- size_t length;
- char buff[FN_REFLEN];
- DBUG_ENTER("normalize_dirname");
-
- /*
- Despite the name, this actually converts the name to the system's
- format (TODO: name this properly).
- */
- (void) intern_filename(buff, from);
- length= strlen(buff); /* Fix that '/' is last */
- if (length &&
-#ifdef FN_DEVCHAR
- buff[length - 1] != FN_DEVCHAR &&
-#endif
- buff[length - 1] != FN_LIBCHAR && buff[length - 1] != '/')
- {
- /* we need reserve 2 bytes for the trailing slash and the zero */
- if (length >= sizeof (buff) - 1)
- length= sizeof (buff) - 2;
- buff[length]= FN_LIBCHAR;
- buff[length + 1]= '\0';
- }
-
- length=cleanup_dirname(to, buff);
-
- DBUG_RETURN(length);
-}
-
-
-/**
- Fixes a directory name so that can be used by open()
-
- @param to Result buffer, FN_REFLEN characters. May be == from
- @param from 'Packed' directory name (may contain ~)
-
- @details
- - Uses normalize_dirname()
- - Expands ~/... to home_dir/...
- - Resolves MySQL's fake "foo.sym" symbolic directory names (if USE_SYMDIR)
- - Changes a UNIX filename to system filename (replaces / with \ on windows)
-
- @returns
- Length of new directory name (= length of to)
-*/
-
-size_t unpack_dirname(char * to, const char *from)
-{
- size_t length, h_length;
- char buff[FN_REFLEN+1+4],*suffix,*tilde_expansion;
- DBUG_ENTER("unpack_dirname");
-
- length= normalize_dirname(buff, from);
-
- if (buff[0] == FN_HOMELIB)
- {
- suffix=buff+1; tilde_expansion=expand_tilde(&suffix);
- if (tilde_expansion)
- {
- length-= (size_t) (suffix-buff)-1;
- if (length+(h_length= strlen(tilde_expansion)) <= FN_REFLEN)
- {
- if ((h_length > 0) && (tilde_expansion[h_length-1] == FN_LIBCHAR))
- h_length--;
- if (buff+h_length < suffix)
- bmove(buff+h_length,suffix,length);
- else
- bmove_upp((uchar*) buff+h_length+length, (uchar*) suffix+length, length);
- bmove(buff,tilde_expansion,h_length);
- }
- }
- }
-#ifdef USE_SYMDIR
- if (my_use_symdir)
- symdirget(buff);
-#endif
- DBUG_RETURN(system_filename(to,buff)); /* Fix for open */
-} /* unpack_dirname */
-
-
- /* Expand tilde to home or user-directory */
- /* Path is reset to point at FN_LIBCHAR after ~xxx */
-
-static char * expand_tilde(char **path)
-{
- if (path[0][0] == FN_LIBCHAR)
- return home_dir; /* ~/ expanded to home */
-#ifdef HAVE_GETPWNAM
- {
- char *str,save;
- struct passwd *user_entry;
-
- if (!(str=strchr(*path,FN_LIBCHAR)))
- str=strend(*path);
- save= *str; *str= '\0';
- user_entry=getpwnam(*path);
- *str=save;
- endpwent();
- if (user_entry)
- {
- *path=str;
- return user_entry->pw_dir;
- }
- }
-#endif
- return (char *) 0;
-}
-
-
-/*
- Fix filename so it can be used by open, create
-
- SYNOPSIS
- unpack_filename()
- to Store result here. Must be at least of size FN_REFLEN.
- from Filename in unix format (with ~)
-
- RETURN
- # length of to
-
- NOTES
- to may be == from
- ~ will only be expanded if total length < FN_REFLEN
-*/
-
-
-size_t unpack_filename(char * to, const char *from)
-{
- size_t length, n_length, buff_length;
- char buff[FN_REFLEN];
- DBUG_ENTER("unpack_filename");
-
- length=dirname_part(buff, from, &buff_length);/* copy & convert dirname */
- n_length=unpack_dirname(buff,buff);
- if (n_length+strlen(from+length) < FN_REFLEN)
- {
- (void) strmov(buff+n_length,from+length);
- length= system_filename(to,buff); /* Fix to usably filename */
- }
- else
- length= system_filename(to,from); /* Fix to usably filename */
- DBUG_RETURN(length);
-} /* unpack_filename */
-
-
- /* Convert filename (unix standard) to system standard */
- /* Used before system command's like open(), create() .. */
- /* Returns used length of to; total length should be FN_REFLEN */
-
-size_t system_filename(char *to, const char *from)
-{
- return (size_t) (strmake(to,from,FN_REFLEN-1)-to);
-}
-
- /* Fix a filename to intern (UNIX format) */
-
-char *intern_filename(char *to, const char *from)
-{
- size_t length, to_length;
- char buff[FN_REFLEN];
- if (from == to)
- { /* Dirname may destroy from */
- strmov(buff,from);
- from=buff;
- }
- length= dirname_part(to, from, &to_length); /* Copy dirname & fix chars */
- (void) strmov(to + to_length,from+length);
- return (to);
-} /* intern_filename */
diff --git a/dep/mysqllite/mysys/mf_path.c b/dep/mysqllite/mysys/mf_path.c
deleted file mode 100644
index 92cb62e6827..00000000000
--- a/dep/mysqllite/mysys/mf_path.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-static char *find_file_in_path(char *to,const char *name);
-
- /* Finds where program can find it's files.
- pre_pathname is found by first locking at progname (argv[0]).
- if progname contains path the path is returned.
- else if progname is found in path, return it
- else if progname is given and POSIX environment variable "_" is set
- then path is taken from "_".
- If filename doesn't contain a path append MY_BASEDIR_VERSION or
- MY_BASEDIR if defined, else append "/my/running".
- own_path_name_part is concatinated to result.
- my_path puts result in to and returns to */
-
-char * my_path(char * to, const char *progname,
- const char *own_pathname_part)
-{
- char *start, *end, *prog;
- size_t to_length;
- DBUG_ENTER("my_path");
-
- start=to; /* Return this */
- if (progname && (dirname_part(to, progname, &to_length) ||
- find_file_in_path(to,progname) ||
- ((prog=getenv("_")) != 0 &&
- dirname_part(to, prog, &to_length))))
- {
- (void) intern_filename(to,to);
- if (!test_if_hard_path(to))
- {
- if (!my_getwd(curr_dir,FN_REFLEN,MYF(0)))
- bchange((uchar*) to, 0, (uchar*) curr_dir, strlen(curr_dir), strlen(to)+1);
- }
- }
- else
- {
- if ((end = getenv("MY_BASEDIR_VERSION")) == 0 &&
- (end = getenv("MY_BASEDIR")) == 0)
- {
-#ifdef DEFAULT_BASEDIR
- end= (char*) DEFAULT_BASEDIR;
-#else
- end= (char*) "/my/";
-#endif
- }
- (void) intern_filename(to,end);
- to=strend(to);
- if (to != start && to[-1] != FN_LIBCHAR)
- *to++ = FN_LIBCHAR;
- (void) strmov(to,own_pathname_part);
- }
- DBUG_PRINT("exit",("to: '%s'",start));
- DBUG_RETURN(start);
-} /* my_path */
-
-
- /* test if file without filename is found in path */
- /* Returns to if found and to has dirpart if found, else NullS */
-
-#if defined(__WIN__)
-#define F_OK 0
-#define PATH_SEP ';'
-#define PROGRAM_EXTENSION ".exe"
-#else
-#define PATH_SEP ':'
-#endif
-
-static char *find_file_in_path(char *to, const char *name)
-{
- char *path,*pos,dir[2];
- const char *ext="";
-
- if (!(path=getenv("PATH")))
- return NullS;
- dir[0]=FN_LIBCHAR; dir[1]=0;
-#ifdef PROGRAM_EXTENSION
- if (!fn_ext(name)[0])
- ext=PROGRAM_EXTENSION;
-#endif
-
- for (pos=path ; (pos=strchr(pos,PATH_SEP)) ; path= ++pos)
- {
- if (path != pos)
- {
- strxmov(strnmov(to,path,(uint) (pos-path)),dir,name,ext,NullS);
- if (!access(to,F_OK))
- {
- to[(uint) (pos-path)+1]=0; /* Return path only */
- return to;
- }
- }
- }
-#ifdef __WIN__
- to[0]=FN_CURLIB;
- strxmov(to+1,dir,name,ext,NullS);
- if (!access(to,F_OK)) /* Test in current dir */
- {
- to[2]=0; /* Leave ".\" */
- return to;
- }
-#endif
- return NullS; /* File not found */
-}
diff --git a/dep/mysqllite/mysys/mf_qsort.c b/dep/mysqllite/mysys/mf_qsort.c
deleted file mode 100644
index 4b3ecb603a6..00000000000
--- a/dep/mysqllite/mysys/mf_qsort.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- qsort implementation optimized for comparison of pointers
- Inspired by the qsort implementations by Douglas C. Schmidt,
- and Bentley & McIlroy's "Engineering a Sort Function".
-*/
-
-
-#include "mysys_priv.h"
-#ifndef SCO
-#include <m_string.h>
-#endif
-
-/* We need to use qsort with 2 different compare functions */
-#ifdef QSORT_EXTRA_CMP_ARGUMENT
-#define CMP(A,B) ((*cmp)(cmp_argument,(A),(B)))
-#else
-#define CMP(A,B) ((*cmp)((A),(B)))
-#endif
-
-#define SWAP(A, B, size,swap_ptrs) \
-do { \
- if (swap_ptrs) \
- { \
- reg1 char **a = (char**) (A), **b = (char**) (B); \
- char *tmp = *a; *a++ = *b; *b++ = tmp; \
- } \
- else \
- { \
- reg1 char *a = (A), *b = (B); \
- reg3 char *end= a+size; \
- do \
- { \
- char tmp = *a; *a++ = *b; *b++ = tmp; \
- } while (a < end); \
- } \
-} while (0)
-
-/* Put the median in the middle argument */
-#define MEDIAN(low, mid, high) \
-{ \
- if (CMP(high,low) < 0) \
- SWAP(high, low, size, ptr_cmp); \
- if (CMP(mid, low) < 0) \
- SWAP(mid, low, size, ptr_cmp); \
- else if (CMP(high, mid) < 0) \
- SWAP(mid, high, size, ptr_cmp); \
-}
-
-/* The following node is used to store ranges to avoid recursive calls */
-
-typedef struct st_stack
-{
- char *low,*high;
-} stack_node;
-
-#define PUSH(LOW,HIGH) {stack_ptr->low = LOW; stack_ptr++->high = HIGH;}
-#define POP(LOW,HIGH) {LOW = (--stack_ptr)->low; HIGH = stack_ptr->high;}
-
-/* The following stack size is enough for ulong ~0 elements */
-#define STACK_SIZE (8 * sizeof(unsigned long int))
-#define THRESHOLD_FOR_INSERT_SORT 10
-#if defined(QSORT_TYPE_IS_VOID)
-#define SORT_RETURN return
-#else
-#define SORT_RETURN return 0
-#endif
-
-/****************************************************************************
-** 'standard' quicksort with the following extensions:
-**
-** Can be compiled with the qsort2_cmp compare function
-** Store ranges on stack to avoid recursion
-** Use insert sort on small ranges
-** Optimize for sorting of pointers (used often by MySQL)
-** Use median comparison to find partition element
-*****************************************************************************/
-
-#ifdef QSORT_EXTRA_CMP_ARGUMENT
-qsort_t my_qsort2(void *base_ptr, size_t count, size_t size, qsort2_cmp cmp,
- void *cmp_argument)
-#else
-qsort_t my_qsort(void *base_ptr, size_t count, size_t size, qsort_cmp cmp)
-#endif
-{
- char *low, *high, *pivot;
- stack_node stack[STACK_SIZE], *stack_ptr;
- my_bool ptr_cmp;
- /* Handle the simple case first */
- /* This will also make the rest of the code simpler */
- if (count <= 1)
- SORT_RETURN;
-
- low = (char*) base_ptr;
- high = low+ size * (count - 1);
- stack_ptr = stack + 1;
-#ifdef HAVE_purify
- /* The first element in the stack will be accessed for the last POP */
- stack[0].low=stack[0].high=0;
-#endif
- pivot = (char *) my_alloca((int) size);
- ptr_cmp= size == sizeof(char*) && !((low - (char*) 0)& (sizeof(char*)-1));
-
- /* The following loop sorts elements between high and low */
- do
- {
- char *low_ptr, *high_ptr, *mid;
-
- count=((size_t) (high - low) / size)+1;
- /* If count is small, then an insert sort is faster than qsort */
- if (count < THRESHOLD_FOR_INSERT_SORT)
- {
- for (low_ptr = low + size; low_ptr <= high; low_ptr += size)
- {
- char *ptr;
- for (ptr = low_ptr; ptr > low && CMP(ptr - size, ptr) > 0;
- ptr -= size)
- SWAP(ptr, ptr - size, size, ptr_cmp);
- }
- POP(low, high);
- continue;
- }
-
- /* Try to find a good middle element */
- mid= low + size * (count >> 1);
- if (count > 40) /* Must be bigger than 24 */
- {
- size_t step = size* (count / 8);
- MEDIAN(low, low + step, low+step*2);
- MEDIAN(mid - step, mid, mid+step);
- MEDIAN(high - 2 * step, high-step, high);
- /* Put best median in 'mid' */
- MEDIAN(low+step, mid, high-step);
- low_ptr = low;
- high_ptr = high;
- }
- else
- {
- MEDIAN(low, mid, high);
- /* The low and high argument are already in sorted against 'pivot' */
- low_ptr = low + size;
- high_ptr = high - size;
- }
- memcpy(pivot, mid, size);
-
- do
- {
- while (CMP(low_ptr, pivot) < 0)
- low_ptr += size;
- while (CMP(pivot, high_ptr) < 0)
- high_ptr -= size;
-
- if (low_ptr < high_ptr)
- {
- SWAP(low_ptr, high_ptr, size, ptr_cmp);
- low_ptr += size;
- high_ptr -= size;
- }
- else
- {
- if (low_ptr == high_ptr)
- {
- low_ptr += size;
- high_ptr -= size;
- }
- break;
- }
- }
- while (low_ptr <= high_ptr);
-
- /*
- Prepare for next iteration.
- Skip partitions of size 1 as these doesn't have to be sorted
- Push the larger partition and sort the smaller one first.
- This ensures that the stack is keept small.
- */
-
- if ((int) (high_ptr - low) <= 0)
- {
- if ((int) (high - low_ptr) <= 0)
- {
- POP(low, high); /* Nothing more to sort */
- }
- else
- low = low_ptr; /* Ignore small left part. */
- }
- else if ((int) (high - low_ptr) <= 0)
- high = high_ptr; /* Ignore small right part. */
- else if ((high_ptr - low) > (high - low_ptr))
- {
- PUSH(low, high_ptr); /* Push larger left part */
- low = low_ptr;
- }
- else
- {
- PUSH(low_ptr, high); /* Push larger right part */
- high = high_ptr;
- }
- } while (stack_ptr > stack);
- my_afree(pivot);
- SORT_RETURN;
-}
diff --git a/dep/mysqllite/mysys/mf_qsort2.c b/dep/mysqllite/mysys/mf_qsort2.c
deleted file mode 100644
index ca2bd1a4952..00000000000
--- a/dep/mysqllite/mysys/mf_qsort2.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* qsort that sends one extra argument to the compare subrutine */
-
-#define QSORT_EXTRA_CMP_ARGUMENT
-#include "mf_qsort.c"
diff --git a/dep/mysqllite/mysys/mf_radix.c b/dep/mysqllite/mysys/mf_radix.c
deleted file mode 100644
index 582ca76b8f8..00000000000
--- a/dep/mysqllite/mysys/mf_radix.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Radixsort for pointers to fixed length strings.
- A very quick sort for not to long (< 20 char) strings.
- Neads a extra buffers of number_of_elements pointers but is
- 2-3 times faster than quicksort
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
- /* Radixsort */
-
-void radixsort_for_str_ptr(uchar **base, uint number_of_elements, size_t size_of_element, uchar **buffer)
-{
- uchar **end,**ptr,**buffer_ptr;
- uint32 *count_ptr,*count_end,count[256];
- int pass;
-
- end=base+number_of_elements; count_end=count+256;
- for (pass=(int) size_of_element-1 ; pass >= 0 ; pass--)
- {
- bzero((uchar*) count,sizeof(uint32)*256);
- for (ptr= base ; ptr < end ; ptr++)
- count[ptr[0][pass]]++;
- if (count[0] == number_of_elements)
- goto next;
- for (count_ptr=count+1 ; count_ptr < count_end ; count_ptr++)
- {
- if (*count_ptr == number_of_elements)
- goto next;
- (*count_ptr)+= *(count_ptr-1);
- }
- for (ptr= end ; ptr-- != base ;)
- buffer[--count[ptr[0][pass]]]= *ptr;
- for (ptr=base, buffer_ptr=buffer ; ptr < end ;)
- (*ptr++) = *buffer_ptr++;
- next:;
- }
-}
diff --git a/dep/mysqllite/mysys/mf_same.c b/dep/mysqllite/mysys/mf_same.c
deleted file mode 100644
index 6738dc8051e..00000000000
--- a/dep/mysqllite/mysys/mf_same.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Kopierar biblioteksstrukturen och extensionen fr}n ett filnamn */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
- /*
- Copy directory and/or extension between filenames.
- (For the meaning of 'flag', check mf_format.c)
- 'to' may be equal to 'name'.
- Returns 'to'.
- */
-
-char * fn_same(char *to, const char *name, int flag)
-{
- char dev[FN_REFLEN];
- const char *ext;
- size_t dev_length;
- DBUG_ENTER("fn_same");
- DBUG_PRINT("enter",("to: %s name: %s flag: %d",to,name,flag));
-
- if ((ext=strrchr(name+dirname_part(dev, name, &dev_length),FN_EXTCHAR)) == 0)
- ext="";
-
- DBUG_RETURN(fn_format(to,to,dev,ext,flag));
-} /* fn_same */
diff --git a/dep/mysqllite/mysys/mf_sort.c b/dep/mysqllite/mysys/mf_sort.c
deleted file mode 100644
index a3e7465ead0..00000000000
--- a/dep/mysqllite/mysys/mf_sort.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Sort of string pointers in string-order with radix or qsort */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-void my_string_ptr_sort(uchar *base, uint items, size_t size)
-{
-#if INT_MAX > 65536L
- uchar **ptr=0;
-
- if (size <= 20 && items >= 1000 && items < 100000 &&
- (ptr= (uchar**) my_malloc(items*sizeof(char*),MYF(0))))
- {
- radixsort_for_str_ptr((uchar**) base,items,size,ptr);
- my_free(ptr);
- }
- else
-#endif
- {
- if (size && items)
- {
- my_qsort2(base,items, sizeof(uchar*), get_ptr_compare(size),
- (void*) &size);
- }
- }
-}
diff --git a/dep/mysqllite/mysys/mf_soundex.c b/dep/mysqllite/mysys/mf_soundex.c
deleted file mode 100644
index fe30d8c81af..00000000000
--- a/dep/mysqllite/mysys/mf_soundex.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/****************************************************************
-* SOUNDEX ALGORITHM in C *
-* *
-* The basic Algorithm source is taken from EDN Nov. *
-* 14, 1985 pg. 36. *
-* *
-* As a test Those in Illinois will find that the *
-* first group of numbers in their drivers license *
-* number is the soundex number for their last name. *
-* *
-* RHW PC-IBBS ID. #1230 *
-* *
-* As an extension if remove_garbage is set then all non- *
-* alpha characters are skipped *
-* *
-* Note, that this implementation corresponds to the *
-* original version of the algorithm, not to the more *
-* popular "enhanced" version, described by Knuth. *
-****************************************************************/
-
-#include "mysys_priv.h"
-#include <m_ctype.h>
-#include "my_static.h"
-
-static char get_scode(CHARSET_INFO * cs, char **ptr,pbool remove_garbage);
-
- /* outputed string is 4 byte long */
- /* out_pntr can be == in_pntr */
-
-void soundex(CHARSET_INFO * cs,register char * out_pntr, char * in_pntr,
- pbool remove_garbage)
-{
- char ch,last_ch;
- reg3 char * end;
- register uchar *map=cs->to_upper;
-
- if (remove_garbage)
- {
- while (*in_pntr && !my_isalpha(cs,*in_pntr)) /* Skip pre-space */
- in_pntr++;
- }
- *out_pntr++ = map[(uchar)*in_pntr]; /* Copy first letter */
- last_ch = get_scode(cs,&in_pntr,0); /* code of the first letter */
- /* for the first 'double-letter */
- /* check. */
- end=out_pntr+3; /* Loop on input letters until */
- /* end of input (null) or output */
- /* letter code count = 3 */
-
- in_pntr++;
- while (out_pntr < end && (ch = get_scode(cs,&in_pntr,remove_garbage)) != 0)
- {
- in_pntr++;
- if ((ch != '0') && (ch != last_ch)) /* if not skipped or double */
- {
- *out_pntr++ = ch; /* letter, copy to output */
- } /* for next double-letter check */
- last_ch = ch; /* save code of last input letter */
- }
- while (out_pntr < end)
- *out_pntr++ = '0';
- *out_pntr=0; /* end string */
- return;
-} /* soundex */
-
-
- /*
- If alpha, map input letter to soundex code.
- If not alpha and remove_garbage is set then skip to next char
- else return 0
- */
-
-static char get_scode(CHARSET_INFO * cs,char **ptr, pbool remove_garbage)
-{
- uchar ch;
-
- if (remove_garbage)
- {
- while (**ptr && !my_isalpha(cs,**ptr))
- (*ptr)++;
- }
- ch=my_toupper(cs,**ptr);
- if (ch < 'A' || ch > 'Z')
- {
- if (my_isalpha(cs,ch)) /* If extended alfa (country spec) */
- return '0'; /* threat as vokal */
- return 0; /* Can't map */
- }
- return(soundex_map[ch-'A']);
-} /* get_scode */
diff --git a/dep/mysqllite/mysys/mf_tempdir.c b/dep/mysqllite/mysys/mf_tempdir.c
deleted file mode 100644
index c84987cfc96..00000000000
--- a/dep/mysqllite/mysys/mf_tempdir.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-#if defined(__WIN__)
-#define DELIM ';'
-#else
-#define DELIM ':'
-#endif
-
-my_bool init_tmpdir(MY_TMPDIR *tmpdir, const char *pathlist)
-{
- char *end, *copy;
- char buff[FN_REFLEN];
- DBUG_ENTER("init_tmpdir");
- DBUG_PRINT("enter", ("pathlist: %s", pathlist ? pathlist : "NULL"));
-
- mysql_mutex_init(key_TMPDIR_mutex, &tmpdir->mutex, MY_MUTEX_INIT_FAST);
- if (my_init_dynamic_array(&tmpdir->full_list, sizeof(char*), 1, 5))
- goto err;
- if (!pathlist || !pathlist[0])
- {
- /* Get default temporary directory */
- pathlist=getenv("TMPDIR"); /* Use this if possible */
-#if defined(__WIN__)
- if (!pathlist)
- pathlist=getenv("TEMP");
- if (!pathlist)
- pathlist=getenv("TMP");
-#endif
- if (!pathlist || !pathlist[0])
- pathlist=(char*) P_tmpdir;
- }
- do
- {
- size_t length;
- end=strcend(pathlist, DELIM);
- strmake(buff, pathlist, (uint) (end-pathlist));
- length= cleanup_dirname(buff, buff);
- if (!(copy= my_strndup(buff, length, MYF(MY_WME))) ||
- insert_dynamic(&tmpdir->full_list, (uchar*) &copy))
- DBUG_RETURN(TRUE);
- pathlist=end+1;
- }
- while (*end);
- freeze_size(&tmpdir->full_list);
- tmpdir->list=(char **)tmpdir->full_list.buffer;
- tmpdir->max=tmpdir->full_list.elements-1;
- tmpdir->cur=0;
- DBUG_RETURN(FALSE);
-
-err:
- delete_dynamic(&tmpdir->full_list); /* Safe to free */
- mysql_mutex_destroy(&tmpdir->mutex);
- DBUG_RETURN(TRUE);
-}
-
-
-char *my_tmpdir(MY_TMPDIR *tmpdir)
-{
- char *dir;
- if (!tmpdir->max)
- return tmpdir->list[0];
- mysql_mutex_lock(&tmpdir->mutex);
- dir=tmpdir->list[tmpdir->cur];
- tmpdir->cur= (tmpdir->cur == tmpdir->max) ? 0 : tmpdir->cur+1;
- mysql_mutex_unlock(&tmpdir->mutex);
- return dir;
-}
-
-void free_tmpdir(MY_TMPDIR *tmpdir)
-{
- uint i;
- if (!tmpdir->full_list.elements)
- return;
- for (i=0; i<=tmpdir->max; i++)
- my_free(tmpdir->list[i]);
- delete_dynamic(&tmpdir->full_list);
- mysql_mutex_destroy(&tmpdir->mutex);
-}
-
diff --git a/dep/mysqllite/mysys/mf_tempfile.c b/dep/mysqllite/mysys/mf_tempfile.c
deleted file mode 100644
index e85124fb4c3..00000000000
--- a/dep/mysqllite/mysys/mf_tempfile.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include "my_static.h"
-#include "mysys_err.h"
-#include <errno.h>
-#ifdef HAVE_PATHS_H
-#include <paths.h>
-#endif
-
-
-
-/*
- @brief
- Create a temporary file with unique name in a given directory
-
- @details
- create_temp_file
- to pointer to buffer where temporary filename will be stored
- dir directory where to create the file
- prefix prefix the filename with this
- mode Flags to use for my_create/my_open
- MyFlags Magic flags
-
- @return
- File descriptor of opened file if success
- -1 and sets errno if fails.
-
- @note
- The behaviour of this function differs a lot between
- implementation, it's main use is to generate a file with
- a name that does not already exist.
-
- When passing O_TEMPORARY flag in "mode" the file should
- be automatically deleted
-
- The implementation using mkstemp should be considered the
- reference implementation when adding a new or modifying an
- existing one
-
-*/
-
-File create_temp_file(char *to, const char *dir, const char *prefix,
- int mode __attribute__((unused)),
- myf MyFlags __attribute__((unused)))
-{
- File file= -1;
-#ifdef __WIN__
- TCHAR path_buf[MAX_PATH-14];
-#endif
-
- DBUG_ENTER("create_temp_file");
- DBUG_PRINT("enter", ("dir: %s, prefix: %s", dir, prefix));
-#if defined (__WIN__)
-
- /*
- Use GetTempPath to determine path for temporary files.
- This is because the documentation for GetTempFileName
- has the following to say about this parameter:
- "If this parameter is NULL, the function fails."
- */
- if (!dir)
- {
- if(GetTempPath(sizeof(path_buf), path_buf) > 0)
- dir = path_buf;
- }
- /*
- Use GetTempFileName to generate a unique filename, create
- the file and release it's handle
- - uses up to the first three letters from prefix
- */
- if (GetTempFileName(dir, prefix, 0, to) == 0)
- DBUG_RETURN(-1);
-
- DBUG_PRINT("info", ("name: %s", to));
-
- /*
- Open the file without the "open only if file doesn't already exist"
- since the file has already been created by GetTempFileName
- */
- if ((file= my_open(to, (mode & ~O_EXCL), MyFlags)) < 0)
- {
- /* Open failed, remove the file created by GetTempFileName */
- int tmp= my_errno;
- (void) my_delete(to, MYF(0));
- my_errno= tmp;
- }
-
-#elif defined(HAVE_MKSTEMP)
- {
- char prefix_buff[30];
- uint pfx_len;
- File org_file;
-
- pfx_len= (uint) (strmov(strnmov(prefix_buff,
- prefix ? prefix : "tmp.",
- sizeof(prefix_buff)-7),"XXXXXX") -
- prefix_buff);
- if (!dir && ! (dir =getenv("TMPDIR")))
- dir=P_tmpdir;
- if (strlen(dir)+ pfx_len > FN_REFLEN-2)
- {
- errno=my_errno= ENAMETOOLONG;
- DBUG_RETURN(file);
- }
- strmov(convert_dirname(to,dir,NullS),prefix_buff);
- org_file=mkstemp(to);
- if (mode & O_TEMPORARY)
- (void) my_delete(to, MYF(MY_WME | ME_NOINPUT));
- file=my_register_filename(org_file, to, FILE_BY_MKSTEMP,
- EE_CANTCREATEFILE, MyFlags);
- /* If we didn't manage to register the name, remove the temp file */
- if (org_file >= 0 && file < 0)
- {
- int tmp=my_errno;
- close(org_file);
- (void) my_delete(to, MYF(MY_WME | ME_NOINPUT));
- my_errno=tmp;
- }
- }
-#elif defined(HAVE_TEMPNAM)
- {
- extern char **environ;
-
- char *res,**old_env,*temp_env[1];
- if (dir && !dir[0])
- { /* Change empty string to current dir */
- to[0]= FN_CURLIB;
- to[1]= 0;
- dir=to;
- }
-
- old_env= (char**) environ;
- if (dir)
- { /* Don't use TMPDIR if dir is given */
- environ=(const char**) temp_env;
- temp_env[0]=0;
- }
-
- if ((res=tempnam((char*) dir, (char*) prefix)))
- {
- strmake(to,res,FN_REFLEN-1);
- (*free)(res);
- file=my_create(to,0,
- (int) (O_RDWR | O_BINARY | O_TRUNC | O_EXCL | O_NOFOLLOW |
- O_TEMPORARY | O_SHORT_LIVED),
- MYF(MY_WME));
-
- }
- else
- {
- DBUG_PRINT("error",("Got error: %d from tempnam",errno));
- }
-
- environ=(const char**) old_env;
- }
-#else
-#error No implementation found for create_temp_file
-#endif
- if (file >= 0)
- thread_safe_increment(my_tmp_file_created,&THR_LOCK_open);
- DBUG_RETURN(file);
-}
diff --git a/dep/mysqllite/mysys/mf_unixpath.c b/dep/mysqllite/mysys/mf_unixpath.c
deleted file mode 100644
index ee81aae4584..00000000000
--- a/dep/mysqllite/mysys/mf_unixpath.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-/**
- Convert filename to unix style filename.
-
- @remark On Windows, converts '\' to '/'.
-
- @param to A pathname.
-*/
-
-void to_unix_path(char *to __attribute__((unused)))
-{
-#if FN_LIBCHAR != '/'
- {
- to--;
- while ((to=strchr(to+1,FN_LIBCHAR)) != 0)
- *to='/';
- }
-#endif
-}
diff --git a/dep/mysqllite/mysys/mf_wcomp.c b/dep/mysqllite/mysys/mf_wcomp.c
deleted file mode 100644
index 4786537d1a5..00000000000
--- a/dep/mysqllite/mysys/mf_wcomp.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Funktions for comparing with wild-cards */
-
-#include "mysys_priv.h"
-
- /* Test if a string is "comparable" to a wild-card string */
- /* returns 0 if the strings are "comparable" */
-
-char wild_many='*';
-char wild_one='?';
-char wild_prefix=0; /* QQ this can potentially cause a SIGSEGV */
-
-int wild_compare(register const char *str, register const char *wildstr,
- pbool str_is_pattern)
-{
- char cmp;
- DBUG_ENTER("wild_compare");
-
- while (*wildstr)
- {
- while (*wildstr && *wildstr != wild_many && *wildstr != wild_one)
- {
- if (*wildstr == wild_prefix && wildstr[1])
- {
- wildstr++;
- if (str_is_pattern && *str++ != wild_prefix)
- DBUG_RETURN(1);
- }
- if (*wildstr++ != *str++)
- DBUG_RETURN(1);
- }
- if (! *wildstr )
- DBUG_RETURN(*str != 0);
- if (*wildstr++ == wild_one)
- {
- if (! *str || (str_is_pattern && *str == wild_many))
- DBUG_RETURN(1); /* One char; skip */
- if (*str++ == wild_prefix && str_is_pattern && *str)
- str++;
- }
- else
- { /* Found '*' */
- while (str_is_pattern && *str == wild_many)
- str++;
- for (; *wildstr == wild_many || *wildstr == wild_one; wildstr++)
- if (*wildstr == wild_many)
- {
- while (str_is_pattern && *str == wild_many)
- str++;
- }
- else
- {
- if (str_is_pattern && *str == wild_prefix && str[1])
- str+=2;
- else if (! *str++)
- DBUG_RETURN (1);
- }
- if (!*wildstr)
- DBUG_RETURN(0); /* '*' as last char: OK */
- if ((cmp= *wildstr) == wild_prefix && wildstr[1] && !str_is_pattern)
- cmp=wildstr[1];
- for (;;str++)
- {
- while (*str && *str != cmp)
- str++;
- if (!*str)
- DBUG_RETURN (1);
- if (wild_compare(str,wildstr,str_is_pattern) == 0)
- DBUG_RETURN (0);
- }
- /* We will never come here */
- }
- }
- DBUG_RETURN (*str != 0);
-} /* wild_compare */
diff --git a/dep/mysqllite/mysys/mulalloc.c b/dep/mysqllite/mysys/mulalloc.c
deleted file mode 100644
index f4ca3d9f9ab..00000000000
--- a/dep/mysqllite/mysys/mulalloc.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <stdarg.h>
-
-/*
- Malloc many pointers at the same time
- Only ptr1 can be free'd, and doing this will free all
- the memory allocated. ptr2, etc all point inside big allocated
- memory area.
-
- SYNOPSIS
- my_multi_malloc()
- myFlags Flags
- ptr1, length1 Multiple arguments terminated by null ptr
- ptr2, length2 ...
- ...
- NULL
-*/
-
-void* my_multi_malloc(myf myFlags, ...)
-{
- va_list args;
- char **ptr,*start,*res;
- size_t tot_length,length;
- DBUG_ENTER("my_multi_malloc");
-
- va_start(args,myFlags);
- tot_length=0;
- while ((ptr=va_arg(args, char **)))
- {
- length=va_arg(args,uint);
- tot_length+=ALIGN_SIZE(length);
- }
- va_end(args);
-
- if (!(start=(char *) my_malloc(tot_length,myFlags)))
- DBUG_RETURN(0); /* purecov: inspected */
-
- va_start(args,myFlags);
- res=start;
- while ((ptr=va_arg(args, char **)))
- {
- *ptr=res;
- length=va_arg(args,uint);
- res+=ALIGN_SIZE(length);
- }
- va_end(args);
- DBUG_RETURN((void*) start);
-}
diff --git a/dep/mysqllite/mysys/my_access.c b/dep/mysqllite/mysys/my_access.c
deleted file mode 100644
index 210946d50a8..00000000000
--- a/dep/mysqllite/mysys/my_access.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-#ifdef __WIN__
-
-/*
- Check a file or path for accessability.
-
- SYNOPSIS
- file_access()
- path Path to file
- amode Access method
-
- DESCRIPTION
- This function wraps the normal access method because the access
- available in MSVCRT> +reports that filenames such as LPT1 and
- COM1 are valid (they are but should not be so for us).
-
- RETURN VALUES
- 0 ok
- -1 error (We use -1 as my_access is mapped to access on other platforms)
-*/
-
-int my_access(const char *path, int amode)
-{
- WIN32_FILE_ATTRIBUTE_DATA fileinfo;
- BOOL result;
-
- result= GetFileAttributesEx(path, GetFileExInfoStandard, &fileinfo);
- if (! result ||
- (fileinfo.dwFileAttributes & FILE_ATTRIBUTE_READONLY) && (amode & W_OK))
- {
- my_errno= errno= EACCES;
- return -1;
- }
- return 0;
-}
-
-#endif /* __WIN__ */
-
-
-/*
- List of file names that causes problem on windows
-
- NOTE that one can also not have file names of type CON.TXT
-
- NOTE: it is important to keep "CLOCK$" on the first place,
- we skip it in check_if_legal_tablename.
-*/
-static const char *reserved_names[]=
-{
- "CLOCK$",
- "CON", "PRN", "AUX", "NUL",
- "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9",
- "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9",
- NullS
-};
-
-#define MAX_RESERVED_NAME_LENGTH 6
-
-
-/*
- Looks up a null-terminated string in a list,
- case insensitively.
-
- SYNOPSIS
- str_list_find()
- list list of items
- str item to find
-
- RETURN
- 0 ok
- 1 reserved file name
-*/
-static int str_list_find(const char **list, const char *str)
-{
- const char **name;
- for (name= list; *name; name++)
- {
- if (!my_strcasecmp(&my_charset_latin1, *name, str))
- return 1;
- }
- return 0;
-}
-
-
-/*
- A map for faster reserved_names lookup,
- helps to avoid loops in many cases.
- 1 - can be the first letter
- 2 - can be the second letter
- 4 - can be the third letter
-*/
-static char reserved_map[256]=
-{
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* !"#$%&'()*+,-./ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 0123456789:;<=>? */
- 0,1,0,1,0,0,0,0,0,0,0,0,7,4,5,2, /* @ABCDEFGHIJKLMNO */
- 3,0,2,0,4,2,0,0,4,0,0,0,0,0,0,0, /* PQRSTUVWXYZ[\]^_ */
- 0,1,0,1,0,0,0,0,0,0,0,0,7,4,5,2, /* bcdefghijklmno */
- 3,0,2,0,4,2,0,0,4,0,0,0,0,0,0,0, /* pqrstuvwxyz{|}~. */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ................ */
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* ................ */
-};
-
-
-/*
- Check if a table name may cause problems
-
- SYNOPSIS
- check_if_legal_tablename
- name Table name (without any extensions)
-
- DESCRIPTION
- We don't check 'CLOCK$' because dollar sign is encoded as @0024,
- making table file name 'CLOCK@0024', which is safe.
- This is why we start lookup from the second element
- (i.e. &reserver_name[1])
-
- RETURN
- 0 ok
- 1 reserved file name
-*/
-
-int check_if_legal_tablename(const char *name)
-{
- DBUG_ENTER("check_if_legal_tablename");
- DBUG_RETURN((reserved_map[(uchar) name[0]] & 1) &&
- (reserved_map[(uchar) name[1]] & 2) &&
- (reserved_map[(uchar) name[2]] & 4) &&
- str_list_find(&reserved_names[1], name));
-}
-
-
-#if defined(__WIN__) || defined(__EMX__)
-
-
-/*
- Check if a path will access a reserverd file name that may cause problems
-
- SYNOPSIS
- check_if_legal_filename
- path Path to file
-
- RETURN
- 0 ok
- 1 reserved file name
-*/
-
-int check_if_legal_filename(const char *path)
-{
- const char *end;
- const char **reserved_name;
- DBUG_ENTER("check_if_legal_filename");
-
- path+= dirname_length(path); /* To start of filename */
- if (!(end= strchr(path, FN_EXTCHAR)))
- end= strend(path);
- if (path == end || (uint) (end - path) > MAX_RESERVED_NAME_LENGTH)
- DBUG_RETURN(0); /* Simplify inner loop */
-
- for (reserved_name= reserved_names; *reserved_name; reserved_name++)
- {
- const char *reserved= *reserved_name; /* never empty */
- const char *name= path;
-
- do
- {
- if (*reserved != my_toupper(&my_charset_latin1, *name))
- break;
- if (++name == end && !reserved[1])
- DBUG_RETURN(1); /* Found wrong path */
- } while (*++reserved);
- }
- DBUG_RETURN(0);
-}
-
-#endif /* defined(__WIN__) || defined(__EMX__) */
diff --git a/dep/mysqllite/mysys/my_aes.c b/dep/mysqllite/mysys/my_aes.c
deleted file mode 100644
index 575d4702dee..00000000000
--- a/dep/mysqllite/mysys/my_aes.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-/*
- Implementation of AES Encryption for MySQL
- Initial version by Peter Zaitsev June 2002
-*/
-
-
-#include <my_global.h>
-#include <m_string.h>
-#include "my_aes.h"
-
-enum encrypt_dir { AES_ENCRYPT, AES_DECRYPT };
-
-#define AES_BLOCK_SIZE 16 /* Block size in bytes */
-
-#define AES_BAD_DATA -1 /* If bad data discovered during decoding */
-
-
-/* The structure for key information */
-typedef struct {
- int nr; /* Number of rounds */
- uint32 rk[4*(AES_MAXNR + 1)]; /* key schedule */
-} KEYINSTANCE;
-
-
-/*
- This is internal function just keeps joint code of Key generation
-
- SYNOPSIS
- my_aes_create_key()
- aes_key Address of Key Instance to be created
- direction Direction (are we encoding or decoding)
- key Key to use for real key creation
- key_length Length of the key
-
- DESCRIPTION
-
- RESULT
- 0 ok
- -1 Error Note: The current impementation never returns this
-*/
-
-static int my_aes_create_key(KEYINSTANCE *aes_key,
- enum encrypt_dir direction, const char *key,
- int key_length)
-{
- uint8 rkey[AES_KEY_LENGTH/8]; /* The real key to be used for encryption */
- uint8 *rkey_end=rkey+AES_KEY_LENGTH/8; /* Real key boundary */
- uint8 *ptr; /* Start of the real key*/
- const char *sptr; /* Start of the working key */
- const char *key_end=key+key_length; /* Working key boundary*/
-
- bzero((char*) rkey,AES_KEY_LENGTH/8); /* Set initial key */
-
- for (ptr= rkey, sptr= key; sptr < key_end; ptr++,sptr++)
- {
- if (ptr == rkey_end)
- ptr= rkey; /* Just loop over tmp_key until we used all key */
- *ptr^= (uint8) *sptr;
- }
-#ifdef AES_USE_KEY_BITS
- /*
- This block is intended to allow more weak encryption if application
- build with libmysqld needs to correspond to export regulations
- It should be never used in normal distribution as does not give
- any speed improvement.
- To get worse security define AES_USE_KEY_BITS to number of bits
- you want key to be. It should be divisible by 8
-
- WARNING: Changing this value results in changing of enryption for
- all key lengths so altering this value will result in impossibility
- to decrypt data encrypted with previous value
- */
-#define AES_USE_KEY_BYTES (AES_USE_KEY_BITS/8)
- /*
- To get weaker key we use first AES_USE_KEY_BYTES bytes of created key
- and cyclically copy them until we created all required key length
- */
- for (ptr= rkey+AES_USE_KEY_BYTES, sptr=rkey ; ptr < rkey_end;
- ptr++,sptr++)
- {
- if (sptr == rkey+AES_USE_KEY_BYTES)
- sptr=rkey;
- *ptr=*sptr;
- }
-#endif
- if (direction == AES_DECRYPT)
- aes_key->nr = rijndaelKeySetupDec(aes_key->rk, rkey, AES_KEY_LENGTH);
- else
- aes_key->nr = rijndaelKeySetupEnc(aes_key->rk, rkey, AES_KEY_LENGTH);
- return 0;
-}
-
-
-/*
- Crypt buffer with AES encryption algorithm.
-
- SYNOPSIS
- my_aes_encrypt()
- source Pointer to data for encryption
- source_length Size of encryption data
- dest Buffer to place encrypted data (must be large enough)
- key Key to be used for encryption
- key_length Length of the key. Will handle keys of any length
-
- RETURN
- >= 0 Size of encrypted data
- < 0 Error
-*/
-
-int my_aes_encrypt(const char* source, int source_length, char* dest,
- const char* key, int key_length)
-{
- KEYINSTANCE aes_key;
- uint8 block[AES_BLOCK_SIZE]; /* 128 bit block used for padding */
- int rc; /* result codes */
- int num_blocks; /* number of complete blocks */
- char pad_len; /* pad size for the last block */
- int i;
-
- if ((rc= my_aes_create_key(&aes_key,AES_ENCRYPT,key,key_length)))
- return rc;
-
- num_blocks = source_length/AES_BLOCK_SIZE;
-
- for (i = num_blocks; i > 0; i--) /* Encode complete blocks */
- {
- rijndaelEncrypt(aes_key.rk, aes_key.nr, (const uint8*) source,
- (uint8*) dest);
- source+= AES_BLOCK_SIZE;
- dest+= AES_BLOCK_SIZE;
- }
-
- /* Encode the rest. We always have incomplete block */
- pad_len = AES_BLOCK_SIZE - (source_length - AES_BLOCK_SIZE*num_blocks);
- memcpy(block, source, 16 - pad_len);
- bfill(block + AES_BLOCK_SIZE - pad_len, pad_len, pad_len);
- rijndaelEncrypt(aes_key.rk, aes_key.nr, block, (uint8*) dest);
- return AES_BLOCK_SIZE*(num_blocks + 1);
-}
-
-
-/*
- DeCrypt buffer with AES encryption algorithm.
-
- SYNOPSIS
- my_aes_decrypt()
- source Pointer to data for decryption
- source_length Size of encrypted data
- dest Buffer to place decrypted data (must be large enough)
- key Key to be used for decryption
- key_length Length of the key. Will handle keys of any length
-
- RETURN
- >= 0 Size of encrypted data
- < 0 Error
-*/
-
-int my_aes_decrypt(const char *source, int source_length, char *dest,
- const char *key, int key_length)
-{
- KEYINSTANCE aes_key;
- uint8 block[AES_BLOCK_SIZE]; /* 128 bit block used for padding */
- int rc; /* Result codes */
- int num_blocks; /* Number of complete blocks */
- uint pad_len; /* Pad size for the last block */
- int i;
-
- if ((rc=my_aes_create_key(&aes_key,AES_DECRYPT,key,key_length)))
- return rc;
-
- num_blocks = source_length/AES_BLOCK_SIZE;
-
- if ((source_length != num_blocks*AES_BLOCK_SIZE) || num_blocks ==0 )
- return AES_BAD_DATA; /* Input size has to be even and at least one block */
-
- for (i = num_blocks-1; i > 0; i--) /* Decode all but last blocks */
- {
- rijndaelDecrypt(aes_key.rk, aes_key.nr, (const uint8*) source,
- (uint8*) dest);
- source+= AES_BLOCK_SIZE;
- dest+= AES_BLOCK_SIZE;
- }
-
- rijndaelDecrypt(aes_key.rk, aes_key.nr, (const uint8*) source, block);
- /* Use last char in the block as size */
- pad_len = (uint) (uchar) block[AES_BLOCK_SIZE-1];
-
- if (pad_len > AES_BLOCK_SIZE)
- return AES_BAD_DATA;
- /* We could also check whole padding but we do not really need this */
-
- memcpy(dest, block, AES_BLOCK_SIZE - pad_len);
- return AES_BLOCK_SIZE*num_blocks - pad_len;
-}
-
-
-/*
- Get size of buffer which will be large enough for encrypted data
-
- SYNOPSIS
- my_aes_get_size()
- source_length Length of data to be encrypted
-
- RETURN
- Size of buffer required to store encrypted data
-*/
-
-int my_aes_get_size(int source_length)
-{
- return AES_BLOCK_SIZE*(source_length/AES_BLOCK_SIZE)+AES_BLOCK_SIZE;
-}
diff --git a/dep/mysqllite/mysys/my_alarm.c b/dep/mysqllite/mysys/my_alarm.c
deleted file mode 100644
index d6a0da1bd13..00000000000
--- a/dep/mysqllite/mysys/my_alarm.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Function to set a varible when we got a alarm */
-/* Used by my_lock samt functions in m_alarm.h */
-
-
-#include "mysys_priv.h"
-#include "my_alarm.h"
-
-#ifdef HAVE_ALARM
-
- /* ARGSUSED */
-sig_handler my_set_alarm_variable(int signo __attribute__((unused)))
-{
- my_have_got_alarm=1; /* Tell program that time expired */
- return;
-}
-
-#endif /* HAVE_ALARM */
diff --git a/dep/mysqllite/mysys/my_alloc.c b/dep/mysqllite/mysys/my_alloc.c
deleted file mode 100644
index 903826dd975..00000000000
--- a/dep/mysqllite/mysys/my_alloc.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Routines to handle mallocing of results which will be freed the same time */
-
-#include <my_global.h>
-#include <my_sys.h>
-#include <m_string.h>
-#undef EXTRA_DEBUG
-#define EXTRA_DEBUG
-
-
-/*
- Initialize memory root
-
- SYNOPSIS
- init_alloc_root()
- mem_root - memory root to initialize
- block_size - size of chunks (blocks) used for memory allocation
- (It is external size of chunk i.e. it should include
- memory required for internal structures, thus it
- should be no less than ALLOC_ROOT_MIN_BLOCK_SIZE)
- pre_alloc_size - if non-0, then size of block that should be
- pre-allocated during memory root initialization.
-
- DESCRIPTION
- This function prepares memory root for further use, sets initial size of
- chunk for memory allocation and pre-allocates first block if specified.
- Altough error can happen during execution of this function if
- pre_alloc_size is non-0 it won't be reported. Instead it will be
- reported as error in first alloc_root() on this memory root.
-*/
-
-void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
- size_t pre_alloc_size __attribute__((unused)))
-{
- DBUG_ENTER("init_alloc_root");
- DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
-
- mem_root->free= mem_root->used= mem_root->pre_alloc= 0;
- mem_root->min_malloc= 32;
- mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE;
- mem_root->error_handler= 0;
- mem_root->block_num= 4; /* We shift this with >>2 */
- mem_root->first_block_usage= 0;
-
-#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG))
- if (pre_alloc_size)
- {
- if ((mem_root->free= mem_root->pre_alloc=
- (USED_MEM*) my_malloc(pre_alloc_size+ ALIGN_SIZE(sizeof(USED_MEM)),
- MYF(0))))
- {
- mem_root->free->size= pre_alloc_size+ALIGN_SIZE(sizeof(USED_MEM));
- mem_root->free->left= pre_alloc_size;
- mem_root->free->next= 0;
- }
- }
-#endif
- DBUG_VOID_RETURN;
-}
-
-
-/*
- SYNOPSIS
- reset_root_defaults()
- mem_root memory root to change defaults of
- block_size new value of block size. Must be greater or equal
- than ALLOC_ROOT_MIN_BLOCK_SIZE (this value is about
- 68 bytes and depends on platform and compilation flags)
- pre_alloc_size new size of preallocated block. If not zero,
- must be equal to or greater than block size,
- otherwise means 'no prealloc'.
- DESCRIPTION
- Function aligns and assigns new value to block size; then it tries to
- reuse one of existing blocks as prealloc block, or malloc new one of
- requested size. If no blocks can be reused, all unused blocks are freed
- before allocation.
-*/
-
-void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
- size_t pre_alloc_size __attribute__((unused)))
-{
- DBUG_ASSERT(alloc_root_inited(mem_root));
-
- mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE;
-#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG))
- if (pre_alloc_size)
- {
- size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM));
- if (!mem_root->pre_alloc || mem_root->pre_alloc->size != size)
- {
- USED_MEM *mem, **prev= &mem_root->free;
- /*
- Free unused blocks, so that consequent calls
- to reset_root_defaults won't eat away memory.
- */
- while (*prev)
- {
- mem= *prev;
- if (mem->size == size)
- {
- /* We found a suitable block, no need to do anything else */
- mem_root->pre_alloc= mem;
- return;
- }
- if (mem->left + ALIGN_SIZE(sizeof(USED_MEM)) == mem->size)
- {
- /* remove block from the list and free it */
- *prev= mem->next;
- my_free(mem);
- }
- else
- prev= &mem->next;
- }
- /* Allocate new prealloc block and add it to the end of free list */
- if ((mem= (USED_MEM *) my_malloc(size, MYF(0))))
- {
- mem->size= size;
- mem->left= pre_alloc_size;
- mem->next= *prev;
- *prev= mem_root->pre_alloc= mem;
- }
- else
- {
- mem_root->pre_alloc= 0;
- }
- }
- }
- else
-#endif
- mem_root->pre_alloc= 0;
-}
-
-
-void *alloc_root(MEM_ROOT *mem_root, size_t length)
-{
-#if defined(HAVE_purify) && defined(EXTRA_DEBUG)
- reg1 USED_MEM *next;
- DBUG_ENTER("alloc_root");
- DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
-
- DBUG_ASSERT(alloc_root_inited(mem_root));
-
- DBUG_EXECUTE_IF("simulate_out_of_memory",
- {
- if (mem_root->error_handler)
- (*mem_root->error_handler)();
- DBUG_SET("-d,simulate_out_of_memory");
- DBUG_RETURN((void*) 0); /* purecov: inspected */
- });
-
- length+=ALIGN_SIZE(sizeof(USED_MEM));
- if (!(next = (USED_MEM*) my_malloc(length,MYF(MY_WME | ME_FATALERROR))))
- {
- if (mem_root->error_handler)
- (*mem_root->error_handler)();
- DBUG_RETURN((uchar*) 0); /* purecov: inspected */
- }
- next->next= mem_root->used;
- next->size= length;
- mem_root->used= next;
- DBUG_PRINT("exit",("ptr: 0x%lx", (long) (((char*) next)+
- ALIGN_SIZE(sizeof(USED_MEM)))));
- DBUG_RETURN((uchar*) (((char*) next)+ALIGN_SIZE(sizeof(USED_MEM))));
-#else
- size_t get_size, block_size;
- uchar* point;
- reg1 USED_MEM *next= 0;
- reg2 USED_MEM **prev;
- DBUG_ENTER("alloc_root");
- DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
- DBUG_ASSERT(alloc_root_inited(mem_root));
-
- DBUG_EXECUTE_IF("simulate_out_of_memory",
- {
- /* Avoid reusing an already allocated block */
- if (mem_root->error_handler)
- (*mem_root->error_handler)();
- DBUG_SET("-d,simulate_out_of_memory");
- DBUG_RETURN((void*) 0); /* purecov: inspected */
- });
- length= ALIGN_SIZE(length);
- if ((*(prev= &mem_root->free)) != NULL)
- {
- if ((*prev)->left < length &&
- mem_root->first_block_usage++ >= ALLOC_MAX_BLOCK_USAGE_BEFORE_DROP &&
- (*prev)->left < ALLOC_MAX_BLOCK_TO_DROP)
- {
- next= *prev;
- *prev= next->next; /* Remove block from list */
- next->next= mem_root->used;
- mem_root->used= next;
- mem_root->first_block_usage= 0;
- }
- for (next= *prev ; next && next->left < length ; next= next->next)
- prev= &next->next;
- }
- if (! next)
- { /* Time to alloc new block */
- block_size= mem_root->block_size * (mem_root->block_num >> 2);
- get_size= length+ALIGN_SIZE(sizeof(USED_MEM));
- get_size= max(get_size, block_size);
-
- if (!(next = (USED_MEM*) my_malloc(get_size,MYF(MY_WME | ME_FATALERROR))))
- {
- if (mem_root->error_handler)
- (*mem_root->error_handler)();
- DBUG_RETURN((void*) 0); /* purecov: inspected */
- }
- mem_root->block_num++;
- next->next= *prev;
- next->size= get_size;
- next->left= get_size-ALIGN_SIZE(sizeof(USED_MEM));
- *prev=next;
- }
-
- point= (uchar*) ((char*) next+ (next->size-next->left));
- /*TODO: next part may be unneded due to mem_root->first_block_usage counter*/
- if ((next->left-= length) < mem_root->min_malloc)
- { /* Full block */
- *prev= next->next; /* Remove block from list */
- next->next= mem_root->used;
- mem_root->used= next;
- mem_root->first_block_usage= 0;
- }
- DBUG_PRINT("exit",("ptr: 0x%lx", (ulong) point));
- DBUG_RETURN((void*) point);
-#endif
-}
-
-
-/*
- Allocate many pointers at the same time.
-
- DESCRIPTION
- ptr1, ptr2, etc all point into big allocated memory area.
-
- SYNOPSIS
- multi_alloc_root()
- root Memory root
- ptr1, length1 Multiple arguments terminated by a NULL pointer
- ptr2, length2 ...
- ...
- NULL
-
- RETURN VALUE
- A pointer to the beginning of the allocated memory block
- in case of success or NULL if out of memory.
-*/
-
-void *multi_alloc_root(MEM_ROOT *root, ...)
-{
- va_list args;
- char **ptr, *start, *res;
- size_t tot_length, length;
- DBUG_ENTER("multi_alloc_root");
-
- va_start(args, root);
- tot_length= 0;
- while ((ptr= va_arg(args, char **)))
- {
- length= va_arg(args, uint);
- tot_length+= ALIGN_SIZE(length);
- }
- va_end(args);
-
- if (!(start= (char*) alloc_root(root, tot_length)))
- DBUG_RETURN(0); /* purecov: inspected */
-
- va_start(args, root);
- res= start;
- while ((ptr= va_arg(args, char **)))
- {
- *ptr= res;
- length= va_arg(args, uint);
- res+= ALIGN_SIZE(length);
- }
- va_end(args);
- DBUG_RETURN((void*) start);
-}
-
-#define TRASH_MEM(X) TRASH(((char*)(X) + ((X)->size-(X)->left)), (X)->left)
-
-/* Mark all data in blocks free for reusage */
-
-static inline void mark_blocks_free(MEM_ROOT* root)
-{
- reg1 USED_MEM *next;
- reg2 USED_MEM **last;
-
- /* iterate through (partially) free blocks, mark them free */
- last= &root->free;
- for (next= root->free; next; next= *(last= &next->next))
- {
- next->left= next->size - ALIGN_SIZE(sizeof(USED_MEM));
- TRASH_MEM(next);
- }
-
- /* Combine the free and the used list */
- *last= next=root->used;
-
- /* now go through the used blocks and mark them free */
- for (; next; next= next->next)
- {
- next->left= next->size - ALIGN_SIZE(sizeof(USED_MEM));
- TRASH_MEM(next);
- }
-
- /* Now everything is set; Indicate that nothing is used anymore */
- root->used= 0;
- root->first_block_usage= 0;
-}
-
-
-/*
- Deallocate everything used by alloc_root or just move
- used blocks to free list if called with MY_USED_TO_FREE
-
- SYNOPSIS
- free_root()
- root Memory root
- MyFlags Flags for what should be freed:
-
- MY_MARK_BLOCKS_FREED Don't free blocks, just mark them free
- MY_KEEP_PREALLOC If this is not set, then free also the
- preallocated block
-
- NOTES
- One can call this function either with root block initialised with
- init_alloc_root() or with a bzero()-ed block.
- It's also safe to call this multiple times with the same mem_root.
-*/
-
-void free_root(MEM_ROOT *root, myf MyFlags)
-{
- reg1 USED_MEM *next,*old;
- DBUG_ENTER("free_root");
- DBUG_PRINT("enter",("root: 0x%lx flags: %u", (long) root, (uint) MyFlags));
-
- if (MyFlags & MY_MARK_BLOCKS_FREE)
- {
- mark_blocks_free(root);
- DBUG_VOID_RETURN;
- }
- if (!(MyFlags & MY_KEEP_PREALLOC))
- root->pre_alloc=0;
-
- for (next=root->used; next ;)
- {
- old=next; next= next->next ;
- if (old != root->pre_alloc)
- my_free(old);
- }
- for (next=root->free ; next ;)
- {
- old=next; next= next->next;
- if (old != root->pre_alloc)
- my_free(old);
- }
- root->used=root->free=0;
- if (root->pre_alloc)
- {
- root->free=root->pre_alloc;
- root->free->left=root->pre_alloc->size-ALIGN_SIZE(sizeof(USED_MEM));
- TRASH_MEM(root->pre_alloc);
- root->free->next=0;
- }
- root->block_num= 4;
- root->first_block_usage= 0;
- DBUG_VOID_RETURN;
-}
-
-/*
- Find block that contains an object and set the pre_alloc to it
-*/
-
-void set_prealloc_root(MEM_ROOT *root, char *ptr)
-{
- USED_MEM *next;
- for (next=root->used; next ; next=next->next)
- {
- if ((char*) next <= ptr && (char*) next + next->size > ptr)
- {
- root->pre_alloc=next;
- return;
- }
- }
- for (next=root->free ; next ; next=next->next)
- {
- if ((char*) next <= ptr && (char*) next + next->size > ptr)
- {
- root->pre_alloc=next;
- return;
- }
- }
-}
-
-
-char *strdup_root(MEM_ROOT *root, const char *str)
-{
- return strmake_root(root, str, strlen(str));
-}
-
-
-char *strmake_root(MEM_ROOT *root, const char *str, size_t len)
-{
- char *pos;
- if ((pos=alloc_root(root,len+1)))
- {
- memcpy(pos,str,len);
- pos[len]=0;
- }
- return pos;
-}
-
-
-void *memdup_root(MEM_ROOT *root, const void *str, size_t len)
-{
- char *pos;
- if ((pos=alloc_root(root,len)))
- memcpy(pos,str,len);
- return pos;
-}
diff --git a/dep/mysqllite/mysys/my_atomic.c b/dep/mysqllite/mysys/my_atomic.c
deleted file mode 100644
index 7cbe15cfb74..00000000000
--- a/dep/mysqllite/mysys/my_atomic.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2006 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <my_sys.h>
-
-#include <my_atomic.h>
-
-/*
- checks that the current build of atomic ops
- can run on this machine
-
- RETURN
- ATOMIC_xxx values, see my_atomic.h
-*/
-int my_atomic_initialize()
-{
- compile_time_assert(sizeof(intptr) == sizeof(void *));
- /* currently the only thing worth checking is SMP/UP issue */
-#ifdef MY_ATOMIC_MODE_DUMMY
- return my_getncpus() == 1 ? MY_ATOMIC_OK : MY_ATOMIC_NOT_1CPU;
-#else
- return MY_ATOMIC_OK;
-#endif
-}
-
-#ifdef SAFE_MUTEX
-#undef pthread_mutex_init
-#undef pthread_mutex_destroy
-#undef pthread_mutex_lock
-#undef pthread_mutex_unlock
-
-void plain_pthread_mutex_init(safe_mutex_t *m)
-{
- pthread_mutex_init(& m->mutex, NULL);
-}
-
-void plain_pthread_mutex_destroy(safe_mutex_t *m)
-{
- pthread_mutex_destroy(& m->mutex);
-}
-
-void plain_pthread_mutex_lock(safe_mutex_t *m)
-{
- pthread_mutex_lock(& m->mutex);
-}
-
-void plain_pthread_mutex_unlock(safe_mutex_t *m)
-{
- pthread_mutex_unlock(& m->mutex);
-}
-
-#endif
-
-
diff --git a/dep/mysqllite/mysys/my_bit.c b/dep/mysqllite/mysys/my_bit.c
deleted file mode 100644
index f072f243765..00000000000
--- a/dep/mysqllite/mysys/my_bit.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-
-#include <my_bit.h>
-
-const char _my_bits_nbits[256] = {
- 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
- 4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
-};
-
-/*
- perl -e 'print map{", 0x".unpack H2,pack B8,unpack b8,chr$_}(0..255)'
-*/
-const uchar _my_bits_reverse_table[256]={
-0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30,
-0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98,
-0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64,
-0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, 0x0C, 0x8C, 0x4C, 0xCC,
-0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, 0x02,
-0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2,
-0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A,
-0xDA, 0x3A, 0xBA, 0x7A, 0xFA, 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,
-0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E,
-0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81,
-0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71,
-0xF1, 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9,
-0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15,
-0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD,
-0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, 0x03, 0x83, 0x43,
-0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,
-0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B,
-0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97,
-0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F,
-0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
-};
-
diff --git a/dep/mysqllite/mysys/my_bitmap.c b/dep/mysqllite/mysys/my_bitmap.c
deleted file mode 100644
index dc15014121b..00000000000
--- a/dep/mysqllite/mysys/my_bitmap.c
+++ /dev/null
@@ -1,932 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Handling of uchar arrays as large bitmaps.
-
- API limitations (or, rather asserted safety assumptions,
- to encourage correct programming)
-
- * the internal size is a set of 32 bit words
- * the number of bits specified in creation can be any number > 0
- * there are THREAD safe versions of most calls called bitmap_lock_*
-
- TODO:
- Make assembler THREAD safe versions of these using test-and-set instructions
-
- Original version created by Sergei Golubchik 2001 - 2004.
- New version written and test program added and some changes to the interface
- was made by Mikael Ronström 2005, with assistance of Tomas Ulin and Mats
- Kindahl.
-*/
-
-#include "mysys_priv.h"
-#include <my_bitmap.h>
-#include <m_string.h>
-#include <my_bit.h>
-
-void create_last_word_mask(MY_BITMAP *map)
-{
- /* Get the number of used bits (1..8) in the last byte */
- unsigned int const used= 1U + ((map->n_bits-1U) & 0x7U);
-
- /*
- Create a mask with the upper 'unused' bits set and the lower 'used'
- bits clear. The bits within each byte is stored in big-endian order.
- */
- unsigned char const mask= (~((1 << used) - 1)) & 255;
-
- /*
- The first bytes are to be set to zero since they represent real bits
- in the bitvector. The last bytes are set to 0xFF since they represent
- bytes not used by the bitvector. Finally the last byte contains bits
- as set by the mask above.
- */
- unsigned char *ptr= (unsigned char*)&map->last_word_mask;
-
- map->last_word_ptr= map->bitmap + no_words_in_map(map)-1;
- switch (no_bytes_in_map(map) & 3) {
- case 1:
- map->last_word_mask= ~0U;
- ptr[0]= mask;
- return;
- case 2:
- map->last_word_mask= ~0U;
- ptr[0]= 0;
- ptr[1]= mask;
- return;
- case 3:
- map->last_word_mask= 0U;
- ptr[2]= mask;
- ptr[3]= 0xFFU;
- return;
- case 0:
- map->last_word_mask= 0U;
- ptr[3]= mask;
- return;
- }
-}
-
-
-static inline void bitmap_lock(MY_BITMAP *map __attribute__((unused)))
-{
- if (map->mutex)
- mysql_mutex_lock(map->mutex);
-}
-
-static inline void bitmap_unlock(MY_BITMAP *map __attribute__((unused)))
-{
- if (map->mutex)
- mysql_mutex_unlock(map->mutex);
-}
-
-
-my_bool bitmap_init(MY_BITMAP *map, my_bitmap_map *buf, uint n_bits,
- my_bool thread_safe __attribute__((unused)))
-{
- DBUG_ENTER("bitmap_init");
- if (!buf)
- {
- uint size_in_bytes= bitmap_buffer_size(n_bits);
- uint extra= 0;
-
- if (thread_safe)
- {
- size_in_bytes= ALIGN_SIZE(size_in_bytes);
- extra= sizeof(mysql_mutex_t);
- }
- map->mutex= 0;
-
- if (!(buf= (my_bitmap_map*) my_malloc(size_in_bytes+extra, MYF(MY_WME))))
- DBUG_RETURN(1);
-
- if (thread_safe)
- {
- map->mutex= (mysql_mutex_t *) ((char*) buf + size_in_bytes);
- mysql_mutex_init(key_BITMAP_mutex, map->mutex, MY_MUTEX_INIT_FAST);
- }
-
- }
-
- else
- {
- DBUG_ASSERT(thread_safe == 0);
- }
-
-
- map->bitmap= buf;
- map->n_bits= n_bits;
- create_last_word_mask(map);
- bitmap_clear_all(map);
- DBUG_RETURN(0);
-}
-
-
-void bitmap_free(MY_BITMAP *map)
-{
- DBUG_ENTER("bitmap_free");
- if (map->bitmap)
- {
- if (map->mutex)
- mysql_mutex_destroy(map->mutex);
-
- my_free(map->bitmap);
- map->bitmap=0;
- }
- DBUG_VOID_RETURN;
-}
-
-
-/*
- test if bit already set and set it if it was not (thread unsafe method)
-
- SYNOPSIS
- bitmap_fast_test_and_set()
- MAP bit map struct
- BIT bit number
-
- RETURN
- 0 bit was not set
- !=0 bit was set
-*/
-
-my_bool bitmap_fast_test_and_set(MY_BITMAP *map, uint bitmap_bit)
-{
- uchar *value= ((uchar*) map->bitmap) + (bitmap_bit / 8);
- uchar bit= 1 << ((bitmap_bit) & 7);
- uchar res= (*value) & bit;
- *value|= bit;
- return res;
-}
-
-
-/*
- test if bit already set and set it if it was not (thread safe method)
-
- SYNOPSIS
- bitmap_fast_test_and_set()
- map bit map struct
- bitmap_bit bit number
-
- RETURN
- 0 bit was not set
- !=0 bit was set
-*/
-
-my_bool bitmap_test_and_set(MY_BITMAP *map, uint bitmap_bit)
-{
- my_bool res;
- DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits);
- bitmap_lock(map);
- res= bitmap_fast_test_and_set(map, bitmap_bit);
- bitmap_unlock(map);
- return res;
-}
-
-/*
- test if bit already set and clear it if it was set(thread unsafe method)
-
- SYNOPSIS
- bitmap_fast_test_and_set()
- MAP bit map struct
- BIT bit number
-
- RETURN
- 0 bit was not set
- !=0 bit was set
-*/
-
-my_bool bitmap_fast_test_and_clear(MY_BITMAP *map, uint bitmap_bit)
-{
- uchar *byte= (uchar*) map->bitmap + (bitmap_bit / 8);
- uchar bit= 1 << ((bitmap_bit) & 7);
- uchar res= (*byte) & bit;
- *byte&= ~bit;
- return res;
-}
-
-
-my_bool bitmap_test_and_clear(MY_BITMAP *map, uint bitmap_bit)
-{
- my_bool res;
- DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits);
- bitmap_lock(map);
- res= bitmap_fast_test_and_clear(map, bitmap_bit);
- bitmap_unlock(map);
- return res;
-}
-
-
-uint bitmap_set_next(MY_BITMAP *map)
-{
- uint bit_found;
- DBUG_ASSERT(map->bitmap);
- if ((bit_found= bitmap_get_first(map)) != MY_BIT_NONE)
- bitmap_set_bit(map, bit_found);
- return bit_found;
-}
-
-
-void bitmap_set_prefix(MY_BITMAP *map, uint prefix_size)
-{
- uint prefix_bytes, prefix_bits, d;
- uchar *m= (uchar *)map->bitmap;
-
- DBUG_ASSERT(map->bitmap &&
- (prefix_size <= map->n_bits || prefix_size == (uint) ~0));
- set_if_smaller(prefix_size, map->n_bits);
- if ((prefix_bytes= prefix_size / 8))
- memset(m, 0xff, prefix_bytes);
- m+= prefix_bytes;
- if ((prefix_bits= prefix_size & 7))
- *m++= (1 << prefix_bits)-1;
- if ((d= no_bytes_in_map(map)-prefix_bytes))
- bzero(m, d);
-}
-
-
-my_bool bitmap_is_prefix(const MY_BITMAP *map, uint prefix_size)
-{
- uint prefix_bits= prefix_size & 0x7, res;
- uchar *m= (uchar*)map->bitmap;
- uchar *end_prefix= m+prefix_size/8;
- uchar *end;
- DBUG_ASSERT(m && prefix_size <= map->n_bits);
- end= m+no_bytes_in_map(map);
-
- while (m < end_prefix)
- if (*m++ != 0xff)
- return 0;
-
- *map->last_word_ptr&= ~map->last_word_mask; /*Clear bits*/
- res= 0;
- if (prefix_bits && *m++ != (1 << prefix_bits)-1)
- goto ret;
-
- while (m < end)
- if (*m++ != 0)
- goto ret;
- res= 1;
-ret:
- return res;
-}
-
-
-my_bool bitmap_is_set_all(const MY_BITMAP *map)
-{
- my_bitmap_map *data_ptr= map->bitmap;
- my_bitmap_map *end= map->last_word_ptr;
- *map->last_word_ptr |= map->last_word_mask;
- for (; data_ptr <= end; data_ptr++)
- if (*data_ptr != 0xFFFFFFFF)
- return FALSE;
- return TRUE;
-}
-
-
-my_bool bitmap_is_clear_all(const MY_BITMAP *map)
-{
- my_bitmap_map *data_ptr= map->bitmap;
- my_bitmap_map *end;
- if (*map->last_word_ptr & ~map->last_word_mask)
- return FALSE;
- end= map->last_word_ptr;
- for (; data_ptr < end; data_ptr++)
- if (*data_ptr)
- return FALSE;
- return TRUE;
-}
-
-/* Return TRUE if map1 is a subset of map2 */
-
-my_bool bitmap_is_subset(const MY_BITMAP *map1, const MY_BITMAP *map2)
-{
- my_bitmap_map *m1= map1->bitmap, *m2= map2->bitmap, *end;
-
- DBUG_ASSERT(map1->bitmap && map2->bitmap &&
- map1->n_bits==map2->n_bits);
-
- end= map1->last_word_ptr;
- *map1->last_word_ptr &= ~map1->last_word_mask;
- *map2->last_word_ptr &= ~map2->last_word_mask;
- while (m1 <= end)
- {
- if ((*m1++) & ~(*m2++))
- return 0;
- }
- return 1;
-}
-
-/* True if bitmaps has any common bits */
-
-my_bool bitmap_is_overlapping(const MY_BITMAP *map1, const MY_BITMAP *map2)
-{
- my_bitmap_map *m1= map1->bitmap, *m2= map2->bitmap, *end;
-
- DBUG_ASSERT(map1->bitmap && map2->bitmap &&
- map1->n_bits==map2->n_bits);
-
- end= map1->last_word_ptr;
- *map1->last_word_ptr &= ~map1->last_word_mask;
- *map2->last_word_ptr &= ~map2->last_word_mask;
- while (m1 <= end)
- {
- if ((*m1++) & (*m2++))
- return 1;
- }
- return 0;
-}
-
-
-void bitmap_intersect(MY_BITMAP *map, const MY_BITMAP *map2)
-{
- my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end;
- uint len= no_words_in_map(map), len2 = no_words_in_map(map2);
-
- DBUG_ASSERT(map->bitmap && map2->bitmap);
-
- end= to+min(len,len2);
- *map2->last_word_ptr&= ~map2->last_word_mask; /*Clear last bits in map2*/
- while (to < end)
- *to++ &= *from++;
-
- if (len2 < len)
- {
- end+=len-len2;
- while (to < end)
- *to++=0;
- }
-}
-
-
-/*
- Set/clear all bits above a bit.
-
- SYNOPSIS
- bitmap_set_above()
- map RETURN The bitmap to change.
- from_byte The bitmap buffer byte offset to start with.
- use_bit The bit value (1/0) to use for all upper bits.
-
- NOTE
- You can only set/clear full bytes.
- The function is meant for the situation that you copy a smaller bitmap
- to a bigger bitmap. Bitmap lengths are always multiple of eigth (the
- size of a byte). Using 'from_byte' saves multiplication and division
- by eight during parameter passing.
-
- RETURN
- void
-*/
-
-void bitmap_set_above(MY_BITMAP *map, uint from_byte, uint use_bit)
-{
- uchar use_byte= use_bit ? 0xff : 0;
- uchar *to= (uchar *)map->bitmap + from_byte;
- uchar *end= (uchar *)map->bitmap + (map->n_bits+7)/8;
-
- while (to < end)
- *to++= use_byte;
-}
-
-
-void bitmap_subtract(MY_BITMAP *map, const MY_BITMAP *map2)
-{
- my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end;
- DBUG_ASSERT(map->bitmap && map2->bitmap &&
- map->n_bits==map2->n_bits);
-
- end= map->last_word_ptr;
-
- while (to <= end)
- *to++ &= ~(*from++);
-}
-
-
-void bitmap_union(MY_BITMAP *map, const MY_BITMAP *map2)
-{
- my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end;
-
- DBUG_ASSERT(map->bitmap && map2->bitmap &&
- map->n_bits==map2->n_bits);
- end= map->last_word_ptr;
-
- while (to <= end)
- *to++ |= *from++;
-}
-
-
-void bitmap_xor(MY_BITMAP *map, const MY_BITMAP *map2)
-{
- my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end= map->last_word_ptr;
- DBUG_ASSERT(map->bitmap && map2->bitmap &&
- map->n_bits==map2->n_bits);
- while (to <= end)
- *to++ ^= *from++;
-}
-
-
-void bitmap_invert(MY_BITMAP *map)
-{
- my_bitmap_map *to= map->bitmap, *end;
-
- DBUG_ASSERT(map->bitmap);
- end= map->last_word_ptr;
-
- while (to <= end)
- *to++ ^= 0xFFFFFFFF;
-}
-
-
-uint bitmap_bits_set(const MY_BITMAP *map)
-{
- uchar *m= (uchar*)map->bitmap;
- uchar *end= m + no_bytes_in_map(map);
- uint res= 0;
-
- DBUG_ASSERT(map->bitmap);
- *map->last_word_ptr&= ~map->last_word_mask; /*Reset last bits to zero*/
- while (m < end)
- res+= my_count_bits_ushort(*m++);
- return res;
-}
-
-
-void bitmap_copy(MY_BITMAP *map, const MY_BITMAP *map2)
-{
- my_bitmap_map *to= map->bitmap, *from= map2->bitmap, *end;
-
- DBUG_ASSERT(map->bitmap && map2->bitmap &&
- map->n_bits==map2->n_bits);
- end= map->last_word_ptr;
- while (to <= end)
- *to++ = *from++;
-}
-
-
-uint bitmap_get_first_set(const MY_BITMAP *map)
-{
- uchar *byte_ptr;
- uint i,j,k;
- my_bitmap_map *data_ptr, *end= map->last_word_ptr;
-
- DBUG_ASSERT(map->bitmap);
- data_ptr= map->bitmap;
- *map->last_word_ptr &= ~map->last_word_mask;
-
- for (i=0; data_ptr <= end; data_ptr++, i++)
- {
- if (*data_ptr)
- {
- byte_ptr= (uchar*)data_ptr;
- for (j=0; ; j++, byte_ptr++)
- {
- if (*byte_ptr)
- {
- for (k=0; ; k++)
- {
- if (*byte_ptr & (1 << k))
- return (i*32) + (j*8) + k;
- }
- }
- }
- }
- }
- return MY_BIT_NONE;
-}
-
-
-uint bitmap_get_first(const MY_BITMAP *map)
-{
- uchar *byte_ptr;
- uint i,j,k;
- my_bitmap_map *data_ptr, *end= map->last_word_ptr;
-
- DBUG_ASSERT(map->bitmap);
- data_ptr= map->bitmap;
- *map->last_word_ptr|= map->last_word_mask;
-
- for (i=0; data_ptr <= end; data_ptr++, i++)
- {
- if (*data_ptr != 0xFFFFFFFF)
- {
- byte_ptr= (uchar*)data_ptr;
- for (j=0; ; j++, byte_ptr++)
- {
- if (*byte_ptr != 0xFF)
- {
- for (k=0; ; k++)
- {
- if (!(*byte_ptr & (1 << k)))
- return (i*32) + (j*8) + k;
- }
- }
- }
- }
- }
- return MY_BIT_NONE;
-}
-
-
-uint bitmap_lock_set_next(MY_BITMAP *map)
-{
- uint bit_found;
- bitmap_lock(map);
- bit_found= bitmap_set_next(map);
- bitmap_unlock(map);
- return bit_found;
-}
-
-
-void bitmap_lock_clear_bit(MY_BITMAP *map, uint bitmap_bit)
-{
- bitmap_lock(map);
- DBUG_ASSERT(map->bitmap && bitmap_bit < map->n_bits);
- bitmap_clear_bit(map, bitmap_bit);
- bitmap_unlock(map);
-}
-
-#ifdef MAIN
-
-uint get_rand_bit(uint bitsize)
-{
- return (rand() % bitsize);
-}
-
-bool test_set_get_clear_bit(MY_BITMAP *map, uint bitsize)
-{
- uint i, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit= get_rand_bit(bitsize);
- bitmap_set_bit(map, test_bit);
- if (!bitmap_is_set(map, test_bit))
- goto error1;
- bitmap_clear_bit(map, test_bit);
- if (bitmap_is_set(map, test_bit))
- goto error2;
- }
- return FALSE;
-error1:
- printf("Error in set bit, bit %u, bitsize = %u", test_bit, bitsize);
- return TRUE;
-error2:
- printf("Error in clear bit, bit %u, bitsize = %u", test_bit, bitsize);
- return TRUE;
-}
-
-bool test_flip_bit(MY_BITMAP *map, uint bitsize)
-{
- uint i, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit= get_rand_bit(bitsize);
- bitmap_flip_bit(map, test_bit);
- if (!bitmap_is_set(map, test_bit))
- goto error1;
- bitmap_flip_bit(map, test_bit);
- if (bitmap_is_set(map, test_bit))
- goto error2;
- }
- return FALSE;
-error1:
- printf("Error in flip bit 1, bit %u, bitsize = %u", test_bit, bitsize);
- return TRUE;
-error2:
- printf("Error in flip bit 2, bit %u, bitsize = %u", test_bit, bitsize);
- return TRUE;
-}
-
-bool test_operators(MY_BITMAP *map __attribute__((unused)),
- uint bitsize __attribute__((unused)))
-{
- return FALSE;
-}
-
-bool test_get_all_bits(MY_BITMAP *map, uint bitsize)
-{
- uint i;
- bitmap_set_all(map);
- if (!bitmap_is_set_all(map))
- goto error1;
- if (!bitmap_is_prefix(map, bitsize))
- goto error5;
- bitmap_clear_all(map);
- if (!bitmap_is_clear_all(map))
- goto error2;
- if (!bitmap_is_prefix(map, 0))
- goto error6;
- for (i=0; i<bitsize;i++)
- bitmap_set_bit(map, i);
- if (!bitmap_is_set_all(map))
- goto error3;
- for (i=0; i<bitsize;i++)
- bitmap_clear_bit(map, i);
- if (!bitmap_is_clear_all(map))
- goto error4;
- return FALSE;
-error1:
- printf("Error in set_all, bitsize = %u", bitsize);
- return TRUE;
-error2:
- printf("Error in clear_all, bitsize = %u", bitsize);
- return TRUE;
-error3:
- printf("Error in bitmap_is_set_all, bitsize = %u", bitsize);
- return TRUE;
-error4:
- printf("Error in bitmap_is_clear_all, bitsize = %u", bitsize);
- return TRUE;
-error5:
- printf("Error in set_all through set_prefix, bitsize = %u", bitsize);
- return TRUE;
-error6:
- printf("Error in clear_all through set_prefix, bitsize = %u", bitsize);
- return TRUE;
-}
-
-bool test_compare_operators(MY_BITMAP *map, uint bitsize)
-{
- uint i, j, test_bit1, test_bit2, test_bit3,test_bit4;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- MY_BITMAP map2_obj, map3_obj;
- MY_BITMAP *map2= &map2_obj, *map3= &map3_obj;
- my_bitmap_map map2buf[1024];
- my_bitmap_map map3buf[1024];
- bitmap_init(&map2_obj, map2buf, bitsize, FALSE);
- bitmap_init(&map3_obj, map3buf, bitsize, FALSE);
- bitmap_clear_all(map2);
- bitmap_clear_all(map3);
- for (i=0; i < no_loops; i++)
- {
- test_bit1=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit1);
- test_bit2=get_rand_bit(bitsize);
- bitmap_set_prefix(map2, test_bit2);
- bitmap_intersect(map, map2);
- test_bit3= test_bit2 < test_bit1 ? test_bit2 : test_bit1;
- bitmap_set_prefix(map3, test_bit3);
- if (!bitmap_cmp(map, map3))
- goto error1;
- bitmap_clear_all(map);
- bitmap_clear_all(map2);
- bitmap_clear_all(map3);
- test_bit1=get_rand_bit(bitsize);
- test_bit2=get_rand_bit(bitsize);
- test_bit3=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit1);
- bitmap_set_prefix(map2, test_bit2);
- test_bit3= test_bit2 > test_bit1 ? test_bit2 : test_bit1;
- bitmap_set_prefix(map3, test_bit3);
- bitmap_union(map, map2);
- if (!bitmap_cmp(map, map3))
- goto error2;
- bitmap_clear_all(map);
- bitmap_clear_all(map2);
- bitmap_clear_all(map3);
- test_bit1=get_rand_bit(bitsize);
- test_bit2=get_rand_bit(bitsize);
- test_bit3=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit1);
- bitmap_set_prefix(map2, test_bit2);
- bitmap_xor(map, map2);
- test_bit3= test_bit2 > test_bit1 ? test_bit2 : test_bit1;
- test_bit4= test_bit2 < test_bit1 ? test_bit2 : test_bit1;
- bitmap_set_prefix(map3, test_bit3);
- for (j=0; j < test_bit4; j++)
- bitmap_clear_bit(map3, j);
- if (!bitmap_cmp(map, map3))
- goto error3;
- bitmap_clear_all(map);
- bitmap_clear_all(map2);
- bitmap_clear_all(map3);
- test_bit1=get_rand_bit(bitsize);
- test_bit2=get_rand_bit(bitsize);
- test_bit3=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit1);
- bitmap_set_prefix(map2, test_bit2);
- bitmap_subtract(map, map2);
- if (test_bit2 < test_bit1)
- {
- bitmap_set_prefix(map3, test_bit1);
- for (j=0; j < test_bit2; j++)
- bitmap_clear_bit(map3, j);
- }
- if (!bitmap_cmp(map, map3))
- goto error4;
- bitmap_clear_all(map);
- bitmap_clear_all(map2);
- bitmap_clear_all(map3);
- test_bit1=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit1);
- bitmap_invert(map);
- bitmap_set_all(map3);
- for (j=0; j < test_bit1; j++)
- bitmap_clear_bit(map3, j);
- if (!bitmap_cmp(map, map3))
- goto error5;
- bitmap_clear_all(map);
- bitmap_clear_all(map3);
- }
- return FALSE;
-error1:
- printf("intersect error bitsize=%u,size1=%u,size2=%u", bitsize,
- test_bit1,test_bit2);
- return TRUE;
-error2:
- printf("union error bitsize=%u,size1=%u,size2=%u", bitsize,
- test_bit1,test_bit2);
- return TRUE;
-error3:
- printf("xor error bitsize=%u,size1=%u,size2=%u", bitsize,
- test_bit1,test_bit2);
- return TRUE;
-error4:
- printf("subtract error bitsize=%u,size1=%u,size2=%u", bitsize,
- test_bit1,test_bit2);
- return TRUE;
-error5:
- printf("invert error bitsize=%u,size=%u", bitsize,
- test_bit1);
- return TRUE;
-}
-
-bool test_count_bits_set(MY_BITMAP *map, uint bitsize)
-{
- uint i, bit_count=0, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit=get_rand_bit(bitsize);
- if (!bitmap_is_set(map, test_bit))
- {
- bitmap_set_bit(map, test_bit);
- bit_count++;
- }
- }
- if (bit_count==0 && bitsize > 0)
- goto error1;
- if (bitmap_bits_set(map) != bit_count)
- goto error2;
- return FALSE;
-error1:
- printf("No bits set bitsize = %u", bitsize);
- return TRUE;
-error2:
- printf("Wrong count of bits set, bitsize = %u", bitsize);
- return TRUE;
-}
-
-bool test_get_first_bit(MY_BITMAP *map, uint bitsize)
-{
- uint i, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit=get_rand_bit(bitsize);
- bitmap_set_bit(map, test_bit);
- if (bitmap_get_first_set(map) != test_bit)
- goto error1;
- bitmap_set_all(map);
- bitmap_clear_bit(map, test_bit);
- if (bitmap_get_first(map) != test_bit)
- goto error2;
- bitmap_clear_all(map);
- }
- return FALSE;
-error1:
- printf("get_first_set error bitsize=%u,prefix_size=%u",bitsize,test_bit);
- return TRUE;
-error2:
- printf("get_first error bitsize= %u, prefix_size= %u",bitsize,test_bit);
- return TRUE;
-}
-
-bool test_get_next_bit(MY_BITMAP *map, uint bitsize)
-{
- uint i, j, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit=get_rand_bit(bitsize);
- for (j=0; j < test_bit; j++)
- bitmap_set_next(map);
- if (!bitmap_is_prefix(map, test_bit))
- goto error1;
- bitmap_clear_all(map);
- }
- return FALSE;
-error1:
- printf("get_next error bitsize= %u, prefix_size= %u", bitsize,test_bit);
- return TRUE;
-}
-
-bool test_prefix(MY_BITMAP *map, uint bitsize)
-{
- uint i, j, test_bit;
- uint no_loops= bitsize > 128 ? 128 : bitsize;
- for (i=0; i < no_loops; i++)
- {
- test_bit=get_rand_bit(bitsize);
- bitmap_set_prefix(map, test_bit);
- if (!bitmap_is_prefix(map, test_bit))
- goto error1;
- bitmap_clear_all(map);
- for (j=0; j < test_bit; j++)
- bitmap_set_bit(map, j);
- if (!bitmap_is_prefix(map, test_bit))
- goto error2;
- bitmap_set_all(map);
- for (j=bitsize - 1; ~(j-test_bit); j--)
- bitmap_clear_bit(map, j);
- if (!bitmap_is_prefix(map, test_bit))
- goto error3;
- bitmap_clear_all(map);
- }
- return FALSE;
-error1:
- printf("prefix1 error bitsize = %u, prefix_size = %u", bitsize,test_bit);
- return TRUE;
-error2:
- printf("prefix2 error bitsize = %u, prefix_size = %u", bitsize,test_bit);
- return TRUE;
-error3:
- printf("prefix3 error bitsize = %u, prefix_size = %u", bitsize,test_bit);
- return TRUE;
-}
-
-
-bool do_test(uint bitsize)
-{
- MY_BITMAP map;
- my_bitmap_map buf[1024];
- if (bitmap_init(&map, buf, bitsize, FALSE))
- {
- printf("init error for bitsize %d", bitsize);
- goto error;
- }
- if (test_set_get_clear_bit(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_flip_bit(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_operators(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_get_all_bits(&map, bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_compare_operators(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_count_bits_set(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_get_first_bit(&map,bitsize))
- goto error;
- bitmap_clear_all(&map);
- if (test_get_next_bit(&map,bitsize))
- goto error;
- if (test_prefix(&map,bitsize))
- goto error;
- return FALSE;
-error:
- printf("\n");
- return TRUE;
-}
-
-int main()
-{
- int i;
- for (i= 1; i < 4096; i++)
- {
- printf("Start test for bitsize=%u\n",i);
- if (do_test(i))
- return -1;
- }
- printf("OK\n");
- return 0;
-}
-
-/*
- In directory mysys:
- make test_bitmap
- will build the bitmap tests and ./test_bitmap will execute it
-*/
-
-#endif
diff --git a/dep/mysqllite/mysys/my_chsize.c b/dep/mysqllite/mysys/my_chsize.c
deleted file mode 100644
index b9013811b34..00000000000
--- a/dep/mysqllite/mysys/my_chsize.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include "m_string.h"
-
-/*
- Change size of file.
-
- SYNOPSIS
- my_chsize()
- fd File descriptor
- new_length New file size
- filler If we don't have truncate, fill up all bytes after
- new_length with this character
- MyFlags Flags
-
- DESCRIPTION
- my_chsize() truncates file if shorter else fill with the filler character.
- The function also changes the file pointer. Usually it points to the end
- of the file after execution.
-
- RETURN VALUE
- 0 Ok
- 1 Error
-*/
-int my_chsize(File fd, my_off_t newlength, int filler, myf MyFlags)
-{
- my_off_t oldsize;
- uchar buff[IO_SIZE];
- DBUG_ENTER("my_chsize");
- DBUG_PRINT("my",("fd: %d length: %lu MyFlags: %d",fd,(ulong) newlength,
- MyFlags));
-
- if ((oldsize= my_seek(fd, 0L, MY_SEEK_END, MYF(MY_WME+MY_FAE))) == newlength)
- DBUG_RETURN(0);
-
- DBUG_PRINT("info",("old_size: %ld", (ulong) oldsize));
-
- if (oldsize > newlength)
- {
-#ifdef _WIN32
- if (my_win_chsize(fd, newlength))
- {
- my_errno= errno;
- goto err;
- }
- DBUG_RETURN(0);
-#elif defined(HAVE_FTRUNCATE)
- if (ftruncate(fd, (off_t) newlength))
- {
- my_errno= errno;
- goto err;
- }
- DBUG_RETURN(0);
-#elif defined(HAVE_CHSIZE)
- if (chsize(fd, (off_t) newlength))
- {
- my_errno=errno;
- goto err;
- }
- DBUG_RETURN(0);
-#else
- /*
- Fill space between requested length and true length with 'filler'
- We should never come here on any modern machine
- */
- if (my_seek(fd, newlength, MY_SEEK_SET, MYF(MY_WME+MY_FAE))
- == MY_FILEPOS_ERROR)
- {
- goto err;
- }
- swap_variables(my_off_t, newlength, oldsize);
-#endif
- }
-
- /* Full file with 'filler' until it's as big as requested */
- bfill(buff, IO_SIZE, filler);
- while (newlength-oldsize > IO_SIZE)
- {
- if (my_write(fd, buff, IO_SIZE, MYF(MY_NABP)))
- goto err;
- oldsize+= IO_SIZE;
- }
- if (my_write(fd,buff,(size_t) (newlength-oldsize), MYF(MY_NABP)))
- goto err;
- DBUG_RETURN(0);
-
-err:
- DBUG_PRINT("error", ("errno: %d", errno));
- if (MyFlags & MY_WME)
- my_error(EE_CANT_CHSIZE, MYF(ME_BELL+ME_WAITTANG), my_errno);
- DBUG_RETURN(1);
-} /* my_chsize */
diff --git a/dep/mysqllite/mysys/my_compress.c b/dep/mysqllite/mysys/my_compress.c
deleted file mode 100644
index 360390d376a..00000000000
--- a/dep/mysqllite/mysys/my_compress.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Written by Sinisa Milivojevic <sinisa@mysql.com> */
-
-#include <my_global.h>
-#ifdef HAVE_COMPRESS
-#include <my_sys.h>
-#ifndef SCO
-#include <m_string.h>
-#endif
-#include <zlib.h>
-
-/*
- This replaces the packet with a compressed packet
-
- SYNOPSIS
- my_compress()
- packet Data to compress. This is is replaced with the compressed data.
- len Length of data to compress at 'packet'
- complen out: 0 if packet was not compressed
-
- RETURN
- 1 error. 'len' is not changed'
- 0 ok. In this case 'len' contains the size of the compressed packet
-*/
-
-my_bool my_compress(uchar *packet, size_t *len, size_t *complen)
-{
- DBUG_ENTER("my_compress");
- if (*len < MIN_COMPRESS_LENGTH)
- {
- *complen=0;
- DBUG_PRINT("note",("Packet too short: Not compressed"));
- }
- else
- {
- uchar *compbuf=my_compress_alloc(packet,len,complen);
- if (!compbuf)
- DBUG_RETURN(*complen ? 0 : 1);
- memcpy(packet,compbuf,*len);
- my_free(compbuf);
- }
- DBUG_RETURN(0);
-}
-
-
-uchar *my_compress_alloc(const uchar *packet, size_t *len, size_t *complen)
-{
- uchar *compbuf;
- uLongf tmp_complen;
- int res;
- *complen= *len * 120 / 100 + 12;
-
- if (!(compbuf= (uchar *) my_malloc(*complen, MYF(MY_WME))))
- return 0; /* Not enough memory */
-
- tmp_complen= (uint) *complen;
- res= compress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet, (uLong) *len);
- *complen= tmp_complen;
-
- if (res != Z_OK)
- {
- my_free(compbuf);
- return 0;
- }
-
- if (*complen >= *len)
- {
- *complen= 0;
- my_free(compbuf);
- DBUG_PRINT("note",("Packet got longer on compression; Not compressed"));
- return 0;
- }
- /* Store length of compressed packet in *len */
- swap_variables(size_t, *len, *complen);
- return compbuf;
-}
-
-
-/*
- Uncompress packet
-
- SYNOPSIS
- my_uncompress()
- packet Compressed data. This is is replaced with the orignal data.
- len Length of compressed data
- complen Length of the packet buffer (must be enough for the original
- data)
-
- RETURN
- 1 error
- 0 ok. In this case 'complen' contains the updated size of the
- real data.
-*/
-
-my_bool my_uncompress(uchar *packet, size_t len, size_t *complen)
-{
- uLongf tmp_complen;
- DBUG_ENTER("my_uncompress");
-
- if (*complen) /* If compressed */
- {
- uchar *compbuf= (uchar *) my_malloc(*complen,MYF(MY_WME));
- int error;
- if (!compbuf)
- DBUG_RETURN(1); /* Not enough memory */
-
- tmp_complen= (uint) *complen;
- error= uncompress((Bytef*) compbuf, &tmp_complen, (Bytef*) packet,
- (uLong) len);
- *complen= tmp_complen;
- if (error != Z_OK)
- { /* Probably wrong packet */
- DBUG_PRINT("error",("Can't uncompress packet, error: %d",error));
- my_free(compbuf);
- DBUG_RETURN(1);
- }
- memcpy(packet, compbuf, *complen);
- my_free(compbuf);
- }
- else
- *complen= len;
- DBUG_RETURN(0);
-}
-
-/*
- Internal representation of the frm blob is:
-
- ver 4 bytes
- orglen 4 bytes
- complen 4 bytes
-*/
-
-#define BLOB_HEADER 12
-
-
-/*
- packfrm is a method used to compress the frm file for storage in a
- handler. This method was developed for the NDB handler and has been moved
- here to serve also other uses.
-
- SYNOPSIS
- packfrm()
- data Data reference to frm file data.
- len Length of frm file data
- out:pack_data Reference to the pointer to the packed frm data
- out:pack_len Length of packed frm file data
-
- NOTES
- data is replaced with compressed content
-
- RETURN VALUES
- 0 Success
- >0 Failure
-*/
-
-int packfrm(uchar *data, size_t len,
- uchar **pack_data, size_t *pack_len)
-{
- int error;
- size_t org_len, comp_len, blob_len;
- uchar *blob;
- DBUG_ENTER("packfrm");
- DBUG_PRINT("enter", ("data: 0x%lx len: %lu", (long) data, (ulong) len));
-
- error= 1;
- org_len= len;
- if (my_compress((uchar*)data, &org_len, &comp_len))
- goto err;
-
- DBUG_PRINT("info", ("org_len: %lu comp_len: %lu", (ulong) org_len,
- (ulong) comp_len));
- DBUG_DUMP("compressed", data, org_len);
-
- error= 2;
- blob_len= BLOB_HEADER + org_len;
- if (!(blob= (uchar*) my_malloc(blob_len,MYF(MY_WME))))
- goto err;
-
- /* Store compressed blob in machine independent format */
- int4store(blob, 1);
- int4store(blob+4, (uint32) len);
- int4store(blob+8, (uint32) org_len); /* compressed length */
-
- /* Copy frm data into blob, already in machine independent format */
- memcpy(blob+BLOB_HEADER, data, org_len);
-
- *pack_data= blob;
- *pack_len= blob_len;
- error= 0;
-
- DBUG_PRINT("exit", ("pack_data: 0x%lx pack_len: %lu",
- (long) *pack_data, (ulong) *pack_len));
-err:
- DBUG_RETURN(error);
-
-}
-
-/*
- unpackfrm is a method used to decompress the frm file received from a
- handler. This method was developed for the NDB handler and has been moved
- here to serve also other uses for other clustered storage engines.
-
- SYNOPSIS
- unpackfrm()
- pack_data Data reference to packed frm file data
- out:unpack_data Reference to the pointer to the unpacked frm data
- out:unpack_len Length of unpacked frm file data
-
- RETURN VALUES¨
- 0 Success
- >0 Failure
-*/
-
-int unpackfrm(uchar **unpack_data, size_t *unpack_len,
- const uchar *pack_data)
-{
- uchar *data;
- size_t complen, orglen;
- ulong ver;
- DBUG_ENTER("unpackfrm");
- DBUG_PRINT("enter", ("pack_data: 0x%lx", (long) pack_data));
-
- ver= uint4korr(pack_data);
- orglen= uint4korr(pack_data+4);
- complen= uint4korr(pack_data+8);
-
- DBUG_PRINT("blob",("ver: %lu complen: %lu orglen: %lu",
- ver, (ulong) complen, (ulong) orglen));
- DBUG_DUMP("blob->data", pack_data + BLOB_HEADER, complen);
-
- if (ver != 1)
- DBUG_RETURN(1);
- if (!(data= my_malloc(max(orglen, complen), MYF(MY_WME))))
- DBUG_RETURN(2);
- memcpy(data, pack_data + BLOB_HEADER, complen);
-
- if (my_uncompress(data, complen, &orglen))
- {
- my_free(data);
- DBUG_RETURN(3);
- }
-
- *unpack_data= data;
- *unpack_len= orglen;
-
- DBUG_PRINT("exit", ("frmdata: 0x%lx len: %lu", (long) *unpack_data,
- (ulong) *unpack_len));
- DBUG_RETURN(0);
-}
-#endif /* HAVE_COMPRESS */
diff --git a/dep/mysqllite/mysys/my_conio.c b/dep/mysqllite/mysys/my_conio.c
deleted file mode 100644
index 5dbd31193a9..00000000000
--- a/dep/mysqllite/mysys/my_conio.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-#include "mysys_priv.h"
-
-#ifdef __WIN__
-
-static HANDLE my_coninpfh= 0; /* console input */
-
-/*
- functions my_pthread_auto_mutex_lock & my_pthread_auto_mutex_free
- are experimental at this moment, they are intended to bring
- ability of protecting code sections without necessity to explicitly
- initialize synchronization object in one of threads
-
- if found useful they are to be exported in mysys
-*/
-
-
-/*
- int my_pthread_auto_mutex_lock(HANDLE* ph, const char* name,
- int id, int time)
- NOTES
- creates a mutex with given name and tries to lock it time msec.
- mutex name is appended with id to allow system wide or process wide
- locks. Handle to created mutex returned in ph argument.
-
- RETURN
- 0 thread owns mutex
- <>0 error
-*/
-
-static
-int my_pthread_auto_mutex_lock(HANDLE* ph, const char* name, int id, int time)
-{
- int res;
- char tname[FN_REFLEN];
-
- sprintf(tname, "%s-%08X", name, id);
-
- *ph= CreateMutex(NULL, FALSE, tname);
- if (*ph == NULL)
- return GetLastError();
-
- res= WaitForSingleObject(*ph, time);
-
- if (res == WAIT_TIMEOUT)
- return ERROR_SEM_TIMEOUT;
-
- if (res == WAIT_FAILED)
- return GetLastError();
-
- return 0;
-}
-
-/*
- int my_pthread_auto_mutex_free(HANDLE* ph)
-
- NOTES
- releases a mutex.
-
- RETURN
- 0 thread released mutex
- <>0 error
-
-*/
-static
-int my_pthread_auto_mutex_free(HANDLE* ph)
-{
- if (*ph)
- {
- ReleaseMutex(*ph);
- CloseHandle(*ph);
- *ph= NULL;
- }
-
- return 0;
-}
-
-
-#define pthread_auto_mutex_decl(name) \
- HANDLE __h##name= NULL;
-
-#define pthread_auto_mutex_lock(name, proc, time) \
- my_pthread_auto_mutex_lock(&__h##name, #name, (proc), (time))
-
-#define pthread_auto_mutex_free(name) \
- my_pthread_auto_mutex_free(&__h##name)
-
-
-/*
- char* my_cgets()
-
- NOTES
- Replaces _cgets from libc to support input of more than 255 chars.
- Reads from the console via ReadConsole into buffer which
- should be at least clen characters.
- Actual length of string returned in plen.
-
- WARNING
- my_cgets() does NOT check the pushback character buffer (i.e., _chbuf).
- Thus, my_cgets() will not return any character that is pushed back by
- the _ungetch() call.
-
- RETURN
- string pointer ok
- NULL Error
-
-*/
-
-char* my_cgets(char *buffer, size_t clen, size_t* plen)
-{
- ULONG state;
- char *result;
- DWORD plen_res;
- CONSOLE_SCREEN_BUFFER_INFO csbi;
-
- pthread_auto_mutex_decl(my_conio_cs);
-
- /* lock the console for the current process*/
- if (pthread_auto_mutex_lock(my_conio_cs, GetCurrentProcessId(), INFINITE))
- {
- /* can not lock console */
- pthread_auto_mutex_free(my_conio_cs);
- return NULL;
- }
-
- /* init console input */
- if (my_coninpfh == 0)
- {
- /* same handle will be used until process termination */
- my_coninpfh= CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE,
- NULL, OPEN_EXISTING, 0, NULL);
- }
-
- if (my_coninpfh == INVALID_HANDLE_VALUE)
- {
- /* unlock the console */
- pthread_auto_mutex_free(my_conio_cs);
- return(NULL);
- }
-
- GetConsoleMode((HANDLE)my_coninpfh, &state);
- SetConsoleMode((HANDLE)my_coninpfh, ENABLE_LINE_INPUT |
- ENABLE_PROCESSED_INPUT | ENABLE_ECHO_INPUT);
-
- GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);
-
- /*
- there is no known way to determine allowed buffer size for input
- though it is known it should not be more than 64K
- so we cut 64K and try first size of screen buffer
- if it is still to large we cut half of it and try again
- later we may want to cycle from min(clen, 65535) to allowed size
- with small decrement to determine exact allowed buffer
- */
- clen= min(clen, 65535);
- do
- {
- clen= min(clen, (size_t) csbi.dwSize.X*csbi.dwSize.Y);
- if (!ReadConsole((HANDLE)my_coninpfh, (LPVOID)buffer, (DWORD) clen - 1, &plen_res,
- NULL))
- {
- result= NULL;
- clen>>= 1;
- }
- else
- {
- result= buffer;
- break;
- }
- }
- while (GetLastError() == ERROR_NOT_ENOUGH_MEMORY);
- *plen= plen_res;
-
- /* We go here on error reading the string (Ctrl-C for example) */
- if (!*plen)
- result= NULL; /* purecov: inspected */
-
- if (result != NULL)
- {
- if (*plen > 1 && buffer[*plen - 2] == '\r')
- {
- *plen= *plen - 2;
- }
- else
- {
- if (*plen > 0 && buffer[*plen - 1] == '\r')
- {
- char tmp[3];
- int tmplen= sizeof(tmp);
-
- *plen= *plen - 1;
- /* read /n left in the buffer */
- ReadConsole((HANDLE)my_coninpfh, (LPVOID)tmp, tmplen, &tmplen, NULL);
- }
- }
- buffer[*plen]= '\0';
- }
-
- SetConsoleMode((HANDLE)my_coninpfh, state);
- /* unlock the console */
- pthread_auto_mutex_free(my_conio_cs);
-
- return result;
-}
-
-#endif /* __WIN__ */
diff --git a/dep/mysqllite/mysys/my_copy.c b/dep/mysqllite/mysys/my_copy.c
deleted file mode 100644
index 35324dd4cef..00000000000
--- a/dep/mysqllite/mysys/my_copy.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <my_dir.h> /* for stat */
-#include <m_string.h>
-#include "mysys_err.h"
-#if defined(HAVE_UTIME_H)
-#include <utime.h>
-#elif defined(HAVE_SYS_UTIME_H)
-#include <sys/utime.h>
-#elif !defined(HPUX10)
-#include <time.h>
-struct utimbuf {
- time_t actime;
- time_t modtime;
-};
-#endif
-
-
-/*
- int my_copy(const char *from, const char *to, myf MyFlags)
-
- NOTES
- Ordinary ownership and accesstimes are copied from 'from-file'
- If MyFlags & MY_HOLD_ORIGINAL_MODES is set and to-file exists then
- the modes of to-file isn't changed
- If MyFlags & MY_DONT_OVERWRITE_FILE is set, we will give an error
- if the file existed.
-
- WARNING
- Don't set MY_FNABP or MY_NABP bits on when calling this function !
-
- RETURN
- 0 ok
- # Error
-
-*/
-
-int my_copy(const char *from, const char *to, myf MyFlags)
-{
- size_t Count;
- my_bool new_file_stat= 0; /* 1 if we could stat "to" */
- int create_flag;
- File from_file,to_file;
- uchar buff[IO_SIZE];
- MY_STAT stat_buff,new_stat_buff;
- DBUG_ENTER("my_copy");
- DBUG_PRINT("my",("from %s to %s MyFlags %d", from, to, MyFlags));
-
- from_file=to_file= -1;
- DBUG_ASSERT(!(MyFlags & (MY_FNABP | MY_NABP))); /* for my_read/my_write */
- if (MyFlags & MY_HOLD_ORIGINAL_MODES) /* Copy stat if possible */
- new_file_stat= test(my_stat((char*) to, &new_stat_buff, MYF(0)));
-
- if ((from_file=my_open(from,O_RDONLY | O_SHARE,MyFlags)) >= 0)
- {
- if (!my_stat(from, &stat_buff, MyFlags))
- {
- my_errno=errno;
- goto err;
- }
- if (MyFlags & MY_HOLD_ORIGINAL_MODES && new_file_stat)
- stat_buff=new_stat_buff;
- create_flag= (MyFlags & MY_DONT_OVERWRITE_FILE) ? O_EXCL : O_TRUNC;
-
- if ((to_file= my_create(to,(int) stat_buff.st_mode,
- O_WRONLY | create_flag | O_BINARY | O_SHARE,
- MyFlags)) < 0)
- goto err;
-
- while ((Count=my_read(from_file, buff, sizeof(buff), MyFlags)) != 0)
- {
- if (Count == (uint) -1 ||
- my_write(to_file,buff,Count,MYF(MyFlags | MY_NABP)))
- goto err;
- }
-
- /* sync the destination file */
- if (MyFlags & MY_SYNC)
- {
- if (my_sync(to_file, MyFlags))
- goto err;
- }
-
- if (my_close(from_file,MyFlags) | my_close(to_file,MyFlags))
- DBUG_RETURN(-1); /* Error on close */
-
- /* Copy modes if possible */
-
- if (MyFlags & MY_HOLD_ORIGINAL_MODES && !new_file_stat)
- DBUG_RETURN(0); /* File copyed but not stat */
- /* Copy modes */
- if (chmod(to, stat_buff.st_mode & 07777))
- {
- my_errno= errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_CHANGE_PERMISSIONS, MYF(ME_BELL+ME_WAITTANG), from, errno);
- goto err;
- }
-#if !defined(__WIN__)
- /* Copy ownership */
- if (chown(to, stat_buff.st_uid, stat_buff.st_gid))
- {
- my_errno= errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_CHANGE_OWNERSHIP, MYF(ME_BELL+ME_WAITTANG), from, errno);
- goto err;
- }
-#endif
-
- if (MyFlags & MY_COPYTIME)
- {
- struct utimbuf timep;
- timep.actime = stat_buff.st_atime;
- timep.modtime = stat_buff.st_mtime;
- (void) utime((char*) to, &timep); /* last accessed and modified times */
- }
-
- DBUG_RETURN(0);
- }
-
-err:
- if (from_file >= 0) (void) my_close(from_file,MyFlags);
- if (to_file >= 0)
- {
- (void) my_close(to_file, MyFlags);
- /* attempt to delete the to-file we've partially written */
- (void) my_delete(to, MyFlags);
- }
- DBUG_RETURN(-1);
-} /* my_copy */
diff --git a/dep/mysqllite/mysys/my_create.c b/dep/mysqllite/mysys/my_create.c
deleted file mode 100644
index 49529f9b7b5..00000000000
--- a/dep/mysqllite/mysys/my_create.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <my_dir.h>
-#include "mysys_err.h"
-#include <errno.h>
-#include <my_sys.h>
-#if defined(_WIN32)
-#include <share.h>
-#endif
-
- /*
- ** Create a new file
- ** Arguments:
- ** Path-name of file
- ** Read | write on file (umask value)
- ** Read & Write on open file
- ** Special flags
- */
-
-
-File my_create(const char *FileName, int CreateFlags, int access_flags,
- myf MyFlags)
-{
- int fd, rc;
- DBUG_ENTER("my_create");
- DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d",
- FileName, CreateFlags, access_flags, MyFlags));
-#if defined(_WIN32)
- fd= my_win_open(FileName, access_flags | O_CREAT);
-#else
- fd= open((char *) FileName, access_flags | O_CREAT,
- CreateFlags ? CreateFlags : my_umask);
-#endif
-
- if ((MyFlags & MY_SYNC_DIR) && (fd >=0) &&
- my_sync_dir_by_file(FileName, MyFlags))
- {
- my_close(fd, MyFlags);
- fd= -1;
- }
-
- rc= my_register_filename(fd, FileName, FILE_BY_CREATE,
- EE_CANTCREATEFILE, MyFlags);
- /*
- my_register_filename() may fail on some platforms even if the call to
- *open() above succeeds. In this case, don't leave the stale file because
- callers assume the file to not exist if my_create() fails, so they don't
- do any cleanups.
- */
- if (unlikely(fd >= 0 && rc < 0))
- {
- int tmp= my_errno;
- my_close(fd, MyFlags);
- my_delete(FileName, MyFlags);
- my_errno= tmp;
- }
-
- DBUG_RETURN(rc);
-} /* my_create */
diff --git a/dep/mysqllite/mysys/my_delete.c b/dep/mysqllite/mysys/my_delete.c
deleted file mode 100644
index 4a23fedb5ab..00000000000
--- a/dep/mysqllite/mysys/my_delete.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <my_sys.h>
-
-int my_delete(const char *name, myf MyFlags)
-{
- int err;
- DBUG_ENTER("my_delete");
- DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags));
-
- if ((err = unlink(name)) == -1)
- {
- my_errno=errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_DELETE,MYF(ME_BELL+ME_WAITTANG+(MyFlags & ME_NOINPUT)),
- name,errno);
- }
- else if ((MyFlags & MY_SYNC_DIR) &&
- my_sync_dir_by_file(name, MyFlags))
- err= -1;
- DBUG_RETURN(err);
-} /* my_delete */
-
-#if defined(__WIN__)
-/**
- Delete file which is possibly not closed.
-
- This function is intended to be used exclusively as a temporal solution
- for Win NT in case when it is needed to delete a not closed file (note
- that the file must be opened everywhere with FILE_SHARE_DELETE mode).
- Deleting not-closed files can not be supported on Win 98|ME (and because
- of that is considered harmful).
-
- The function deletes the file with its preliminary renaming. This is
- because when not-closed share-delete file is deleted it still lives on
- a disk until it will not be closed everwhere. This may conflict with an
- attempt to create a new file with the same name. The deleted file is
- renamed to <name>.<num>.deleted where <name> - the initial name of the
- file, <num> - a hexadecimal number chosen to make the temporal name to
- be unique.
-
- @param the name of the being deleted file
- @param the flags instructing how to react on an error internally in
- the function
-
- @note The per-thread @c my_errno holds additional info for a caller to
- decide how critical the error can be.
-
- @retval
- 0 ok
- @retval
- 1 error
-
-
-*/
-int nt_share_delete(const char *name, myf MyFlags)
-{
- char buf[MAX_PATH + 20];
- ulong cnt;
- DBUG_ENTER("nt_share_delete");
- DBUG_PRINT("my",("name %s MyFlags %d", name, MyFlags));
-
- for (cnt= GetTickCount(); cnt; cnt--)
- {
- errno= 0;
- sprintf(buf, "%s.%08X.deleted", name, cnt);
- if (MoveFile(name, buf))
- break;
-
- if ((errno= GetLastError()) == ERROR_ALREADY_EXISTS)
- continue;
-
- /* This happened during tests with MERGE tables. */
- if (errno == ERROR_ACCESS_DENIED)
- continue;
-
- DBUG_PRINT("warning", ("Failed to rename %s to %s, errno: %d",
- name, buf, errno));
- break;
- }
-
- if (errno == ERROR_FILE_NOT_FOUND)
- {
- my_errno= ENOENT; // marking, that `name' doesn't exist
- }
- else if (errno == 0)
- {
- if (DeleteFile(buf))
- DBUG_RETURN(0);
- /*
- The below is more complicated than necessary. For some reason, the
- assignment to my_errno clears the error number, which is retrieved
- by GetLastError() (VC2005EE). Assigning to errno first, allows to
- retrieve the correct value.
- */
- errno= GetLastError();
- if (errno == 0)
- my_errno= ENOENT; // marking, that `buf' doesn't exist
- else
- my_errno= errno;
- }
- else
- my_errno= errno;
-
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_DELETE, MYF(ME_BELL + ME_WAITTANG + (MyFlags & ME_NOINPUT)),
- name, my_errno);
- DBUG_RETURN(-1);
-}
-#endif
diff --git a/dep/mysqllite/mysys/my_div.c b/dep/mysqllite/mysys/my_div.c
deleted file mode 100644
index d29d3668852..00000000000
--- a/dep/mysqllite/mysys/my_div.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-/*
- Get filename of file
-
- SYNOPSIS
- my_filename()
- fd File descriptor
-*/
-
-char * my_filename(File fd)
-{
- DBUG_ENTER("my_filename");
- if ((uint) fd >= (uint) my_file_limit)
- DBUG_RETURN((char*) "UNKNOWN");
- if (fd >= 0 && my_file_info[fd].type != UNOPEN)
- {
- DBUG_RETURN(my_file_info[fd].name);
- }
- else
- DBUG_RETURN((char*) "UNOPENED"); /* Debug message */
-}
diff --git a/dep/mysqllite/mysys/my_error.c b/dep/mysqllite/mysys/my_error.c
deleted file mode 100644
index fa62cc604b6..00000000000
--- a/dep/mysqllite/mysys/my_error.c
+++ /dev/null
@@ -1,290 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <m_string.h>
-#include <stdarg.h>
-#include <m_ctype.h>
-
-/* Max length of a error message. Should be kept in sync with MYSQL_ERRMSG_SIZE. */
-#define ERRMSGSIZE (512)
-
-/* Define some external variables for error handling */
-
-/*
- WARNING!
- my_error family functions have to be used according following rules:
- - if message have not parameters use my_message(ER_CODE, ER(ER_CODE), MYF(N))
- - if message registered use my_error(ER_CODE, MYF(N), ...).
- - With some special text of errror message use:
- my_printf_error(ER_CODE, format, MYF(N), ...)
-*/
-
-/*
- Message texts are registered into a linked list of 'my_err_head' structs.
- Each struct contains (1.) an array of pointers to C character strings with
- '\0' termination, (2.) the error number for the first message in the array
- (array index 0) and (3.) the error number for the last message in the array
- (array index (last - first)).
- The array may contain gaps with NULL pointers and pointers to empty strings.
- Both kinds of gaps will be translated to "Unknown error %d.", if my_error()
- is called with a respective error number.
- The list of header structs is sorted in increasing order of error numbers.
- Negative error numbers are allowed. Overlap of error numbers is not allowed.
- Not registered error numbers will be translated to "Unknown error %d.".
-*/
-static struct my_err_head
-{
- struct my_err_head *meh_next; /* chain link */
- const char** (*get_errmsgs) (); /* returns error message format */
- int meh_first; /* error number matching array slot 0 */
- int meh_last; /* error number matching last slot */
-} my_errmsgs_globerrs = {NULL, get_global_errmsgs, EE_ERROR_FIRST, EE_ERROR_LAST};
-
-static struct my_err_head *my_errmsgs_list= &my_errmsgs_globerrs;
-
-
-/*
- Error message to user
-
- SYNOPSIS
- my_error()
- nr Errno
- MyFlags Flags
- ... variable list
-
-*/
-
-void my_error(int nr, myf MyFlags, ...)
-{
- const char *format;
- struct my_err_head *meh_p;
- va_list args;
- char ebuff[ERRMSGSIZE];
- DBUG_ENTER("my_error");
- DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d", nr, MyFlags, errno));
-
- /* Search for the error messages array, which could contain the message. */
- for (meh_p= my_errmsgs_list; meh_p; meh_p= meh_p->meh_next)
- if (nr <= meh_p->meh_last)
- break;
-
- /* get the error message string. Default, if NULL or empty string (""). */
- if (! (format= (meh_p && (nr >= meh_p->meh_first)) ?
- meh_p->get_errmsgs()[nr - meh_p->meh_first] : NULL) || ! *format)
- (void) my_snprintf (ebuff, sizeof(ebuff), "Unknown error %d", nr);
- else
- {
- va_start(args,MyFlags);
- (void) my_vsnprintf_ex(&my_charset_utf8_general_ci, ebuff,
- sizeof(ebuff), format, args);
- va_end(args);
- }
- (*error_handler_hook)(nr, ebuff, MyFlags);
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Error as printf
-
- SYNOPSIS
- my_printf_error()
- error Errno
- format Format string
- MyFlags Flags
- ... variable list
-*/
-
-void my_printf_error(uint error, const char *format, myf MyFlags, ...)
-{
- va_list args;
- char ebuff[ERRMSGSIZE];
- DBUG_ENTER("my_printf_error");
- DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d Format: %s",
- error, MyFlags, errno, format));
-
- va_start(args,MyFlags);
- (void) my_vsnprintf_ex(&my_charset_utf8_general_ci, ebuff,
- sizeof(ebuff), format, args);
- va_end(args);
- (*error_handler_hook)(error, ebuff, MyFlags);
- DBUG_VOID_RETURN;
-}
-
-/*
- Error with va_list
-
- SYNOPSIS
- my_printv_error()
- error Errno
- format Format string
- MyFlags Flags
- ... variable list
-*/
-
-void my_printv_error(uint error, const char *format, myf MyFlags, va_list ap)
-{
- char ebuff[ERRMSGSIZE];
- DBUG_ENTER("my_printv_error");
- DBUG_PRINT("my", ("nr: %d MyFlags: %d errno: %d format: %s",
- error, MyFlags, errno, format));
-
- (void) my_vsnprintf(ebuff, sizeof(ebuff), format, ap);
- (*error_handler_hook)(error, ebuff, MyFlags);
- DBUG_VOID_RETURN;
-}
-
-/*
- Give message using error_handler_hook
-
- SYNOPSIS
- my_message()
- error Errno
- str Error message
- MyFlags Flags
-*/
-
-void my_message(uint error, const char *str, register myf MyFlags)
-{
- (*error_handler_hook)(error, str, MyFlags);
-}
-
-
-/*
- Register error messages for use with my_error().
-
- SYNOPSIS
- my_error_register()
- errmsgs array of pointers to error messages
- first error number of first message in the array
- last error number of last message in the array
-
- DESCRIPTION
- The pointer array is expected to contain addresses to NUL-terminated
- C character strings. The array contains (last - first + 1) pointers.
- NULL pointers and empty strings ("") are allowed. These will be mapped to
- "Unknown error" when my_error() is called with a matching error number.
- This function registers the error numbers 'first' to 'last'.
- No overlapping with previously registered error numbers is allowed.
-
- RETURN
- 0 OK
- != 0 Error
-*/
-
-int my_error_register(const char** (*get_errmsgs) (), int first, int last)
-{
- struct my_err_head *meh_p;
- struct my_err_head **search_meh_pp;
-
- /* Allocate a new header structure. */
- if (! (meh_p= (struct my_err_head*) my_malloc(sizeof(struct my_err_head),
- MYF(MY_WME))))
- return 1;
- meh_p->get_errmsgs= get_errmsgs;
- meh_p->meh_first= first;
- meh_p->meh_last= last;
-
- /* Search for the right position in the list. */
- for (search_meh_pp= &my_errmsgs_list;
- *search_meh_pp;
- search_meh_pp= &(*search_meh_pp)->meh_next)
- {
- if ((*search_meh_pp)->meh_last > first)
- break;
- }
-
- /* Error numbers must be unique. No overlapping is allowed. */
- if (*search_meh_pp && ((*search_meh_pp)->meh_first <= last))
- {
- my_free(meh_p);
- return 1;
- }
-
- /* Insert header into the chain. */
- meh_p->meh_next= *search_meh_pp;
- *search_meh_pp= meh_p;
- return 0;
-}
-
-
-/*
- Unregister formerly registered error messages.
-
- SYNOPSIS
- my_error_unregister()
- first error number of first message
- last error number of last message
-
- DESCRIPTION
- This function unregisters the error numbers 'first' to 'last'.
- These must have been previously registered by my_error_register().
- 'first' and 'last' must exactly match the registration.
- If a matching registration is present, the header is removed from the
- list and the pointer to the error messages pointers array is returned.
- Otherwise, NULL is returned.
-
- RETURN
- non-NULL OK, returns address of error messages pointers array.
- NULL Error, no such number range registered.
-*/
-
-const char **my_error_unregister(int first, int last)
-{
- struct my_err_head *meh_p;
- struct my_err_head **search_meh_pp;
- const char **errmsgs;
-
- /* Search for the registration in the list. */
- for (search_meh_pp= &my_errmsgs_list;
- *search_meh_pp;
- search_meh_pp= &(*search_meh_pp)->meh_next)
- {
- if (((*search_meh_pp)->meh_first == first) &&
- ((*search_meh_pp)->meh_last == last))
- break;
- }
- if (! *search_meh_pp)
- return NULL;
-
- /* Remove header from the chain. */
- meh_p= *search_meh_pp;
- *search_meh_pp= meh_p->meh_next;
-
- /* Save the return value and free the header. */
- errmsgs= meh_p->get_errmsgs();
- my_free(meh_p);
-
- return errmsgs;
-}
-
-
-void my_error_unregister_all(void)
-{
- struct my_err_head *cursor, *saved_next;
-
- for (cursor= my_errmsgs_globerrs.meh_next; cursor != NULL; cursor= saved_next)
- {
- /* We need this ptr, but we're about to free its container, so save it. */
- saved_next= cursor->meh_next;
-
- my_free(cursor);
- }
- my_errmsgs_globerrs.meh_next= NULL; /* Freed in first iteration above. */
-
- my_errmsgs_list= &my_errmsgs_globerrs;
-}
diff --git a/dep/mysqllite/mysys/my_file.c b/dep/mysqllite/mysys/my_file.c
deleted file mode 100644
index e4b7cd7779f..00000000000
--- a/dep/mysqllite/mysys/my_file.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include <m_string.h>
-
-/*
- set how many open files we want to be able to handle
-
- SYNOPSIS
- set_maximum_open_files()
- max_file_limit Files to open
-
- NOTES
- The request may not fulfilled becasue of system limitations
-
- RETURN
- Files available to open.
- May be more or less than max_file_limit!
-*/
-
-#if defined(HAVE_GETRLIMIT) && defined(RLIMIT_NOFILE)
-
-#ifndef RLIM_INFINITY
-#define RLIM_INFINITY ((uint) 0xffffffff)
-#endif
-
-static uint set_max_open_files(uint max_file_limit)
-{
- struct rlimit rlimit;
- uint old_cur;
- DBUG_ENTER("set_max_open_files");
- DBUG_PRINT("enter",("files: %u", max_file_limit));
-
- if (!getrlimit(RLIMIT_NOFILE,&rlimit))
- {
- old_cur= (uint) rlimit.rlim_cur;
- DBUG_PRINT("info", ("rlim_cur: %u rlim_max: %u",
- (uint) rlimit.rlim_cur,
- (uint) rlimit.rlim_max));
- if (rlimit.rlim_cur == RLIM_INFINITY)
- rlimit.rlim_cur = max_file_limit;
- if (rlimit.rlim_cur >= max_file_limit)
- DBUG_RETURN(rlimit.rlim_cur); /* purecov: inspected */
- rlimit.rlim_cur= rlimit.rlim_max= max_file_limit;
- if (setrlimit(RLIMIT_NOFILE, &rlimit))
- max_file_limit= old_cur; /* Use original value */
- else
- {
- rlimit.rlim_cur= 0; /* Safety if next call fails */
- (void) getrlimit(RLIMIT_NOFILE,&rlimit);
- DBUG_PRINT("info", ("rlim_cur: %u", (uint) rlimit.rlim_cur));
- if (rlimit.rlim_cur) /* If call didn't fail */
- max_file_limit= (uint) rlimit.rlim_cur;
- }
- }
- DBUG_PRINT("exit",("max_file_limit: %u", max_file_limit));
- DBUG_RETURN(max_file_limit);
-}
-
-#else
-static uint set_max_open_files(uint max_file_limit)
-{
- /* We don't know the limit. Return best guess */
- return min(max_file_limit, OS_FILE_LIMIT);
-}
-#endif
-
-
-/*
- Change number of open files
-
- SYNOPSIS:
- my_set_max_open_files()
- files Number of requested files
-
- RETURN
- number of files available for open
-*/
-
-uint my_set_max_open_files(uint files)
-{
- struct st_my_file_info *tmp;
- DBUG_ENTER("my_set_max_open_files");
- DBUG_PRINT("enter",("files: %u my_file_limit: %u", files, my_file_limit));
-
- files+= MY_FILE_MIN;
- files= set_max_open_files(min(files, OS_FILE_LIMIT));
- if (files <= MY_NFILE)
- DBUG_RETURN(files);
-
- if (!(tmp= (struct st_my_file_info*) my_malloc(sizeof(*tmp) * files,
- MYF(MY_WME))))
- DBUG_RETURN(MY_NFILE);
-
- /* Copy any initialized files */
- memcpy((char*) tmp, (char*) my_file_info,
- sizeof(*tmp) * min(my_file_limit, files));
- bzero((char*) (tmp + my_file_limit),
- max((int) (files- my_file_limit), 0)*sizeof(*tmp));
- my_free_open_file_info(); /* Free if already allocated */
- my_file_info= tmp;
- my_file_limit= files;
- DBUG_PRINT("exit",("files: %u", files));
- DBUG_RETURN(files);
-}
-
-
-void my_free_open_file_info()
-{
- DBUG_ENTER("my_free_file_info");
- if (my_file_info != my_file_info_default)
- {
- /* Copy data back for my_print_open_files */
- memcpy((char*) my_file_info_default, my_file_info,
- sizeof(*my_file_info_default)* MY_NFILE);
- my_free(my_file_info);
- my_file_info= my_file_info_default;
- my_file_limit= MY_NFILE;
- }
- DBUG_VOID_RETURN;
-}
diff --git a/dep/mysqllite/mysys/my_fopen.c b/dep/mysqllite/mysys/my_fopen.c
deleted file mode 100644
index e184c8308fc..00000000000
--- a/dep/mysqllite/mysys/my_fopen.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include <errno.h>
-#include "mysys_err.h"
-
-#if defined(__FreeBSD__)
-extern int getosreldate(void);
-#endif
-
-static void make_ftype(char * to,int flag);
-
-/*
- Open a file as stream
-
- SYNOPSIS
- my_fopen()
- FileName Path-name of file
- Flags Read | write | append | trunc (like for open())
- MyFlags Flags for handling errors
-
- RETURN
- 0 Error
- # File handler
-*/
-
-FILE *my_fopen(const char *filename, int flags, myf MyFlags)
-{
- FILE *fd;
- char type[5];
- DBUG_ENTER("my_fopen");
- DBUG_PRINT("my",("Name: '%s' flags: %d MyFlags: %d",
- filename, flags, MyFlags));
-
- make_ftype(type,flags);
-
-#ifdef _WIN32
- fd= my_win_fopen(filename, type);
-#else
- fd= fopen(filename, type);
-#endif
- if (fd != 0)
- {
- /*
- The test works if MY_NFILE < 128. The problem is that fileno() is char
- on some OS (SUNOS). Actually the filename save isn't that important
- so we can ignore if this doesn't work.
- */
-
- int filedesc= my_fileno(fd);
- if ((uint)filedesc >= my_file_limit)
- {
- thread_safe_increment(my_stream_opened,&THR_LOCK_open);
- DBUG_RETURN(fd); /* safeguard */
- }
- mysql_mutex_lock(&THR_LOCK_open);
- if ((my_file_info[filedesc].name= (char*)
- my_strdup(filename,MyFlags)))
- {
- my_stream_opened++;
- my_file_total_opened++;
- my_file_info[filedesc].type= STREAM_BY_FOPEN;
- mysql_mutex_unlock(&THR_LOCK_open);
- DBUG_PRINT("exit",("stream: 0x%lx", (long) fd));
- DBUG_RETURN(fd);
- }
- mysql_mutex_unlock(&THR_LOCK_open);
- (void) my_fclose(fd,MyFlags);
- my_errno=ENOMEM;
- }
- else
- my_errno=errno;
- DBUG_PRINT("error",("Got error %d on open",my_errno));
- if (MyFlags & (MY_FFNF | MY_FAE | MY_WME))
- my_error((flags & O_RDONLY) || (flags == O_RDONLY ) ? EE_FILENOTFOUND :
- EE_CANTCREATEFILE,
- MYF(ME_BELL+ME_WAITTANG), filename, my_errno);
- DBUG_RETURN((FILE*) 0);
-} /* my_fopen */
-
-
-#if defined(_WIN32)
-
-static FILE *my_win_freopen(const char *path, const char *mode, FILE *stream)
-{
- int handle_fd, fd= _fileno(stream);
- HANDLE osfh;
-
- DBUG_ASSERT(path && stream);
-
- /* Services don't have stdout/stderr on Windows, so _fileno returns -1. */
- if (fd < 0)
- {
- if (!freopen(path, mode, stream))
- return NULL;
-
- fd= _fileno(stream);
- }
-
- if ((osfh= CreateFile(path, GENERIC_READ | GENERIC_WRITE,
- FILE_SHARE_READ | FILE_SHARE_WRITE |
- FILE_SHARE_DELETE, NULL,
- OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL,
- NULL)) == INVALID_HANDLE_VALUE)
- return NULL;
-
- if ((handle_fd= _open_osfhandle((intptr_t)osfh,
- _O_APPEND | _O_TEXT)) == -1)
- {
- CloseHandle(osfh);
- return NULL;
- }
-
- if (_dup2(handle_fd, fd) < 0)
- {
- CloseHandle(osfh);
- return NULL;
- }
-
- _close(handle_fd);
-
- return stream;
-}
-
-#elif defined(__FreeBSD__)
-
-/* No close operation hook. */
-
-static int no_close(void *cookie __attribute__((unused)))
-{
- return 0;
-}
-
-/*
- A hack around a race condition in the implementation of freopen.
-
- The race condition steams from the fact that the current fd of
- the stream is closed before its number is used to duplicate the
- new file descriptor. This defeats the desired atomicity of the
- close and duplicate of dup2().
-
- See PR number 79887 for reference:
- http://www.freebsd.org/cgi/query-pr.cgi?pr=79887
-*/
-
-static FILE *my_freebsd_freopen(const char *path, const char *mode, FILE *stream)
-{
- int old_fd;
- FILE *result;
-
- flockfile(stream);
-
- old_fd= fileno(stream);
-
- /* Use a no operation close hook to avoid having the fd closed. */
- stream->_close= no_close;
-
- /* Relies on the implicit dup2 to close old_fd. */
- result= freopen(path, mode, stream);
-
- /* If successful, the _close hook was replaced. */
-
- if (result == NULL)
- close(old_fd);
- else
- funlockfile(result);
-
- return result;
-}
-
-#endif
-
-
-/**
- Change the file associated with a file stream.
-
- @param path Path to file.
- @param mode Mode of the stream.
- @param stream File stream.
-
- @note
- This function is used to redirect stdout and stderr to a file and
- subsequently to close and reopen that file for log rotation.
-
- @retval A FILE pointer on success. Otherwise, NULL.
-*/
-
-FILE *my_freopen(const char *path, const char *mode, FILE *stream)
-{
- FILE *result;
-
-#if defined(_WIN32)
- result= my_win_freopen(path, mode, stream);
-#elif defined(__FreeBSD__)
- /*
- XXX: Once the fix is ported to the stable releases, this should
- be dependent upon the specific FreeBSD versions. Check at:
- http://www.freebsd.org/cgi/query-pr.cgi?pr=79887
- */
- if (getosreldate() > 900027)
- result= freopen(path, mode, stream);
- else
- result= my_freebsd_freopen(path, mode, stream);
-#else
- result= freopen(path, mode, stream);
-#endif
-
- return result;
-}
-
-
-/* Close a stream */
-int my_fclose(FILE *fd, myf MyFlags)
-{
- int err,file;
- DBUG_ENTER("my_fclose");
- DBUG_PRINT("my",("stream: 0x%lx MyFlags: %d", (long) fd, MyFlags));
-
- mysql_mutex_lock(&THR_LOCK_open);
- file= my_fileno(fd);
-#ifndef _WIN32
- err= fclose(fd);
-#else
- err= my_win_fclose(fd);
-#endif
- if(err < 0)
- {
- my_errno=errno;
- if (MyFlags & (MY_FAE | MY_WME))
- my_error(EE_BADCLOSE, MYF(ME_BELL+ME_WAITTANG),
- my_filename(file),errno);
- }
- else
- my_stream_opened--;
- if ((uint) file < my_file_limit && my_file_info[file].type != UNOPEN)
- {
- my_file_info[file].type = UNOPEN;
- my_free(my_file_info[file].name);
- }
- mysql_mutex_unlock(&THR_LOCK_open);
- DBUG_RETURN(err);
-} /* my_fclose */
-
-
- /* Make a stream out of a file handle */
- /* Name may be 0 */
-
-FILE *my_fdopen(File Filedes, const char *name, int Flags, myf MyFlags)
-{
- FILE *fd;
- char type[5];
- DBUG_ENTER("my_fdopen");
- DBUG_PRINT("my",("Fd: %d Flags: %d MyFlags: %d",
- Filedes, Flags, MyFlags));
-
- make_ftype(type,Flags);
-#ifdef _WIN32
- fd= my_win_fdopen(Filedes, type);
-#else
- fd= fdopen(Filedes, type);
-#endif
- if (!fd)
- {
- my_errno=errno;
- if (MyFlags & (MY_FAE | MY_WME))
- my_error(EE_CANT_OPEN_STREAM, MYF(ME_BELL+ME_WAITTANG),errno);
- }
- else
- {
- mysql_mutex_lock(&THR_LOCK_open);
- my_stream_opened++;
- if ((uint) Filedes < (uint) my_file_limit)
- {
- if (my_file_info[Filedes].type != UNOPEN)
- {
- my_file_opened--; /* File is opened with my_open ! */
- }
- else
- {
- my_file_info[Filedes].name= my_strdup(name,MyFlags);
- }
- my_file_info[Filedes].type = STREAM_BY_FDOPEN;
- }
- mysql_mutex_unlock(&THR_LOCK_open);
- }
-
- DBUG_PRINT("exit",("stream: 0x%lx", (long) fd));
- DBUG_RETURN(fd);
-} /* my_fdopen */
-
-
-/*
- Make a fopen() typestring from a open() type bitmap
-
- SYNOPSIS
- make_ftype()
- to String for fopen() is stored here
- flag Flag used by open()
-
- IMPLEMENTATION
- This routine attempts to find the best possible match
- between a numeric option and a string option that could be
- fed to fopen. There is not a 1 to 1 mapping between the two.
-
- NOTE
- On Unix, O_RDONLY is usually 0
-
- MAPPING
- r == O_RDONLY
- w == O_WRONLY|O_TRUNC|O_CREAT
- a == O_WRONLY|O_APPEND|O_CREAT
- r+ == O_RDWR
- w+ == O_RDWR|O_TRUNC|O_CREAT
- a+ == O_RDWR|O_APPEND|O_CREAT
-*/
-
-static void make_ftype(register char * to, register int flag)
-{
- /* check some possible invalid combinations */
- DBUG_ASSERT((flag & (O_TRUNC | O_APPEND)) != (O_TRUNC | O_APPEND));
- DBUG_ASSERT((flag & (O_WRONLY | O_RDWR)) != (O_WRONLY | O_RDWR));
-
- if ((flag & (O_RDONLY|O_WRONLY)) == O_WRONLY)
- *to++= (flag & O_APPEND) ? 'a' : 'w';
- else if (flag & O_RDWR)
- {
- /* Add '+' after theese */
- if (flag & (O_TRUNC | O_CREAT))
- *to++= 'w';
- else if (flag & O_APPEND)
- *to++= 'a';
- else
- *to++= 'r';
- *to++= '+';
- }
- else
- *to++= 'r';
-
-#if FILE_BINARY /* If we have binary-files */
- if (flag & FILE_BINARY)
- *to++='b';
-#endif
- *to='\0';
-} /* make_ftype */
diff --git a/dep/mysqllite/mysys/my_fstream.c b/dep/mysqllite/mysys/my_fstream.c
deleted file mode 100644
index 83cb0d261c0..00000000000
--- a/dep/mysqllite/mysys/my_fstream.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* USE_MY_STREAM isn't set because we can't thrust my_fclose! */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <errno.h>
-#include <stdio.h>
-
-#ifdef HAVE_FSEEKO
-#undef ftell
-#undef fseek
-#define ftell(A) ftello(A)
-#define fseek(A,B,C) fseeko((A),(B),(C))
-#endif
-
-/*
- Read a chunk of bytes from a FILE
-
- SYNOPSIS
- my_fread()
- stream File descriptor
- Buffer Buffer to read to
- Count Number of bytes to read
- MyFlags Flags on what to do on error
-
- RETURN
- (size_t) -1 Error
- # Number of bytes read
- */
-
-size_t my_fread(FILE *stream, uchar *Buffer, size_t Count, myf MyFlags)
-{
- size_t readbytes;
- DBUG_ENTER("my_fread");
- DBUG_PRINT("my",("stream: 0x%lx Buffer: 0x%lx Count: %u MyFlags: %d",
- (long) stream, (long) Buffer, (uint) Count, MyFlags));
-
- if ((readbytes= fread(Buffer, sizeof(char), Count, stream)) != Count)
- {
- DBUG_PRINT("error",("Read only %d bytes", (int) readbytes));
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- if (ferror(stream))
- my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
- my_filename(my_fileno(stream)),errno);
- else
- if (MyFlags & (MY_NABP | MY_FNABP))
- my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
- my_filename(my_fileno(stream)),errno);
- }
- my_errno=errno ? errno : -1;
- if (ferror(stream) || MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN((size_t) -1); /* Return with error */
- }
- if (MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN(0); /* Read ok */
- DBUG_RETURN(readbytes);
-} /* my_fread */
-
-
-/*
- Write a chunk of bytes to a stream
-
- my_fwrite()
- stream File descriptor
- Buffer Buffer to write from
- Count Number of bytes to write
- MyFlags Flags on what to do on error
-
- RETURN
- (size_t) -1 Error
- # Number of bytes written
-*/
-
-size_t my_fwrite(FILE *stream, const uchar *Buffer, size_t Count, myf MyFlags)
-{
- size_t writtenbytes =0;
- my_off_t seekptr;
-#if !defined(NO_BACKGROUND) && defined(USE_MY_STREAM)
- uint errors;
-#endif
- DBUG_ENTER("my_fwrite");
- DBUG_PRINT("my",("stream: 0x%lx Buffer: 0x%lx Count: %u MyFlags: %d",
- (long) stream, (long) Buffer, (uint) Count, MyFlags));
-
-#if !defined(NO_BACKGROUND) && defined(USE_MY_STREAM)
- errors=0;
-#endif
- seekptr= ftell(stream);
- for (;;)
- {
- size_t written;
- if ((written = (size_t) fwrite((char*) Buffer,sizeof(char),
- Count, stream)) != Count)
- {
- DBUG_PRINT("error",("Write only %d bytes", (int) writtenbytes));
- my_errno=errno;
- if (written != (size_t) -1)
- {
- seekptr+=written;
- Buffer+=written;
- writtenbytes+=written;
- Count-=written;
- }
-#ifdef EINTR
- if (errno == EINTR)
- {
- (void) my_fseek(stream,seekptr,MY_SEEK_SET,MYF(0));
- continue;
- }
-#endif
-#if !defined(NO_BACKGROUND) && defined(USE_MY_STREAM)
- if (my_thread_var->abort)
- MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */
-
- if ((errno == ENOSPC || errno == EDQUOT) &&
- (MyFlags & MY_WAIT_IF_FULL))
- {
- wait_for_free_space("[stream]", errors);
- errors++;
- (void) my_fseek(stream,seekptr,MY_SEEK_SET,MYF(0));
- continue;
- }
-#endif
- if (ferror(stream) || (MyFlags & (MY_NABP | MY_FNABP)))
- {
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- my_error(EE_WRITE, MYF(ME_BELL+ME_WAITTANG),
- my_filename(my_fileno(stream)),errno);
- }
- writtenbytes= (size_t) -1; /* Return that we got error */
- break;
- }
- }
- if (MyFlags & (MY_NABP | MY_FNABP))
- writtenbytes= 0; /* Everything OK */
- else
- writtenbytes+= written;
- break;
- }
- DBUG_RETURN(writtenbytes);
-} /* my_fwrite */
-
-
-/* Seek to position in file */
-
-my_off_t my_fseek(FILE *stream, my_off_t pos, int whence,
- myf MyFlags __attribute__((unused)))
-{
- DBUG_ENTER("my_fseek");
- DBUG_PRINT("my",("stream: 0x%lx pos: %lu whence: %d MyFlags: %d",
- (long) stream, (long) pos, whence, MyFlags));
- DBUG_RETURN(fseek(stream, (off_t) pos, whence) ?
- MY_FILEPOS_ERROR : (my_off_t) ftell(stream));
-} /* my_seek */
-
-
-/* Tell current position of file */
-
-my_off_t my_ftell(FILE *stream, myf MyFlags __attribute__((unused)))
-{
- off_t pos;
- DBUG_ENTER("my_ftell");
- DBUG_PRINT("my",("stream: 0x%lx MyFlags: %d", (long) stream, MyFlags));
- pos=ftell(stream);
- DBUG_PRINT("exit",("ftell: %lu",(ulong) pos));
- DBUG_RETURN((my_off_t) pos);
-} /* my_ftell */
-
-
-/* Get a File corresponding to the stream*/
-int my_fileno(FILE *f)
-{
-#ifdef _WIN32
- return my_win_fileno(f);
-#else
- return fileno(f);
-#endif
-}
diff --git a/dep/mysqllite/mysys/my_gethostbyname.c b/dep/mysqllite/mysys/my_gethostbyname.c
deleted file mode 100644
index 28ecec13ef2..00000000000
--- a/dep/mysqllite/mysys/my_gethostbyname.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2002, 2004 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* Thread safe version of gethostbyname_r() */
-
-#include "mysys_priv.h"
-#if !defined(__WIN__)
-#include <netdb.h>
-#endif
-#include <my_net.h>
-
-/* This file is not needed if my_gethostbyname_r is a macro */
-#if !defined(my_gethostbyname_r)
-
-/*
- Emulate SOLARIS style calls, not because it's better, but just to make the
- usage of getbostbyname_r simpler.
-*/
-
-#if defined(HAVE_GETHOSTBYNAME_R)
-
-#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT((size_t) buflen >= sizeof(*result));
- if (gethostbyname_r(name,result, buffer, (size_t) buflen, &hp, h_errnop))
- return 0;
- return hp;
-}
-
-#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- if (gethostbyname_r(name,result,(struct hostent_data *) buffer) == -1)
- {
- *h_errnop= errno;
- return 0;
- }
- return result;
-}
-
-#else
-
-/* gethostbyname_r with similar interface as gethostbyname() */
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
- hp= gethostbyname_r(name,result,(struct hostent_data *) buffer);
- *h_errnop= errno;
- return hp;
-}
-#endif /* GLIBC2_STYLE_GETHOSTBYNAME_R */
-
-#else /* !HAVE_GETHOSTBYNAME_R */
-
-extern mysql_mutex_t LOCK_gethostbyname_r;
-
-/*
- No gethostbyname_r() function exists.
- In this case we have to keep a mutex over the call to ensure that no
- other thread is going to reuse the internal memory.
-
- The user is responsible to call my_gethostbyname_r_free() when he
- is finished with the structure.
-*/
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *res __attribute__((unused)),
- char *buffer __attribute__((unused)),
- int buflen __attribute__((unused)),
- int *h_errnop)
-{
- struct hostent *hp;
- mysql_mutex_lock(&LOCK_gethostbyname_r);
- hp= gethostbyname(name);
- *h_errnop= h_errno;
- return hp;
-}
-
-void my_gethostbyname_r_free()
-{
- mysql_mutex_unlock(&LOCK_gethostbyname_r);
-}
-
-#endif /* !HAVE_GETHOSTBYNAME_R */
-#endif /* !my_gethostbyname_r */
diff --git a/dep/mysqllite/mysys/my_gethwaddr.c b/dep/mysqllite/mysys/my_gethwaddr.c
deleted file mode 100644
index ab44bac43d3..00000000000
--- a/dep/mysqllite/mysys/my_gethwaddr.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Copyright (C) 2004 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* get hardware address for an interface */
-/* if there are many available, any non-zero one can be used */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-#ifndef MAIN
-
-#ifdef __FreeBSD__
-
-#include <net/ethernet.h>
-#include <sys/sysctl.h>
-#include <net/route.h>
-#include <net/if.h>
-#include <net/if_dl.h>
-
-my_bool my_gethwaddr(uchar *to)
-{
- size_t len;
- char *buf, *next, *end;
- struct if_msghdr *ifm;
- struct sockaddr_dl *sdl;
- int res=1, mib[6]={CTL_NET, AF_ROUTE, 0, AF_LINK, NET_RT_IFLIST, 0};
- char zero_array[ETHER_ADDR_LEN] = {0};
-
- if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1)
- goto err;
- if (!(buf = alloca(len)))
- goto err;
- if (sysctl(mib, 6, buf, &len, NULL, 0) < 0)
- goto err;
-
- end = buf + len;
-
- for (next = buf ; res && next < end ; next += ifm->ifm_msglen)
- {
- ifm = (struct if_msghdr *)next;
- if (ifm->ifm_type == RTM_IFINFO)
- {
- sdl= (struct sockaddr_dl *)(ifm + 1);
- memcpy(to, LLADDR(sdl), ETHER_ADDR_LEN);
- res= memcmp(to, zero_array, ETHER_ADDR_LEN) ? 0 : 1;
- }
- }
-
-err:
- return res;
-}
-
-#elif __linux__
-
-#include <net/if.h>
-#include <sys/ioctl.h>
-#include <net/ethernet.h>
-
-my_bool my_gethwaddr(uchar *to)
-{
- int fd, res= 1;
- struct ifreq ifr;
- char zero_array[ETHER_ADDR_LEN] = {0};
-
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (fd < 0)
- goto err;
-
- bzero(&ifr, sizeof(ifr));
- strnmov(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name) - 1);
-
- do
- {
- if (ioctl(fd, SIOCGIFHWADDR, &ifr) >= 0)
- {
- memcpy(to, &ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN);
- res= memcmp(to, zero_array, ETHER_ADDR_LEN) ? 0 : 1;
- }
- } while (res && (errno == 0 || errno == ENODEV) && ifr.ifr_name[3]++ < '6');
-
- close(fd);
-err:
- return res;
-}
-
-#elif defined(__WIN__)
-
-/*
- Workaround for BUG#32082 (Definition of VOID in my_global.h conflicts with
- windows headers)
-*/
-#ifdef VOID
-#undef VOID
-#define VOID void
-#endif
-
-#include <iphlpapi.h>
-
-/*
- The following typedef is for dynamically loading iphlpapi.dll /
- GetAdaptersAddresses. Dynamic loading is used because
- GetAdaptersAddresses is not available on Windows 2000 which MySQL
- still supports. Static linking would cause an unresolved export.
-*/
-typedef DWORD (WINAPI *pfnGetAdaptersAddresses)(IN ULONG Family,
- IN DWORD Flags,IN PVOID Reserved,
- OUT PIP_ADAPTER_ADDRESSES pAdapterAddresses,
- IN OUT PULONG pOutBufLen);
-
-/*
- my_gethwaddr - Windows version
-
- @brief Retrieve MAC address from network hardware
-
- @param[out] to MAC address exactly six bytes
-
- @return Operation status
- @retval 0 OK
- @retval <>0 FAILED
-*/
-my_bool my_gethwaddr(uchar *to)
-{
- PIP_ADAPTER_ADDRESSES pAdapterAddresses;
- PIP_ADAPTER_ADDRESSES pCurrAddresses;
- IP_ADAPTER_ADDRESSES adapterAddresses;
- ULONG address_len;
- my_bool return_val= 1;
- static pfnGetAdaptersAddresses fnGetAdaptersAddresses=
- (pfnGetAdaptersAddresses)-1;
-
- if(fnGetAdaptersAddresses == (pfnGetAdaptersAddresses)-1)
- {
- /* Get the function from the DLL */
- fnGetAdaptersAddresses= (pfnGetAdaptersAddresses)
- GetProcAddress(LoadLibrary("iphlpapi.dll"),
- "GetAdaptersAddresses");
- }
- if (!fnGetAdaptersAddresses)
- return 1; /* failed to get function */
- address_len= sizeof (IP_ADAPTER_ADDRESSES);
-
- /* Get the required size for the address data. */
- if (fnGetAdaptersAddresses(AF_UNSPEC, 0, 0, &adapterAddresses, &address_len)
- == ERROR_BUFFER_OVERFLOW)
- {
- pAdapterAddresses= my_malloc(address_len, 0);
- if (!pAdapterAddresses)
- return 1; /* error, alloc failed */
- }
- else
- pAdapterAddresses= &adapterAddresses; /* one is enough don't alloc */
-
- /* Get the hardware info. */
- if (fnGetAdaptersAddresses(AF_UNSPEC, 0, 0, pAdapterAddresses, &address_len)
- == NO_ERROR)
- {
- pCurrAddresses= pAdapterAddresses;
-
- while (pCurrAddresses)
- {
- /* Look for ethernet cards. */
- if (pCurrAddresses->IfType == IF_TYPE_ETHERNET_CSMACD)
- {
- /* check for a good address */
- if (pCurrAddresses->PhysicalAddressLength < 6)
- continue; /* bad address */
-
- /* save 6 bytes of the address in the 'to' parameter */
- memcpy(to, pCurrAddresses->PhysicalAddress, 6);
-
- /* Network card found, we're done. */
- return_val= 0;
- break;
- }
- pCurrAddresses= pCurrAddresses->Next;
- }
- }
-
- /* Clean up memory allocation. */
- if (pAdapterAddresses != &adapterAddresses)
- my_free(pAdapterAddresses);
-
- return return_val;
-}
-
-#else /* __FreeBSD__ || __linux__ || __WIN__ */
-/* just fail */
-my_bool my_gethwaddr(uchar *to __attribute__((unused)))
-{
- return 1;
-}
-#endif
-
-#else /* MAIN */
-int main(int argc __attribute__((unused)),char **argv)
-{
- uchar mac[6];
- uint i;
- MY_INIT(argv[0]);
- if (my_gethwaddr(mac))
- {
- printf("my_gethwaddr failed with errno %d\n", errno);
- exit(1);
- }
- for (i=0; i < sizeof(mac); i++)
- {
- if (i) printf(":");
- printf("%02x", mac[i]);
- }
- printf("\n");
- return 0;
-}
-#endif
-
diff --git a/dep/mysqllite/mysys/my_getncpus.c b/dep/mysqllite/mysys/my_getncpus.c
deleted file mode 100644
index 5be961e3bc9..00000000000
--- a/dep/mysqllite/mysys/my_getncpus.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2006 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* get the number of (online) CPUs */
-
-#include "mysys_priv.h"
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-static int ncpus=0;
-
-int my_getncpus()
-{
- if (!ncpus)
- {
-#ifdef _SC_NPROCESSORS_ONLN
- ncpus= sysconf(_SC_NPROCESSORS_ONLN);
-#elif defined(__WIN__)
- SYSTEM_INFO sysinfo;
-
- /*
- * We are not calling GetNativeSystemInfo here because (1) we
- * don't believe that they return different values for number
- * of processors and (2) if WOW64 limits processors for Win32
- * then we don't want to try to override that.
- */
- GetSystemInfo(&sysinfo);
-
- ncpus= sysinfo.dwNumberOfProcessors;
-#else
-/* unknown so play safe: assume SMP and forbid uniprocessor build */
- ncpus= 2;
-#endif
- }
- return ncpus;
-}
diff --git a/dep/mysqllite/mysys/my_getopt.c b/dep/mysqllite/mysys/my_getopt.c
deleted file mode 100644
index 51c45ff1309..00000000000
--- a/dep/mysqllite/mysys/my_getopt.c
+++ /dev/null
@@ -1,1419 +0,0 @@
-/* Copyright (C) 2002-2006 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_string.h>
-#include <stdlib.h>
-#include <my_sys.h>
-#include <mysys_err.h>
-#include <my_getopt.h>
-#include <errno.h>
-#include <m_string.h>
-
-typedef void (*init_func_p)(const struct my_option *option, void *variable,
- longlong value);
-
-static void default_reporter(enum loglevel level, const char *format, ...);
-my_error_reporter my_getopt_error_reporter= &default_reporter;
-
-static int findopt(char *, uint, const struct my_option **, const char **);
-my_bool getopt_compare_strings(const char *, const char *, uint);
-static longlong getopt_ll(char *arg, const struct my_option *optp, int *err);
-static ulonglong getopt_ull(char *, const struct my_option *, int *);
-static double getopt_double(char *arg, const struct my_option *optp, int *err);
-static void init_variables(const struct my_option *, init_func_p);
-static void init_one_value(const struct my_option *, void *, longlong);
-static void fini_one_value(const struct my_option *, void *, longlong);
-static int setval(const struct my_option *, void *, char *, my_bool);
-static char *check_struct_option(char *cur_arg, char *key_name);
-
-/*
- The following three variables belong to same group and the number and
- order of their arguments must correspond to each other.
-*/
-static const char *special_opt_prefix[]=
-{"skip", "disable", "enable", "maximum", "loose", 0};
-static const uint special_opt_prefix_lengths[]=
-{ 4, 7, 6, 7, 5, 0};
-enum enum_special_opt
-{ OPT_SKIP, OPT_DISABLE, OPT_ENABLE, OPT_MAXIMUM, OPT_LOOSE};
-
-char *disabled_my_option= (char*) "0";
-char *enabled_my_option= (char*) "1";
-
-/*
- This is a flag that can be set in client programs. 0 means that
- my_getopt will not print error messages, but the client should do
- it by itself
-*/
-
-my_bool my_getopt_print_errors= 1;
-
-/*
- This is a flag that can be set in client programs. 1 means that
- my_getopt will skip over options it does not know how to handle.
-*/
-
-my_bool my_getopt_skip_unknown= 0;
-
-static void default_reporter(enum loglevel level,
- const char *format, ...)
-{
- va_list args;
- va_start(args, format);
- if (level == WARNING_LEVEL)
- fprintf(stderr, "%s", "Warning: ");
- else if (level == INFORMATION_LEVEL)
- fprintf(stderr, "%s", "Info: ");
- vfprintf(stderr, format, args);
- va_end(args);
- fputc('\n', stderr);
- fflush(stderr);
-}
-
-static my_getopt_value getopt_get_addr;
-
-void my_getopt_register_get_addr(my_getopt_value func_addr)
-{
- getopt_get_addr= func_addr;
-}
-
-/**
- Handle command line options.
- Sort options.
- Put options first, until special end of options (--),
- or until the end of argv. Parse options, check that the given option
- matches with one of the options in struct 'my_option'.
- Check that option was given an argument if it requires one
- Call the optional 'get_one_option()' function once for each option.
-
- Note that handle_options() can be invoked multiple times to
- parse a command line in several steps.
- In this case, use the global flag @c my_getopt_skip_unknown to indicate
- that options unknown in the current step should be preserved in the
- command line for later parsing in subsequent steps.
-
- For 'long' options (--a_long_option), @c my_getopt_skip_unknown is
- fully supported. Command line parameters such as:
- - "--a_long_option"
- - "--a_long_option=value"
- - "--a_long_option value"
- will be preserved as is when the option is not known.
-
- For 'short' options (-S), support for @c my_getopt_skip_unknown
- comes with some limitation, because several short options
- can also be specified together in the same command line argument,
- as in "-XYZ".
-
- The first use case supported is: all short options are declared.
- handle_options() will be able to interpret "-XYZ" as one of:
- - an unknown X option
- - "-X -Y -Z", three short options with no arguments
- - "-X -YZ", where Y is a short option with argument Z
- - "-XYZ", where X is a short option with argument YZ
- based on the full short options specifications.
-
- The second use case supported is: no short option is declared.
- handle_options() will reject "-XYZ" as unknown, to be parsed later.
-
- The use case that is explicitly not supported is to provide
- only a partial list of short options to handle_options().
- This function can not be expected to extract some option Y
- in the middle of the string "-XYZ" in these conditions,
- without knowing if X will be declared an option later.
-
- Note that this limitation only impacts parsing of several
- short options from the same command line argument,
- as in "mysqld -anW5".
- When each short option is properly separated out in the command line
- argument, for example in "mysqld -a -n -w5", the code would actually
- work even with partial options specs given at each stage.
-
- @param [in, out] argc command line options (count)
- @param [in, out] argv command line options (values)
- @param [in] longopts descriptor of all valid options
- @param [in] get_one_option optional callback function to process each option,
- can be NULL.
- @return error in case of ambiguous or unknown options,
- 0 on success.
-*/
-int handle_options(int *argc, char ***argv,
- const struct my_option *longopts,
- my_get_one_option get_one_option)
-{
- uint UNINIT_VAR(opt_found), argvpos= 0, length;
- my_bool end_of_options= 0, must_be_var, set_maximum_value,
- option_is_loose;
- char **pos, **pos_end, *optend, *opt_str, key_name[FN_REFLEN];
- const char *UNINIT_VAR(prev_found);
- const struct my_option *optp;
- void *value;
- int error, i;
- my_bool is_cmdline_arg= 1;
-
- /* handle_options() assumes arg0 (program name) always exists */
- DBUG_ASSERT(argc && *argc >= 1);
- DBUG_ASSERT(argv && *argv);
- (*argc)--; /* Skip the program name */
- (*argv)++; /* --- || ---- */
- init_variables(longopts, init_one_value);
-
- /*
- Search for args_separator, if found, then the first part of the
- arguments are loaded from configs
- */
- for (pos= *argv, pos_end=pos+ *argc; pos != pos_end ; pos++)
- {
- if (*pos == args_separator)
- {
- is_cmdline_arg= 0;
- break;
- }
- }
-
- for (pos= *argv, pos_end=pos+ *argc; pos != pos_end ; pos++)
- {
- char **first= pos;
- char *cur_arg= *pos;
- opt_found= 0;
- if (!is_cmdline_arg && (cur_arg == args_separator))
- {
- is_cmdline_arg= 1;
-
- /* save the separator too if skip unkown options */
- if (my_getopt_skip_unknown)
- (*argv)[argvpos++]= cur_arg;
- else
- (*argc)--;
- continue;
- }
- if (cur_arg[0] == '-' && cur_arg[1] && !end_of_options) /* must be opt */
- {
- char *argument= 0;
- must_be_var= 0;
- set_maximum_value= 0;
- option_is_loose= 0;
-
- cur_arg++; /* skip '-' */
- if (*cur_arg == '-') /* check for long option, */
- {
- if (!*++cur_arg) /* skip the double dash */
- {
- /* '--' means end of options, look no further */
- end_of_options= 1;
- (*argc)--;
- continue;
- }
- opt_str= check_struct_option(cur_arg, key_name);
- optend= strcend(opt_str, '=');
- length= (uint) (optend - opt_str);
- if (*optend == '=')
- optend++;
- else
- optend= 0;
-
- /*
- Find first the right option. Return error in case of an ambiguous,
- or unknown option
- */
- optp= longopts;
- if (!(opt_found= findopt(opt_str, length, &optp, &prev_found)))
- {
- /*
- Didn't find any matching option. Let's see if someone called
- option with a special option prefix
- */
- if (!must_be_var)
- {
- if (optend)
- must_be_var= 1; /* option is followed by an argument */
- for (i= 0; special_opt_prefix[i]; i++)
- {
- if (!getopt_compare_strings(special_opt_prefix[i], opt_str,
- special_opt_prefix_lengths[i]) &&
- (opt_str[special_opt_prefix_lengths[i]] == '-' ||
- opt_str[special_opt_prefix_lengths[i]] == '_'))
- {
- /*
- We were called with a special prefix, we can reuse opt_found
- */
- opt_str+= special_opt_prefix_lengths[i] + 1;
- length-= special_opt_prefix_lengths[i] + 1;
- if (i == OPT_LOOSE)
- option_is_loose= 1;
- if ((opt_found= findopt(opt_str, length, &optp, &prev_found)))
- {
- if (opt_found > 1)
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: ambiguous option '--%s-%s' (--%s-%s)",
- my_progname, special_opt_prefix[i],
- opt_str, special_opt_prefix[i],
- prev_found);
- return EXIT_AMBIGUOUS_OPTION;
- }
- switch (i) {
- case OPT_SKIP:
- case OPT_DISABLE: /* fall through */
- /*
- double negation is actually enable again,
- for example: --skip-option=0 -> option = TRUE
- */
- optend= (optend && *optend == '0' && !(*(optend + 1))) ?
- enabled_my_option : disabled_my_option;
- break;
- case OPT_ENABLE:
- optend= (optend && *optend == '0' && !(*(optend + 1))) ?
- disabled_my_option : enabled_my_option;
- break;
- case OPT_MAXIMUM:
- set_maximum_value= 1;
- must_be_var= 1;
- break;
- }
- break; /* break from the inner loop, main loop continues */
- }
- i= -1; /* restart the loop */
- }
- }
- }
- if (!opt_found)
- {
- if (my_getopt_skip_unknown)
- {
- /* Preserve all the components of this unknown option. */
- do {
- (*argv)[argvpos++]= *first++;
- } while (first <= pos);
- continue;
- }
- if (must_be_var)
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(option_is_loose ?
- WARNING_LEVEL : ERROR_LEVEL,
- "%s: unknown variable '%s'",
- my_progname, cur_arg);
- if (!option_is_loose)
- return EXIT_UNKNOWN_VARIABLE;
- }
- else
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(option_is_loose ?
- WARNING_LEVEL : ERROR_LEVEL,
- "%s: unknown option '--%s'",
- my_progname, cur_arg);
- if (!option_is_loose)
- return EXIT_UNKNOWN_OPTION;
- }
- if (option_is_loose)
- {
- (*argc)--;
- continue;
- }
- }
- }
- if (opt_found > 1)
- {
- if (must_be_var)
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: variable prefix '%s' is not unique",
- my_progname, opt_str);
- return EXIT_VAR_PREFIX_NOT_UNIQUE;
- }
- else
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: ambiguous option '--%s' (%s, %s)",
- my_progname, opt_str, prev_found,
- optp->name);
- return EXIT_AMBIGUOUS_OPTION;
- }
- }
- if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED)
- {
- if (my_getopt_print_errors)
- fprintf(stderr,
- "%s: %s: Option '%s' used, but is disabled\n", my_progname,
- option_is_loose ? "WARNING" : "ERROR", opt_str);
- if (option_is_loose)
- {
- (*argc)--;
- continue;
- }
- return EXIT_OPTION_DISABLED;
- }
- error= 0;
- value= optp->var_type & GET_ASK_ADDR ?
- (*getopt_get_addr)(key_name, (uint) strlen(key_name), optp, &error) :
- optp->value;
- if (error)
- return error;
-
- if (optp->arg_type == NO_ARG)
- {
- /*
- Due to historical reasons GET_BOOL var_types still accepts arguments
- despite the NO_ARG arg_type attribute. This can seems a bit unintuitive
- and care should be taken when refactoring this code.
- */
- if (optend && (optp->var_type & GET_TYPE_MASK) != GET_BOOL)
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: option '--%s' cannot take an argument",
- my_progname, optp->name);
- return EXIT_NO_ARGUMENT_ALLOWED;
- }
- if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL)
- {
- /*
- Set bool to 1 if no argument or if the user has used
- --enable-'option-name'.
- *optend was set to '0' if one used --disable-option
- */
- (*argc)--;
- if (!optend || *optend == '1' ||
- !my_strcasecmp(&my_charset_latin1, optend, "true"))
- *((my_bool*) value)= (my_bool) 1;
- else if (*optend == '0' ||
- !my_strcasecmp(&my_charset_latin1, optend, "false"))
- *((my_bool*) value)= (my_bool) 0;
- else
- {
- my_getopt_error_reporter(WARNING_LEVEL,
- "%s: ignoring option '--%s' "
- "due to invalid value '%s'",
- my_progname, optp->name, optend);
- continue;
- }
- if (get_one_option && get_one_option(optp->id, optp,
- *((my_bool*) value) ?
- enabled_my_option : disabled_my_option))
- return EXIT_ARGUMENT_INVALID;
- continue;
- }
- argument= optend;
- }
- else if (optp->arg_type == REQUIRED_ARG && !optend)
- {
- /* Check if there are more arguments after this one,
- Note: options loaded from config file that requires value
- should always be in the form '--option=value'.
- */
- if (!is_cmdline_arg || !*++pos)
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: option '--%s' requires an argument",
- my_progname, optp->name);
- return EXIT_ARGUMENT_REQUIRED;
- }
- argument= *pos;
- (*argc)--;
- }
- else
- argument= optend;
- }
- else /* must be short option */
- {
- for (optend= cur_arg; *optend; optend++)
- {
- opt_found= 0;
- for (optp= longopts; optp->name; optp++)
- {
- if (optp->id && optp->id == (int) (uchar) *optend)
- {
- /* Option recognized. Find next what to do with it */
- opt_found= 1;
- if ((optp->var_type & GET_TYPE_MASK) == GET_DISABLED)
- {
- if (my_getopt_print_errors)
- fprintf(stderr,
- "%s: ERROR: Option '-%c' used, but is disabled\n",
- my_progname, optp->id);
- return EXIT_OPTION_DISABLED;
- }
- if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL &&
- optp->arg_type == NO_ARG)
- {
- *((my_bool*) optp->value)= (my_bool) 1;
- if (get_one_option && get_one_option(optp->id, optp, argument))
- return EXIT_UNSPECIFIED_ERROR;
- continue;
- }
- else if (optp->arg_type == REQUIRED_ARG ||
- optp->arg_type == OPT_ARG)
- {
- if (*(optend + 1))
- {
- /* The rest of the option is option argument */
- argument= optend + 1;
- /* This is in effect a jump out of the outer loop */
- optend= (char*) " ";
- }
- else
- {
- if (optp->arg_type == OPT_ARG)
- {
- if (optp->var_type == GET_BOOL)
- *((my_bool*) optp->value)= (my_bool) 1;
- if (get_one_option && get_one_option(optp->id, optp, argument))
- return EXIT_UNSPECIFIED_ERROR;
- continue;
- }
- /* Check if there are more arguments after this one */
- if (!pos[1])
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: option '-%c' requires an argument",
- my_progname, optp->id);
- return EXIT_ARGUMENT_REQUIRED;
- }
- argument= *++pos;
- (*argc)--;
- /* the other loop will break, because *optend + 1 == 0 */
- }
- }
- if ((error= setval(optp, optp->value, argument,
- set_maximum_value)))
- return error;
- if (get_one_option && get_one_option(optp->id, optp, argument))
- return EXIT_UNSPECIFIED_ERROR;
- break;
- }
- }
- if (!opt_found)
- {
- if (my_getopt_skip_unknown)
- {
- /*
- We are currently parsing a single argv[] argument
- of the form "-XYZ".
- One or the argument found (say Y) is not an option.
- Hack the string "-XYZ" to make a "-YZ" substring in it,
- and push that to the output as an unrecognized parameter.
- */
- DBUG_ASSERT(optend > *pos);
- DBUG_ASSERT(optend >= cur_arg);
- DBUG_ASSERT(optend <= *pos + strlen(*pos));
- DBUG_ASSERT(*optend);
- optend--;
- optend[0]= '-'; /* replace 'X' or '-' by '-' */
- (*argv)[argvpos++]= optend;
- /*
- Do not continue to parse at the current "-XYZ" argument,
- skip to the next argv[] argument instead.
- */
- optend= (char*) " ";
- }
- else
- {
- if (my_getopt_print_errors)
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: unknown option '-%c'",
- my_progname, *optend);
- return EXIT_UNKNOWN_OPTION;
- }
- }
- }
- if (opt_found)
- (*argc)--; /* option handled (short), decrease argument count */
- continue;
- }
- if ((error= setval(optp, value, argument, set_maximum_value)))
- return error;
- if (get_one_option && get_one_option(optp->id, optp, argument))
- return EXIT_UNSPECIFIED_ERROR;
-
- (*argc)--; /* option handled (long), decrease argument count */
- }
- else /* non-option found */
- (*argv)[argvpos++]= cur_arg;
- }
- /*
- Destroy the first, already handled option, so that programs that look
- for arguments in 'argv', without checking 'argc', know when to stop.
- Items in argv, before the destroyed one, are all non-option -arguments
- to the program, yet to be (possibly) handled.
- */
- (*argv)[argvpos]= 0;
- return 0;
-}
-
-
-/*
- function: check_struct_option
-
- Arguments: Current argument under processing from argv and a variable
- where to store the possible key name.
-
- Return value: In case option is a struct option, returns a pointer to
- the current argument at the position where the struct option (key_name)
- ends, the next character after the dot. In case argument is not a struct
- option, returns a pointer to the argument.
-
- key_name will hold the name of the key, or 0 if not found.
-*/
-
-static char *check_struct_option(char *cur_arg, char *key_name)
-{
- char *ptr, *end;
-
- ptr= strcend(cur_arg + 1, '.'); /* Skip the first character */
- end= strcend(cur_arg, '=');
-
- /*
- If the first dot is after an equal sign, then it is part
- of a variable value and the option is not a struct option.
- Also, if the last character in the string before the ending
- NULL, or the character right before equal sign is the first
- dot found, the option is not a struct option.
- */
- if (end - ptr > 1)
- {
- uint len= (uint) (ptr - cur_arg);
- set_if_smaller(len, FN_REFLEN-1);
- strmake(key_name, cur_arg, len);
- return ++ptr;
- }
- else
- {
- key_name[0]= 0;
- return cur_arg;
- }
-}
-
-/**
- Parse a boolean command line argument
-
- "ON", "TRUE" and "1" will return true,
- other values will return false.
-
- @param[in] argument The value argument
- @return boolean value
-*/
-static my_bool get_bool_argument(const char *argument)
-{
- if (!my_strcasecmp(&my_charset_latin1, argument, "true") ||
- !my_strcasecmp(&my_charset_latin1, argument, "on"))
- return 1;
- else
- return (my_bool) atoi(argument);
-}
-
-/*
- function: setval
-
- Arguments: opts, argument
- Will set the option value to given value
-*/
-
-static int setval(const struct my_option *opts, void *value, char *argument,
- my_bool set_maximum_value)
-{
- int err= 0, res= 0;
-
- if (!argument)
- argument= enabled_my_option;
-
- if (value)
- {
- if (set_maximum_value && !(value= opts->u_max_value))
- {
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: Maximum value of '%s' cannot be set",
- my_progname, opts->name);
- return EXIT_NO_PTR_TO_VARIABLE;
- }
-
- switch ((opts->var_type & GET_TYPE_MASK)) {
- case GET_BOOL: /* If argument differs from 0, enable option, else disable */
- *((my_bool*) value)= get_bool_argument(argument);
- break;
- case GET_INT:
- *((int*) value)= (int) getopt_ll(argument, opts, &err);
- break;
- case GET_UINT:
- *((uint*) value)= (uint) getopt_ull(argument, opts, &err);
- break;
- case GET_LONG:
- *((long*) value)= (long) getopt_ll(argument, opts, &err);
- break;
- case GET_ULONG:
- *((long*) value)= (long) getopt_ull(argument, opts, &err);
- break;
- case GET_LL:
- *((longlong*) value)= getopt_ll(argument, opts, &err);
- break;
- case GET_ULL:
- *((ulonglong*) value)= getopt_ull(argument, opts, &err);
- break;
- case GET_DOUBLE:
- *((double*) value)= getopt_double(argument, opts, &err);
- break;
- case GET_STR:
- if (argument == enabled_my_option)
- break; /* string options don't use this default of "1" */
- *((char**) value)= argument;
- break;
- case GET_STR_ALLOC:
- if (argument == enabled_my_option)
- break; /* string options don't use this default of "1" */
- my_free(*((char**) value));
- if (!(*((char**) value)= my_strdup(argument, MYF(MY_WME))))
- {
- res= EXIT_OUT_OF_MEMORY;
- goto ret;
- };
- break;
- case GET_ENUM:
- {
- int type= find_type(argument, opts->typelib, 2);
- if (type == 0)
- {
- /*
- Accept an integer representation of the enumerated item.
- */
- char *endptr;
- ulong arg= strtoul(argument, &endptr, 10);
- if (*endptr || arg >= opts->typelib->count)
- {
- res= EXIT_ARGUMENT_INVALID;
- goto ret;
- }
- *(ulong*)value= arg;
- }
- else
- *(ulong*)value= type - 1;
- }
- break;
- case GET_SET:
- *((ulonglong*)value)= find_typeset(argument, opts->typelib, &err);
- if (err)
- {
- /* Accept an integer representation of the set */
- char *endptr;
- ulonglong arg= (ulonglong) strtol(argument, &endptr, 10);
- if (*endptr || (arg >> 1) >= (1ULL << (opts->typelib->count-1)))
- {
- res= EXIT_ARGUMENT_INVALID;
- goto ret;
- };
- *(ulonglong*)value= arg;
- err= 0;
- }
- break;
- case GET_FLAGSET:
- {
- char *error;
- uint error_len;
-
- *((ulonglong*)value)=
- find_set_from_flags(opts->typelib, opts->typelib->count,
- *(ulonglong *)value, opts->def_value,
- argument, strlen(argument),
- &error, &error_len);
- if (error)
- {
- res= EXIT_ARGUMENT_INVALID;
- goto ret;
- };
- }
- break;
- case GET_NO_ARG: /* get_one_option has taken care of the value already */
- default: /* dummy default to avoid compiler warnings */
- break;
- }
- if (err)
- {
- res= EXIT_UNKNOWN_SUFFIX;
- goto ret;
- };
- }
- return 0;
-
-ret:
- my_getopt_error_reporter(ERROR_LEVEL,
- "%s: Error while setting value '%s' to '%s'",
- my_progname, argument, opts->name);
- return res;
-}
-
-
-/*
- Find option
-
- SYNOPSIS
- findopt()
- optpat Prefix of option to find (with - or _)
- length Length of optpat
- opt_res Options
- ffname Place for pointer to first found name
-
- IMPLEMENTATION
- Go through all options in the my_option struct. Return number
- of options found that match the pattern and in the argument
- list the option found, if any. In case of ambiguous option, store
- the name in ffname argument
-
- RETURN
- 0 No matching options
- # Number of matching options
- ffname points to first matching option
-*/
-
-static int findopt(char *optpat, uint length,
- const struct my_option **opt_res,
- const char **ffname)
-{
- uint count;
- const struct my_option *opt= *opt_res;
-
- for (count= 0; opt->name; opt++)
- {
- if (!getopt_compare_strings(opt->name, optpat, length)) /* match found */
- {
- (*opt_res)= opt;
- if (!opt->name[length]) /* Exact match */
- return 1;
- if (!count)
- {
- /* We only need to know one prev */
- count= 1;
- *ffname= opt->name;
- }
- else if (strcmp(*ffname, opt->name))
- {
- /*
- The above test is to not count same option twice
- (see mysql.cc, option "help")
- */
- count++;
- }
- }
- }
- return count;
-}
-
-
-/*
- function: compare_strings
-
- Works like strncmp, other than 1.) considers '-' and '_' the same.
- 2.) Returns -1 if strings differ, 0 if they are equal
-*/
-
-my_bool getopt_compare_strings(register const char *s, register const char *t,
- uint length)
-{
- char const *end= s + length;
- for (;s != end ; s++, t++)
- {
- if ((*s != '-' ? *s : '_') != (*t != '-' ? *t : '_'))
- return 1;
- }
- return 0;
-}
-
-/*
- function: eval_num_suffix
-
- Transforms a number with a suffix to real number. Suffix can
- be k|K for kilo, m|M for mega or g|G for giga.
-*/
-
-static longlong eval_num_suffix(char *argument, int *error, char *option_name)
-{
- char *endchar;
- longlong num;
-
- *error= 0;
- errno= 0;
- num= strtoll(argument, &endchar, 10);
- if (errno == ERANGE)
- {
- my_getopt_error_reporter(ERROR_LEVEL,
- "Incorrect integer value: '%s'", argument);
- *error= 1;
- return 0;
- }
- if (*endchar == 'k' || *endchar == 'K')
- num*= 1024L;
- else if (*endchar == 'm' || *endchar == 'M')
- num*= 1024L * 1024L;
- else if (*endchar == 'g' || *endchar == 'G')
- num*= 1024L * 1024L * 1024L;
- else if (*endchar)
- {
- fprintf(stderr,
- "Unknown suffix '%c' used for variable '%s' (value '%s')\n",
- *endchar, option_name, argument);
- *error= 1;
- return 0;
- }
- return num;
-}
-
-/*
- function: getopt_ll
-
- Evaluates and returns the value that user gave as an argument
- to a variable. Recognizes (case insensitive) K as KILO, M as MEGA
- and G as GIGA bytes. Some values must be in certain blocks, as
- defined in the given my_option struct, this function will check
- that those values are honored.
- In case of an error, set error value in *err.
-*/
-
-static longlong getopt_ll(char *arg, const struct my_option *optp, int *err)
-{
- longlong num=eval_num_suffix(arg, err, (char*) optp->name);
- return getopt_ll_limit_value(num, optp, NULL);
-}
-
-/*
- function: getopt_ll_limit_value
-
- Applies min/max/block_size to a numeric value of an option.
- Returns "fixed" value.
-*/
-
-longlong getopt_ll_limit_value(longlong num, const struct my_option *optp,
- my_bool *fix)
-{
- longlong old= num;
- my_bool adjusted= FALSE;
- char buf1[255], buf2[255];
- ulonglong block_size= (optp->block_size ? (ulonglong) optp->block_size : 1L);
-
- if (num > 0 && ((ulonglong) num > (ulonglong) optp->max_value) &&
- optp->max_value) /* if max value is not set -> no upper limit */
- {
- num= (ulonglong) optp->max_value;
- adjusted= TRUE;
- }
-
- switch ((optp->var_type & GET_TYPE_MASK)) {
- case GET_INT:
- if (num > (longlong) INT_MAX)
- {
- num= ((longlong) INT_MAX);
- adjusted= TRUE;
- }
- break;
- case GET_LONG:
-#if SIZEOF_LONG < SIZEOF_LONG_LONG
- if (num > (longlong) LONG_MAX)
- {
- num= ((longlong) LONG_MAX);
- adjusted= TRUE;
- }
-#endif
- break;
- default:
- DBUG_ASSERT((optp->var_type & GET_TYPE_MASK) == GET_LL);
- break;
- }
-
- num= (num / block_size);
- num= (longlong) (num * block_size);
-
- if (num < optp->min_value)
- {
- num= optp->min_value;
- if (old < optp->min_value)
- adjusted= TRUE;
- }
-
- if (fix)
- *fix= old != num;
- else if (adjusted)
- my_getopt_error_reporter(WARNING_LEVEL,
- "option '%s': signed value %s adjusted to %s",
- optp->name, llstr(old, buf1), llstr(num, buf2));
- return num;
-}
-
-/*
- function: getopt_ull
-
- This is the same as getopt_ll, but is meant for unsigned long long
- values.
-*/
-
-static ulonglong getopt_ull(char *arg, const struct my_option *optp, int *err)
-{
- ulonglong num= eval_num_suffix(arg, err, (char*) optp->name);
- return getopt_ull_limit_value(num, optp, NULL);
-}
-
-
-ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
- my_bool *fix)
-{
- my_bool adjusted= FALSE;
- ulonglong old= num;
- char buf1[255], buf2[255];
-
- if ((ulonglong) num > (ulonglong) optp->max_value &&
- optp->max_value) /* if max value is not set -> no upper limit */
- {
- num= (ulonglong) optp->max_value;
- adjusted= TRUE;
- }
-
- switch ((optp->var_type & GET_TYPE_MASK)) {
- case GET_UINT:
- if (num > (ulonglong) UINT_MAX)
- {
- num= ((ulonglong) UINT_MAX);
- adjusted= TRUE;
- }
- break;
- case GET_ULONG:
-#if SIZEOF_LONG < SIZEOF_LONG_LONG
- if (num > (ulonglong) ULONG_MAX)
- {
- num= ((ulonglong) ULONG_MAX);
- adjusted= TRUE;
- }
-#endif
- break;
- default:
- DBUG_ASSERT((optp->var_type & GET_TYPE_MASK) == GET_ULL);
- break;
- }
-
- if (optp->block_size > 1)
- {
- num/= (ulonglong) optp->block_size;
- num*= (ulonglong) optp->block_size;
- }
-
- if (num < (ulonglong) optp->min_value)
- {
- num= (ulonglong) optp->min_value;
- if (old < (ulonglong) optp->min_value)
- adjusted= TRUE;
- }
-
- if (fix)
- *fix= old != num;
- else if (adjusted)
- my_getopt_error_reporter(WARNING_LEVEL,
- "option '%s': unsigned value %s adjusted to %s",
- optp->name, ullstr(old, buf1), ullstr(num, buf2));
-
- return num;
-}
-
-double getopt_double_limit_value(double num, const struct my_option *optp,
- my_bool *fix)
-{
- my_bool adjusted= FALSE;
- double old= num;
- if (optp->max_value && num > (double) optp->max_value)
- {
- num= (double) optp->max_value;
- adjusted= TRUE;
- }
- if (num < (double) optp->min_value)
- {
- num= (double) optp->min_value;
- adjusted= TRUE;
- }
- if (fix)
- *fix= adjusted;
- else if (adjusted)
- my_getopt_error_reporter(WARNING_LEVEL,
- "option '%s': value %g adjusted to %g",
- optp->name, old, num);
- return num;
-}
-
-/*
- Get double value withing ranges
-
- Evaluates and returns the value that user gave as an argument to a variable.
-
- RETURN
- decimal value of arg
-
- In case of an error, prints an error message and sets *err to
- EXIT_ARGUMENT_INVALID. Otherwise err is not touched
-*/
-
-static double getopt_double(char *arg, const struct my_option *optp, int *err)
-{
- double num;
- int error;
- char *end= arg + 1000; /* Big enough as *arg is \0 terminated */
- num= my_strtod(arg, &end, &error);
- if (end[0] != 0 || error)
- {
- my_getopt_error_reporter(ERROR_LEVEL,
- "Invalid decimal value for option '%s'\n", optp->name);
- *err= EXIT_ARGUMENT_INVALID;
- return 0.0;
- }
- return getopt_double_limit_value(num, optp, NULL);
-}
-
-/*
- Init one value to it's default values
-
- SYNOPSIS
- init_one_value()
- option Option to initialize
- value Pointer to variable
-*/
-
-static void init_one_value(const struct my_option *option, void *variable,
- longlong value)
-{
- DBUG_ENTER("init_one_value");
- switch ((option->var_type & GET_TYPE_MASK)) {
- case GET_BOOL:
- *((my_bool*) variable)= (my_bool) value;
- break;
- case GET_INT:
- *((int*) variable)= (int) getopt_ll_limit_value((int) value, option, NULL);
- break;
- case GET_ENUM:
- *((ulong*) variable)= (ulong) value;
- break;
- case GET_UINT:
- *((uint*) variable)= (uint) getopt_ull_limit_value((uint) value, option, NULL);
- break;
- case GET_LONG:
- *((long*) variable)= (long) getopt_ll_limit_value((long) value, option, NULL);
- break;
- case GET_ULONG:
- *((ulong*) variable)= (ulong) getopt_ull_limit_value((ulong) value, option, NULL);
- break;
- case GET_LL:
- *((longlong*) variable)= (longlong) getopt_ll_limit_value((longlong) value, option, NULL);
- break;
- case GET_ULL:
- *((ulonglong*) variable)= (ulonglong) getopt_ull_limit_value((ulonglong) value, option, NULL);
- break;
- case GET_SET:
- case GET_FLAGSET:
- *((ulonglong*) variable)= (ulonglong) value;
- break;
- case GET_DOUBLE:
- *((double*) variable)= ulonglong2double(value);
- break;
- case GET_STR:
- /*
- Do not clear variable value if it has no default value.
- The default value may already be set.
- NOTE: To avoid compiler warnings, we first cast longlong to intptr,
- so that the value has the same size as a pointer.
- */
- if ((char*) (intptr) value)
- *((char**) variable)= (char*) (intptr) value;
- break;
- case GET_STR_ALLOC:
- /*
- Do not clear variable value if it has no default value.
- The default value may already be set.
- NOTE: To avoid compiler warnings, we first cast longlong to intptr,
- so that the value has the same size as a pointer.
- */
- if ((char*) (intptr) value)
- {
- char **pstr= (char **) variable;
- my_free(*pstr);
- *pstr= my_strdup((char*) (intptr) value, MYF(MY_WME));
- }
- break;
- default: /* dummy default to avoid compiler warnings */
- break;
- }
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Init one value to it's default values
-
- SYNOPSIS
- init_one_value()
- option Option to initialize
- value Pointer to variable
-*/
-
-static void fini_one_value(const struct my_option *option, void *variable,
- longlong value __attribute__ ((unused)))
-{
- DBUG_ENTER("fini_one_value");
- switch ((option->var_type & GET_TYPE_MASK)) {
- case GET_STR_ALLOC:
- my_free(*((char**) variable));
- *((char**) variable)= NULL;
- break;
- default: /* dummy default to avoid compiler warnings */
- break;
- }
- DBUG_VOID_RETURN;
-}
-
-
-void my_cleanup_options(const struct my_option *options)
-{
- init_variables(options, fini_one_value);
-}
-
-
-/*
- initialize all variables to their default values
-
- SYNOPSIS
- init_variables()
- options Array of options
-
- NOTES
- We will initialize the value that is pointed to by options->value.
- If the value is of type GET_ASK_ADDR, we will ask for the address
- for a value and initialize.
-*/
-
-static void init_variables(const struct my_option *options,
- init_func_p init_one_value)
-{
- DBUG_ENTER("init_variables");
- for (; options->name; options++)
- {
- void *value;
- DBUG_PRINT("options", ("name: '%s'", options->name));
- /*
- We must set u_max_value first as for some variables
- options->u_max_value == options->value and in this case we want to
- set the value to default value.
- */
- if (options->u_max_value)
- init_one_value(options, options->u_max_value, options->max_value);
- value= (options->var_type & GET_ASK_ADDR ?
- (*getopt_get_addr)("", 0, options, 0) : options->value);
- if (value)
- init_one_value(options, value, options->def_value);
- }
- DBUG_VOID_RETURN;
-}
-
-/** Prints variable or option name, replacing _ with - */
-static uint print_name(const struct my_option *optp)
-{
- const char *s= optp->name;
- for (;*s;s++)
- putchar(*s == '_' ? '-' : *s);
- return s - optp->name;
-}
-
-/*
- function: my_print_options
-
- Print help for all options and variables.
-*/
-
-void my_print_help(const struct my_option *options)
-{
- uint col, name_space= 22, comment_space= 57;
- const char *line_end;
- const struct my_option *optp;
-
- for (optp= options; optp->name; optp++)
- {
- if (optp->id && optp->id < 256)
- {
- printf(" -%c%s", optp->id, strlen(optp->name) ? ", " : " ");
- col= 6;
- }
- else
- {
- printf(" ");
- col= 2;
- }
- if (strlen(optp->name))
- {
- printf("--");
- col+= 2 + print_name(optp);
- if (optp->arg_type == NO_ARG ||
- (optp->var_type & GET_TYPE_MASK) == GET_BOOL)
- {
- putchar(' ');
- col++;
- }
- else if ((optp->var_type & GET_TYPE_MASK) == GET_STR ||
- (optp->var_type & GET_TYPE_MASK) == GET_STR_ALLOC ||
- (optp->var_type & GET_TYPE_MASK) == GET_ENUM ||
- (optp->var_type & GET_TYPE_MASK) == GET_SET ||
- (optp->var_type & GET_TYPE_MASK) == GET_FLAGSET )
- {
- printf("%s=name%s ", optp->arg_type == OPT_ARG ? "[" : "",
- optp->arg_type == OPT_ARG ? "]" : "");
- col+= (optp->arg_type == OPT_ARG) ? 8 : 6;
- }
- else
- {
- printf("%s=#%s ", optp->arg_type == OPT_ARG ? "[" : "",
- optp->arg_type == OPT_ARG ? "]" : "");
- col+= (optp->arg_type == OPT_ARG) ? 5 : 3;
- }
- if (col > name_space && optp->comment && *optp->comment)
- {
- putchar('\n');
- col= 0;
- }
- }
- for (; col < name_space; col++)
- putchar(' ');
- if (optp->comment && *optp->comment)
- {
- const char *comment= optp->comment, *end= strend(comment);
-
- while ((uint) (end - comment) > comment_space)
- {
- for (line_end= comment + comment_space; *line_end != ' '; line_end--);
- for (; comment != line_end; comment++)
- putchar(*comment);
- comment++; /* skip the space, as a newline will take it's place now */
- putchar('\n');
- for (col= 0; col < name_space; col++)
- putchar(' ');
- }
- printf("%s", comment);
- }
- putchar('\n');
- if ((optp->var_type & GET_TYPE_MASK) == GET_BOOL)
- {
- if (optp->def_value != 0)
- {
- printf("%*s(Defaults to on; use --skip-", name_space, "");
- print_name(optp);
- printf(" to disable.)\n");
- }
- }
- }
-}
-
-
-/*
- function: my_print_options
-
- Print variables.
-*/
-
-void my_print_variables(const struct my_option *options)
-{
- uint name_space= 34, length, nr;
- ulonglong llvalue;
- char buff[255];
- const struct my_option *optp;
-
- for (optp= options; optp->name; optp++)
- {
- length= strlen(optp->name)+1;
- if (length > name_space)
- name_space= length;
- }
-
- printf("\nVariables (--variable-name=value)\n");
- printf("%-*s%s", name_space, "and boolean options {FALSE|TRUE}",
- "Value (after reading options)\n");
- for (length=1; length < 75; length++)
- putchar(length == name_space ? ' ' : '-');
- putchar('\n');
-
- for (optp= options; optp->name; optp++)
- {
- void *value= (optp->var_type & GET_ASK_ADDR ?
- (*getopt_get_addr)("", 0, optp, 0) : optp->value);
- if (value)
- {
- length= print_name(optp);
- for (; length < name_space; length++)
- putchar(' ');
- switch ((optp->var_type & GET_TYPE_MASK)) {
- case GET_SET:
- if (!(llvalue= *(ulonglong*) value))
- printf("%s\n", "");
- else
- for (nr= 0; llvalue && nr < optp->typelib->count; nr++, llvalue >>=1)
- {
- if (llvalue & 1)
- printf( llvalue > 1 ? "%s," : "%s\n", get_type(optp->typelib, nr));
- }
- break;
- case GET_FLAGSET:
- llvalue= *(ulonglong*) value;
- for (nr= 0; llvalue && nr < optp->typelib->count; nr++, llvalue >>=1)
- {
- printf("%s%s=", (nr ? "," : ""), get_type(optp->typelib, nr));
- printf(llvalue & 1 ? "on" : "off");
- }
- printf("\n");
- break;
- case GET_ENUM:
- printf("%s\n", get_type(optp->typelib, *(ulong*) value));
- break;
- case GET_STR:
- case GET_STR_ALLOC: /* fall through */
- printf("%s\n", *((char**) value) ? *((char**) value) :
- "(No default value)");
- break;
- case GET_BOOL:
- printf("%s\n", *((my_bool*) value) ? "TRUE" : "FALSE");
- break;
- case GET_INT:
- printf("%d\n", *((int*) value));
- break;
- case GET_UINT:
- printf("%d\n", *((uint*) value));
- break;
- case GET_LONG:
- printf("%ld\n", *((long*) value));
- break;
- case GET_ULONG:
- printf("%lu\n", *((ulong*) value));
- break;
- case GET_LL:
- printf("%s\n", llstr(*((longlong*) value), buff));
- break;
- case GET_ULL:
- longlong2str(*((ulonglong*) value), buff, 10);
- printf("%s\n", buff);
- break;
- case GET_DOUBLE:
- printf("%g\n", *(double*) value);
- break;
- case GET_NO_ARG:
- printf("(No default value)\n");
- break;
- default:
- printf("(Disabled)\n");
- break;
- }
- }
- }
-}
diff --git a/dep/mysqllite/mysys/my_getpagesize.c b/dep/mysqllite/mysys/my_getpagesize.c
deleted file mode 100644
index b0560cede35..00000000000
--- a/dep/mysqllite/mysys/my_getpagesize.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-#ifndef HAVE_GETPAGESIZE
-
-#if defined __WIN__
-
-int my_getpagesize(void)
-{
- SYSTEM_INFO si;
- GetSystemInfo(&si);
- return si.dwPageSize;
-}
-
-#else
-
-/* Default implementation */
-int my_getpagesize(void)
-{
- return (int)8192;
-}
-
-#endif
-
-#endif
-
diff --git a/dep/mysqllite/mysys/my_getsystime.c b/dep/mysqllite/mysys/my_getsystime.c
deleted file mode 100644
index 614f49fc425..00000000000
--- a/dep/mysqllite/mysys/my_getsystime.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* Copyright (C) 2004 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* get time since epoc in 100 nanosec units */
-/* thus to get the current time we should use the system function
- with the highest possible resolution */
-
-/*
- TODO: in functions my_micro_time() and my_micro_time_and_time() there
- exists some common code that should be merged into a function.
-*/
-
-#include "mysys_priv.h"
-#include "my_static.h"
-
-ulonglong my_getsystime()
-{
-#ifdef HAVE_CLOCK_GETTIME
- struct timespec tp;
- clock_gettime(CLOCK_REALTIME, &tp);
- return (ulonglong)tp.tv_sec*10000000+(ulonglong)tp.tv_nsec/100;
-#elif defined(__WIN__)
- LARGE_INTEGER t_cnt;
- if (query_performance_frequency)
- {
- QueryPerformanceCounter(&t_cnt);
- return ((t_cnt.QuadPart / query_performance_frequency * 10000000) +
- ((t_cnt.QuadPart % query_performance_frequency) * 10000000 /
- query_performance_frequency) + query_performance_offset);
- }
- return 0;
-#else
- /* TODO: check for other possibilities for hi-res timestamping */
- struct timeval tv;
- gettimeofday(&tv,NULL);
- return (ulonglong)tv.tv_sec*10000000+(ulonglong)tv.tv_usec*10;
-#endif
-}
-
-
-/*
- Return current time
-
- SYNOPSIS
- my_time()
- flags If MY_WME is set, write error if time call fails
-
-*/
-
-time_t my_time(myf flags __attribute__((unused)))
-{
- time_t t;
-#ifdef HAVE_GETHRTIME
- (void) my_micro_time_and_time(&t);
- return t;
-#else
- /* The following loop is here beacuse time() may fail on some systems */
- while ((t= time(0)) == (time_t) -1)
- {
- if (flags & MY_WME)
- fprintf(stderr, "%s: Warning: time() call failed\n", my_progname);
- }
- return t;
-#endif
-}
-
-
-/*
- Return time in micro seconds
-
- SYNOPSIS
- my_micro_time()
-
- NOTES
- This function is to be used to measure performance in micro seconds.
- As it's not defined whats the start time for the clock, this function
- us only useful to measure time between two moments.
-
- For windows platforms we need the frequency value of the CUP. This is
- initalized in my_init.c through QueryPerformanceFrequency().
-
- If Windows platform doesn't support QueryPerformanceFrequency() we will
- obtain the time via GetClockCount, which only supports milliseconds.
-
- RETURN
- Value in microseconds from some undefined point in time
-*/
-
-ulonglong my_micro_time()
-{
-#if defined(__WIN__)
- ulonglong newtime;
- GetSystemTimeAsFileTime((FILETIME*)&newtime);
- return (newtime/10);
-#elif defined(HAVE_GETHRTIME)
- return gethrtime()/1000;
-#else
- ulonglong newtime;
- struct timeval t;
- /*
- The following loop is here because gettimeofday may fail on some systems
- */
- while (gettimeofday(&t, NULL) != 0)
- {}
- newtime= (ulonglong)t.tv_sec * 1000000 + t.tv_usec;
- return newtime;
-#endif /* defined(__WIN__) */
-}
-
-
-/*
- Return time in seconds and timer in microseconds (not different start!)
-
- SYNOPSIS
- my_micro_time_and_time()
- time_arg Will be set to seconds since epoch (00:00:00 UTC,
- January 1, 1970)
-
- NOTES
- This function is to be useful when we need both the time and microtime.
- For example in MySQL this is used to get the query time start of a query
- and to measure the time of a query (for the slow query log)
-
- IMPLEMENTATION
- Value of time is as in time() call.
- Value of microtime is same as my_micro_time(), which may be totally
- unrealated to time()
-
- RETURN
- Value in microseconds from some undefined point in time
-*/
-
-#define DELTA_FOR_SECONDS 500000000LL /* Half a second */
-
-/* Difference between GetSystemTimeAsFileTime() and now() */
-#define OFFSET_TO_EPOCH 116444736000000000ULL
-
-ulonglong my_micro_time_and_time(time_t *time_arg)
-{
-#if defined(__WIN__)
- ulonglong newtime;
- GetSystemTimeAsFileTime((FILETIME*)&newtime);
- *time_arg= (time_t) ((newtime - OFFSET_TO_EPOCH) / 10000000);
- return (newtime/10);
-#elif defined(HAVE_GETHRTIME)
- /*
- Solaris has a very slow time() call. We optimize this by using the very
- fast gethrtime() call and only calling time() every 1/2 second
- */
- static hrtime_t prev_gethrtime= 0;
- static time_t cur_time= 0;
- hrtime_t cur_gethrtime;
-
- mysql_mutex_lock(&THR_LOCK_time);
- cur_gethrtime= gethrtime();
- /*
- Due to bugs in the Solaris (x86) implementation of gethrtime(),
- the time returned by it might not be monotonic. Don't use the
- cached time(2) value if this is a case.
- */
- if ((prev_gethrtime > cur_gethrtime) ||
- ((cur_gethrtime - prev_gethrtime) > DELTA_FOR_SECONDS))
- {
- cur_time= time(0);
- prev_gethrtime= cur_gethrtime;
- }
- *time_arg= cur_time;
- mysql_mutex_unlock(&THR_LOCK_time);
- return cur_gethrtime/1000;
-#else
- ulonglong newtime;
- struct timeval t;
- /*
- The following loop is here because gettimeofday may fail on some systems
- */
- while (gettimeofday(&t, NULL) != 0)
- {}
- *time_arg= t.tv_sec;
- newtime= (ulonglong)t.tv_sec * 1000000 + t.tv_usec;
- return newtime;
-#endif /* defined(__WIN__) */
-}
-
-
-/*
- Returns current time
-
- SYNOPSIS
- my_time_possible_from_micro()
- microtime Value from very recent my_micro_time()
-
- NOTES
- This function returns the current time. The microtime argument is only used
- if my_micro_time() uses a function that can safely be converted to the
- current time.
-
- RETURN
- current time
-*/
-
-time_t my_time_possible_from_micro(ulonglong microtime __attribute__((unused)))
-{
-#if defined(__WIN__)
- time_t t;
- while ((t= time(0)) == (time_t) -1)
- {}
- return t;
-#elif defined(HAVE_GETHRTIME)
- return my_time(0); /* Cached time */
-#else
- return (time_t) (microtime / 1000000);
-#endif /* defined(__WIN__) */
-}
-
diff --git a/dep/mysqllite/mysys/my_getwd.c b/dep/mysqllite/mysys/my_getwd.c
deleted file mode 100644
index ace14c8a3c9..00000000000
--- a/dep/mysqllite/mysys/my_getwd.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* my_setwd() and my_getwd() works with intern_filenames !! */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include "mysys_err.h"
-#ifdef HAVE_GETWD
-#include <sys/param.h>
-#endif
-#if defined(__WIN__)
-#include <m_ctype.h>
-#include <dos.h>
-#include <direct.h>
-#endif
-
-/* Gets current working directory in buff.
-
- SYNPOSIS
- my_getwd()
- buf Buffer to store result. Can be curr_dir[].
- size Size of buffer
- MyFlags Flags
-
- NOTES
- Directory is allways ended with FN_LIBCHAR
-
- RESULT
- 0 ok
- # error
-*/
-
-int my_getwd(char * buf, size_t size, myf MyFlags)
-{
- char * pos;
- DBUG_ENTER("my_getwd");
- DBUG_PRINT("my",("buf: 0x%lx size: %u MyFlags %d",
- (long) buf, (uint) size, MyFlags));
-
- if (size < 1)
- DBUG_RETURN(-1);
-
- if (curr_dir[0]) /* Current pos is saved here */
- (void) strmake(buf,&curr_dir[0],size-1);
- else
- {
-#if defined(HAVE_GETCWD)
- if (size < 2)
- DBUG_RETURN(-1);
- if (!getcwd(buf,(uint) (size-2)) && MyFlags & MY_WME)
- {
- my_errno=errno;
- my_error(EE_GETWD,MYF(ME_BELL+ME_WAITTANG),errno);
- DBUG_RETURN(-1);
- }
-#elif defined(HAVE_GETWD)
- {
- char pathname[MAXPATHLEN];
- getwd(pathname);
- strmake(buf,pathname,size-1);
- }
-#else
-#error "No way to get current directory"
-#endif
- if (*((pos=strend(buf))-1) != FN_LIBCHAR) /* End with FN_LIBCHAR */
- {
- pos[0]= FN_LIBCHAR;
- pos[1]=0;
- }
- (void) strmake(&curr_dir[0],buf, (size_t) (FN_REFLEN-1));
- }
- DBUG_RETURN(0);
-} /* my_getwd */
-
-
-/* Set new working directory */
-
-int my_setwd(const char *dir, myf MyFlags)
-{
- int res;
- size_t length;
- char *start, *pos;
- DBUG_ENTER("my_setwd");
- DBUG_PRINT("my",("dir: '%s' MyFlags %d", dir, MyFlags));
-
- start=(char *) dir;
- if (! dir[0] || (dir[0] == FN_LIBCHAR && dir[1] == 0))
- dir=FN_ROOTDIR;
- if ((res=chdir((char*) dir)) != 0)
- {
- my_errno=errno;
- if (MyFlags & MY_WME)
- my_error(EE_SETWD,MYF(ME_BELL+ME_WAITTANG),start,errno);
- }
- else
- {
- if (test_if_hard_path(start))
- { /* Hard pathname */
- pos= strmake(&curr_dir[0],start,(size_t) FN_REFLEN-1);
- if (pos[-1] != FN_LIBCHAR)
- {
- length=(uint) (pos-(char*) curr_dir);
- curr_dir[length]=FN_LIBCHAR; /* must end with '/' */
- curr_dir[length+1]='\0';
- }
- }
- else
- curr_dir[0]='\0'; /* Don't save name */
- }
- DBUG_RETURN(res);
-} /* my_setwd */
-
-
-
- /* Test if hard pathname */
- /* Returns 1 if dirname is a hard path */
-
-int test_if_hard_path(register const char *dir_name)
-{
- if (dir_name[0] == FN_HOMELIB && dir_name[1] == FN_LIBCHAR)
- return (home_dir != NullS && test_if_hard_path(home_dir));
- if (dir_name[0] == FN_LIBCHAR)
- return (TRUE);
-#ifdef FN_DEVCHAR
- return (strchr(dir_name,FN_DEVCHAR) != 0);
-#else
- return FALSE;
-#endif
-} /* test_if_hard_path */
-
-
-/*
- Test if a name contains an (absolute or relative) path.
-
- SYNOPSIS
- has_path()
- name The name to test.
-
- RETURN
- TRUE name contains a path.
- FALSE name does not contain a path.
-*/
-
-my_bool has_path(const char *name)
-{
- return test(strchr(name, FN_LIBCHAR))
-#if FN_LIBCHAR != '/'
- || test(strchr(name,'/'))
-#endif
-#ifdef FN_DEVCHAR
- || test(strchr(name, FN_DEVCHAR))
-#endif
- ;
-}
diff --git a/dep/mysqllite/mysys/my_handler.c b/dep/mysqllite/mysys/my_handler.c
deleted file mode 100644
index bd1e313d066..00000000000
--- a/dep/mysqllite/mysys/my_handler.c
+++ /dev/null
@@ -1,604 +0,0 @@
-/* Copyright (C) 2002-2006 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-#include <my_global.h>
-#include <m_ctype.h>
-#include <my_base.h>
-#include <my_handler.h>
-#include <my_sys.h>
-
-#include "my_handler_errors.h"
-
-#define CMP_NUM(a,b) (((a) < (b)) ? -1 : ((a) == (b)) ? 0 : 1)
-
-int ha_compare_text(CHARSET_INFO *charset_info, uchar *a, uint a_length,
- uchar *b, uint b_length, my_bool part_key,
- my_bool skip_end_space)
-{
- if (!part_key)
- return charset_info->coll->strnncollsp(charset_info, a, a_length,
- b, b_length, (my_bool)!skip_end_space);
- return charset_info->coll->strnncoll(charset_info, a, a_length,
- b, b_length, part_key);
-}
-
-
-static int compare_bin(uchar *a, uint a_length, uchar *b, uint b_length,
- my_bool part_key, my_bool skip_end_space)
-{
- uint length= min(a_length,b_length);
- uchar *end= a+ length;
- int flag;
-
- while (a < end)
- if ((flag= (int) *a++ - (int) *b++))
- return flag;
- if (part_key && b_length < a_length)
- return 0;
- if (skip_end_space && a_length != b_length)
- {
- int swap= 1;
- /*
- We are using space compression. We have to check if longer key
- has next character < ' ', in which case it's less than the shorter
- key that has an implicite space afterwards.
-
- This code is identical to the one in
- strings/ctype-simple.c:my_strnncollsp_simple
- */
- if (a_length < b_length)
- {
- /* put shorter key in a */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- return 0;
- }
- return (int) (a_length-b_length);
-}
-
-
-/*
- Compare two keys
-
- SYNOPSIS
- ha_key_cmp()
- keyseg Array of key segments of key to compare
- a First key to compare, in format from _mi_pack_key()
- This is normally key specified by user
- b Second key to compare. This is always from a row
- key_length Length of key to compare. This can be shorter than
- a to just compare sub keys
- next_flag How keys should be compared
- If bit SEARCH_FIND is not set the keys includes the row
- position and this should also be compared
- diff_pos OUT Number of first keypart where values differ, counting
- from one.
- diff_pos[1] OUT (b + diff_pos[1]) points to first value in tuple b
- that is different from corresponding value in tuple a.
-
- EXAMPLES
- Example1: if the function is called for tuples
- ('aaa','bbb') and ('eee','fff'), then
- diff_pos[0] = 1 (as 'aaa' != 'eee')
- diff_pos[1] = 0 (offset from beggining of tuple b to 'eee' keypart).
-
- Example2: if the index function is called for tuples
- ('aaa','bbb') and ('aaa','fff'),
- diff_pos[0] = 2 (as 'aaa' != 'eee')
- diff_pos[1] = 3 (offset from beggining of tuple b to 'fff' keypart,
- here we assume that first key part is CHAR(3) NOT NULL)
-
- NOTES
- Number-keys can't be splited
-
- RETURN VALUES
- <0 If a < b
- 0 If a == b
- >0 If a > b
-*/
-
-#define FCMP(A,B) ((int) (A) - (int) (B))
-
-int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
- register uchar *b, uint key_length, uint nextflag,
- uint *diff_pos)
-{
- int flag;
- int16 s_1,s_2;
- int32 l_1,l_2;
- uint32 u_1,u_2;
- float f_1,f_2;
- double d_1,d_2;
- uint next_key_length;
- uchar *orig_b= b;
-
- *diff_pos=0;
- for ( ; (int) key_length >0 ; key_length=next_key_length, keyseg++)
- {
- uchar *end;
- uint piks=! (keyseg->flag & HA_NO_SORT);
- (*diff_pos)++;
- diff_pos[1]= (uint)(b - orig_b);
-
- /* Handle NULL part */
- if (keyseg->null_bit)
- {
- key_length--;
- if (*a != *b && piks)
- {
- flag = (int) *a - (int) *b;
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- }
- b++;
- if (!*a++) /* If key was NULL */
- {
- if (nextflag == (SEARCH_FIND | SEARCH_UPDATE))
- nextflag=SEARCH_SAME; /* Allow duplicate keys */
- else if (nextflag & SEARCH_NULL_ARE_NOT_EQUAL)
- {
- /*
- This is only used from mi_check() to calculate cardinality.
- It can't be used when searching for a key as this would cause
- compare of (a,b) and (b,a) to return the same value.
- */
- return -1;
- }
- next_key_length=key_length;
- continue; /* To next key part */
- }
- }
- end= a+ min(keyseg->length,key_length);
- next_key_length=key_length-keyseg->length;
-
- switch ((enum ha_base_keytype) keyseg->type) {
- case HA_KEYTYPE_TEXT: /* Ascii; Key is converted */
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int a_length,b_length,pack_length;
- get_key_length(a_length,a);
- get_key_pack_length(b_length,pack_length,b);
- next_key_length=key_length-b_length-pack_length;
-
- if (piks &&
- (flag=ha_compare_text(keyseg->charset,a,a_length,b,b_length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0),
- (my_bool)!(nextflag & SEARCH_PREFIX))))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a+=a_length;
- b+=b_length;
- break;
- }
- else
- {
- uint length=(uint) (end-a), a_length=length, b_length=length;
- if (piks &&
- (flag= ha_compare_text(keyseg->charset, a, a_length, b, b_length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0),
- (my_bool)!(nextflag & SEARCH_PREFIX))))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a=end;
- b+=length;
- }
- break;
- case HA_KEYTYPE_BINARY:
- case HA_KEYTYPE_BIT:
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int a_length,b_length,pack_length;
- get_key_length(a_length,a);
- get_key_pack_length(b_length,pack_length,b);
- next_key_length=key_length-b_length-pack_length;
-
- if (piks &&
- (flag=compare_bin(a,a_length,b,b_length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0),1)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a+=a_length;
- b+=b_length;
- break;
- }
- else
- {
- uint length=keyseg->length;
- if (piks &&
- (flag=compare_bin(a,length,b,length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0),0)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a+=length;
- b+=length;
- }
- break;
- case HA_KEYTYPE_VARTEXT1:
- case HA_KEYTYPE_VARTEXT2:
- {
- int a_length,b_length,pack_length;
- get_key_length(a_length,a);
- get_key_pack_length(b_length,pack_length,b);
- next_key_length=key_length-b_length-pack_length;
-
- if (piks &&
- (flag= ha_compare_text(keyseg->charset,a,a_length,b,b_length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0),
- (my_bool) ((nextflag & (SEARCH_FIND |
- SEARCH_UPDATE)) ==
- SEARCH_FIND &&
- ! (keyseg->flag &
- HA_END_SPACE_ARE_EQUAL)))))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a+= a_length;
- b+= b_length;
- break;
- }
- break;
- case HA_KEYTYPE_VARBINARY1:
- case HA_KEYTYPE_VARBINARY2:
- {
- int a_length,b_length,pack_length;
- get_key_length(a_length,a);
- get_key_pack_length(b_length,pack_length,b);
- next_key_length=key_length-b_length-pack_length;
-
- if (piks &&
- (flag=compare_bin(a,a_length,b,b_length,
- (my_bool) ((nextflag & SEARCH_PREFIX) &&
- next_key_length <= 0), 0)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a+=a_length;
- b+=b_length;
- }
- break;
- case HA_KEYTYPE_INT8:
- {
- int i_1= (int) *((signed char*) a);
- int i_2= (int) *((signed char*) b);
- if (piks && (flag = CMP_NUM(i_1,i_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b++;
- break;
- }
- case HA_KEYTYPE_SHORT_INT:
- s_1= mi_sint2korr(a);
- s_2= mi_sint2korr(b);
- if (piks && (flag = CMP_NUM(s_1,s_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 2; /* sizeof(short int); */
- break;
- case HA_KEYTYPE_USHORT_INT:
- {
- uint16 us_1,us_2;
- us_1= mi_sint2korr(a);
- us_2= mi_sint2korr(b);
- if (piks && (flag = CMP_NUM(us_1,us_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+=2; /* sizeof(short int); */
- break;
- }
- case HA_KEYTYPE_LONG_INT:
- l_1= mi_sint4korr(a);
- l_2= mi_sint4korr(b);
- if (piks && (flag = CMP_NUM(l_1,l_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 4; /* sizeof(long int); */
- break;
- case HA_KEYTYPE_ULONG_INT:
- u_1= mi_sint4korr(a);
- u_2= mi_sint4korr(b);
- if (piks && (flag = CMP_NUM(u_1,u_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 4; /* sizeof(long int); */
- break;
- case HA_KEYTYPE_INT24:
- l_1=mi_sint3korr(a);
- l_2=mi_sint3korr(b);
- if (piks && (flag = CMP_NUM(l_1,l_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 3;
- break;
- case HA_KEYTYPE_UINT24:
- l_1=mi_uint3korr(a);
- l_2=mi_uint3korr(b);
- if (piks && (flag = CMP_NUM(l_1,l_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 3;
- break;
- case HA_KEYTYPE_FLOAT:
- mi_float4get(f_1,a);
- mi_float4get(f_2,b);
- /*
- The following may give a compiler warning about floating point
- comparison not being safe, but this is ok in this context as
- we are bascily doing sorting
- */
- if (piks && (flag = CMP_NUM(f_1,f_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 4; /* sizeof(float); */
- break;
- case HA_KEYTYPE_DOUBLE:
- mi_float8get(d_1,a);
- mi_float8get(d_2,b);
- /*
- The following may give a compiler warning about floating point
- comparison not being safe, but this is ok in this context as
- we are bascily doing sorting
- */
- if (piks && (flag = CMP_NUM(d_1,d_2)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 8; /* sizeof(double); */
- break;
- case HA_KEYTYPE_NUM: /* Numeric key */
- {
- int swap_flag= 0;
- int alength,blength;
-
- if (keyseg->flag & HA_REVERSE_SORT)
- {
- swap_variables(uchar*, a, b);
- swap_flag=1; /* Remember swap of a & b */
- end= a+ (int) (end-b);
- }
- if (keyseg->flag & HA_SPACE_PACK)
- {
- alength= *a++; blength= *b++;
- end=a+alength;
- next_key_length=key_length-blength-1;
- }
- else
- {
- alength= (int) (end-a);
- blength=keyseg->length;
- /* remove pre space from keys */
- for ( ; alength && *a == ' ' ; a++, alength--) ;
- for ( ; blength && *b == ' ' ; b++, blength--) ;
- }
- if (piks)
- {
- if (*a == '-')
- {
- if (*b != '-')
- return -1;
- a++; b++;
- swap_variables(uchar*, a, b);
- swap_variables(int, alength, blength);
- swap_flag=1-swap_flag;
- alength--; blength--;
- end=a+alength;
- }
- else if (*b == '-')
- return 1;
- while (alength && (*a == '+' || *a == '0'))
- {
- a++; alength--;
- }
- while (blength && (*b == '+' || *b == '0'))
- {
- b++; blength--;
- }
- if (alength != blength)
- return (alength < blength) ? -1 : 1;
- while (a < end)
- if (*a++ != *b++)
- return ((int) a[-1] - (int) b[-1]);
- }
- else
- {
- b+=(end-a);
- a=end;
- }
-
- if (swap_flag) /* Restore pointers */
- swap_variables(uchar*, a, b);
- break;
- }
-#ifdef HAVE_LONG_LONG
- case HA_KEYTYPE_LONGLONG:
- {
- longlong ll_a,ll_b;
- ll_a= mi_sint8korr(a);
- ll_b= mi_sint8korr(b);
- if (piks && (flag = CMP_NUM(ll_a,ll_b)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 8;
- break;
- }
- case HA_KEYTYPE_ULONGLONG:
- {
- ulonglong ll_a,ll_b;
- ll_a= mi_uint8korr(a);
- ll_b= mi_uint8korr(b);
- if (piks && (flag = CMP_NUM(ll_a,ll_b)))
- return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag);
- a= end;
- b+= 8;
- break;
- }
-#endif
- case HA_KEYTYPE_END: /* Ready */
- goto end; /* diff_pos is incremented */
- }
- }
- (*diff_pos)++;
-end:
- if (!(nextflag & SEARCH_FIND))
- {
- uint i;
- if (nextflag & (SEARCH_NO_FIND | SEARCH_LAST)) /* Find record after key */
- return (nextflag & (SEARCH_BIGGER | SEARCH_LAST)) ? -1 : 1;
- flag=0;
- for (i=keyseg->length ; i-- > 0 ; )
- {
- if (*a++ != *b++)
- {
- flag= FCMP(a[-1],b[-1]);
- break;
- }
- }
- if (nextflag & SEARCH_SAME)
- return (flag); /* read same */
- if (nextflag & SEARCH_BIGGER)
- return (flag <= 0 ? -1 : 1); /* read next */
- return (flag < 0 ? -1 : 1); /* read previous */
- }
- return 0;
-} /* ha_key_cmp */
-
-
-/*
- Find the first NULL value in index-suffix values tuple
-
- SYNOPSIS
- ha_find_null()
- keyseg Array of keyparts for key suffix
- a Key suffix value tuple
-
- DESCRIPTION
- Find the first NULL value in index-suffix values tuple.
-
- TODO
- Consider optimizing this function or its use so we don't search for
- NULL values in completely NOT NULL index suffixes.
-
- RETURN
- First key part that has NULL as value in values tuple, or the last key
- part (with keyseg->type==HA_TYPE_END) if values tuple doesn't contain
- NULLs.
-*/
-
-HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a)
-{
- for (; (enum ha_base_keytype) keyseg->type != HA_KEYTYPE_END; keyseg++)
- {
- uchar *end;
- if (keyseg->null_bit)
- {
- if (!*a++)
- return keyseg;
- }
- end= a+ keyseg->length;
-
- switch ((enum ha_base_keytype) keyseg->type) {
- case HA_KEYTYPE_TEXT:
- case HA_KEYTYPE_BINARY:
- case HA_KEYTYPE_BIT:
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int a_length;
- get_key_length(a_length, a);
- a += a_length;
- break;
- }
- else
- a= end;
- break;
- case HA_KEYTYPE_VARTEXT1:
- case HA_KEYTYPE_VARTEXT2:
- case HA_KEYTYPE_VARBINARY1:
- case HA_KEYTYPE_VARBINARY2:
- {
- int a_length;
- get_key_length(a_length, a);
- a+= a_length;
- break;
- }
- case HA_KEYTYPE_NUM:
- if (keyseg->flag & HA_SPACE_PACK)
- {
- int alength= *a++;
- end= a+alength;
- }
- a= end;
- break;
- case HA_KEYTYPE_INT8:
- case HA_KEYTYPE_SHORT_INT:
- case HA_KEYTYPE_USHORT_INT:
- case HA_KEYTYPE_LONG_INT:
- case HA_KEYTYPE_ULONG_INT:
- case HA_KEYTYPE_INT24:
- case HA_KEYTYPE_UINT24:
-#ifdef HAVE_LONG_LONG
- case HA_KEYTYPE_LONGLONG:
- case HA_KEYTYPE_ULONGLONG:
-#endif
- case HA_KEYTYPE_FLOAT:
- case HA_KEYTYPE_DOUBLE:
- a= end;
- break;
- case HA_KEYTYPE_END: /* purecov: inspected */
- /* keep compiler happy */
- DBUG_ASSERT(0);
- break;
- }
- }
- return keyseg;
-}
-
-
-
-/*
- Register handler error messages for usage with my_error()
-
- NOTES
- This is safe to call multiple times as my_error_register()
- will ignore calls to register already registered error numbers.
-*/
-
-static const char **get_handler_error_messages()
-{
- return handler_error_messages;
-}
-
-void my_handler_error_register(void)
-{
- /*
- If you got compilation error here about compile_time_assert array, check
- that every HA_ERR_xxx constant has a corresponding error message in
- handler_error_messages[] list (check mysys/ma_handler_errors.h and
- include/my_base.h).
- */
- compile_time_assert(HA_ERR_FIRST + array_elements(handler_error_messages) ==
- HA_ERR_LAST + 1);
- my_error_register(get_handler_error_messages, HA_ERR_FIRST,
- HA_ERR_FIRST+ array_elements(handler_error_messages)-1);
-}
-
-
-void my_handler_error_unregister(void)
-{
- my_error_unregister(HA_ERR_FIRST,
- HA_ERR_FIRST+ array_elements(handler_error_messages)-1);
-}
diff --git a/dep/mysqllite/mysys/my_handler_errors.h b/dep/mysqllite/mysys/my_handler_errors.h
deleted file mode 100644
index e4e62f47fed..00000000000
--- a/dep/mysqllite/mysys/my_handler_errors.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef MYSYS_MY_HANDLER_ERRORS_INCLUDED
-#define MYSYS_MY_HANDLER_ERRORS_INCLUDED
-
-/*
- Errors a handler can give you
-*/
-
-static const char *handler_error_messages[]=
-{
- "Didn't find key on read or update",
- "Duplicate key on write or update",
- "Internal (unspecified) error in handler",
- "Someone has changed the row since it was read (while the table was locked to prevent it)",
- "Wrong index given to function",
- "Undefined handler error 125",
- "Index file is crashed",
- "Record file is crashed",
- "Out of memory in engine",
- "Undefined handler error 129",
- "Incorrect file format",
- "Command not supported by database",
- "Old database file",
- "No record read before update",
- "Record was already deleted (or record file crashed)",
- "No more room in record file",
- "No more room in index file",
- "No more records (read after end of file)",
- "Unsupported extension used for table",
- "Too big row",
- "Wrong create options",
- "Duplicate unique key or constraint on write or update",
- "Unknown character set used in table",
- "Conflicting table definitions in sub-tables of MERGE table",
- "Table is crashed and last repair failed",
- "Table was marked as crashed and should be repaired",
- "Lock timed out; Retry transaction",
- "Lock table is full; Restart program with a larger locktable",
- "Updates are not allowed under a read only transactions",
- "Lock deadlock; Retry transaction",
- "Foreign key constraint is incorrectly formed",
- "Cannot add a child row",
- "Cannot delete a parent row",
- "No savepoint with that name",
- "Non unique key block size",
- "The table does not exist in engine",
- "The table already existed in storage engine",
- "Could not connect to storage engine",
- "Unexpected null pointer found when using spatial index",
- "The table changed in storage engine",
- "There's no partition in table for the given value",
- "Row-based binlogging of row failed",
- "Index needed in foreign key constraint",
- "Upholding foreign key constraints would lead to a duplicate key error in "
- "some other table",
- "Table needs to be upgraded before it can be used",
- "Table is read only",
- "Failed to get next auto increment value",
- "Failed to set row auto increment value",
- "Unknown (generic) error from engine",
- "Record is the same",
- "It is not possible to log this statement",
- "The event was corrupt, leading to illegal data being read",
- "The table is of a new format not supported by this version",
- "The event could not be processed no other hanlder error happened",
- "Got a fatal error during initialzaction of handler",
- "File to short; Expected more data in file",
- "Read page with wrong checksum",
- "Too many active concurrent transactions"
-};
-
-#endif /* MYSYS_MY_HANDLER_ERRORS_INCLUDED */
diff --git a/dep/mysqllite/mysys/my_init.c b/dep/mysqllite/mysys/my_init.c
deleted file mode 100644
index 9b0939c1c75..00000000000
--- a/dep/mysqllite/mysys/my_init.c
+++ /dev/null
@@ -1,607 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include "mysys_err.h"
-#include <m_string.h>
-#include <m_ctype.h>
-#include <signal.h>
-#ifdef __WIN__
-#ifdef _MSC_VER
-#include <locale.h>
-#include <crtdbg.h>
-/* WSAStartup needs winsock library*/
-#pragma comment(lib, "ws2_32")
-#endif
-my_bool have_tcpip=0;
-static void my_win_init(void);
-static my_bool win32_init_tcp_ip();
-#else
-#define my_win_init()
-#endif
-
-#define SCALE_SEC 100
-#define SCALE_USEC 10000
-
-my_bool my_init_done= 0;
-/** True if @c my_basic_init() has been called. */
-my_bool my_basic_init_done= 0;
-uint mysys_usage_id= 0; /* Incremented for each my_init() */
-ulong my_thread_stack_size= 65536;
-
-static ulong atoi_octal(const char *str)
-{
- long int tmp;
- while (*str && my_isspace(&my_charset_latin1, *str))
- str++;
- str2int(str,
- (*str == '0' ? 8 : 10), /* Octalt or decimalt */
- 0, INT_MAX, &tmp);
- return (ulong) tmp;
-}
-
-MYSQL_FILE *mysql_stdin= NULL;
-static MYSQL_FILE instrumented_stdin;
-
-/**
- Perform a limited initialisation of mysys.
- This initialisation is sufficient to:
- - allocate memory,
- - read configuration files,
- - parse command lines arguments.
- To complete the mysys initialisation,
- call my_init().
- @return 0 on success
-*/
-my_bool my_basic_init(void)
-{
- char * str;
-
- if (my_basic_init_done)
- return 0;
- my_basic_init_done= 1;
-
- mysys_usage_id++;
- my_umask= 0660; /* Default umask for new files */
- my_umask_dir= 0700; /* Default umask for new directories */
-
- /* Default creation of new files */
- if ((str= getenv("UMASK")) != 0)
- my_umask= (int) (atoi_octal(str) | 0600);
- /* Default creation of new dir's */
- if ((str= getenv("UMASK_DIR")) != 0)
- my_umask_dir= (int) (atoi_octal(str) | 0700);
-
- init_glob_errs();
-
- instrumented_stdin.m_file= stdin;
- instrumented_stdin.m_psi= NULL; /* not yet instrumented */
- mysql_stdin= & instrumented_stdin;
-
- if (my_thread_global_init())
- return 1;
-
-#if defined(SAFE_MUTEX)
- safe_mutex_global_init(); /* Must be called early */
-#endif
-
-#if defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX)
- fastmutex_global_init(); /* Must be called early */
-#endif
-
-#if defined(HAVE_PTHREAD_INIT)
- pthread_init(); /* Must be called before DBUG_ENTER */
-#endif
- if (my_thread_basic_global_init())
- return 1;
-
- /* $HOME is needed early to parse configuration files located in ~/ */
- if ((home_dir= getenv("HOME")) != 0)
- home_dir= intern_filename(home_dir_buff, home_dir);
-
- return 0;
-}
-
-
-/*
- Init my_sys functions and my_sys variabels
-
- SYNOPSIS
- my_init()
-
- RETURN
- 0 ok
- 1 Couldn't initialize environment
-*/
-
-my_bool my_init(void)
-{
- if (my_init_done)
- return 0;
-
- my_init_done= 1;
-
- if (my_basic_init())
- return 1;
-
- if (my_thread_global_init())
- return 1;
-
- {
- DBUG_ENTER("my_init");
- DBUG_PROCESS((char*) (my_progname ? my_progname : "unknown"));
- my_win_init();
- DBUG_PRINT("exit", ("home: '%s'", home_dir));
-#ifdef __WIN__
- win32_init_tcp_ip();
-#endif
- DBUG_RETURN(0);
- }
-} /* my_init */
-
-
- /* End my_sys */
-
-void my_end(int infoflag)
-{
- /*
- this code is suboptimal to workaround a bug in
- Sun CC: Sun C++ 5.6 2004/06/02 for x86, and should not be
- optimized until this compiler is not in use anymore
- */
- FILE *info_file= DBUG_FILE;
- my_bool print_info= (info_file != stderr);
-
- if (!my_init_done)
- return;
-
- /*
- We do not use DBUG_ENTER here, as after cleanup DBUG is no longer
- operational, so we cannot use DBUG_RETURN.
- */
- DBUG_PRINT("info",("Shutting down: infoflag: %d print_info: %d",
- infoflag, print_info));
- if (!info_file)
- {
- info_file= stderr;
- print_info= 0;
- }
-
- if ((infoflag & MY_CHECK_ERROR) || print_info)
-
- { /* Test if some file is left open */
- if (my_file_opened | my_stream_opened)
- {
- char ebuff[512];
- my_snprintf(ebuff, sizeof(ebuff), EE(EE_OPEN_WARNING),
- my_file_opened, my_stream_opened);
- my_message_stderr(EE_OPEN_WARNING, ebuff, ME_BELL);
- DBUG_PRINT("error", ("%s", ebuff));
- my_print_open_files();
- }
- }
- free_charsets();
- my_error_unregister_all();
- my_once_free();
-
- if ((infoflag & MY_GIVE_INFO) || print_info)
- {
-#ifdef HAVE_GETRUSAGE
- struct rusage rus;
-#ifdef HAVE_purify
- /* Purify assumes that rus is uninitialized after getrusage call */
- bzero((char*) &rus, sizeof(rus));
-#endif
- if (!getrusage(RUSAGE_SELF, &rus))
- fprintf(info_file,"\n\
-User time %.2f, System time %.2f\n\
-Maximum resident set size %ld, Integral resident set size %ld\n\
-Non-physical pagefaults %ld, Physical pagefaults %ld, Swaps %ld\n\
-Blocks in %ld out %ld, Messages in %ld out %ld, Signals %ld\n\
-Voluntary context switches %ld, Involuntary context switches %ld\n",
- (rus.ru_utime.tv_sec * SCALE_SEC +
- rus.ru_utime.tv_usec / SCALE_USEC) / 100.0,
- (rus.ru_stime.tv_sec * SCALE_SEC +
- rus.ru_stime.tv_usec / SCALE_USEC) / 100.0,
- rus.ru_maxrss, rus.ru_idrss,
- rus.ru_minflt, rus.ru_majflt,
- rus.ru_nswap, rus.ru_inblock, rus.ru_oublock,
- rus.ru_msgsnd, rus.ru_msgrcv, rus.ru_nsignals,
- rus.ru_nvcsw, rus.ru_nivcsw);
-#endif
-#if defined(__WIN__) && defined(_MSC_VER)
- _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
- _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDERR );
- _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
- _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDERR );
- _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
- _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
- _CrtCheckMemory();
- _CrtDumpMemoryLeaks();
-#endif
- }
-
- if (!(infoflag & MY_DONT_FREE_DBUG))
- {
- DBUG_END(); /* Must be done before my_thread_end */
- }
-
- my_thread_end();
- my_thread_global_end();
-#if defined(SAFE_MUTEX)
- /*
- Check on destroying of mutexes. A few may be left that will get cleaned
- up by C++ destructors
- */
- safe_mutex_end((infoflag & (MY_GIVE_INFO | MY_CHECK_ERROR)) ? stderr :
- (FILE *) 0);
-#endif /* defined(SAFE_MUTEX) */
-
-#ifdef __WIN__
- if (have_tcpip)
- WSACleanup();
-#endif /* __WIN__ */
-
- my_init_done=0;
- my_basic_init_done= 0;
-} /* my_end */
-
-
-#ifdef __WIN__
-
-
-/*
- my_parameter_handler
-
- Invalid parameter handler we will use instead of the one "baked"
- into the CRT for MSC v8. This one just prints out what invalid
- parameter was encountered. By providing this routine, routines like
- lseek will return -1 when we expect them to instead of crash.
-*/
-
-void my_parameter_handler(const wchar_t * expression, const wchar_t * function,
- const wchar_t * file, unsigned int line,
- uintptr_t pReserved)
-{
- DBUG_PRINT("my",("Expression: %s function: %s file: %s, line: %d",
- expression, function, file, line));
-}
-
-
-#ifdef __MSVC_RUNTIME_CHECKS
-#include <rtcapi.h>
-
-/* Turn off runtime checks for 'handle_rtc_failure' */
-#pragma runtime_checks("", off)
-
-/*
- handle_rtc_failure
- Catch the RTC error and dump it to stderr
-*/
-
-int handle_rtc_failure(int err_type, const char *file, int line,
- const char* module, const char *format, ...)
-{
- va_list args;
- va_start(args, format);
- fprintf(stderr, "Error:");
- vfprintf(stderr, format, args);
- fprintf(stderr, " At %s:%d\n", file, line);
- va_end(args);
- (void) fflush(stderr);
-
- return 0; /* Error is handled */
-}
-#pragma runtime_checks("", restore)
-#endif
-
-#define OFFSET_TO_EPOC ((__int64) 134774 * 24 * 60 * 60 * 1000 * 1000 * 10)
-#define MS 10000000
-
-static void win_init_time(void)
-{
- /* The following is used by time functions */
- FILETIME ft;
- LARGE_INTEGER li, t_cnt;
-
- DBUG_ASSERT(sizeof(LARGE_INTEGER) == sizeof(query_performance_frequency));
-
- if (QueryPerformanceFrequency((LARGE_INTEGER *)&query_performance_frequency) == 0)
- query_performance_frequency= 0;
- else
- {
- GetSystemTimeAsFileTime(&ft);
- li.LowPart= ft.dwLowDateTime;
- li.HighPart= ft.dwHighDateTime;
- query_performance_offset= li.QuadPart-OFFSET_TO_EPOC;
- QueryPerformanceCounter(&t_cnt);
- query_performance_offset-= (t_cnt.QuadPart /
- query_performance_frequency * MS +
- t_cnt.QuadPart %
- query_performance_frequency * MS /
- query_performance_frequency);
- }
-}
-
-
-/*
- Open HKEY_LOCAL_MACHINE\SOFTWARE\MySQL and set any strings found
- there as environment variables
-*/
-static void win_init_registry(void)
-{
- HKEY key_handle;
-
- if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, (LPCTSTR)"SOFTWARE\\MySQL",
- 0, KEY_READ, &key_handle) == ERROR_SUCCESS)
- {
- LONG ret;
- DWORD index= 0;
- DWORD type;
- char key_name[256], key_data[1024];
- DWORD key_name_len= sizeof(key_name) - 1;
- DWORD key_data_len= sizeof(key_data) - 1;
-
- while ((ret= RegEnumValue(key_handle, index++,
- key_name, &key_name_len,
- NULL, &type, (LPBYTE)&key_data,
- &key_data_len)) != ERROR_NO_MORE_ITEMS)
- {
- char env_string[sizeof(key_name) + sizeof(key_data) + 2];
-
- if (ret == ERROR_MORE_DATA)
- {
- /* Registry value larger than 'key_data', skip it */
- DBUG_PRINT("error", ("Skipped registry value that was too large"));
- }
- else if (ret == ERROR_SUCCESS)
- {
- if (type == REG_SZ)
- {
- strxmov(env_string, key_name, "=", key_data, NullS);
-
- /* variable for putenv must be allocated ! */
- putenv(strdup(env_string)) ;
- }
- }
- else
- {
- /* Unhandled error, break out of loop */
- break;
- }
-
- key_name_len= sizeof(key_name) - 1;
- key_data_len= sizeof(key_data) - 1;
- }
-
- RegCloseKey(key_handle);
- }
-}
-
-
-static void my_win_init(void)
-{
- DBUG_ENTER("my_win_init");
-
-#if defined(_MSC_VER)
-#if _MSC_VER < 1300
- /*
- Clear the OS system variable TZ and avoid the 100% CPU usage
- Only for old versions of Visual C++
- */
- _putenv("TZ=");
-#endif
-#if _MSC_VER >= 1400
- /* this is required to make crt functions return -1 appropriately */
- _set_invalid_parameter_handler(my_parameter_handler);
-#endif
-#endif
-
-#ifdef __MSVC_RUNTIME_CHECKS
- /*
- Install handler to send RTC (Runtime Error Check) warnings
- to log file
- */
- _RTC_SetErrorFunc(handle_rtc_failure);
-#endif
-
- _tzset();
-
- win_init_time();
- win_init_registry();
-
- DBUG_VOID_RETURN;
-}
-
-
-/*------------------------------------------------------------------
- Name: CheckForTcpip| Desc: checks if tcpip has been installed on system
- According to Microsoft Developers documentation the first registry
- entry should be enough to check if TCP/IP is installed, but as expected
- this doesn't work on all Win32 machines :(
-------------------------------------------------------------------*/
-
-#define TCPIPKEY "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters"
-#define WINSOCK2KEY "SYSTEM\\CurrentControlSet\\Services\\Winsock2\\Parameters"
-#define WINSOCKKEY "SYSTEM\\CurrentControlSet\\Services\\Winsock\\Parameters"
-
-static my_bool win32_have_tcpip(void)
-{
- HKEY hTcpipRegKey;
- if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, TCPIPKEY, 0, KEY_READ,
- &hTcpipRegKey) != ERROR_SUCCESS)
- {
- if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, WINSOCK2KEY, 0, KEY_READ,
- &hTcpipRegKey) != ERROR_SUCCESS)
- {
- if (RegOpenKeyEx ( HKEY_LOCAL_MACHINE, WINSOCKKEY, 0, KEY_READ,
- &hTcpipRegKey) != ERROR_SUCCESS)
- if (!getenv("HAVE_TCPIP") || have_tcpip) /* Provide a workaround */
- return (FALSE);
- }
- }
- RegCloseKey ( hTcpipRegKey);
- return (TRUE);
-}
-
-
-static my_bool win32_init_tcp_ip()
-{
- if (win32_have_tcpip())
- {
- WORD wVersionRequested = MAKEWORD( 2, 2 );
- WSADATA wsaData;
- /* Be a good citizen: maybe another lib has already initialised
- sockets, so dont clobber them unless necessary */
- if (WSAStartup( wVersionRequested, &wsaData ))
- {
- /* Load failed, maybe because of previously loaded
- incompatible version; try again */
- WSACleanup( );
- if (!WSAStartup( wVersionRequested, &wsaData ))
- have_tcpip=1;
- }
- else
- {
- if (wsaData.wVersion != wVersionRequested)
- {
- /* Version is no good, try again */
- WSACleanup( );
- if (!WSAStartup( wVersionRequested, &wsaData ))
- have_tcpip=1;
- }
- else
- have_tcpip=1;
- }
- }
- return(0);
-}
-#endif /* __WIN__ */
-
-#ifdef HAVE_PSI_INTERFACE
-
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
-PSI_mutex_key key_my_file_info_mutex;
-#endif /* !defined(HAVE_PREAD) && !defined(_WIN32) */
-
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
-PSI_mutex_key key_LOCK_localtime_r;
-#endif /* !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R) */
-
-#ifndef HAVE_GETHOSTBYNAME_R
-PSI_mutex_key key_LOCK_gethostbyname_r;
-#endif /* HAVE_GETHOSTBYNAME_R */
-
-PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock,
- key_IO_CACHE_SHARE_mutex, key_KEY_CACHE_cache_lock, key_LOCK_alarm,
- key_my_thread_var_mutex, key_THR_LOCK_charset, key_THR_LOCK_heap,
- key_THR_LOCK_isam, key_THR_LOCK_lock, key_THR_LOCK_malloc,
- key_THR_LOCK_mutex, key_THR_LOCK_myisam, key_THR_LOCK_net,
- key_THR_LOCK_open, key_THR_LOCK_threads, key_THR_LOCK_time,
- key_TMPDIR_mutex, key_THR_LOCK_myisam_mmap;
-
-static PSI_mutex_info all_mysys_mutexes[]=
-{
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
- { &key_my_file_info_mutex, "st_my_file_info:mutex", 0},
-#endif /* !defined(HAVE_PREAD) && !defined(_WIN32) */
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
- { &key_LOCK_localtime_r, "LOCK_localtime_r", PSI_FLAG_GLOBAL},
-#endif /* !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R) */
-#ifndef HAVE_GETHOSTBYNAME_R
- { &key_LOCK_gethostbyname_r, "LOCK_gethostbyname_r", PSI_FLAG_GLOBAL},
-#endif /* HAVE_GETHOSTBYNAME_R */
- { &key_BITMAP_mutex, "BITMAP::mutex", 0},
- { &key_IO_CACHE_append_buffer_lock, "IO_CACHE::append_buffer_lock", 0},
- { &key_IO_CACHE_SHARE_mutex, "IO_CACHE::SHARE_mutex", 0},
- { &key_KEY_CACHE_cache_lock, "KEY_CACHE::cache_lock", 0},
- { &key_LOCK_alarm, "LOCK_alarm", PSI_FLAG_GLOBAL},
- { &key_my_thread_var_mutex, "my_thread_var::mutex", 0},
- { &key_THR_LOCK_charset, "THR_LOCK_charset", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_heap, "THR_LOCK_heap", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_isam, "THR_LOCK_isam", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_lock, "THR_LOCK_lock", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_malloc, "THR_LOCK_malloc", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_mutex, "THR_LOCK::mutex", 0},
- { &key_THR_LOCK_myisam, "THR_LOCK_myisam", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_net, "THR_LOCK_net", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_open, "THR_LOCK_open", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_threads, "THR_LOCK_threads", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_time, "THR_LOCK_time", PSI_FLAG_GLOBAL},
- { &key_TMPDIR_mutex, "TMPDIR_mutex", PSI_FLAG_GLOBAL},
- { &key_THR_LOCK_myisam_mmap, "THR_LOCK_myisam_mmap", PSI_FLAG_GLOBAL}
-};
-
-PSI_cond_key key_COND_alarm, key_IO_CACHE_SHARE_cond,
- key_IO_CACHE_SHARE_cond_writer, key_my_thread_var_suspend,
- key_THR_COND_threads;
-
-static PSI_cond_info all_mysys_conds[]=
-{
- { &key_COND_alarm, "COND_alarm", PSI_FLAG_GLOBAL},
- { &key_IO_CACHE_SHARE_cond, "IO_CACHE_SHARE::cond", 0},
- { &key_IO_CACHE_SHARE_cond_writer, "IO_CACHE_SHARE::cond_writer", 0},
- { &key_my_thread_var_suspend, "my_thread_var::suspend", 0},
- { &key_THR_COND_threads, "THR_COND_threads", 0}
-};
-
-#ifdef USE_ALARM_THREAD
-PSI_thread_key key_thread_alarm;
-
-static PSI_thread_info all_mysys_threads[]=
-{
- { &key_thread_alarm, "alarm", PSI_FLAG_GLOBAL}
-};
-#endif /* USE_ALARM_THREAD */
-
-#ifdef HUGETLB_USE_PROC_MEMINFO
-PSI_file_key key_file_proc_meminfo;
-#endif /* HUGETLB_USE_PROC_MEMINFO */
-PSI_file_key key_file_charset, key_file_cnf;
-
-static PSI_file_info all_mysys_files[]=
-{
-#ifdef HUGETLB_USE_PROC_MEMINFO
- { &key_file_proc_meminfo, "proc_meminfo", 0},
-#endif /* HUGETLB_USE_PROC_MEMINFO */
- { &key_file_charset, "charset", 0},
- { &key_file_cnf, "cnf", 0}
-};
-
-void my_init_mysys_psi_keys()
-{
- const char* category= "mysys";
- int count;
-
- if (PSI_server == NULL)
- return;
-
- count= sizeof(all_mysys_mutexes)/sizeof(all_mysys_mutexes[0]);
- PSI_server->register_mutex(category, all_mysys_mutexes, count);
-
- count= sizeof(all_mysys_conds)/sizeof(all_mysys_conds[0]);
- PSI_server->register_cond(category, all_mysys_conds, count);
-
-#ifdef USE_ALARM_THREAD
- count= sizeof(all_mysys_threads)/sizeof(all_mysys_threads[0]);
- PSI_server->register_thread(category, all_mysys_threads, count);
-#endif /* USE_ALARM_THREAD */
-
- count= sizeof(all_mysys_files)/sizeof(all_mysys_files[0]);
- PSI_server->register_file(category, all_mysys_files, count);
-}
-#endif /* HAVE_PSI_INTERFACE */
-
diff --git a/dep/mysqllite/mysys/my_largepage.c b/dep/mysqllite/mysys/my_largepage.c
deleted file mode 100644
index 9f5ab01a2b7..00000000000
--- a/dep/mysqllite/mysys/my_largepage.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Copyright (C) 2004 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-#ifdef HAVE_LARGE_PAGES
-
-#ifdef HAVE_SYS_IPC_H
-#include <sys/ipc.h>
-#endif
-
-#ifdef HAVE_SYS_SHM_H
-#include <sys/shm.h>
-#endif
-
-static uint my_get_large_page_size_int(void);
-static uchar* my_large_malloc_int(size_t size, myf my_flags);
-static my_bool my_large_free_int(uchar* ptr);
-
-/* Gets the size of large pages from the OS */
-
-uint my_get_large_page_size(void)
-{
- uint size;
- DBUG_ENTER("my_get_large_page_size");
-
- if (!(size = my_get_large_page_size_int()))
- fprintf(stderr, "Warning: Failed to determine large page size\n");
-
- DBUG_RETURN(size);
-}
-
-/*
- General large pages allocator.
- Tries to allocate memory from large pages pool and falls back to
- my_malloc_lock() in case of failure
-*/
-
-uchar* my_large_malloc(size_t size, myf my_flags)
-{
- uchar* ptr;
- DBUG_ENTER("my_large_malloc");
-
- if (my_use_large_pages && my_large_page_size)
- {
- if ((ptr = my_large_malloc_int(size, my_flags)) != NULL)
- DBUG_RETURN(ptr);
- if (my_flags & MY_WME)
- fprintf(stderr, "Warning: Using conventional memory pool\n");
- }
-
- DBUG_RETURN(my_malloc_lock(size, my_flags));
-}
-
-/*
- General large pages deallocator.
- Tries to deallocate memory as if it was from large pages pool and falls back
- to my_free_lock() in case of failure
- */
-
-void my_large_free(uchar* ptr)
-{
- DBUG_ENTER("my_large_free");
-
- /*
- my_large_free_int() can only fail if ptr was not allocated with
- my_large_malloc_int(), i.e. my_malloc_lock() was used so we should free it
- with my_free_lock()
- */
- if (!my_use_large_pages || !my_large_page_size || !my_large_free_int(ptr))
- my_free_lock(ptr);
-
- DBUG_VOID_RETURN;
-}
-
-#ifdef HUGETLB_USE_PROC_MEMINFO
-/* Linux-specific function to determine the size of large pages */
-
-uint my_get_large_page_size_int(void)
-{
- MYSQL_FILE *f;
- uint size = 0;
- char buf[256];
- DBUG_ENTER("my_get_large_page_size_int");
-
- if (!(f= mysql_file_fopen(key_file_proc_meminfo, "/proc/meminfo",
- O_RDONLY, MYF(MY_WME))))
- goto finish;
-
- while (mysql_file_fgets(buf, sizeof(buf), f))
- if (sscanf(buf, "Hugepagesize: %u kB", &size))
- break;
-
- mysql_file_fclose(f, MYF(MY_WME));
-
-finish:
- DBUG_RETURN(size * 1024);
-}
-#endif /* HUGETLB_USE_PROC_MEMINFO */
-
-#if HAVE_DECL_SHM_HUGETLB
-/* Linux-specific large pages allocator */
-
-uchar* my_large_malloc_int(size_t size, myf my_flags)
-{
- int shmid;
- uchar* ptr;
- struct shmid_ds buf;
- DBUG_ENTER("my_large_malloc_int");
-
- /* Align block size to my_large_page_size */
- size= MY_ALIGN(size, (size_t) my_large_page_size);
-
- shmid = shmget(IPC_PRIVATE, size, SHM_HUGETLB | SHM_R | SHM_W);
- if (shmid < 0)
- {
- if (my_flags & MY_WME)
- fprintf(stderr,
- "Warning: Failed to allocate %lu bytes from HugeTLB memory."
- " errno %d\n", (ulong) size, errno);
-
- DBUG_RETURN(NULL);
- }
-
- ptr = (uchar*) shmat(shmid, NULL, 0);
- if (ptr == (uchar *) -1)
- {
- if (my_flags& MY_WME)
- fprintf(stderr, "Warning: Failed to attach shared memory segment,"
- " errno %d\n", errno);
- shmctl(shmid, IPC_RMID, &buf);
-
- DBUG_RETURN(NULL);
- }
-
- /*
- Remove the shared memory segment so that it will be automatically freed
- after memory is detached or process exits
- */
- shmctl(shmid, IPC_RMID, &buf);
-
- DBUG_RETURN(ptr);
-}
-
-/* Linux-specific large pages deallocator */
-
-my_bool my_large_free_int(uchar *ptr)
-{
- DBUG_ENTER("my_large_free_int");
- DBUG_RETURN(shmdt(ptr) == 0);
-}
-#endif /* HAVE_DECL_SHM_HUGETLB */
-
-#endif /* HAVE_LARGE_PAGES */
diff --git a/dep/mysqllite/mysys/my_lib.c b/dep/mysqllite/mysys/my_lib.c
deleted file mode 100644
index 06f9521a664..00000000000
--- a/dep/mysqllite/mysys/my_lib.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* TODO: check for overun of memory for names. */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <my_dir.h> /* Structs used by my_dir,includes sys/types */
-#include "mysys_err.h"
-#if defined(HAVE_DIRENT_H)
-# include <dirent.h>
-# define NAMLEN(dirent) strlen((dirent)->d_name)
-#else
-# define dirent direct
-# define NAMLEN(dirent) (dirent)->d_namlen
-# if defined(HAVE_SYS_NDIR_H)
-# include <sys/ndir.h>
-# endif
-# if defined(HAVE_SYS_DIR_H)
-# include <sys/dir.h>
-# endif
-# if defined(HAVE_NDIR_H)
-# include <ndir.h>
-# endif
-# if defined(_WIN32)
-# ifdef __BORLANDC__
-# include <dir.h>
-# endif
-# endif
-#endif
-
-#if defined(HAVE_READDIR_R)
-#define READDIR(A,B,C) ((errno=readdir_r(A,B,&C)) != 0 || !C)
-#else
-#define READDIR(A,B,C) (!(C=readdir(A)))
-#endif
-
-/*
- We are assuming that directory we are reading is either has less than
- 100 files and so can be read in one initial chunk or has more than 1000
- files and so big increment are suitable.
-*/
-#define ENTRIES_START_SIZE (8192/sizeof(FILEINFO))
-#define ENTRIES_INCREMENT (65536/sizeof(FILEINFO))
-#define NAMES_START_SIZE 32768
-
-
-static int comp_names(struct fileinfo *a,struct fileinfo *b);
-
-
- /* We need this because program don't know with malloc we used */
-
-void my_dirend(MY_DIR *buffer)
-{
- DBUG_ENTER("my_dirend");
- if (buffer)
- {
- delete_dynamic((DYNAMIC_ARRAY*)((char*)buffer +
- ALIGN_SIZE(sizeof(MY_DIR))));
- free_root((MEM_ROOT*)((char*)buffer + ALIGN_SIZE(sizeof(MY_DIR)) +
- ALIGN_SIZE(sizeof(DYNAMIC_ARRAY))), MYF(0));
- my_free(buffer);
- }
- DBUG_VOID_RETURN;
-} /* my_dirend */
-
-
- /* Compare in sort of filenames */
-
-static int comp_names(struct fileinfo *a, struct fileinfo *b)
-{
- return (strcmp(a->name,b->name));
-} /* comp_names */
-
-
-#if !defined(_WIN32)
-
-MY_DIR *my_dir(const char *path, myf MyFlags)
-{
- char *buffer;
- MY_DIR *result= 0;
- FILEINFO finfo;
- DYNAMIC_ARRAY *dir_entries_storage;
- MEM_ROOT *names_storage;
- DIR *dirp;
- struct dirent *dp;
- char tmp_path[FN_REFLEN+1],*tmp_file;
- char dirent_tmp[sizeof(struct dirent)+_POSIX_PATH_MAX+1];
-
- DBUG_ENTER("my_dir");
- DBUG_PRINT("my",("path: '%s' MyFlags: %d",path,MyFlags));
-
-#if !defined(HAVE_READDIR_R)
- mysql_mutex_lock(&THR_LOCK_open);
-#endif
-
- dirp = opendir(directory_file_name(tmp_path,(char *) path));
-#if defined(__amiga__)
- if ((dirp->dd_fd) < 0) /* Directory doesn't exists */
- goto error;
-#endif
- if (dirp == NULL ||
- ! (buffer= my_malloc(ALIGN_SIZE(sizeof(MY_DIR)) +
- ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)) +
- sizeof(MEM_ROOT), MyFlags)))
- goto error;
-
- dir_entries_storage= (DYNAMIC_ARRAY*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)));
- names_storage= (MEM_ROOT*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)) +
- ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)));
-
- if (my_init_dynamic_array(dir_entries_storage, sizeof(FILEINFO),
- ENTRIES_START_SIZE, ENTRIES_INCREMENT))
- {
- my_free(buffer);
- goto error;
- }
- init_alloc_root(names_storage, NAMES_START_SIZE, NAMES_START_SIZE);
-
- /* MY_DIR structure is allocated and completly initialized at this point */
- result= (MY_DIR*)buffer;
-
- tmp_file=strend(tmp_path);
-
- dp= (struct dirent*) dirent_tmp;
-
- while (!(READDIR(dirp,(struct dirent*) dirent_tmp,dp)))
- {
- if (!(finfo.name= strdup_root(names_storage, dp->d_name)))
- goto error;
-
- if (MyFlags & MY_WANT_STAT)
- {
- if (!(finfo.mystat= (MY_STAT*)alloc_root(names_storage,
- sizeof(MY_STAT))))
- goto error;
-
- bzero(finfo.mystat, sizeof(MY_STAT));
- (void) strmov(tmp_file,dp->d_name);
- (void) my_stat(tmp_path, finfo.mystat, MyFlags);
- if (!(finfo.mystat->st_mode & MY_S_IREAD))
- continue;
- }
- else
- finfo.mystat= NULL;
-
- if (push_dynamic(dir_entries_storage, (uchar*)&finfo))
- goto error;
- }
-
- (void) closedir(dirp);
-#if !defined(HAVE_READDIR_R)
- mysql_mutex_unlock(&THR_LOCK_open);
-#endif
- result->dir_entry= (FILEINFO *)dir_entries_storage->buffer;
- result->number_off_files= dir_entries_storage->elements;
-
- if (!(MyFlags & MY_DONT_SORT))
- my_qsort((void *) result->dir_entry, result->number_off_files,
- sizeof(FILEINFO), (qsort_cmp) comp_names);
- DBUG_RETURN(result);
-
- error:
-#if !defined(HAVE_READDIR_R)
- mysql_mutex_unlock(&THR_LOCK_open);
-#endif
- my_errno=errno;
- if (dirp)
- (void) closedir(dirp);
- my_dirend(result);
- if (MyFlags & (MY_FAE | MY_WME))
- my_error(EE_DIR,MYF(ME_BELL+ME_WAITTANG),path,my_errno);
- DBUG_RETURN((MY_DIR *) NULL);
-} /* my_dir */
-
-
-/*
- * Convert from directory name to filename.
- * On UNIX, it's simple: just make sure there is a terminating /
-
- * Returns pointer to dst;
- */
-
-char * directory_file_name (char * dst, const char *src)
-{
- /* Process as Unix format: just remove test the final slash. */
- char *end;
-
- if (src[0] == 0)
- src= (char*) "."; /* Use empty as current */
- end=strmov(dst, src);
- if (end[-1] != FN_LIBCHAR)
- {
- end[0]=FN_LIBCHAR; /* Add last '/' */
- end[1]='\0';
- }
- return dst;
-}
-
-#else
-
-/*
-*****************************************************************************
-** Read long filename using windows rutines
-*****************************************************************************
-*/
-
-MY_DIR *my_dir(const char *path, myf MyFlags)
-{
- char *buffer;
- MY_DIR *result= 0;
- FILEINFO finfo;
- DYNAMIC_ARRAY *dir_entries_storage;
- MEM_ROOT *names_storage;
-#ifdef __BORLANDC__
- struct ffblk find;
-#else
- struct _finddata_t find;
-#endif
- ushort mode;
- char tmp_path[FN_REFLEN],*tmp_file,attrib;
-#ifdef _WIN64
- __int64 handle;
-#else
- long handle;
-#endif
- DBUG_ENTER("my_dir");
- DBUG_PRINT("my",("path: '%s' stat: %d MyFlags: %d",path,MyFlags));
-
- /* Put LIB-CHAR as last path-character if not there */
- tmp_file=tmp_path;
- if (!*path)
- *tmp_file++ ='.'; /* From current dir */
- tmp_file= strnmov(tmp_file, path, FN_REFLEN-5);
- if (tmp_file[-1] == FN_DEVCHAR)
- *tmp_file++= '.'; /* From current dev-dir */
- if (tmp_file[-1] != FN_LIBCHAR)
- *tmp_file++ =FN_LIBCHAR;
- tmp_file[0]='*'; /* Windows needs this !??? */
- tmp_file[1]='.';
- tmp_file[2]='*';
- tmp_file[3]='\0';
-
- if (!(buffer= my_malloc(ALIGN_SIZE(sizeof(MY_DIR)) +
- ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)) +
- sizeof(MEM_ROOT), MyFlags)))
- goto error;
-
- dir_entries_storage= (DYNAMIC_ARRAY*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)));
- names_storage= (MEM_ROOT*)(buffer + ALIGN_SIZE(sizeof(MY_DIR)) +
- ALIGN_SIZE(sizeof(DYNAMIC_ARRAY)));
-
- if (my_init_dynamic_array(dir_entries_storage, sizeof(FILEINFO),
- ENTRIES_START_SIZE, ENTRIES_INCREMENT))
- {
- my_free(buffer);
- goto error;
- }
- init_alloc_root(names_storage, NAMES_START_SIZE, NAMES_START_SIZE);
-
- /* MY_DIR structure is allocated and completly initialized at this point */
- result= (MY_DIR*)buffer;
-
-#ifdef __BORLANDC__
- if ((handle= findfirst(tmp_path,&find,0)) == -1L)
-#else
- if ((handle=_findfirst(tmp_path,&find)) == -1L)
-#endif
- {
- DBUG_PRINT("info", ("findfirst returned error, errno: %d", errno));
- if (errno != EINVAL)
- goto error;
- /*
- Could not read the directory, no read access.
- Probably because by "chmod -r".
- continue and return zero files in dir
- */
- }
- else
- {
-
- do
- {
-#ifdef __BORLANDC__
- attrib= find.ff_attrib;
-#else
- attrib= find.attrib;
- /*
- Do not show hidden and system files which Windows sometimes create.
- Note. Because Borland's findfirst() is called with the third
- argument = 0 hidden/system files are excluded from the search.
- */
- if (attrib & (_A_HIDDEN | _A_SYSTEM))
- continue;
-#endif
-#ifdef __BORLANDC__
- if (!(finfo.name= strdup_root(names_storage, find.ff_name)))
- goto error;
-#else
- if (!(finfo.name= strdup_root(names_storage, find.name)))
- goto error;
-#endif
- if (MyFlags & MY_WANT_STAT)
- {
- if (!(finfo.mystat= (MY_STAT*)alloc_root(names_storage,
- sizeof(MY_STAT))))
- goto error;
-
- bzero(finfo.mystat, sizeof(MY_STAT));
-#ifdef __BORLANDC__
- finfo.mystat->st_size=find.ff_fsize;
-#else
- finfo.mystat->st_size=find.size;
-#endif
- mode= MY_S_IREAD;
- if (!(attrib & _A_RDONLY))
- mode|= MY_S_IWRITE;
- if (attrib & _A_SUBDIR)
- mode|= MY_S_IFDIR;
- finfo.mystat->st_mode= mode;
-#ifdef __BORLANDC__
- finfo.mystat->st_mtime= ((uint32) find.ff_ftime);
-#else
- finfo.mystat->st_mtime= ((uint32) find.time_write);
-#endif
- }
- else
- finfo.mystat= NULL;
-
- if (push_dynamic(dir_entries_storage, (uchar*)&finfo))
- goto error;
- }
-#ifdef __BORLANDC__
- while (findnext(&find) == 0);
-#else
- while (_findnext(handle,&find) == 0);
-
- _findclose(handle);
-#endif
- }
-
- result->dir_entry= (FILEINFO *)dir_entries_storage->buffer;
- result->number_off_files= dir_entries_storage->elements;
-
- if (!(MyFlags & MY_DONT_SORT))
- my_qsort((void *) result->dir_entry, result->number_off_files,
- sizeof(FILEINFO), (qsort_cmp) comp_names);
- DBUG_PRINT("exit", ("found %d files", result->number_off_files));
- DBUG_RETURN(result);
-error:
- my_errno=errno;
-#ifndef __BORLANDC__
- if (handle != -1)
- _findclose(handle);
-#endif
- my_dirend(result);
- if (MyFlags & MY_FAE+MY_WME)
- my_error(EE_DIR,MYF(ME_BELL+ME_WAITTANG),path,errno);
- DBUG_RETURN((MY_DIR *) NULL);
-} /* my_dir */
-
-#endif /* _WIN32 */
-
-/****************************************************************************
-** File status
-** Note that MY_STAT is assumed to be same as struct stat
-****************************************************************************/
-
-
-int my_fstat(File Filedes, MY_STAT *stat_area,
- myf MyFlags __attribute__((unused)))
-{
- DBUG_ENTER("my_fstat");
- DBUG_PRINT("my",("fd: %d MyFlags: %d", Filedes, MyFlags));
-#ifdef _WIN32
- DBUG_RETURN(my_win_fstat(Filedes, stat_area));
-#else
- DBUG_RETURN(fstat(Filedes, (struct stat *) stat_area));
-#endif
-}
-
-
-MY_STAT *my_stat(const char *path, MY_STAT *stat_area, myf my_flags)
-{
- int m_used;
- DBUG_ENTER("my_stat");
- DBUG_PRINT("my", ("path: '%s' stat_area: 0x%lx MyFlags: %d", path,
- (long) stat_area, my_flags));
-
- if ((m_used= (stat_area == NULL)))
- if (!(stat_area= (MY_STAT *) my_malloc(sizeof(MY_STAT), my_flags)))
- goto error;
-#ifndef _WIN32
- if (! stat((char *) path, (struct stat *) stat_area) )
- DBUG_RETURN(stat_area);
-#else
- if (! my_win_stat(path, stat_area) )
- DBUG_RETURN(stat_area);
-#endif
- DBUG_PRINT("error",("Got errno: %d from stat", errno));
- my_errno= errno;
- if (m_used) /* Free if new area */
- my_free(stat_area);
-
-error:
- if (my_flags & (MY_FAE+MY_WME))
- {
- my_error(EE_STAT, MYF(ME_BELL+ME_WAITTANG),path,my_errno);
- DBUG_RETURN((MY_STAT *) NULL);
- }
- DBUG_RETURN((MY_STAT *) NULL);
-} /* my_stat */
diff --git a/dep/mysqllite/mysys/my_libwrap.c b/dep/mysqllite/mysys/my_libwrap.c
deleted file mode 100644
index e72334ba806..00000000000
--- a/dep/mysqllite/mysys/my_libwrap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This is needed to be able to compile with original libwrap header
- files that don't have the prototypes
-*/
-
-#include <my_global.h>
-#include <my_libwrap.h>
-
-#ifdef HAVE_LIBWRAP
-
-void my_fromhost(struct request_info *req)
-{
- fromhost(req);
-}
-
-int my_hosts_access(struct request_info *req)
-{
- return hosts_access(req);
-}
-
-char *my_eval_client(struct request_info *req)
-{
- return eval_client(req);
-}
-
-#endif /* HAVE_LIBWRAP */
diff --git a/dep/mysqllite/mysys/my_lock.c b/dep/mysqllite/mysys/my_lock.c
deleted file mode 100644
index 49c94ea838c..00000000000
--- a/dep/mysqllite/mysys/my_lock.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <errno.h>
-#undef MY_HOW_OFTEN_TO_ALARM
-#define MY_HOW_OFTEN_TO_ALARM ((int) my_time_to_wait_for_lock)
-#ifdef NO_ALARM_LOOP
-#undef NO_ALARM_LOOP
-#endif
-#include <my_alarm.h>
-
-#ifdef _WIN32
-#define WIN_LOCK_INFINITE -1
-#define WIN_LOCK_SLEEP_MILLIS 100
-
-static int win_lock(File fd, int locktype, my_off_t start, my_off_t length,
- int timeout_sec)
-{
- LARGE_INTEGER liOffset,liLength;
- DWORD dwFlags;
- OVERLAPPED ov= {0};
- HANDLE hFile= (HANDLE)my_get_osfhandle(fd);
- DWORD lastError= 0;
- int i;
- int timeout_millis= timeout_sec * 1000;
-
- DBUG_ENTER("win_lock");
-
- liOffset.QuadPart= start;
- liLength.QuadPart= length;
-
- ov.Offset= liOffset.LowPart;
- ov.OffsetHigh= liOffset.HighPart;
-
- if (locktype == F_UNLCK)
- {
- if (UnlockFileEx(hFile, 0, liLength.LowPart, liLength.HighPart, &ov))
- DBUG_RETURN(0);
- /*
- For compatibility with fcntl implementation, ignore error,
- if region was not locked
- */
- if (GetLastError() == ERROR_NOT_LOCKED)
- {
- SetLastError(0);
- DBUG_RETURN(0);
- }
- goto error;
- }
- else if (locktype == F_RDLCK)
- /* read lock is mapped to a shared lock. */
- dwFlags= 0;
- else
- /* write lock is mapped to an exclusive lock. */
- dwFlags= LOCKFILE_EXCLUSIVE_LOCK;
-
- /*
- Drop old lock first to avoid double locking.
- During analyze of Bug#38133 (Myisamlog test fails on Windows)
- I met the situation that the program myisamlog locked the file
- exclusively, then additionally shared, then did one unlock, and
- then blocked on an attempt to lock it exclusively again.
- Unlocking before every lock fixed the problem.
- Note that this introduces a race condition. When the application
- wants to convert an exclusive lock into a shared one, it will now
- first unlock the file and then lock it shared. A waiting exclusive
- lock could step in here. For reasons described in Bug#38133 and
- Bug#41124 (Server hangs on Windows with --external-locking after
- INSERT...SELECT) and in the review thread at
- http://lists.mysql.com/commits/60721 it seems to be the better
- option than not to unlock here.
- If one day someone notices a way how to do file lock type changes
- on Windows without unlocking before taking the new lock, please
- change this code accordingly to fix the race condition.
- */
- if (!UnlockFileEx(hFile, 0, liLength.LowPart, liLength.HighPart, &ov) &&
- (GetLastError() != ERROR_NOT_LOCKED))
- goto error;
-
- if (timeout_sec == WIN_LOCK_INFINITE)
- {
- if (LockFileEx(hFile, dwFlags, 0, liLength.LowPart, liLength.HighPart, &ov))
- DBUG_RETURN(0);
- goto error;
- }
-
- dwFlags|= LOCKFILE_FAIL_IMMEDIATELY;
- timeout_millis= timeout_sec * 1000;
- /* Try lock in a loop, until the lock is acquired or timeout happens */
- for(i= 0; ;i+= WIN_LOCK_SLEEP_MILLIS)
- {
- if (LockFileEx(hFile, dwFlags, 0, liLength.LowPart, liLength.HighPart, &ov))
- DBUG_RETURN(0);
-
- if (GetLastError() != ERROR_LOCK_VIOLATION)
- goto error;
-
- if (i >= timeout_millis)
- break;
- Sleep(WIN_LOCK_SLEEP_MILLIS);
- }
-
- /* timeout */
- errno= EAGAIN;
- DBUG_RETURN(-1);
-
-error:
- my_osmaperr(GetLastError());
- DBUG_RETURN(-1);
-}
-#endif
-
-
-
-/*
- Lock a part of a file
-
- RETURN VALUE
- 0 Success
- -1 An error has occured and 'my_errno' is set
- to indicate the actual error code.
-*/
-
-int my_lock(File fd, int locktype, my_off_t start, my_off_t length,
- myf MyFlags)
-{
-#ifdef HAVE_FCNTL
- int value;
- ALARM_VARIABLES;
-#endif
-
- DBUG_ENTER("my_lock");
- DBUG_PRINT("my",("fd: %d Op: %d start: %ld Length: %ld MyFlags: %d",
- fd,locktype,(long) start,(long) length,MyFlags));
- if (my_disable_locking)
- DBUG_RETURN(0);
-
-#if defined(_WIN32)
- {
- int timeout_sec;
- if (MyFlags & MY_DONT_WAIT)
- timeout_sec= 0;
- else
- timeout_sec= WIN_LOCK_INFINITE;
-
- if (win_lock(fd, locktype, start, length, timeout_sec) == 0)
- DBUG_RETURN(0);
- }
-#else
-#if defined(HAVE_FCNTL)
- {
- struct flock lock;
-
- lock.l_type= (short) locktype;
- lock.l_whence= SEEK_SET;
- lock.l_start= (off_t) start;
- lock.l_len= (off_t) length;
-
- if (MyFlags & MY_DONT_WAIT)
- {
- if (fcntl(fd,F_SETLK,&lock) != -1) /* Check if we can lock */
- DBUG_RETURN(0); /* Ok, file locked */
- DBUG_PRINT("info",("Was locked, trying with alarm"));
- ALARM_INIT;
- while ((value=fcntl(fd,F_SETLKW,&lock)) && ! ALARM_TEST &&
- errno == EINTR)
- { /* Setup again so we don`t miss it */
- ALARM_REINIT;
- }
- ALARM_END;
- if (value != -1)
- DBUG_RETURN(0);
- if (errno == EINTR)
- errno=EAGAIN;
- }
- else if (fcntl(fd,F_SETLKW,&lock) != -1) /* Wait until a lock */
- DBUG_RETURN(0);
- }
-#else
- if (MyFlags & MY_SEEK_NOT_DONE)
- {
- if (my_seek(fd,start,MY_SEEK_SET,MYF(MyFlags & ~MY_SEEK_NOT_DONE))
- == MY_FILEPOS_ERROR)
- {
- /*
- If an error has occured in my_seek then we will already
- have an error code in my_errno; Just return error code.
- */
- DBUG_RETURN(-1);
- }
- }
- if (lockf(fd,locktype,length) != -1)
- DBUG_RETURN(0);
-#endif /* HAVE_FCNTL */
-#endif /* HAVE_LOCKING */
-
- /* We got an error. We don't want EACCES errors */
- my_errno=(errno == EACCES) ? EAGAIN : errno ? errno : -1;
-
- if (MyFlags & MY_WME)
- {
- if (locktype == F_UNLCK)
- my_error(EE_CANTUNLOCK,MYF(ME_BELL+ME_WAITTANG),my_errno);
- else
- my_error(EE_CANTLOCK,MYF(ME_BELL+ME_WAITTANG),my_errno);
- }
- DBUG_PRINT("error",("my_errno: %d (%d)",my_errno,errno));
- DBUG_RETURN(-1);
-} /* my_lock */
diff --git a/dep/mysqllite/mysys/my_lockmem.c b/dep/mysqllite/mysys/my_lockmem.c
deleted file mode 100644
index a37db6b2089..00000000000
--- a/dep/mysqllite/mysys/my_lockmem.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Alloc a block of locked memory */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <my_list.h>
-
-#ifdef HAVE_MLOCK
-#include <sys/mman.h>
-
-struct st_mem_list
-{
- LIST list;
- uchar *page;
- uint size;
-};
-
-LIST *mem_list;
-
-uchar *my_malloc_lock(uint size,myf MyFlags)
-{
- int success;
- uint pagesize=sysconf(_SC_PAGESIZE);
- uchar *ptr;
- struct st_mem_list *element;
- DBUG_ENTER("my_malloc_lock");
-
- size=((size-1) & ~(pagesize-1))+pagesize;
- if (!(ptr=memalign(pagesize,size)))
- {
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),size);
- DBUG_RETURN(0);
- }
- success = mlock((uchar*) ptr,size);
- if (success != 0 && geteuid() == 0)
- {
- DBUG_PRINT("warning",("Failed to lock memory. errno %d\n",
- errno));
- fprintf(stderr, "Warning: Failed to lock memory. errno %d\n",
- errno);
- }
- else
- {
- /* Add block in a list for munlock */
- if (!(element=(struct st_mem_list*) my_malloc(sizeof(*element),MyFlags)))
- {
- (void) munlock((uchar*) ptr,size);
- free(ptr);
- DBUG_RETURN(0);
- }
- element->list.data=(uchar*) element;
- element->page=ptr;
- element->size=size;
- mysql_mutex_lock(&THR_LOCK_malloc);
- mem_list=list_add(mem_list,&element->list);
- mysql_mutex_unlock(&THR_LOCK_malloc);
- }
- DBUG_RETURN(ptr);
-}
-
-
-void my_free_lock(uchar *ptr)
-{
- LIST *list;
- struct st_mem_list *element=0;
-
- mysql_mutex_lock(&THR_LOCK_malloc);
- for (list=mem_list ; list ; list=list->next)
- {
- element=(struct st_mem_list*) list->data;
- if (ptr == element->page)
- { /* Found locked mem */
- (void) munlock((uchar*) ptr,element->size);
- mem_list=list_delete(mem_list,list);
- break;
- }
- }
- mysql_mutex_unlock(&THR_LOCK_malloc);
- my_free(element);
- free(ptr); /* Free even if not locked */
-}
-
-#endif /* HAVE_MLOCK */
diff --git a/dep/mysqllite/mysys/my_malloc.c b/dep/mysqllite/mysys/my_malloc.c
deleted file mode 100644
index fc2dc98c3c5..00000000000
--- a/dep/mysqllite/mysys/my_malloc.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <m_string.h>
-
-/**
- Allocate a sized block of memory.
-
- @param size The size of the memory block in bytes.
- @param flags Failure action modifiers (bitmasks).
-
- @return A pointer to the allocated memory block, or NULL on failure.
-*/
-void *my_malloc(size_t size, myf my_flags)
-{
- void* point;
- DBUG_ENTER("my_malloc");
- DBUG_PRINT("my",("size: %lu my_flags: %d", (ulong) size, my_flags));
-
- /* Safety */
- if (!size)
- size=1;
-
- point= malloc(size);
- DBUG_EXECUTE_IF("simulate_out_of_memory",
- {
- free(point);
- point= NULL;
- });
-
- if (point == NULL)
- {
- my_errno=errno;
- if (my_flags & MY_FAE)
- error_handler_hook=fatal_error_handler_hook;
- if (my_flags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG+ME_NOREFRESH),size);
- DBUG_EXECUTE_IF("simulate_out_of_memory",
- DBUG_SET("-d,simulate_out_of_memory"););
- if (my_flags & MY_FAE)
- exit(1);
- }
- else if (my_flags & MY_ZEROFILL)
- bzero(point, size);
- DBUG_PRINT("exit",("ptr: %p", point));
- DBUG_RETURN(point);
-}
-
-
-/**
- @brief wrapper around realloc()
-
- @param oldpoint pointer to currently allocated area
- @param size new size requested, must be >0
- @param my_flags flags
-
- @note if size==0 realloc() may return NULL; my_realloc() treats this as an
- error which is not the intention of realloc()
-*/
-void *my_realloc(void *oldpoint, size_t size, myf my_flags)
-{
- void *point;
- DBUG_ENTER("my_realloc");
- DBUG_PRINT("my",("ptr: %p size: %lu my_flags: %d", oldpoint,
- (ulong) size, my_flags));
-
- DBUG_ASSERT(size > 0);
- if (!oldpoint && (my_flags & MY_ALLOW_ZERO_PTR))
- DBUG_RETURN(my_malloc(size, my_flags));
-#ifdef USE_HALLOC
- if (!(point = malloc(size)))
- {
- if (my_flags & MY_FREE_ON_ERROR)
- my_free(oldpoint);
- if (my_flags & MY_HOLD_ON_ERROR)
- DBUG_RETURN(oldpoint);
- my_errno=errno;
- if (my_flags & MY_FAE+MY_WME)
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),size);
- }
- else
- {
- memcpy(point,oldpoint,size);
- free(oldpoint);
- }
-#else
- if ((point= realloc(oldpoint, size)) == NULL)
- {
- if (my_flags & MY_FREE_ON_ERROR)
- my_free(oldpoint);
- if (my_flags & MY_HOLD_ON_ERROR)
- DBUG_RETURN(oldpoint);
- my_errno=errno;
- if (my_flags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG), size);
- }
-#endif
- DBUG_PRINT("exit",("ptr: %p", point));
- DBUG_RETURN(point);
-}
-
-
-/**
- Free memory allocated with my_malloc.
-
- @remark Relies on free being able to handle a NULL argument.
-
- @param ptr Pointer to the memory allocated by my_malloc.
-*/
-void my_free(void *ptr)
-{
- DBUG_ENTER("my_free");
- DBUG_PRINT("my",("ptr: %p", ptr));
- free(ptr);
- DBUG_VOID_RETURN;
-}
-
-
-void *my_memdup(const void *from, size_t length, myf my_flags)
-{
- void *ptr;
- if ((ptr= my_malloc(length,my_flags)) != 0)
- memcpy(ptr, from, length);
- return ptr;
-}
-
-
-char *my_strdup(const char *from, myf my_flags)
-{
- char *ptr;
- size_t length= strlen(from)+1;
- if ((ptr= (char*) my_malloc(length, my_flags)))
- memcpy(ptr, from, length);
- return ptr;
-}
-
-
-char *my_strndup(const char *from, size_t length, myf my_flags)
-{
- char *ptr;
- if ((ptr= (char*) my_malloc(length+1, my_flags)))
- {
- memcpy(ptr, from, length);
- ptr[length]= 0;
- }
- return ptr;
-}
-
diff --git a/dep/mysqllite/mysys/my_memmem.c b/dep/mysqllite/mysys/my_memmem.c
deleted file mode 100644
index c000f14bc66..00000000000
--- a/dep/mysqllite/mysys/my_memmem.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_string.h>
-
-/*
- my_memmem, port of a GNU extension.
-
- Returns a pointer to the beginning of the substring, needle, or NULL if the
- substring is not found in haystack.
-*/
-
-void *my_memmem(const void *haystack, size_t haystacklen,
- const void *needle, size_t needlelen)
-{
- const unsigned char *cursor;
- const unsigned char *last_possible_needle_location =
- (unsigned char *)haystack + haystacklen - needlelen;
-
- /* Easy answers */
- if (needlelen > haystacklen) return(NULL);
- if (needle == NULL) return(NULL);
- if (haystack == NULL) return(NULL);
- if (needlelen == 0) return(NULL);
- if (haystacklen == 0) return(NULL);
-
- for (cursor = haystack; cursor <= last_possible_needle_location; cursor++) {
- if (memcmp(needle, cursor, needlelen) == 0) {
- return((void *) cursor);
- }
- }
- return(NULL);
-}
-
-
-
-#ifdef MAIN
-#include <assert.h>
-
-int main(int argc, char *argv[]) {
- char haystack[10], needle[3];
-
- memmove(haystack, "0123456789", 10);
-
- memmove(needle, "no", 2);
- assert(my_memmem(haystack, 10, needle, 2) == NULL);
-
- memmove(needle, "345", 3);
- assert(my_memmem(haystack, 10, needle, 3) != NULL);
-
- memmove(needle, "789", 3);
- assert(my_memmem(haystack, 10, needle, 3) != NULL);
- assert(my_memmem(haystack, 9, needle, 3) == NULL);
-
- memmove(needle, "012", 3);
- assert(my_memmem(haystack, 10, needle, 3) != NULL);
- assert(my_memmem(NULL, 10, needle, 3) == NULL);
-
- assert(my_memmem(NULL, 10, needle, 3) == NULL);
- assert(my_memmem(haystack, 0, needle, 3) == NULL);
- assert(my_memmem(haystack, 10, NULL, 3) == NULL);
- assert(my_memmem(haystack, 10, needle, 0) == NULL);
-
- assert(my_memmem(haystack, 1, needle, 3) == NULL);
-
- printf("success\n");
- return(0);
-}
-
-#endif
diff --git a/dep/mysqllite/mysys/my_mess.c b/dep/mysqllite/mysys/my_mess.c
deleted file mode 100644
index 513afe39054..00000000000
--- a/dep/mysqllite/mysys/my_mess.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-void my_message_stderr(uint error __attribute__((unused)),
- const char *str, myf MyFlags)
-{
- DBUG_ENTER("my_message_stderr");
- DBUG_PRINT("enter",("message: %s",str));
- (void) fflush(stdout);
- if (MyFlags & ME_BELL)
- (void) fputc('\007', stderr);
- if (my_progname)
- {
- (void)fputs(my_progname,stderr); (void)fputs(": ",stderr);
- }
- (void)fputs(str,stderr);
- (void)fputc('\n',stderr);
- (void)fflush(stderr);
- DBUG_VOID_RETURN;
-}
diff --git a/dep/mysqllite/mysys/my_mkdir.c b/dep/mysqllite/mysys/my_mkdir.c
deleted file mode 100644
index 676c6c1cd51..00000000000
--- a/dep/mysqllite/mysys/my_mkdir.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef __WIN__
-#include <direct.h>
-#endif
-
-int my_mkdir(const char *dir, int Flags, myf MyFlags)
-{
- DBUG_ENTER("my_dir");
- DBUG_PRINT("enter",("dir: %s",dir));
-
-#if defined(__WIN__)
- if (mkdir((char*) dir))
-#else
- if (mkdir((char*) dir, Flags & my_umask_dir))
-#endif
- {
- my_errno=errno;
- DBUG_PRINT("error",("error %d when creating direcory %s",my_errno,dir));
- if (MyFlags & (MY_FFNF | MY_FAE | MY_WME))
- my_error(EE_CANT_MKDIR, MYF(ME_BELL+ME_WAITTANG), dir, my_errno);
- DBUG_RETURN(-1);
- }
- DBUG_RETURN(0);
-}
diff --git a/dep/mysqllite/mysys/my_mmap.c b/dep/mysqllite/mysys/my_mmap.c
deleted file mode 100644
index 82ee1562bc2..00000000000
--- a/dep/mysqllite/mysys/my_mmap.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-
-#ifdef HAVE_SYS_MMAN_H
-
-/*
- system msync() only syncs mmap'ed area to fs cache.
- fsync() is required to really sync to disc
-*/
-int my_msync(int fd, void *addr, size_t len, int flags)
-{
- msync(addr, len, flags);
- return my_sync(fd, MYF(0));
-}
-
-#elif defined(_WIN32)
-
-static SECURITY_ATTRIBUTES mmap_security_attributes=
- {sizeof(SECURITY_ATTRIBUTES), 0, TRUE};
-
-void *my_mmap(void *addr, size_t len, int prot,
- int flags, File fd, my_off_t offset)
-{
- HANDLE hFileMap;
- LPVOID ptr;
- HANDLE hFile= (HANDLE)my_get_osfhandle(fd);
- DBUG_ENTER("my_mmap");
- DBUG_PRINT("mysys", ("map fd: %d", fd));
-
- if (hFile == INVALID_HANDLE_VALUE)
- DBUG_RETURN(MAP_FAILED);
-
- hFileMap=CreateFileMapping(hFile, &mmap_security_attributes,
- PAGE_READWRITE, 0, (DWORD) len, NULL);
- if (hFileMap == 0)
- DBUG_RETURN(MAP_FAILED);
-
- ptr=MapViewOfFile(hFileMap,
- prot & PROT_WRITE ? FILE_MAP_WRITE : FILE_MAP_READ,
- (DWORD)(offset >> 32), (DWORD)offset, len);
-
- /*
- MSDN explicitly states that it's possible to close File Mapping Object
- even when a view is not unmapped - then the object will be held open
- implicitly until unmap, as every view stores internally a handler of
- a corresponding File Mapping Object
- */
- CloseHandle(hFileMap);
-
- if (ptr)
- {
- DBUG_PRINT("mysys", ("mapped addr: %p", ptr));
- DBUG_RETURN(ptr);
- }
-
- DBUG_RETURN(MAP_FAILED);
-}
-
-int my_munmap(void *addr, size_t len)
-{
- DBUG_ENTER("my_munmap");
- DBUG_PRINT("mysys", ("unmap addr: %p", addr));
- DBUG_RETURN(UnmapViewOfFile(addr) ? 0 : -1);
-}
-
-int my_msync(int fd, void *addr, size_t len, int flags)
-{
- return FlushViewOfFile(addr, len) ? 0 : -1;
-}
-
-#else
-#warning "no mmap!"
-#endif
-
diff --git a/dep/mysqllite/mysys/my_new.cc b/dep/mysqllite/mysys/my_new.cc
deleted file mode 100644
index 7da54ffac87..00000000000
--- a/dep/mysqllite/mysys/my_new.cc
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This is a replacement of new/delete operators to be used when compiling
- with gcc 3.0.x to avoid including libstdc++
-*/
-
-#include "mysys_priv.h"
-
-#ifdef USE_MYSYS_NEW
-
-void *operator new (size_t sz)
-{
- return (void *) malloc (sz ? sz : 1);
-}
-
-void *operator new[] (size_t sz)
-{
- return (void *) malloc (sz ? sz : 1);
-}
-
-void operator delete (void *ptr)
-{
- if (ptr)
- free(ptr);
-}
-
-void operator delete[] (void *ptr) throw ()
-{
- if (ptr)
- free(ptr);
-}
-
-C_MODE_START
-
-int __cxa_pure_virtual()
-{
- assert(! "Aborted: pure virtual method called.");
- return 0;
-}
-
-C_MODE_END
-
-#endif /* USE_MYSYS_NEW */
-
diff --git a/dep/mysqllite/mysys/my_once.c b/dep/mysqllite/mysys/my_once.c
deleted file mode 100644
index 32d07802028..00000000000
--- a/dep/mysqllite/mysys/my_once.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Not MT-SAFE */
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include "mysys_err.h"
-#include <m_string.h>
-
-/*
- Alloc for things we don't nend to free run-time (that only
- should be free'd on exit)
-
- SYNOPSIS
- my_once_alloc()
- Size
- MyFlags
-
- NOTES
- No DBUG_ENTER... here to get smaller dbug-startup
-*/
-
-void* my_once_alloc(size_t Size, myf MyFlags)
-{
- size_t get_size, max_left;
- uchar* point;
- reg1 USED_MEM *next;
- reg2 USED_MEM **prev;
-
- Size= ALIGN_SIZE(Size);
- prev= &my_once_root_block;
- max_left=0;
- for (next=my_once_root_block ; next && next->left < Size ; next= next->next)
- {
- if (next->left > max_left)
- max_left=next->left;
- prev= &next->next;
- }
- if (! next)
- { /* Time to alloc new block */
- get_size= Size+ALIGN_SIZE(sizeof(USED_MEM));
- if (max_left*4 < my_once_extra && get_size < my_once_extra)
- get_size=my_once_extra; /* Normal alloc */
-
- if ((next = (USED_MEM*) malloc(get_size)) == 0)
- {
- my_errno=errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_OUTOFMEMORY, MYF(ME_BELL+ME_WAITTANG),get_size);
- return((uchar*) 0);
- }
- DBUG_PRINT("test",("my_once_malloc %lu byte malloced", (ulong) get_size));
- next->next= 0;
- next->size= get_size;
- next->left= get_size-ALIGN_SIZE(sizeof(USED_MEM));
- *prev=next;
- }
- point= (uchar*) ((char*) next+ (next->size-next->left));
- next->left-= Size;
-
- if (MyFlags & MY_ZEROFILL)
- bzero(point, Size);
- return((void*) point);
-} /* my_once_alloc */
-
-
-char *my_once_strdup(const char *src,myf myflags)
-{
- size_t len= strlen(src)+1;
- uchar *dst= my_once_alloc(len, myflags);
- if (dst)
- memcpy(dst, src, len);
- return (char*) dst;
-}
-
-
-void *my_once_memdup(const void *src, size_t len, myf myflags)
-{
- uchar *dst= my_once_alloc(len, myflags);
- if (dst)
- memcpy(dst, src, len);
- return dst;
-}
-
-
-/*
- Deallocate everything that was allocated with my_once_alloc
-
- SYNOPSIS
- my_once_free()
-*/
-
-void my_once_free(void)
-{
- reg1 USED_MEM *next,*old;
- DBUG_ENTER("my_once_free");
-
- for (next=my_once_root_block ; next ; )
- {
- old=next; next= next->next ;
- free((uchar*) old);
- }
- my_once_root_block=0;
-
- DBUG_VOID_RETURN;
-} /* my_once_free */
diff --git a/dep/mysqllite/mysys/my_open.c b/dep/mysqllite/mysys/my_open.c
deleted file mode 100644
index 2aef97b3e34..00000000000
--- a/dep/mysqllite/mysys/my_open.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <my_dir.h>
-#include <errno.h>
-
-
-/*
- Open a file
-
- SYNOPSIS
- my_open()
- FileName Fully qualified file name
- Flags Read | write
- MyFlags Special flags
-
- RETURN VALUE
- File descriptor
-*/
-
-File my_open(const char *FileName, int Flags, myf MyFlags)
- /* Path-name of file */
- /* Read | write .. */
- /* Special flags */
-{
- File fd;
- DBUG_ENTER("my_open");
- DBUG_PRINT("my",("Name: '%s' Flags: %d MyFlags: %d",
- FileName, Flags, MyFlags));
-#if defined(_WIN32)
- fd= my_win_open(FileName, Flags);
-#elif !defined(NO_OPEN_3)
- fd = open(FileName, Flags, my_umask); /* Normal unix */
-#else
- fd = open((char *) FileName, Flags);
-#endif
-
- DBUG_RETURN(my_register_filename(fd, FileName, FILE_BY_OPEN,
- EE_FILENOTFOUND, MyFlags));
-} /* my_open */
-
-
-/*
- Close a file
-
- SYNOPSIS
- my_close()
- fd File sescriptor
- myf Special Flags
-
-*/
-
-int my_close(File fd, myf MyFlags)
-{
- int err;
- DBUG_ENTER("my_close");
- DBUG_PRINT("my",("fd: %d MyFlags: %d",fd, MyFlags));
-
- mysql_mutex_lock(&THR_LOCK_open);
-#ifndef _WIN32
- do
- {
- err= close(fd);
- } while (err == -1 && errno == EINTR);
-#else
- err= my_win_close(fd);
-#endif
- if (err)
- {
- DBUG_PRINT("error",("Got error %d on close",err));
- my_errno=errno;
- if (MyFlags & (MY_FAE | MY_WME))
- my_error(EE_BADCLOSE, MYF(ME_BELL+ME_WAITTANG),my_filename(fd),errno);
- }
- if ((uint) fd < my_file_limit && my_file_info[fd].type != UNOPEN)
- {
- my_free(my_file_info[fd].name);
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
- mysql_mutex_destroy(&my_file_info[fd].mutex);
-#endif
- my_file_info[fd].type = UNOPEN;
- }
- my_file_opened--;
- mysql_mutex_unlock(&THR_LOCK_open);
- DBUG_RETURN(err);
-} /* my_close */
-
-
-/*
- Register file in my_file_info[]
-
- SYNOPSIS
- my_register_filename()
- fd File number opened, -1 if error on open
- FileName File name
- type_file_type How file was created
- error_message_number Error message number if caller got error (fd == -1)
- MyFlags Flags for my_close()
-
- RETURN
- -1 error
- # Filenumber
-
-*/
-
-File my_register_filename(File fd, const char *FileName, enum file_type
- type_of_file, uint error_message_number, myf MyFlags)
-{
- DBUG_ENTER("my_register_filename");
- if ((int) fd >= MY_FILE_MIN)
- {
- if ((uint) fd >= my_file_limit)
- {
-#if !defined(HAVE_PREAD)
- my_errno= EMFILE;
-#else
- thread_safe_increment(my_file_opened,&THR_LOCK_open);
- DBUG_RETURN(fd); /* safeguard */
-#endif
- }
- else
- {
- mysql_mutex_lock(&THR_LOCK_open);
- if ((my_file_info[fd].name = (char*) my_strdup(FileName,MyFlags)))
- {
- my_file_opened++;
- my_file_total_opened++;
- my_file_info[fd].type = type_of_file;
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
- mysql_mutex_init(key_my_file_info_mutex, &my_file_info[fd].mutex,
- MY_MUTEX_INIT_FAST);
-#endif
- mysql_mutex_unlock(&THR_LOCK_open);
- DBUG_PRINT("exit",("fd: %d",fd));
- DBUG_RETURN(fd);
- }
- mysql_mutex_unlock(&THR_LOCK_open);
- my_errno= ENOMEM;
- }
- (void) my_close(fd, MyFlags);
- }
- else
- my_errno= errno;
-
- DBUG_PRINT("error",("Got error %d on open", my_errno));
- if (MyFlags & (MY_FFNF | MY_FAE | MY_WME))
- {
- if (my_errno == EMFILE)
- error_message_number= EE_OUT_OF_FILERESOURCES;
- DBUG_PRINT("error",("print err: %d",error_message_number));
- my_error(error_message_number, MYF(ME_BELL+ME_WAITTANG),
- FileName, my_errno);
- }
- DBUG_RETURN(-1);
-}
-
-
-
-
-#ifdef EXTRA_DEBUG
-
-void my_print_open_files(void)
-{
- if (my_file_opened | my_stream_opened)
- {
- uint i;
- for (i= 0 ; i < my_file_limit ; i++)
- {
- if (my_file_info[i].type != UNOPEN)
- {
- fprintf(stderr, EE(EE_FILE_NOT_CLOSED), my_file_info[i].name, i);
- fputc('\n', stderr);
- }
- }
- }
-}
-
-#endif
diff --git a/dep/mysqllite/mysys/my_port.c b/dep/mysqllite/mysys/my_port.c
deleted file mode 100644
index 9ad333421ca..00000000000
--- a/dep/mysqllite/mysys/my_port.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/*
- Small functions to make code portable
-*/
-
-#include "mysys_priv.h"
-
-#ifdef _AIX
-
-/*
- On AIX, at least with gcc 3.1, the expression
- '(double) (ulonglong) var' doesn't always work for big unsigned
- integers like '18446744073709551615'. The end result is that the
- high bit is simply dropped. (probably bug in gcc optimizations)
- Handling the conversion in a sub function seems to work.
-*/
-
-
-
-double my_ulonglong2double(unsigned long long nr)
-{
- return (double) nr;
-}
-#endif /* _AIX */
diff --git a/dep/mysqllite/mysys/my_pread.c b/dep/mysqllite/mysys/my_pread.c
deleted file mode 100644
index e006360c11b..00000000000
--- a/dep/mysqllite/mysys/my_pread.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include "my_base.h"
-#include <m_string.h>
-#include <errno.h>
-#if defined (HAVE_PREAD) && !defined(_WIN32)
-#include <unistd.h>
-#endif
-
-
-
-/*
- Read a chunk of bytes from a file from a given position
-
- SYNOPSIOS
- my_pread()
- Filedes File decsriptor
- Buffer Buffer to read data into
- Count Number of bytes to read
- offset Position to read from
- MyFlags Flags
-
- NOTES
- This differs from the normal pread() call in that we don't care
- to set the position in the file back to the original position
- if the system doesn't support pread().
-
- RETURN
- (size_t) -1 Error
- # Number of bytes read
-*/
-
-size_t my_pread(File Filedes, uchar *Buffer, size_t Count, my_off_t offset,
- myf MyFlags)
-{
- size_t readbytes;
- int error= 0;
-#if !defined (HAVE_PREAD) && !defined (_WIN32)
- int save_errno;
-#endif
- DBUG_ENTER("my_pread");
- DBUG_PRINT("my",("fd: %d Seek: %llu Buffer: %p Count: %lu MyFlags: %d",
- Filedes, (ulonglong)offset, Buffer, (ulong)Count, MyFlags));
- for (;;)
- {
- errno= 0; /* Linux, Windows don't reset this on EOF/success */
-#if !defined (HAVE_PREAD) && !defined (_WIN32)
- mysql_mutex_lock(&my_file_info[Filedes].mutex);
- readbytes= (uint) -1;
- error= (lseek(Filedes, offset, MY_SEEK_SET) == (my_off_t) -1 ||
- (readbytes= read(Filedes, Buffer, Count)) != Count);
- save_errno= errno;
- mysql_mutex_unlock(&my_file_info[Filedes].mutex);
- if (error)
- errno= save_errno;
-#else
-#if defined(_WIN32)
- readbytes= my_win_pread(Filedes, Buffer, Count, offset);
-#else
- readbytes= pread(Filedes, Buffer, Count, offset);
-#endif
- error= (readbytes != Count);
-#endif
- if(error)
- {
- my_errno= errno ? errno : -1;
- if (errno == 0 || (readbytes != (size_t) -1 &&
- (MyFlags & (MY_NABP | MY_FNABP))))
- my_errno= HA_ERR_FILE_TOO_SHORT;
-
- DBUG_PRINT("warning",("Read only %d bytes off %u from %d, errno: %d",
- (int) readbytes, (uint) Count,Filedes,my_errno));
-
- if ((readbytes == 0 || readbytes == (size_t) -1) && errno == EINTR)
- {
- DBUG_PRINT("debug", ("my_pread() was interrupted and returned %d",
- (int) readbytes));
- continue; /* Interrupted */
- }
-
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- if (readbytes == (size_t) -1)
- my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
- my_filename(Filedes),my_errno);
- else if (MyFlags & (MY_NABP | MY_FNABP))
- my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
- my_filename(Filedes),my_errno);
- }
- if (readbytes == (size_t) -1 || (MyFlags & (MY_FNABP | MY_NABP)))
- DBUG_RETURN(MY_FILE_ERROR); /* Return with error */
- }
- if (MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN(0); /* Read went ok; Return 0 */
- DBUG_RETURN(readbytes); /* purecov: inspected */
- }
-} /* my_pread */
-
-
-/*
- Write a chunk of bytes to a file at a given position
-
- SYNOPSIOS
- my_pwrite()
- Filedes File decsriptor
- Buffer Buffer to write data from
- Count Number of bytes to write
- offset Position to write to
- MyFlags Flags
-
- NOTES
- This differs from the normal pwrite() call in that we don't care
- to set the position in the file back to the original position
- if the system doesn't support pwrite()
-
- RETURN
- (size_t) -1 Error
- # Number of bytes read
-*/
-
-size_t my_pwrite(File Filedes, const uchar *Buffer, size_t Count,
- my_off_t offset, myf MyFlags)
-{
- size_t writtenbytes, written;
- uint errors;
-
- DBUG_ENTER("my_pwrite");
- DBUG_PRINT("my",("fd: %d Seek: %llu Buffer: %p Count: %lu MyFlags: %d",
- Filedes, offset, Buffer, (ulong)Count, MyFlags));
- errors= 0;
- written= 0;
-
- for (;;)
- {
-#if !defined (HAVE_PREAD) && !defined (_WIN32)
- int error;
- writtenbytes= (size_t) -1;
- mysql_mutex_lock(&my_file_info[Filedes].mutex);
- error= (lseek(Filedes, offset, MY_SEEK_SET) != (my_off_t) -1 &&
- (writtenbytes= write(Filedes, Buffer, Count)) == Count);
- mysql_mutex_unlock(&my_file_info[Filedes].mutex);
- if (error)
- break;
-#elif defined (_WIN32)
- writtenbytes= my_win_pwrite(Filedes, Buffer, Count, offset);
-#else
- writtenbytes= pwrite(Filedes, Buffer, Count, offset);
-#endif
- if(writtenbytes == Count)
- break;
- my_errno= errno;
- if (writtenbytes != (size_t) -1)
- {
- written+= writtenbytes;
- Buffer+= writtenbytes;
- Count-= writtenbytes;
- offset+= writtenbytes;
- }
- DBUG_PRINT("error",("Write only %u bytes", (uint) writtenbytes));
-#ifndef NO_BACKGROUND
-
- if (my_thread_var->abort)
- MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */
-
- if ((my_errno == ENOSPC || my_errno == EDQUOT) &&
- (MyFlags & MY_WAIT_IF_FULL))
- {
- wait_for_free_space(my_filename(Filedes), errors);
- errors++;
- continue;
- }
- if ((writtenbytes && writtenbytes != (size_t) -1) || my_errno == EINTR)
- continue; /* Retry */
-#endif
- if (MyFlags & (MY_NABP | MY_FNABP))
- {
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- my_error(EE_WRITE, MYF(ME_BELL | ME_WAITTANG),
- my_filename(Filedes),my_errno);
- }
- DBUG_RETURN(MY_FILE_ERROR); /* Error on read */
- }
- else
- break; /* Return bytes written */
- }
- DBUG_EXECUTE_IF("check", my_seek(Filedes, -1, SEEK_SET, MYF(0)););
- if (MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN(0); /* Want only errors */
- DBUG_RETURN(writtenbytes+written); /* purecov: inspected */
-} /* my_pwrite */
diff --git a/dep/mysqllite/mysys/my_pthread.c b/dep/mysqllite/mysys/my_pthread.c
deleted file mode 100644
index 150bde3fb33..00000000000
--- a/dep/mysqllite/mysys/my_pthread.c
+++ /dev/null
@@ -1,469 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Functions to get threads more portable */
-
-#define DONT_REMAP_PTHREAD_FUNCTIONS
-
-#include "mysys_priv.h"
-#include <signal.h>
-#include <m_string.h>
-#include <thr_alarm.h>
-
-#if (defined(__BSD__) || defined(_BSDI_VERSION))
-#define SCHED_POLICY SCHED_RR
-#else
-#define SCHED_POLICY SCHED_OTHER
-#endif
-
-uint thd_lib_detected= 0;
-
-/* To allow use of pthread_getspecific with two arguments */
-
-#ifdef HAVE_NONPOSIX_PTHREAD_GETSPECIFIC
-#undef pthread_getspecific
-
-void *my_pthread_getspecific_imp(pthread_key_t key)
-{
- void *value;
- if (pthread_getspecific(key,(void *) &value))
- return 0;
- return value;
-}
-#endif
-
-/*
- Some functions for RTS threads, AIX, Siemens Unix and UnixWare 7
- (and DEC OSF/1 3.2 too)
-*/
-
-int my_pthread_create_detached=1;
-
-#if defined(HAVE_NONPOSIX_SIGWAIT) || defined(HAVE_DEC_3_2_THREADS)
-
-int my_sigwait(const sigset_t *set,int *sig)
-{
- int signal=sigwait((sigset_t*) set);
- if (signal < 0)
- return errno;
- *sig=signal;
- return 0;
-}
-#endif
-
-/* localtime_r for SCO 3.2V4.2 */
-
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
-
-extern mysql_mutex_t LOCK_localtime_r;
-
-#endif
-
-#if !defined(HAVE_LOCALTIME_R)
-struct tm *localtime_r(const time_t *clock, struct tm *res)
-{
- struct tm *tmp;
- mysql_mutex_lock(&LOCK_localtime_r);
- tmp=localtime(clock);
- *res= *tmp;
- mysql_mutex_unlock(&LOCK_localtime_r);
- return res;
-}
-#endif
-
-#if !defined(HAVE_GMTIME_R)
-/*
- Reentrant version of standard gmtime() function.
- Needed on some systems which don't implement it.
-*/
-
-struct tm *gmtime_r(const time_t *clock, struct tm *res)
-{
- struct tm *tmp;
- mysql_mutex_lock(&LOCK_localtime_r);
- tmp= gmtime(clock);
- *res= *tmp;
- mysql_mutex_unlock(&LOCK_localtime_r);
- return res;
-}
-#endif
-
-/****************************************************************************
-** Replacement of sigwait if the system doesn't have one (like BSDI 3.0)
-**
-** Note:
-** This version of sigwait() is assumed to called in a loop so the signalmask
-** is permanently modified to reflect the signal set. This is done to get
-** a much faster implementation.
-**
-** This implementation isn't thread safe: It assumes that only one
-** thread is using sigwait.
-**
-** If one later supplies a different signal mask, all old signals that
-** was used before are unblocked and set to SIGDFL.
-**
-** Author: Gary Wisniewski <garyw@spidereye.com.au>, much modified by Monty
-****************************************************************************/
-
-#if !defined(HAVE_SIGWAIT) && !defined(sigwait) && !defined(__WIN__) && !defined(HAVE_rts_threads) && !defined(HAVE_NONPOSIX_SIGWAIT) && !defined(HAVE_DEC_3_2_THREADS)
-
-#if !defined(DONT_USE_SIGSUSPEND)
-
-static sigset_t sigwait_set,rev_sigwait_set,px_recd;
-
-void px_handle_sig(int sig)
-{
- sigaddset(&px_recd, sig);
-}
-
-
-void sigwait_setup(sigset_t *set)
-{
- int i;
- struct sigaction sact,sact1;
- sigset_t unblock_mask;
-
- sact.sa_flags = 0;
- sact.sa_handler = px_handle_sig;
- memcpy(&sact.sa_mask, set, sizeof(*set)); /* handler isn't thread_safe */
- sigemptyset(&unblock_mask);
- pthread_sigmask(SIG_UNBLOCK,(sigset_t*) 0,&rev_sigwait_set);
-
- for (i = 1; i <= sizeof(sigwait_set)*8; i++)
- {
- if (sigismember(set,i))
- {
- sigdelset(&rev_sigwait_set,i);
- if (!sigismember(&sigwait_set,i))
- sigaction(i, &sact, (struct sigaction*) 0);
- }
- else
- {
- sigdelset(&px_recd,i); /* Don't handle this */
- if (sigismember(&sigwait_set,i))
- { /* Remove the old handler */
- sigaddset(&unblock_mask,i);
- sigdelset(&rev_sigwait_set,i);
- sact1.sa_flags = 0;
- sact1.sa_handler = SIG_DFL;
- sigemptyset(&sact1.sa_mask);
- sigaction(i, &sact1, 0);
- }
- }
- }
- memcpy(&sigwait_set, set, sizeof(*set));
- pthread_sigmask(SIG_BLOCK,(sigset_t*) set,(sigset_t*) 0);
- pthread_sigmask(SIG_UNBLOCK,&unblock_mask,(sigset_t*) 0);
-}
-
-
-int sigwait(sigset_t *setp, int *sigp)
-{
- if (memcmp(setp,&sigwait_set,sizeof(sigwait_set)))
- sigwait_setup(setp); /* Init or change of set */
-
- for (;;)
- {
- /*
- This is a fast, not 100% portable implementation to find the signal.
- Because the handler is blocked there should be at most 1 bit set, but
- the specification on this is somewhat shady so we use a set instead a
- single variable.
- */
-
- ulong *ptr= (ulong*) &px_recd;
- ulong *end=ptr+sizeof(px_recd)/sizeof(ulong);
-
- for ( ; ptr != end ; ptr++)
- {
- if (*ptr)
- {
- ulong set= *ptr;
- int found= (int) ((char*) ptr - (char*) &px_recd)*8+1;
- while (!(set & 1))
- {
- found++;
- set>>=1;
- }
- *sigp=found;
- sigdelset(&px_recd,found);
- return 0;
- }
- }
- sigsuspend(&rev_sigwait_set);
- }
- return 0;
-}
-#else /* !DONT_USE_SIGSUSPEND */
-
-/****************************************************************************
-** Replacement of sigwait if the system doesn't have one (like BSDI 3.0)
-**
-** Note:
-** This version of sigwait() is assumed to called in a loop so the signalmask
-** is permanently modified to reflect the signal set. This is done to get
-** a much faster implementation.
-**
-** This implementation uses a extra thread to handle the signals and one
-** must always call sigwait() with the same signal mask!
-**
-** BSDI 3.0 NOTE:
-**
-** pthread_kill() doesn't work on a thread in a select() or sleep() loop?
-** After adding the sleep to sigwait_thread, all signals are checked and
-** delivered every second. This isn't that terrible performance vice, but
-** someone should report this to BSDI and ask for a fix!
-** Another problem is that when the sleep() ends, every select() in other
-** threads are interrupted!
-****************************************************************************/
-
-static sigset_t pending_set;
-static bool inited=0;
-static pthread_cond_t COND_sigwait;
-static pthread_mutex_t LOCK_sigwait;
-
-
-void sigwait_handle_sig(int sig)
-{
- pthread_mutex_lock(&LOCK_sigwait);
- sigaddset(&pending_set, sig);
- pthread_cond_signal(&COND_sigwait); /* inform sigwait() about signal */
- pthread_mutex_unlock(&LOCK_sigwait);
-}
-
-void *sigwait_thread(void *set_arg)
-{
- sigset_t *set=(sigset_t*) set_arg;
-
- int i;
- struct sigaction sact;
- sact.sa_flags = 0;
- sact.sa_handler = sigwait_handle_sig;
- memcpy(&sact.sa_mask, set, sizeof(*set)); /* handler isn't thread_safe */
- sigemptyset(&pending_set);
-
- for (i = 1; i <= sizeof(pending_set)*8; i++)
- {
- if (sigismember(set,i))
- {
- sigaction(i, &sact, (struct sigaction*) 0);
- }
- }
- /* Ensure that init_thr_alarm() is called */
- DBUG_ASSERT(thr_client_alarm);
- sigaddset(set, thr_client_alarm);
- pthread_sigmask(SIG_UNBLOCK,(sigset_t*) set,(sigset_t*) 0);
- alarm_thread=pthread_self(); /* For thr_alarm */
-
- for (;;)
- { /* Wait for signals */
-#ifdef HAVE_NOT_BROKEN_SELECT
- fd_set fd;
- FD_ZERO(&fd);
- select(0,&fd,0,0,0);
-#else
- sleep(1); /* Because of broken BSDI */
-#endif
- }
-}
-
-
-int sigwait(sigset_t *setp, int *sigp)
-{
- if (!inited)
- {
- pthread_attr_t thr_attr;
- pthread_t sigwait_thread_id;
- inited=1;
- sigemptyset(&pending_set);
- pthread_mutex_init(&LOCK_sigwait, MY_MUTEX_INIT_FAST);
- pthread_cond_init(&COND_sigwait, NULL);
-
- pthread_attr_init(&thr_attr);
- pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
- pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
- pthread_attr_setstacksize(&thr_attr,8196);
- pthread_create(&sigwait_thread_id, &thr_attr, sigwait_thread, setp);
- pthread_attr_destroy(&thr_attr);
- }
-
- pthread_mutex_lock(&LOCK_sigwait);
- for (;;)
- {
- ulong *ptr= (ulong*) &pending_set;
- ulong *end=ptr+sizeof(pending_set)/sizeof(ulong);
-
- for ( ; ptr != end ; ptr++)
- {
- if (*ptr)
- {
- ulong set= *ptr;
- int found= (int) ((char*) ptr - (char*) &pending_set)*8+1;
- while (!(set & 1))
- {
- found++;
- set>>=1;
- }
- *sigp=found;
- sigdelset(&pending_set,found);
- pthread_mutex_unlock(&LOCK_sigwait);
- return 0;
- }
- }
- pthread_cond_wait(&COND_sigwait, &LOCK_sigwait);
- }
- return 0;
-}
-
-#endif /* DONT_USE_SIGSUSPEND */
-#endif /* HAVE_SIGWAIT */
-
-
-/****************************************************************************
- The following functions fixes that all pthread functions should work
- according to latest posix standard
-****************************************************************************/
-
-/* Undefined wrappers set my_pthread.h so that we call os functions */
-#undef pthread_mutex_init
-#undef pthread_mutex_lock
-#undef pthread_mutex_unlock
-#undef pthread_mutex_destroy
-#undef pthread_mutex_wait
-#undef pthread_mutex_timedwait
-#undef pthread_mutex_trylock
-#undef pthread_mutex_t
-#undef pthread_cond_init
-#undef pthread_cond_wait
-#undef pthread_cond_timedwait
-#undef pthread_cond_t
-#undef pthread_attr_getstacksize
-
-/*****************************************************************************
-** Patches for AIX and DEC OSF/1 3.2
-*****************************************************************************/
-
-#if defined(HAVE_NONPOSIX_PTHREAD_MUTEX_INIT)
-
-#include <netdb.h>
-
-int my_pthread_mutex_init(pthread_mutex_t *mp, const pthread_mutexattr_t *attr)
-{
- int error;
- if (!attr)
- error=pthread_mutex_init(mp,pthread_mutexattr_default);
- else
- error=pthread_mutex_init(mp,*attr);
- return error;
-}
-
-int my_pthread_cond_init(pthread_cond_t *mp, const pthread_condattr_t *attr)
-{
- int error;
- if (!attr)
- error=pthread_cond_init(mp,pthread_condattr_default);
- else
- error=pthread_cond_init(mp,*attr);
- return error;
-}
-
-#endif
-
-
-/*****************************************************************************
- Patches for HPUX
- We need these because the pthread_mutex.. code returns -1 on error,
- instead of the error code.
-
- Note that currently we only remap pthread_ functions used by MySQL.
- If we are depending on the value for some other pthread_xxx functions,
- this has to be added here.
-****************************************************************************/
-
-#if defined(HPUX10) || defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT)
-
-int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- struct timespec *abstime)
-{
- int error=pthread_cond_timedwait(cond, mutex, abstime);
- if (error == -1) /* Safety if the lib is fixed */
- {
- if (!(error=errno))
- error= ETIMEDOUT; /* Can happen on HPUX */
- }
- if (error == EAGAIN) /* Correct errno to Posix */
- error= ETIMEDOUT;
- return error;
-}
-#endif
-
-#if defined(HPUX10)
-
-void my_pthread_attr_getstacksize(pthread_attr_t *connection_attrib,
- size_t *stack_size)
-{
- *stack_size= pthread_attr_getstacksize(*connection_attrib);
-}
-#endif
-
-
-#ifdef HAVE_POSIX1003_4a_MUTEX
-/*
- In HP-UX-10.20 and other old Posix 1003.4a Draft 4 implementations
- pthread_mutex_trylock returns 1 on success, not 0 like
- pthread_mutex_lock
-
- From the HP-UX-10.20 man page:
- RETURN VALUES
- If the function fails, errno may be set to one of the following
- values:
- Return | Error | Description
- _______|__________|_________________________________________
- 1 | | Successful completion.
- 0 | | The mutex is locked; therefore, it was
- | | not acquired.
- -1 | [EINVAL] | The value specified by mutex is invalid.
-
-*/
-
-/*
- Convert pthread_mutex_trylock to return values according to latest POSIX
-
- RETURN VALUES
- 0 If we are able successfully lock the mutex.
- EBUSY Mutex was locked by another thread
- # Other error number returned by pthread_mutex_trylock()
- (Not likely)
-*/
-
-int my_pthread_mutex_trylock(pthread_mutex_t *mutex)
-{
- int error= pthread_mutex_trylock(mutex);
- if (error == 1)
- return 0; /* Got lock on mutex */
- if (error == 0) /* Someon else is locking mutex */
- return EBUSY;
- if (error == -1) /* Safety if the lib is fixed */
- error= errno; /* Probably invalid parameter */
- return error;
-}
-#endif /* HAVE_POSIX1003_4a_MUTEX */
-
-/* Some help functions */
-
-int pthread_dummy(int ret)
-{
- return ret;
-}
diff --git a/dep/mysqllite/mysys/my_quick.c b/dep/mysqllite/mysys/my_quick.c
deleted file mode 100644
index b93e7e17224..00000000000
--- a/dep/mysqllite/mysys/my_quick.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Quicker interface to read & write. Used with my_nosys.h */
-
-#include "mysys_priv.h"
-#include "my_nosys.h"
-
-
-#ifdef _WIN32
-extern size_t my_win_read(File Filedes,uchar *Buffer,size_t Count);
-#endif
-
-size_t my_quick_read(File Filedes,uchar *Buffer,size_t Count,myf MyFlags)
-{
- size_t readbytes;
-#ifdef _WIN32
- readbytes= my_win_read(Filedes, Buffer, Count);
-#else
- readbytes= read(Filedes, Buffer, Count);
-#endif
- if(readbytes != Count)
- {
-#ifndef DBUG_OFF
- if ((readbytes == 0 || readbytes == (size_t) -1) && errno == EINTR)
- {
- DBUG_PRINT("error", ("my_quick_read() was interrupted and returned %d"
- ". This function does not retry the read!",
- (int) readbytes));
- }
-#endif
- my_errno=errno;
- return readbytes;
- }
- return (MyFlags & (MY_NABP | MY_FNABP)) ? 0 : readbytes;
-}
-
-
-
-size_t my_quick_write(File Filedes, const uchar *Buffer, size_t Count)
-{
-#ifdef _WIN32
- return my_win_write(Filedes, Buffer, Count);
-#else
-
-#ifndef DBUG_OFF
- size_t writtenbytes;
-#endif
-
- if ((
-#ifndef DBUG_OFF
- writtenbytes =
-#endif
- (size_t) write(Filedes,Buffer,Count)) != Count)
- {
-#ifndef DBUG_OFF
- if ((writtenbytes == 0 || writtenbytes == (size_t) -1) && errno == EINTR)
- {
- DBUG_PRINT("error", ("my_quick_write() was interrupted and returned %d"
- ". This function does not retry the write!",
- (int) writtenbytes));
- }
-#endif
- my_errno=errno;
- return (size_t) -1;
- }
- return 0;
-#endif
-}
diff --git a/dep/mysqllite/mysys/my_rdtsc.c b/dep/mysqllite/mysys/my_rdtsc.c
deleted file mode 100644
index 2afe3ec31dd..00000000000
--- a/dep/mysqllite/mysys/my_rdtsc.c
+++ /dev/null
@@ -1,962 +0,0 @@
-/* Copyright (C) 2008-2010 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- rdtsc3 -- multi-platform timer code
- pgulutzan@mysql.com, 2005-08-29
- modified 2008-11-02
-
- Functions:
-
- my_timer_cycles ulonglong cycles
- my_timer_nanoseconds ulonglong nanoseconds
- my_timer_microseconds ulonglong "microseconds"
- my_timer_milliseconds ulonglong milliseconds
- my_timer_ticks ulonglong ticks
- my_timer_init initialization / test
-
- We'll call the first 5 functions (the ones that return
- a ulonglong) "my_timer_xxx" functions.
- Each my_timer_xxx function returns a 64-bit timing value
- since an arbitrary 'epoch' start. Since the only purpose
- is to determine elapsed times, wall-clock time-of-day
- is not known and not relevant.
-
- The my_timer_init function is necessary for initializing.
- It returns information (underlying routine name,
- frequency, resolution, overhead) about all my_timer_xxx
- functions. A program should call my_timer_init once,
- use the information to decide what my_timer_xxx function
- to use, and subsequently call that function by function
- pointer.
-
- A typical use would be:
- my_timer_init() ... once, at program start
- ...
- time1= my_timer_xxx() ... time before start
- [code that's timed]
- time2= my_timer_xxx() ... time after end
- elapsed_time= (time2 - time1) - overhead
-*/
-
-#include "my_global.h"
-#include "my_rdtsc.h"
-
-#if defined(_WIN32)
-#include <stdio.h>
-#include "windows.h"
-#else
-#include <stdio.h>
-#endif
-
-#if !defined(_WIN32)
-#if TIME_WITH_SYS_TIME
-#include <sys/time.h>
-#include <time.h> /* for clock_gettime */
-#else
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#elif defined(HAVE_TIME_H)
-#include <time.h>
-#endif
-#endif
-#endif
-
-#if defined(HAVE_ASM_MSR_H) && defined(HAVE_RDTSCLL)
-#include <asm/msr.h> /* for rdtscll */
-#endif
-
-#if defined(HAVE_SYS_TIMEB_H) && defined(HAVE_FTIME)
-#include <sys/timeb.h> /* for ftime */
-#endif
-
-#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES)
-#include <sys/times.h> /* for times */
-#endif
-
-#if defined(__INTEL_COMPILER) && defined(__ia64__) && defined(HAVE_IA64INTRIN_H)
-#include <ia64intrin.h> /* for __GetReg */
-#endif
-
-#if defined(__APPLE__) && defined(__MACH__)
-#include <mach/mach_time.h>
-#endif
-
-#if defined(__SUNPRO_CC) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7)
-extern "C" ulonglong my_timer_cycles_il_sparc64();
-#elif defined(__SUNPRO_CC) && defined(_ILP32) && !defined(__SunOS_5_7)
-extern "C" ulonglong my_timer_cycles_il_sparc32();
-#elif defined(__SUNPRO_CC) && defined(__i386) && defined(_ILP32)
-extern "C" ulonglong my_timer_cycles_il_i386();
-#elif defined(__SUNPRO_CC) && defined(__x86_64) && defined(_LP64)
-extern "C" ulonglong my_timer_cycles_il_x86_64();
-#elif defined(__SUNPRO_C) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7)
-ulonglong my_timer_cycles_il_sparc64();
-#elif defined(__SUNPRO_C) && defined(_ILP32) && !defined(__SunOS_5_7)
-ulonglong my_timer_cycles_il_sparc32();
-#elif defined(__SUNPRO_C) && defined(__i386) && defined(_ILP32)
-ulonglong my_timer_cycles_il_i386();
-#elif defined(__SUNPRO_C) && defined(__x86_64) && defined(_LP64)
-ulonglong my_timer_cycles_il_x86_64();
-#endif
-
-#if defined(__INTEL_COMPILER)
-/*
- icc warning #1011 is:
- missing return statement at end of non-void function
-*/
-#pragma warning (disable:1011)
-#endif
-
-/*
- For cycles, we depend on RDTSC for x86 platforms,
- or on time buffer (which is not really a cycle count
- but a separate counter with less than nanosecond
- resolution) for most PowerPC platforms, or on
- gethrtime which is okay for hpux and solaris, or on
- clock_gettime(CLOCK_SGI_CYCLE) for Irix platforms,
- or on read_real_time for aix platforms. There is
- nothing for Alpha platforms, they would be tricky.
-*/
-
-ulonglong my_timer_cycles(void)
-{
-#if defined(__GNUC__) && defined(__i386__)
- /* This works much better if compiled with "gcc -O3". */
- ulonglong result;
- __asm__ __volatile__ ("rdtsc" : "=A" (result));
- return result;
-#elif defined(__SUNPRO_C) && defined(__i386)
- __asm("rdtsc");
-#elif defined(__GNUC__) && defined(__x86_64__)
- ulonglong result;
- __asm__ __volatile__ ("rdtsc\n\t" \
- "shlq $32,%%rdx\n\t" \
- "orq %%rdx,%%rax"
- : "=a" (result) :: "%edx");
- return result;
-#elif defined(HAVE_ASM_MSR_H) && defined(HAVE_RDTSCLL)
- {
- ulonglong result;
- rdtscll(result);
- return result;
- }
-#elif defined(_WIN32) && defined(_M_IX86)
- __asm {rdtsc};
-#elif defined(_WIN64) && defined(_M_X64)
- /* For 64-bit Windows: unsigned __int64 __rdtsc(); */
- return __rdtsc();
-#elif defined(__INTEL_COMPILER) && defined(__ia64__) && defined(HAVE_IA64INTRIN_H)
- return (ulonglong) __getReg(_IA64_REG_AR_ITC); /* (3116) */
-#elif defined(__GNUC__) && defined(__ia64__)
- {
- ulonglong result;
- __asm __volatile__ ("mov %0=ar.itc" : "=r" (result));
- return result;
- }
-#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__) || (defined(_POWER) && defined(_AIX52))) && (defined(__64BIT__) || defined(_ARCH_PPC64))
- {
- ulonglong result;
- __asm __volatile__ ("mftb %0" : "=r" (result));
- return result;
- }
-#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__) || (defined(_POWER) && defined(_AIX52))) && (!defined(__64BIT__) && !defined(_ARCH_PPC64))
- {
- /*
- mftbu means "move from time-buffer-upper to result".
- The loop is saying: x1=upper, x2=lower, x3=upper,
- if x1!=x3 there was an overflow so repeat.
- */
- unsigned int x1, x2, x3;
- ulonglong result;
- for (;;)
- {
- __asm __volatile__ ( "mftbu %0" : "=r"(x1) );
- __asm __volatile__ ( "mftb %0" : "=r"(x2) );
- __asm __volatile__ ( "mftbu %0" : "=r"(x3) );
- if (x1 == x3) break;
- }
- result = x1;
- return ( result << 32 ) | x2;
- }
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7)
- return (my_timer_cycles_il_sparc64());
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(_ILP32) && !defined(__SunOS_5_7)
- return (my_timer_cycles_il_sparc32());
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__i386) && defined(_ILP32)
- /* This is probably redundant for __SUNPRO_C. */
- return (my_timer_cycles_il_i386());
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__x86_64) && defined(_LP64)
- return (my_timer_cycles_il_x86_64());
-#elif defined(__GNUC__) && defined(__sparcv9) && defined(_LP64) && (__GNUC__>2)
- {
- ulonglong result;
- __asm __volatile__ ("rd %%tick,%0" : "=r" (result));
- return result;
- }
-#elif defined(__GNUC__) && defined(__sparc__) && !defined(_LP64) && (__GNUC__>2)
- {
- union {
- ulonglong wholeresult;
- struct {
- ulong high;
- ulong low;
- } splitresult;
- } result;
- __asm __volatile__ ("rd %%tick,%1; srlx %1,32,%0" : "=r" (result.splitresult.high), "=r" (result.splitresult.low));
- return result.wholeresult;
- }
-#elif defined(__sgi) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE)
- {
- struct timespec tp;
- clock_gettime(CLOCK_SGI_CYCLE, &tp);
- return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec;
- }
-#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
- /* gethrtime may appear as either cycle or nanosecond counter */
- return (ulonglong) gethrtime();
-#else
- return 0;
-#endif
-}
-
-#if defined(__INTEL_COMPILER)
-/* re-enable warning#1011 which was only for my_timer_cycles() */
-/* There may be an icc bug which means we must leave disabled. */
-#pragma warning (default:1011)
-#endif
-
-/*
- For nanoseconds, most platforms have nothing available that
- (a) doesn't require bringing in a 40-kb librt.so library
- (b) really has nanosecond resolution.
-*/
-
-ulonglong my_timer_nanoseconds(void)
-{
-#if defined(HAVE_READ_REAL_TIME)
- {
- timebasestruct_t tr;
- read_real_time(&tr, TIMEBASE_SZ);
- return (ulonglong) tr.tb_high * 1000000000 + (ulonglong) tr.tb_low;
- }
-#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
- /* SunOS 5.10+, Solaris, HP-UX: hrtime_t gethrtime(void) */
- return (ulonglong) gethrtime();
-#elif defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_REALTIME)
- {
- struct timespec tp;
- clock_gettime(CLOCK_REALTIME, &tp);
- return (ulonglong) tp.tv_sec * 1000000000 + (ulonglong) tp.tv_nsec;
- }
-#elif defined(__APPLE__) && defined(__MACH__)
- {
- ulonglong tm;
- static mach_timebase_info_data_t timebase_info= {0,0};
- if (timebase_info.denom == 0)
- (void) mach_timebase_info(&timebase_info);
- tm= mach_absolute_time();
- return (tm * timebase_info.numer) / timebase_info.denom;
- }
-#else
- return 0;
-#endif
-}
-
-/*
- For microseconds, gettimeofday() is available on
- almost all platforms. On Windows we use
- QueryPerformanceCounter which will usually tick over
- 3.5 million times per second, and we don't throw
- away the extra precision. (On Windows Server 2003
- the frequency is same as the cycle frequency.)
-*/
-
-ulonglong my_timer_microseconds(void)
-{
-#if defined(HAVE_GETTIMEOFDAY)
- {
- static ulonglong last_value= 0;
- struct timeval tv;
- if (gettimeofday(&tv, NULL) == 0)
- last_value= (ulonglong) tv.tv_sec * 1000000 + (ulonglong) tv.tv_usec;
- else
- {
- /*
- There are reports that gettimeofday(2) can have intermittent failures
- on some platform, see for example Bug#36819.
- We are not trying again or looping, just returning the best value possible
- under the circumstances ...
- */
- last_value++;
- }
- return last_value;
- }
-#elif defined(_WIN32)
- {
- /* QueryPerformanceCounter usually works with about 1/3 microsecond. */
- LARGE_INTEGER t_cnt;
-
- QueryPerformanceCounter(&t_cnt);
- return (ulonglong) t_cnt.QuadPart;
- }
-#else
- return 0;
-#endif
-}
-
-/*
- For milliseconds, we use ftime() if it's supported
- or time()*1000 if it's not. With modern versions of
- Windows and with HP Itanium, resolution is 10-15
- milliseconds.
-*/
-
-ulonglong my_timer_milliseconds(void)
-{
-#if defined(HAVE_SYS_TIMEB_H) && defined(HAVE_FTIME)
- /* ftime() is obsolete but maybe the platform is old */
- struct timeb ft;
- ftime(&ft);
- return (ulonglong)ft.time * 1000 + (ulonglong)ft.millitm;
-#elif defined(HAVE_TIME)
- return (ulonglong) time(NULL) * 1000;
-#elif defined(_WIN32)
- FILETIME ft;
- GetSystemTimeAsFileTime( &ft );
- return ((ulonglong)ft.dwLowDateTime +
- (((ulonglong)ft.dwHighDateTime) << 32))/10000;
-#else
- return 0;
-#endif
-}
-
-/*
- For ticks, which we handle with times(), the frequency
- is usually 100/second and the overhead is surprisingly
- bad, sometimes even worse than gettimeofday's overhead.
-*/
-
-ulonglong my_timer_ticks(void)
-{
-#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES)
- {
- struct tms times_buf;
- return (ulonglong) times(&times_buf);
- }
-#elif defined(_WIN32)
- return (ulonglong) GetTickCount();
-#else
- return 0;
-#endif
-}
-
-/*
- The my_timer_init() function and its sub-functions
- have several loops which call timers. If there's
- something wrong with a timer -- which has never
- happened in tests -- we want the loop to end after
- an arbitrary number of iterations, and my_timer_info
- will show a discouraging result. The arbitrary
- number is 1,000,000.
-*/
-#define MY_TIMER_ITERATIONS 1000000
-
-/*
- Calculate overhead. Called from my_timer_init().
- Usually best_timer_overhead = cycles.overhead or
- nanoseconds.overhead, so returned amount is in
- cycles or nanoseconds. We repeat the calculation
- ten times, so that we can disregard effects of
- caching or interrupts. Result is quite consistent
- for cycles, at least. But remember it's a minimum.
-*/
-
-static void my_timer_init_overhead(ulonglong *overhead,
- ulonglong (*cycle_timer)(void),
- ulonglong (*this_timer)(void),
- ulonglong best_timer_overhead)
-{
- ulonglong time1, time2;
- int i;
-
- /* *overhead, least of 20 calculations - cycles.overhead */
- for (i= 0, *overhead= 1000000000; i < 20; ++i)
- {
- time1= cycle_timer();
- this_timer(); /* rather than 'time_tmp= timer();' */
- time2= cycle_timer() - time1;
- if (*overhead > time2)
- *overhead= time2;
- }
- *overhead-= best_timer_overhead;
-}
-
-/*
- Calculate Resolution. Called from my_timer_init().
- If a timer goes up by jumps, e.g. 1050, 1075, 1100, ...
- then the best resolution is the minimum jump, e.g. 25.
- If it's always divisible by 1000 then it's just a
- result of multiplication of a lower-precision timer
- result, e.g. nanoseconds are often microseconds * 1000.
- If the minimum jump is less than an arbitrary passed
- figure (a guess based on maximum overhead * 2), ignore.
- Usually we end up with nanoseconds = 1 because it's too
- hard to detect anything <= 100 nanoseconds.
- Often GetTickCount() has resolution = 15.
- We don't check with ticks because they take too long.
-*/
-static ulonglong my_timer_init_resolution(ulonglong (*this_timer)(void),
- ulonglong overhead_times_2)
-{
- ulonglong time1, time2;
- ulonglong best_jump;
- int i, jumps, divisible_by_1000, divisible_by_1000000;
-
- divisible_by_1000= divisible_by_1000000= 0;
- best_jump= 1000000;
- for (i= jumps= 0; jumps < 3 && i < MY_TIMER_ITERATIONS * 10; ++i)
- {
- time1= this_timer();
- time2= this_timer();
- time2-= time1;
- if (time2)
- {
- ++jumps;
- if (!(time2 % 1000))
- {
- ++divisible_by_1000;
- if (!(time2 % 1000000))
- ++divisible_by_1000000;
- }
- if (best_jump > time2)
- best_jump= time2;
- /* For milliseconds, one jump is enough. */
- if (overhead_times_2 == 0)
- break;
- }
- }
- if (jumps == 3)
- {
- if (jumps == divisible_by_1000000)
- return 1000000;
- if (jumps == divisible_by_1000)
- return 1000;
- }
- if (best_jump > overhead_times_2)
- return best_jump;
- return 1;
-}
-
-/*
- Calculate cycle frequency by seeing how many cycles pass
- in a 200-microsecond period. I tried with 10-microsecond
- periods originally, and the result was often very wrong.
-*/
-
-static ulonglong my_timer_init_frequency(MY_TIMER_INFO *mti)
-{
- int i;
- ulonglong time1, time2, time3, time4;
- time1= my_timer_cycles();
- time2= my_timer_microseconds();
- time3= time2; /* Avoids a Microsoft/IBM compiler warning */
- for (i= 0; i < MY_TIMER_ITERATIONS; ++i)
- {
- time3= my_timer_microseconds();
- if (time3 - time2 > 200) break;
- }
- time4= my_timer_cycles() - mti->cycles.overhead;
- time4-= mti->microseconds.overhead;
- return (mti->microseconds.frequency * (time4 - time1)) / (time3 - time2);
-}
-
-/*
- Call my_timer_init before the first call to my_timer_xxx().
- If something must be initialized, it happens here.
- Set: what routine is being used e.g. "asm_x86"
- Set: function, overhead, actual frequency, resolution.
-*/
-
-void my_timer_init(MY_TIMER_INFO *mti)
-{
- ulonglong (*best_timer)(void);
- ulonglong best_timer_overhead;
- ulonglong time1, time2;
- int i;
-
- /* cycles */
- mti->cycles.frequency= 1000000000;
-#if defined(__GNUC__) && defined(__i386__)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86;
-#elif defined(__SUNPRO_C) && defined(__i386)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86;
-#elif defined(__GNUC__) && defined(__x86_64__)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86_64;
-#elif defined(HAVE_ASM_MSR_H) && defined(HAVE_RDTSCLL)
- mti->cycles.routine= MY_TIMER_ROUTINE_RDTSCLL;
-#elif defined(_WIN32) && defined(_M_IX86)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_X86_WIN;
-#elif defined(_WIN64) && defined(_M_X64)
- mti->cycles.routine= MY_TIMER_ROUTINE_RDTSC;
-#elif defined(__INTEL_COMPILER) && defined(__ia64__) && defined(HAVE_IA64INTRIN_H)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_IA64;
-#elif defined(__GNUC__) && defined(__ia64__)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_IA64;
-#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__) || (defined(_POWER) && defined(_AIX52))) && (defined(__64BIT__) || defined(_ARCH_PPC64))
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_PPC64;
-#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__POWERPC__) || (defined(_POWER) && defined(_AIX52))) && (!defined(__64BIT__) && !defined(_ARCH_PPC64))
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_PPC;
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__sparcv9) && defined(_LP64) && !defined(__SunOS_5_7)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC64;
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(_ILP32) && !defined(__SunOS_5_7)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_SPARC32;
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__i386) && defined(_ILP32)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_I386;
-#elif (defined(__SUNPRO_CC) || defined(__SUNPRO_C)) && defined(__x86_64) && defined(_LP64)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_SUNPRO_X86_64;
-#elif defined(__GNUC__) && defined(__sparcv9) && defined(_LP64) && (__GNUC__>2)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC64;
-#elif defined(__GNUC__) && defined(__sparc__) && !defined(_LP64) && (__GNUC__>2)
- mti->cycles.routine= MY_TIMER_ROUTINE_ASM_GCC_SPARC32;
-#elif defined(__sgi) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_SGI_CYCLE)
- mti->cycles.routine= MY_TIMER_ROUTINE_SGI_CYCLE;
-#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
- mti->cycles.routine= MY_TIMER_ROUTINE_GETHRTIME;
-#else
- mti->cycles.routine= 0;
-#endif
-
- if (!mti->cycles.routine || !my_timer_cycles())
- {
- mti->cycles.routine= 0;
- mti->cycles.resolution= 0;
- mti->cycles.frequency= 0;
- mti->cycles.overhead= 0;
- }
-
- /* nanoseconds */
- mti->nanoseconds.frequency= 1000000000; /* initial assumption */
-#if defined(HAVE_READ_REAL_TIME)
- mti->nanoseconds.routine= MY_TIMER_ROUTINE_READ_REAL_TIME;
-#elif defined(HAVE_SYS_TIMES_H) && defined(HAVE_GETHRTIME)
- mti->nanoseconds.routine= MY_TIMER_ROUTINE_GETHRTIME;
-#elif defined(HAVE_CLOCK_GETTIME)
- mti->nanoseconds.routine= MY_TIMER_ROUTINE_CLOCK_GETTIME;
-#elif defined(__APPLE__) && defined(__MACH__)
- mti->nanoseconds.routine= MY_TIMER_ROUTINE_MACH_ABSOLUTE_TIME;
-#else
- mti->nanoseconds.routine= 0;
-#endif
- if (!mti->nanoseconds.routine || !my_timer_nanoseconds())
- {
- mti->nanoseconds.routine= 0;
- mti->nanoseconds.resolution= 0;
- mti->nanoseconds.frequency= 0;
- mti->nanoseconds.overhead= 0;
- }
-
- /* microseconds */
- mti->microseconds.frequency= 1000000; /* initial assumption */
-#if defined(HAVE_GETTIMEOFDAY)
- mti->microseconds.routine= MY_TIMER_ROUTINE_GETTIMEOFDAY;
-#elif defined(_WIN32)
- {
- LARGE_INTEGER li;
- /* Windows: typical frequency = 3579545, actually 1/3 microsecond. */
- if (!QueryPerformanceFrequency(&li))
- mti->microseconds.routine= 0;
- else
- {
- mti->microseconds.frequency= li.QuadPart;
- mti->microseconds.routine= MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER;
- }
- }
-#else
- mti->microseconds.routine= 0;
-#endif
- if (!mti->microseconds.routine || !my_timer_microseconds())
- {
- mti->microseconds.routine= 0;
- mti->microseconds.resolution= 0;
- mti->microseconds.frequency= 0;
- mti->microseconds.overhead= 0;
- }
-
- /* milliseconds */
- mti->milliseconds.frequency= 1000; /* initial assumption */
-#if defined(HAVE_SYS_TIMEB_H) && defined(HAVE_FTIME)
- mti->milliseconds.routine= MY_TIMER_ROUTINE_FTIME;
-#elif defined(_WIN32)
- mti->milliseconds.routine= MY_TIMER_ROUTINE_GETSYSTEMTIMEASFILETIME;
-#elif defined(HAVE_TIME)
- mti->milliseconds.routine= MY_TIMER_ROUTINE_TIME;
-#else
- mti->milliseconds.routine= 0;
-#endif
- if (!mti->milliseconds.routine || !my_timer_milliseconds())
- {
- mti->milliseconds.routine= 0;
- mti->milliseconds.resolution= 0;
- mti->milliseconds.frequency= 0;
- mti->milliseconds.overhead= 0;
- }
-
- /* ticks */
- mti->ticks.frequency= 100; /* permanent assumption */
-#if defined(HAVE_SYS_TIMES_H) && defined(HAVE_TIMES)
- mti->ticks.routine= MY_TIMER_ROUTINE_TIMES;
-#elif defined(_WIN32)
- mti->ticks.routine= MY_TIMER_ROUTINE_GETTICKCOUNT;
-#else
- mti->ticks.routine= 0;
-#endif
- if (!mti->ticks.routine || !my_timer_ticks())
- {
- mti->ticks.routine= 0;
- mti->ticks.resolution= 0;
- mti->ticks.frequency= 0;
- mti->ticks.overhead= 0;
- }
-
- /*
- Calculate overhead in terms of the timer that
- gives the best resolution: cycles or nanoseconds.
- I doubt it ever will be as bad as microseconds.
- */
- if (mti->cycles.routine)
- best_timer= &my_timer_cycles;
- else
- {
- if (mti->nanoseconds.routine)
- {
- best_timer= &my_timer_nanoseconds;
- }
- else
- best_timer= &my_timer_microseconds;
- }
-
- /* best_timer_overhead = least of 20 calculations */
- for (i= 0, best_timer_overhead= 1000000000; i < 20; ++i)
- {
- time1= best_timer();
- time2= best_timer() - time1;
- if (best_timer_overhead > time2)
- best_timer_overhead= time2;
- }
- if (mti->cycles.routine)
- my_timer_init_overhead(&mti->cycles.overhead,
- best_timer,
- &my_timer_cycles,
- best_timer_overhead);
- if (mti->nanoseconds.routine)
- my_timer_init_overhead(&mti->nanoseconds.overhead,
- best_timer,
- &my_timer_nanoseconds,
- best_timer_overhead);
- if (mti->microseconds.routine)
- my_timer_init_overhead(&mti->microseconds.overhead,
- best_timer,
- &my_timer_microseconds,
- best_timer_overhead);
- if (mti->milliseconds.routine)
- my_timer_init_overhead(&mti->milliseconds.overhead,
- best_timer,
- &my_timer_milliseconds,
- best_timer_overhead);
- if (mti->ticks.routine)
- my_timer_init_overhead(&mti->ticks.overhead,
- best_timer,
- &my_timer_ticks,
- best_timer_overhead);
-
-/*
- Calculate resolution for nanoseconds or microseconds
- or milliseconds, by seeing if it's always divisible
- by 1000, and by noticing how much jumping occurs.
- For ticks, just assume the resolution is 1.
-*/
- if (mti->cycles.routine)
- mti->cycles.resolution= 1;
- if (mti->nanoseconds.routine)
- mti->nanoseconds.resolution=
- my_timer_init_resolution(&my_timer_nanoseconds, 20000);
- if (mti->microseconds.routine)
- mti->microseconds.resolution=
- my_timer_init_resolution(&my_timer_microseconds, 20);
- if (mti->milliseconds.routine)
- {
- if (mti->milliseconds.routine == MY_TIMER_ROUTINE_TIME)
- mti->milliseconds.resolution= 1000;
- else
- mti->milliseconds.resolution=
- my_timer_init_resolution(&my_timer_milliseconds, 0);
- }
- if (mti->ticks.routine)
- mti->ticks.resolution= 1;
-
-/*
- Calculate cycles frequency,
- if we have both a cycles routine and a microseconds routine.
- In tests, this usually results in a figure within 2% of
- what "cat /proc/cpuinfo" says.
- If the microseconds routine is QueryPerformanceCounter
- (i.e. it's Windows), and the microseconds frequency is >
- 500,000,000 (i.e. it's Windows Server so it uses RDTSC)
- and the microseconds resolution is > 100 (i.e. dreadful),
- then calculate cycles frequency = microseconds frequency.
-*/
- if (mti->cycles.routine
- && mti->microseconds.routine)
- {
- if (mti->microseconds.routine ==
- MY_TIMER_ROUTINE_QUERYPERFORMANCECOUNTER
- && mti->microseconds.frequency > 500000000
- && mti->microseconds.resolution > 100)
- mti->cycles.frequency= mti->microseconds.frequency;
- else
- {
- ulonglong time1, time2;
- time1= my_timer_init_frequency(mti);
- /* Repeat once in case there was an interruption. */
- time2= my_timer_init_frequency(mti);
- if (time1 < time2) mti->cycles.frequency= time1;
- else mti->cycles.frequency= time2;
- }
- }
-
-/*
- Calculate milliseconds frequency =
- (cycles-frequency/#-of-cycles) * #-of-milliseconds,
- if we have both a milliseconds routine and a cycles
- routine.
- This will be inaccurate if milliseconds resolution > 1.
- This is probably only useful when testing new platforms.
-*/
- if (mti->milliseconds.routine
- && mti->milliseconds.resolution < 1000
- && mti->microseconds.routine
- && mti->cycles.routine)
- {
- int i;
- ulonglong time1, time2, time3, time4;
- time1= my_timer_cycles();
- time2= my_timer_milliseconds();
- time3= time2; /* Avoids a Microsoft/IBM compiler warning */
- for (i= 0; i < MY_TIMER_ITERATIONS * 1000; ++i)
- {
- time3= my_timer_milliseconds();
- if (time3 - time2 > 10) break;
- }
- time4= my_timer_cycles();
- mti->milliseconds.frequency=
- (mti->cycles.frequency * (time3 - time2)) / (time4 - time1);
- }
-
-/*
- Calculate ticks.frequency =
- (cycles-frequency/#-of-cycles * #-of-ticks,
- if we have both a ticks routine and a cycles
- routine,
- This is probably only useful when testing new platforms.
-*/
- if (mti->ticks.routine
- && mti->microseconds.routine
- && mti->cycles.routine)
- {
- int i;
- ulonglong time1, time2, time3, time4;
- time1= my_timer_cycles();
- time2= my_timer_ticks();
- time3= time2; /* Avoids a Microsoft/IBM compiler warning */
- for (i= 0; i < MY_TIMER_ITERATIONS * 1000; ++i)
- {
- time3= my_timer_ticks();
- if (time3 - time2 > 10) break;
- }
- time4= my_timer_cycles();
- mti->ticks.frequency=
- (mti->cycles.frequency * (time3 - time2)) / (time4 - time1);
- }
-}
-
-/*
- Additional Comments
- -------------------
-
- This is for timing, i.e. finding out how long a piece of code
- takes. If you want time of day matching a wall clock, the
- my_timer_xxx functions won't help you.
-
- The best timer is the one with highest frequency, lowest
- overhead, and resolution=1. The my_timer_info() routine will tell
- you at runtime which timer that is. Usually it will be
- my_timer_cycles() but be aware that, although it's best,
- it has possible flaws and dangers. Depending on platform:
- - The frequency might change. We don't test for this. It
- happens on laptops for power saving, and on blade servers
- for avoiding overheating.
- - The overhead that my_timer_init() returns is the minimum.
- In fact it could be slightly greater because of caching or
- because you call the routine by address, as recommended.
- It could be hugely greater if there's an interrupt.
- - The x86 cycle counter, RDTSC doesn't "serialize". That is,
- if there is out-of-order execution, rdtsc might be processed
- after an instruction that logically follows it.
- (We could force serialization, but that would be slower.)
- - It is possible to set a flag which renders RDTSC
- inoperative. Somebody responsible for the kernel
- of the operating system would have to make this
- decision. For the platforms we've tested with, there's
- no such problem.
- - With a multi-processor arrangement, it's possible
- to get the cycle count from one processor in
- thread X, and the cycle count from another processor
- in thread Y. They may not always be in synch.
- - You can't depend on a cycle counter being available for
- all platforms. On Alphas, the
- cycle counter is only 32-bit, so it would overflow quickly,
- so we don't bother with it. On platforms that we haven't
- tested, there might be some if/endif combination that we
- didn't expect, or some assembler routine that we didn't
- supply.
-
- The recommended way to use the timer routines is:
- 1. Somewhere near the beginning of the program, call
- my_timer_init(). This should only be necessary once,
- although you can call it again if you think that the
- frequency has changed.
- 2. Determine the best timer based on frequency, resolution,
- overhead -- all things that my_timer_init() returns.
- Preserve the address of the timer and the my_timer_into
- results in an easily-accessible place.
- 3. Instrument the code section that you're monitoring, thus:
- time1= my_timer_xxx();
- Instrumented code;
- time2= my_timer_xxx();
- elapsed_time= (time2 - time1) - overhead;
- If the timer is always on, then overhead is always there,
- so don't subtract it.
- 4. Save the elapsed time, or add it to a totaller.
- 5. When all timing processes are complete, transfer the
- saved / totalled elapsed time to permanent storage.
- Optionally you can convert cycles to microseconds at
- this point. (Don't do so every time you calculate
- elapsed_time! That would waste time and lose precision!)
- For converting cycles to microseconds, use the frequency
- that my_timer_init() returns. You'll also need to convert
- if the my_timer_microseconds() function is the Windows
- function QueryPerformanceCounter(), since that's sometimes
- a counter with precision slightly better than microseconds.
-
- Since we recommend calls by function pointer, we supply
- no inline functions.
-
- Some comments on the many candidate routines for timing ...
-
- clock() -- We don't use because it would overflow frequently.
-
- clock_gettime() -- In tests, clock_gettime often had
- resolution = 1000.
-
- ftime() -- A "man ftime" says: "This function is obsolete.
- Don't use it." On every platform that we tested, if ftime()
- was available, then so was gettimeofday(), and gettimeofday()
- overhead was always at least as good as ftime() overhead.
-
- gettimeofday() -- available on most platforms, though not
- on Windows. There is a hardware timer (sometimes a Programmable
- Interrupt Timer or "PIT") (sometimes a "HPET") used for
- interrupt generation. When it interrupts (a "tick" or "jiffy",
- typically 1 centisecond) it sets xtime. For gettimeofday, a
- Linux kernel routine usually gets xtime and then gets rdtsc
- to get elapsed nanoseconds since the last tick. On Red Hat
- Enterprise Linux 3, there was once a bug which caused the
- resolution to be 1000, i.e. one centisecond. We never check
- for time-zone change.
-
- getnstimeofday() -- something to watch for in future Linux
-
- do_gettimeofday() -- exists on Linux but not for "userland"
-
- get_cycles() -- a multi-platform function, worth watching
- in future Linux versions. But we found platform-specific
- functions which were better documented in operating-system
- manuals. And get_cycles() can fail or return a useless
- 32-bit number. It might be available on some platforms,
- such as arm, which we didn't test. Using
- "include <linux/timex.h>" or "include <asm/timex.h>"
- can lead to autoconf or compile errors, depending on system.
-
- rdtsc, __rdtsc, rdtscll: available for x86 with Linux BSD,
- Solaris, Windows. See "possible flaws and dangers" comments.
-
- times(): what we use for ticks. Should just read the last
- (xtime) tick count, therefore should be fast, but usually
- isn't.
-
- GetTickCount(): we use this for my_timer_ticks() on
- Windows. Actually it really is a tick counter, so resolution
- >= 10 milliseconds unless you have a very old Windows version.
- With Windows 95 or 98 or ME, timeGetTime() has better resolution than
- GetTickCount (1ms rather than 55ms). But with Windows NT or XP or 2000,
- they're both getting from a variable in the Process Environment Block
- (PEB), and the variable is set by the programmable interrupt timer, so
- the resolution is the same (usually 10-15 milliseconds). Also timeGetTime
- is slower on old machines:
- http://www.doumo.jp/aon-java/jsp/postgretips/tips.jsp?tips=74.
- Also timeGetTime requires linking winmm.lib,
- Therefore we use GetTickCount.
- It will overflow every 49 days because the return is 32-bit.
- There is also a GetTickCount64 but it requires Vista or Windows Server 2008.
- (As for GetSystemTimeAsFileTime, its precision is spurious, it
- just reads the tick variable like the other functions do.
- However, we don't expect it to overflow every 49 days, so we
- will prefer it for my_timer_milliseconds().)
-
- QueryPerformanceCounter() we use this for my_timer_microseconds()
- on Windows. 1-PIT-tick (often 1/3-microsecond). Usually reads
- the PIT so it's slow. On some Windows variants, uses RDTSC.
-
- GetLocalTime() this is available on Windows but we don't use it.
-
- getclock(): documented for Alpha, but not found during tests.
-
- mach_absolute_time() and UpTime() are recommended for Apple.
- Inititally they weren't tried, because asm_ppc seems to do the job.
- But now we use mach_absolute_time for nanoseconds.
-
- Any clock-based timer can be affected by NPT (ntpd program),
- which means:
- - full-second correction can occur for leap second
- - tiny corrections can occcur approimately every 11 minutes
- (but I think they only affect the RTC which isn't the PIT).
-
- We define "precision" as "frequency" and "high precision" is
- "frequency better than 1 microsecond". We define "resolution"
- as a synonym for "granularity". We define "accuracy" as
- "closeness to the truth" as established by some authoritative
- clock, but we can't measure accuracy.
-
- Do not expect any of our timers to be monotonic; we
- won't guarantee that they return constantly-increasing
- unique numbers.
-
- We tested with AIX, Solaris (x86 + Sparc), Linux (x86 +
- Itanium), Windows, 64-bit Windows, QNX, FreeBSD, HPUX,
- Irix, Mac. We didn't test with SCO.
-
-*/
-
diff --git a/dep/mysqllite/mysys/my_read.c b/dep/mysqllite/mysys/my_read.c
deleted file mode 100644
index dbe9006a1d3..00000000000
--- a/dep/mysqllite/mysys/my_read.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <my_base.h>
-#include <errno.h>
-
-/*
- Read a chunk of bytes from a file with retry's if needed
-
- The parameters are:
- File descriptor
- Buffer to hold at least Count bytes
- Bytes to read
- Flags on what to do on error
-
- Return:
- -1 on error
- 0 if flag has bits MY_NABP or MY_FNABP set
- N number of bytes read.
-*/
-
-size_t my_read(File Filedes, uchar *Buffer, size_t Count, myf MyFlags)
-{
- size_t readbytes, save_count;
- DBUG_ENTER("my_read");
- DBUG_PRINT("my",("fd: %d Buffer: %p Count: %lu MyFlags: %d",
- Filedes, Buffer, (ulong) Count, MyFlags));
- save_count= Count;
-
- for (;;)
- {
- errno= 0; /* Linux, Windows don't reset this on EOF/success */
-#ifdef _WIN32
- readbytes= my_win_read(Filedes, Buffer, Count);
-#else
- readbytes= read(Filedes, Buffer, Count);
-#endif
-
- if (readbytes != Count)
- {
- my_errno= errno;
- if (errno == 0 || (readbytes != (size_t) -1 &&
- (MyFlags & (MY_NABP | MY_FNABP))))
- my_errno= HA_ERR_FILE_TOO_SHORT;
- DBUG_PRINT("warning",("Read only %d bytes off %lu from %d, errno: %d",
- (int) readbytes, (ulong) Count, Filedes,
- my_errno));
-
- if ((readbytes == 0 || (int) readbytes == -1) && errno == EINTR)
- {
- DBUG_PRINT("debug", ("my_read() was interrupted and returned %ld",
- (long) readbytes));
- continue; /* Interrupted */
- }
-
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- if (readbytes == (size_t) -1)
- my_error(EE_READ, MYF(ME_BELL+ME_WAITTANG),
- my_filename(Filedes),my_errno);
- else if (MyFlags & (MY_NABP | MY_FNABP))
- my_error(EE_EOFERR, MYF(ME_BELL+ME_WAITTANG),
- my_filename(Filedes),my_errno);
- }
- if (readbytes == (size_t) -1 ||
- ((MyFlags & (MY_FNABP | MY_NABP)) && !(MyFlags & MY_FULL_IO)))
- DBUG_RETURN(MY_FILE_ERROR); /* Return with error */
- if (readbytes != (size_t) -1 && (MyFlags & MY_FULL_IO))
- {
- Buffer+= readbytes;
- Count-= readbytes;
- continue;
- }
- }
-
- if (MyFlags & (MY_NABP | MY_FNABP))
- readbytes= 0; /* Ok on read */
- else if (MyFlags & MY_FULL_IO)
- readbytes= save_count;
- break;
- }
- DBUG_RETURN(readbytes);
-} /* my_read */
diff --git a/dep/mysqllite/mysys/my_redel.c b/dep/mysqllite/mysys/my_redel.c
deleted file mode 100644
index 92aa6e42073..00000000000
--- a/dep/mysqllite/mysys/my_redel.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <my_dir.h>
-#include <m_string.h>
-#include "mysys_err.h"
-#if defined(HAVE_UTIME_H)
-#include <utime.h>
-#elif defined(HAVE_SYS_UTIME_H)
-#include <sys/utime.h>
-#elif !defined(HPUX10)
-struct utimbuf {
- time_t actime;
- time_t modtime;
-};
-#endif
-
- /*
- Rename with copy stat form old file
- Copy stats from old file to new file, deletes orginal and
- changes new file name to old file name
-
- if MY_REDEL_MAKE_COPY is given, then the orginal file
- is renamed to org_name-'current_time'.BAK
- */
-
-#define REDEL_EXT ".BAK"
-
-int my_redel(const char *org_name, const char *tmp_name, myf MyFlags)
-{
- int error=1;
- DBUG_ENTER("my_redel");
- DBUG_PRINT("my",("org_name: '%s' tmp_name: '%s' MyFlags: %d",
- org_name,tmp_name,MyFlags));
-
- if (my_copystat(org_name,tmp_name,MyFlags) < 0)
- goto end;
- if (MyFlags & MY_REDEL_MAKE_BACKUP)
- {
- char name_buff[FN_REFLEN+20];
- char ext[20];
- ext[0]='-';
- get_date(ext+1,2+4,(time_t) 0);
- strmov(strend(ext),REDEL_EXT);
- if (my_rename(org_name, fn_format(name_buff, org_name, "", ext, 2),
- MyFlags))
- goto end;
- }
- else if (my_delete_allow_opened(org_name, MyFlags))
- goto end;
- if (my_rename(tmp_name,org_name,MyFlags))
- goto end;
-
- error=0;
-end:
- DBUG_RETURN(error);
-} /* my_redel */
-
-
- /* Copy stat from one file to another */
- /* Return -1 if can't get stat, 1 if wrong type of file */
-
-int my_copystat(const char *from, const char *to, int MyFlags)
-{
- struct stat statbuf;
-
- if (stat(from, &statbuf))
- {
- my_errno=errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_STAT, MYF(ME_BELL+ME_WAITTANG),from,errno);
- return -1; /* Can't get stat on input file */
- }
- if ((statbuf.st_mode & S_IFMT) != S_IFREG)
- return 1;
-
- /* Copy modes */
- if (chmod(to, statbuf.st_mode & 07777))
- {
- my_errno= errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_CHANGE_PERMISSIONS, MYF(ME_BELL+ME_WAITTANG), from, errno);
- return -1;
- }
-
-#if !defined(__WIN__)
- if (statbuf.st_nlink > 1 && MyFlags & MY_LINK_WARNING)
- {
- if (MyFlags & MY_LINK_WARNING)
- my_error(EE_LINK_WARNING,MYF(ME_BELL+ME_WAITTANG),from,statbuf.st_nlink);
- }
- /* Copy ownership */
- if (chown(to, statbuf.st_uid, statbuf.st_gid))
- {
- my_errno= errno;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_CHANGE_OWNERSHIP, MYF(ME_BELL+ME_WAITTANG), from, errno);
- return -1;
- }
-#endif /* !__WIN__ */
-
- if (MyFlags & MY_COPYTIME)
- {
- struct utimbuf timep;
- timep.actime = statbuf.st_atime;
- timep.modtime = statbuf.st_mtime;
- (void) utime((char*) to, &timep);/* Update last accessed and modified times */
- }
-
- return 0;
-} /* my_copystat */
diff --git a/dep/mysqllite/mysys/my_rename.c b/dep/mysqllite/mysys/my_rename.c
deleted file mode 100644
index 1a4e7b2b409..00000000000
--- a/dep/mysqllite/mysys/my_rename.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include <my_dir.h>
-#include "mysys_err.h"
-#include "m_string.h"
-#undef my_rename
-
- /* On unix rename deletes to file if it exists */
-
-int my_rename(const char *from, const char *to, myf MyFlags)
-{
- int error = 0;
- DBUG_ENTER("my_rename");
- DBUG_PRINT("my",("from %s to %s MyFlags %d", from, to, MyFlags));
-
-#if defined(HAVE_FILE_VERSIONS)
- { /* Check that there isn't a old file */
- int save_errno;
- MY_STAT my_stat_result;
- save_errno=my_errno;
- if (my_stat(to,&my_stat_result,MYF(0)))
- {
- my_errno=EEXIST;
- error= -1;
- if (MyFlags & MY_FAE+MY_WME)
- my_error(EE_LINK, MYF(ME_BELL+ME_WAITTANG),from,to,my_errno);
- DBUG_RETURN(error);
- }
- my_errno=save_errno;
- }
-#endif
-#if defined(HAVE_RENAME)
-#if defined(__WIN__)
- /*
- On windows we can't rename over an existing file:
- Remove any conflicting files:
- */
- (void) my_delete(to, MYF(0));
-#endif
- if (rename(from,to))
-#else
- if (link(from, to) || unlink(from))
-#endif
- {
- my_errno=errno;
- error = -1;
- if (MyFlags & (MY_FAE+MY_WME))
- my_error(EE_LINK, MYF(ME_BELL+ME_WAITTANG),from,to,my_errno);
- }
- else if (MyFlags & MY_SYNC_DIR)
- {
-#ifdef NEED_EXPLICIT_SYNC_DIR
- /* do only the needed amount of syncs: */
- char dir_from[FN_REFLEN], dir_to[FN_REFLEN];
- size_t dir_from_length, dir_to_length;
- dirname_part(dir_from, from, &dir_from_length);
- dirname_part(dir_to, to, &dir_to_length);
- if (my_sync_dir(dir_from, MyFlags) ||
- (strcmp(dir_from, dir_to) &&
- my_sync_dir(dir_to, MyFlags)))
- error= -1;
-#endif
- }
- DBUG_RETURN(error);
-} /* my_rename */
diff --git a/dep/mysqllite/mysys/my_seek.c b/dep/mysqllite/mysys/my_seek.c
deleted file mode 100644
index ca12a2e95d1..00000000000
--- a/dep/mysqllite/mysys/my_seek.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-
-/*
- Seek to a position in a file.
-
- ARGUMENTS
- File fd The file descriptor
- my_off_t pos The expected position (absolute or relative)
- int whence A direction parameter and one of
- {SEEK_SET, SEEK_CUR, SEEK_END}
- myf MyFlags MY_THREADSAFE must be set in case my_seek may be mixed
- with my_pread/my_pwrite calls and fd is shared among
- threads.
-
- DESCRIPTION
- The my_seek function is a wrapper around the system call lseek and
- repositions the offset of the file descriptor fd to the argument
- offset according to the directive whence as follows:
- SEEK_SET The offset is set to offset bytes.
- SEEK_CUR The offset is set to its current location plus offset bytes
- SEEK_END The offset is set to the size of the file plus offset bytes
-
- RETURN VALUE
- my_off_t newpos The new position in the file.
- MY_FILEPOS_ERROR An error was encountered while performing
- the seek. my_errno is set to indicate the
- actual error.
-*/
-
-my_off_t my_seek(File fd, my_off_t pos, int whence, myf MyFlags)
-{
- os_off_t newpos= -1;
- DBUG_ENTER("my_seek");
- DBUG_PRINT("my",("fd: %d Pos: %llu Whence: %d MyFlags: %d",
- fd, (ulonglong) pos, whence, MyFlags));
- DBUG_ASSERT(pos != MY_FILEPOS_ERROR); /* safety check */
-
- /*
- Make sure we are using a valid file descriptor!
- */
- DBUG_ASSERT(fd != -1);
-#if defined (_WIN32)
- newpos= my_win_lseek(fd, pos, whence);
-#else
- newpos= lseek(fd, pos, whence);
-#endif
- if (newpos == (os_off_t) -1)
- {
- my_errno= errno;
- if (MyFlags & MY_WME)
- my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), my_errno);
- DBUG_PRINT("error", ("lseek: %llu errno: %d", (ulonglong) newpos, errno));
- DBUG_RETURN(MY_FILEPOS_ERROR);
- }
- if ((my_off_t) newpos != pos)
- {
- DBUG_PRINT("exit",("pos: %llu", (ulonglong) newpos));
- }
- DBUG_RETURN((my_off_t) newpos);
-} /* my_seek */
-
-
- /* Tell current position of file */
- /* ARGSUSED */
-
-my_off_t my_tell(File fd, myf MyFlags)
-{
- os_off_t pos;
- DBUG_ENTER("my_tell");
- DBUG_PRINT("my",("fd: %d MyFlags: %d",fd, MyFlags));
- DBUG_ASSERT(fd >= 0);
-#if defined (HAVE_TELL) && !defined (_WIN32)
- pos= tell(fd);
-#else
- pos= my_seek(fd, 0L, MY_SEEK_CUR,0);
-#endif
- if (pos == (os_off_t) -1)
- {
- my_errno= errno;
- if (MyFlags & MY_WME)
- my_error(EE_CANT_SEEK, MYF(0), my_filename(fd), my_errno);
- DBUG_PRINT("error", ("tell: %llu errno: %d", (ulonglong) pos, my_errno));
- }
- DBUG_PRINT("exit",("pos: %llu", (ulonglong) pos));
- DBUG_RETURN((my_off_t) pos);
-} /* my_tell */
diff --git a/dep/mysqllite/mysys/my_sleep.c b/dep/mysqllite/mysys/my_sleep.c
deleted file mode 100644
index 6d1bdd5dc55..00000000000
--- a/dep/mysqllite/mysys/my_sleep.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Wait a given number of microseconds */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-void my_sleep(ulong m_seconds)
-{
-#if defined(__WIN__)
- Sleep(m_seconds/1000+1); /* Sleep() has millisecond arg */
-#elif defined(HAVE_SELECT)
- struct timeval t;
- t.tv_sec= m_seconds / 1000000L;
- t.tv_usec= m_seconds % 1000000L;
- select(0,0,0,0,&t); /* sleep */
-#else
- uint sec= (uint) (m_seconds / 1000000L);
- ulong start= (ulong) time((time_t*) 0);
- while ((ulong) time((time_t*) 0) < start+sec);
-#endif
-}
diff --git a/dep/mysqllite/mysys/my_static.c b/dep/mysqllite/mysys/my_static.c
deleted file mode 100644
index ec8d66ab0cf..00000000000
--- a/dep/mysqllite/mysys/my_static.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Static variables for mysys library. All definied here for easy making of
- a shared library
-*/
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include "my_alarm.h"
-
-my_bool timed_mutexes= 0;
-
- /* from my_init */
-char * home_dir=0;
-const char *my_progname=0;
-char curr_dir[FN_REFLEN]= {0},
- home_dir_buff[FN_REFLEN]= {0};
-ulong my_stream_opened=0,my_file_opened=0, my_tmp_file_created=0;
-ulong my_file_total_opened= 0;
-int my_umask=0664, my_umask_dir=0777;
-
-struct st_my_file_info my_file_info_default[MY_NFILE];
-uint my_file_limit= MY_NFILE;
-struct st_my_file_info *my_file_info= my_file_info_default;
-
- /* From mf_brkhant */
-int my_dont_interrupt=0;
-volatile int _my_signals=0;
-struct st_remember _my_sig_remember[MAX_SIGNALS]={{0,0}};
-
- /* from mf_reccache.c */
-ulong my_default_record_cache_size=RECORD_CACHE_SIZE;
-
- /* from soundex.c */
- /* ABCDEFGHIJKLMNOPQRSTUVWXYZ */
- /* :::::::::::::::::::::::::: */
-const char *soundex_map= "01230120022455012623010202";
-
- /* from my_malloc */
-USED_MEM* my_once_root_block=0; /* pointer to first block */
-uint my_once_extra=ONCE_ALLOC_INIT; /* Memory to alloc / block */
-
- /* from my_largepage.c */
-#ifdef HAVE_LARGE_PAGES
-my_bool my_use_large_pages= 0;
-uint my_large_page_size= 0;
-#endif
-
- /* from my_alarm */
-int volatile my_have_got_alarm=0; /* declare variable to reset */
-ulong my_time_to_wait_for_lock=2; /* In seconds */
-
- /* from errors.c */
-#ifdef SHARED_LIBRARY
-const char *globerrs[GLOBERRS]; /* my_error_messages is here */
-#endif
-void (*my_abort_hook)(int) = (void(*)(int)) exit;
-void (*error_handler_hook)(uint error, const char *str, myf MyFlags)=
- my_message_stderr;
-void (*fatal_error_handler_hook)(uint error, const char *str, myf MyFlags)=
- my_message_stderr;
-
-static const char *proc_info_dummy(void *a __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *c __attribute__((unused)),
- const char *d __attribute__((unused)),
- const unsigned int e __attribute__((unused)))
-{
- return 0;
-}
-
-/* this is to be able to call set_thd_proc_info from the C code */
-const char *(*proc_info_hook)(void *, const char *, const char *, const char *,
- const unsigned int)= proc_info_dummy;
-
-#if defined(ENABLED_DEBUG_SYNC)
-/**
- Global pointer to be set if callback function is defined
- (e.g. in mysqld). See sql/debug_sync.cc.
-*/
-void (*debug_sync_C_callback_ptr)(const char *, size_t);
-#endif /* defined(ENABLED_DEBUG_SYNC) */
-
-#ifdef __WIN__
-/* from my_getsystime.c */
-ulonglong query_performance_frequency, query_performance_offset;
-#endif
-
- /* How to disable options */
-my_bool my_disable_locking=0;
-my_bool my_disable_async_io=0;
-my_bool my_disable_flush_key_blocks=0;
-my_bool my_disable_symlinks=0;
-
-/*
- Note that PSI_hook and PSI_server are unconditionally
- (no ifdef HAVE_PSI_INTERFACE) defined.
- This is to ensure binary compatibility between the server and plugins,
- in the case when:
- - the server is not compiled with HAVE_PSI_INTERFACE
- - a plugin is compiled with HAVE_PSI_INTERFACE
- See the doxygen documentation for the performance schema.
-*/
-
-/**
- Hook for the instrumentation interface.
- Code implementing the instrumentation interface should register here.
-*/
-struct PSI_bootstrap *PSI_hook= NULL;
-
-/**
- Instance of the instrumentation interface for the MySQL server.
- @todo This is currently a global variable, which is handy when
- compiling instrumented code that is bundled with the server.
- When dynamic plugin are truly supported, this variable will need
- to be replaced by a macro, so that each XYZ plugin can have it's own
- xyz_psi_server variable, obtained from PSI_bootstrap::get_interface()
- with the version used at compile time for plugin XYZ.
-*/
-PSI *PSI_server= NULL;
-
diff --git a/dep/mysqllite/mysys/my_static.h b/dep/mysqllite/mysys/my_static.h
deleted file mode 100644
index 7fde15ff133..00000000000
--- a/dep/mysqllite/mysys/my_static.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef MYSYS_MY_STATIC_INCLUDED
-#define MYSYS_MY_STATIC_INCLUDED
-
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Static variables for mysys library. All definied here for easy making of
- a shared library
-*/
-
-C_MODE_START
-#include <signal.h>
-
-#define MAX_SIGNALS 10 /* Max signals under a dont-allow */
-
-struct st_remember {
- int number;
- sig_handler (*func)(int number);
-};
-
-extern char curr_dir[FN_REFLEN], home_dir_buff[FN_REFLEN];
-
-extern volatile int _my_signals;
-extern struct st_remember _my_sig_remember[MAX_SIGNALS];
-
-extern const char *soundex_map;
-
-extern USED_MEM* my_once_root_block;
-extern uint my_once_extra;
-
-extern struct st_my_file_info my_file_info_default[MY_NFILE];
-
-extern ulonglong query_performance_frequency, query_performance_offset;
-
-C_MODE_END
-
-#endif /* MYSYS_MY_STATIC_INCLUDED */
diff --git a/dep/mysqllite/mysys/my_symlink.c b/dep/mysqllite/mysys/my_symlink.c
deleted file mode 100644
index 053fc887fe8..00000000000
--- a/dep/mysqllite/mysys/my_symlink.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <m_string.h>
-#include <errno.h>
-#ifdef HAVE_REALPATH
-#include <sys/param.h>
-#include <sys/stat.h>
-#endif
-
-/*
- Reads the content of a symbolic link
- If the file is not a symbolic link, return the original file name in to.
-
- RETURN
- 0 If filename was a symlink, (to will be set to value of symlink)
- 1 If filename was a normal file (to will be set to filename)
- -1 on error.
-*/
-
-int my_readlink(char *to, const char *filename, myf MyFlags)
-{
-#ifndef HAVE_READLINK
- strmov(to,filename);
- return 1;
-#else
- int result=0;
- int length;
- DBUG_ENTER("my_readlink");
-
- if ((length=readlink(filename, to, FN_REFLEN-1)) < 0)
- {
- /* Don't give an error if this wasn't a symlink */
- if ((my_errno=errno) == EINVAL)
- {
- result= 1;
- strmov(to,filename);
- }
- else
- {
- if (MyFlags & MY_WME)
- my_error(EE_CANT_READLINK, MYF(0), filename, errno);
- result= -1;
- }
- }
- else
- to[length]=0;
- DBUG_PRINT("exit" ,("result: %d", result));
- DBUG_RETURN(result);
-#endif /* HAVE_READLINK */
-}
-
-
-/* Create a symbolic link */
-
-int my_symlink(const char *content, const char *linkname, myf MyFlags)
-{
-#ifndef HAVE_READLINK
- return 0;
-#else
- int result;
- DBUG_ENTER("my_symlink");
- DBUG_PRINT("enter",("content: %s linkname: %s", content, linkname));
-
- result= 0;
- if (symlink(content, linkname))
- {
- result= -1;
- my_errno=errno;
- if (MyFlags & MY_WME)
- my_error(EE_CANT_SYMLINK, MYF(0), linkname, content, errno);
- }
- else if ((MyFlags & MY_SYNC_DIR) && my_sync_dir_by_file(linkname, MyFlags))
- result= -1;
- DBUG_RETURN(result);
-#endif /* HAVE_READLINK */
-}
-
-#if defined(SCO)
-#define BUFF_LEN 4097
-#elif defined(MAXPATHLEN)
-#define BUFF_LEN MAXPATHLEN
-#else
-#define BUFF_LEN FN_LEN
-#endif
-
-
-int my_is_symlink(const char *filename __attribute__((unused)))
-{
-#if defined (HAVE_LSTAT) && defined (S_ISLNK)
- struct stat stat_buff;
- return !lstat(filename, &stat_buff) && S_ISLNK(stat_buff.st_mode);
-#elif defined (_WIN32)
- DWORD dwAttr = GetFileAttributes(filename);
- return (dwAttr != INVALID_FILE_ATTRIBUTES) &&
- (dwAttr & FILE_ATTRIBUTE_REPARSE_POINT);
-#else /* No symlinks */
- return 0;
-#endif
-}
-
-/*
- Resolve all symbolic links in path
- 'to' may be equal to 'filename'
-*/
-
-int my_realpath(char *to, const char *filename, myf MyFlags)
-{
-#if defined(HAVE_REALPATH) && !defined(HAVE_BROKEN_REALPATH)
- int result=0;
- char buff[BUFF_LEN];
- char *ptr;
- DBUG_ENTER("my_realpath");
-
- DBUG_PRINT("info",("executing realpath"));
- if ((ptr=realpath(filename,buff)))
- strmake(to,ptr,FN_REFLEN-1);
- else
- {
- /*
- Realpath didn't work; Use my_load_path() which is a poor substitute
- original name but will at least be able to resolve paths that starts
- with '.'.
- */
- DBUG_PRINT("error",("realpath failed with errno: %d", errno));
- my_errno=errno;
- if (MyFlags & MY_WME)
- my_error(EE_REALPATH, MYF(0), filename, my_errno);
- my_load_path(to, filename, NullS);
- result= -1;
- }
- DBUG_RETURN(result);
-#else
-#ifdef _WIN32
- int ret= GetFullPathName(filename,FN_REFLEN,
- to,
- NULL);
- if (ret == 0 || ret > FN_REFLEN)
- {
- if (ret > FN_REFLEN)
- my_errno= ENAMETOOLONG;
- else
- my_errno= EACCES;
- if (MyFlags & MY_WME)
- my_error(EE_REALPATH, MYF(0), filename, my_errno);
- return -1;
- }
-#else
- my_load_path(to, filename, NullS);
-#endif
- return 0;
-#endif
-}
diff --git a/dep/mysqllite/mysys/my_symlink2.c b/dep/mysqllite/mysys/my_symlink2.c
deleted file mode 100644
index 7c3ddbb911c..00000000000
--- a/dep/mysqllite/mysys/my_symlink2.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Advanced symlink handling.
- This is used in MyISAM to let users symlinks tables to different disk.
- The main idea with these functions is to automaticly create, delete and
- rename files and symlinks like they would be one unit.
-*/
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <m_string.h>
-
-File my_create_with_symlink(const char *linkname, const char *filename,
- int createflags, int access_flags, myf MyFlags)
-{
- File file;
- int tmp_errno;
- /* Test if we should create a link */
- int create_link;
- char abs_linkname[FN_REFLEN];
- DBUG_ENTER("my_create_with_symlink");
- DBUG_PRINT("enter", ("linkname: %s filename: %s",
- linkname ? linkname : "(null)",
- filename ? filename : "(null)"));
-
- if (my_disable_symlinks)
- {
- DBUG_PRINT("info", ("Symlinks disabled"));
- /* Create only the file, not the link and file */
- create_link= 0;
- if (linkname)
- filename= linkname;
- }
- else
- {
- if (linkname)
- my_realpath(abs_linkname, linkname, MYF(0));
- create_link= (linkname && strcmp(abs_linkname,filename));
- }
-
- if (!(MyFlags & MY_DELETE_OLD))
- {
- if (!access(filename,F_OK))
- {
- my_errno= errno= EEXIST;
- my_error(EE_CANTCREATEFILE, MYF(0), filename, EEXIST);
- DBUG_RETURN(-1);
- }
- if (create_link && !access(linkname,F_OK))
- {
- my_errno= errno= EEXIST;
- my_error(EE_CANTCREATEFILE, MYF(0), linkname, EEXIST);
- DBUG_RETURN(-1);
- }
- }
-
- if ((file=my_create(filename, createflags, access_flags, MyFlags)) >= 0)
- {
- if (create_link)
- {
- /* Delete old link/file */
- if (MyFlags & MY_DELETE_OLD)
- my_delete(linkname, MYF(0));
- /* Create link */
- if (my_symlink(filename, linkname, MyFlags))
- {
- /* Fail, remove everything we have done */
- tmp_errno=my_errno;
- my_close(file,MYF(0));
- my_delete(filename, MYF(0));
- file= -1;
- my_errno=tmp_errno;
- }
- }
- }
- DBUG_RETURN(file);
-}
-
-/*
- If the file was a symlink, delete both symlink and the file which the
- symlink pointed to.
-*/
-
-int my_delete_with_symlink(const char *name, myf MyFlags)
-{
- char link_name[FN_REFLEN];
- int was_symlink= (!my_disable_symlinks &&
- !my_readlink(link_name, name, MYF(0)));
- int result;
- DBUG_ENTER("my_delete_with_symlink");
-
- if (!(result=my_delete(name, MyFlags)))
- {
- if (was_symlink)
- result=my_delete(link_name, MyFlags);
- }
- DBUG_RETURN(result);
-}
-
-/*
- If the file is a normal file, just rename it.
- If the file is a symlink:
- - Create a new file with the name 'to' that points at
- symlink_dir/basename(to)
- - Rename the symlinked file to symlink_dir/basename(to)
- - Delete 'from'
- If something goes wrong, restore everything.
-*/
-
-int my_rename_with_symlink(const char *from, const char *to, myf MyFlags)
-{
-#ifndef HAVE_READLINK
- return my_rename(from, to, MyFlags);
-#else
- char link_name[FN_REFLEN], tmp_name[FN_REFLEN];
- int was_symlink= (!my_disable_symlinks &&
- !my_readlink(link_name, from, MYF(0)));
- int result=0;
- int name_is_different;
- DBUG_ENTER("my_rename_with_symlink");
-
- if (!was_symlink)
- DBUG_RETURN(my_rename(from, to, MyFlags));
-
- /* Change filename that symlink pointed to */
- strmov(tmp_name, to);
- fn_same(tmp_name,link_name,1); /* Copy dir */
- name_is_different= strcmp(link_name, tmp_name);
- if (name_is_different && !access(tmp_name, F_OK))
- {
- my_errno= EEXIST;
- if (MyFlags & MY_WME)
- my_error(EE_CANTCREATEFILE, MYF(0), tmp_name, EEXIST);
- DBUG_RETURN(1);
- }
-
- /* Create new symlink */
- if (my_symlink(tmp_name, to, MyFlags))
- DBUG_RETURN(1);
-
- /*
- Rename symlinked file if the base name didn't change.
- This can happen if you use this function where 'from' and 'to' has
- the same basename and different directories.
- */
-
- if (name_is_different && my_rename(link_name, tmp_name, MyFlags))
- {
- int save_errno=my_errno;
- my_delete(to, MyFlags); /* Remove created symlink */
- my_errno=save_errno;
- DBUG_RETURN(1);
- }
-
- /* Remove original symlink */
- if (my_delete(from, MyFlags))
- {
- int save_errno=my_errno;
- /* Remove created link */
- my_delete(to, MyFlags);
- /* Rename file back */
- if (strcmp(link_name, tmp_name))
- (void) my_rename(tmp_name, link_name, MyFlags);
- my_errno=save_errno;
- result= 1;
- }
- DBUG_RETURN(result);
-#endif /* HAVE_READLINK */
-}
diff --git a/dep/mysqllite/mysys/my_sync.c b/dep/mysqllite/mysys/my_sync.c
deleted file mode 100644
index e33a9342afa..00000000000
--- a/dep/mysqllite/mysys/my_sync.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <errno.h>
-
-/*
- Sync data in file to disk
-
- SYNOPSIS
- my_sync()
- fd File descritor to sync
- my_flags Flags (now only MY_WME is supported)
-
- NOTE
- If file system supports its, only file data is synced, not inode data.
-
- MY_IGNORE_BADFD is useful when fd is "volatile" - not protected by a
- mutex. In this case by the time of fsync(), fd may be already closed by
- another thread, or even reassigned to a different file. With this flag -
- MY_IGNORE_BADFD - such a situation will not be considered an error.
- (which is correct behaviour, if we know that the other thread synced the
- file before closing)
-
- RETURN
- 0 ok
- -1 error
-*/
-
-int my_sync(File fd, myf my_flags)
-{
- int res;
- DBUG_ENTER("my_sync");
- DBUG_PRINT("my",("Fd: %d my_flags: %d", fd, my_flags));
-
- do
- {
-#if defined(F_FULLFSYNC)
- /*
- In Mac OS X >= 10.3 this call is safer than fsync() (it forces the
- disk's cache and guarantees ordered writes).
- */
- if (!(res= fcntl(fd, F_FULLFSYNC, 0)))
- break; /* ok */
- /* Some file systems don't support F_FULLFSYNC and fail above: */
- DBUG_PRINT("info",("fcntl(F_FULLFSYNC) failed, falling back"));
-#endif
-#if defined(HAVE_FDATASYNC) && HAVE_DECL_FDATASYNC
- res= fdatasync(fd);
-#elif defined(HAVE_FSYNC)
- res= fsync(fd);
-#elif defined(_WIN32)
- res= my_win_fsync(fd);
-#else
-#error Cannot find a way to sync a file, durability in danger
- res= 0; /* No sync (strange OS) */
-#endif
- } while (res == -1 && errno == EINTR);
-
- if (res)
- {
- int er= errno;
- if (!(my_errno= er))
- my_errno= -1; /* Unknown error */
- if ((my_flags & MY_IGNORE_BADFD) &&
- (er == EBADF || er == EINVAL || er == EROFS))
- {
- DBUG_PRINT("info", ("ignoring errno %d", er));
- res= 0;
- }
- else if (my_flags & MY_WME)
- my_error(EE_SYNC, MYF(ME_BELL+ME_WAITTANG), my_filename(fd), my_errno);
- }
- DBUG_RETURN(res);
-} /* my_sync */
-
-
-static const char cur_dir_name[]= {FN_CURLIB, 0};
-
-
-/*
- Force directory information to disk.
-
- SYNOPSIS
- my_sync_dir()
- dir_name the name of the directory
- my_flags flags (MY_WME etc)
-
- RETURN
- 0 if ok, !=0 if error
-*/
-
-#ifdef NEED_EXPLICIT_SYNC_DIR
-
-int my_sync_dir(const char *dir_name, myf my_flags)
-{
- File dir_fd;
- int res= 0;
- const char *correct_dir_name;
- DBUG_ENTER("my_sync_dir");
- DBUG_PRINT("my",("Dir: '%s' my_flags: %d", dir_name, my_flags));
- /* Sometimes the path does not contain an explicit directory */
- correct_dir_name= (dir_name[0] == 0) ? cur_dir_name : dir_name;
- /*
- Syncing a dir may give EINVAL on tmpfs on Linux, which is ok.
- EIO on the other hand is very important. Hence MY_IGNORE_BADFD.
- */
- if ((dir_fd= my_open(correct_dir_name, O_RDONLY, MYF(my_flags))) >= 0)
- {
- if (my_sync(dir_fd, MYF(my_flags | MY_IGNORE_BADFD)))
- res= 2;
- if (my_close(dir_fd, MYF(my_flags)))
- res= 3;
- }
- else
- res= 1;
- DBUG_RETURN(res);
-}
-
-#else /* NEED_EXPLICIT_SYNC_DIR */
-
-int my_sync_dir(const char *dir_name __attribute__((unused)),
- myf my_flags __attribute__((unused)))
-{
- return 0;
-}
-
-#endif /* NEED_EXPLICIT_SYNC_DIR */
-
-
-/*
- Force directory information to disk.
-
- SYNOPSIS
- my_sync_dir_by_file()
- file_name the name of a file in the directory
- my_flags flags (MY_WME etc)
-
- RETURN
- 0 if ok, !=0 if error
-*/
-
-#ifdef NEED_EXPLICIT_SYNC_DIR
-
-int my_sync_dir_by_file(const char *file_name, myf my_flags)
-{
- char dir_name[FN_REFLEN];
- size_t dir_name_length;
- dirname_part(dir_name, file_name, &dir_name_length);
- return my_sync_dir(dir_name, my_flags);
-}
-
-#else /* NEED_EXPLICIT_SYNC_DIR */
-
-int my_sync_dir_by_file(const char *file_name __attribute__((unused)),
- myf my_flags __attribute__((unused)))
-{
- return 0;
-}
-
-#endif /* NEED_EXPLICIT_SYNC_DIR */
-
diff --git a/dep/mysqllite/mysys/my_thr_init.c b/dep/mysqllite/mysys/my_thr_init.c
deleted file mode 100644
index c4b56cde850..00000000000
--- a/dep/mysqllite/mysys/my_thr_init.c
+++ /dev/null
@@ -1,533 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Functions to handle initializating and allocationg of all mysys & debug
- thread variables.
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <signal.h>
-
-pthread_key(struct st_my_thread_var*, THR_KEY_mysys);
-mysql_mutex_t THR_LOCK_malloc, THR_LOCK_open,
- THR_LOCK_lock, THR_LOCK_isam, THR_LOCK_myisam, THR_LOCK_heap,
- THR_LOCK_net, THR_LOCK_charset, THR_LOCK_threads, THR_LOCK_time,
- THR_LOCK_myisam_mmap;
-
-mysql_cond_t THR_COND_threads;
-uint THR_thread_count= 0;
-uint my_thread_end_wait_time= 5;
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
-mysql_mutex_t LOCK_localtime_r;
-#endif
-#ifndef HAVE_GETHOSTBYNAME_R
-mysql_mutex_t LOCK_gethostbyname_r;
-#endif
-#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
-pthread_mutexattr_t my_fast_mutexattr;
-#endif
-#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
-pthread_mutexattr_t my_errorcheck_mutexattr;
-#endif
-#ifdef _MSC_VER
-static void install_sigabrt_handler();
-#endif
-#ifdef TARGET_OS_LINUX
-
-/*
- Dummy thread spawned in my_thread_global_init() below to avoid
- race conditions in NPTL pthread_exit code.
-*/
-
-static pthread_handler_t
-nptl_pthread_exit_hack_handler(void *arg __attribute((unused)))
-{
- /* Do nothing! */
- pthread_exit(0);
- return 0;
-}
-
-#endif /* TARGET_OS_LINUX */
-
-
-static uint get_thread_lib(void);
-
-/** True if @c my_thread_basic_global_init() has been called. */
-static my_bool my_thread_basic_global_init_done= 0;
-
-/**
- Perform a minimal initialisation of mysys, when compiled with threads.
- The initialisation performed is sufficient to:
- - allocate memory
- - perform file operations
- - use charsets
- - use my_errno
- @sa my_basic_init
- @sa my_thread_basic_global_reinit
-*/
-my_bool my_thread_basic_global_init(void)
-{
- int pth_ret;
-
- if (my_thread_basic_global_init_done)
- return 0;
- my_thread_basic_global_init_done= 1;
-
-#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
- /*
- Set mutex type to "fast" a.k.a "adaptive"
-
- In this case the thread may steal the mutex from some other thread
- that is waiting for the same mutex. This will save us some
- context switches but may cause a thread to 'starve forever' while
- waiting for the mutex (not likely if the code within the mutex is
- short).
- */
- pthread_mutexattr_init(&my_fast_mutexattr);
- pthread_mutexattr_settype(&my_fast_mutexattr,
- PTHREAD_MUTEX_ADAPTIVE_NP);
-#endif
-
-#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
- /*
- Set mutex type to "errorcheck"
- */
- pthread_mutexattr_init(&my_errorcheck_mutexattr);
- pthread_mutexattr_settype(&my_errorcheck_mutexattr,
- PTHREAD_MUTEX_ERRORCHECK);
-#endif
-
- mysql_mutex_init(key_THR_LOCK_malloc, &THR_LOCK_malloc, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_open, &THR_LOCK_open, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_charset, &THR_LOCK_charset, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_threads, &THR_LOCK_threads, MY_MUTEX_INIT_FAST);
-
- if ((pth_ret= pthread_key_create(&THR_KEY_mysys, NULL)) != 0)
- {
- fprintf(stderr, "Can't initialize threads: error %d\n", pth_ret);
- return 1;
- }
-
- if (my_thread_init())
- return 1;
-
- return 0;
-}
-
-/**
- Re-initialize components initialized early with @c my_thread_basic_global_init.
- Some mutexes were initialized before the instrumentation.
- Destroy + create them again, now that the instrumentation
- is in place.
- This is safe, since this function() is called before creating new threads,
- so the mutexes are not in use.
-*/
-void my_thread_basic_global_reinit(void)
-{
- struct st_my_thread_var *tmp;
-
- DBUG_ASSERT(my_thread_basic_global_init_done);
-
-#ifdef HAVE_PSI_INTERFACE
- my_init_mysys_psi_keys();
-#endif
-
- mysql_mutex_destroy(&THR_LOCK_malloc);
- mysql_mutex_init(key_THR_LOCK_malloc, &THR_LOCK_malloc, MY_MUTEX_INIT_FAST);
-
- mysql_mutex_destroy(&THR_LOCK_open);
- mysql_mutex_init(key_THR_LOCK_open, &THR_LOCK_open, MY_MUTEX_INIT_FAST);
-
- mysql_mutex_destroy(&THR_LOCK_charset);
- mysql_mutex_init(key_THR_LOCK_charset, &THR_LOCK_charset, MY_MUTEX_INIT_FAST);
-
- mysql_mutex_destroy(&THR_LOCK_threads);
- mysql_mutex_init(key_THR_LOCK_threads, &THR_LOCK_threads, MY_MUTEX_INIT_FAST);
-
- tmp= my_pthread_getspecific(struct st_my_thread_var*, THR_KEY_mysys);
- DBUG_ASSERT(tmp);
-
- mysql_mutex_destroy(&tmp->mutex);
- mysql_mutex_init(key_my_thread_var_mutex, &tmp->mutex, MY_MUTEX_INIT_FAST);
-
- mysql_cond_destroy(&tmp->suspend);
- mysql_cond_init(key_my_thread_var_suspend, &tmp->suspend, NULL);
-}
-
-/*
- initialize thread environment
-
- SYNOPSIS
- my_thread_global_init()
-
- RETURN
- 0 ok
- 1 error (Couldn't create THR_KEY_mysys)
-*/
-
-my_bool my_thread_global_init(void)
-{
- if (my_thread_basic_global_init())
- return 1;
-
- thd_lib_detected= get_thread_lib();
-
-#ifdef TARGET_OS_LINUX
- /*
- BUG#24507: Race conditions inside current NPTL pthread_exit()
- implementation.
-
- To avoid a possible segmentation fault during concurrent
- executions of pthread_exit(), a dummy thread is spawned which
- initializes internal variables of pthread lib. See bug description
- for a full explanation.
-
- TODO: Remove this code when fixed versions of glibc6 are in common
- use.
- */
- if (thd_lib_detected == THD_LIB_NPTL)
- {
- pthread_t dummy_thread;
- pthread_attr_t dummy_thread_attr;
-
- pthread_attr_init(&dummy_thread_attr);
- pthread_attr_setdetachstate(&dummy_thread_attr, PTHREAD_CREATE_JOINABLE);
-
- if (pthread_create(&dummy_thread,&dummy_thread_attr,
- nptl_pthread_exit_hack_handler, NULL) == 0)
- (void)pthread_join(dummy_thread, NULL);
- }
-#endif /* TARGET_OS_LINUX */
-
- mysql_mutex_init(key_THR_LOCK_lock, &THR_LOCK_lock, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_isam, &THR_LOCK_isam, MY_MUTEX_INIT_SLOW);
- mysql_mutex_init(key_THR_LOCK_myisam, &THR_LOCK_myisam, MY_MUTEX_INIT_SLOW);
- mysql_mutex_init(key_THR_LOCK_myisam_mmap, &THR_LOCK_myisam_mmap, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_heap, &THR_LOCK_heap, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_net, &THR_LOCK_net, MY_MUTEX_INIT_FAST);
- mysql_mutex_init(key_THR_LOCK_time, &THR_LOCK_time, MY_MUTEX_INIT_FAST);
- mysql_cond_init(key_THR_COND_threads, &THR_COND_threads, NULL);
-
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
- mysql_mutex_init(key_LOCK_localtime_r, &LOCK_localtime_r, MY_MUTEX_INIT_SLOW);
-#endif
-#ifndef HAVE_GETHOSTBYNAME_R
- mysql_mutex_init(key_LOCK_gethostbyname_r,
- &LOCK_gethostbyname_r, MY_MUTEX_INIT_SLOW);
-#endif
-
-#ifdef _MSC_VER
- install_sigabrt_handler();
-#endif
-
- if (my_thread_init())
- {
- my_thread_global_end(); /* Clean up */
- return 1;
- }
- return 0;
-}
-
-
-void my_thread_global_end(void)
-{
- struct timespec abstime;
- my_bool all_threads_killed= 1;
-
- set_timespec(abstime, my_thread_end_wait_time);
- mysql_mutex_lock(&THR_LOCK_threads);
- while (THR_thread_count > 0)
- {
- int error= mysql_cond_timedwait(&THR_COND_threads, &THR_LOCK_threads,
- &abstime);
- if (error == ETIMEDOUT || error == ETIME)
- {
-#ifdef HAVE_PTHREAD_KILL
- /*
- We shouldn't give an error here, because if we don't have
- pthread_kill(), programs like mysqld can't ensure that all threads
- are killed when we enter here.
- */
- if (THR_thread_count)
- fprintf(stderr,
- "Error in my_thread_global_end(): %d threads didn't exit\n",
- THR_thread_count);
-#endif
- all_threads_killed= 0;
- break;
- }
- }
- mysql_mutex_unlock(&THR_LOCK_threads);
-
- pthread_key_delete(THR_KEY_mysys);
-#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
- pthread_mutexattr_destroy(&my_fast_mutexattr);
-#endif
-#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
- pthread_mutexattr_destroy(&my_errorcheck_mutexattr);
-#endif
- mysql_mutex_destroy(&THR_LOCK_malloc);
- mysql_mutex_destroy(&THR_LOCK_open);
- mysql_mutex_destroy(&THR_LOCK_lock);
- mysql_mutex_destroy(&THR_LOCK_isam);
- mysql_mutex_destroy(&THR_LOCK_myisam);
- mysql_mutex_destroy(&THR_LOCK_myisam_mmap);
- mysql_mutex_destroy(&THR_LOCK_heap);
- mysql_mutex_destroy(&THR_LOCK_net);
- mysql_mutex_destroy(&THR_LOCK_time);
- mysql_mutex_destroy(&THR_LOCK_charset);
- if (all_threads_killed)
- {
- mysql_mutex_destroy(&THR_LOCK_threads);
- mysql_cond_destroy(&THR_COND_threads);
- }
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
- mysql_mutex_destroy(&LOCK_localtime_r);
-#endif
-#ifndef HAVE_GETHOSTBYNAME_R
- mysql_mutex_destroy(&LOCK_gethostbyname_r);
-#endif
-
- my_thread_basic_global_init_done= 0;
-}
-
-static my_thread_id thread_id= 0;
-
-/*
- Allocate thread specific memory for the thread, used by mysys and dbug
-
- SYNOPSIS
- my_thread_init()
-
- NOTES
- We can't use mutex_locks here if we are using windows as
- we may have compiled the program with SAFE_MUTEX, in which
- case the checking of mutex_locks will not work until
- the pthread_self thread specific variable is initialized.
-
- This function may called multiple times for a thread, for example
- if one uses my_init() followed by mysql_server_init().
-
- RETURN
- 0 ok
- 1 Fatal error; mysys/dbug functions can't be used
-*/
-
-my_bool my_thread_init(void)
-{
- struct st_my_thread_var *tmp;
- my_bool error=0;
-
-#ifdef EXTRA_DEBUG_THREADS
- fprintf(stderr,"my_thread_init(): thread_id: 0x%lx\n",
- (ulong) pthread_self());
-#endif
-
- if (my_pthread_getspecific(struct st_my_thread_var *,THR_KEY_mysys))
- {
-#ifdef EXTRA_DEBUG_THREADS
- fprintf(stderr,"my_thread_init() called more than once in thread 0x%lx\n",
- (long) pthread_self());
-#endif
- goto end;
- }
-
-#ifdef _MSC_VER
- install_sigabrt_handler();
-#endif
-
- if (!(tmp= (struct st_my_thread_var *) calloc(1, sizeof(*tmp))))
- {
- error= 1;
- goto end;
- }
- pthread_setspecific(THR_KEY_mysys,tmp);
- tmp->pthread_self= pthread_self();
- mysql_mutex_init(key_my_thread_var_mutex, &tmp->mutex, MY_MUTEX_INIT_FAST);
- mysql_cond_init(key_my_thread_var_suspend, &tmp->suspend, NULL);
-
- tmp->stack_ends_here= (char*)&tmp +
- STACK_DIRECTION * (long)my_thread_stack_size;
-
- mysql_mutex_lock(&THR_LOCK_threads);
- tmp->id= ++thread_id;
- ++THR_thread_count;
- mysql_mutex_unlock(&THR_LOCK_threads);
- tmp->init= 1;
-#ifndef DBUG_OFF
- /* Generate unique name for thread */
- (void) my_thread_name();
-#endif
-
-end:
- return error;
-}
-
-
-/*
- Deallocate memory used by the thread for book-keeping
-
- SYNOPSIS
- my_thread_end()
-
- NOTE
- This may be called multiple times for a thread.
- This happens for example when one calls 'mysql_server_init()'
- mysql_server_end() and then ends with a mysql_end().
-*/
-
-void my_thread_end(void)
-{
- struct st_my_thread_var *tmp;
- tmp= my_pthread_getspecific(struct st_my_thread_var*,THR_KEY_mysys);
-
-#ifdef EXTRA_DEBUG_THREADS
- fprintf(stderr,"my_thread_end(): tmp: 0x%lx pthread_self: 0x%lx thread_id: %ld\n",
- (long) tmp, (long) pthread_self(), tmp ? (long) tmp->id : 0L);
-#endif
-
-#ifdef HAVE_PSI_INTERFACE
- /*
- Remove the instrumentation for this thread.
- This must be done before trashing st_my_thread_var,
- because the LF_HASH depends on it.
- */
- if (PSI_server)
- PSI_server->delete_current_thread();
-#endif
-
- if (tmp && tmp->init)
- {
-#if !defined(DBUG_OFF)
- /* tmp->dbug is allocated inside DBUG library */
- if (tmp->dbug)
- {
- DBUG_POP();
- free(tmp->dbug);
- tmp->dbug=0;
- }
-#endif
-#if !defined(__bsdi__) && !defined(__OpenBSD__)
- /* bsdi and openbsd 3.5 dumps core here */
- mysql_cond_destroy(&tmp->suspend);
-#endif
- mysql_mutex_destroy(&tmp->mutex);
- free(tmp);
-
- /*
- Decrement counter for number of running threads. We are using this
- in my_thread_global_end() to wait until all threads have called
- my_thread_end and thus freed all memory they have allocated in
- my_thread_init() and DBUG_xxxx
- */
- mysql_mutex_lock(&THR_LOCK_threads);
- DBUG_ASSERT(THR_thread_count != 0);
- if (--THR_thread_count == 0)
- mysql_cond_signal(&THR_COND_threads);
- mysql_mutex_unlock(&THR_LOCK_threads);
- }
- pthread_setspecific(THR_KEY_mysys,0);
-}
-
-struct st_my_thread_var *_my_thread_var(void)
-{
- return my_pthread_getspecific(struct st_my_thread_var*,THR_KEY_mysys);
-}
-
-
-/****************************************************************************
- Get name of current thread.
-****************************************************************************/
-
-my_thread_id my_thread_dbug_id()
-{
- return my_thread_var->id;
-}
-
-#ifdef DBUG_OFF
-const char *my_thread_name(void)
-{
- return "no_name";
-}
-
-#else
-
-const char *my_thread_name(void)
-{
- char name_buff[100];
- struct st_my_thread_var *tmp=my_thread_var;
- if (!tmp->name[0])
- {
- my_thread_id id= my_thread_dbug_id();
- sprintf(name_buff,"T@%lu", (ulong) id);
- strmake(tmp->name,name_buff,THREAD_NAME_SIZE);
- }
- return tmp->name;
-}
-
-/* Return pointer to DBUG for holding current state */
-
-extern void **my_thread_var_dbug()
-{
- struct st_my_thread_var *tmp=
- my_pthread_getspecific(struct st_my_thread_var*,THR_KEY_mysys);
- return tmp && tmp->init ? &tmp->dbug : 0;
-}
-#endif /* DBUG_OFF */
-
-
-static uint get_thread_lib(void)
-{
-#ifdef _CS_GNU_LIBPTHREAD_VERSION
- char buff[64];
-
- confstr(_CS_GNU_LIBPTHREAD_VERSION, buff, sizeof(buff));
-
- if (!strncasecmp(buff, "NPTL", 4))
- return THD_LIB_NPTL;
- if (!strncasecmp(buff, "linuxthreads", 12))
- return THD_LIB_LT;
-#endif
- return THD_LIB_OTHER;
-}
-
-#ifdef _WIN32
-/*
- In Visual Studio 2005 and later, default SIGABRT handler will overwrite
- any unhandled exception filter set by the application and will try to
- call JIT debugger. This is not what we want, this we calling __debugbreak
- to stop in debugger, if process is being debugged or to generate
- EXCEPTION_BREAKPOINT and then handle_segfault will do its magic.
-*/
-
-#if (_MSC_VER >= 1400)
-static void my_sigabrt_handler(int sig)
-{
- __debugbreak();
-}
-#endif /*_MSC_VER >=1400 */
-
-static void install_sigabrt_handler(void)
-{
-#if (_MSC_VER >=1400)
- /*abort() should not override our exception filter*/
- _set_abort_behavior(0,_CALL_REPORTFAULT);
- signal(SIGABRT,my_sigabrt_handler);
-#endif /* _MSC_VER >=1400 */
-}
-#endif
-
diff --git a/dep/mysqllite/mysys/my_wincond.c b/dep/mysqllite/mysys/my_wincond.c
deleted file mode 100644
index 58c09e332d6..00000000000
--- a/dep/mysqllite/mysys/my_wincond.c
+++ /dev/null
@@ -1,369 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*****************************************************************************
-** The following is a simple implementation of posix conditions
-*****************************************************************************/
-#if defined(_WIN32)
-
-#undef SAFE_MUTEX /* Avoid safe_mutex redefinitions */
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <process.h>
-#include <sys/timeb.h>
-
-
-/*
- Windows native condition variables. We use runtime loading / function
- pointers, because they are not available on XP
-*/
-
-/* Prototypes and function pointers for condition variable functions */
-typedef VOID (WINAPI * InitializeConditionVariableProc)
- (PCONDITION_VARIABLE ConditionVariable);
-
-typedef BOOL (WINAPI * SleepConditionVariableCSProc)
- (PCONDITION_VARIABLE ConditionVariable,
- PCRITICAL_SECTION CriticalSection,
- DWORD dwMilliseconds);
-
-typedef VOID (WINAPI * WakeAllConditionVariableProc)
- (PCONDITION_VARIABLE ConditionVariable);
-
-typedef VOID (WINAPI * WakeConditionVariableProc)
- (PCONDITION_VARIABLE ConditionVariable);
-
-static InitializeConditionVariableProc my_InitializeConditionVariable;
-static SleepConditionVariableCSProc my_SleepConditionVariableCS;
-static WakeAllConditionVariableProc my_WakeAllConditionVariable;
-static WakeConditionVariableProc my_WakeConditionVariable;
-
-
-/**
- Indicates if we have native condition variables,
- initialized first time pthread_cond_init is called.
-*/
-
-static BOOL have_native_conditions= FALSE;
-
-
-/**
- Check if native conditions can be used, load function pointers
-*/
-
-static void check_native_cond_availability(void)
-{
- HMODULE module= GetModuleHandle("kernel32");
-
- my_InitializeConditionVariable= (InitializeConditionVariableProc)
- GetProcAddress(module, "InitializeConditionVariable");
- my_SleepConditionVariableCS= (SleepConditionVariableCSProc)
- GetProcAddress(module, "SleepConditionVariableCS");
- my_WakeAllConditionVariable= (WakeAllConditionVariableProc)
- GetProcAddress(module, "WakeAllConditionVariable");
- my_WakeConditionVariable= (WakeConditionVariableProc)
- GetProcAddress(module, "WakeConditionVariable");
-
- if (my_InitializeConditionVariable)
- have_native_conditions= TRUE;
-}
-
-
-
-/**
- Convert abstime to milliseconds
-*/
-
-static DWORD get_milliseconds(const struct timespec *abstime)
-{
- long long millis;
- union ft64 now;
-
- if (abstime == NULL)
- return INFINITE;
-
- GetSystemTimeAsFileTime(&now.ft);
-
- /*
- Calculate time left to abstime
- - subtract start time from current time(values are in 100ns units)
- - convert to millisec by dividing with 10000
- */
- millis= (abstime->tv.i64 - now.i64) / 10000;
-
- /* Don't allow the timeout to be negative */
- if (millis < 0)
- return 0;
-
- /*
- Make sure the calculated timeout does not exceed original timeout
- value which could cause "wait for ever" if system time changes
- */
- if (millis > abstime->max_timeout_msec)
- millis= abstime->max_timeout_msec;
-
- if (millis > UINT_MAX)
- millis= UINT_MAX;
-
- return (DWORD)millis;
-}
-
-
-/*
- Old (pre-vista) implementation using events
-*/
-
-static int legacy_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
-{
- cond->waiting= 0;
- InitializeCriticalSection(&cond->lock_waiting);
-
- cond->events[SIGNAL]= CreateEvent(NULL, /* no security */
- FALSE, /* auto-reset event */
- FALSE, /* non-signaled initially */
- NULL); /* unnamed */
-
- /* Create a manual-reset event. */
- cond->events[BROADCAST]= CreateEvent(NULL, /* no security */
- TRUE, /* manual-reset */
- FALSE, /* non-signaled initially */
- NULL); /* unnamed */
-
-
- cond->broadcast_block_event= CreateEvent(NULL, /* no security */
- TRUE, /* manual-reset */
- TRUE, /* signaled initially */
- NULL); /* unnamed */
-
- if( cond->events[SIGNAL] == NULL ||
- cond->events[BROADCAST] == NULL ||
- cond->broadcast_block_event == NULL )
- return ENOMEM;
- return 0;
-}
-
-
-static int legacy_cond_destroy(pthread_cond_t *cond)
-{
- DeleteCriticalSection(&cond->lock_waiting);
-
- if (CloseHandle(cond->events[SIGNAL]) == 0 ||
- CloseHandle(cond->events[BROADCAST]) == 0 ||
- CloseHandle(cond->broadcast_block_event) == 0)
- return EINVAL;
- return 0;
-}
-
-
-static int legacy_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- struct timespec *abstime)
-{
- int result;
- DWORD timeout;
-
- timeout= get_milliseconds(abstime);
- /*
- Block access if previous broadcast hasn't finished.
- This is just for safety and should normally not
- affect the total time spent in this function.
- */
- WaitForSingleObject(cond->broadcast_block_event, INFINITE);
-
- EnterCriticalSection(&cond->lock_waiting);
- cond->waiting++;
- LeaveCriticalSection(&cond->lock_waiting);
-
- LeaveCriticalSection(mutex);
- result= WaitForMultipleObjects(2, cond->events, FALSE, timeout);
-
- EnterCriticalSection(&cond->lock_waiting);
- cond->waiting--;
-
- if (cond->waiting == 0)
- {
- /*
- We're the last waiter to be notified or to stop waiting, so
- reset the manual event.
- */
- /* Close broadcast gate */
- ResetEvent(cond->events[BROADCAST]);
- /* Open block gate */
- SetEvent(cond->broadcast_block_event);
- }
- LeaveCriticalSection(&cond->lock_waiting);
-
- EnterCriticalSection(mutex);
-
- return result == WAIT_TIMEOUT ? ETIMEDOUT : 0;
-}
-
-static int legacy_cond_signal(pthread_cond_t *cond)
-{
- EnterCriticalSection(&cond->lock_waiting);
-
- if(cond->waiting > 0)
- SetEvent(cond->events[SIGNAL]);
-
- LeaveCriticalSection(&cond->lock_waiting);
-
- return 0;
-}
-
-
-static int legacy_cond_broadcast(pthread_cond_t *cond)
-{
- EnterCriticalSection(&cond->lock_waiting);
- /*
- The mutex protect us from broadcasting if
- there isn't any thread waiting to open the
- block gate after this call has closed it.
- */
- if(cond->waiting > 0)
- {
- /* Close block gate */
- ResetEvent(cond->broadcast_block_event);
- /* Open broadcast gate */
- SetEvent(cond->events[BROADCAST]);
- }
-
- LeaveCriticalSection(&cond->lock_waiting);
-
- return 0;
-}
-
-
-/*
- Posix API functions. Just choose between native and legacy implementation.
-*/
-
-int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr)
-{
- /*
- Once initialization is used here rather than in my_init(), to
- 1) avoid my_init() pitfalls- undefined order in which initialization should
- run
- 2) be potentially useful C++ (in static constructors that run before main())
- 3) just to simplify the API.
- Also, the overhead of my_pthread_once is very small.
- */
- static my_pthread_once_t once_control= MY_PTHREAD_ONCE_INIT;
- my_pthread_once(&once_control, check_native_cond_availability);
-
- if (have_native_conditions)
- {
- my_InitializeConditionVariable(&cond->native_cond);
- return 0;
- }
- else
- return legacy_cond_init(cond, attr);
-}
-
-
-int pthread_cond_destroy(pthread_cond_t *cond)
-{
- if (have_native_conditions)
- return 0; /* no destroy function */
- else
- return legacy_cond_destroy(cond);
-}
-
-
-int pthread_cond_broadcast(pthread_cond_t *cond)
-{
- if (have_native_conditions)
- {
- my_WakeAllConditionVariable(&cond->native_cond);
- return 0;
- }
- else
- return legacy_cond_broadcast(cond);
-}
-
-
-int pthread_cond_signal(pthread_cond_t *cond)
-{
- if (have_native_conditions)
- {
- my_WakeConditionVariable(&cond->native_cond);
- return 0;
- }
- else
- return legacy_cond_signal(cond);
-}
-
-
-int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- struct timespec *abstime)
-{
- if (have_native_conditions)
- {
- DWORD timeout= get_milliseconds(abstime);
- if (!my_SleepConditionVariableCS(&cond->native_cond, mutex, timeout))
- return ETIMEDOUT;
- return 0;
- }
- else
- return legacy_cond_timedwait(cond, mutex, abstime);
-}
-
-
-int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
-{
- return pthread_cond_timedwait(cond, mutex, NULL);
-}
-
-
-int pthread_attr_init(pthread_attr_t *connect_att)
-{
- connect_att->dwStackSize = 0;
- connect_att->dwCreatingFlag = 0;
- return 0;
-}
-
-int pthread_attr_setstacksize(pthread_attr_t *connect_att,DWORD stack)
-{
- connect_att->dwStackSize=stack;
- return 0;
-}
-
-int pthread_attr_destroy(pthread_attr_t *connect_att)
-{
- bzero((uchar*) connect_att,sizeof(*connect_att));
- return 0;
-}
-
-/****************************************************************************
-** Fix localtime_r() to be a bit safer
-****************************************************************************/
-
-struct tm *localtime_r(const time_t *timep,struct tm *tmp)
-{
- if (*timep == (time_t) -1) /* This will crash win32 */
- {
- bzero(tmp,sizeof(*tmp));
- }
- else
- {
- struct tm *res=localtime(timep);
- if (!res) /* Wrong date */
- {
- bzero(tmp,sizeof(*tmp)); /* Keep things safe */
- return 0;
- }
- *tmp= *res;
- }
- return tmp;
-}
-#endif /* __WIN__ */
diff --git a/dep/mysqllite/mysys/my_windac.c b/dep/mysqllite/mysys/my_windac.c
deleted file mode 100644
index 0c924188623..00000000000
--- a/dep/mysqllite/mysys/my_windac.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2000-2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "m_string.h"
-#ifdef __WIN__
-
-/* Windows NT/2000 discretionary access control utility functions. */
-
-/*
- Check if the operating system is built on NT technology.
-
- RETURN
- 0 Windows 95/98/Me
- 1 otherwise
-*/
-
-static my_bool is_nt()
-{
- return GetVersion() < 0x80000000;
-}
-
-/*
- Auxilary structure to store pointers to the data which we need to keep
- around while SECURITY_ATTRIBUTES is in use.
-*/
-
-typedef struct st_my_security_attr
-{
- PSID everyone_sid;
- PACL dacl;
-} My_security_attr;
-
-
-/*
- Allocate and initialize SECURITY_ATTRIBUTES setting up access
- rights for the owner and group `Everybody'.
-
- SYNOPSIS
- my_security_attr_create()
- psa [OUT] pointer to store the pointer to SA in
- perror [OUT] pointer to store error message if there was an
- error
- owner_rights [IN] access rights for the owner
- everyone_rights [IN] access rights for group Everybody
-
- DESCRIPTION
- Set up the security attributes to provide clients with sufficient
- access rights to a kernel object. We need this function
- because if we simply grant all access to everybody (by installing
- a NULL DACL) a mailicious user can attempt a denial of service
- attack by taking ownership over the kernel object. Upon successful
- return `psa' contains a pointer to SECUIRITY_ATTRIBUTES that can be used
- to create kernel objects with proper access rights.
-
- RETURN
- 0 success, psa is 0 or points to a valid SA structure,
- perror is left intact
- !0 error, SA is set to 0, error message is stored in perror
-*/
-
-int my_security_attr_create(SECURITY_ATTRIBUTES **psa, const char **perror,
- DWORD owner_rights, DWORD everyone_rights)
-{
- /* Top-level SID authority */
- SID_IDENTIFIER_AUTHORITY world_auth= SECURITY_WORLD_SID_AUTHORITY;
- PSID everyone_sid= 0;
- HANDLE htoken= 0;
- SECURITY_ATTRIBUTES *sa= 0;
- PACL dacl= 0;
- DWORD owner_token_length, dacl_length;
- SECURITY_DESCRIPTOR *sd;
- PTOKEN_USER owner_token;
- PSID owner_sid;
- My_security_attr *attr;
-
- if (! is_nt())
- {
- *psa= 0;
- return 0;
- }
-
- /*
- Get SID of Everyone group. Easier to retrieve all SIDs each time
- this function is called than worry about thread safety.
- */
- if (! AllocateAndInitializeSid(&world_auth, 1, SECURITY_WORLD_RID,
- 0, 0, 0, 0, 0, 0, 0, &everyone_sid))
- {
- *perror= "Failed to retrieve the SID of Everyone group";
- goto error;
- }
-
- /*
- Get SID of the owner. Using GetSecurityInfo this task can be done
- in just one call instead of five, but GetSecurityInfo declared in
- aclapi.h, so I hesitate to use it.
- SIC: OpenThreadToken works only if there is an active impersonation
- token, hence OpenProcessToken is used.
- */
- if (! OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &htoken))
- {
- *perror= "Failed to retrieve thread access token";
- goto error;
- }
- GetTokenInformation(htoken, TokenUser, 0, 0, &owner_token_length);
-
- if (! my_multi_malloc(MYF(MY_WME),
- &sa, ALIGN_SIZE(sizeof(SECURITY_ATTRIBUTES)) +
- sizeof(My_security_attr),
- &sd, sizeof(SECURITY_DESCRIPTOR),
- &owner_token, owner_token_length,
- 0))
- {
- *perror= "Failed to allocate memory for SECURITY_ATTRIBUTES";
- goto error;
- }
- bzero(owner_token, owner_token_length);
- if (! GetTokenInformation(htoken, TokenUser, owner_token,
- owner_token_length, &owner_token_length))
- {
- *perror= "GetTokenInformation failed";
- goto error;
- }
- owner_sid= owner_token->User.Sid;
-
- if (! IsValidSid(owner_sid))
- {
- *perror= "IsValidSid failed";
- goto error;
- }
-
- /* Calculate the amount of memory that must be allocated for the DACL */
- dacl_length= sizeof(ACL) + (sizeof(ACCESS_ALLOWED_ACE)-sizeof(DWORD)) * 2 +
- GetLengthSid(everyone_sid) + GetLengthSid(owner_sid);
-
- /* Create an ACL */
- if (! (dacl= (PACL) my_malloc(dacl_length, MYF(MY_ZEROFILL|MY_WME))))
- {
- *perror= "Failed to allocate memory for DACL";
- goto error;
- }
- if (! InitializeAcl(dacl, dacl_length, ACL_REVISION))
- {
- *perror= "Failed to initialize DACL";
- goto error;
- }
- if (! AddAccessAllowedAce(dacl, ACL_REVISION, everyone_rights, everyone_sid))
- {
- *perror= "Failed to set up DACL";
- goto error;
- }
- if (! AddAccessAllowedAce(dacl, ACL_REVISION, owner_rights, owner_sid))
- {
- *perror= "Failed to set up DACL";
- goto error;
- }
- if (! InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION))
- {
- *perror= "Could not initialize security descriptor";
- goto error;
- }
- if (! SetSecurityDescriptorDacl(sd, TRUE, dacl, FALSE))
- {
- *perror= "Failed to install DACL";
- goto error;
- }
-
- sa->nLength= sizeof(*sa);
- sa->bInheritHandle= TRUE;
- sa->lpSecurityDescriptor= sd;
- /* Save pointers to everyone_sid and dacl to be able to clean them up */
- attr= (My_security_attr*) (((char*) sa) + ALIGN_SIZE(sizeof(*sa)));
- attr->everyone_sid= everyone_sid;
- attr->dacl= dacl;
- *psa= sa;
-
- CloseHandle(htoken);
- return 0;
-error:
- if (everyone_sid)
- FreeSid(everyone_sid);
- if (htoken)
- CloseHandle(htoken);
- my_free(sa);
- my_free(dacl);
- *psa= 0;
- return 1;
-}
-
-/*
- Cleanup security attributes freeing used memory.
-
- SYNOPSIS
- my_security_attr_free()
- sa security attributes
-*/
-
-void my_security_attr_free(SECURITY_ATTRIBUTES *sa)
-{
- if (sa)
- {
- My_security_attr *attr= (My_security_attr*)
- (((char*)sa) + ALIGN_SIZE(sizeof(*sa)));
- FreeSid(attr->everyone_sid);
- my_free(attr->dacl);
- my_free(sa);
- }
-}
-
-#endif /* __WIN__ */
diff --git a/dep/mysqllite/mysys/my_winerr.c b/dep/mysqllite/mysys/my_winerr.c
deleted file mode 100644
index 534078b6737..00000000000
--- a/dep/mysqllite/mysys/my_winerr.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 2008 MySQL AB
-
-This program 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; version 2 of the License.
-
-This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Convert Windows API error (GetLastError() to Posix equivalent (errno)
- The exported function my_osmaperr() is modelled after and borrows
- heavily from undocumented _dosmaperr()(found of the static Microsoft C runtime).
-*/
-
-#include <my_global.h>
-#include <my_sys.h>
-
-
-struct errentry
-{
- unsigned long oscode; /* OS return value */
- int sysv_errno; /* System V error code */
-};
-
-static struct errentry errtable[]= {
- { ERROR_INVALID_FUNCTION, EINVAL }, /* 1 */
- { ERROR_FILE_NOT_FOUND, ENOENT }, /* 2 */
- { ERROR_PATH_NOT_FOUND, ENOENT }, /* 3 */
- { ERROR_TOO_MANY_OPEN_FILES, EMFILE }, /* 4 */
- { ERROR_ACCESS_DENIED, EACCES }, /* 5 */
- { ERROR_INVALID_HANDLE, EBADF }, /* 6 */
- { ERROR_ARENA_TRASHED, ENOMEM }, /* 7 */
- { ERROR_NOT_ENOUGH_MEMORY, ENOMEM }, /* 8 */
- { ERROR_INVALID_BLOCK, ENOMEM }, /* 9 */
- { ERROR_BAD_ENVIRONMENT, E2BIG }, /* 10 */
- { ERROR_BAD_FORMAT, ENOEXEC }, /* 11 */
- { ERROR_INVALID_ACCESS, EINVAL }, /* 12 */
- { ERROR_INVALID_DATA, EINVAL }, /* 13 */
- { ERROR_INVALID_DRIVE, ENOENT }, /* 15 */
- { ERROR_CURRENT_DIRECTORY, EACCES }, /* 16 */
- { ERROR_NOT_SAME_DEVICE, EXDEV }, /* 17 */
- { ERROR_NO_MORE_FILES, ENOENT }, /* 18 */
- { ERROR_LOCK_VIOLATION, EACCES }, /* 33 */
- { ERROR_BAD_NETPATH, ENOENT }, /* 53 */
- { ERROR_NETWORK_ACCESS_DENIED, EACCES }, /* 65 */
- { ERROR_BAD_NET_NAME, ENOENT }, /* 67 */
- { ERROR_FILE_EXISTS, EEXIST }, /* 80 */
- { ERROR_CANNOT_MAKE, EACCES }, /* 82 */
- { ERROR_FAIL_I24, EACCES }, /* 83 */
- { ERROR_INVALID_PARAMETER, EINVAL }, /* 87 */
- { ERROR_NO_PROC_SLOTS, EAGAIN }, /* 89 */
- { ERROR_DRIVE_LOCKED, EACCES }, /* 108 */
- { ERROR_BROKEN_PIPE, EPIPE }, /* 109 */
- { ERROR_DISK_FULL, ENOSPC }, /* 112 */
- { ERROR_INVALID_TARGET_HANDLE, EBADF }, /* 114 */
- { ERROR_INVALID_HANDLE, EINVAL }, /* 124 */
- { ERROR_WAIT_NO_CHILDREN, ECHILD }, /* 128 */
- { ERROR_CHILD_NOT_COMPLETE, ECHILD }, /* 129 */
- { ERROR_DIRECT_ACCESS_HANDLE, EBADF }, /* 130 */
- { ERROR_NEGATIVE_SEEK, EINVAL }, /* 131 */
- { ERROR_SEEK_ON_DEVICE, EACCES }, /* 132 */
- { ERROR_DIR_NOT_EMPTY, ENOTEMPTY }, /* 145 */
- { ERROR_NOT_LOCKED, EACCES }, /* 158 */
- { ERROR_BAD_PATHNAME, ENOENT }, /* 161 */
- { ERROR_MAX_THRDS_REACHED, EAGAIN }, /* 164 */
- { ERROR_LOCK_FAILED, EACCES }, /* 167 */
- { ERROR_ALREADY_EXISTS, EEXIST }, /* 183 */
- { ERROR_FILENAME_EXCED_RANGE, ENOENT }, /* 206 */
- { ERROR_NESTING_NOT_ALLOWED, EAGAIN }, /* 215 */
- { ERROR_NOT_ENOUGH_QUOTA, ENOMEM } /* 1816 */
-};
-
-/* size of the table */
-#define ERRTABLESIZE (sizeof(errtable)/sizeof(errtable[0]))
-
-/* The following two constants must be the minimum and maximum
-values in the (contiguous) range of Exec Failure errors. */
-#define MIN_EXEC_ERROR ERROR_INVALID_STARTING_CODESEG
-#define MAX_EXEC_ERROR ERROR_INFLOOP_IN_RELOC_CHAIN
-
-/* These are the low and high value in the range of errors that are
-access violations */
-#define MIN_EACCES_RANGE ERROR_WRITE_PROTECT
-#define MAX_EACCES_RANGE ERROR_SHARING_BUFFER_EXCEEDED
-
-
-static int get_errno_from_oserr(unsigned long oserrno)
-{
- int i;
-
- /* check the table for the OS error code */
- for (i= 0; i < ERRTABLESIZE; ++i)
- {
- if (oserrno == errtable[i].oscode)
- {
- return errtable[i].sysv_errno;
- }
- }
-
- /* The error code wasn't in the table. We check for a range of */
- /* EACCES errors or exec failure errors (ENOEXEC). Otherwise */
- /* EINVAL is returned. */
-
- if (oserrno >= MIN_EACCES_RANGE && oserrno <= MAX_EACCES_RANGE)
- return EACCES;
- else if (oserrno >= MIN_EXEC_ERROR && oserrno <= MAX_EXEC_ERROR)
- return ENOEXEC;
- else
- return EINVAL;
-}
-
-/* Set errno corresponsing to GetLastError() value */
-void my_osmaperr ( unsigned long oserrno)
-{
- errno= get_errno_from_oserr(oserrno);
-}
diff --git a/dep/mysqllite/mysys/my_winfile.c b/dep/mysqllite/mysys/my_winfile.c
deleted file mode 100644
index 4d80d774dad..00000000000
--- a/dep/mysqllite/mysys/my_winfile.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/* Copyright (C) 2008 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
-This program 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; version 2 of the License.
-
-This program 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 this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- The purpose of this file is to provide implementation of file IO routines on
- Windows that can be thought as drop-in replacement for corresponding C runtime
- functionality.
-
- Compared to Windows CRT, this one
- - does not have the same file descriptor
- limitation (default is 16384 and can be increased further, whereas CRT poses
- a hard limit of 2048 file descriptors)
- - the file operations are not serialized
- - positional IO pread/pwrite is ported here.
- - no text mode for files, all IO is "binary"
-
- Naming convention:
- All routines are prefixed with my_win_, e.g Posix open() is implemented with
- my_win_open()
-
- Implemented are
- - POSIX routines(e.g open, read, lseek ...)
- - Some ANSI C stream routines (fopen, fdopen, fileno, fclose)
- - Windows CRT equvalients (my_get_osfhandle, open_osfhandle)
-
- Worth to note:
- - File descriptors used here are located in a range that is not compatible
- with CRT on purpose. Attempt to use a file descriptor from Windows CRT library
- range in my_win_* function will be punished with DBUG_ASSERT()
-
- - File streams (FILE *) are actually from the C runtime. The routines provided
- here are useful only in scernarios that use low-level IO with my_win_fileno()
-*/
-
-#ifdef _WIN32
-
-#include "mysys_priv.h"
-#include <share.h>
-#include <sys/stat.h>
-
-/* Associates a file descriptor with an existing operating-system file handle.*/
-File my_open_osfhandle(HANDLE handle, int oflag)
-{
- int offset= -1;
- uint i;
- DBUG_ENTER("my_open_osfhandle");
-
- mysql_mutex_lock(&THR_LOCK_open);
- for(i= MY_FILE_MIN; i < my_file_limit;i++)
- {
- if(my_file_info[i].fhandle == 0)
- {
- struct st_my_file_info *finfo= &(my_file_info[i]);
- finfo->type= FILE_BY_OPEN;
- finfo->fhandle= handle;
- finfo->oflag= oflag;
- offset= i;
- break;
- }
- }
- mysql_mutex_unlock(&THR_LOCK_open);
- if(offset == -1)
- errno= EMFILE; /* to many file handles open */
- DBUG_RETURN(offset);
-}
-
-
-static void invalidate_fd(File fd)
-{
- DBUG_ENTER("invalidate_fd");
- DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit);
- my_file_info[fd].fhandle= 0;
- DBUG_VOID_RETURN;
-}
-
-
-/* Get Windows handle for a file descriptor */
-HANDLE my_get_osfhandle(File fd)
-{
- DBUG_ENTER("my_get_osfhandle");
- DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit);
- DBUG_RETURN(my_file_info[fd].fhandle);
-}
-
-
-static int my_get_open_flags(File fd)
-{
- DBUG_ENTER("my_get_open_flags");
- DBUG_ASSERT(fd >= MY_FILE_MIN && fd < (int)my_file_limit);
- DBUG_RETURN(my_file_info[fd].oflag);
-}
-
-
-/*
- Open a file with sharing. Similar to _sopen() from libc, but allows managing
- share delete on win32
-
- SYNOPSIS
- my_win_sopen()
- path file name
- oflag operation flags
- shflag share flag
- pmode permission flags
-
- RETURN VALUE
- File descriptor of opened file if success
- -1 and sets errno if fails.
-*/
-
-File my_win_sopen(const char *path, int oflag, int shflag, int pmode)
-{
- int fh; /* handle of opened file */
- int mask;
- HANDLE osfh; /* OS handle of opened file */
- DWORD fileaccess; /* OS file access (requested) */
- DWORD fileshare; /* OS file sharing mode */
- DWORD filecreate; /* OS method of opening/creating */
- DWORD fileattrib; /* OS file attribute flags */
- SECURITY_ATTRIBUTES SecurityAttributes;
-
- DBUG_ENTER("my_win_sopen");
-
- if (check_if_legal_filename(path))
- {
- errno= EACCES;
- DBUG_RETURN(-1);
- }
- SecurityAttributes.nLength= sizeof(SecurityAttributes);
- SecurityAttributes.lpSecurityDescriptor= NULL;
- SecurityAttributes.bInheritHandle= !(oflag & _O_NOINHERIT);
-
- /* decode the access flags */
- switch (oflag & (_O_RDONLY | _O_WRONLY | _O_RDWR)) {
- case _O_RDONLY: /* read access */
- fileaccess= GENERIC_READ;
- break;
- case _O_WRONLY: /* write access */
- fileaccess= GENERIC_WRITE;
- break;
- case _O_RDWR: /* read and write access */
- fileaccess= GENERIC_READ | GENERIC_WRITE;
- break;
- default: /* error, bad oflag */
- errno= EINVAL;
- DBUG_RETURN(-1);
- }
-
- /* decode sharing flags */
- switch (shflag) {
- case _SH_DENYRW: /* exclusive access except delete */
- fileshare= FILE_SHARE_DELETE;
- break;
- case _SH_DENYWR: /* share read and delete access */
- fileshare= FILE_SHARE_READ | FILE_SHARE_DELETE;
- break;
- case _SH_DENYRD: /* share write and delete access */
- fileshare= FILE_SHARE_WRITE | FILE_SHARE_DELETE;
- break;
- case _SH_DENYNO: /* share read, write and delete access */
- fileshare= FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
- break;
- case _SH_DENYRWD: /* exclusive access */
- fileshare= 0L;
- break;
- case _SH_DENYWRD: /* share read access */
- fileshare= FILE_SHARE_READ;
- break;
- case _SH_DENYRDD: /* share write access */
- fileshare= FILE_SHARE_WRITE;
- break;
- case _SH_DENYDEL: /* share read and write access */
- fileshare= FILE_SHARE_READ | FILE_SHARE_WRITE;
- break;
- default: /* error, bad shflag */
- errno= EINVAL;
- DBUG_RETURN(-1);
- }
-
- /* decode open/create method flags */
- switch (oflag & (_O_CREAT | _O_EXCL | _O_TRUNC)) {
- case 0:
- case _O_EXCL: /* ignore EXCL w/o CREAT */
- filecreate= OPEN_EXISTING;
- break;
-
- case _O_CREAT:
- filecreate= OPEN_ALWAYS;
- break;
-
- case _O_CREAT | _O_EXCL:
- case _O_CREAT | _O_TRUNC | _O_EXCL:
- filecreate= CREATE_NEW;
- break;
-
- case _O_TRUNC:
- case _O_TRUNC | _O_EXCL: /* ignore EXCL w/o CREAT */
- filecreate= TRUNCATE_EXISTING;
- break;
-
- case _O_CREAT | _O_TRUNC:
- filecreate= CREATE_ALWAYS;
- break;
-
- default:
- /* this can't happen ... all cases are covered */
- errno= EINVAL;
- DBUG_RETURN(-1);
- }
-
- /* decode file attribute flags if _O_CREAT was specified */
- fileattrib= FILE_ATTRIBUTE_NORMAL; /* default */
- if (oflag & _O_CREAT)
- {
- _umask((mask= _umask(0)));
-
- if (!((pmode & ~mask) & _S_IWRITE))
- fileattrib= FILE_ATTRIBUTE_READONLY;
- }
-
- /* Set temporary file (delete-on-close) attribute if requested. */
- if (oflag & _O_TEMPORARY)
- {
- fileattrib|= FILE_FLAG_DELETE_ON_CLOSE;
- fileaccess|= DELETE;
- }
-
- /* Set temporary file (delay-flush-to-disk) attribute if requested.*/
- if (oflag & _O_SHORT_LIVED)
- fileattrib|= FILE_ATTRIBUTE_TEMPORARY;
-
- /* Set sequential or random access attribute if requested. */
- if (oflag & _O_SEQUENTIAL)
- fileattrib|= FILE_FLAG_SEQUENTIAL_SCAN;
- else if (oflag & _O_RANDOM)
- fileattrib|= FILE_FLAG_RANDOM_ACCESS;
-
- /* try to open/create the file */
- if ((osfh= CreateFile(path, fileaccess, fileshare, &SecurityAttributes,
- filecreate, fileattrib, NULL)) == INVALID_HANDLE_VALUE)
- {
- /*
- OS call to open/create file failed! map the error, release
- the lock, and return -1. note that it's not necessary to
- call _free_osfhnd (it hasn't been used yet).
- */
- my_osmaperr(GetLastError()); /* map error */
- DBUG_RETURN(-1); /* return error to caller */
- }
-
- if ((fh= my_open_osfhandle(osfh,
- oflag & (_O_APPEND | _O_RDONLY | _O_TEXT))) == -1)
- {
- CloseHandle(osfh);
- }
-
- DBUG_RETURN(fh); /* return handle */
-}
-
-
-File my_win_open(const char *path, int flags)
-{
- DBUG_ENTER("my_win_open");
- DBUG_RETURN(my_win_sopen((char *) path, flags | _O_BINARY, _SH_DENYNO,
- _S_IREAD | S_IWRITE));
-}
-
-
-int my_win_close(File fd)
-{
- DBUG_ENTER("my_win_close");
- if(CloseHandle(my_get_osfhandle(fd)))
- {
- invalidate_fd(fd);
- DBUG_RETURN(0);
- }
- my_osmaperr(GetLastError());
- DBUG_RETURN(-1);
-}
-
-
-size_t my_win_pread(File Filedes, uchar *Buffer, size_t Count, my_off_t offset)
-{
- DWORD nBytesRead;
- HANDLE hFile;
- OVERLAPPED ov= {0};
- LARGE_INTEGER li;
-
- DBUG_ENTER("my_win_pread");
-
- if(!Count)
- DBUG_RETURN(0);
-#ifdef _WIN64
- if(Count > UINT_MAX)
- Count= UINT_MAX;
-#endif
-
- hFile= (HANDLE)my_get_osfhandle(Filedes);
- li.QuadPart= offset;
- ov.Offset= li.LowPart;
- ov.OffsetHigh= li.HighPart;
-
- if(!ReadFile(hFile, Buffer, (DWORD)Count, &nBytesRead, &ov))
- {
- DWORD lastError= GetLastError();
- /*
- ERROR_BROKEN_PIPE is returned when no more data coming
- through e.g. a command pipe in windows : see MSDN on ReadFile.
- */
- if(lastError == ERROR_HANDLE_EOF || lastError == ERROR_BROKEN_PIPE)
- DBUG_RETURN(0); /*return 0 at EOF*/
- my_osmaperr(lastError);
- DBUG_RETURN((size_t)-1);
- }
- DBUG_RETURN(nBytesRead);
-}
-
-
-size_t my_win_read(File Filedes, uchar *Buffer, size_t Count)
-{
- DWORD nBytesRead;
- HANDLE hFile;
-
- DBUG_ENTER("my_win_read");
- if(!Count)
- DBUG_RETURN(0);
-#ifdef _WIN64
- if(Count > UINT_MAX)
- Count= UINT_MAX;
-#endif
-
- hFile= (HANDLE)my_get_osfhandle(Filedes);
-
- if(!ReadFile(hFile, Buffer, (DWORD)Count, &nBytesRead, NULL))
- {
- DWORD lastError= GetLastError();
- /*
- ERROR_BROKEN_PIPE is returned when no more data coming
- through e.g. a command pipe in windows : see MSDN on ReadFile.
- */
- if(lastError == ERROR_HANDLE_EOF || lastError == ERROR_BROKEN_PIPE)
- DBUG_RETURN(0); /*return 0 at EOF*/
- my_osmaperr(lastError);
- DBUG_RETURN((size_t)-1);
- }
- DBUG_RETURN(nBytesRead);
-}
-
-
-size_t my_win_pwrite(File Filedes, const uchar *Buffer, size_t Count,
- my_off_t offset)
-{
- DWORD nBytesWritten;
- HANDLE hFile;
- OVERLAPPED ov= {0};
- LARGE_INTEGER li;
-
- DBUG_ENTER("my_win_pwrite");
- DBUG_PRINT("my",("Filedes: %d, Buffer: %p, Count: %llu, offset: %llu",
- Filedes, Buffer, (ulonglong)Count, (ulonglong)offset));
-
- if(!Count)
- DBUG_RETURN(0);
-
-#ifdef _WIN64
- if(Count > UINT_MAX)
- Count= UINT_MAX;
-#endif
-
- hFile= (HANDLE)my_get_osfhandle(Filedes);
- li.QuadPart= offset;
- ov.Offset= li.LowPart;
- ov.OffsetHigh= li.HighPart;
-
- if(!WriteFile(hFile, Buffer, (DWORD)Count, &nBytesWritten, &ov))
- {
- my_osmaperr(GetLastError());
- DBUG_RETURN((size_t)-1);
- }
- else
- DBUG_RETURN(nBytesWritten);
-}
-
-
-my_off_t my_win_lseek(File fd, my_off_t pos, int whence)
-{
- LARGE_INTEGER offset;
- LARGE_INTEGER newpos;
-
- DBUG_ENTER("my_win_lseek");
-
- /* Check compatibility of Windows and Posix seek constants */
- compile_time_assert(FILE_BEGIN == SEEK_SET && FILE_CURRENT == SEEK_CUR
- && FILE_END == SEEK_END);
-
- offset.QuadPart= pos;
- if(!SetFilePointerEx(my_get_osfhandle(fd), offset, &newpos, whence))
- {
- my_osmaperr(GetLastError());
- newpos.QuadPart= -1;
- }
- DBUG_RETURN(newpos.QuadPart);
-}
-
-
-#ifndef FILE_WRITE_TO_END_OF_FILE
-#define FILE_WRITE_TO_END_OF_FILE 0xffffffff
-#endif
-size_t my_win_write(File fd, const uchar *Buffer, size_t Count)
-{
- DWORD nWritten;
- OVERLAPPED ov;
- OVERLAPPED *pov= NULL;
- HANDLE hFile;
-
- DBUG_ENTER("my_win_write");
- DBUG_PRINT("my",("Filedes: %d, Buffer: %p, Count %llu", fd, Buffer,
- (ulonglong)Count));
-
- if(!Count)
- DBUG_RETURN(0);
-
-#ifdef _WIN64
- if(Count > UINT_MAX)
- Count= UINT_MAX;
-#endif
-
- if(my_get_open_flags(fd) & _O_APPEND)
- {
- /*
- Atomic append to the end of file is is done by special initialization of
- the OVERLAPPED structure. See MSDN WriteFile documentation for more info.
- */
- memset(&ov, 0, sizeof(ov));
- ov.Offset= FILE_WRITE_TO_END_OF_FILE;
- ov.OffsetHigh= -1;
- pov= &ov;
- }
-
- hFile= my_get_osfhandle(fd);
- if(!WriteFile(hFile, Buffer, (DWORD)Count, &nWritten, pov))
- {
- my_osmaperr(GetLastError());
- DBUG_RETURN((size_t)-1);
- }
- DBUG_RETURN(nWritten);
-}
-
-
-int my_win_chsize(File fd, my_off_t newlength)
-{
- HANDLE hFile;
- LARGE_INTEGER length;
- DBUG_ENTER("my_win_chsize");
-
- hFile= (HANDLE) my_get_osfhandle(fd);
- length.QuadPart= newlength;
- if (!SetFilePointerEx(hFile, length , NULL , FILE_BEGIN))
- goto err;
- if (!SetEndOfFile(hFile))
- goto err;
- DBUG_RETURN(0);
-err:
- my_osmaperr(GetLastError());
- my_errno= errno;
- DBUG_RETURN(-1);
-}
-
-
-/* Get the file descriptor for stdin,stdout or stderr */
-static File my_get_stdfile_descriptor(FILE *stream)
-{
- HANDLE hFile;
- DWORD nStdHandle;
- DBUG_ENTER("my_get_stdfile_descriptor");
-
- if(stream == stdin)
- nStdHandle= STD_INPUT_HANDLE;
- else if(stream == stdout)
- nStdHandle= STD_OUTPUT_HANDLE;
- else if(stream == stderr)
- nStdHandle= STD_ERROR_HANDLE;
- else
- DBUG_RETURN(-1);
-
- hFile= GetStdHandle(nStdHandle);
- if(hFile != INVALID_HANDLE_VALUE)
- DBUG_RETURN(my_open_osfhandle(hFile, 0));
- DBUG_RETURN(-1);
-}
-
-
-File my_win_fileno(FILE *file)
-{
- HANDLE hFile= (HANDLE)_get_osfhandle(fileno(file));
- int retval= -1;
- uint i;
-
- DBUG_ENTER("my_win_fileno");
-
- for(i= MY_FILE_MIN; i < my_file_limit; i++)
- {
- if(my_file_info[i].fhandle == hFile)
- {
- retval= i;
- break;
- }
- }
- if(retval == -1)
- /* try std stream */
- DBUG_RETURN(my_get_stdfile_descriptor(file));
- DBUG_RETURN(retval);
-}
-
-
-FILE *my_win_fopen(const char *filename, const char *type)
-{
- FILE *file;
- int flags= 0;
- DBUG_ENTER("my_win_open");
-
- /*
- If we are not creating, then we need to use my_access to make sure
- the file exists since Windows doesn't handle files like "com1.sym"
- very well
- */
- if (check_if_legal_filename(filename))
- {
- errno= EACCES;
- DBUG_RETURN(NULL);
- }
-
- file= fopen(filename, type);
- if(!file)
- DBUG_RETURN(NULL);
-
- if(strchr(type,'a') != NULL)
- flags= O_APPEND;
-
- /*
- Register file handle in my_table_info.
- Necessary for my_fileno()
- */
- if(my_open_osfhandle((HANDLE)_get_osfhandle(fileno(file)), flags) < 0)
- {
- fclose(file);
- DBUG_RETURN(NULL);
- }
- DBUG_RETURN(file);
-}
-
-
-FILE * my_win_fdopen(File fd, const char *type)
-{
- FILE *file;
- int crt_fd;
- int flags= 0;
-
- DBUG_ENTER("my_win_fdopen");
-
- if(strchr(type,'a') != NULL)
- flags= O_APPEND;
- /* Convert OS file handle to CRT file descriptor and then call fdopen*/
- crt_fd= _open_osfhandle((intptr_t)my_get_osfhandle(fd), flags);
- if(crt_fd < 0)
- file= NULL;
- else
- file= fdopen(crt_fd, type);
- DBUG_RETURN(file);
-}
-
-
-int my_win_fclose(FILE *file)
-{
- File fd;
-
- DBUG_ENTER("my_win_close");
- fd= my_fileno(file);
- if(fd < 0)
- DBUG_RETURN(-1);
- if(fclose(file) < 0)
- DBUG_RETURN(-1);
- invalidate_fd(fd);
- DBUG_RETURN(0);
-}
-
-
-
-/*
- Quick and dirty my_fstat() implementation for Windows.
- Use CRT fstat on temporarily allocated file descriptor.
- Patch file size, because size that fstat returns is not
- reliable (may be outdated)
-*/
-int my_win_fstat(File fd, struct _stati64 *buf)
-{
- int crt_fd;
- int retval;
- HANDLE hFile, hDup;
-
- DBUG_ENTER("my_win_fstat");
-
- hFile= my_get_osfhandle(fd);
- if(!DuplicateHandle( GetCurrentProcess(), hFile, GetCurrentProcess(),
- &hDup ,0,FALSE,DUPLICATE_SAME_ACCESS))
- {
- my_osmaperr(GetLastError());
- DBUG_RETURN(-1);
- }
- if ((crt_fd= _open_osfhandle((intptr_t)hDup,0)) < 0)
- DBUG_RETURN(-1);
-
- retval= _fstati64(crt_fd, buf);
- if(retval == 0)
- {
- /* File size returned by stat is not accurate (may be outdated), fix it*/
- GetFileSizeEx(hDup, (PLARGE_INTEGER) (&(buf->st_size)));
- }
- _close(crt_fd);
- DBUG_RETURN(retval);
-}
-
-
-
-int my_win_stat( const char *path, struct _stati64 *buf)
-{
- DBUG_ENTER("my_win_stat");
- if(_stati64( path, buf) == 0)
- {
- /* File size returned by stat is not accurate (may be outdated), fix it*/
- WIN32_FILE_ATTRIBUTE_DATA data;
- if (GetFileAttributesEx(path, GetFileExInfoStandard, &data))
- {
- LARGE_INTEGER li;
- li.LowPart= data.nFileSizeLow;
- li.HighPart= data.nFileSizeHigh;
- buf->st_size= li.QuadPart;
- }
- DBUG_RETURN(0);
- }
- DBUG_RETURN(-1);
-}
-
-
-
-int my_win_fsync(File fd)
-{
- DBUG_ENTER("my_win_fsync");
- if(FlushFileBuffers(my_get_osfhandle(fd)))
- DBUG_RETURN(0);
- my_osmaperr(GetLastError());
- DBUG_RETURN(-1);
-}
-
-
-
-int my_win_dup(File fd)
-{
- HANDLE hDup;
- DBUG_ENTER("my_win_dup");
- if (DuplicateHandle(GetCurrentProcess(), my_get_osfhandle(fd),
- GetCurrentProcess(), &hDup, 0, FALSE, DUPLICATE_SAME_ACCESS))
- {
- DBUG_RETURN(my_open_osfhandle(hDup, my_get_open_flags(fd)));
- }
- my_osmaperr(GetLastError());
- DBUG_RETURN(-1);
-}
-
-#endif /*_WIN32*/
diff --git a/dep/mysqllite/mysys/my_winthread.c b/dep/mysqllite/mysys/my_winthread.c
deleted file mode 100644
index 49534370a2f..00000000000
--- a/dep/mysqllite/mysys/my_winthread.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*****************************************************************************
-** Simulation of posix threads calls for Windows
-*****************************************************************************/
-#if defined (_WIN32)
-/* SAFE_MUTEX will not work until the thread structure is up to date */
-#undef SAFE_MUTEX
-#include "mysys_priv.h"
-#include <process.h>
-#include <signal.h>
-
-static void install_sigabrt_handler(void);
-
-struct thread_start_parameter
-{
- pthread_handler func;
- void *arg;
-};
-
-/**
- Adapter to @c pthread_mutex_trylock()
-
- @retval 0 Mutex was acquired
- @retval EBUSY Mutex was already locked by a thread
- */
-int
-win_pthread_mutex_trylock(pthread_mutex_t *mutex)
-{
- if (TryEnterCriticalSection(mutex))
- {
- /* Don't allow recursive lock */
- if (mutex->RecursionCount > 1){
- LeaveCriticalSection(mutex);
- return EBUSY;
- }
- return 0;
- }
- return EBUSY;
-}
-
-static unsigned int __stdcall pthread_start(void *p)
-{
- struct thread_start_parameter *par= (struct thread_start_parameter *)p;
- pthread_handler func= par->func;
- void *arg= par->arg;
- free(p);
- (*func)(arg);
- return 0;
-}
-
-
-int pthread_create(pthread_t *thread_id, const pthread_attr_t *attr,
- pthread_handler func, void *param)
-{
- uintptr_t handle;
- struct thread_start_parameter *par;
- unsigned int stack_size;
- DBUG_ENTER("pthread_create");
-
- par= (struct thread_start_parameter *)malloc(sizeof(*par));
- if (!par)
- goto error_return;
-
- par->func= func;
- par->arg= param;
- stack_size= attr?attr->dwStackSize:0;
-
- handle= _beginthreadex(NULL, stack_size , pthread_start, par, 0, thread_id);
- if (!handle)
- goto error_return;
- DBUG_PRINT("info", ("thread id=%u",*thread_id));
-
- /* Do not need thread handle, close it */
- CloseHandle((HANDLE)handle);
- DBUG_RETURN(0);
-
-error_return:
- DBUG_PRINT("error",
- ("Can't create thread to handle request (error %d)",errno));
- DBUG_RETURN(-1);
-}
-
-
-void pthread_exit(void *a)
-{
- _endthreadex(0);
-}
-
-int pthread_join(pthread_t thread, void **value_ptr)
-{
- DWORD ret;
- HANDLE handle;
-
- handle= OpenThread(SYNCHRONIZE, FALSE, thread);
- if (!handle)
- {
- errno= EINVAL;
- goto error_return;
- }
-
- ret= WaitForSingleObject(handle, INFINITE);
-
- if(ret != WAIT_OBJECT_0)
- {
- errno= EINVAL;
- goto error_return;
- }
-
- CloseHandle(handle);
- return 0;
-
-error_return:
- if(handle)
- CloseHandle(handle);
- return -1;
-}
-
-int pthread_cancel(pthread_t thread)
-{
-
- HANDLE handle= 0;
- BOOL ok= FALSE;
-
- handle= OpenThread(THREAD_TERMINATE, FALSE, thread);
- if (handle)
- {
- ok= TerminateThread(handle,0);
- CloseHandle(handle);
- }
- if (ok)
- return 0;
-
- errno= EINVAL;
- return -1;
-}
-
-/*
- One time initialization. For simplicity, we assume initializer thread
- does not exit within init_routine().
-*/
-int my_pthread_once(my_pthread_once_t *once_control,
- void (*init_routine)(void))
-{
- LONG state;
-
- /*
- Do "dirty" read to find out if initialization is already done, to
- save an interlocked operation in common case. Memory barriers are ensured by
- Visual C++ volatile implementation.
- */
- if (*once_control == MY_PTHREAD_ONCE_DONE)
- return 0;
-
- state= InterlockedCompareExchange(once_control, MY_PTHREAD_ONCE_INPROGRESS,
- MY_PTHREAD_ONCE_INIT);
-
- switch(state)
- {
- case MY_PTHREAD_ONCE_INIT:
- /* This is initializer thread */
- (*init_routine)();
- *once_control= MY_PTHREAD_ONCE_DONE;
- break;
-
- case MY_PTHREAD_ONCE_INPROGRESS:
- /* init_routine in progress. Wait for its completion */
- while(*once_control == MY_PTHREAD_ONCE_INPROGRESS)
- {
- Sleep(1);
- }
- break;
- case MY_PTHREAD_ONCE_DONE:
- /* Nothing to do */
- break;
- }
- return 0;
-}
-#endif
diff --git a/dep/mysqllite/mysys/my_write.c b/dep/mysqllite/mysys/my_write.c
deleted file mode 100644
index 64f7546620f..00000000000
--- a/dep/mysqllite/mysys/my_write.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <errno.h>
-
-
- /* Write a chunk of bytes to a file */
-
-size_t my_write(File Filedes, const uchar *Buffer, size_t Count, myf MyFlags)
-{
- size_t writtenbytes, written;
- uint errors;
- DBUG_ENTER("my_write");
- DBUG_PRINT("my",("fd: %d Buffer: %p Count: %lu MyFlags: %d",
- Filedes, Buffer, (ulong) Count, MyFlags));
- errors= 0; written= 0;
-
- /* The behavior of write(fd, buf, 0) is not portable */
- if (unlikely(!Count))
- DBUG_RETURN(0);
-
- for (;;)
- {
-#ifdef _WIN32
- writtenbytes= my_win_write(Filedes, Buffer, Count);
-#else
- writtenbytes= write(Filedes, Buffer, Count);
-#endif
- if (writtenbytes == Count)
- break;
- if (writtenbytes != (size_t) -1)
- { /* Safeguard */
- written+= writtenbytes;
- Buffer+= writtenbytes;
- Count-= writtenbytes;
- }
- my_errno= errno;
- DBUG_PRINT("error",("Write only %ld bytes, error: %d",
- (long) writtenbytes, my_errno));
-#ifndef NO_BACKGROUND
- if (my_thread_var->abort)
- MyFlags&= ~ MY_WAIT_IF_FULL; /* End if aborted by user */
-
- if ((my_errno == ENOSPC || my_errno == EDQUOT) &&
- (MyFlags & MY_WAIT_IF_FULL))
- {
- wait_for_free_space(my_filename(Filedes), errors);
- errors++;
- continue;
- }
-
- if ((writtenbytes == 0 || writtenbytes == (size_t) -1))
- {
- if (my_errno == EINTR)
- {
- DBUG_PRINT("debug", ("my_write() was interrupted and returned %ld",
- (long) writtenbytes));
- continue; /* Interrupted */
- }
-
- if (!writtenbytes && !errors++) /* Retry once */
- {
- /* We may come here if the file quota is exeeded */
- errno= EFBIG; /* Assume this is the error */
- continue;
- }
- }
- else
- continue; /* Retry */
-#endif
- if (MyFlags & (MY_NABP | MY_FNABP))
- {
- if (MyFlags & (MY_WME | MY_FAE | MY_FNABP))
- {
- my_error(EE_WRITE, MYF(ME_BELL+ME_WAITTANG),
- my_filename(Filedes),my_errno);
- }
- DBUG_RETURN(MY_FILE_ERROR); /* Error on read */
- }
- else
- break; /* Return bytes written */
- }
- if (MyFlags & (MY_NABP | MY_FNABP))
- DBUG_RETURN(0); /* Want only errors */
- DBUG_RETURN(writtenbytes+written);
-} /* my_write */
diff --git a/dep/mysqllite/mysys/mysys_priv.h b/dep/mysqllite/mysys/mysys_priv.h
deleted file mode 100644
index 4e642b7e3d3..00000000000
--- a/dep/mysqllite/mysys/mysys_priv.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <my_sys.h>
-
-#ifdef USE_SYSTEM_WRAPPERS
-#include "system_wrappers.h"
-#endif
-
-#ifdef HAVE_GETRUSAGE
-#include <sys/resource.h>
-#endif
-
-#include <my_pthread.h>
-
-#ifdef HAVE_PSI_INTERFACE
-
-#if !defined(HAVE_PREAD) && !defined(_WIN32)
-extern PSI_mutex_key key_my_file_info_mutex;
-#endif /* !defined(HAVE_PREAD) && !defined(_WIN32) */
-
-#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
-extern PSI_mutex_key key_LOCK_localtime_r;
-#endif /* !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R) */
-
-#ifndef HAVE_GETHOSTBYNAME_R
-extern PSI_mutex_key key_LOCK_gethostbyname_r;
-#endif /* HAVE_GETHOSTBYNAME_R */
-
-extern PSI_mutex_key key_BITMAP_mutex, key_IO_CACHE_append_buffer_lock,
- key_IO_CACHE_SHARE_mutex, key_KEY_CACHE_cache_lock, key_LOCK_alarm,
- key_my_thread_var_mutex, key_THR_LOCK_charset, key_THR_LOCK_heap,
- key_THR_LOCK_isam, key_THR_LOCK_lock, key_THR_LOCK_malloc,
- key_THR_LOCK_mutex, key_THR_LOCK_myisam, key_THR_LOCK_net,
- key_THR_LOCK_open, key_THR_LOCK_threads, key_THR_LOCK_time,
- key_TMPDIR_mutex, key_THR_LOCK_myisam_mmap;
-
-extern PSI_cond_key key_COND_alarm, key_IO_CACHE_SHARE_cond,
- key_IO_CACHE_SHARE_cond_writer, key_my_thread_var_suspend,
- key_THR_COND_threads;
-
-#ifdef USE_ALARM_THREAD
-extern PSI_thread_key key_thread_alarm;
-#endif /* USE_ALARM_THREAD */
-
-#endif /* HAVE_PSI_INTERFACE */
-
-extern mysql_mutex_t THR_LOCK_malloc, THR_LOCK_open, THR_LOCK_keycache;
-extern mysql_mutex_t THR_LOCK_lock, THR_LOCK_isam, THR_LOCK_net;
-extern mysql_mutex_t THR_LOCK_charset, THR_LOCK_time;
-
-#include <mysql/psi/mysql_file.h>
-
-#ifdef HAVE_PSI_INTERFACE
-#ifdef HUGETLB_USE_PROC_MEMINFO
-extern PSI_file_key key_file_proc_meminfo;
-#endif /* HUGETLB_USE_PROC_MEMINFO */
-extern PSI_file_key key_file_charset, key_file_cnf;
-#endif /* HAVE_PSI_INTERFACE */
-
-/*
- EDQUOT is used only in 3 C files only in mysys/. If it does not exist on
- system, we set it to some value which can never happen.
-*/
-#ifndef EDQUOT
-#define EDQUOT (-1)
-#endif
-
-void my_error_unregister_all(void);
-
-#ifdef _WIN32
-#include <sys/stat.h>
-/* my_winfile.c exports, should not be used outside mysys */
-extern File my_win_open(const char *path, int oflag);
-extern int my_win_close(File fd);
-extern size_t my_win_read(File fd, uchar *buffer, size_t count);
-extern size_t my_win_write(File fd, const uchar *buffer, size_t count);
-extern size_t my_win_pread(File fd, uchar *buffer, size_t count,
- my_off_t offset);
-extern size_t my_win_pwrite(File fd, const uchar *buffer, size_t count,
- my_off_t offset);
-extern my_off_t my_win_lseek(File fd, my_off_t pos, int whence);
-extern int my_win_chsize(File fd, my_off_t newlength);
-extern FILE* my_win_fopen(const char *filename, const char *type);
-extern File my_win_fclose(FILE *file);
-extern File my_win_fileno(FILE *file);
-extern FILE* my_win_fdopen(File Filedes, const char *type);
-extern int my_win_stat(const char *path, struct _stati64 *buf);
-extern int my_win_fstat(File fd, struct _stati64 *buf);
-extern int my_win_fsync(File fd);
-extern File my_win_dup(File fd);
-extern File my_win_sopen(const char *path, int oflag, int shflag, int perm);
-extern File my_open_osfhandle(HANDLE handle, int oflag);
-#endif
diff --git a/dep/mysqllite/mysys/ptr_cmp.c b/dep/mysqllite/mysys/ptr_cmp.c
deleted file mode 100644
index dcafe13291d..00000000000
--- a/dep/mysqllite/mysys/ptr_cmp.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- get_ptr_compare(len) returns a pointer to a optimal byte-compare function
- for a array of stringpointer where all strings have size len.
- The bytes are compare as unsigned chars.
- */
-
-#include "mysys_priv.h"
-#include <myisampack.h>
-
-#ifdef __sun
-/*
- * On Solaris, memcmp() is normally faster than the unrolled ptr_compare_N
- * functions, as memcmp() is usually a platform-specific implementation
- * written in assembler, provided in /usr/lib/libc/libc_hwcap*.so.1.
- * This implementation is also usually faster than the built-in memcmp
- * supplied by GCC, so it is recommended to build with "-fno-builtin-memcmp"
- * in CFLAGS if building with GCC on Solaris.
- */
-
-#include <string.h>
-
-static int native_compare(size_t *length, unsigned char **a, unsigned char **b)
-{
- return memcmp(*a, *b, *length);
-}
-
-#else /* __sun */
-
-static int ptr_compare(size_t *compare_length, uchar **a, uchar **b);
-static int ptr_compare_0(size_t *compare_length, uchar **a, uchar **b);
-static int ptr_compare_1(size_t *compare_length, uchar **a, uchar **b);
-static int ptr_compare_2(size_t *compare_length, uchar **a, uchar **b);
-static int ptr_compare_3(size_t *compare_length, uchar **a, uchar **b);
-#endif /* __sun */
-
- /* Get a pointer to a optimal byte-compare function for a given size */
-
-#ifdef __sun
-qsort2_cmp get_ptr_compare (size_t size __attribute__((unused)))
-{
- return (qsort2_cmp) native_compare;
-}
-#else
-qsort2_cmp get_ptr_compare (size_t size)
-{
- if (size < 4)
- return (qsort2_cmp) ptr_compare;
- switch (size & 3) {
- case 0: return (qsort2_cmp) ptr_compare_0;
- case 1: return (qsort2_cmp) ptr_compare_1;
- case 2: return (qsort2_cmp) ptr_compare_2;
- case 3: return (qsort2_cmp) ptr_compare_3;
- }
- return 0; /* Impossible */
-}
-#endif /* __sun */
-
-
- /*
- Compare to keys to see witch is smaller.
- Loop unrolled to make it quick !!
- */
-
-#define cmp(N) if (first[N] != last[N]) return (int) first[N] - (int) last[N]
-
-#ifndef __sun
-
-static int ptr_compare(size_t *compare_length, uchar **a, uchar **b)
-{
- reg3 int length= *compare_length;
- reg1 uchar *first,*last;
-
- first= *a; last= *b;
- while (--length)
- {
- if (*first++ != *last++)
- return (int) first[-1] - (int) last[-1];
- }
- return (int) first[0] - (int) last[0];
-}
-
-
-static int ptr_compare_0(size_t *compare_length,uchar **a, uchar **b)
-{
- reg3 int length= *compare_length;
- reg1 uchar *first,*last;
-
- first= *a; last= *b;
- loop:
- cmp(0);
- cmp(1);
- cmp(2);
- cmp(3);
- if ((length-=4))
- {
- first+=4;
- last+=4;
- goto loop;
- }
- return (0);
-}
-
-
-static int ptr_compare_1(size_t *compare_length,uchar **a, uchar **b)
-{
- reg3 int length= *compare_length-1;
- reg1 uchar *first,*last;
-
- first= *a+1; last= *b+1;
- cmp(-1);
- loop:
- cmp(0);
- cmp(1);
- cmp(2);
- cmp(3);
- if ((length-=4))
- {
- first+=4;
- last+=4;
- goto loop;
- }
- return (0);
-}
-
-static int ptr_compare_2(size_t *compare_length,uchar **a, uchar **b)
-{
- reg3 int length= *compare_length-2;
- reg1 uchar *first,*last;
-
- first= *a +2 ; last= *b +2;
- cmp(-2);
- cmp(-1);
- loop:
- cmp(0);
- cmp(1);
- cmp(2);
- cmp(3);
- if ((length-=4))
- {
- first+=4;
- last+=4;
- goto loop;
- }
- return (0);
-}
-
-static int ptr_compare_3(size_t *compare_length,uchar **a, uchar **b)
-{
- reg3 int length= *compare_length-3;
- reg1 uchar *first,*last;
-
- first= *a +3 ; last= *b +3;
- cmp(-3);
- cmp(-2);
- cmp(-1);
- loop:
- cmp(0);
- cmp(1);
- cmp(2);
- cmp(3);
- if ((length-=4))
- {
- first+=4;
- last+=4;
- goto loop;
- }
- return (0);
-}
-
-#endif /* !__sun */
-
-void my_store_ptr(uchar *buff, size_t pack_length, my_off_t pos)
-{
- switch (pack_length) {
-#if SIZEOF_OFF_T > 4
- case 8: mi_int8store(buff,pos); break;
- case 7: mi_int7store(buff,pos); break;
- case 6: mi_int6store(buff,pos); break;
- case 5: mi_int5store(buff,pos); break;
-#endif
- case 4: mi_int4store(buff,pos); break;
- case 3: mi_int3store(buff,pos); break;
- case 2: mi_int2store(buff,pos); break;
- case 1: buff[0]= (uchar) pos; break;
- default: DBUG_ASSERT(0);
- }
- return;
-}
-
-my_off_t my_get_ptr(uchar *ptr, size_t pack_length)
-{
- my_off_t pos;
- switch (pack_length) {
-#if SIZEOF_OFF_T > 4
- case 8: pos= (my_off_t) mi_uint8korr(ptr); break;
- case 7: pos= (my_off_t) mi_uint7korr(ptr); break;
- case 6: pos= (my_off_t) mi_uint6korr(ptr); break;
- case 5: pos= (my_off_t) mi_uint5korr(ptr); break;
-#endif
- case 4: pos= (my_off_t) mi_uint4korr(ptr); break;
- case 3: pos= (my_off_t) mi_uint3korr(ptr); break;
- case 2: pos= (my_off_t) mi_uint2korr(ptr); break;
- case 1: pos= (my_off_t) *(uchar*) ptr; break;
- default: DBUG_ASSERT(0); return 0;
- }
- return pos;
-}
-
diff --git a/dep/mysqllite/mysys/queues.c b/dep/mysqllite/mysys/queues.c
deleted file mode 100644
index 25a310c0752..00000000000
--- a/dep/mysqllite/mysys/queues.c
+++ /dev/null
@@ -1,687 +0,0 @@
-/* Copyright (C) 2000, 2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Code for generell handling of priority Queues.
- Implemention of queues from "Algoritms in C" by Robert Sedgewick.
- An optimisation of _downheap suggested in Exercise 7.51 in "Data
- Structures & Algorithms in C++" by Mark Allen Weiss, Second Edition
- was implemented by Mikael Ronstrom 2005. Also the O(N) algorithm
- of queue_fix was implemented.
-*/
-
-#include "mysys_priv.h"
-#include "mysys_err.h"
-#include <queues.h>
-
-
-/*
- Init queue
-
- SYNOPSIS
- init_queue()
- queue Queue to initialise
- max_elements Max elements that will be put in queue
- offset_to_key Offset to key in element stored in queue
- Used when sending pointers to compare function
- max_at_top Set to 1 if you want biggest element on top.
- compare Compare function for elements, takes 3 arguments.
- first_cmp_arg First argument to compare function
-
- NOTES
- Will allocate max_element pointers for queue array
-
- RETURN
- 0 ok
- 1 Could not allocate memory
-*/
-
-int init_queue(QUEUE *queue, uint max_elements, uint offset_to_key,
- pbool max_at_top, int (*compare) (void *, uchar *, uchar *),
- void *first_cmp_arg)
-{
- DBUG_ENTER("init_queue");
- if ((queue->root= (uchar **) my_malloc((max_elements+1)*sizeof(void*),
- MYF(MY_WME))) == 0)
- DBUG_RETURN(1);
- queue->elements=0;
- queue->compare=compare;
- queue->first_cmp_arg=first_cmp_arg;
- queue->max_elements=max_elements;
- queue->offset_to_key=offset_to_key;
- queue_set_max_at_top(queue, max_at_top);
- DBUG_RETURN(0);
-}
-
-
-
-/*
- Init queue, uses init_queue internally for init work but also accepts
- auto_extent as parameter
-
- SYNOPSIS
- init_queue_ex()
- queue Queue to initialise
- max_elements Max elements that will be put in queue
- offset_to_key Offset to key in element stored in queue
- Used when sending pointers to compare function
- max_at_top Set to 1 if you want biggest element on top.
- compare Compare function for elements, takes 3 arguments.
- first_cmp_arg First argument to compare function
- auto_extent When the queue is full and there is insert operation
- extend the queue.
-
- NOTES
- Will allocate max_element pointers for queue array
-
- RETURN
- 0 ok
- 1 Could not allocate memory
-*/
-
-int init_queue_ex(QUEUE *queue, uint max_elements, uint offset_to_key,
- pbool max_at_top, int (*compare) (void *, uchar *, uchar *),
- void *first_cmp_arg, uint auto_extent)
-{
- int ret;
- DBUG_ENTER("init_queue_ex");
-
- if ((ret= init_queue(queue, max_elements, offset_to_key, max_at_top, compare,
- first_cmp_arg)))
- DBUG_RETURN(ret);
-
- queue->auto_extent= auto_extent;
- DBUG_RETURN(0);
-}
-
-/*
- Reinitialize queue for other usage
-
- SYNOPSIS
- reinit_queue()
- queue Queue to initialise
- max_elements Max elements that will be put in queue
- offset_to_key Offset to key in element stored in queue
- Used when sending pointers to compare function
- max_at_top Set to 1 if you want biggest element on top.
- compare Compare function for elements, takes 3 arguments.
- first_cmp_arg First argument to compare function
-
- NOTES
- This will delete all elements from the queue. If you don't want this,
- use resize_queue() instead.
-
- RETURN
- 0 ok
- EE_OUTOFMEMORY Wrong max_elements
-*/
-
-int reinit_queue(QUEUE *queue, uint max_elements, uint offset_to_key,
- pbool max_at_top, int (*compare) (void *, uchar *, uchar *),
- void *first_cmp_arg)
-{
- DBUG_ENTER("reinit_queue");
- queue->elements=0;
- queue->compare=compare;
- queue->first_cmp_arg=first_cmp_arg;
- queue->offset_to_key=offset_to_key;
- queue_set_max_at_top(queue, max_at_top);
- resize_queue(queue, max_elements);
- DBUG_RETURN(0);
-}
-
-
-/*
- Resize queue
-
- SYNOPSIS
- resize_queue()
- queue Queue
- max_elements New max size for queue
-
- NOTES
- If you resize queue to be less than the elements you have in it,
- the extra elements will be deleted
-
- RETURN
- 0 ok
- 1 Error. In this case the queue is unchanged
-*/
-
-int resize_queue(QUEUE *queue, uint max_elements)
-{
- uchar **new_root;
- DBUG_ENTER("resize_queue");
- if (queue->max_elements == max_elements)
- DBUG_RETURN(0);
- if ((new_root= (uchar **) my_realloc((void *)queue->root,
- (max_elements+1)*sizeof(void*),
- MYF(MY_WME))) == 0)
- DBUG_RETURN(1);
- set_if_smaller(queue->elements, max_elements);
- queue->max_elements= max_elements;
- queue->root= new_root;
- DBUG_RETURN(0);
-}
-
-
-/*
- Delete queue
-
- SYNOPSIS
- delete_queue()
- queue Queue to delete
-
- IMPLEMENTATION
- Just free allocated memory.
-
- NOTES
- Can be called safely multiple times
-*/
-
-void delete_queue(QUEUE *queue)
-{
- DBUG_ENTER("delete_queue");
- my_free(queue->root);
- queue->root= NULL;
- DBUG_VOID_RETURN;
-}
-
-
- /* Code for insert, search and delete of elements */
-
-void queue_insert(register QUEUE *queue, uchar *element)
-{
- reg2 uint idx, next;
- DBUG_ASSERT(queue->elements < queue->max_elements);
- queue->root[0]= element;
- idx= ++queue->elements;
- /* max_at_top swaps the comparison if we want to order by desc */
- while ((queue->compare(queue->first_cmp_arg,
- element + queue->offset_to_key,
- queue->root[(next= idx >> 1)] +
- queue->offset_to_key) * queue->max_at_top) < 0)
- {
- queue->root[idx]= queue->root[next];
- idx= next;
- }
- queue->root[idx]= element;
-}
-
-/*
- Does safe insert. If no more space left on the queue resize it.
- Return codes:
- 0 - OK
- 1 - Cannot allocate more memory
- 2 - auto_extend is 0, the operation would
-
-*/
-
-int queue_insert_safe(register QUEUE *queue, uchar *element)
-{
-
- if (queue->elements == queue->max_elements)
- {
- if (!queue->auto_extent)
- return 2;
- else if (resize_queue(queue, queue->max_elements + queue->auto_extent))
- return 1;
- }
-
- queue_insert(queue, element);
- return 0;
-}
-
-
- /* Remove item from queue */
- /* Returns pointer to removed element */
-
-uchar *queue_remove(register QUEUE *queue, uint idx)
-{
- uchar *element;
- DBUG_ASSERT(idx < queue->max_elements);
- element= queue->root[++idx]; /* Intern index starts from 1 */
- queue->root[idx]= queue->root[queue->elements--];
- _downheap(queue, idx);
- return element;
-}
-
- /* Fix when element on top has been replaced */
-
-#ifndef queue_replaced
-void queue_replaced(QUEUE *queue)
-{
- _downheap(queue,1);
-}
-#endif
-
-#ifndef OLD_VERSION
-
-void _downheap(register QUEUE *queue, uint idx)
-{
- uchar *element;
- uint elements,half_queue,offset_to_key, next_index;
- my_bool first= TRUE;
- uint start_idx= idx;
-
- offset_to_key=queue->offset_to_key;
- element=queue->root[idx];
- half_queue=(elements=queue->elements) >> 1;
-
- while (idx <= half_queue)
- {
- next_index=idx+idx;
- if (next_index < elements &&
- (queue->compare(queue->first_cmp_arg,
- queue->root[next_index]+offset_to_key,
- queue->root[next_index+1]+offset_to_key) *
- queue->max_at_top) > 0)
- next_index++;
- if (first &&
- (((queue->compare(queue->first_cmp_arg,
- queue->root[next_index]+offset_to_key,
- element+offset_to_key) * queue->max_at_top) >= 0)))
- {
- queue->root[idx]= element;
- return;
- }
- queue->root[idx]=queue->root[next_index];
- idx=next_index;
- first= FALSE;
- }
-
- next_index= idx >> 1;
- while (next_index > start_idx)
- {
- if ((queue->compare(queue->first_cmp_arg,
- queue->root[next_index]+offset_to_key,
- element+offset_to_key) *
- queue->max_at_top) < 0)
- break;
- queue->root[idx]=queue->root[next_index];
- idx=next_index;
- next_index= idx >> 1;
- }
- queue->root[idx]=element;
-}
-
-#else
- /*
- The old _downheap version is kept for comparisons with the benchmark
- suit or new benchmarks anyone wants to run for comparisons.
- */
- /* Fix heap when index have changed */
-void _downheap(register QUEUE *queue, uint idx)
-{
- uchar *element;
- uint elements,half_queue,next_index,offset_to_key;
-
- offset_to_key=queue->offset_to_key;
- element=queue->root[idx];
- half_queue=(elements=queue->elements) >> 1;
-
- while (idx <= half_queue)
- {
- next_index=idx+idx;
- if (next_index < elements &&
- (queue->compare(queue->first_cmp_arg,
- queue->root[next_index]+offset_to_key,
- queue->root[next_index+1]+offset_to_key) *
- queue->max_at_top) > 0)
- next_index++;
- if ((queue->compare(queue->first_cmp_arg,
- queue->root[next_index]+offset_to_key,
- element+offset_to_key) * queue->max_at_top) >= 0)
- break;
- queue->root[idx]=queue->root[next_index];
- idx=next_index;
- }
- queue->root[idx]=element;
-}
-
-
-#endif
-
-/*
- Fix heap when every element was changed.
-*/
-
-void queue_fix(QUEUE *queue)
-{
- uint i;
- for (i= queue->elements >> 1; i > 0; i--)
- _downheap(queue, i);
-}
-
-#ifdef MAIN
- /*
- A test program for the priority queue implementation.
- It can also be used to benchmark changes of the implementation
- Build by doing the following in the directory mysys
- make test_priority_queue
- ./test_priority_queue
-
- Written by Mikael Ronström, 2005
- */
-
-static uint num_array[1025];
-static uint tot_no_parts= 0;
-static uint tot_no_loops= 0;
-static uint expected_part= 0;
-static uint expected_num= 0;
-static bool max_ind= 0;
-static bool fix_used= 0;
-static ulonglong start_time= 0;
-
-static bool is_divisible_by(uint num, uint divisor)
-{
- uint quotient= num / divisor;
- if (quotient * divisor == num)
- return TRUE;
- return FALSE;
-}
-
-void calculate_next()
-{
- uint part= expected_part, num= expected_num;
- uint no_parts= tot_no_parts;
- if (max_ind)
- {
- do
- {
- while (++part <= no_parts)
- {
- if (is_divisible_by(num, part) &&
- (num <= ((1 << 21) + part)))
- {
- expected_part= part;
- expected_num= num;
- return;
- }
- }
- part= 0;
- } while (--num);
- }
- else
- {
- do
- {
- while (--part > 0)
- {
- if (is_divisible_by(num, part))
- {
- expected_part= part;
- expected_num= num;
- return;
- }
- }
- part= no_parts + 1;
- } while (++num);
- }
-}
-
-void calculate_end_next(uint part)
-{
- uint no_parts= tot_no_parts, num;
- num_array[part]= 0;
- if (max_ind)
- {
- expected_num= 0;
- for (part= no_parts; part > 0 ; part--)
- {
- if (num_array[part])
- {
- num= num_array[part] & 0x3FFFFF;
- if (num >= expected_num)
- {
- expected_num= num;
- expected_part= part;
- }
- }
- }
- if (expected_num == 0)
- expected_part= 0;
- }
- else
- {
- expected_num= 0xFFFFFFFF;
- for (part= 1; part <= no_parts; part++)
- {
- if (num_array[part])
- {
- num= num_array[part] & 0x3FFFFF;
- if (num <= expected_num)
- {
- expected_num= num;
- expected_part= part;
- }
- }
- }
- if (expected_num == 0xFFFFFFFF)
- expected_part= 0;
- }
- return;
-}
-static int test_compare(void *null_arg, uchar *a, uchar *b)
-{
- uint a_num= (*(uint*)a) & 0x3FFFFF;
- uint b_num= (*(uint*)b) & 0x3FFFFF;
- uint a_part, b_part;
- if (a_num > b_num)
- return +1;
- if (a_num < b_num)
- return -1;
- a_part= (*(uint*)a) >> 22;
- b_part= (*(uint*)b) >> 22;
- if (a_part < b_part)
- return +1;
- if (a_part > b_part)
- return -1;
- return 0;
-}
-
-bool check_num(uint num_part)
-{
- uint part= num_part >> 22;
- uint num= num_part & 0x3FFFFF;
- if (part == expected_part)
- if (num == expected_num)
- return FALSE;
- printf("Expect part %u Expect num 0x%x got part %u num 0x%x max_ind %u fix_used %u \n",
- expected_part, expected_num, part, num, max_ind, fix_used);
- return TRUE;
-}
-
-
-void perform_insert(QUEUE *queue)
-{
- uint i= 1, no_parts= tot_no_parts;
- uint backward_start= 0;
-
- expected_part= 1;
- expected_num= 1;
-
- if (max_ind)
- backward_start= 1 << 21;
-
- do
- {
- uint num= (i + backward_start);
- if (max_ind)
- {
- while (!is_divisible_by(num, i))
- num--;
- if (max_ind && (num > expected_num ||
- (num == expected_num && i < expected_part)))
- {
- expected_num= num;
- expected_part= i;
- }
- }
- num_array[i]= num + (i << 22);
- if (fix_used)
- queue_element(queue, i-1)= (uchar*)&num_array[i];
- else
- queue_insert(queue, (uchar*)&num_array[i]);
- } while (++i <= no_parts);
- if (fix_used)
- {
- queue->elements= no_parts;
- queue_fix(queue);
- }
-}
-
-bool perform_ins_del(QUEUE *queue, bool max_ind)
-{
- uint i= 0, no_loops= tot_no_loops, j= tot_no_parts;
- do
- {
- uint num_part= *(uint*)queue_top(queue);
- uint part= num_part >> 22;
- if (check_num(num_part))
- return TRUE;
- if (j++ >= no_loops)
- {
- calculate_end_next(part);
- queue_remove(queue, (uint) 0);
- }
- else
- {
- calculate_next();
- if (max_ind)
- num_array[part]-= part;
- else
- num_array[part]+= part;
- queue_top(queue)= (uchar*)&num_array[part];
- queue_replaced(queue);
- }
- } while (++i < no_loops);
- return FALSE;
-}
-
-bool do_test(uint no_parts, uint l_max_ind, bool l_fix_used)
-{
- QUEUE queue;
- bool result;
- max_ind= l_max_ind;
- fix_used= l_fix_used;
- init_queue(&queue, no_parts, 0, max_ind, test_compare, NULL);
- tot_no_parts= no_parts;
- tot_no_loops= 1024;
- perform_insert(&queue);
- if ((result= perform_ins_del(&queue, max_ind)))
- delete_queue(&queue);
- if (result)
- {
- printf("Error\n");
- return TRUE;
- }
- return FALSE;
-}
-
-static void start_measurement()
-{
- start_time= my_getsystime();
-}
-
-static void stop_measurement()
-{
- ulonglong stop_time= my_getsystime();
- uint time_in_micros;
- stop_time-= start_time;
- stop_time/= 10; /* Convert to microseconds */
- time_in_micros= (uint)stop_time;
- printf("Time expired is %u microseconds \n", time_in_micros);
-}
-
-static void benchmark_test()
-{
- QUEUE queue_real;
- QUEUE *queue= &queue_real;
- uint i, add;
- fix_used= TRUE;
- max_ind= FALSE;
- tot_no_parts= 1024;
- init_queue(queue, tot_no_parts, 0, max_ind, test_compare, NULL);
- /*
- First benchmark whether queue_fix is faster than using queue_insert
- for sizes of 16 partitions.
- */
- for (tot_no_parts= 2, add=2; tot_no_parts < 128;
- tot_no_parts+= add, add++)
- {
- printf("Start benchmark queue_fix, tot_no_parts= %u \n", tot_no_parts);
- start_measurement();
- for (i= 0; i < 128; i++)
- {
- perform_insert(queue);
- queue_remove_all(queue);
- }
- stop_measurement();
-
- fix_used= FALSE;
- printf("Start benchmark queue_insert\n");
- start_measurement();
- for (i= 0; i < 128; i++)
- {
- perform_insert(queue);
- queue_remove_all(queue);
- }
- stop_measurement();
- }
- /*
- Now benchmark insertion and deletion of 16400 elements.
- Used in consecutive runs this shows whether the optimised _downheap
- is faster than the standard implementation.
- */
- printf("Start benchmarking _downheap \n");
- start_measurement();
- perform_insert(queue);
- for (i= 0; i < 65536; i++)
- {
- uint num, part;
- num= *(uint*)queue_top(queue);
- num+= 16;
- part= num >> 22;
- num_array[part]= num;
- queue_top(queue)= (uchar*)&num_array[part];
- queue_replaced(queue);
- }
- for (i= 0; i < 16; i++)
- queue_remove(queue, (uint) 0);
- queue_remove_all(queue);
- stop_measurement();
-}
-
-int main()
-{
- int i, add= 1;
- for (i= 1; i < 1024; i+=add, add++)
- {
- printf("Start test for priority queue of size %u\n", i);
- if (do_test(i, 0, 1))
- return -1;
- if (do_test(i, 1, 1))
- return -1;
- if (do_test(i, 0, 0))
- return -1;
- if (do_test(i, 1, 0))
- return -1;
- }
- benchmark_test();
- printf("OK\n");
- return 0;
-}
-#endif
diff --git a/dep/mysqllite/mysys/rijndael.c b/dep/mysqllite/mysys/rijndael.c
deleted file mode 100644
index 2d622efad82..00000000000
--- a/dep/mysqllite/mysys/rijndael.c
+++ /dev/null
@@ -1,1379 +0,0 @@
-/* Copyright (C) 2002, 2004 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-
-/*
- Based on version 3.0 (December 2000)
-
- Optimised ANSI C code for the Rijndael cipher (now AES)
-
- author Vincent Rijmen <vincent.rijmen@esat.kuleuven.ac.be>
- author Antoon Bosselaers <antoon.bosselaers@esat.kuleuven.ac.be>
- author Paulo Barreto <paulo.barreto@terra.com.br>
-*/
-
-#include <my_global.h>
-#include "rijndael.h"
-
-/*
- Define the following to use fastest and much larger code (~10K extra code)
- #define FULL_UNROLL
-*/
-
-static const uint32 Te0[256]=
-{
- 0xc66363a5U, 0xf87c7c84U, 0xee777799U, 0xf67b7b8dU,
- 0xfff2f20dU, 0xd66b6bbdU, 0xde6f6fb1U, 0x91c5c554U,
- 0x60303050U, 0x02010103U, 0xce6767a9U, 0x562b2b7dU,
- 0xe7fefe19U, 0xb5d7d762U, 0x4dababe6U, 0xec76769aU,
- 0x8fcaca45U, 0x1f82829dU, 0x89c9c940U, 0xfa7d7d87U,
- 0xeffafa15U, 0xb25959ebU, 0x8e4747c9U, 0xfbf0f00bU,
- 0x41adadecU, 0xb3d4d467U, 0x5fa2a2fdU, 0x45afafeaU,
- 0x239c9cbfU, 0x53a4a4f7U, 0xe4727296U, 0x9bc0c05bU,
- 0x75b7b7c2U, 0xe1fdfd1cU, 0x3d9393aeU, 0x4c26266aU,
- 0x6c36365aU, 0x7e3f3f41U, 0xf5f7f702U, 0x83cccc4fU,
- 0x6834345cU, 0x51a5a5f4U, 0xd1e5e534U, 0xf9f1f108U,
- 0xe2717193U, 0xabd8d873U, 0x62313153U, 0x2a15153fU,
- 0x0804040cU, 0x95c7c752U, 0x46232365U, 0x9dc3c35eU,
- 0x30181828U, 0x379696a1U, 0x0a05050fU, 0x2f9a9ab5U,
- 0x0e070709U, 0x24121236U, 0x1b80809bU, 0xdfe2e23dU,
- 0xcdebeb26U, 0x4e272769U, 0x7fb2b2cdU, 0xea75759fU,
- 0x1209091bU, 0x1d83839eU, 0x582c2c74U, 0x341a1a2eU,
- 0x361b1b2dU, 0xdc6e6eb2U, 0xb45a5aeeU, 0x5ba0a0fbU,
- 0xa45252f6U, 0x763b3b4dU, 0xb7d6d661U, 0x7db3b3ceU,
- 0x5229297bU, 0xdde3e33eU, 0x5e2f2f71U, 0x13848497U,
- 0xa65353f5U, 0xb9d1d168U, 0x00000000U, 0xc1eded2cU,
- 0x40202060U, 0xe3fcfc1fU, 0x79b1b1c8U, 0xb65b5bedU,
- 0xd46a6abeU, 0x8dcbcb46U, 0x67bebed9U, 0x7239394bU,
- 0x944a4adeU, 0x984c4cd4U, 0xb05858e8U, 0x85cfcf4aU,
- 0xbbd0d06bU, 0xc5efef2aU, 0x4faaaae5U, 0xedfbfb16U,
- 0x864343c5U, 0x9a4d4dd7U, 0x66333355U, 0x11858594U,
- 0x8a4545cfU, 0xe9f9f910U, 0x04020206U, 0xfe7f7f81U,
- 0xa05050f0U, 0x783c3c44U, 0x259f9fbaU, 0x4ba8a8e3U,
- 0xa25151f3U, 0x5da3a3feU, 0x804040c0U, 0x058f8f8aU,
- 0x3f9292adU, 0x219d9dbcU, 0x70383848U, 0xf1f5f504U,
- 0x63bcbcdfU, 0x77b6b6c1U, 0xafdada75U, 0x42212163U,
- 0x20101030U, 0xe5ffff1aU, 0xfdf3f30eU, 0xbfd2d26dU,
- 0x81cdcd4cU, 0x180c0c14U, 0x26131335U, 0xc3ecec2fU,
- 0xbe5f5fe1U, 0x359797a2U, 0x884444ccU, 0x2e171739U,
- 0x93c4c457U, 0x55a7a7f2U, 0xfc7e7e82U, 0x7a3d3d47U,
- 0xc86464acU, 0xba5d5de7U, 0x3219192bU, 0xe6737395U,
- 0xc06060a0U, 0x19818198U, 0x9e4f4fd1U, 0xa3dcdc7fU,
- 0x44222266U, 0x542a2a7eU, 0x3b9090abU, 0x0b888883U,
- 0x8c4646caU, 0xc7eeee29U, 0x6bb8b8d3U, 0x2814143cU,
- 0xa7dede79U, 0xbc5e5ee2U, 0x160b0b1dU, 0xaddbdb76U,
- 0xdbe0e03bU, 0x64323256U, 0x743a3a4eU, 0x140a0a1eU,
- 0x924949dbU, 0x0c06060aU, 0x4824246cU, 0xb85c5ce4U,
- 0x9fc2c25dU, 0xbdd3d36eU, 0x43acacefU, 0xc46262a6U,
- 0x399191a8U, 0x319595a4U, 0xd3e4e437U, 0xf279798bU,
- 0xd5e7e732U, 0x8bc8c843U, 0x6e373759U, 0xda6d6db7U,
- 0x018d8d8cU, 0xb1d5d564U, 0x9c4e4ed2U, 0x49a9a9e0U,
- 0xd86c6cb4U, 0xac5656faU, 0xf3f4f407U, 0xcfeaea25U,
- 0xca6565afU, 0xf47a7a8eU, 0x47aeaee9U, 0x10080818U,
- 0x6fbabad5U, 0xf0787888U, 0x4a25256fU, 0x5c2e2e72U,
- 0x381c1c24U, 0x57a6a6f1U, 0x73b4b4c7U, 0x97c6c651U,
- 0xcbe8e823U, 0xa1dddd7cU, 0xe874749cU, 0x3e1f1f21U,
- 0x964b4bddU, 0x61bdbddcU, 0x0d8b8b86U, 0x0f8a8a85U,
- 0xe0707090U, 0x7c3e3e42U, 0x71b5b5c4U, 0xcc6666aaU,
- 0x904848d8U, 0x06030305U, 0xf7f6f601U, 0x1c0e0e12U,
- 0xc26161a3U, 0x6a35355fU, 0xae5757f9U, 0x69b9b9d0U,
- 0x17868691U, 0x99c1c158U, 0x3a1d1d27U, 0x279e9eb9U,
- 0xd9e1e138U, 0xebf8f813U, 0x2b9898b3U, 0x22111133U,
- 0xd26969bbU, 0xa9d9d970U, 0x078e8e89U, 0x339494a7U,
- 0x2d9b9bb6U, 0x3c1e1e22U, 0x15878792U, 0xc9e9e920U,
- 0x87cece49U, 0xaa5555ffU, 0x50282878U, 0xa5dfdf7aU,
- 0x038c8c8fU, 0x59a1a1f8U, 0x09898980U, 0x1a0d0d17U,
- 0x65bfbfdaU, 0xd7e6e631U, 0x844242c6U, 0xd06868b8U,
- 0x824141c3U, 0x299999b0U, 0x5a2d2d77U, 0x1e0f0f11U,
- 0x7bb0b0cbU, 0xa85454fcU, 0x6dbbbbd6U, 0x2c16163aU,
-};
-
-static const uint32 Te1[256]=
-{
- 0xa5c66363U, 0x84f87c7cU, 0x99ee7777U, 0x8df67b7bU,
- 0x0dfff2f2U, 0xbdd66b6bU, 0xb1de6f6fU, 0x5491c5c5U,
- 0x50603030U, 0x03020101U, 0xa9ce6767U, 0x7d562b2bU,
- 0x19e7fefeU, 0x62b5d7d7U, 0xe64dababU, 0x9aec7676U,
- 0x458fcacaU, 0x9d1f8282U, 0x4089c9c9U, 0x87fa7d7dU,
- 0x15effafaU, 0xebb25959U, 0xc98e4747U, 0x0bfbf0f0U,
- 0xec41adadU, 0x67b3d4d4U, 0xfd5fa2a2U, 0xea45afafU,
- 0xbf239c9cU, 0xf753a4a4U, 0x96e47272U, 0x5b9bc0c0U,
- 0xc275b7b7U, 0x1ce1fdfdU, 0xae3d9393U, 0x6a4c2626U,
- 0x5a6c3636U, 0x417e3f3fU, 0x02f5f7f7U, 0x4f83ccccU,
- 0x5c683434U, 0xf451a5a5U, 0x34d1e5e5U, 0x08f9f1f1U,
- 0x93e27171U, 0x73abd8d8U, 0x53623131U, 0x3f2a1515U,
- 0x0c080404U, 0x5295c7c7U, 0x65462323U, 0x5e9dc3c3U,
- 0x28301818U, 0xa1379696U, 0x0f0a0505U, 0xb52f9a9aU,
- 0x090e0707U, 0x36241212U, 0x9b1b8080U, 0x3ddfe2e2U,
- 0x26cdebebU, 0x694e2727U, 0xcd7fb2b2U, 0x9fea7575U,
- 0x1b120909U, 0x9e1d8383U, 0x74582c2cU, 0x2e341a1aU,
- 0x2d361b1bU, 0xb2dc6e6eU, 0xeeb45a5aU, 0xfb5ba0a0U,
- 0xf6a45252U, 0x4d763b3bU, 0x61b7d6d6U, 0xce7db3b3U,
- 0x7b522929U, 0x3edde3e3U, 0x715e2f2fU, 0x97138484U,
- 0xf5a65353U, 0x68b9d1d1U, 0x00000000U, 0x2cc1ededU,
- 0x60402020U, 0x1fe3fcfcU, 0xc879b1b1U, 0xedb65b5bU,
- 0xbed46a6aU, 0x468dcbcbU, 0xd967bebeU, 0x4b723939U,
- 0xde944a4aU, 0xd4984c4cU, 0xe8b05858U, 0x4a85cfcfU,
- 0x6bbbd0d0U, 0x2ac5efefU, 0xe54faaaaU, 0x16edfbfbU,
- 0xc5864343U, 0xd79a4d4dU, 0x55663333U, 0x94118585U,
- 0xcf8a4545U, 0x10e9f9f9U, 0x06040202U, 0x81fe7f7fU,
- 0xf0a05050U, 0x44783c3cU, 0xba259f9fU, 0xe34ba8a8U,
- 0xf3a25151U, 0xfe5da3a3U, 0xc0804040U, 0x8a058f8fU,
- 0xad3f9292U, 0xbc219d9dU, 0x48703838U, 0x04f1f5f5U,
- 0xdf63bcbcU, 0xc177b6b6U, 0x75afdadaU, 0x63422121U,
- 0x30201010U, 0x1ae5ffffU, 0x0efdf3f3U, 0x6dbfd2d2U,
- 0x4c81cdcdU, 0x14180c0cU, 0x35261313U, 0x2fc3ececU,
- 0xe1be5f5fU, 0xa2359797U, 0xcc884444U, 0x392e1717U,
- 0x5793c4c4U, 0xf255a7a7U, 0x82fc7e7eU, 0x477a3d3dU,
- 0xacc86464U, 0xe7ba5d5dU, 0x2b321919U, 0x95e67373U,
- 0xa0c06060U, 0x98198181U, 0xd19e4f4fU, 0x7fa3dcdcU,
- 0x66442222U, 0x7e542a2aU, 0xab3b9090U, 0x830b8888U,
- 0xca8c4646U, 0x29c7eeeeU, 0xd36bb8b8U, 0x3c281414U,
- 0x79a7dedeU, 0xe2bc5e5eU, 0x1d160b0bU, 0x76addbdbU,
- 0x3bdbe0e0U, 0x56643232U, 0x4e743a3aU, 0x1e140a0aU,
- 0xdb924949U, 0x0a0c0606U, 0x6c482424U, 0xe4b85c5cU,
- 0x5d9fc2c2U, 0x6ebdd3d3U, 0xef43acacU, 0xa6c46262U,
- 0xa8399191U, 0xa4319595U, 0x37d3e4e4U, 0x8bf27979U,
- 0x32d5e7e7U, 0x438bc8c8U, 0x596e3737U, 0xb7da6d6dU,
- 0x8c018d8dU, 0x64b1d5d5U, 0xd29c4e4eU, 0xe049a9a9U,
- 0xb4d86c6cU, 0xfaac5656U, 0x07f3f4f4U, 0x25cfeaeaU,
- 0xafca6565U, 0x8ef47a7aU, 0xe947aeaeU, 0x18100808U,
- 0xd56fbabaU, 0x88f07878U, 0x6f4a2525U, 0x725c2e2eU,
- 0x24381c1cU, 0xf157a6a6U, 0xc773b4b4U, 0x5197c6c6U,
- 0x23cbe8e8U, 0x7ca1ddddU, 0x9ce87474U, 0x213e1f1fU,
- 0xdd964b4bU, 0xdc61bdbdU, 0x860d8b8bU, 0x850f8a8aU,
- 0x90e07070U, 0x427c3e3eU, 0xc471b5b5U, 0xaacc6666U,
- 0xd8904848U, 0x05060303U, 0x01f7f6f6U, 0x121c0e0eU,
- 0xa3c26161U, 0x5f6a3535U, 0xf9ae5757U, 0xd069b9b9U,
- 0x91178686U, 0x5899c1c1U, 0x273a1d1dU, 0xb9279e9eU,
- 0x38d9e1e1U, 0x13ebf8f8U, 0xb32b9898U, 0x33221111U,
- 0xbbd26969U, 0x70a9d9d9U, 0x89078e8eU, 0xa7339494U,
- 0xb62d9b9bU, 0x223c1e1eU, 0x92158787U, 0x20c9e9e9U,
- 0x4987ceceU, 0xffaa5555U, 0x78502828U, 0x7aa5dfdfU,
- 0x8f038c8cU, 0xf859a1a1U, 0x80098989U, 0x171a0d0dU,
- 0xda65bfbfU, 0x31d7e6e6U, 0xc6844242U, 0xb8d06868U,
- 0xc3824141U, 0xb0299999U, 0x775a2d2dU, 0x111e0f0fU,
- 0xcb7bb0b0U, 0xfca85454U, 0xd66dbbbbU, 0x3a2c1616U,
-};
-
-static const uint32 Te2[256]=
-{
- 0x63a5c663U, 0x7c84f87cU, 0x7799ee77U, 0x7b8df67bU,
- 0xf20dfff2U, 0x6bbdd66bU, 0x6fb1de6fU, 0xc55491c5U,
- 0x30506030U, 0x01030201U, 0x67a9ce67U, 0x2b7d562bU,
- 0xfe19e7feU, 0xd762b5d7U, 0xabe64dabU, 0x769aec76U,
- 0xca458fcaU, 0x829d1f82U, 0xc94089c9U, 0x7d87fa7dU,
- 0xfa15effaU, 0x59ebb259U, 0x47c98e47U, 0xf00bfbf0U,
- 0xadec41adU, 0xd467b3d4U, 0xa2fd5fa2U, 0xafea45afU,
- 0x9cbf239cU, 0xa4f753a4U, 0x7296e472U, 0xc05b9bc0U,
- 0xb7c275b7U, 0xfd1ce1fdU, 0x93ae3d93U, 0x266a4c26U,
- 0x365a6c36U, 0x3f417e3fU, 0xf702f5f7U, 0xcc4f83ccU,
- 0x345c6834U, 0xa5f451a5U, 0xe534d1e5U, 0xf108f9f1U,
- 0x7193e271U, 0xd873abd8U, 0x31536231U, 0x153f2a15U,
- 0x040c0804U, 0xc75295c7U, 0x23654623U, 0xc35e9dc3U,
- 0x18283018U, 0x96a13796U, 0x050f0a05U, 0x9ab52f9aU,
- 0x07090e07U, 0x12362412U, 0x809b1b80U, 0xe23ddfe2U,
- 0xeb26cdebU, 0x27694e27U, 0xb2cd7fb2U, 0x759fea75U,
- 0x091b1209U, 0x839e1d83U, 0x2c74582cU, 0x1a2e341aU,
- 0x1b2d361bU, 0x6eb2dc6eU, 0x5aeeb45aU, 0xa0fb5ba0U,
- 0x52f6a452U, 0x3b4d763bU, 0xd661b7d6U, 0xb3ce7db3U,
- 0x297b5229U, 0xe33edde3U, 0x2f715e2fU, 0x84971384U,
- 0x53f5a653U, 0xd168b9d1U, 0x00000000U, 0xed2cc1edU,
- 0x20604020U, 0xfc1fe3fcU, 0xb1c879b1U, 0x5bedb65bU,
- 0x6abed46aU, 0xcb468dcbU, 0xbed967beU, 0x394b7239U,
- 0x4ade944aU, 0x4cd4984cU, 0x58e8b058U, 0xcf4a85cfU,
- 0xd06bbbd0U, 0xef2ac5efU, 0xaae54faaU, 0xfb16edfbU,
- 0x43c58643U, 0x4dd79a4dU, 0x33556633U, 0x85941185U,
- 0x45cf8a45U, 0xf910e9f9U, 0x02060402U, 0x7f81fe7fU,
- 0x50f0a050U, 0x3c44783cU, 0x9fba259fU, 0xa8e34ba8U,
- 0x51f3a251U, 0xa3fe5da3U, 0x40c08040U, 0x8f8a058fU,
- 0x92ad3f92U, 0x9dbc219dU, 0x38487038U, 0xf504f1f5U,
- 0xbcdf63bcU, 0xb6c177b6U, 0xda75afdaU, 0x21634221U,
- 0x10302010U, 0xff1ae5ffU, 0xf30efdf3U, 0xd26dbfd2U,
- 0xcd4c81cdU, 0x0c14180cU, 0x13352613U, 0xec2fc3ecU,
- 0x5fe1be5fU, 0x97a23597U, 0x44cc8844U, 0x17392e17U,
- 0xc45793c4U, 0xa7f255a7U, 0x7e82fc7eU, 0x3d477a3dU,
- 0x64acc864U, 0x5de7ba5dU, 0x192b3219U, 0x7395e673U,
- 0x60a0c060U, 0x81981981U, 0x4fd19e4fU, 0xdc7fa3dcU,
- 0x22664422U, 0x2a7e542aU, 0x90ab3b90U, 0x88830b88U,
- 0x46ca8c46U, 0xee29c7eeU, 0xb8d36bb8U, 0x143c2814U,
- 0xde79a7deU, 0x5ee2bc5eU, 0x0b1d160bU, 0xdb76addbU,
- 0xe03bdbe0U, 0x32566432U, 0x3a4e743aU, 0x0a1e140aU,
- 0x49db9249U, 0x060a0c06U, 0x246c4824U, 0x5ce4b85cU,
- 0xc25d9fc2U, 0xd36ebdd3U, 0xacef43acU, 0x62a6c462U,
- 0x91a83991U, 0x95a43195U, 0xe437d3e4U, 0x798bf279U,
- 0xe732d5e7U, 0xc8438bc8U, 0x37596e37U, 0x6db7da6dU,
- 0x8d8c018dU, 0xd564b1d5U, 0x4ed29c4eU, 0xa9e049a9U,
- 0x6cb4d86cU, 0x56faac56U, 0xf407f3f4U, 0xea25cfeaU,
- 0x65afca65U, 0x7a8ef47aU, 0xaee947aeU, 0x08181008U,
- 0xbad56fbaU, 0x7888f078U, 0x256f4a25U, 0x2e725c2eU,
- 0x1c24381cU, 0xa6f157a6U, 0xb4c773b4U, 0xc65197c6U,
- 0xe823cbe8U, 0xdd7ca1ddU, 0x749ce874U, 0x1f213e1fU,
- 0x4bdd964bU, 0xbddc61bdU, 0x8b860d8bU, 0x8a850f8aU,
- 0x7090e070U, 0x3e427c3eU, 0xb5c471b5U, 0x66aacc66U,
- 0x48d89048U, 0x03050603U, 0xf601f7f6U, 0x0e121c0eU,
- 0x61a3c261U, 0x355f6a35U, 0x57f9ae57U, 0xb9d069b9U,
- 0x86911786U, 0xc15899c1U, 0x1d273a1dU, 0x9eb9279eU,
- 0xe138d9e1U, 0xf813ebf8U, 0x98b32b98U, 0x11332211U,
- 0x69bbd269U, 0xd970a9d9U, 0x8e89078eU, 0x94a73394U,
- 0x9bb62d9bU, 0x1e223c1eU, 0x87921587U, 0xe920c9e9U,
- 0xce4987ceU, 0x55ffaa55U, 0x28785028U, 0xdf7aa5dfU,
- 0x8c8f038cU, 0xa1f859a1U, 0x89800989U, 0x0d171a0dU,
- 0xbfda65bfU, 0xe631d7e6U, 0x42c68442U, 0x68b8d068U,
- 0x41c38241U, 0x99b02999U, 0x2d775a2dU, 0x0f111e0fU,
- 0xb0cb7bb0U, 0x54fca854U, 0xbbd66dbbU, 0x163a2c16U,
-};
-
-static const uint32 Te3[256]=
-{
- 0x6363a5c6U, 0x7c7c84f8U, 0x777799eeU, 0x7b7b8df6U,
- 0xf2f20dffU, 0x6b6bbdd6U, 0x6f6fb1deU, 0xc5c55491U,
- 0x30305060U, 0x01010302U, 0x6767a9ceU, 0x2b2b7d56U,
- 0xfefe19e7U, 0xd7d762b5U, 0xababe64dU, 0x76769aecU,
- 0xcaca458fU, 0x82829d1fU, 0xc9c94089U, 0x7d7d87faU,
- 0xfafa15efU, 0x5959ebb2U, 0x4747c98eU, 0xf0f00bfbU,
- 0xadadec41U, 0xd4d467b3U, 0xa2a2fd5fU, 0xafafea45U,
- 0x9c9cbf23U, 0xa4a4f753U, 0x727296e4U, 0xc0c05b9bU,
- 0xb7b7c275U, 0xfdfd1ce1U, 0x9393ae3dU, 0x26266a4cU,
- 0x36365a6cU, 0x3f3f417eU, 0xf7f702f5U, 0xcccc4f83U,
- 0x34345c68U, 0xa5a5f451U, 0xe5e534d1U, 0xf1f108f9U,
- 0x717193e2U, 0xd8d873abU, 0x31315362U, 0x15153f2aU,
- 0x04040c08U, 0xc7c75295U, 0x23236546U, 0xc3c35e9dU,
- 0x18182830U, 0x9696a137U, 0x05050f0aU, 0x9a9ab52fU,
- 0x0707090eU, 0x12123624U, 0x80809b1bU, 0xe2e23ddfU,
- 0xebeb26cdU, 0x2727694eU, 0xb2b2cd7fU, 0x75759feaU,
- 0x09091b12U, 0x83839e1dU, 0x2c2c7458U, 0x1a1a2e34U,
- 0x1b1b2d36U, 0x6e6eb2dcU, 0x5a5aeeb4U, 0xa0a0fb5bU,
- 0x5252f6a4U, 0x3b3b4d76U, 0xd6d661b7U, 0xb3b3ce7dU,
- 0x29297b52U, 0xe3e33eddU, 0x2f2f715eU, 0x84849713U,
- 0x5353f5a6U, 0xd1d168b9U, 0x00000000U, 0xeded2cc1U,
- 0x20206040U, 0xfcfc1fe3U, 0xb1b1c879U, 0x5b5bedb6U,
- 0x6a6abed4U, 0xcbcb468dU, 0xbebed967U, 0x39394b72U,
- 0x4a4ade94U, 0x4c4cd498U, 0x5858e8b0U, 0xcfcf4a85U,
- 0xd0d06bbbU, 0xefef2ac5U, 0xaaaae54fU, 0xfbfb16edU,
- 0x4343c586U, 0x4d4dd79aU, 0x33335566U, 0x85859411U,
- 0x4545cf8aU, 0xf9f910e9U, 0x02020604U, 0x7f7f81feU,
- 0x5050f0a0U, 0x3c3c4478U, 0x9f9fba25U, 0xa8a8e34bU,
- 0x5151f3a2U, 0xa3a3fe5dU, 0x4040c080U, 0x8f8f8a05U,
- 0x9292ad3fU, 0x9d9dbc21U, 0x38384870U, 0xf5f504f1U,
- 0xbcbcdf63U, 0xb6b6c177U, 0xdada75afU, 0x21216342U,
- 0x10103020U, 0xffff1ae5U, 0xf3f30efdU, 0xd2d26dbfU,
- 0xcdcd4c81U, 0x0c0c1418U, 0x13133526U, 0xecec2fc3U,
- 0x5f5fe1beU, 0x9797a235U, 0x4444cc88U, 0x1717392eU,
- 0xc4c45793U, 0xa7a7f255U, 0x7e7e82fcU, 0x3d3d477aU,
- 0x6464acc8U, 0x5d5de7baU, 0x19192b32U, 0x737395e6U,
- 0x6060a0c0U, 0x81819819U, 0x4f4fd19eU, 0xdcdc7fa3U,
- 0x22226644U, 0x2a2a7e54U, 0x9090ab3bU, 0x8888830bU,
- 0x4646ca8cU, 0xeeee29c7U, 0xb8b8d36bU, 0x14143c28U,
- 0xdede79a7U, 0x5e5ee2bcU, 0x0b0b1d16U, 0xdbdb76adU,
- 0xe0e03bdbU, 0x32325664U, 0x3a3a4e74U, 0x0a0a1e14U,
- 0x4949db92U, 0x06060a0cU, 0x24246c48U, 0x5c5ce4b8U,
- 0xc2c25d9fU, 0xd3d36ebdU, 0xacacef43U, 0x6262a6c4U,
- 0x9191a839U, 0x9595a431U, 0xe4e437d3U, 0x79798bf2U,
- 0xe7e732d5U, 0xc8c8438bU, 0x3737596eU, 0x6d6db7daU,
- 0x8d8d8c01U, 0xd5d564b1U, 0x4e4ed29cU, 0xa9a9e049U,
- 0x6c6cb4d8U, 0x5656faacU, 0xf4f407f3U, 0xeaea25cfU,
- 0x6565afcaU, 0x7a7a8ef4U, 0xaeaee947U, 0x08081810U,
- 0xbabad56fU, 0x787888f0U, 0x25256f4aU, 0x2e2e725cU,
- 0x1c1c2438U, 0xa6a6f157U, 0xb4b4c773U, 0xc6c65197U,
- 0xe8e823cbU, 0xdddd7ca1U, 0x74749ce8U, 0x1f1f213eU,
- 0x4b4bdd96U, 0xbdbddc61U, 0x8b8b860dU, 0x8a8a850fU,
- 0x707090e0U, 0x3e3e427cU, 0xb5b5c471U, 0x6666aaccU,
- 0x4848d890U, 0x03030506U, 0xf6f601f7U, 0x0e0e121cU,
- 0x6161a3c2U, 0x35355f6aU, 0x5757f9aeU, 0xb9b9d069U,
- 0x86869117U, 0xc1c15899U, 0x1d1d273aU, 0x9e9eb927U,
- 0xe1e138d9U, 0xf8f813ebU, 0x9898b32bU, 0x11113322U,
- 0x6969bbd2U, 0xd9d970a9U, 0x8e8e8907U, 0x9494a733U,
- 0x9b9bb62dU, 0x1e1e223cU, 0x87879215U, 0xe9e920c9U,
- 0xcece4987U, 0x5555ffaaU, 0x28287850U, 0xdfdf7aa5U,
- 0x8c8c8f03U, 0xa1a1f859U, 0x89898009U, 0x0d0d171aU,
- 0xbfbfda65U, 0xe6e631d7U, 0x4242c684U, 0x6868b8d0U,
- 0x4141c382U, 0x9999b029U, 0x2d2d775aU, 0x0f0f111eU,
- 0xb0b0cb7bU, 0x5454fca8U, 0xbbbbd66dU, 0x16163a2cU,
-};
-
-static const uint32 Te4[256]=
-{
- 0x63636363U, 0x7c7c7c7cU, 0x77777777U, 0x7b7b7b7bU,
- 0xf2f2f2f2U, 0x6b6b6b6bU, 0x6f6f6f6fU, 0xc5c5c5c5U,
- 0x30303030U, 0x01010101U, 0x67676767U, 0x2b2b2b2bU,
- 0xfefefefeU, 0xd7d7d7d7U, 0xababababU, 0x76767676U,
- 0xcacacacaU, 0x82828282U, 0xc9c9c9c9U, 0x7d7d7d7dU,
- 0xfafafafaU, 0x59595959U, 0x47474747U, 0xf0f0f0f0U,
- 0xadadadadU, 0xd4d4d4d4U, 0xa2a2a2a2U, 0xafafafafU,
- 0x9c9c9c9cU, 0xa4a4a4a4U, 0x72727272U, 0xc0c0c0c0U,
- 0xb7b7b7b7U, 0xfdfdfdfdU, 0x93939393U, 0x26262626U,
- 0x36363636U, 0x3f3f3f3fU, 0xf7f7f7f7U, 0xccccccccU,
- 0x34343434U, 0xa5a5a5a5U, 0xe5e5e5e5U, 0xf1f1f1f1U,
- 0x71717171U, 0xd8d8d8d8U, 0x31313131U, 0x15151515U,
- 0x04040404U, 0xc7c7c7c7U, 0x23232323U, 0xc3c3c3c3U,
- 0x18181818U, 0x96969696U, 0x05050505U, 0x9a9a9a9aU,
- 0x07070707U, 0x12121212U, 0x80808080U, 0xe2e2e2e2U,
- 0xebebebebU, 0x27272727U, 0xb2b2b2b2U, 0x75757575U,
- 0x09090909U, 0x83838383U, 0x2c2c2c2cU, 0x1a1a1a1aU,
- 0x1b1b1b1bU, 0x6e6e6e6eU, 0x5a5a5a5aU, 0xa0a0a0a0U,
- 0x52525252U, 0x3b3b3b3bU, 0xd6d6d6d6U, 0xb3b3b3b3U,
- 0x29292929U, 0xe3e3e3e3U, 0x2f2f2f2fU, 0x84848484U,
- 0x53535353U, 0xd1d1d1d1U, 0x00000000U, 0xededededU,
- 0x20202020U, 0xfcfcfcfcU, 0xb1b1b1b1U, 0x5b5b5b5bU,
- 0x6a6a6a6aU, 0xcbcbcbcbU, 0xbebebebeU, 0x39393939U,
- 0x4a4a4a4aU, 0x4c4c4c4cU, 0x58585858U, 0xcfcfcfcfU,
- 0xd0d0d0d0U, 0xefefefefU, 0xaaaaaaaaU, 0xfbfbfbfbU,
- 0x43434343U, 0x4d4d4d4dU, 0x33333333U, 0x85858585U,
- 0x45454545U, 0xf9f9f9f9U, 0x02020202U, 0x7f7f7f7fU,
- 0x50505050U, 0x3c3c3c3cU, 0x9f9f9f9fU, 0xa8a8a8a8U,
- 0x51515151U, 0xa3a3a3a3U, 0x40404040U, 0x8f8f8f8fU,
- 0x92929292U, 0x9d9d9d9dU, 0x38383838U, 0xf5f5f5f5U,
- 0xbcbcbcbcU, 0xb6b6b6b6U, 0xdadadadaU, 0x21212121U,
- 0x10101010U, 0xffffffffU, 0xf3f3f3f3U, 0xd2d2d2d2U,
- 0xcdcdcdcdU, 0x0c0c0c0cU, 0x13131313U, 0xececececU,
- 0x5f5f5f5fU, 0x97979797U, 0x44444444U, 0x17171717U,
- 0xc4c4c4c4U, 0xa7a7a7a7U, 0x7e7e7e7eU, 0x3d3d3d3dU,
- 0x64646464U, 0x5d5d5d5dU, 0x19191919U, 0x73737373U,
- 0x60606060U, 0x81818181U, 0x4f4f4f4fU, 0xdcdcdcdcU,
- 0x22222222U, 0x2a2a2a2aU, 0x90909090U, 0x88888888U,
- 0x46464646U, 0xeeeeeeeeU, 0xb8b8b8b8U, 0x14141414U,
- 0xdedededeU, 0x5e5e5e5eU, 0x0b0b0b0bU, 0xdbdbdbdbU,
- 0xe0e0e0e0U, 0x32323232U, 0x3a3a3a3aU, 0x0a0a0a0aU,
- 0x49494949U, 0x06060606U, 0x24242424U, 0x5c5c5c5cU,
- 0xc2c2c2c2U, 0xd3d3d3d3U, 0xacacacacU, 0x62626262U,
- 0x91919191U, 0x95959595U, 0xe4e4e4e4U, 0x79797979U,
- 0xe7e7e7e7U, 0xc8c8c8c8U, 0x37373737U, 0x6d6d6d6dU,
- 0x8d8d8d8dU, 0xd5d5d5d5U, 0x4e4e4e4eU, 0xa9a9a9a9U,
- 0x6c6c6c6cU, 0x56565656U, 0xf4f4f4f4U, 0xeaeaeaeaU,
- 0x65656565U, 0x7a7a7a7aU, 0xaeaeaeaeU, 0x08080808U,
- 0xbabababaU, 0x78787878U, 0x25252525U, 0x2e2e2e2eU,
- 0x1c1c1c1cU, 0xa6a6a6a6U, 0xb4b4b4b4U, 0xc6c6c6c6U,
- 0xe8e8e8e8U, 0xddddddddU, 0x74747474U, 0x1f1f1f1fU,
- 0x4b4b4b4bU, 0xbdbdbdbdU, 0x8b8b8b8bU, 0x8a8a8a8aU,
- 0x70707070U, 0x3e3e3e3eU, 0xb5b5b5b5U, 0x66666666U,
- 0x48484848U, 0x03030303U, 0xf6f6f6f6U, 0x0e0e0e0eU,
- 0x61616161U, 0x35353535U, 0x57575757U, 0xb9b9b9b9U,
- 0x86868686U, 0xc1c1c1c1U, 0x1d1d1d1dU, 0x9e9e9e9eU,
- 0xe1e1e1e1U, 0xf8f8f8f8U, 0x98989898U, 0x11111111U,
- 0x69696969U, 0xd9d9d9d9U, 0x8e8e8e8eU, 0x94949494U,
- 0x9b9b9b9bU, 0x1e1e1e1eU, 0x87878787U, 0xe9e9e9e9U,
- 0xcecececeU, 0x55555555U, 0x28282828U, 0xdfdfdfdfU,
- 0x8c8c8c8cU, 0xa1a1a1a1U, 0x89898989U, 0x0d0d0d0dU,
- 0xbfbfbfbfU, 0xe6e6e6e6U, 0x42424242U, 0x68686868U,
- 0x41414141U, 0x99999999U, 0x2d2d2d2dU, 0x0f0f0f0fU,
- 0xb0b0b0b0U, 0x54545454U, 0xbbbbbbbbU, 0x16161616U,
-};
-
-static const uint32 Td0[256]=
-{
- 0x51f4a750U, 0x7e416553U, 0x1a17a4c3U, 0x3a275e96U,
- 0x3bab6bcbU, 0x1f9d45f1U, 0xacfa58abU, 0x4be30393U,
- 0x2030fa55U, 0xad766df6U, 0x88cc7691U, 0xf5024c25U,
- 0x4fe5d7fcU, 0xc52acbd7U, 0x26354480U, 0xb562a38fU,
- 0xdeb15a49U, 0x25ba1b67U, 0x45ea0e98U, 0x5dfec0e1U,
- 0xc32f7502U, 0x814cf012U, 0x8d4697a3U, 0x6bd3f9c6U,
- 0x038f5fe7U, 0x15929c95U, 0xbf6d7aebU, 0x955259daU,
- 0xd4be832dU, 0x587421d3U, 0x49e06929U, 0x8ec9c844U,
- 0x75c2896aU, 0xf48e7978U, 0x99583e6bU, 0x27b971ddU,
- 0xbee14fb6U, 0xf088ad17U, 0xc920ac66U, 0x7dce3ab4U,
- 0x63df4a18U, 0xe51a3182U, 0x97513360U, 0x62537f45U,
- 0xb16477e0U, 0xbb6bae84U, 0xfe81a01cU, 0xf9082b94U,
- 0x70486858U, 0x8f45fd19U, 0x94de6c87U, 0x527bf8b7U,
- 0xab73d323U, 0x724b02e2U, 0xe31f8f57U, 0x6655ab2aU,
- 0xb2eb2807U, 0x2fb5c203U, 0x86c57b9aU, 0xd33708a5U,
- 0x302887f2U, 0x23bfa5b2U, 0x02036abaU, 0xed16825cU,
- 0x8acf1c2bU, 0xa779b492U, 0xf307f2f0U, 0x4e69e2a1U,
- 0x65daf4cdU, 0x0605bed5U, 0xd134621fU, 0xc4a6fe8aU,
- 0x342e539dU, 0xa2f355a0U, 0x058ae132U, 0xa4f6eb75U,
- 0x0b83ec39U, 0x4060efaaU, 0x5e719f06U, 0xbd6e1051U,
- 0x3e218af9U, 0x96dd063dU, 0xdd3e05aeU, 0x4de6bd46U,
- 0x91548db5U, 0x71c45d05U, 0x0406d46fU, 0x605015ffU,
- 0x1998fb24U, 0xd6bde997U, 0x894043ccU, 0x67d99e77U,
- 0xb0e842bdU, 0x07898b88U, 0xe7195b38U, 0x79c8eedbU,
- 0xa17c0a47U, 0x7c420fe9U, 0xf8841ec9U, 0x00000000U,
- 0x09808683U, 0x322bed48U, 0x1e1170acU, 0x6c5a724eU,
- 0xfd0efffbU, 0x0f853856U, 0x3daed51eU, 0x362d3927U,
- 0x0a0fd964U, 0x685ca621U, 0x9b5b54d1U, 0x24362e3aU,
- 0x0c0a67b1U, 0x9357e70fU, 0xb4ee96d2U, 0x1b9b919eU,
- 0x80c0c54fU, 0x61dc20a2U, 0x5a774b69U, 0x1c121a16U,
- 0xe293ba0aU, 0xc0a02ae5U, 0x3c22e043U, 0x121b171dU,
- 0x0e090d0bU, 0xf28bc7adU, 0x2db6a8b9U, 0x141ea9c8U,
- 0x57f11985U, 0xaf75074cU, 0xee99ddbbU, 0xa37f60fdU,
- 0xf701269fU, 0x5c72f5bcU, 0x44663bc5U, 0x5bfb7e34U,
- 0x8b432976U, 0xcb23c6dcU, 0xb6edfc68U, 0xb8e4f163U,
- 0xd731dccaU, 0x42638510U, 0x13972240U, 0x84c61120U,
- 0x854a247dU, 0xd2bb3df8U, 0xaef93211U, 0xc729a16dU,
- 0x1d9e2f4bU, 0xdcb230f3U, 0x0d8652ecU, 0x77c1e3d0U,
- 0x2bb3166cU, 0xa970b999U, 0x119448faU, 0x47e96422U,
- 0xa8fc8cc4U, 0xa0f03f1aU, 0x567d2cd8U, 0x223390efU,
- 0x87494ec7U, 0xd938d1c1U, 0x8ccaa2feU, 0x98d40b36U,
- 0xa6f581cfU, 0xa57ade28U, 0xdab78e26U, 0x3fadbfa4U,
- 0x2c3a9de4U, 0x5078920dU, 0x6a5fcc9bU, 0x547e4662U,
- 0xf68d13c2U, 0x90d8b8e8U, 0x2e39f75eU, 0x82c3aff5U,
- 0x9f5d80beU, 0x69d0937cU, 0x6fd52da9U, 0xcf2512b3U,
- 0xc8ac993bU, 0x10187da7U, 0xe89c636eU, 0xdb3bbb7bU,
- 0xcd267809U, 0x6e5918f4U, 0xec9ab701U, 0x834f9aa8U,
- 0xe6956e65U, 0xaaffe67eU, 0x21bccf08U, 0xef15e8e6U,
- 0xbae79bd9U, 0x4a6f36ceU, 0xea9f09d4U, 0x29b07cd6U,
- 0x31a4b2afU, 0x2a3f2331U, 0xc6a59430U, 0x35a266c0U,
- 0x744ebc37U, 0xfc82caa6U, 0xe090d0b0U, 0x33a7d815U,
- 0xf104984aU, 0x41ecdaf7U, 0x7fcd500eU, 0x1791f62fU,
- 0x764dd68dU, 0x43efb04dU, 0xccaa4d54U, 0xe49604dfU,
- 0x9ed1b5e3U, 0x4c6a881bU, 0xc12c1fb8U, 0x4665517fU,
- 0x9d5eea04U, 0x018c355dU, 0xfa877473U, 0xfb0b412eU,
- 0xb3671d5aU, 0x92dbd252U, 0xe9105633U, 0x6dd64713U,
- 0x9ad7618cU, 0x37a10c7aU, 0x59f8148eU, 0xeb133c89U,
- 0xcea927eeU, 0xb761c935U, 0xe11ce5edU, 0x7a47b13cU,
- 0x9cd2df59U, 0x55f2733fU, 0x1814ce79U, 0x73c737bfU,
- 0x53f7cdeaU, 0x5ffdaa5bU, 0xdf3d6f14U, 0x7844db86U,
- 0xcaaff381U, 0xb968c43eU, 0x3824342cU, 0xc2a3405fU,
- 0x161dc372U, 0xbce2250cU, 0x283c498bU, 0xff0d9541U,
- 0x39a80171U, 0x080cb3deU, 0xd8b4e49cU, 0x6456c190U,
- 0x7bcb8461U, 0xd532b670U, 0x486c5c74U, 0xd0b85742U,
-};
-
-static const uint32 Td1[256]=
-{
- 0x5051f4a7U, 0x537e4165U, 0xc31a17a4U, 0x963a275eU,
- 0xcb3bab6bU, 0xf11f9d45U, 0xabacfa58U, 0x934be303U,
- 0x552030faU, 0xf6ad766dU, 0x9188cc76U, 0x25f5024cU,
- 0xfc4fe5d7U, 0xd7c52acbU, 0x80263544U, 0x8fb562a3U,
- 0x49deb15aU, 0x6725ba1bU, 0x9845ea0eU, 0xe15dfec0U,
- 0x02c32f75U, 0x12814cf0U, 0xa38d4697U, 0xc66bd3f9U,
- 0xe7038f5fU, 0x9515929cU, 0xebbf6d7aU, 0xda955259U,
- 0x2dd4be83U, 0xd3587421U, 0x2949e069U, 0x448ec9c8U,
- 0x6a75c289U, 0x78f48e79U, 0x6b99583eU, 0xdd27b971U,
- 0xb6bee14fU, 0x17f088adU, 0x66c920acU, 0xb47dce3aU,
- 0x1863df4aU, 0x82e51a31U, 0x60975133U, 0x4562537fU,
- 0xe0b16477U, 0x84bb6baeU, 0x1cfe81a0U, 0x94f9082bU,
- 0x58704868U, 0x198f45fdU, 0x8794de6cU, 0xb7527bf8U,
- 0x23ab73d3U, 0xe2724b02U, 0x57e31f8fU, 0x2a6655abU,
- 0x07b2eb28U, 0x032fb5c2U, 0x9a86c57bU, 0xa5d33708U,
- 0xf2302887U, 0xb223bfa5U, 0xba02036aU, 0x5ced1682U,
- 0x2b8acf1cU, 0x92a779b4U, 0xf0f307f2U, 0xa14e69e2U,
- 0xcd65daf4U, 0xd50605beU, 0x1fd13462U, 0x8ac4a6feU,
- 0x9d342e53U, 0xa0a2f355U, 0x32058ae1U, 0x75a4f6ebU,
- 0x390b83ecU, 0xaa4060efU, 0x065e719fU, 0x51bd6e10U,
- 0xf93e218aU, 0x3d96dd06U, 0xaedd3e05U, 0x464de6bdU,
- 0xb591548dU, 0x0571c45dU, 0x6f0406d4U, 0xff605015U,
- 0x241998fbU, 0x97d6bde9U, 0xcc894043U, 0x7767d99eU,
- 0xbdb0e842U, 0x8807898bU, 0x38e7195bU, 0xdb79c8eeU,
- 0x47a17c0aU, 0xe97c420fU, 0xc9f8841eU, 0x00000000U,
- 0x83098086U, 0x48322bedU, 0xac1e1170U, 0x4e6c5a72U,
- 0xfbfd0effU, 0x560f8538U, 0x1e3daed5U, 0x27362d39U,
- 0x640a0fd9U, 0x21685ca6U, 0xd19b5b54U, 0x3a24362eU,
- 0xb10c0a67U, 0x0f9357e7U, 0xd2b4ee96U, 0x9e1b9b91U,
- 0x4f80c0c5U, 0xa261dc20U, 0x695a774bU, 0x161c121aU,
- 0x0ae293baU, 0xe5c0a02aU, 0x433c22e0U, 0x1d121b17U,
- 0x0b0e090dU, 0xadf28bc7U, 0xb92db6a8U, 0xc8141ea9U,
- 0x8557f119U, 0x4caf7507U, 0xbbee99ddU, 0xfda37f60U,
- 0x9ff70126U, 0xbc5c72f5U, 0xc544663bU, 0x345bfb7eU,
- 0x768b4329U, 0xdccb23c6U, 0x68b6edfcU, 0x63b8e4f1U,
- 0xcad731dcU, 0x10426385U, 0x40139722U, 0x2084c611U,
- 0x7d854a24U, 0xf8d2bb3dU, 0x11aef932U, 0x6dc729a1U,
- 0x4b1d9e2fU, 0xf3dcb230U, 0xec0d8652U, 0xd077c1e3U,
- 0x6c2bb316U, 0x99a970b9U, 0xfa119448U, 0x2247e964U,
- 0xc4a8fc8cU, 0x1aa0f03fU, 0xd8567d2cU, 0xef223390U,
- 0xc787494eU, 0xc1d938d1U, 0xfe8ccaa2U, 0x3698d40bU,
- 0xcfa6f581U, 0x28a57adeU, 0x26dab78eU, 0xa43fadbfU,
- 0xe42c3a9dU, 0x0d507892U, 0x9b6a5fccU, 0x62547e46U,
- 0xc2f68d13U, 0xe890d8b8U, 0x5e2e39f7U, 0xf582c3afU,
- 0xbe9f5d80U, 0x7c69d093U, 0xa96fd52dU, 0xb3cf2512U,
- 0x3bc8ac99U, 0xa710187dU, 0x6ee89c63U, 0x7bdb3bbbU,
- 0x09cd2678U, 0xf46e5918U, 0x01ec9ab7U, 0xa8834f9aU,
- 0x65e6956eU, 0x7eaaffe6U, 0x0821bccfU, 0xe6ef15e8U,
- 0xd9bae79bU, 0xce4a6f36U, 0xd4ea9f09U, 0xd629b07cU,
- 0xaf31a4b2U, 0x312a3f23U, 0x30c6a594U, 0xc035a266U,
- 0x37744ebcU, 0xa6fc82caU, 0xb0e090d0U, 0x1533a7d8U,
- 0x4af10498U, 0xf741ecdaU, 0x0e7fcd50U, 0x2f1791f6U,
- 0x8d764dd6U, 0x4d43efb0U, 0x54ccaa4dU, 0xdfe49604U,
- 0xe39ed1b5U, 0x1b4c6a88U, 0xb8c12c1fU, 0x7f466551U,
- 0x049d5eeaU, 0x5d018c35U, 0x73fa8774U, 0x2efb0b41U,
- 0x5ab3671dU, 0x5292dbd2U, 0x33e91056U, 0x136dd647U,
- 0x8c9ad761U, 0x7a37a10cU, 0x8e59f814U, 0x89eb133cU,
- 0xeecea927U, 0x35b761c9U, 0xede11ce5U, 0x3c7a47b1U,
- 0x599cd2dfU, 0x3f55f273U, 0x791814ceU, 0xbf73c737U,
- 0xea53f7cdU, 0x5b5ffdaaU, 0x14df3d6fU, 0x867844dbU,
- 0x81caaff3U, 0x3eb968c4U, 0x2c382434U, 0x5fc2a340U,
- 0x72161dc3U, 0x0cbce225U, 0x8b283c49U, 0x41ff0d95U,
- 0x7139a801U, 0xde080cb3U, 0x9cd8b4e4U, 0x906456c1U,
- 0x617bcb84U, 0x70d532b6U, 0x74486c5cU, 0x42d0b857U,
-};
-
-static const uint32 Td2[256]=
-{
- 0xa75051f4U, 0x65537e41U, 0xa4c31a17U, 0x5e963a27U,
- 0x6bcb3babU, 0x45f11f9dU, 0x58abacfaU, 0x03934be3U,
- 0xfa552030U, 0x6df6ad76U, 0x769188ccU, 0x4c25f502U,
- 0xd7fc4fe5U, 0xcbd7c52aU, 0x44802635U, 0xa38fb562U,
- 0x5a49deb1U, 0x1b6725baU, 0x0e9845eaU, 0xc0e15dfeU,
- 0x7502c32fU, 0xf012814cU, 0x97a38d46U, 0xf9c66bd3U,
- 0x5fe7038fU, 0x9c951592U, 0x7aebbf6dU, 0x59da9552U,
- 0x832dd4beU, 0x21d35874U, 0x692949e0U, 0xc8448ec9U,
- 0x896a75c2U, 0x7978f48eU, 0x3e6b9958U, 0x71dd27b9U,
- 0x4fb6bee1U, 0xad17f088U, 0xac66c920U, 0x3ab47dceU,
- 0x4a1863dfU, 0x3182e51aU, 0x33609751U, 0x7f456253U,
- 0x77e0b164U, 0xae84bb6bU, 0xa01cfe81U, 0x2b94f908U,
- 0x68587048U, 0xfd198f45U, 0x6c8794deU, 0xf8b7527bU,
- 0xd323ab73U, 0x02e2724bU, 0x8f57e31fU, 0xab2a6655U,
- 0x2807b2ebU, 0xc2032fb5U, 0x7b9a86c5U, 0x08a5d337U,
- 0x87f23028U, 0xa5b223bfU, 0x6aba0203U, 0x825ced16U,
- 0x1c2b8acfU, 0xb492a779U, 0xf2f0f307U, 0xe2a14e69U,
- 0xf4cd65daU, 0xbed50605U, 0x621fd134U, 0xfe8ac4a6U,
- 0x539d342eU, 0x55a0a2f3U, 0xe132058aU, 0xeb75a4f6U,
- 0xec390b83U, 0xefaa4060U, 0x9f065e71U, 0x1051bd6eU,
-
- 0x8af93e21U, 0x063d96ddU, 0x05aedd3eU, 0xbd464de6U,
- 0x8db59154U, 0x5d0571c4U, 0xd46f0406U, 0x15ff6050U,
- 0xfb241998U, 0xe997d6bdU, 0x43cc8940U, 0x9e7767d9U,
- 0x42bdb0e8U, 0x8b880789U, 0x5b38e719U, 0xeedb79c8U,
- 0x0a47a17cU, 0x0fe97c42U, 0x1ec9f884U, 0x00000000U,
- 0x86830980U, 0xed48322bU, 0x70ac1e11U, 0x724e6c5aU,
- 0xfffbfd0eU, 0x38560f85U, 0xd51e3daeU, 0x3927362dU,
- 0xd9640a0fU, 0xa621685cU, 0x54d19b5bU, 0x2e3a2436U,
- 0x67b10c0aU, 0xe70f9357U, 0x96d2b4eeU, 0x919e1b9bU,
- 0xc54f80c0U, 0x20a261dcU, 0x4b695a77U, 0x1a161c12U,
- 0xba0ae293U, 0x2ae5c0a0U, 0xe0433c22U, 0x171d121bU,
- 0x0d0b0e09U, 0xc7adf28bU, 0xa8b92db6U, 0xa9c8141eU,
- 0x198557f1U, 0x074caf75U, 0xddbbee99U, 0x60fda37fU,
- 0x269ff701U, 0xf5bc5c72U, 0x3bc54466U, 0x7e345bfbU,
- 0x29768b43U, 0xc6dccb23U, 0xfc68b6edU, 0xf163b8e4U,
- 0xdccad731U, 0x85104263U, 0x22401397U, 0x112084c6U,
- 0x247d854aU, 0x3df8d2bbU, 0x3211aef9U, 0xa16dc729U,
- 0x2f4b1d9eU, 0x30f3dcb2U, 0x52ec0d86U, 0xe3d077c1U,
- 0x166c2bb3U, 0xb999a970U, 0x48fa1194U, 0x642247e9U,
- 0x8cc4a8fcU, 0x3f1aa0f0U, 0x2cd8567dU, 0x90ef2233U,
- 0x4ec78749U, 0xd1c1d938U, 0xa2fe8ccaU, 0x0b3698d4U,
- 0x81cfa6f5U, 0xde28a57aU, 0x8e26dab7U, 0xbfa43fadU,
- 0x9de42c3aU, 0x920d5078U, 0xcc9b6a5fU, 0x4662547eU,
- 0x13c2f68dU, 0xb8e890d8U, 0xf75e2e39U, 0xaff582c3U,
- 0x80be9f5dU, 0x937c69d0U, 0x2da96fd5U, 0x12b3cf25U,
- 0x993bc8acU, 0x7da71018U, 0x636ee89cU, 0xbb7bdb3bU,
- 0x7809cd26U, 0x18f46e59U, 0xb701ec9aU, 0x9aa8834fU,
- 0x6e65e695U, 0xe67eaaffU, 0xcf0821bcU, 0xe8e6ef15U,
- 0x9bd9bae7U, 0x36ce4a6fU, 0x09d4ea9fU, 0x7cd629b0U,
- 0xb2af31a4U, 0x23312a3fU, 0x9430c6a5U, 0x66c035a2U,
- 0xbc37744eU, 0xcaa6fc82U, 0xd0b0e090U, 0xd81533a7U,
- 0x984af104U, 0xdaf741ecU, 0x500e7fcdU, 0xf62f1791U,
- 0xd68d764dU, 0xb04d43efU, 0x4d54ccaaU, 0x04dfe496U,
- 0xb5e39ed1U, 0x881b4c6aU, 0x1fb8c12cU, 0x517f4665U,
- 0xea049d5eU, 0x355d018cU, 0x7473fa87U, 0x412efb0bU,
- 0x1d5ab367U, 0xd25292dbU, 0x5633e910U, 0x47136dd6U,
- 0x618c9ad7U, 0x0c7a37a1U, 0x148e59f8U, 0x3c89eb13U,
- 0x27eecea9U, 0xc935b761U, 0xe5ede11cU, 0xb13c7a47U,
- 0xdf599cd2U, 0x733f55f2U, 0xce791814U, 0x37bf73c7U,
- 0xcdea53f7U, 0xaa5b5ffdU, 0x6f14df3dU, 0xdb867844U,
- 0xf381caafU, 0xc43eb968U, 0x342c3824U, 0x405fc2a3U,
- 0xc372161dU, 0x250cbce2U, 0x498b283cU, 0x9541ff0dU,
- 0x017139a8U, 0xb3de080cU, 0xe49cd8b4U, 0xc1906456U,
- 0x84617bcbU, 0xb670d532U, 0x5c74486cU, 0x5742d0b8U,
-};
-
-static const uint32 Td3[256]=
-{
- 0xf4a75051U, 0x4165537eU, 0x17a4c31aU, 0x275e963aU,
- 0xab6bcb3bU, 0x9d45f11fU, 0xfa58abacU, 0xe303934bU,
- 0x30fa5520U, 0x766df6adU, 0xcc769188U, 0x024c25f5U,
- 0xe5d7fc4fU, 0x2acbd7c5U, 0x35448026U, 0x62a38fb5U,
- 0xb15a49deU, 0xba1b6725U, 0xea0e9845U, 0xfec0e15dU,
- 0x2f7502c3U, 0x4cf01281U, 0x4697a38dU, 0xd3f9c66bU,
- 0x8f5fe703U, 0x929c9515U, 0x6d7aebbfU, 0x5259da95U,
- 0xbe832dd4U, 0x7421d358U, 0xe0692949U, 0xc9c8448eU,
- 0xc2896a75U, 0x8e7978f4U, 0x583e6b99U, 0xb971dd27U,
- 0xe14fb6beU, 0x88ad17f0U, 0x20ac66c9U, 0xce3ab47dU,
- 0xdf4a1863U, 0x1a3182e5U, 0x51336097U, 0x537f4562U,
- 0x6477e0b1U, 0x6bae84bbU, 0x81a01cfeU, 0x082b94f9U,
- 0x48685870U, 0x45fd198fU, 0xde6c8794U, 0x7bf8b752U,
- 0x73d323abU, 0x4b02e272U, 0x1f8f57e3U, 0x55ab2a66U,
- 0xeb2807b2U, 0xb5c2032fU, 0xc57b9a86U, 0x3708a5d3U,
- 0x2887f230U, 0xbfa5b223U, 0x036aba02U, 0x16825cedU,
- 0xcf1c2b8aU, 0x79b492a7U, 0x07f2f0f3U, 0x69e2a14eU,
- 0xdaf4cd65U, 0x05bed506U, 0x34621fd1U, 0xa6fe8ac4U,
- 0x2e539d34U, 0xf355a0a2U, 0x8ae13205U, 0xf6eb75a4U,
- 0x83ec390bU, 0x60efaa40U, 0x719f065eU, 0x6e1051bdU,
- 0x218af93eU, 0xdd063d96U, 0x3e05aeddU, 0xe6bd464dU,
- 0x548db591U, 0xc45d0571U, 0x06d46f04U, 0x5015ff60U,
- 0x98fb2419U, 0xbde997d6U, 0x4043cc89U, 0xd99e7767U,
- 0xe842bdb0U, 0x898b8807U, 0x195b38e7U, 0xc8eedb79U,
- 0x7c0a47a1U, 0x420fe97cU, 0x841ec9f8U, 0x00000000U,
- 0x80868309U, 0x2bed4832U, 0x1170ac1eU, 0x5a724e6cU,
- 0x0efffbfdU, 0x8538560fU, 0xaed51e3dU, 0x2d392736U,
- 0x0fd9640aU, 0x5ca62168U, 0x5b54d19bU, 0x362e3a24U,
- 0x0a67b10cU, 0x57e70f93U, 0xee96d2b4U, 0x9b919e1bU,
- 0xc0c54f80U, 0xdc20a261U, 0x774b695aU, 0x121a161cU,
- 0x93ba0ae2U, 0xa02ae5c0U, 0x22e0433cU, 0x1b171d12U,
- 0x090d0b0eU, 0x8bc7adf2U, 0xb6a8b92dU, 0x1ea9c814U,
- 0xf1198557U, 0x75074cafU, 0x99ddbbeeU, 0x7f60fda3U,
- 0x01269ff7U, 0x72f5bc5cU, 0x663bc544U, 0xfb7e345bU,
- 0x4329768bU, 0x23c6dccbU, 0xedfc68b6U, 0xe4f163b8U,
- 0x31dccad7U, 0x63851042U, 0x97224013U, 0xc6112084U,
- 0x4a247d85U, 0xbb3df8d2U, 0xf93211aeU, 0x29a16dc7U,
- 0x9e2f4b1dU, 0xb230f3dcU, 0x8652ec0dU, 0xc1e3d077U,
- 0xb3166c2bU, 0x70b999a9U, 0x9448fa11U, 0xe9642247U,
- 0xfc8cc4a8U, 0xf03f1aa0U, 0x7d2cd856U, 0x3390ef22U,
- 0x494ec787U, 0x38d1c1d9U, 0xcaa2fe8cU, 0xd40b3698U,
- 0xf581cfa6U, 0x7ade28a5U, 0xb78e26daU, 0xadbfa43fU,
- 0x3a9de42cU, 0x78920d50U, 0x5fcc9b6aU, 0x7e466254U,
- 0x8d13c2f6U, 0xd8b8e890U, 0x39f75e2eU, 0xc3aff582U,
- 0x5d80be9fU, 0xd0937c69U, 0xd52da96fU, 0x2512b3cfU,
- 0xac993bc8U, 0x187da710U, 0x9c636ee8U, 0x3bbb7bdbU,
- 0x267809cdU, 0x5918f46eU, 0x9ab701ecU, 0x4f9aa883U,
- 0x956e65e6U, 0xffe67eaaU, 0xbccf0821U, 0x15e8e6efU,
- 0xe79bd9baU, 0x6f36ce4aU, 0x9f09d4eaU, 0xb07cd629U,
- 0xa4b2af31U, 0x3f23312aU, 0xa59430c6U, 0xa266c035U,
- 0x4ebc3774U, 0x82caa6fcU, 0x90d0b0e0U, 0xa7d81533U,
- 0x04984af1U, 0xecdaf741U, 0xcd500e7fU, 0x91f62f17U,
- 0x4dd68d76U, 0xefb04d43U, 0xaa4d54ccU, 0x9604dfe4U,
- 0xd1b5e39eU, 0x6a881b4cU, 0x2c1fb8c1U, 0x65517f46U,
- 0x5eea049dU, 0x8c355d01U, 0x877473faU, 0x0b412efbU,
- 0x671d5ab3U, 0xdbd25292U, 0x105633e9U, 0xd647136dU,
- 0xd7618c9aU, 0xa10c7a37U, 0xf8148e59U, 0x133c89ebU,
- 0xa927eeceU, 0x61c935b7U, 0x1ce5ede1U, 0x47b13c7aU,
- 0xd2df599cU, 0xf2733f55U, 0x14ce7918U, 0xc737bf73U,
- 0xf7cdea53U, 0xfdaa5b5fU, 0x3d6f14dfU, 0x44db8678U,
- 0xaff381caU, 0x68c43eb9U, 0x24342c38U, 0xa3405fc2U,
- 0x1dc37216U, 0xe2250cbcU, 0x3c498b28U, 0x0d9541ffU,
- 0xa8017139U, 0x0cb3de08U, 0xb4e49cd8U, 0x56c19064U,
- 0xcb84617bU, 0x32b670d5U, 0x6c5c7448U, 0xb85742d0U,
-};
-
-static const uint32 Td4[256]=
-{
- 0x52525252U, 0x09090909U, 0x6a6a6a6aU, 0xd5d5d5d5U,
- 0x30303030U, 0x36363636U, 0xa5a5a5a5U, 0x38383838U,
- 0xbfbfbfbfU, 0x40404040U, 0xa3a3a3a3U, 0x9e9e9e9eU,
- 0x81818181U, 0xf3f3f3f3U, 0xd7d7d7d7U, 0xfbfbfbfbU,
- 0x7c7c7c7cU, 0xe3e3e3e3U, 0x39393939U, 0x82828282U,
- 0x9b9b9b9bU, 0x2f2f2f2fU, 0xffffffffU, 0x87878787U,
- 0x34343434U, 0x8e8e8e8eU, 0x43434343U, 0x44444444U,
- 0xc4c4c4c4U, 0xdedededeU, 0xe9e9e9e9U, 0xcbcbcbcbU,
- 0x54545454U, 0x7b7b7b7bU, 0x94949494U, 0x32323232U,
- 0xa6a6a6a6U, 0xc2c2c2c2U, 0x23232323U, 0x3d3d3d3dU,
- 0xeeeeeeeeU, 0x4c4c4c4cU, 0x95959595U, 0x0b0b0b0bU,
- 0x42424242U, 0xfafafafaU, 0xc3c3c3c3U, 0x4e4e4e4eU,
- 0x08080808U, 0x2e2e2e2eU, 0xa1a1a1a1U, 0x66666666U,
- 0x28282828U, 0xd9d9d9d9U, 0x24242424U, 0xb2b2b2b2U,
- 0x76767676U, 0x5b5b5b5bU, 0xa2a2a2a2U, 0x49494949U,
- 0x6d6d6d6dU, 0x8b8b8b8bU, 0xd1d1d1d1U, 0x25252525U,
- 0x72727272U, 0xf8f8f8f8U, 0xf6f6f6f6U, 0x64646464U,
- 0x86868686U, 0x68686868U, 0x98989898U, 0x16161616U,
- 0xd4d4d4d4U, 0xa4a4a4a4U, 0x5c5c5c5cU, 0xccccccccU,
- 0x5d5d5d5dU, 0x65656565U, 0xb6b6b6b6U, 0x92929292U,
- 0x6c6c6c6cU, 0x70707070U, 0x48484848U, 0x50505050U,
- 0xfdfdfdfdU, 0xededededU, 0xb9b9b9b9U, 0xdadadadaU,
- 0x5e5e5e5eU, 0x15151515U, 0x46464646U, 0x57575757U,
- 0xa7a7a7a7U, 0x8d8d8d8dU, 0x9d9d9d9dU, 0x84848484U,
- 0x90909090U, 0xd8d8d8d8U, 0xababababU, 0x00000000U,
- 0x8c8c8c8cU, 0xbcbcbcbcU, 0xd3d3d3d3U, 0x0a0a0a0aU,
- 0xf7f7f7f7U, 0xe4e4e4e4U, 0x58585858U, 0x05050505U,
- 0xb8b8b8b8U, 0xb3b3b3b3U, 0x45454545U, 0x06060606U,
- 0xd0d0d0d0U, 0x2c2c2c2cU, 0x1e1e1e1eU, 0x8f8f8f8fU,
- 0xcacacacaU, 0x3f3f3f3fU, 0x0f0f0f0fU, 0x02020202U,
- 0xc1c1c1c1U, 0xafafafafU, 0xbdbdbdbdU, 0x03030303U,
- 0x01010101U, 0x13131313U, 0x8a8a8a8aU, 0x6b6b6b6bU,
- 0x3a3a3a3aU, 0x91919191U, 0x11111111U, 0x41414141U,
- 0x4f4f4f4fU, 0x67676767U, 0xdcdcdcdcU, 0xeaeaeaeaU,
- 0x97979797U, 0xf2f2f2f2U, 0xcfcfcfcfU, 0xcecececeU,
- 0xf0f0f0f0U, 0xb4b4b4b4U, 0xe6e6e6e6U, 0x73737373U,
- 0x96969696U, 0xacacacacU, 0x74747474U, 0x22222222U,
- 0xe7e7e7e7U, 0xadadadadU, 0x35353535U, 0x85858585U,
- 0xe2e2e2e2U, 0xf9f9f9f9U, 0x37373737U, 0xe8e8e8e8U,
- 0x1c1c1c1cU, 0x75757575U, 0xdfdfdfdfU, 0x6e6e6e6eU,
- 0x47474747U, 0xf1f1f1f1U, 0x1a1a1a1aU, 0x71717171U,
- 0x1d1d1d1dU, 0x29292929U, 0xc5c5c5c5U, 0x89898989U,
- 0x6f6f6f6fU, 0xb7b7b7b7U, 0x62626262U, 0x0e0e0e0eU,
- 0xaaaaaaaaU, 0x18181818U, 0xbebebebeU, 0x1b1b1b1bU,
- 0xfcfcfcfcU, 0x56565656U, 0x3e3e3e3eU, 0x4b4b4b4bU,
- 0xc6c6c6c6U, 0xd2d2d2d2U, 0x79797979U, 0x20202020U,
- 0x9a9a9a9aU, 0xdbdbdbdbU, 0xc0c0c0c0U, 0xfefefefeU,
- 0x78787878U, 0xcdcdcdcdU, 0x5a5a5a5aU, 0xf4f4f4f4U,
- 0x1f1f1f1fU, 0xddddddddU, 0xa8a8a8a8U, 0x33333333U,
- 0x88888888U, 0x07070707U, 0xc7c7c7c7U, 0x31313131U,
- 0xb1b1b1b1U, 0x12121212U, 0x10101010U, 0x59595959U,
- 0x27272727U, 0x80808080U, 0xececececU, 0x5f5f5f5fU,
- 0x60606060U, 0x51515151U, 0x7f7f7f7fU, 0xa9a9a9a9U,
- 0x19191919U, 0xb5b5b5b5U, 0x4a4a4a4aU, 0x0d0d0d0dU,
- 0x2d2d2d2dU, 0xe5e5e5e5U, 0x7a7a7a7aU, 0x9f9f9f9fU,
- 0x93939393U, 0xc9c9c9c9U, 0x9c9c9c9cU, 0xefefefefU,
- 0xa0a0a0a0U, 0xe0e0e0e0U, 0x3b3b3b3bU, 0x4d4d4d4dU,
- 0xaeaeaeaeU, 0x2a2a2a2aU, 0xf5f5f5f5U, 0xb0b0b0b0U,
- 0xc8c8c8c8U, 0xebebebebU, 0xbbbbbbbbU, 0x3c3c3c3cU,
- 0x83838383U, 0x53535353U, 0x99999999U, 0x61616161U,
- 0x17171717U, 0x2b2b2b2bU, 0x04040404U, 0x7e7e7e7eU,
- 0xbabababaU, 0x77777777U, 0xd6d6d6d6U, 0x26262626U,
- 0xe1e1e1e1U, 0x69696969U, 0x14141414U, 0x63636363U,
- 0x55555555U, 0x21212121U, 0x0c0c0c0cU, 0x7d7d7d7dU,
-};
-
-
-/* for 128-bit blocks, Rijndael never uses more than 10 rcon values */
-static const uint32 rcon[]=
-{
- 0x01000000, 0x02000000, 0x04000000, 0x08000000,
- 0x10000000, 0x20000000, 0x40000000, 0x80000000,
- 0x1B000000, 0x36000000,
-};
-
-#if defined(_MSC_VER) && defined(__i386__)
-
-#define RJ_SWAP(x) (_lrotl(x, 8) & 0x00ff00ff | _lrotr(x, 8) & 0xff00ff00)
-#define GETuint32(p) RJ_SWAP(*((uint32 *)(p)))
-#define PUTuint32(ct, st) { *((uint32 *)(ct)) = RJ_SWAP((st)); }
-
-#else
-
-#define GETuint32(pt) (((uint32)(pt)[0] << 24) ^ ((uint32)(pt)[1] << 16)\
- ^ ((uint32)(pt)[2] << 8) ^ ((uint32)(pt)[3]))
-#define PUTuint32(ct, st) { (ct)[0] = (uint8)((st) >> 24); (ct)[1]\
-= (uint8)((st) >> 16); (ct)[2] = (uint8)((st) >> 8); (ct)[3] = (uint8)(st); }
-
-#endif /* defined(_MSC_VER) && defined(__i386__) */
-
-
-/*
- Expand the cipher key into the encryption key schedule.
-
- RETURN
- The number of rounds for the given cipher key size.
-*/
-
-int rijndaelKeySetupEnc(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[],
- int keyBits)
-{
- int i = 0;
- uint32 temp;
-
- rk[0] = GETuint32(cipherKey );
- rk[1] = GETuint32(cipherKey + 4);
- rk[2] = GETuint32(cipherKey + 8);
- rk[3] = GETuint32(cipherKey + 12);
- if (keyBits == 128)
- {
- for (;;)
- {
- temp = rk[3];
- rk[4] = (rk[0] ^
- (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
- (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
- (Te4[(temp ) & 0xff] & 0x0000ff00) ^
- (Te4[(temp >> 24) ] & 0x000000ff) ^
- rcon[i]);
- rk[5] = rk[1] ^ rk[4];
- rk[6] = rk[2] ^ rk[5];
- rk[7] = rk[3] ^ rk[6];
- if (++i == 10)
- return 10;
- rk += 4;
- }
- }
- rk[4] = GETuint32(cipherKey + 16);
- rk[5] = GETuint32(cipherKey + 20);
- if (keyBits == 192)
- {
- for (;;)
- {
- temp = rk[ 5];
- rk[ 6] = (rk[ 0] ^
- (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
- (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
- (Te4[(temp ) & 0xff] & 0x0000ff00) ^
- (Te4[(temp >> 24) ] & 0x000000ff) ^
- rcon[i]);
- rk[ 7] = rk[ 1] ^ rk[ 6];
- rk[ 8] = rk[ 2] ^ rk[ 7];
- rk[ 9] = rk[ 3] ^ rk[ 8];
- if (++i == 8)
- {
- return 12;
- }
- rk[10] = rk[ 4] ^ rk[ 9];
- rk[11] = rk[ 5] ^ rk[10];
- rk += 6;
- }
- }
- rk[6] = GETuint32(cipherKey + 24);
- rk[7] = GETuint32(cipherKey + 28);
- if (keyBits == 256)
- {
- for (;;)
- {
- temp = rk[ 7];
- rk[ 8] = (rk[ 0] ^
- (Te4[(temp >> 16) & 0xff] & 0xff000000) ^
- (Te4[(temp >> 8) & 0xff] & 0x00ff0000) ^
- (Te4[(temp ) & 0xff] & 0x0000ff00) ^
- (Te4[(temp >> 24) ] & 0x000000ff) ^
- rcon[i]);
- rk[ 9] = rk[ 1] ^ rk[ 8];
- rk[10] = rk[ 2] ^ rk[ 9];
- rk[11] = rk[ 3] ^ rk[10];
- if (++i == 7)
- {
- return 14;
- }
- temp = rk[11];
- rk[12] = (rk[ 4] ^
- (Te4[(temp >> 24) ] & 0xff000000) ^
- (Te4[(temp >> 16) & 0xff] & 0x00ff0000) ^
- (Te4[(temp >> 8) & 0xff] & 0x0000ff00) ^
- (Te4[(temp ) & 0xff] & 0x000000ff));
- rk[13] = rk[ 5] ^ rk[12];
- rk[14] = rk[ 6] ^ rk[13];
- rk[15] = rk[ 7] ^ rk[14];
- rk += 8;
- }
- }
- return 0;
-}
-
-
-/*
- Expand the cipher key into the decryption key schedule.
-
- RETURN
- The number of rounds for the given cipher key size.
-*/
-
-int rijndaelKeySetupDec(uint32 rk[/*4*(Nr + 1)*/], const uint8 cipherKey[],
- int keyBits)
-{
- int nr, i, j;
- uint32 temp;
-
- /* expand the cipher key: */
- nr = rijndaelKeySetupEnc(rk, cipherKey, keyBits);
- /* invert the order of the round keys: */
- for (i = 0, j = 4*nr; i < j; i += 4, j -= 4)
- {
- temp = rk[i ]; rk[i ] = rk[j ]; rk[j ] = temp;
- temp = rk[i + 1]; rk[i + 1] = rk[j + 1]; rk[j + 1] = temp;
- temp = rk[i + 2]; rk[i + 2] = rk[j + 2]; rk[j + 2] = temp;
- temp = rk[i + 3]; rk[i + 3] = rk[j + 3]; rk[j + 3] = temp;
- }
- /*
- Apply the inverse MixColumn transform to all round keys but the first
- and the last:
- */
- for (i = 1; i < nr; i++)
- {
- rk += 4;
-
- rk[0]= (
- Td0[Te4[(rk[0] >> 24) ] & 0xff] ^
- Td1[Te4[(rk[0] >> 16) & 0xff] & 0xff] ^
- Td2[Te4[(rk[0] >> 8) & 0xff] & 0xff] ^
- Td3[Te4[(rk[0] ) & 0xff] & 0xff]);
-
- rk[1]= (Td0[Te4[(rk[1] >> 24) ] & 0xff] ^
- Td1[Te4[(rk[1] >> 16) & 0xff] & 0xff] ^
- Td2[Te4[(rk[1] >> 8) & 0xff] & 0xff] ^
- Td3[Te4[(rk[1] ) & 0xff] & 0xff]);
-
- rk[2]= (Td0[Te4[(rk[2] >> 24) ] & 0xff] ^
- Td1[Te4[(rk[2] >> 16) & 0xff] & 0xff] ^
- Td2[Te4[(rk[2] >> 8) & 0xff] & 0xff] ^
- Td3[Te4[(rk[2] ) & 0xff] & 0xff]);
-
- rk[3]= (Td0[Te4[(rk[3] >> 24) ] & 0xff] ^
- Td1[Te4[(rk[3] >> 16) & 0xff] & 0xff] ^
- Td2[Te4[(rk[3] >> 8) & 0xff] & 0xff] ^
- Td3[Te4[(rk[3] ) & 0xff] & 0xff]);
- }
- return nr;
-}
-
-
-void rijndaelEncrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr,
- const uint8 pt[16], uint8 ct[16])
-{
- uint32 s0, s1, s2, s3, t0, t1, t2, t3;
-#ifndef FULL_UNROLL
- int r;
-#endif /* FULL_UNROLL */
-
- /* map byte array block to cipher state and add initial round key: */
- s0 = GETuint32(pt ) ^ rk[0];
- s1 = GETuint32(pt + 4) ^ rk[1];
- s2 = GETuint32(pt + 8) ^ rk[2];
- s3 = GETuint32(pt + 12) ^ rk[3];
-
-#ifdef FULL_UNROLL
- /* round 1: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[ 4]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[ 5]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[ 6]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[ 7]);
-
- /* round 2: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[ 8]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[ 9]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[10]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[11]);
-
- /* round 3: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[12]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[13]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[14]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[15]);
-
- /* round 4: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[16]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[17]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[18]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[19]);
-
- /* round 5: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[20]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[21]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[22]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[23]);
-
- /* round 6: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[24]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[25]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[26]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[27]);
-
- /* round 7: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[28]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[29]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[30]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[31]);
-
- /* round 8: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[32]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[33]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[34]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[35]);
-
- /* round 9: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[36]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[37]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[38]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[39]);
-
- if (Nr > 10)
- {
- /* round 10: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[40]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[41]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[42]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[43]);
-
- /* round 11: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[44]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[45]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[46]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[47]);
-
- if (Nr > 12)
- {
- /* round 12: */
- s0= (Te0[t0 >> 24] ^ Te1[(t1 >> 16) & 0xff] ^ Te2[(t2 >> 8) & 0xff]
- ^ Te3[t3 & 0xff] ^ rk[48]);
- s1= (Te0[t1 >> 24] ^ Te1[(t2 >> 16) & 0xff] ^ Te2[(t3 >> 8) & 0xff]
- ^ Te3[t0 & 0xff] ^ rk[49]);
- s2= (Te0[t2 >> 24] ^ Te1[(t3 >> 16) & 0xff] ^ Te2[(t0 >> 8) & 0xff]
- ^ Te3[t1 & 0xff] ^ rk[50]);
- s3= (Te0[t3 >> 24] ^ Te1[(t0 >> 16) & 0xff] ^ Te2[(t1 >> 8) & 0xff]
- ^ Te3[t2 & 0xff] ^ rk[51]);
-
- /* round 13: */
- t0= (Te0[s0 >> 24] ^ Te1[(s1 >> 16) & 0xff] ^ Te2[(s2 >> 8) & 0xff]
- ^ Te3[s3 & 0xff] ^ rk[52]);
- t1= (Te0[s1 >> 24] ^ Te1[(s2 >> 16) & 0xff] ^ Te2[(s3 >> 8) & 0xff]
- ^ Te3[s0 & 0xff] ^ rk[53]);
- t2= (Te0[s2 >> 24] ^ Te1[(s3 >> 16) & 0xff] ^ Te2[(s0 >> 8) & 0xff]
- ^ Te3[s1 & 0xff] ^ rk[54]);
- t3= (Te0[s3 >> 24] ^ Te1[(s0 >> 16) & 0xff] ^ Te2[(s1 >> 8) & 0xff]
- ^ Te3[s2 & 0xff] ^ rk[55]);
- }
- }
- rk += Nr << 2;
-#else /* !FULL_UNROLL */
-
- /* Nr - 1 full rounds: */
-
- r = Nr >> 1;
- for (;;)
- {
- t0= (Te0[(s0 >> 24) ] ^
- Te1[(s1 >> 16) & 0xff] ^
- Te2[(s2 >> 8) & 0xff] ^
- Te3[(s3 ) & 0xff] ^
- rk[4]);
-
- t1= (Te0[(s1 >> 24) ] ^
- Te1[(s2 >> 16) & 0xff] ^
- Te2[(s3 >> 8) & 0xff] ^
- Te3[(s0 ) & 0xff] ^
- rk[5]);
-
- t2= (Te0[(s2 >> 24) ] ^
- Te1[(s3 >> 16) & 0xff] ^
- Te2[(s0 >> 8) & 0xff] ^
- Te3[(s1 ) & 0xff] ^
- rk[6]);
-
- t3= (Te0[(s3 >> 24) ] ^
- Te1[(s0 >> 16) & 0xff] ^
- Te2[(s1 >> 8) & 0xff] ^
- Te3[(s2 ) & 0xff] ^
- rk[7]);
-
- rk+= 8;
- if (--r == 0)
- break;
-
- s0= (Te0[(t0 >> 24) ] ^
- Te1[(t1 >> 16) & 0xff] ^
- Te2[(t2 >> 8) & 0xff] ^
- Te3[(t3 ) & 0xff] ^
- rk[0]);
-
- s1= (Te0[(t1 >> 24) ] ^
- Te1[(t2 >> 16) & 0xff] ^
- Te2[(t3 >> 8) & 0xff] ^
- Te3[(t0 ) & 0xff] ^
- rk[1]);
-
- s2= (Te0[(t2 >> 24) ] ^
- Te1[(t3 >> 16) & 0xff] ^
- Te2[(t0 >> 8) & 0xff] ^
- Te3[(t1 ) & 0xff] ^
- rk[2]);
-
- s3= (Te0[(t3 >> 24) ] ^
- Te1[(t0 >> 16) & 0xff] ^
- Te2[(t1 >> 8) & 0xff] ^
- Te3[(t2 ) & 0xff] ^
- rk[3]);
- }
-#endif /* FULL_UNROLL */
-
- /* Apply last round and map cipher state to byte array block: */
- s0= ((Te4[(t0 >> 24) ] & 0xff000000) ^
- (Te4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
- (Te4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
- (Te4[(t3 ) & 0xff] & 0x000000ff) ^
- rk[0]);
- PUTuint32(ct , s0);
-
- s1= ((Te4[(t1 >> 24) ] & 0xff000000) ^
- (Te4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
- (Te4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
- (Te4[(t0 ) & 0xff] & 0x000000ff) ^
- rk[1]);
- PUTuint32(ct + 4, s1);
-
- s2= ((Te4[(t2 >> 24) ] & 0xff000000) ^
- (Te4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
- (Te4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
- (Te4[(t1 ) & 0xff] & 0x000000ff) ^
- rk[2]);
- PUTuint32(ct + 8, s2);
-
- s3= ((Te4[(t3 >> 24) ] & 0xff000000) ^
- (Te4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
- (Te4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
- (Te4[(t2 ) & 0xff] & 0x000000ff) ^
- rk[3]);
- PUTuint32(ct + 12, s3);
-}
-
-
-void rijndaelDecrypt(const uint32 rk[/*4*(Nr + 1)*/], int Nr,
- const uint8 ct[16], uint8 pt[16])
-{
- uint32 s0, s1, s2, s3, t0, t1, t2, t3;
-#ifndef FULL_UNROLL
- int r;
-#endif /* FULL_UNROLL */
-
- /* Map byte array block to cipher state and add initial round key: */
-
- s0 = GETuint32(ct ) ^ rk[0];
- s1 = GETuint32(ct + 4) ^ rk[1];
- s2 = GETuint32(ct + 8) ^ rk[2];
- s3 = GETuint32(ct + 12) ^ rk[3];
-
-#ifdef FULL_UNROLL
- /* round 1: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[ 4]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[ 5]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[ 6]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[ 7]);
-
- /* round 2: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[ 8]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[ 9]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[10]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[11]);
-
- /* round 3: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[12]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[13]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[14]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[15]);
-
- /* round 4: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[16]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[17]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[18]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[19]);
-
- /* round 5: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[20]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[21]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[22]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[23]);
-
- /* round 6: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[24]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[25]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[26]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[27]);
-
- /* round 7: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[28]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[29]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[30]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[31]);
-
- /* round 8: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[32]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[33]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[34]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[35]);
-
- /* round 9: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[36]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[37]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[38]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[39]);
-
- if (Nr > 10)
- {
- /* round 10: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[40]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[41]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[42]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[43]);
-
- /* round 11: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[44]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[45]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[46]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[47]);
-
- if (Nr > 12)
- {
- /* round 12: */
- s0= (Td0[t0 >> 24] ^ Td1[(t3 >> 16) & 0xff] ^ Td2[(t2 >> 8) & 0xff]
- ^ Td3[t1 & 0xff] ^ rk[48]);
- s1= (Td0[t1 >> 24] ^ Td1[(t0 >> 16) & 0xff] ^ Td2[(t3 >> 8) & 0xff]
- ^ Td3[t2 & 0xff] ^ rk[49]);
- s2= (Td0[t2 >> 24] ^ Td1[(t1 >> 16) & 0xff] ^ Td2[(t0 >> 8) & 0xff]
- ^ Td3[t3 & 0xff] ^ rk[50]);
- s3= (Td0[t3 >> 24] ^ Td1[(t2 >> 16) & 0xff] ^ Td2[(t1 >> 8) & 0xff]
- ^ Td3[t0 & 0xff] ^ rk[51]);
-
- /* round 13: */
- t0= (Td0[s0 >> 24] ^ Td1[(s3 >> 16) & 0xff] ^ Td2[(s2 >> 8) & 0xff]
- ^ Td3[s1 & 0xff] ^ rk[52]);
- t1= (Td0[s1 >> 24] ^ Td1[(s0 >> 16) & 0xff] ^ Td2[(s3 >> 8) & 0xff]
- ^ Td3[s2 & 0xff] ^ rk[53]);
- t2= (Td0[s2 >> 24] ^ Td1[(s1 >> 16) & 0xff] ^ Td2[(s0 >> 8) & 0xff]
- ^ Td3[s3 & 0xff] ^ rk[54]);
- t3= (Td0[s3 >> 24] ^ Td1[(s2 >> 16) & 0xff] ^ Td2[(s1 >> 8) & 0xff]
- ^ Td3[s0 & 0xff] ^ rk[55]);
- }
- }
- rk += Nr << 2;
-#else /* !FULL_UNROLL */
-
- /* Nr - 1 full rounds: */
- r= (Nr >> 1);
- for (;;)
- {
- t0= (Td0[(s0 >> 24) ] ^
- Td1[(s3 >> 16) & 0xff] ^
- Td2[(s2 >> 8) & 0xff] ^
- Td3[(s1 ) & 0xff] ^
- rk[4]);
-
- t1= (Td0[(s1 >> 24) ] ^
- Td1[(s0 >> 16) & 0xff] ^
- Td2[(s3 >> 8) & 0xff] ^
- Td3[(s2 ) & 0xff] ^
- rk[5]);
-
- t2= (Td0[(s2 >> 24) ] ^
- Td1[(s1 >> 16) & 0xff] ^
- Td2[(s0 >> 8) & 0xff] ^
- Td3[(s3 ) & 0xff] ^
- rk[6]);
-
- t3= (Td0[(s3 >> 24) ] ^
- Td1[(s2 >> 16) & 0xff] ^
- Td2[(s1 >> 8) & 0xff] ^
- Td3[(s0 ) & 0xff] ^
- rk[7]);
-
- rk+= 8;
- if (--r == 0)
- break;
-
- s0= (Td0[(t0 >> 24) ] ^
- Td1[(t3 >> 16) & 0xff] ^
- Td2[(t2 >> 8) & 0xff] ^
- Td3[(t1 ) & 0xff] ^
- rk[0]);
-
- s1= (Td0[(t1 >> 24) ] ^
- Td1[(t0 >> 16) & 0xff] ^
- Td2[(t3 >> 8) & 0xff] ^
- Td3[(t2 ) & 0xff] ^
- rk[1]);
-
- s2= (Td0[(t2 >> 24) ] ^
- Td1[(t1 >> 16) & 0xff] ^
- Td2[(t0 >> 8) & 0xff] ^
- Td3[(t3 ) & 0xff] ^
- rk[2]);
-
- s3= (Td0[(t3 >> 24) ] ^
- Td1[(t2 >> 16) & 0xff] ^
- Td2[(t1 >> 8) & 0xff] ^
- Td3[(t0 ) & 0xff] ^
- rk[3]);
- }
-
-#endif /* FULL_UNROLL */
-
- /* Apply last round and map cipher state to byte array block: */
-
- s0= ((Td4[(t0 >> 24) ] & 0xff000000) ^
- (Td4[(t3 >> 16) & 0xff] & 0x00ff0000) ^
- (Td4[(t2 >> 8) & 0xff] & 0x0000ff00) ^
- (Td4[(t1 ) & 0xff] & 0x000000ff) ^
- rk[0]);
- PUTuint32(pt , s0);
-
- s1= ((Td4[(t1 >> 24) ] & 0xff000000) ^
- (Td4[(t0 >> 16) & 0xff] & 0x00ff0000) ^
- (Td4[(t3 >> 8) & 0xff] & 0x0000ff00) ^
- (Td4[(t2 ) & 0xff] & 0x000000ff) ^
- rk[1]);
- PUTuint32(pt + 4, s1);
-
- s2= ((Td4[(t2 >> 24) ] & 0xff000000) ^
- (Td4[(t1 >> 16) & 0xff] & 0x00ff0000) ^
- (Td4[(t0 >> 8) & 0xff] & 0x0000ff00) ^
- (Td4[(t3 ) & 0xff] & 0x000000ff) ^
- rk[2]);
- PUTuint32(pt + 8, s2);
-
- s3= ((Td4[(t3 >> 24) ] & 0xff000000) ^
- (Td4[(t2 >> 16) & 0xff] & 0x00ff0000) ^
- (Td4[(t1 >> 8) & 0xff] & 0x0000ff00) ^
- (Td4[(t0 ) & 0xff] & 0x000000ff) ^
- rk[3]);
- PUTuint32(pt + 12, s3);
-}
diff --git a/dep/mysqllite/mysys/sha1.c b/dep/mysqllite/mysys/sha1.c
deleted file mode 100644
index e5b33a9ad13..00000000000
--- a/dep/mysqllite/mysys/sha1.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/* Copyright (c) 2002, 2004, 2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-*/
-
-/*
- Original Source from: http://www.faqs.org/rfcs/rfc3174.html
-
- Copyright (C) The Internet Society (2001). All Rights Reserved.
-
- This document and translations of it may be copied and furnished to
- others, and derivative works that comment on or otherwise explain it
- or assist in its implementation may be prepared, copied, published
- and distributed, in whole or in part, without restriction of any
- kind, provided that the above copyright notice and this paragraph are
- included on all such copies and derivative works. However, this
- document itself may not be modified in any way, such as by removing
- the copyright notice or references to the Internet Society or other
- Internet organizations, except as needed for the purpose of
- developing Internet standards in which case the procedures for
- copyrights defined in the Internet Standards process must be
- followed, or as required to translate it into languages other than
- English.
-
- The limited permissions granted above are perpetual and will not be
- revoked by the Internet Society or its successors or assigns.
-
- This document and the information contained herein is provided on an
- "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
- TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
- BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
- HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
- MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-
- Acknowledgement
- Funding for the RFC Editor function is currently provided by the
- Internet Society.
-
- DESCRIPTION
- This file implements the Secure Hashing Algorithm 1 as
- defined in FIPS PUB 180-1 published April 17, 1995.
-
- The SHA-1, produces a 160-bit message digest for a given data
- stream. It should take about 2**n steps to find a message with the
- same digest as a given message and 2**(n/2) to find any two
- messages with the same digest, when n is the digest size in bits.
- Therefore, this algorithm can serve as a means of providing a
- "fingerprint" for a message.
-
- PORTABILITY ISSUES
- SHA-1 is defined in terms of 32-bit "words". This code uses
- <stdint.h> (included via "sha1.h" to define 32 and 8 bit unsigned
- integer types. If your C compiler does not support 32 bit unsigned
- integers, this code is not appropriate.
-
- CAVEATS
- SHA-1 is designed to work with messages less than 2^64 bits long.
- Although SHA-1 allows a message digest to be generated for messages
- of any number of bits less than 2^64, this implementation only
- works with messages with a length that is a multiple of the size of
- an 8-bit character.
-
- CHANGES
- 2002 by Peter Zaitsev to
- - fit to new prototypes according to MySQL standard
- - Some optimizations
- - All checking is now done in debug only mode
- - More comments
-*/
-
-#include "my_global.h"
-#include "m_string.h"
-#include "sha1.h"
-
-/*
- Define the SHA1 circular left shift macro
-*/
-
-#define SHA1CircularShift(bits,word) \
- (((word) << (bits)) | ((word) >> (32-(bits))))
-
-/* Local Function Prototyptes */
-static void SHA1PadMessage(SHA1_CONTEXT*);
-static void SHA1ProcessMessageBlock(SHA1_CONTEXT*);
-
-
-/*
- Initialize SHA1Context
-
- SYNOPSIS
- mysql_sha1_reset()
- context [in/out] The context to reset.
-
- DESCRIPTION
- This function will initialize the SHA1Context in preparation
- for computing a new SHA1 message digest.
-
- RETURN
- SHA_SUCCESS ok
- != SHA_SUCCESS sha Error Code.
-*/
-
-
-const uint32 sha_const_key[5]=
-{
- 0x67452301,
- 0xEFCDAB89,
- 0x98BADCFE,
- 0x10325476,
- 0xC3D2E1F0
-};
-
-
-int mysql_sha1_reset(SHA1_CONTEXT *context)
-{
-#ifndef DBUG_OFF
- if (!context)
- return SHA_NULL;
-#endif
-
- context->Length = 0;
- context->Message_Block_Index = 0;
-
- context->Intermediate_Hash[0] = sha_const_key[0];
- context->Intermediate_Hash[1] = sha_const_key[1];
- context->Intermediate_Hash[2] = sha_const_key[2];
- context->Intermediate_Hash[3] = sha_const_key[3];
- context->Intermediate_Hash[4] = sha_const_key[4];
-
- context->Computed = 0;
- context->Corrupted = 0;
-
- return SHA_SUCCESS;
-}
-
-
-/*
- Return the 160-bit message digest into the array provided by the caller
-
- SYNOPSIS
- mysql_sha1_result()
- context [in/out] The context to use to calculate the SHA-1 hash.
- Message_Digest: [out] Where the digest is returned.
-
- DESCRIPTION
- NOTE: The first octet of hash is stored in the 0th element,
- the last octet of hash in the 19th element.
-
- RETURN
- SHA_SUCCESS ok
- != SHA_SUCCESS sha Error Code.
-*/
-
-int mysql_sha1_result(SHA1_CONTEXT *context,
- uint8 Message_Digest[SHA1_HASH_SIZE])
-{
- int i;
-
-#ifndef DBUG_OFF
- if (!context || !Message_Digest)
- return SHA_NULL;
-
- if (context->Corrupted)
- return context->Corrupted;
-#endif
-
- if (!context->Computed)
- {
- SHA1PadMessage(context);
- /* message may be sensitive, clear it out */
- bzero((char*) context->Message_Block,64);
- context->Length = 0; /* and clear length */
- context->Computed = 1;
- }
-
- for (i = 0; i < SHA1_HASH_SIZE; i++)
- Message_Digest[i] = (int8)((context->Intermediate_Hash[i>>2] >> 8
- * ( 3 - ( i & 0x03 ) )));
- return SHA_SUCCESS;
-}
-
-
-/*
- Accepts an array of octets as the next portion of the message.
-
- SYNOPSIS
- mysql_sha1_input()
- context [in/out] The SHA context to update
- message_array An array of characters representing the next portion
- of the message.
- length The length of the message in message_array
-
- RETURN
- SHA_SUCCESS ok
- != SHA_SUCCESS sha Error Code.
-*/
-
-int mysql_sha1_input(SHA1_CONTEXT *context, const uint8 *message_array,
- unsigned length)
-{
- if (!length)
- return SHA_SUCCESS;
-
-#ifndef DBUG_OFF
- /* We assume client konows what it is doing in non-debug mode */
- if (!context || !message_array)
- return SHA_NULL;
- if (context->Computed)
- return (context->Corrupted= SHA_STATE_ERROR);
- if (context->Corrupted)
- return context->Corrupted;
-#endif
-
- while (length--)
- {
- context->Message_Block[context->Message_Block_Index++]=
- (*message_array & 0xFF);
- context->Length += 8; /* Length is in bits */
-
-#ifndef DBUG_OFF
- /*
- Then we're not debugging we assume we never will get message longer
- 2^64 bits.
- */
- if (context->Length == 0)
- return (context->Corrupted= 1); /* Message is too long */
-#endif
-
- if (context->Message_Block_Index == 64)
- {
- SHA1ProcessMessageBlock(context);
- }
- message_array++;
- }
- return SHA_SUCCESS;
-}
-
-
-/*
- Process the next 512 bits of the message stored in the Message_Block array.
-
- SYNOPSIS
- SHA1ProcessMessageBlock()
-
- DESCRIPTION
- Many of the variable names in this code, especially the single
- character names, were used because those were the names used in
- the publication.
-*/
-
-/* Constants defined in SHA-1 */
-static const uint32 K[]=
-{
- 0x5A827999,
- 0x6ED9EBA1,
- 0x8F1BBCDC,
- 0xCA62C1D6
-};
-
-
-static void SHA1ProcessMessageBlock(SHA1_CONTEXT *context)
-{
- int t; /* Loop counter */
- uint32 temp; /* Temporary word value */
- uint32 W[80]; /* Word sequence */
- uint32 A, B, C, D, E; /* Word buffers */
- int idx;
-
- /*
- Initialize the first 16 words in the array W
- */
-
- for (t = 0; t < 16; t++)
- {
- idx=t*4;
- W[t] = context->Message_Block[idx] << 24;
- W[t] |= context->Message_Block[idx + 1] << 16;
- W[t] |= context->Message_Block[idx + 2] << 8;
- W[t] |= context->Message_Block[idx + 3];
- }
-
-
- for (t = 16; t < 80; t++)
- {
- W[t] = SHA1CircularShift(1,W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16]);
- }
-
- A = context->Intermediate_Hash[0];
- B = context->Intermediate_Hash[1];
- C = context->Intermediate_Hash[2];
- D = context->Intermediate_Hash[3];
- E = context->Intermediate_Hash[4];
-
- for (t = 0; t < 20; t++)
- {
- temp= SHA1CircularShift(5,A) + ((B & C) | ((~B) & D)) + E + W[t] + K[0];
- E = D;
- D = C;
- C = SHA1CircularShift(30,B);
- B = A;
- A = temp;
- }
-
- for (t = 20; t < 40; t++)
- {
- temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[1];
- E = D;
- D = C;
- C = SHA1CircularShift(30,B);
- B = A;
- A = temp;
- }
-
- for (t = 40; t < 60; t++)
- {
- temp= (SHA1CircularShift(5,A) + ((B & C) | (B & D) | (C & D)) + E + W[t] +
- K[2]);
- E = D;
- D = C;
- C = SHA1CircularShift(30,B);
- B = A;
- A = temp;
- }
-
- for (t = 60; t < 80; t++)
- {
- temp = SHA1CircularShift(5,A) + (B ^ C ^ D) + E + W[t] + K[3];
- E = D;
- D = C;
- C = SHA1CircularShift(30,B);
- B = A;
- A = temp;
- }
-
- context->Intermediate_Hash[0] += A;
- context->Intermediate_Hash[1] += B;
- context->Intermediate_Hash[2] += C;
- context->Intermediate_Hash[3] += D;
- context->Intermediate_Hash[4] += E;
-
- context->Message_Block_Index = 0;
-}
-
-
-/*
- Pad message
-
- SYNOPSIS
- SHA1PadMessage()
- context: [in/out] The context to pad
-
- DESCRIPTION
- According to the standard, the message must be padded to an even
- 512 bits. The first padding bit must be a '1'. The last 64 bits
- represent the length of the original message. All bits in between
- should be 0. This function will pad the message according to
- those rules by filling the Message_Block array accordingly. It
- will also call the ProcessMessageBlock function provided
- appropriately. When it returns, it can be assumed that the message
- digest has been computed.
-
-*/
-
-static void SHA1PadMessage(SHA1_CONTEXT *context)
-{
- /*
- Check to see if the current message block is too small to hold
- the initial padding bits and length. If so, we will pad the
- block, process it, and then continue padding into a second
- block.
- */
-
- int i=context->Message_Block_Index;
-
- if (i > 55)
- {
- context->Message_Block[i++] = 0x80;
- bzero((char*) &context->Message_Block[i],
- sizeof(context->Message_Block[0])*(64-i));
- context->Message_Block_Index=64;
-
- /* This function sets context->Message_Block_Index to zero */
- SHA1ProcessMessageBlock(context);
-
- bzero((char*) &context->Message_Block[0],
- sizeof(context->Message_Block[0])*56);
- context->Message_Block_Index=56;
- }
- else
- {
- context->Message_Block[i++] = 0x80;
- bzero((char*) &context->Message_Block[i],
- sizeof(context->Message_Block[0])*(56-i));
- context->Message_Block_Index=56;
- }
-
- /*
- Store the message length as the last 8 octets
- */
-
- context->Message_Block[56] = (int8) (context->Length >> 56);
- context->Message_Block[57] = (int8) (context->Length >> 48);
- context->Message_Block[58] = (int8) (context->Length >> 40);
- context->Message_Block[59] = (int8) (context->Length >> 32);
- context->Message_Block[60] = (int8) (context->Length >> 24);
- context->Message_Block[61] = (int8) (context->Length >> 16);
- context->Message_Block[62] = (int8) (context->Length >> 8);
- context->Message_Block[63] = (int8) (context->Length);
-
- SHA1ProcessMessageBlock(context);
-}
diff --git a/dep/mysqllite/mysys/stacktrace.c b/dep/mysqllite/mysys/stacktrace.c
deleted file mode 100644
index 48cdaaa6c91..00000000000
--- a/dep/mysqllite/mysys/stacktrace.c
+++ /dev/null
@@ -1,714 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <my_stacktrace.h>
-
-#ifndef __WIN__
-#include <signal.h>
-#include <my_pthread.h>
-#include <m_string.h>
-#ifdef HAVE_STACKTRACE
-#include <unistd.h>
-#include <strings.h>
-
-#ifdef __linux__
-#include <ctype.h> /* isprint */
-#include <sys/syscall.h> /* SYS_gettid */
-#endif
-
-#if HAVE_EXECINFO_H
-#include <execinfo.h>
-#endif
-
-#define PTR_SANE(p) ((p) && (char*)(p) >= heap_start && (char*)(p) <= heap_end)
-
-static char *heap_start;
-
-#ifdef HAVE_BSS_START
-extern char *__bss_start;
-#endif
-
-void my_init_stacktrace()
-{
-#ifdef HAVE_BSS_START
- heap_start = (char*) &__bss_start;
-#endif
-}
-
-#ifdef __linux__
-
-static void print_buffer(char *buffer, size_t count)
-{
- for (; count && *buffer; --count)
- {
- int c= (int) *buffer++;
- fputc(isprint(c) ? c : ' ', stderr);
- }
-}
-
-/**
- Access the pages of this process through /proc/self/task/<tid>/mem
- in order to safely print the contents of a memory address range.
-
- @param addr The address at the start of the memory region.
- @param max_len The length of the memory region.
-
- @return Zero on success.
-*/
-static int safe_print_str(const char *addr, int max_len)
-{
- int fd;
- pid_t tid;
- off_t offset;
- ssize_t nbytes= 0;
- size_t total, count;
- char buf[256];
-
- tid= (pid_t) syscall(SYS_gettid);
-
- sprintf(buf, "/proc/self/task/%d/mem", tid);
-
- if ((fd= open(buf, O_RDONLY)) < 0)
- return -1;
-
- /* Ensure that off_t can hold a pointer. */
- compile_time_assert(sizeof(off_t) >= sizeof(intptr));
-
- total= max_len;
- offset= (intptr) addr;
-
- /* Read up to the maximum number of bytes. */
- while (total)
- {
- count= min(sizeof(buf), total);
-
- if ((nbytes= pread(fd, buf, count, offset)) < 0)
- {
- /* Just in case... */
- if (errno == EINTR)
- continue;
- else
- break;
- }
-
- /* Advance offset into memory. */
- total-= nbytes;
- offset+= nbytes;
- addr+= nbytes;
-
- /* Output the printable characters. */
- print_buffer(buf, nbytes);
-
- /* Break if less than requested... */
- if ((count - nbytes))
- break;
- }
-
- /* Output a new line if something was printed. */
- if (total != (size_t) max_len)
- fputc('\n', stderr);
-
- if (nbytes == -1)
- fprintf(stderr, "Can't read from address %p: %m.\n", addr);
-
- close(fd);
-
- return 0;
-}
-
-#endif
-
-void my_safe_print_str(const char* val, int max_len)
-{
- char *heap_end;
-
-#ifdef __linux__
- if (!safe_print_str(val, max_len))
- return;
-#endif
-
- heap_end= (char*) sbrk(0);
-
- if (!PTR_SANE(val))
- {
- fprintf(stderr, "is an invalid pointer\n");
- return;
- }
-
- for (; max_len && PTR_SANE(val) && *val; --max_len)
- fputc(*val++, stderr);
- fputc('\n', stderr);
-}
-
-#if defined(HAVE_PRINTSTACK)
-
-/* Use Solaris' symbolic stack trace routine. */
-#include <ucontext.h>
-
-void my_print_stacktrace(uchar* stack_bottom __attribute__((unused)),
- ulong thread_stack __attribute__((unused)))
-{
- if (printstack(fileno(stderr)) == -1)
- fprintf(stderr, "Error when traversing the stack, stack appears corrupt.\n");
- else
- fprintf(stderr,
- "Please read "
- "http://dev.mysql.com/doc/refman/5.1/en/resolve-stack-dump.html\n"
- "and follow instructions on how to resolve the stack trace.\n"
- "Resolved stack trace is much more helpful in diagnosing the\n"
- "problem, so please do resolve it\n");
-}
-
-#elif HAVE_BACKTRACE && (HAVE_BACKTRACE_SYMBOLS || HAVE_BACKTRACE_SYMBOLS_FD)
-
-#if BACKTRACE_DEMANGLE
-
-char __attribute__ ((weak)) *
-my_demangle(const char *mangled_name __attribute__((unused)),
- int *status __attribute__((unused)))
-{
- return NULL;
-}
-
-static void my_demangle_symbols(char **addrs, int n)
-{
- int status, i;
- char *begin, *end, *demangled;
-
- for (i= 0; i < n; i++)
- {
- demangled= NULL;
- begin= strchr(addrs[i], '(');
- end= begin ? strchr(begin, '+') : NULL;
-
- if (begin && end)
- {
- *begin++= *end++= '\0';
- demangled= my_demangle(begin, &status);
- if (!demangled || status)
- {
- demangled= NULL;
- begin[-1]= '(';
- end[-1]= '+';
- }
- }
-
- if (demangled)
- fprintf(stderr, "%s(%s+%s\n", addrs[i], demangled, end);
- else
- fprintf(stderr, "%s\n", addrs[i]);
- }
-}
-
-#endif /* BACKTRACE_DEMANGLE */
-
-void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack)
-{
- void *addrs[128];
- char **strings= NULL;
- int n = backtrace(addrs, array_elements(addrs));
- fprintf(stderr, "stack_bottom = %p thread_stack 0x%lx\n",
- stack_bottom, thread_stack);
-#if BACKTRACE_DEMANGLE
- if ((strings= backtrace_symbols(addrs, n)))
- {
- my_demangle_symbols(strings, n);
- free(strings);
- }
-#endif
-#if HAVE_BACKTRACE_SYMBOLS_FD
- if (!strings)
- {
- backtrace_symbols_fd(addrs, n, fileno(stderr));
- }
-#endif
-}
-
-#elif defined(TARGET_OS_LINUX)
-
-#ifdef __i386__
-#define SIGRETURN_FRAME_OFFSET 17
-#endif
-
-#ifdef __x86_64__
-#define SIGRETURN_FRAME_OFFSET 23
-#endif
-
-#if defined(__alpha__) && defined(__GNUC__)
-/*
- The only way to backtrace without a symbol table on alpha
- is to find stq fp,N(sp), and the first byte
- of the instruction opcode will give us the value of N. From this
- we can find where the old value of fp is stored
-*/
-
-#define MAX_INSTR_IN_FUNC 10000
-
-inline uchar** find_prev_fp(uint32* pc, uchar** fp)
-{
- int i;
- for (i = 0; i < MAX_INSTR_IN_FUNC; ++i,--pc)
- {
- uchar* p = (uchar*)pc;
- if (p[2] == 222 && p[3] == 35)
- {
- return (uchar**)((uchar*)fp - *(short int*)p);
- }
- }
- return 0;
-}
-
-inline uint32* find_prev_pc(uint32* pc, uchar** fp)
-{
- int i;
- for (i = 0; i < MAX_INSTR_IN_FUNC; ++i,--pc)
- {
- char* p = (char*)pc;
- if (p[1] == 0 && p[2] == 94 && p[3] == -73)
- {
- uint32* prev_pc = (uint32*)*((fp+p[0]/sizeof(fp)));
- return prev_pc;
- }
- }
- return 0;
-}
-#endif /* defined(__alpha__) && defined(__GNUC__) */
-
-void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack)
-{
- uchar** fp;
- uint frame_count = 0, sigreturn_frame_count;
-#if defined(__alpha__) && defined(__GNUC__)
- uint32* pc;
-#endif
- LINT_INIT(fp);
-
-
-#ifdef __i386__
- __asm __volatile__ ("movl %%ebp,%0"
- :"=r"(fp)
- :"r"(fp));
-#endif
-#ifdef __x86_64__
- __asm __volatile__ ("movq %%rbp,%0"
- :"=r"(fp)
- :"r"(fp));
-#endif
-#if defined(__alpha__) && defined(__GNUC__)
- __asm __volatile__ ("mov $30,%0"
- :"=r"(fp)
- :"r"(fp));
-#endif
- if (!fp)
- {
- fprintf(stderr, "frame pointer is NULL, did you compile with\n\
--fomit-frame-pointer? Aborting backtrace!\n");
- return;
- }
-
- if (!stack_bottom || (uchar*) stack_bottom > (uchar*) &fp)
- {
- ulong tmp= min(0x10000,thread_stack);
- /* Assume that the stack starts at the previous even 65K */
- stack_bottom= (uchar*) (((ulong) &fp + tmp) &
- ~(ulong) 0xFFFF);
- fprintf(stderr, "Cannot determine thread, fp=%p, backtrace may not be correct.\n", fp);
- }
- if (fp > (uchar**) stack_bottom ||
- fp < (uchar**) stack_bottom - thread_stack)
- {
- fprintf(stderr, "Bogus stack limit or frame pointer,\
- fp=%p, stack_bottom=%p, thread_stack=%ld, aborting backtrace.\n",
- fp, stack_bottom, thread_stack);
- return;
- }
-
- fprintf(stderr, "Stack range sanity check OK, backtrace follows:\n");
-#if defined(__alpha__) && defined(__GNUC__)
- fprintf(stderr, "Warning: Alpha stacks are difficult -\
- will be taking some wild guesses, stack trace may be incorrect or \
- terminate abruptly\n");
- /* On Alpha, we need to get pc */
- __asm __volatile__ ("bsr %0, do_next; do_next: "
- :"=r"(pc)
- :"r"(pc));
-#endif /* __alpha__ */
-
- /* We are 1 frame above signal frame with NPTL and 2 frames above with LT */
- sigreturn_frame_count = thd_lib_detected == THD_LIB_LT ? 2 : 1;
-
- while (fp < (uchar**) stack_bottom)
- {
-#if defined(__i386__) || defined(__x86_64__)
- uchar** new_fp = (uchar**)*fp;
- fprintf(stderr, "%p\n", frame_count == sigreturn_frame_count ?
- *(fp + SIGRETURN_FRAME_OFFSET) : *(fp + 1));
-#endif /* defined(__386__) || defined(__x86_64__) */
-
-#if defined(__alpha__) && defined(__GNUC__)
- uchar** new_fp = find_prev_fp(pc, fp);
- if (frame_count == sigreturn_frame_count - 1)
- {
- new_fp += 90;
- }
-
- if (fp && pc)
- {
- pc = find_prev_pc(pc, fp);
- if (pc)
- fprintf(stderr, "%p\n", pc);
- else
- {
- fprintf(stderr, "Not smart enough to deal with the rest\
- of this stack\n");
- goto end;
- }
- }
- else
- {
- fprintf(stderr, "Not smart enough to deal with the rest of this stack\n");
- goto end;
- }
-#endif /* defined(__alpha__) && defined(__GNUC__) */
- if (new_fp <= fp )
- {
- fprintf(stderr, "New value of fp=%p failed sanity check,\
- terminating stack trace!\n", new_fp);
- goto end;
- }
- fp = new_fp;
- ++frame_count;
- }
-
- fprintf(stderr, "Stack trace seems successful - bottom reached\n");
-
-end:
- fprintf(stderr,
- "Please read http://dev.mysql.com/doc/refman/5.1/en/resolve-stack-dump.html\n"
- "and follow instructions on how to resolve the stack trace.\n"
- "Resolved stack trace is much more helpful in diagnosing the\n"
- "problem, so please do resolve it\n");
-}
-#endif /* TARGET_OS_LINUX */
-#endif /* HAVE_STACKTRACE */
-
-/* Produce a core for the thread */
-void my_write_core(int sig)
-{
-#ifdef HAVE_gcov
- extern void __gcov_flush(void);
-#endif
- signal(sig, SIG_DFL);
-#ifdef HAVE_gcov
- /*
- For GCOV build, crashing will prevent the writing of code coverage
- information from this process, causing gcov output to be incomplete.
- So we force the writing of coverage information here before terminating.
- */
- __gcov_flush();
-#endif
- pthread_kill(pthread_self(), sig);
-#if defined(P_MYID) && !defined(SCO)
- /* On Solaris, the above kill is not enough */
- sigsend(P_PID,P_MYID,sig);
-#endif
-}
-
-#else /* __WIN__*/
-
-#include <dbghelp.h>
-#include <tlhelp32.h>
-#if _MSC_VER
-#pragma comment(lib, "dbghelp")
-#endif
-
-static EXCEPTION_POINTERS *exception_ptrs;
-
-#define MODULE64_SIZE_WINXP 576
-#define STACKWALK_MAX_FRAMES 64
-
-void my_init_stacktrace()
-{
-}
-
-
-void my_set_exception_pointers(EXCEPTION_POINTERS *ep)
-{
- exception_ptrs = ep;
-}
-
-/*
- Appends directory to symbol path.
-*/
-static void add_to_symbol_path(char *path, size_t path_buffer_size,
- char *dir, size_t dir_buffer_size)
-{
- strcat_s(dir, dir_buffer_size, ";");
- if (!strstr(path, dir))
- {
- strcat_s(path, path_buffer_size, dir);
- }
-}
-
-/*
- Get symbol path - semicolon-separated list of directories to search for debug
- symbols. We expect PDB in the same directory as corresponding exe or dll,
- so the path is build from directories of the loaded modules. If environment
- variable _NT_SYMBOL_PATH is set, it's value appended to the symbol search path
-*/
-static void get_symbol_path(char *path, size_t size)
-{
- HANDLE hSnap;
- char *envvar;
- char *p;
-#ifndef DBUG_OFF
- static char pdb_debug_dir[MAX_PATH + 7];
-#endif
-
- path[0]= '\0';
-
-#ifndef DBUG_OFF
- /*
- Add "debug" subdirectory of the application directory, sometimes PDB will
- placed here by installation.
- */
- GetModuleFileName(NULL, pdb_debug_dir, MAX_PATH);
- p= strrchr(pdb_debug_dir, '\\');
- if(p)
- {
- *p= 0;
- strcat_s(pdb_debug_dir, sizeof(pdb_debug_dir), "\\debug;");
- add_to_symbol_path(path, size, pdb_debug_dir, sizeof(pdb_debug_dir));
- }
-#endif
-
- /*
- Enumerate all modules, and add their directories to the path.
- Avoid duplicate entries.
- */
- hSnap= CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId());
- if (hSnap != INVALID_HANDLE_VALUE)
- {
- BOOL ret;
- MODULEENTRY32 mod;
- mod.dwSize= sizeof(MODULEENTRY32);
- for (ret= Module32First(hSnap, &mod); ret; ret= Module32Next(hSnap, &mod))
- {
- char *module_dir= mod.szExePath;
- p= strrchr(module_dir,'\\');
- if (!p)
- {
- /*
- Path separator was not found. Not known to happen, if ever happens,
- will indicate current directory.
- */
- module_dir[0]= '.';
- module_dir[1]= '\0';
- }
- else
- {
- *p= '\0';
- }
- add_to_symbol_path(path, size, module_dir,sizeof(mod.szExePath));
- }
- CloseHandle(hSnap);
- }
-
-
- /* Add _NT_SYMBOL_PATH, if present. */
- envvar= getenv("_NT_SYMBOL_PATH");
- if(envvar)
- {
- strcat_s(path, size, envvar);
- }
-}
-
-#define MAX_SYMBOL_PATH 32768
-
-/* Platform SDK in VS2003 does not have definition for SYMOPT_NO_PROMPTS*/
-#ifndef SYMOPT_NO_PROMPTS
-#define SYMOPT_NO_PROMPTS 0
-#endif
-
-void my_print_stacktrace(uchar* unused1, ulong unused2)
-{
- HANDLE hProcess= GetCurrentProcess();
- HANDLE hThread= GetCurrentThread();
- static IMAGEHLP_MODULE64 module= {sizeof(module)};
- static IMAGEHLP_SYMBOL64_PACKAGE package;
- DWORD64 addr;
- DWORD machine;
- int i;
- CONTEXT context;
- STACKFRAME64 frame={0};
- static char symbol_path[MAX_SYMBOL_PATH];
-
- if(!exception_ptrs)
- return;
-
- /* Copy context, as stackwalking on original will unwind the stack */
- context = *(exception_ptrs->ContextRecord);
- /*Initialize symbols.*/
- SymSetOptions(SYMOPT_LOAD_LINES|SYMOPT_NO_PROMPTS|SYMOPT_DEFERRED_LOADS|SYMOPT_DEBUG);
- get_symbol_path(symbol_path, sizeof(symbol_path));
- SymInitialize(hProcess, symbol_path, TRUE);
-
- /*Prepare stackframe for the first StackWalk64 call*/
- frame.AddrFrame.Mode= frame.AddrPC.Mode= frame.AddrStack.Mode= AddrModeFlat;
-#if (defined _M_IX86)
- machine= IMAGE_FILE_MACHINE_I386;
- frame.AddrFrame.Offset= context.Ebp;
- frame.AddrPC.Offset= context.Eip;
- frame.AddrStack.Offset= context.Esp;
-#elif (defined _M_X64)
- machine = IMAGE_FILE_MACHINE_AMD64;
- frame.AddrFrame.Offset= context.Rbp;
- frame.AddrPC.Offset= context.Rip;
- frame.AddrStack.Offset= context.Rsp;
-#else
- /*There is currently no need to support IA64*/
-#pragma error ("unsupported architecture")
-#endif
-
- package.sym.SizeOfStruct= sizeof(package.sym);
- package.sym.MaxNameLength= sizeof(package.name);
-
- /*Walk the stack, output useful information*/
- for(i= 0; i< STACKWALK_MAX_FRAMES;i++)
- {
- DWORD64 function_offset= 0;
- DWORD line_offset= 0;
- IMAGEHLP_LINE64 line= {sizeof(line)};
- BOOL have_module= FALSE;
- BOOL have_symbol= FALSE;
- BOOL have_source= FALSE;
-
- if(!StackWalk64(machine, hProcess, hThread, &frame, &context, 0, 0, 0 ,0))
- break;
- addr= frame.AddrPC.Offset;
-
- have_module= SymGetModuleInfo64(hProcess,addr,&module);
-#ifdef _M_IX86
- if(!have_module)
- {
- /*
- ModuleInfo structure has been "compatibly" extended in releases after XP,
- and its size was increased. To make XP dbghelp.dll function
- happy, pretend passing the old structure.
- */
- module.SizeOfStruct= MODULE64_SIZE_WINXP;
- have_module= SymGetModuleInfo64(hProcess, addr, &module);
- }
-#endif
-
- have_symbol= SymGetSymFromAddr64(hProcess, addr, &function_offset,
- &(package.sym));
- have_source= SymGetLineFromAddr64(hProcess, addr, &line_offset, &line);
-
- fprintf(stderr, "%p ", addr);
- if(have_module)
- {
- char *base_image_name= strrchr(module.ImageName, '\\');
- if(base_image_name)
- base_image_name++;
- else
- base_image_name= module.ImageName;
- fprintf(stderr, "%s!", base_image_name);
- }
- if(have_symbol)
- fprintf(stderr, "%s()", package.sym.Name);
- else if(have_module)
- fprintf(stderr, "???");
-
- if(have_source)
- {
- char *base_file_name= strrchr(line.FileName, '\\');
- if(base_file_name)
- base_file_name++;
- else
- base_file_name= line.FileName;
- fprintf(stderr,"[%s:%u]", base_file_name, line.LineNumber);
- }
- fprintf(stderr, "\n");
- }
- fflush(stderr);
-}
-
-
-/*
- Write dump. The dump is created in current directory,
- file name is constructed from executable name plus
- ".dmp" extension
-*/
-void my_write_core(int unused)
-{
- char path[MAX_PATH];
- char dump_fname[MAX_PATH]= "core.dmp";
- MINIDUMP_EXCEPTION_INFORMATION info;
- HANDLE hFile;
-
- if(!exception_ptrs)
- return;
-
- info.ExceptionPointers= exception_ptrs;
- info.ClientPointers= FALSE;
- info.ThreadId= GetCurrentThreadId();
-
- if(GetModuleFileName(NULL, path, sizeof(path)))
- {
- _splitpath(path, NULL, NULL,dump_fname,NULL);
- strncat(dump_fname, ".dmp", sizeof(dump_fname));
- }
-
- hFile= CreateFile(dump_fname, GENERIC_WRITE, 0, 0, CREATE_ALWAYS,
- FILE_ATTRIBUTE_NORMAL, 0);
- if(hFile)
- {
- /* Create minidump */
- if(MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),
- hFile, MiniDumpNormal, &info, 0, 0))
- {
- fprintf(stderr, "Minidump written to %s\n",
- _fullpath(path, dump_fname, sizeof(path)) ? path : dump_fname);
- }
- else
- {
- fprintf(stderr,"MiniDumpWriteDump() failed, last error %u\n",
- GetLastError());
- }
- CloseHandle(hFile);
- }
- else
- {
- fprintf(stderr, "CreateFile(%s) failed, last error %u\n", dump_fname,
- GetLastError());
- }
- fflush(stderr);
-}
-
-
-void my_safe_print_str(const char *val, int len)
-{
- __try
- {
- fprintf(stderr,"=%.*s\n", len, val);
- }
- __except(EXCEPTION_EXECUTE_HANDLER)
- {
- fprintf(stderr,"is an invalid string pointer\n");
- }
-}
-#endif /*__WIN__*/
diff --git a/dep/mysqllite/mysys/string.c b/dep/mysqllite/mysys/string.c
deleted file mode 100644
index b1eded0664c..00000000000
--- a/dep/mysqllite/mysys/string.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Code for handling strings with can grow dynamicly.
- Copyright Monty Program KB.
- By monty.
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-
-my_bool init_dynamic_string(DYNAMIC_STRING *str, const char *init_str,
- size_t init_alloc, size_t alloc_increment)
-{
- size_t length;
- DBUG_ENTER("init_dynamic_string");
-
- if (!alloc_increment)
- alloc_increment=128;
- length=1;
- if (init_str && (length= strlen(init_str)+1) < init_alloc)
- init_alloc=((length+alloc_increment-1)/alloc_increment)*alloc_increment;
- if (!init_alloc)
- init_alloc=alloc_increment;
-
- if (!(str->str=(char*) my_malloc(init_alloc,MYF(MY_WME))))
- DBUG_RETURN(TRUE);
- str->length=length-1;
- if (init_str)
- memcpy(str->str,init_str,length);
- str->max_length=init_alloc;
- str->alloc_increment=alloc_increment;
- DBUG_RETURN(FALSE);
-}
-
-
-my_bool dynstr_set(DYNAMIC_STRING *str, const char *init_str)
-{
- uint length=0;
- DBUG_ENTER("dynstr_set");
-
- if (init_str && (length= (uint) strlen(init_str)+1) > str->max_length)
- {
- str->max_length=((length+str->alloc_increment-1)/str->alloc_increment)*
- str->alloc_increment;
- if (!str->max_length)
- str->max_length=str->alloc_increment;
- if (!(str->str=(char*) my_realloc(str->str,str->max_length,MYF(MY_WME))))
- DBUG_RETURN(TRUE);
- }
- if (init_str)
- {
- str->length=length-1;
- memcpy(str->str,init_str,length);
- }
- else
- str->length=0;
- DBUG_RETURN(FALSE);
-}
-
-
-my_bool dynstr_realloc(DYNAMIC_STRING *str, size_t additional_size)
-{
- DBUG_ENTER("dynstr_realloc");
-
- if (!additional_size) DBUG_RETURN(FALSE);
- if (str->length + additional_size > str->max_length)
- {
- str->max_length=((str->length + additional_size+str->alloc_increment-1)/
- str->alloc_increment)*str->alloc_increment;
- if (!(str->str=(char*) my_realloc(str->str,str->max_length,MYF(MY_WME))))
- DBUG_RETURN(TRUE);
- }
- DBUG_RETURN(FALSE);
-}
-
-
-my_bool dynstr_append(DYNAMIC_STRING *str, const char *append)
-{
- return dynstr_append_mem(str,append,(uint) strlen(append));
-}
-
-
-my_bool dynstr_append_mem(DYNAMIC_STRING *str, const char *append,
- size_t length)
-{
- char *new_ptr;
- if (str->length+length >= str->max_length)
- {
- size_t new_length=(str->length+length+str->alloc_increment)/
- str->alloc_increment;
- new_length*=str->alloc_increment;
- if (!(new_ptr=(char*) my_realloc(str->str,new_length,MYF(MY_WME))))
- return TRUE;
- str->str=new_ptr;
- str->max_length=new_length;
- }
- memcpy(str->str + str->length,append,length);
- str->length+=length;
- str->str[str->length]=0; /* Safety for C programs */
- return FALSE;
-}
-
-
-my_bool dynstr_trunc(DYNAMIC_STRING *str, size_t n)
-{
- str->length-=n;
- str->str[str->length]= '\0';
- return FALSE;
-}
-
-/*
- Concatenates any number of strings, escapes any OS quote in the result then
- surround the whole affair in another set of quotes which is finally appended
- to specified DYNAMIC_STRING. This function is especially useful when
- building strings to be executed with the system() function.
-
- @param str Dynamic String which will have addtional strings appended.
- @param append String to be appended.
- @param ... Optional. Additional string(s) to be appended.
-
- @note The final argument in the list must be NullS even if no additional
- options are passed.
-
- @return True = Success.
-*/
-
-my_bool dynstr_append_os_quoted(DYNAMIC_STRING *str, const char *append, ...)
-{
-#ifdef __WIN__
- const char *quote_str= "\"";
- const uint quote_len= 1;
-#else
- const char *quote_str= "\'";
- const uint quote_len= 1;
-#endif /* __WIN__ */
- my_bool ret= TRUE;
- va_list dirty_text;
-
- ret&= dynstr_append_mem(str, quote_str, quote_len); /* Leading quote */
- va_start(dirty_text, append);
- while (append != NullS)
- {
- const char *cur_pos= append;
- const char *next_pos= cur_pos;
-
- /* Search for quote in each string and replace with escaped quote */
- while(*(next_pos= strcend(cur_pos, quote_str[0])) != '\0')
- {
- ret&= dynstr_append_mem(str, cur_pos, (uint) (next_pos - cur_pos));
- ret&= dynstr_append_mem(str ,"\\", 1);
- ret&= dynstr_append_mem(str, quote_str, quote_len);
- cur_pos= next_pos + 1;
- }
- ret&= dynstr_append_mem(str, cur_pos, (uint) (next_pos - cur_pos));
- append= va_arg(dirty_text, char *);
- }
- va_end(dirty_text);
- ret&= dynstr_append_mem(str, quote_str, quote_len); /* Trailing quote */
-
- return ret;
-}
-
-
-void dynstr_free(DYNAMIC_STRING *str)
-{
- my_free(str->str);
- str->str= NULL;
-}
diff --git a/dep/mysqllite/mysys/thr_alarm.c b/dep/mysqllite/mysys/thr_alarm.c
deleted file mode 100644
index 2e427f96bdd..00000000000
--- a/dep/mysqllite/mysys/thr_alarm.c
+++ /dev/null
@@ -1,972 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* To avoid problems with alarms in debug code, we disable DBUG here */
-#define FORCE_DBUG_OFF
-#include "mysys_priv.h"
-#include <my_global.h>
-
-#if !defined(DONT_USE_THR_ALARM)
-#include <errno.h>
-#include <my_pthread.h>
-#include <signal.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <queues.h>
-#include "thr_alarm.h"
-
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h> /* AIX needs this for fd_set */
-#endif
-
-#ifndef ETIME
-#define ETIME ETIMEDOUT
-#endif
-
-uint thr_client_alarm;
-static int alarm_aborted=1; /* No alarm thread */
-my_bool thr_alarm_inited= 0;
-volatile my_bool alarm_thread_running= 0;
-time_t next_alarm_expire_time= ~ (time_t) 0;
-static sig_handler process_alarm_part2(int sig);
-
-#if !defined(__WIN__)
-
-static mysql_mutex_t LOCK_alarm;
-static mysql_cond_t COND_alarm;
-static sigset_t full_signal_set;
-static QUEUE alarm_queue;
-static uint max_used_alarms=0;
-pthread_t alarm_thread;
-
-#ifdef USE_ALARM_THREAD
-static void *alarm_handler(void *arg);
-#define reschedule_alarms() mysql_cond_signal(&COND_alarm)
-#else
-#define reschedule_alarms() pthread_kill(alarm_thread,THR_SERVER_ALARM)
-#endif
-
-static sig_handler thread_alarm(int sig __attribute__((unused)));
-
-static int compare_ulong(void *not_used __attribute__((unused)),
- uchar *a_ptr,uchar* b_ptr)
-{
- ulong a=*((ulong*) a_ptr),b= *((ulong*) b_ptr);
- return (a < b) ? -1 : (a == b) ? 0 : 1;
-}
-
-void init_thr_alarm(uint max_alarms)
-{
- sigset_t s;
- DBUG_ENTER("init_thr_alarm");
- alarm_aborted=0;
- next_alarm_expire_time= ~ (time_t) 0;
- init_queue(&alarm_queue,max_alarms+1,offsetof(ALARM,expire_time),0,
- compare_ulong,NullS);
- sigfillset(&full_signal_set); /* Neaded to block signals */
- mysql_mutex_init(key_LOCK_alarm, &LOCK_alarm, MY_MUTEX_INIT_FAST);
- mysql_cond_init(key_COND_alarm, &COND_alarm, NULL);
- if (thd_lib_detected == THD_LIB_LT)
- thr_client_alarm= SIGALRM;
- else
- thr_client_alarm= SIGUSR1;
-#ifndef USE_ALARM_THREAD
- if (thd_lib_detected != THD_LIB_LT)
-#endif
- {
- my_sigset(thr_client_alarm, thread_alarm);
- }
- sigemptyset(&s);
- sigaddset(&s, THR_SERVER_ALARM);
- alarm_thread=pthread_self();
-#if defined(USE_ALARM_THREAD)
- {
- pthread_attr_t thr_attr;
- pthread_attr_init(&thr_attr);
- pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
- pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
- pthread_attr_setstacksize(&thr_attr,8196);
- mysql_thread_create(key_thread_alarm,
- &alarm_thread, &thr_attr, alarm_handler, NULL);
- pthread_attr_destroy(&thr_attr);
- }
-#elif defined(USE_ONE_SIGNAL_HAND)
- pthread_sigmask(SIG_BLOCK, &s, NULL); /* used with sigwait() */
- if (thd_lib_detected == THD_LIB_LT)
- {
- my_sigset(thr_client_alarm, process_alarm); /* Linuxthreads */
- pthread_sigmask(SIG_UNBLOCK, &s, NULL);
- }
-#else
- my_sigset(THR_SERVER_ALARM, process_alarm);
- pthread_sigmask(SIG_UNBLOCK, &s, NULL);
-#endif
- DBUG_VOID_RETURN;
-}
-
-
-void resize_thr_alarm(uint max_alarms)
-{
- mysql_mutex_lock(&LOCK_alarm);
- /*
- It's ok not to shrink the queue as there may be more pending alarms than
- than max_alarms
- */
- if (alarm_queue.elements < max_alarms)
- resize_queue(&alarm_queue,max_alarms+1);
- mysql_mutex_unlock(&LOCK_alarm);
-}
-
-
-/*
- Request alarm after sec seconds.
-
- SYNOPSIS
- thr_alarm()
- alrm Pointer to alarm detection
- alarm_data Structure to store in alarm queue
-
- NOTES
- This function can't be called from the alarm-handling thread.
-
- RETURN VALUES
- 0 ok
- 1 If no more alarms are allowed (aborted by process)
-
- Stores in first argument a pointer to a non-zero int which is set to 0
- when the alarm has been given
-*/
-
-my_bool thr_alarm(thr_alarm_t *alrm, uint sec, ALARM *alarm_data)
-{
- time_t now;
-#ifndef USE_ONE_SIGNAL_HAND
- sigset_t old_mask;
-#endif
- my_bool reschedule;
- struct st_my_thread_var *current_my_thread_var= my_thread_var;
- DBUG_ENTER("thr_alarm");
- DBUG_PRINT("enter",("thread: %s sec: %d",my_thread_name(),sec));
-
- now= my_time(0);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_BLOCK,&full_signal_set,&old_mask);
-#endif
- mysql_mutex_lock(&LOCK_alarm); /* Lock from threads & alarms */
- if (alarm_aborted > 0)
- { /* No signal thread */
- DBUG_PRINT("info", ("alarm aborted"));
- *alrm= 0; /* No alarm */
- mysql_mutex_unlock(&LOCK_alarm);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- DBUG_RETURN(1);
- }
- if (alarm_aborted < 0)
- sec= 1; /* Abort mode */
-
- if (alarm_queue.elements >= max_used_alarms)
- {
- if (alarm_queue.elements == alarm_queue.max_elements)
- {
- DBUG_PRINT("info", ("alarm queue full"));
- fprintf(stderr,"Warning: thr_alarm queue is full\n");
- *alrm= 0; /* No alarm */
- mysql_mutex_unlock(&LOCK_alarm);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- DBUG_RETURN(1);
- }
- max_used_alarms=alarm_queue.elements+1;
- }
- reschedule= (ulong) next_alarm_expire_time > (ulong) now + sec;
- if (!alarm_data)
- {
- if (!(alarm_data=(ALARM*) my_malloc(sizeof(ALARM),MYF(MY_WME))))
- {
- DBUG_PRINT("info", ("failed my_malloc()"));
- *alrm= 0; /* No alarm */
- mysql_mutex_unlock(&LOCK_alarm);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- DBUG_RETURN(1);
- }
- alarm_data->malloced=1;
- }
- else
- alarm_data->malloced=0;
- alarm_data->expire_time=now+sec;
- alarm_data->alarmed=0;
- alarm_data->thread= current_my_thread_var->pthread_self;
- alarm_data->thread_id= current_my_thread_var->id;
- queue_insert(&alarm_queue,(uchar*) alarm_data);
-
- /* Reschedule alarm if the current one has more than sec left */
- if (reschedule)
- {
- DBUG_PRINT("info", ("reschedule"));
- if (pthread_equal(pthread_self(),alarm_thread))
- {
- alarm(sec); /* purecov: inspected */
- next_alarm_expire_time= now + sec;
- }
- else
- reschedule_alarms(); /* Reschedule alarms */
- }
- mysql_mutex_unlock(&LOCK_alarm);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- (*alrm)= &alarm_data->alarmed;
- DBUG_RETURN(0);
-}
-
-
-/*
- Remove alarm from list of alarms
-*/
-
-void thr_end_alarm(thr_alarm_t *alarmed)
-{
- ALARM *alarm_data;
-#ifndef USE_ONE_SIGNAL_HAND
- sigset_t old_mask;
-#endif
- uint i, found=0;
- DBUG_ENTER("thr_end_alarm");
-
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_BLOCK,&full_signal_set,&old_mask);
-#endif
- mysql_mutex_lock(&LOCK_alarm);
-
- alarm_data= (ALARM*) ((uchar*) *alarmed - offsetof(ALARM,alarmed));
- for (i=0 ; i < alarm_queue.elements ; i++)
- {
- if ((ALARM*) queue_element(&alarm_queue,i) == alarm_data)
- {
- queue_remove(&alarm_queue,i),MYF(0);
- if (alarm_data->malloced)
- my_free(alarm_data);
- found++;
-#ifdef DBUG_OFF
- break;
-#endif
- }
- }
- DBUG_ASSERT(!*alarmed || found == 1);
- if (!found)
- {
- if (*alarmed)
- fprintf(stderr,"Warning: Didn't find alarm 0x%lx in queue of %d alarms\n",
- (long) *alarmed, alarm_queue.elements);
- DBUG_PRINT("warning",("Didn't find alarm 0x%lx in queue\n",
- (long) *alarmed));
- }
- mysql_mutex_unlock(&LOCK_alarm);
-#ifndef USE_ONE_SIGNAL_HAND
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- DBUG_VOID_RETURN;
-}
-
-/*
- Come here when some alarm in queue is due.
- Mark all alarms with are finnished in list.
- Shedule alarms to be sent again after 1-10 sec (many alarms at once)
- If alarm_aborted is set then all alarms are given and resent
- every second.
-*/
-
-sig_handler process_alarm(int sig __attribute__((unused)))
-{
- sigset_t old_mask;
-/*
- This must be first as we can't call DBUG inside an alarm for a normal thread
-*/
-
- if (thd_lib_detected == THD_LIB_LT &&
- !pthread_equal(pthread_self(),alarm_thread))
- {
-#if defined(MAIN) && !defined(__bsdi__)
- printf("thread_alarm in process_alarm\n"); fflush(stdout);
-#endif
-#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
- my_sigset(thr_client_alarm, process_alarm); /* int. thread system calls */
-#endif
- return;
- }
-
- /*
- We have to do do the handling of the alarm in a sub function,
- because otherwise we would get problems with two threads calling
- DBUG_... functions at the same time (as two threads may call
- process_alarm() at the same time
- */
-
-#ifndef USE_ALARM_THREAD
- pthread_sigmask(SIG_SETMASK,&full_signal_set,&old_mask);
- mysql_mutex_lock(&LOCK_alarm);
-#endif
- process_alarm_part2(sig);
-#ifndef USE_ALARM_THREAD
-#if defined(SIGNAL_HANDLER_RESET_ON_DELIVERY) && !defined(USE_ONE_SIGNAL_HAND)
- my_sigset(THR_SERVER_ALARM,process_alarm);
-#endif
- mysql_mutex_unlock(&LOCK_alarm);
- pthread_sigmask(SIG_SETMASK,&old_mask,NULL);
-#endif
- return;
-}
-
-
-static sig_handler process_alarm_part2(int sig __attribute__((unused)))
-{
- ALARM *alarm_data;
- DBUG_ENTER("process_alarm");
- DBUG_PRINT("info",("sig: %d active alarms: %d",sig,alarm_queue.elements));
-
-#if defined(MAIN) && !defined(__bsdi__)
- printf("process_alarm\n"); fflush(stdout);
-#endif
- if (alarm_queue.elements)
- {
- if (alarm_aborted)
- {
- uint i;
- for (i=0 ; i < alarm_queue.elements ;)
- {
- alarm_data=(ALARM*) queue_element(&alarm_queue,i);
- alarm_data->alarmed=1; /* Info to thread */
- if (pthread_equal(alarm_data->thread,alarm_thread) ||
- pthread_kill(alarm_data->thread, thr_client_alarm))
- {
-#ifdef MAIN
- printf("Warning: pthread_kill couldn't find thread!!!\n");
-#endif
- queue_remove(&alarm_queue,i); /* No thread. Remove alarm */
- }
- else
- i++; /* Signal next thread */
- }
-#ifndef USE_ALARM_THREAD
- if (alarm_queue.elements)
- alarm(1); /* Signal soon again */
-#endif
- }
- else
- {
- ulong now=(ulong) my_time(0);
- ulong next=now+10-(now%10);
- while ((alarm_data=(ALARM*) queue_top(&alarm_queue))->expire_time <= now)
- {
- alarm_data->alarmed=1; /* Info to thread */
- DBUG_PRINT("info",("sending signal to waiting thread"));
- if (pthread_equal(alarm_data->thread,alarm_thread) ||
- pthread_kill(alarm_data->thread, thr_client_alarm))
- {
-#ifdef MAIN
- printf("Warning: pthread_kill couldn't find thread!!!\n");
-#endif
- queue_remove(&alarm_queue,0); /* No thread. Remove alarm */
- if (!alarm_queue.elements)
- break;
- }
- else
- {
- alarm_data->expire_time=next;
- queue_replaced(&alarm_queue);
- }
- }
-#ifndef USE_ALARM_THREAD
- if (alarm_queue.elements)
- {
-#ifdef __bsdi__
- alarm(0); /* Remove old alarm */
-#endif
- alarm((uint) (alarm_data->expire_time-now));
- next_alarm_expire_time= alarm_data->expire_time;
- }
-#endif
- }
- }
- else
- {
- /*
- Ensure that next time we call thr_alarm(), we will schedule a new alarm
- */
- next_alarm_expire_time= ~(time_t) 0;
- }
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Schedule all alarms now and optionally free all structures
-
- SYNPOSIS
- end_thr_alarm()
- free_structures Set to 1 if we should free memory used for
- the alarm queue.
- When we call this we should KNOW that there
- is no active alarms
- IMPLEMENTATION
- Set alarm_abort to -1 which will change the behavior of alarms as follows:
- - All old alarms will be rescheduled at once
- - All new alarms will be rescheduled to one second
-*/
-
-void end_thr_alarm(my_bool free_structures)
-{
- DBUG_ENTER("end_thr_alarm");
- if (alarm_aborted != 1) /* If memory not freed */
- {
- mysql_mutex_lock(&LOCK_alarm);
- DBUG_PRINT("info",("Resheduling %d waiting alarms",alarm_queue.elements));
- alarm_aborted= -1; /* mark aborted */
- if (alarm_queue.elements || (alarm_thread_running && free_structures))
- {
- if (pthread_equal(pthread_self(),alarm_thread))
- alarm(1); /* Shut down everything soon */
- else
- reschedule_alarms();
- }
- if (free_structures)
- {
- struct timespec abstime;
-
- DBUG_ASSERT(!alarm_queue.elements);
-
- /* Wait until alarm thread dies */
- set_timespec(abstime, 10); /* Wait up to 10 seconds */
- while (alarm_thread_running)
- {
- int error= mysql_cond_timedwait(&COND_alarm, &LOCK_alarm, &abstime);
- if (error == ETIME || error == ETIMEDOUT)
- break; /* Don't wait forever */
- }
- delete_queue(&alarm_queue);
- alarm_aborted= 1;
- mysql_mutex_unlock(&LOCK_alarm);
- if (!alarm_thread_running) /* Safety */
- {
- mysql_mutex_destroy(&LOCK_alarm);
- mysql_cond_destroy(&COND_alarm);
- }
- }
- else
- mysql_mutex_unlock(&LOCK_alarm);
- }
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Remove another thread from the alarm
-*/
-
-void thr_alarm_kill(my_thread_id thread_id)
-{
- uint i;
- if (alarm_aborted)
- return;
- mysql_mutex_lock(&LOCK_alarm);
- for (i=0 ; i < alarm_queue.elements ; i++)
- {
- if (((ALARM*) queue_element(&alarm_queue,i))->thread_id == thread_id)
- {
- ALARM *tmp=(ALARM*) queue_remove(&alarm_queue,i);
- tmp->expire_time=0;
- queue_insert(&alarm_queue,(uchar*) tmp);
- reschedule_alarms();
- break;
- }
- }
- mysql_mutex_unlock(&LOCK_alarm);
-}
-
-
-void thr_alarm_info(ALARM_INFO *info)
-{
- mysql_mutex_lock(&LOCK_alarm);
- info->next_alarm_time= 0;
- info->max_used_alarms= max_used_alarms;
- if ((info->active_alarms= alarm_queue.elements))
- {
- ulong now=(ulong) my_time(0);
- long time_diff;
- ALARM *alarm_data= (ALARM*) queue_top(&alarm_queue);
- time_diff= (long) (alarm_data->expire_time - now);
- info->next_alarm_time= (ulong) (time_diff < 0 ? 0 : time_diff);
- }
- mysql_mutex_unlock(&LOCK_alarm);
-}
-
-/*
- This is here for thread to get interruptet from read/write/fcntl
- ARGSUSED
-*/
-
-
-static sig_handler thread_alarm(int sig __attribute__((unused)))
-{
-#ifdef MAIN
- printf("thread_alarm\n"); fflush(stdout);
-#endif
-#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
- my_sigset(sig,thread_alarm); /* int. thread system calls */
-#endif
-}
-
-
-#ifdef HAVE_TIMESPEC_TS_SEC
-#define tv_sec ts_sec
-#define tv_nsec ts_nsec
-#endif
-
-/* set up a alarm thread with uses 'sleep' to sleep between alarms */
-
-#ifdef USE_ALARM_THREAD
-static void *alarm_handler(void *arg __attribute__((unused)))
-{
- int error;
- struct timespec abstime;
-#ifdef MAIN
- puts("Starting alarm thread");
-#endif
- my_thread_init();
- alarm_thread_running= 1;
- mysql_mutex_lock(&LOCK_alarm);
- for (;;)
- {
- if (alarm_queue.elements)
- {
- ulong sleep_time,now= my_time(0);
- if (alarm_aborted)
- sleep_time=now+1;
- else
- sleep_time= ((ALARM*) queue_top(&alarm_queue))->expire_time;
- if (sleep_time > now)
- {
- abstime.tv_sec=sleep_time;
- abstime.tv_nsec=0;
- next_alarm_expire_time= sleep_time;
- if ((error= mysql_cond_timedwait(&COND_alarm, &LOCK_alarm, &abstime)) &&
- error != ETIME && error != ETIMEDOUT)
- {
-#ifdef MAIN
- printf("Got error: %d from ptread_cond_timedwait (errno: %d)\n",
- error,errno);
-#endif
- }
- }
- }
- else if (alarm_aborted == -1)
- break;
- else
- {
- next_alarm_expire_time= ~ (time_t) 0;
- if ((error= mysql_cond_wait(&COND_alarm, &LOCK_alarm)))
- {
-#ifdef MAIN
- printf("Got error: %d from ptread_cond_wait (errno: %d)\n",
- error,errno);
-#endif
- }
- }
- process_alarm(0);
- }
- bzero((char*) &alarm_thread,sizeof(alarm_thread)); /* For easy debugging */
- alarm_thread_running= 0;
- mysql_cond_signal(&COND_alarm);
- mysql_mutex_unlock(&LOCK_alarm);
- pthread_exit(0);
- return 0; /* Impossible */
-}
-#endif /* USE_ALARM_THREAD */
-
-/*****************************************************************************
- thr_alarm for win95
-*****************************************************************************/
-
-#else /* __WIN__ */
-
-void thr_alarm_kill(my_thread_id thread_id)
-{
- /* Can't do this yet */
-}
-
-sig_handler process_alarm(int sig __attribute__((unused)))
-{
- /* Can't do this yet */
-}
-
-
-my_bool thr_alarm(thr_alarm_t *alrm, uint sec, ALARM *alarm)
-{
- (*alrm)= &alarm->alarmed;
- if (alarm_aborted)
- {
- alarm->alarmed.crono=0;
- return 1;
- }
- if (!(alarm->alarmed.crono=SetTimer((HWND) NULL,0, sec*1000,
- (TIMERPROC) NULL)))
- return 1;
- return 0;
-}
-
-
-my_bool thr_got_alarm(thr_alarm_t *alrm_ptr)
-{
- thr_alarm_t alrm= *alrm_ptr;
- MSG msg;
- if (alrm->crono)
- {
- PeekMessage(&msg,NULL,WM_TIMER,WM_TIMER,PM_REMOVE) ;
- if (msg.message == WM_TIMER || alarm_aborted)
- {
- KillTimer(NULL, alrm->crono);
- alrm->crono = 0;
- }
- }
- return !alrm->crono || alarm_aborted;
-}
-
-
-void thr_end_alarm(thr_alarm_t *alrm_ptr)
-{
- thr_alarm_t alrm= *alrm_ptr;
- /* alrm may be zero if thr_alarm aborted with an error */
- if (alrm && alrm->crono)
-
- {
- KillTimer(NULL, alrm->crono);
- alrm->crono = 0;
- }
-}
-
-void end_thr_alarm(my_bool free_structures)
-{
- DBUG_ENTER("end_thr_alarm");
- alarm_aborted=1; /* No more alarms */
- DBUG_VOID_RETURN;
-}
-
-void init_thr_alarm(uint max_alarm)
-{
- DBUG_ENTER("init_thr_alarm");
- alarm_aborted=0; /* Yes, Gimmie alarms */
- DBUG_VOID_RETURN;
-}
-
-void thr_alarm_info(ALARM_INFO *info)
-{
- bzero((char*) info, sizeof(*info));
-}
-
-void resize_thr_alarm(uint max_alarms)
-{
-}
-
-#endif /* __WIN__ */
-
-#endif
-
-/****************************************************************************
- Handling of test case (when compiled with -DMAIN)
-***************************************************************************/
-
-#ifdef MAIN
-#if !defined(DONT_USE_THR_ALARM)
-
-static mysql_cond_t COND_thread_count;
-static mysql_mutex_t LOCK_thread_count;
-static uint thread_count;
-
-#ifdef HPUX10
-typedef int * fd_set_ptr;
-#else
-typedef fd_set * fd_set_ptr;
-#endif /* HPUX10 */
-
-static void *test_thread(void *arg)
-{
- int i,param=*((int*) arg),wait_time,retry;
- time_t start_time;
- thr_alarm_t got_alarm;
- fd_set fd;
- FD_ZERO(&fd);
- my_thread_init();
- printf("Thread %d (%s) started\n",param,my_thread_name()); fflush(stdout);
- for (i=1 ; i <= 10 ; i++)
- {
- wait_time=param ? 11-i : i;
- start_time= my_time(0);
- if (thr_alarm(&got_alarm,wait_time,0))
- {
- printf("Thread: %s Alarms aborted\n",my_thread_name());
- break;
- }
- if (wait_time == 3)
- {
- printf("Thread: %s Simulation of no alarm needed\n",my_thread_name());
- fflush(stdout);
- }
- else
- {
- for (retry=0 ; !thr_got_alarm(&got_alarm) && retry < 10 ; retry++)
- {
- printf("Thread: %s Waiting %d sec\n",my_thread_name(),wait_time);
- select(0,(fd_set_ptr) &fd,0,0,0);
- }
- if (!thr_got_alarm(&got_alarm))
- {
- printf("Thread: %s didn't get an alarm. Aborting!\n",
- my_thread_name());
- break;
- }
- if (wait_time == 7)
- { /* Simulate alarm-miss */
- fd_set readFDs;
- uint max_connection=fileno(stdin);
- FD_ZERO(&readFDs);
- FD_SET(max_connection,&readFDs);
- retry=0;
- for (;;)
- {
- printf("Thread: %s Simulating alarm miss\n",my_thread_name());
- fflush(stdout);
- if (select(max_connection+1, (fd_set_ptr) &readFDs,0,0,0) < 0)
- {
- if (errno == EINTR)
- break; /* Got new interrupt */
- printf("Got errno: %d from select. Retrying..\n",errno);
- if (retry++ >= 3)
- {
- printf("Warning: Interrupt of select() doesn't set errno!\n");
- break;
- }
- }
- else /* This shouldn't happen */
- {
- if (!FD_ISSET(max_connection,&readFDs))
- {
- printf("Select interrupted, but errno not set\n");
- fflush(stdout);
- if (retry++ >= 3)
- break;
- continue;
- }
- (void) getchar(); /* Somebody was playing */
- }
- }
- }
- }
- printf("Thread: %s Slept for %d (%d) sec\n",my_thread_name(),
- (int) (my_time(0)-start_time), wait_time); fflush(stdout);
- thr_end_alarm(&got_alarm);
- fflush(stdout);
- }
- mysql_mutex_lock(&LOCK_thread_count);
- thread_count--;
- mysql_cond_signal(&COND_thread_count); /* Tell main we are ready */
- mysql_mutex_unlock(&LOCK_thread_count);
- free((uchar*) arg);
- return 0;
-}
-
-#ifdef USE_ONE_SIGNAL_HAND
-static sig_handler print_signal_warning(int sig)
-{
- printf("Warning: Got signal %d from thread %s\n",sig,my_thread_name());
- fflush(stdout);
-#ifdef SIGNAL_HANDLER_RESET_ON_DELIVERY
- my_sigset(sig,print_signal_warning); /* int. thread system calls */
-#endif
- if (sig == SIGALRM)
- alarm(2); /* reschedule alarm */
-}
-#endif /* USE_ONE_SIGNAL_HAND */
-
-
-static void *signal_hand(void *arg __attribute__((unused)))
-{
- sigset_t set;
- int sig,error,err_count=0;;
-
- my_thread_init();
- pthread_detach_this_thread();
- init_thr_alarm(10); /* Setup alarm handler */
- mysql_mutex_lock(&LOCK_thread_count); /* Required by bsdi */
- mysql_cond_signal(&COND_thread_count); /* Tell main we are ready */
- mysql_mutex_unlock(&LOCK_thread_count);
-
- sigemptyset(&set); /* Catch all signals */
- sigaddset(&set,SIGINT);
- sigaddset(&set,SIGQUIT);
- sigaddset(&set,SIGTERM);
- sigaddset(&set,SIGHUP);
-#ifdef SIGTSTP
- sigaddset(&set,SIGTSTP);
-#endif
-#ifdef USE_ONE_SIGNAL_HAND
- sigaddset(&set,THR_SERVER_ALARM); /* For alarms */
- puts("Starting signal and alarm handling thread");
-#else
- puts("Starting signal handling thread");
-#endif
- printf("server alarm: %d thread alarm: %d\n",
- THR_SERVER_ALARM, thr_client_alarm);
- DBUG_PRINT("info",("Starting signal and alarm handling thread"));
- for(;;)
- {
- while ((error=my_sigwait(&set,&sig)) == EINTR)
- printf("sigwait restarted\n");
- if (error)
- {
- fprintf(stderr,"Got error %d from sigwait\n",error);
- if (err_count++ > 5)
- exit(1); /* Too many errors in test */
- continue;
- }
-#ifdef USE_ONE_SIGNAL_HAND
- if (sig != THR_SERVER_ALARM)
-#endif
- printf("Main thread: Got signal %d\n",sig);
- switch (sig) {
- case SIGINT:
- case SIGQUIT:
- case SIGTERM:
- case SIGHUP:
- printf("Aborting nicely\n");
- end_thr_alarm(0);
- break;
-#ifdef SIGTSTP
- case SIGTSTP:
- printf("Aborting\n");
- exit(1);
- return 0; /* Keep some compilers happy */
-#endif
-#ifdef USE_ONE_SIGNAL_HAND
- case THR_SERVER_ALARM:
- process_alarm(sig);
- break;
-#endif
- }
- }
-}
-
-
-int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-{
- pthread_t tid;
- pthread_attr_t thr_attr;
- int i,*param,error;
- sigset_t set;
- ALARM_INFO alarm_info;
- MY_INIT(argv[0]);
-
- if (argc > 1 && argv[1][0] == '-' && argv[1][1] == '#')
- {
- DBUG_PUSH(argv[1]+2);
- }
- mysql_mutex_init(0, &LOCK_thread_count, MY_MUTEX_INIT_FAST);
- mysql_cond_init(0, &COND_thread_count, NULL);
-
- /* Start a alarm handling thread */
- sigemptyset(&set);
- sigaddset(&set,SIGINT);
- sigaddset(&set,SIGQUIT);
- sigaddset(&set,SIGTERM);
- sigaddset(&set,SIGHUP);
- signal(SIGTERM,SIG_DFL); /* If it's blocked by parent */
-#ifdef SIGTSTP
- sigaddset(&set,SIGTSTP);
-#endif
- sigaddset(&set,THR_SERVER_ALARM);
- sigdelset(&set, thr_client_alarm);
- (void) pthread_sigmask(SIG_SETMASK,&set,NULL);
-
- pthread_attr_init(&thr_attr);
- pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
- pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED);
- pthread_attr_setstacksize(&thr_attr,65536L);
-
- /* Start signal thread and wait for it to start */
- mysql_mutex_lock(&LOCK_thread_count);
- mysql_thread_create(0,
- &tid, &thr_attr, signal_hand, NULL);
- mysql_cond_wait(&COND_thread_count, &LOCK_thread_count);
- mysql_mutex_unlock(&LOCK_thread_count);
- DBUG_PRINT("info",("signal thread created"));
-
- thr_setconcurrency(3);
- pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_PROCESS);
- printf("Main thread: %s\n",my_thread_name());
- for (i=0 ; i < 2 ; i++)
- {
- param=(int*) malloc(sizeof(int));
- *param= i;
- mysql_mutex_lock(&LOCK_thread_count);
- if ((error= mysql_thread_create(0,
- &tid, &thr_attr, test_thread,
- (void*) param)))
- {
- printf("Can't create thread %d, error: %d\n",i,error);
- exit(1);
- }
- thread_count++;
- mysql_mutex_unlock(&LOCK_thread_count);
- }
-
- pthread_attr_destroy(&thr_attr);
- mysql_mutex_lock(&LOCK_thread_count);
- thr_alarm_info(&alarm_info);
- printf("Main_thread: Alarms: %u max_alarms: %u next_alarm_time: %lu\n",
- alarm_info.active_alarms, alarm_info.max_used_alarms,
- alarm_info.next_alarm_time);
- while (thread_count)
- {
- mysql_cond_wait(&COND_thread_count, &LOCK_thread_count);
- if (thread_count == 1)
- {
- printf("Calling end_thr_alarm. This should cancel the last thread\n");
- end_thr_alarm(0);
- }
- }
- mysql_mutex_unlock(&LOCK_thread_count);
- thr_alarm_info(&alarm_info);
- end_thr_alarm(1);
- printf("Main_thread: Alarms: %u max_alarms: %u next_alarm_time: %lu\n",
- alarm_info.active_alarms, alarm_info.max_used_alarms,
- alarm_info.next_alarm_time);
- printf("Test succeeded\n");
- return 0;
-}
-
-#else /* !defined(DONT_USE_ALARM_THREAD) */
-
-int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-{
- printf("thr_alarm disabled with DONT_USE_THR_ALARM\n");
- exit(1);
-}
-
-#endif /* !defined(DONT_USE_ALARM_THREAD) */
-#endif /* MAIN */
diff --git a/dep/mysqllite/mysys/thr_lock.c b/dep/mysqllite/mysys/thr_lock.c
deleted file mode 100644
index 2ab283e068d..00000000000
--- a/dep/mysqllite/mysys/thr_lock.c
+++ /dev/null
@@ -1,1688 +0,0 @@
-/* Copyright (C) 2000 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
-Read and write locks for Posix threads. All tread must acquire
-all locks it needs through thr_multi_lock() to avoid dead-locks.
-A lock consists of a master lock (THR_LOCK), and lock instances
-(THR_LOCK_DATA).
-Any thread can have any number of lock instances (read and write:s) on
-any lock. All lock instances must be freed.
-Locks are prioritized according to:
-
-The current lock types are:
-
-TL_READ # Low priority read
-TL_READ_WITH_SHARED_LOCKS
-TL_READ_HIGH_PRIORITY # High priority read
-TL_READ_NO_INSERT # Read without concurrent inserts
-TL_WRITE_ALLOW_WRITE # Write lock that allows other writers
-TL_WRITE_CONCURRENT_INSERT
- # Insert that can be mixed when selects
-TL_WRITE_DELAYED # Used by delayed insert
- # Allows lower locks to take over
-TL_WRITE_LOW_PRIORITY # Low priority write
-TL_WRITE # High priority write
-TL_WRITE_ONLY # High priority write
- # Abort all new lock request with an error
-
-Locks are prioritized according to:
-
-WRITE_ALLOW_WRITE, WRITE_CONCURRENT_INSERT, WRITE_DELAYED,
-WRITE_LOW_PRIORITY, READ, WRITE, READ_HIGH_PRIORITY and WRITE_ONLY
-
-Locks in the same privilege level are scheduled in first-in-first-out order.
-
-To allow concurrent read/writes locks, with 'WRITE_CONCURRENT_INSERT' one
-should put a pointer to the following functions in the lock structure:
-(If the pointer is zero (default), the function is not called)
-
-check_status:
- Before giving a lock of type TL_WRITE_CONCURRENT_INSERT,
- we check if this function exists and returns 0.
- If not, then the lock is upgraded to TL_WRITE_LOCK
- In MyISAM this is a simple check if the insert can be done
- at the end of the datafile.
-update_status:
- Before a write lock is released, this function is called.
- In MyISAM this functions updates the count and length of the datafile
-get_status:
- When one gets a lock this functions is called.
- In MyISAM this stores the number of rows and size of the datafile
- for concurrent reads.
-
-The lock algorithm allows one to have one TL_WRITE_CONCURRENT_INSERT or
-one TL_WRITE_DELAYED lock at the same time as multiple read locks.
-
-*/
-
-#if !defined(MAIN) && !defined(DBUG_OFF) && !defined(EXTRA_DEBUG)
-#define FORCE_DBUG_OFF
-#endif
-
-#include "mysys_priv.h"
-
-#include "thr_lock.h"
-#include <m_string.h>
-#include <errno.h>
-
-my_bool thr_lock_inited=0;
-ulong locks_immediate = 0L, locks_waited = 0L;
-enum thr_lock_type thr_upgraded_concurrent_insert_lock = TL_WRITE;
-
-/* The following constants are only for debug output */
-#define MAX_THREADS 100
-#define MAX_LOCKS 100
-
-
-LIST *thr_lock_thread_list; /* List of threads in use */
-ulong max_write_lock_count= ~(ulong) 0L;
-
-static void (*before_lock_wait)(void)= 0;
-static void (*after_lock_wait)(void)= 0;
-
-void thr_set_lock_wait_callback(void (*before_wait)(void),
- void (*after_wait)(void))
-{
- before_lock_wait= before_wait;
- after_lock_wait= after_wait;
-}
-
-static inline mysql_cond_t *get_cond(void)
-{
- return &my_thread_var->suspend;
-}
-
-/*
-** For the future (now the thread specific cond is alloced by my_pthread.c)
-*/
-
-my_bool init_thr_lock()
-{
- thr_lock_inited=1;
- return 0;
-}
-
-static inline my_bool
-thr_lock_owner_equal(THR_LOCK_INFO *rhs, THR_LOCK_INFO *lhs)
-{
- return rhs == lhs;
-}
-
-
-#ifdef EXTRA_DEBUG
-#define MAX_FOUND_ERRORS 10 /* Report 10 first errors */
-static uint found_errors=0;
-
-static int check_lock(struct st_lock_list *list, const char* lock_type,
- const char *where, my_bool same_owner, my_bool no_cond)
-{
- THR_LOCK_DATA *data,**prev;
- uint count=0;
- THR_LOCK_INFO *UNINIT_VAR(first_owner);
-
- prev= &list->data;
- if (list->data)
- {
- enum thr_lock_type last_lock_type=list->data->type;
-
- if (same_owner && list->data)
- first_owner= list->data->owner;
- for (data=list->data; data && count++ < MAX_LOCKS ; data=data->next)
- {
- if (data->type != last_lock_type)
- last_lock_type=TL_IGNORE;
- if (data->prev != prev)
- {
- fprintf(stderr,
- "Warning: prev link %d didn't point at previous lock at %s: %s\n",
- count, lock_type, where);
- return 1;
- }
- if (same_owner &&
- !thr_lock_owner_equal(data->owner, first_owner) &&
- last_lock_type != TL_WRITE_ALLOW_WRITE)
- {
- fprintf(stderr,
- "Warning: Found locks from different threads in %s: %s\n",
- lock_type,where);
- return 1;
- }
- if (no_cond && data->cond)
- {
- fprintf(stderr,
- "Warning: Found active lock with not reset cond %s: %s\n",
- lock_type,where);
- return 1;
- }
- prev= &data->next;
- }
- if (data)
- {
- fprintf(stderr,"Warning: found too many locks at %s: %s\n",
- lock_type,where);
- return 1;
- }
- }
- if (prev != list->last)
- {
- fprintf(stderr,"Warning: last didn't point at last lock at %s: %s\n",
- lock_type, where);
- return 1;
- }
- return 0;
-}
-
-
-static void check_locks(THR_LOCK *lock, const char *where,
- my_bool allow_no_locks)
-{
- uint old_found_errors=found_errors;
- DBUG_ENTER("check_locks");
-
- if (found_errors < MAX_FOUND_ERRORS)
- {
- if (check_lock(&lock->write,"write",where,1,1) |
- check_lock(&lock->write_wait,"write_wait",where,0,0) |
- check_lock(&lock->read,"read",where,0,1) |
- check_lock(&lock->read_wait,"read_wait",where,0,0))
- found_errors++;
-
- if (found_errors < MAX_FOUND_ERRORS)
- {
- uint count=0;
- THR_LOCK_DATA *data;
- for (data=lock->read.data ; data ; data=data->next)
- {
- if ((int) data->type == (int) TL_READ_NO_INSERT)
- count++;
- /* Protect against infinite loop. */
- DBUG_ASSERT(count <= lock->read_no_write_count);
- }
- if (count != lock->read_no_write_count)
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': Locks read_no_write_count was %u when it should have been %u\n", where, lock->read_no_write_count,count);
- }
-
- if (!lock->write.data)
- {
- if (!allow_no_locks && !lock->read.data &&
- (lock->write_wait.data || lock->read_wait.data))
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': No locks in use but locks are in wait queue\n",
- where);
- }
- if (!lock->write_wait.data)
- {
- if (!allow_no_locks && lock->read_wait.data)
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': No write locks and waiting read locks\n",
- where);
- }
- }
- else
- {
- if (!allow_no_locks &&
- (((lock->write_wait.data->type == TL_WRITE_CONCURRENT_INSERT ||
- lock->write_wait.data->type == TL_WRITE_ALLOW_WRITE) &&
- !lock->read_no_write_count) ||
- (lock->write_wait.data->type == TL_WRITE_DELAYED &&
- !lock->read.data)))
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': Write lock %d waiting while no exclusive read locks\n",where,(int) lock->write_wait.data->type);
- }
- }
- }
- else
- { /* Have write lock */
- if (lock->write_wait.data)
- {
- if (!allow_no_locks &&
- lock->write.data->type == TL_WRITE_ALLOW_WRITE &&
- lock->write_wait.data->type == TL_WRITE_ALLOW_WRITE)
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': Found WRITE_ALLOW_WRITE lock waiting for WRITE_ALLOW_WRITE lock\n",
- where);
- }
- }
- if (lock->read.data)
- {
- if (!thr_lock_owner_equal(lock->write.data->owner,
- lock->read.data->owner) &&
- ((lock->write.data->type > TL_WRITE_DELAYED &&
- lock->write.data->type != TL_WRITE_ONLY) ||
- ((lock->write.data->type == TL_WRITE_CONCURRENT_INSERT ||
- lock->write.data->type == TL_WRITE_ALLOW_WRITE) &&
- lock->read_no_write_count)))
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': Found lock of type %d that is write and read locked\n",
- where, lock->write.data->type);
- DBUG_PRINT("warning",("At '%s': Found lock of type %d that is write and read locked\n",
- where, lock->write.data->type));
-
- }
- }
- if (lock->read_wait.data)
- {
- if (!allow_no_locks && lock->write.data->type <= TL_WRITE_DELAYED &&
- lock->read_wait.data->type <= TL_READ_HIGH_PRIORITY)
- {
- found_errors++;
- fprintf(stderr,
- "Warning at '%s': Found read lock of type %d waiting for write lock of type %d\n",
- where,
- (int) lock->read_wait.data->type,
- (int) lock->write.data->type);
- }
- }
- }
- }
- if (found_errors != old_found_errors)
- {
- DBUG_PRINT("error",("Found wrong lock"));
- }
- }
- DBUG_VOID_RETURN;
-}
-
-#else /* EXTRA_DEBUG */
-#define check_locks(A,B,C)
-#endif
-
-
- /* Initialize a lock */
-
-void thr_lock_init(THR_LOCK *lock)
-{
- DBUG_ENTER("thr_lock_init");
- bzero((char*) lock,sizeof(*lock));
- mysql_mutex_init(key_THR_LOCK_mutex, &lock->mutex, MY_MUTEX_INIT_FAST);
- lock->read.last= &lock->read.data;
- lock->read_wait.last= &lock->read_wait.data;
- lock->write_wait.last= &lock->write_wait.data;
- lock->write.last= &lock->write.data;
-
- mysql_mutex_lock(&THR_LOCK_lock); /* Add to locks in use */
- lock->list.data=(void*) lock;
- thr_lock_thread_list=list_add(thr_lock_thread_list,&lock->list);
- mysql_mutex_unlock(&THR_LOCK_lock);
- DBUG_VOID_RETURN;
-}
-
-
-void thr_lock_delete(THR_LOCK *lock)
-{
- DBUG_ENTER("thr_lock_delete");
- mysql_mutex_lock(&THR_LOCK_lock);
- thr_lock_thread_list=list_delete(thr_lock_thread_list,&lock->list);
- mysql_mutex_unlock(&THR_LOCK_lock);
- mysql_mutex_destroy(&lock->mutex);
- DBUG_VOID_RETURN;
-}
-
-
-void thr_lock_info_init(THR_LOCK_INFO *info)
-{
- struct st_my_thread_var *tmp= my_thread_var;
- info->thread= tmp->pthread_self;
- info->thread_id= tmp->id;
-}
-
- /* Initialize a lock instance */
-
-void thr_lock_data_init(THR_LOCK *lock,THR_LOCK_DATA *data, void *param)
-{
- data->lock=lock;
- data->type=TL_UNLOCK;
- data->owner= 0; /* no owner yet */
- data->status_param=param;
- data->cond=0;
-}
-
-
-static inline my_bool
-has_old_lock(THR_LOCK_DATA *data, THR_LOCK_INFO *owner)
-{
- for ( ; data ; data=data->next)
- {
- if (thr_lock_owner_equal(data->owner, owner))
- return 1; /* Already locked by thread */
- }
- return 0;
-}
-
-static inline my_bool have_specific_lock(THR_LOCK_DATA *data,
- enum thr_lock_type type)
-{
- for ( ; data ; data=data->next)
- {
- if (data->type == type)
- return 1;
- }
- return 0;
-}
-
-
-static void wake_up_waiters(THR_LOCK *lock);
-
-
-static enum enum_thr_lock_result
-wait_for_lock(struct st_lock_list *wait, THR_LOCK_DATA *data,
- my_bool in_wait_list, ulong lock_wait_timeout)
-{
- struct st_my_thread_var *thread_var= my_thread_var;
- mysql_cond_t *cond= &thread_var->suspend;
- struct timespec wait_timeout;
- enum enum_thr_lock_result result= THR_LOCK_ABORTED;
- const char *old_proc_info;
- DBUG_ENTER("wait_for_lock");
-
- /*
- One can use this to signal when a thread is going to wait for a lock.
- See debug_sync.cc.
-
- Beware of waiting for a signal here. The lock has aquired its mutex.
- While waiting on a signal here, the locking thread could not aquire
- the mutex to release the lock. One could lock up the table
- completely.
-
- In detail it works so: When thr_lock() tries to acquire a table
- lock, it locks the lock->mutex, checks if it can have the lock, and
- if not, it calls wait_for_lock(). Here it unlocks the table lock
- while waiting on a condition. The sync point is located before this
- wait for condition. If we have a waiting action here, we hold the
- the table locks mutex all the time. Any attempt to look at the table
- lock by another thread blocks it immediately on lock->mutex. This
- can easily become an unexpected and unobvious blockage. So be
- warned: Do not request a WAIT_FOR action for the 'wait_for_lock'
- sync point unless you really know what you do.
- */
- DEBUG_SYNC_C("wait_for_lock");
-
- if (!in_wait_list)
- {
- (*wait->last)=data; /* Wait for lock */
- data->prev= wait->last;
- wait->last= &data->next;
- }
-
- statistic_increment(locks_waited, &THR_LOCK_lock);
-
- /* Set up control struct to allow others to abort locks */
- thread_var->current_mutex= &data->lock->mutex;
- thread_var->current_cond= cond;
- data->cond= cond;
-
- old_proc_info= proc_info_hook(NULL, "Waiting for table level lock",
- __func__, __FILE__, __LINE__);
-
- /*
- Since before_lock_wait potentially can create more threads to
- scheduler work for, we don't want to call the before_lock_wait
- callback unless it will really start to wait.
-
- For similar reasons, we do not want to call before_lock_wait and
- after_lock_wait for each lap around the loop, so we restrict
- ourselves to call it before_lock_wait once before starting to wait
- and once after the thread has exited the wait loop.
- */
- if ((!thread_var->abort || in_wait_list) && before_lock_wait)
- (*before_lock_wait)();
-
- set_timespec(wait_timeout, lock_wait_timeout);
- while (!thread_var->abort || in_wait_list)
- {
- int rc= mysql_cond_timedwait(cond, &data->lock->mutex, &wait_timeout);
- /*
- We must break the wait if one of the following occurs:
- - the connection has been aborted (!thread_var->abort), but
- this is not a delayed insert thread (in_wait_list). For a delayed
- insert thread the proper action at shutdown is, apparently, to
- acquire the lock and complete the insert.
- - the lock has been granted (data->cond is set to NULL by the granter),
- or the waiting has been aborted (additionally data->type is set to
- TL_UNLOCK).
- - the wait has timed out (rc == ETIMEDOUT)
- Order of checks below is important to not report about timeout
- if the predicate is true.
- */
- if (data->cond == 0)
- {
- DBUG_PRINT("thr_lock", ("lock granted/aborted"));
- break;
- }
- if (rc == ETIMEDOUT || rc == ETIME)
- {
- /* purecov: begin inspected */
- DBUG_PRINT("thr_lock", ("lock timed out"));
- result= THR_LOCK_WAIT_TIMEOUT;
- break;
- /* purecov: end */
- }
- }
-
- /*
- We call the after_lock_wait callback once the wait loop has
- finished.
- */
- if (after_lock_wait)
- (*after_lock_wait)();
-
- DBUG_PRINT("thr_lock", ("aborted: %d in_wait_list: %d",
- thread_var->abort, in_wait_list));
-
- if (data->cond || data->type == TL_UNLOCK)
- {
- if (data->cond) /* aborted or timed out */
- {
- if (((*data->prev)=data->next)) /* remove from wait-list */
- data->next->prev= data->prev;
- else
- wait->last=data->prev;
- data->type= TL_UNLOCK; /* No lock */
- check_locks(data->lock, "killed or timed out wait_for_lock", 1);
- wake_up_waiters(data->lock);
- }
- else
- {
- DBUG_PRINT("thr_lock", ("lock aborted"));
- check_locks(data->lock, "aborted wait_for_lock", 0);
- }
- }
- else
- {
- result= THR_LOCK_SUCCESS;
- if (data->lock->get_status)
- (*data->lock->get_status)(data->status_param, 0);
- check_locks(data->lock,"got wait_for_lock",0);
- }
- mysql_mutex_unlock(&data->lock->mutex);
-
- /* The following must be done after unlock of lock->mutex */
- mysql_mutex_lock(&thread_var->mutex);
- thread_var->current_mutex= 0;
- thread_var->current_cond= 0;
- mysql_mutex_unlock(&thread_var->mutex);
-
- proc_info_hook(NULL, old_proc_info, __func__, __FILE__, __LINE__);
-
- DBUG_RETURN(result);
-}
-
-
-enum enum_thr_lock_result
-thr_lock(THR_LOCK_DATA *data, THR_LOCK_INFO *owner,
- enum thr_lock_type lock_type, ulong lock_wait_timeout)
-{
- THR_LOCK *lock=data->lock;
- enum enum_thr_lock_result result= THR_LOCK_SUCCESS;
- struct st_lock_list *wait_queue;
- DBUG_ENTER("thr_lock");
-
- data->next=0;
- data->cond=0; /* safety */
- data->type=lock_type;
- data->owner= owner; /* Must be reset ! */
- mysql_mutex_lock(&lock->mutex);
- DBUG_PRINT("lock",("data: 0x%lx thread: 0x%lx lock: 0x%lx type: %d",
- (long) data, data->owner->thread_id,
- (long) lock, (int) lock_type));
- check_locks(lock,(uint) lock_type <= (uint) TL_READ_NO_INSERT ?
- "enter read_lock" : "enter write_lock",0);
- if ((int) lock_type <= (int) TL_READ_NO_INSERT)
- {
- /* Request for READ lock */
- if (lock->write.data)
- {
- /*
- We can allow a read lock even if there is already a
- write lock on the table if they are owned by the same
- thread or if they satisfy the following lock
- compatibility matrix:
-
- Request
- /-------
- H|++++ WRITE_ALLOW_WRITE
- e|+++- WRITE_CONCURRENT_INSERT
- l|++++ WRITE_DELAYED
- d ||||
- |||\= READ_NO_INSERT
- ||\ = READ_HIGH_PRIORITY
- |\ = READ_WITH_SHARED_LOCKS
- \ = READ
-
-
- + = Request can be satisified.
- - = Request cannot be satisified.
-
- READ_NO_INSERT and WRITE_ALLOW_WRITE should in principle
- be incompatible. However this will cause starvation of
- LOCK TABLE READ in InnoDB under high write load.
- See Bug#42147 for more information.
- */
-
- DBUG_PRINT("lock",("write locked 1 by thread: 0x%lx",
- lock->write.data->owner->thread_id));
- if (thr_lock_owner_equal(data->owner, lock->write.data->owner) ||
- (lock->write.data->type <= TL_WRITE_DELAYED &&
- (((int) lock_type <= (int) TL_READ_HIGH_PRIORITY) ||
- (lock->write.data->type != TL_WRITE_CONCURRENT_INSERT))))
- { /* Already got a write lock */
- (*lock->read.last)=data; /* Add to running FIFO */
- data->prev=lock->read.last;
- lock->read.last= &data->next;
- if (lock_type == TL_READ_NO_INSERT)
- lock->read_no_write_count++;
- check_locks(lock,"read lock with old write lock",0);
- if (lock->get_status)
- (*lock->get_status)(data->status_param, 0);
- statistic_increment(locks_immediate,&THR_LOCK_lock);
- goto end;
- }
- if (lock->write.data->type == TL_WRITE_ONLY)
- {
- /* We are not allowed to get a READ lock in this case */
- data->type=TL_UNLOCK;
- result= THR_LOCK_ABORTED; /* Can't wait for this one */
- goto end;
- }
- }
- else if (!lock->write_wait.data ||
- lock->write_wait.data->type <= TL_WRITE_LOW_PRIORITY ||
- lock_type == TL_READ_HIGH_PRIORITY ||
- has_old_lock(lock->read.data, data->owner)) /* Has old read lock */
- { /* No important write-locks */
- (*lock->read.last)=data; /* Add to running FIFO */
- data->prev=lock->read.last;
- lock->read.last= &data->next;
- if (lock->get_status)
- (*lock->get_status)(data->status_param, 0);
- if (lock_type == TL_READ_NO_INSERT)
- lock->read_no_write_count++;
- check_locks(lock,"read lock with no write locks",0);
- statistic_increment(locks_immediate,&THR_LOCK_lock);
- goto end;
- }
- /*
- We're here if there is an active write lock or no write
- lock but a high priority write waiting in the write_wait queue.
- In the latter case we should yield the lock to the writer.
- */
- wait_queue= &lock->read_wait;
- }
- else /* Request for WRITE lock */
- {
- if (lock_type == TL_WRITE_DELAYED)
- {
- if (lock->write.data && lock->write.data->type == TL_WRITE_ONLY)
- {
- data->type=TL_UNLOCK;
- result= THR_LOCK_ABORTED; /* Can't wait for this one */
- goto end;
- }
- if (lock->write.data || lock->read.data)
- {
- /* Add delayed write lock to write_wait queue, and return at once */
- (*lock->write_wait.last)=data;
- data->prev=lock->write_wait.last;
- lock->write_wait.last= &data->next;
- data->cond=get_cond();
- /*
- We don't have to do get_status here as we will do it when we change
- the delayed lock to a real write lock
- */
- statistic_increment(locks_immediate,&THR_LOCK_lock);
- goto end;
- }
- }
- else if (lock_type == TL_WRITE_CONCURRENT_INSERT && ! lock->check_status)
- data->type=lock_type= thr_upgraded_concurrent_insert_lock;
-
- if (lock->write.data) /* If there is a write lock */
- {
- if (lock->write.data->type == TL_WRITE_ONLY)
- {
- /* purecov: begin tested */
- /* Allow lock owner to bypass TL_WRITE_ONLY. */
- if (!thr_lock_owner_equal(data->owner, lock->write.data->owner))
- {
- /* We are not allowed to get a lock in this case */
- data->type=TL_UNLOCK;
- result= THR_LOCK_ABORTED; /* Can't wait for this one */
- goto end;
- }
- /* purecov: end */
- }
-
- /*
- The idea is to allow us to get a lock at once if we already have
- a write lock or if there is no pending write locks and if all
- write locks are of TL_WRITE_ALLOW_WRITE type.
-
- Note that, since lock requests for the same table are sorted in
- such way that requests with higher thr_lock_type value come first
- (with one exception (*)), lock being requested usually (**) has
- equal or "weaker" type than one which thread might have already
- acquired.
- *) The only exception to this rule is case when type of old lock
- is TL_WRITE_LOW_PRIORITY and type of new lock is changed inside
- of thr_lock() from TL_WRITE_CONCURRENT_INSERT to TL_WRITE since
- engine turns out to be not supporting concurrent inserts.
- Note that since TL_WRITE has the same compatibility rules as
- TL_WRITE_LOW_PRIORITY (their only difference is priority),
- it is OK to grant new lock without additional checks in such
- situation.
- **) The exceptions are situations when:
- - when old lock type is TL_WRITE_DELAYED
- But these should never happen within MySQL.
- Therefore it is OK to allow acquiring write lock on the table if
- this thread already holds some write lock on it.
-
- (INSERT INTO t1 VALUES (f1()), where f1() is stored function which
- tries to update t1, is an example of statement which requests two
- different types of write lock on the same table).
- */
- DBUG_ASSERT(! has_old_lock(lock->write.data, data->owner) ||
- ((lock_type <= lock->write.data->type ||
- (lock_type == TL_WRITE &&
- lock->write.data->type == TL_WRITE_LOW_PRIORITY)) &&
- lock->write.data->type != TL_WRITE_DELAYED));
-
- if ((lock_type == TL_WRITE_ALLOW_WRITE &&
- ! lock->write_wait.data &&
- lock->write.data->type == TL_WRITE_ALLOW_WRITE) ||
- has_old_lock(lock->write.data, data->owner))
- {
- /*
- We have already got a write lock or all locks are
- TL_WRITE_ALLOW_WRITE
- */
- DBUG_PRINT("info", ("write_wait.data: 0x%lx old_type: %d",
- (ulong) lock->write_wait.data,
- lock->write.data->type));
-
- (*lock->write.last)=data; /* Add to running fifo */
- data->prev=lock->write.last;
- lock->write.last= &data->next;
- check_locks(lock,"second write lock",0);
- if (data->lock->get_status)
- (*data->lock->get_status)(data->status_param, 0);
- statistic_increment(locks_immediate,&THR_LOCK_lock);
- goto end;
- }
- DBUG_PRINT("lock",("write locked 2 by thread: 0x%lx",
- lock->write.data->owner->thread_id));
- }
- else
- {
- DBUG_PRINT("info", ("write_wait.data: 0x%lx",
- (ulong) lock->write_wait.data));
- if (!lock->write_wait.data)
- { /* no scheduled write locks */
- my_bool concurrent_insert= 0;
- if (lock_type == TL_WRITE_CONCURRENT_INSERT)
- {
- concurrent_insert= 1;
- if ((*lock->check_status)(data->status_param))
- {
- concurrent_insert= 0;
- data->type=lock_type= thr_upgraded_concurrent_insert_lock;
- }
- }
-
- if (!lock->read.data ||
- (lock_type <= TL_WRITE_DELAYED &&
- ((lock_type != TL_WRITE_CONCURRENT_INSERT &&
- lock_type != TL_WRITE_ALLOW_WRITE) ||
- !lock->read_no_write_count)))
- {
- (*lock->write.last)=data; /* Add as current write lock */
- data->prev=lock->write.last;
- lock->write.last= &data->next;
- if (data->lock->get_status)
- (*data->lock->get_status)(data->status_param, concurrent_insert);
- check_locks(lock,"only write lock",0);
- statistic_increment(locks_immediate,&THR_LOCK_lock);
- goto end;
- }
- }
- DBUG_PRINT("lock",("write locked 3 by thread: 0x%lx type: %d",
- lock->read.data->owner->thread_id, data->type));
- }
- wait_queue= &lock->write_wait;
- }
- /* Can't get lock yet; Wait for it */
- DBUG_RETURN(wait_for_lock(wait_queue, data, 0, lock_wait_timeout));
-end:
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(result);
-}
-
-
-static inline void free_all_read_locks(THR_LOCK *lock,
- my_bool using_concurrent_insert)
-{
- THR_LOCK_DATA *data=lock->read_wait.data;
-
- check_locks(lock,"before freeing read locks",1);
-
- /* move all locks from read_wait list to read list */
- (*lock->read.last)=data;
- data->prev=lock->read.last;
- lock->read.last=lock->read_wait.last;
-
- /* Clear read_wait list */
- lock->read_wait.last= &lock->read_wait.data;
-
- do
- {
- mysql_cond_t *cond= data->cond;
- if ((int) data->type == (int) TL_READ_NO_INSERT)
- {
- if (using_concurrent_insert)
- {
- /*
- We can't free this lock;
- Link lock away from read chain back into read_wait chain
- */
- if (((*data->prev)=data->next))
- data->next->prev=data->prev;
- else
- lock->read.last=data->prev;
- *lock->read_wait.last= data;
- data->prev= lock->read_wait.last;
- lock->read_wait.last= &data->next;
- continue;
- }
- lock->read_no_write_count++;
- }
- /* purecov: begin inspected */
- DBUG_PRINT("lock",("giving read lock to thread: 0x%lx",
- data->owner->thread_id));
- /* purecov: end */
- data->cond=0; /* Mark thread free */
- mysql_cond_signal(cond);
- } while ((data=data->next));
- *lock->read_wait.last=0;
- if (!lock->read_wait.data)
- lock->write_lock_count=0;
- check_locks(lock,"after giving read locks",0);
-}
-
- /* Unlock lock and free next thread on same lock */
-
-void thr_unlock(THR_LOCK_DATA *data)
-{
- THR_LOCK *lock=data->lock;
- enum thr_lock_type lock_type=data->type;
- DBUG_ENTER("thr_unlock");
- DBUG_PRINT("lock",("data: 0x%lx thread: 0x%lx lock: 0x%lx",
- (long) data, data->owner->thread_id, (long) lock));
- mysql_mutex_lock(&lock->mutex);
- check_locks(lock,"start of release lock",0);
-
- if (((*data->prev)=data->next)) /* remove from lock-list */
- data->next->prev= data->prev;
- else if (lock_type <= TL_READ_NO_INSERT)
- lock->read.last=data->prev;
- else if (lock_type == TL_WRITE_DELAYED && data->cond)
- {
- /*
- This only happens in extreme circumstances when a
- write delayed lock that is waiting for a lock
- */
- lock->write_wait.last=data->prev; /* Put it on wait queue */
- }
- else
- lock->write.last=data->prev;
- if (lock_type >= TL_WRITE_CONCURRENT_INSERT)
- {
- if (lock->update_status)
- (*lock->update_status)(data->status_param);
- }
- else
- {
- if (lock->restore_status)
- (*lock->restore_status)(data->status_param);
- }
- if (lock_type == TL_READ_NO_INSERT)
- lock->read_no_write_count--;
- data->type=TL_UNLOCK; /* Mark unlocked */
- check_locks(lock,"after releasing lock",1);
- wake_up_waiters(lock);
- mysql_mutex_unlock(&lock->mutex);
- DBUG_VOID_RETURN;
-}
-
-
-/**
- @brief Wake up all threads which pending requests for the lock
- can be satisfied.
-
- @param lock Lock for which threads should be woken up
-
-*/
-
-static void wake_up_waiters(THR_LOCK *lock)
-{
- THR_LOCK_DATA *data;
- enum thr_lock_type lock_type;
-
- DBUG_ENTER("wake_up_waiters");
-
- if (!lock->write.data) /* If no active write locks */
- {
- data=lock->write_wait.data;
- if (!lock->read.data) /* If no more locks in use */
- {
- /* Release write-locks with TL_WRITE or TL_WRITE_ONLY priority first */
- if (data &&
- (data->type != TL_WRITE_LOW_PRIORITY || !lock->read_wait.data ||
- lock->read_wait.data->type < TL_READ_HIGH_PRIORITY))
- {
- if (lock->write_lock_count++ > max_write_lock_count)
- {
- /* Too many write locks in a row; Release all waiting read locks */
- lock->write_lock_count=0;
- if (lock->read_wait.data)
- {
- DBUG_PRINT("info",("Freeing all read_locks because of max_write_lock_count"));
- free_all_read_locks(lock,0);
- goto end;
- }
- }
- for (;;)
- {
- if (((*data->prev)=data->next)) /* remove from wait-list */
- data->next->prev= data->prev;
- else
- lock->write_wait.last=data->prev;
- (*lock->write.last)=data; /* Put in execute list */
- data->prev=lock->write.last;
- data->next=0;
- lock->write.last= &data->next;
- if (data->type == TL_WRITE_CONCURRENT_INSERT &&
- (*lock->check_status)(data->status_param))
- data->type=TL_WRITE; /* Upgrade lock */
- /* purecov: begin inspected */
- DBUG_PRINT("lock",("giving write lock of type %d to thread: 0x%lx",
- data->type, data->owner->thread_id));
- /* purecov: end */
- {
- mysql_cond_t *cond= data->cond;
- data->cond=0; /* Mark thread free */
- mysql_cond_signal(cond); /* Start waiting thread */
- }
- if (data->type != TL_WRITE_ALLOW_WRITE ||
- !lock->write_wait.data ||
- lock->write_wait.data->type != TL_WRITE_ALLOW_WRITE)
- break;
- data=lock->write_wait.data; /* Free this too */
- }
- if (data->type >= TL_WRITE_LOW_PRIORITY)
- goto end;
- /* Release possible read locks together with the write lock */
- }
- if (lock->read_wait.data)
- free_all_read_locks(lock,
- data &&
- (data->type == TL_WRITE_CONCURRENT_INSERT ||
- data->type == TL_WRITE_ALLOW_WRITE));
- else
- {
- DBUG_PRINT("lock",("No waiting read locks to free"));
- }
- }
- else if (data &&
- (lock_type=data->type) <= TL_WRITE_DELAYED &&
- ((lock_type != TL_WRITE_CONCURRENT_INSERT &&
- lock_type != TL_WRITE_ALLOW_WRITE) ||
- !lock->read_no_write_count))
- {
- /*
- For DELAYED, ALLOW_READ, WRITE_ALLOW_WRITE or CONCURRENT_INSERT locks
- start WRITE locks together with the READ locks
- */
- if (lock_type == TL_WRITE_CONCURRENT_INSERT &&
- (*lock->check_status)(data->status_param))
- {
- data->type=TL_WRITE; /* Upgrade lock */
- if (lock->read_wait.data)
- free_all_read_locks(lock,0);
- goto end;
- }
- do {
- mysql_cond_t *cond= data->cond;
- if (((*data->prev)=data->next)) /* remove from wait-list */
- data->next->prev= data->prev;
- else
- lock->write_wait.last=data->prev;
- (*lock->write.last)=data; /* Put in execute list */
- data->prev=lock->write.last;
- lock->write.last= &data->next;
- data->next=0; /* Only one write lock */
- data->cond=0; /* Mark thread free */
- mysql_cond_signal(cond); /* Start waiting thread */
- } while (lock_type == TL_WRITE_ALLOW_WRITE &&
- (data=lock->write_wait.data) &&
- data->type == TL_WRITE_ALLOW_WRITE);
- if (lock->read_wait.data)
- free_all_read_locks(lock,
- (lock_type == TL_WRITE_CONCURRENT_INSERT ||
- lock_type == TL_WRITE_ALLOW_WRITE));
- }
- else if (!data && lock->read_wait.data)
- free_all_read_locks(lock,0);
- }
-end:
- check_locks(lock, "after waking up waiters", 0);
- DBUG_VOID_RETURN;
-}
-
-
-/*
-** Get all locks in a specific order to avoid dead-locks
-** Sort acording to lock position and put write_locks before read_locks if
-** lock on same lock.
-*/
-
-
-#define LOCK_CMP(A,B) ((uchar*) (A->lock) - (uint) ((A)->type) < (uchar*) (B->lock)- (uint) ((B)->type))
-
-static void sort_locks(THR_LOCK_DATA **data,uint count)
-{
- THR_LOCK_DATA **pos,**end,**prev,*tmp;
-
- /* Sort locks with insertion sort (fast because almost always few locks) */
-
- for (pos=data+1,end=data+count; pos < end ; pos++)
- {
- tmp= *pos;
- if (LOCK_CMP(tmp,pos[-1]))
- {
- prev=pos;
- do {
- prev[0]=prev[-1];
- } while (--prev != data && LOCK_CMP(tmp,prev[-1]));
- prev[0]=tmp;
- }
- }
-}
-
-
-enum enum_thr_lock_result
-thr_multi_lock(THR_LOCK_DATA **data, uint count, THR_LOCK_INFO *owner,
- ulong lock_wait_timeout)
-{
- THR_LOCK_DATA **pos,**end;
- DBUG_ENTER("thr_multi_lock");
- DBUG_PRINT("lock",("data: 0x%lx count: %d", (long) data, count));
- if (count > 1)
- sort_locks(data,count);
- /* lock everything */
- for (pos=data,end=data+count; pos < end ; pos++)
- {
- enum enum_thr_lock_result result= thr_lock(*pos, owner, (*pos)->type,
- lock_wait_timeout);
- if (result != THR_LOCK_SUCCESS)
- { /* Aborted */
- thr_multi_unlock(data,(uint) (pos-data));
- DBUG_RETURN(result);
- }
- DEBUG_SYNC_C("thr_multi_lock_after_thr_lock");
-#ifdef MAIN
- printf("Thread: %s Got lock: 0x%lx type: %d\n",my_thread_name(),
- (long) pos[0]->lock, pos[0]->type); fflush(stdout);
-#endif
- }
- thr_lock_merge_status(data, count);
- DBUG_RETURN(THR_LOCK_SUCCESS);
-}
-
-
-/**
- Ensure that all locks for a given table have the same
- status_param.
-
- This is a MyISAM and possibly Maria specific crutch. MyISAM
- engine stores data file length, record count and other table
- properties in status_param member of handler. When a table is
- locked, connection-local copy is made from a global copy
- (myisam_share) by mi_get_status(). When a table is unlocked,
- the changed status is transferred back to the global share by
- mi_update_status().
-
- One thing MyISAM doesn't do is to ensure that when the same
- table is opened twice in a connection all instances share the
- same status_param. This is necessary, however: for one, to keep
- all instances of a connection "on the same page" with regard to
- the current state of the table. For other, unless this is done,
- myisam_share will always get updated from the last unlocked
- instance (in mi_update_status()), and when this instance was not
- the one that was used to update data, records may be lost.
-
- For each table, this function looks up the last lock_data in the
- list of acquired locks, and makes sure that all other instances
- share status_param with it.
-*/
-
-void
-thr_lock_merge_status(THR_LOCK_DATA **data, uint count)
-{
-#if !defined(DONT_USE_RW_LOCKS)
- THR_LOCK_DATA **pos= data;
- THR_LOCK_DATA **end= data + count;
- if (count > 1)
- {
- THR_LOCK_DATA *last_lock= end[-1];
- pos=end-1;
- do
- {
- pos--;
- if (last_lock->lock == (*pos)->lock &&
- last_lock->lock->copy_status)
- {
- if (last_lock->type <= TL_READ_NO_INSERT)
- {
- THR_LOCK_DATA **read_lock;
- /*
- If we are locking the same table with read locks we must ensure
- that all tables share the status of the last write lock or
- the same read lock.
- */
- for (;
- (*pos)->type <= TL_READ_NO_INSERT &&
- pos != data &&
- pos[-1]->lock == (*pos)->lock ;
- pos--) ;
-
- read_lock = pos+1;
- do
- {
- (last_lock->lock->copy_status)((*read_lock)->status_param,
- (*pos)->status_param);
- } while (*(read_lock++) != last_lock);
- last_lock= (*pos); /* Point at last write lock */
- }
- else
- (*last_lock->lock->copy_status)((*pos)->status_param,
- last_lock->status_param);
- }
- else
- last_lock=(*pos);
- } while (pos != data);
- }
-#endif
-}
-
- /* free all locks */
-
-void thr_multi_unlock(THR_LOCK_DATA **data,uint count)
-{
- THR_LOCK_DATA **pos,**end;
- DBUG_ENTER("thr_multi_unlock");
- DBUG_PRINT("lock",("data: 0x%lx count: %d", (long) data, count));
-
- for (pos=data,end=data+count; pos < end ; pos++)
- {
-#ifdef MAIN
- printf("Thread: %s Rel lock: 0x%lx type: %d\n",
- my_thread_name(), (long) pos[0]->lock, pos[0]->type);
- fflush(stdout);
-#endif
- if ((*pos)->type != TL_UNLOCK)
- thr_unlock(*pos);
- else
- {
- DBUG_PRINT("lock",("Free lock: data: 0x%lx thread: 0x%lx lock: 0x%lx",
- (long) *pos, (*pos)->owner->thread_id,
- (long) (*pos)->lock));
- }
- }
- DBUG_VOID_RETURN;
-}
-
-/*
- Abort all threads waiting for a lock. The lock will be upgraded to
- TL_WRITE_ONLY to abort any new accesses to the lock
-*/
-
-void thr_abort_locks(THR_LOCK *lock, my_bool upgrade_lock)
-{
- THR_LOCK_DATA *data;
- DBUG_ENTER("thr_abort_locks");
- mysql_mutex_lock(&lock->mutex);
-
- for (data=lock->read_wait.data; data ; data=data->next)
- {
- data->type=TL_UNLOCK; /* Mark killed */
- /* It's safe to signal the cond first: we're still holding the mutex. */
- mysql_cond_signal(data->cond);
- data->cond=0; /* Removed from list */
- }
- for (data=lock->write_wait.data; data ; data=data->next)
- {
- data->type=TL_UNLOCK;
- mysql_cond_signal(data->cond);
- data->cond=0;
- }
- lock->read_wait.last= &lock->read_wait.data;
- lock->write_wait.last= &lock->write_wait.data;
- lock->read_wait.data=lock->write_wait.data=0;
- if (upgrade_lock && lock->write.data)
- lock->write.data->type=TL_WRITE_ONLY;
- mysql_mutex_unlock(&lock->mutex);
- DBUG_VOID_RETURN;
-}
-
-
-/*
- Abort all locks for specific table/thread combination
-
- This is used to abort all locks for a specific thread
-*/
-
-my_bool thr_abort_locks_for_thread(THR_LOCK *lock, my_thread_id thread_id)
-{
- THR_LOCK_DATA *data;
- my_bool found= FALSE;
- DBUG_ENTER("thr_abort_locks_for_thread");
-
- mysql_mutex_lock(&lock->mutex);
- for (data= lock->read_wait.data; data ; data= data->next)
- {
- if (data->owner->thread_id == thread_id) /* purecov: tested */
- {
- DBUG_PRINT("info",("Aborting read-wait lock"));
- data->type= TL_UNLOCK; /* Mark killed */
- /* It's safe to signal the cond first: we're still holding the mutex. */
- found= TRUE;
- mysql_cond_signal(data->cond);
- data->cond= 0; /* Removed from list */
-
- if (((*data->prev)= data->next))
- data->next->prev= data->prev;
- else
- lock->read_wait.last= data->prev;
- }
- }
- for (data= lock->write_wait.data; data ; data= data->next)
- {
- if (data->owner->thread_id == thread_id) /* purecov: tested */
- {
- DBUG_PRINT("info",("Aborting write-wait lock"));
- data->type= TL_UNLOCK;
- found= TRUE;
- mysql_cond_signal(data->cond);
- data->cond= 0;
-
- if (((*data->prev)= data->next))
- data->next->prev= data->prev;
- else
- lock->write_wait.last= data->prev;
- }
- }
- wake_up_waiters(lock);
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(found);
-}
-
-
-/*
- Downgrade a WRITE_* to a lower WRITE level
- SYNOPSIS
- thr_downgrade_write_lock()
- in_data Lock data of thread downgrading its lock
- new_lock_type New write lock type
- RETURN VALUE
- NONE
- DESCRIPTION
- This can be used to downgrade a lock already owned. When the downgrade
- occurs also other waiters, both readers and writers can be allowed to
- start.
- The previous lock is often TL_WRITE_ONLY but can also be
- TL_WRITE. The normal downgrade variants are:
- TL_WRITE_ONLY => TL_WRITE after a short exclusive lock while holding a
- write table lock
- TL_WRITE_ONLY => TL_WRITE_ALLOW_WRITE After a short exclusive lock after
- already earlier having dongraded lock to TL_WRITE_ALLOW_WRITE
- The implementation is conservative and rather don't start rather than
- go on unknown paths to start, the common cases are handled.
-
- NOTE:
- In its current implementation it is only allowed to downgrade from
- TL_WRITE_ONLY. In this case there are no waiters. Thus no wake up
- logic is required.
-*/
-
-void thr_downgrade_write_lock(THR_LOCK_DATA *in_data,
- enum thr_lock_type new_lock_type)
-{
- THR_LOCK *lock=in_data->lock;
-#ifndef DBUG_OFF
- enum thr_lock_type old_lock_type= in_data->type;
-#endif
- DBUG_ENTER("thr_downgrade_write_only_lock");
-
- mysql_mutex_lock(&lock->mutex);
- DBUG_ASSERT(old_lock_type == TL_WRITE_ONLY);
- DBUG_ASSERT(old_lock_type > new_lock_type);
- in_data->type= new_lock_type;
- check_locks(lock,"after downgrading lock",0);
-
- mysql_mutex_unlock(&lock->mutex);
- DBUG_VOID_RETURN;
-}
-
-/* Upgrade a WRITE_DELAY lock to a WRITE_LOCK */
-
-my_bool thr_upgrade_write_delay_lock(THR_LOCK_DATA *data,
- enum thr_lock_type new_lock_type,
- ulong lock_wait_timeout)
-{
- THR_LOCK *lock=data->lock;
- DBUG_ENTER("thr_upgrade_write_delay_lock");
-
- mysql_mutex_lock(&lock->mutex);
- if (data->type == TL_UNLOCK || data->type >= TL_WRITE_LOW_PRIORITY)
- {
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(data->type == TL_UNLOCK); /* Test if Aborted */
- }
- check_locks(lock,"before upgrading lock",0);
- /* TODO: Upgrade to TL_WRITE_CONCURRENT_INSERT in some cases */
- data->type= new_lock_type; /* Upgrade lock */
-
- /* Check if someone has given us the lock */
- if (!data->cond)
- {
- if (!lock->read.data) /* No read locks */
- { /* We have the lock */
- if (data->lock->get_status)
- (*data->lock->get_status)(data->status_param, 0);
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(0);
- }
-
- if (((*data->prev)=data->next)) /* remove from lock-list */
- data->next->prev= data->prev;
- else
- lock->write.last=data->prev;
-
- if ((data->next=lock->write_wait.data)) /* Put first in lock_list */
- data->next->prev= &data->next;
- else
- lock->write_wait.last= &data->next;
- data->prev= &lock->write_wait.data;
- lock->write_wait.data=data;
- check_locks(lock,"upgrading lock",0);
- }
- else
- {
- check_locks(lock,"waiting for lock",0);
- }
- DBUG_RETURN(wait_for_lock(&lock->write_wait,data,1, lock_wait_timeout));
-}
-
-
-/* downgrade a WRITE lock to a WRITE_DELAY lock if there is pending locks */
-
-my_bool thr_reschedule_write_lock(THR_LOCK_DATA *data,
- ulong lock_wait_timeout)
-{
- THR_LOCK *lock=data->lock;
- enum thr_lock_type write_lock_type;
- DBUG_ENTER("thr_reschedule_write_lock");
-
- mysql_mutex_lock(&lock->mutex);
- if (!lock->read_wait.data) /* No waiting read locks */
- {
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(0);
- }
-
- write_lock_type= data->type;
- data->type=TL_WRITE_DELAYED;
- if (lock->update_status)
- (*lock->update_status)(data->status_param);
- if (((*data->prev)=data->next)) /* remove from lock-list */
- data->next->prev= data->prev;
- else
- lock->write.last=data->prev;
-
- if ((data->next=lock->write_wait.data)) /* Put first in lock_list */
- data->next->prev= &data->next;
- else
- lock->write_wait.last= &data->next;
- data->prev= &lock->write_wait.data;
- data->cond=get_cond(); /* This was zero */
- lock->write_wait.data=data;
- free_all_read_locks(lock,0);
-
- mysql_mutex_unlock(&lock->mutex);
- DBUG_RETURN(thr_upgrade_write_delay_lock(data, write_lock_type,
- lock_wait_timeout));
-}
-
-
-#include <my_sys.h>
-
-static void thr_print_lock(const char* name,struct st_lock_list *list)
-{
- THR_LOCK_DATA *data,**prev;
- uint count=0;
-
- if (list->data)
- {
- printf("%-10s: ",name);
- prev= &list->data;
- for (data=list->data; data && count++ < MAX_LOCKS ; data=data->next)
- {
- printf("0x%lx (%lu:%d); ", (ulong) data, data->owner->thread_id,
- (int) data->type);
- if (data->prev != prev)
- printf("\nWarning: prev didn't point at previous lock\n");
- prev= &data->next;
- }
- puts("");
- if (prev != list->last)
- printf("Warning: last didn't point at last lock\n");
- }
-}
-
-void thr_print_locks(void)
-{
- LIST *list;
- uint count=0;
-
- mysql_mutex_lock(&THR_LOCK_lock);
- puts("Current locks:");
- for (list= thr_lock_thread_list; list && count++ < MAX_THREADS;
- list= list_rest(list))
- {
- THR_LOCK *lock=(THR_LOCK*) list->data;
- mysql_mutex_lock(&lock->mutex);
- printf("lock: 0x%lx:",(ulong) lock);
- if ((lock->write_wait.data || lock->read_wait.data) &&
- (! lock->read.data && ! lock->write.data))
- printf(" WARNING: ");
- if (lock->write.data)
- printf(" write");
- if (lock->write_wait.data)
- printf(" write_wait");
- if (lock->read.data)
- printf(" read");
- if (lock->read_wait.data)
- printf(" read_wait");
- puts("");
- thr_print_lock("write",&lock->write);
- thr_print_lock("write_wait",&lock->write_wait);
- thr_print_lock("read",&lock->read);
- thr_print_lock("read_wait",&lock->read_wait);
- mysql_mutex_unlock(&lock->mutex);
- puts("");
- }
- fflush(stdout);
- mysql_mutex_unlock(&THR_LOCK_lock);
-}
-
-
-/*****************************************************************************
-** Test of thread locks
-****************************************************************************/
-
-#ifdef MAIN
-
-struct st_test {
- uint lock_nr;
- enum thr_lock_type lock_type;
-};
-
-THR_LOCK locks[5]; /* 4 locks */
-
-struct st_test test_0[] = {{0,TL_READ}}; /* One lock */
-struct st_test test_1[] = {{0,TL_READ},{0,TL_WRITE}}; /* Read and write lock of lock 0 */
-struct st_test test_2[] = {{1,TL_WRITE},{0,TL_READ},{2,TL_READ}};
-struct st_test test_3[] = {{2,TL_WRITE},{1,TL_READ},{0,TL_READ}}; /* Deadlock with test_2 ? */
-struct st_test test_4[] = {{0,TL_WRITE},{0,TL_READ},{0,TL_WRITE},{0,TL_READ}};
-struct st_test test_5[] = {{0,TL_READ},{1,TL_READ},{2,TL_READ},{3,TL_READ}}; /* Many reads */
-struct st_test test_6[] = {{0,TL_WRITE},{1,TL_WRITE},{2,TL_WRITE},{3,TL_WRITE}}; /* Many writes */
-struct st_test test_7[] = {{3,TL_READ}};
-struct st_test test_8[] = {{1,TL_READ_NO_INSERT},{2,TL_READ_NO_INSERT},{3,TL_READ_NO_INSERT}}; /* Should be quick */
-struct st_test test_9[] = {{4,TL_READ_HIGH_PRIORITY}};
-struct st_test test_10[] ={{4,TL_WRITE}};
-struct st_test test_11[] = {{0,TL_WRITE_LOW_PRIORITY},{1,TL_WRITE_LOW_PRIORITY},{2,TL_WRITE_LOW_PRIORITY},{3,TL_WRITE_LOW_PRIORITY}}; /* Many writes */
-struct st_test test_12[] = {{0,TL_WRITE_CONCURRENT_INSERT},{1,TL_WRITE_CONCURRENT_INSERT},{2,TL_WRITE_CONCURRENT_INSERT},{3,TL_WRITE_CONCURRENT_INSERT}};
-struct st_test test_13[] = {{0,TL_WRITE_CONCURRENT_INSERT},{1,TL_READ}};
-struct st_test test_14[] = {{0,TL_WRITE_ALLOW_WRITE},{1,TL_READ}};
-struct st_test test_15[] = {{0,TL_WRITE_ALLOW_WRITE},{1,TL_WRITE_ALLOW_WRITE}};
-
-struct st_test *tests[] = {test_0,test_1,test_2,test_3,test_4,test_5,test_6,
- test_7,test_8,test_9,test_10,test_11,test_12,
- test_13,test_14,test_15};
-int lock_counts[]= {sizeof(test_0)/sizeof(struct st_test),
- sizeof(test_1)/sizeof(struct st_test),
- sizeof(test_2)/sizeof(struct st_test),
- sizeof(test_3)/sizeof(struct st_test),
- sizeof(test_4)/sizeof(struct st_test),
- sizeof(test_5)/sizeof(struct st_test),
- sizeof(test_6)/sizeof(struct st_test),
- sizeof(test_7)/sizeof(struct st_test),
- sizeof(test_8)/sizeof(struct st_test),
- sizeof(test_9)/sizeof(struct st_test),
- sizeof(test_10)/sizeof(struct st_test),
- sizeof(test_11)/sizeof(struct st_test),
- sizeof(test_12)/sizeof(struct st_test),
- sizeof(test_13)/sizeof(struct st_test),
- sizeof(test_14)/sizeof(struct st_test),
- sizeof(test_15)/sizeof(struct st_test)
-};
-
-
-static mysql_cond_t COND_thread_count;
-static mysql_mutex_t LOCK_thread_count;
-static uint thread_count;
-static ulong sum=0;
-
-#define MAX_LOCK_COUNT 8
-#define TEST_TIMEOUT 100000
-
-/* The following functions is for WRITE_CONCURRENT_INSERT */
-
-static void test_get_status(void* param __attribute__((unused)),
- int concurrent_insert __attribute__((unused)))
-{
-}
-
-static void test_update_status(void* param __attribute__((unused)))
-{
-}
-
-static void test_copy_status(void* to __attribute__((unused)) ,
- void *from __attribute__((unused)))
-{
-}
-
-static my_bool test_check_status(void* param __attribute__((unused)))
-{
- return 0;
-}
-
-
-static void *test_thread(void *arg)
-{
- int i,j,param=*((int*) arg);
- THR_LOCK_DATA data[MAX_LOCK_COUNT];
- THR_LOCK_INFO lock_info;
- THR_LOCK_DATA *multi_locks[MAX_LOCK_COUNT];
- my_thread_init();
-
- printf("Thread %s (%d) started\n",my_thread_name(),param); fflush(stdout);
-
-
- thr_lock_info_init(&lock_info);
- for (i=0; i < lock_counts[param] ; i++)
- thr_lock_data_init(locks+tests[param][i].lock_nr,data+i,NULL);
- for (j=1 ; j < 10 ; j++) /* try locking 10 times */
- {
- for (i=0; i < lock_counts[param] ; i++)
- { /* Init multi locks */
- multi_locks[i]= &data[i];
- data[i].type= tests[param][i].lock_type;
- }
- thr_multi_lock(multi_locks, lock_counts[param], &lock_info, TEST_TIMEOUT);
- mysql_mutex_lock(&LOCK_thread_count);
- {
- int tmp=rand() & 7; /* Do something from 0-2 sec */
- if (tmp == 0)
- sleep(1);
- else if (tmp == 1)
- sleep(2);
- else
- {
- ulong k;
- for (k=0 ; k < (ulong) (tmp-2)*100000L ; k++)
- sum+=k;
- }
- }
- mysql_mutex_unlock(&LOCK_thread_count);
- thr_multi_unlock(multi_locks,lock_counts[param]);
- }
-
- printf("Thread %s (%d) ended\n",my_thread_name(),param); fflush(stdout);
- thr_print_locks();
- mysql_mutex_lock(&LOCK_thread_count);
- thread_count--;
- mysql_cond_signal(&COND_thread_count); /* Tell main we are ready */
- mysql_mutex_unlock(&LOCK_thread_count);
- free((uchar*) arg);
- return 0;
-}
-
-
-int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
-{
- pthread_t tid;
- pthread_attr_t thr_attr;
- int i,*param,error;
- MY_INIT(argv[0]);
- if (argc > 1 && argv[1][0] == '-' && argv[1][1] == '#')
- DBUG_PUSH(argv[1]+2);
-
- printf("Main thread: %s\n",my_thread_name());
-
- if ((error= mysql_cond_init(0, &COND_thread_count, NULL)))
- {
- fprintf(stderr, "Got error: %d from mysql_cond_init (errno: %d)",
- error,errno);
- exit(1);
- }
- if ((error= mysql_mutex_init(0, &LOCK_thread_count, MY_MUTEX_INIT_FAST)))
- {
- fprintf(stderr, "Got error: %d from mysql_cond_init (errno: %d)",
- error,errno);
- exit(1);
- }
-
- for (i=0 ; i < (int) array_elements(locks) ; i++)
- {
- thr_lock_init(locks+i);
- locks[i].check_status= test_check_status;
- locks[i].update_status=test_update_status;
- locks[i].copy_status= test_copy_status;
- locks[i].get_status= test_get_status;
- }
- if ((error=pthread_attr_init(&thr_attr)))
- {
- fprintf(stderr,"Got error: %d from pthread_attr_init (errno: %d)",
- error,errno);
- exit(1);
- }
- if ((error=pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED)))
- {
- fprintf(stderr,
- "Got error: %d from pthread_attr_setdetachstate (errno: %d)",
- error,errno);
- exit(1);
- }
-#ifndef pthread_attr_setstacksize /* void return value */
- if ((error=pthread_attr_setstacksize(&thr_attr,65536L)))
- {
- fprintf(stderr,"Got error: %d from pthread_attr_setstacksize (errno: %d)",
- error,errno);
- exit(1);
- }
-#endif
-#ifdef HAVE_THR_SETCONCURRENCY
- (void) thr_setconcurrency(2);
-#endif
- for (i=0 ; i < (int) array_elements(lock_counts) ; i++)
- {
- param=(int*) malloc(sizeof(int));
- *param=i;
-
- if ((error= mysql_mutex_lock(&LOCK_thread_count)))
- {
- fprintf(stderr, "Got error: %d from mysql_mutex_lock (errno: %d)",
- error, errno);
- exit(1);
- }
- if ((error= mysql_thread_create(0,
- &tid, &thr_attr, test_thread,
- (void*) param)))
- {
- fprintf(stderr, "Got error: %d from mysql_thread_create (errno: %d)\n",
- error, errno);
- mysql_mutex_unlock(&LOCK_thread_count);
- exit(1);
- }
- thread_count++;
- mysql_mutex_unlock(&LOCK_thread_count);
- }
-
- pthread_attr_destroy(&thr_attr);
- if ((error= mysql_mutex_lock(&LOCK_thread_count)))
- fprintf(stderr, "Got error: %d from mysql_mutex_lock\n", error);
- while (thread_count)
- {
- if ((error= mysql_cond_wait(&COND_thread_count, &LOCK_thread_count)))
- fprintf(stderr, "Got error: %d from mysql_cond_wait\n", error);
- }
- if ((error= mysql_mutex_unlock(&LOCK_thread_count)))
- fprintf(stderr, "Got error: %d from mysql_mutex_unlock\n", error);
- for (i=0 ; i < (int) array_elements(locks) ; i++)
- thr_lock_delete(locks+i);
-#ifdef EXTRA_DEBUG
- if (found_errors)
- printf("Got %d warnings\n",found_errors);
- else
-#endif
- printf("Test succeeded\n");
- return 0;
-}
-
-#endif /* MAIN */
diff --git a/dep/mysqllite/mysys/thr_mutex.c b/dep/mysqllite/mysys/thr_mutex.c
deleted file mode 100644
index 37ced4f7633..00000000000
--- a/dep/mysqllite/mysys/thr_mutex.c
+++ /dev/null
@@ -1,503 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB, 2008-2009 Sun Microsystems, Inc
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This makes a wrapper for mutex handling to make it easier to debug mutex */
-
-#include <my_global.h>
-#if defined(TARGET_OS_LINUX) && !defined (__USE_UNIX98)
-#define __USE_UNIX98 /* To get rw locks under Linux */
-#endif
-#if defined(SAFE_MUTEX)
-#undef SAFE_MUTEX /* Avoid safe_mutex redefinitions */
-#include "mysys_priv.h"
-#include "my_static.h"
-#include <m_string.h>
-
-#ifndef DO_NOT_REMOVE_THREAD_WRAPPERS
-/* Remove wrappers */
-#undef pthread_mutex_t
-#undef pthread_mutex_init
-#undef pthread_mutex_lock
-#undef pthread_mutex_unlock
-#undef pthread_mutex_destroy
-#undef pthread_cond_wait
-#undef pthread_cond_timedwait
-#ifdef HAVE_NONPOSIX_PTHREAD_MUTEX_INIT
-#define pthread_mutex_init(a,b) my_pthread_mutex_init((a),(b))
-#endif
-#endif /* DO_NOT_REMOVE_THREAD_WRAPPERS */
-
-/* Not instrumented */
-static pthread_mutex_t THR_LOCK_mutex;
-static ulong safe_mutex_count= 0; /* Number of mutexes created */
-#ifdef SAFE_MUTEX_DETECT_DESTROY
-static struct st_safe_mutex_info_t *safe_mutex_root= NULL;
-#endif
-
-void safe_mutex_global_init(void)
-{
- pthread_mutex_init(&THR_LOCK_mutex,MY_MUTEX_INIT_FAST);
-}
-
-
-int safe_mutex_init(safe_mutex_t *mp,
- const pthread_mutexattr_t *attr __attribute__((unused)),
- const char *file,
- uint line)
-{
- bzero((char*) mp,sizeof(*mp));
- pthread_mutex_init(&mp->global,MY_MUTEX_INIT_ERRCHK);
- pthread_mutex_init(&mp->mutex,attr);
- /* Mark that mutex is initialized */
- mp->file= file;
- mp->line= line;
-
-#ifdef SAFE_MUTEX_DETECT_DESTROY
- /*
- Monitor the freeing of mutexes. This code depends on single thread init
- and destroy
- */
- if ((mp->info= (safe_mutex_info_t *) malloc(sizeof(safe_mutex_info_t))))
- {
- struct st_safe_mutex_info_t *info =mp->info;
-
- info->init_file= file;
- info->init_line= line;
- info->prev= NULL;
- info->next= NULL;
-
- pthread_mutex_lock(&THR_LOCK_mutex);
- if ((info->next= safe_mutex_root))
- safe_mutex_root->prev= info;
- safe_mutex_root= info;
- safe_mutex_count++;
- pthread_mutex_unlock(&THR_LOCK_mutex);
- }
-#else
- pthread_mutex_lock(&THR_LOCK_mutex);
- safe_mutex_count++;
- pthread_mutex_unlock(&THR_LOCK_mutex);
-#endif /* SAFE_MUTEX_DETECT_DESTROY */
- return 0;
-}
-
-
-int safe_mutex_lock(safe_mutex_t *mp, my_bool try_lock, const char *file, uint line)
-{
- int error;
- if (!mp->file)
- {
- fprintf(stderr,
- "safe_mutex: Trying to lock unitialized mutex at %s, line %d\n",
- file, line);
- fflush(stderr);
- abort();
- }
-
- pthread_mutex_lock(&mp->global);
- if (mp->count > 0)
- {
- if (try_lock)
- {
- pthread_mutex_unlock(&mp->global);
- return EBUSY;
- }
- else if (pthread_equal(pthread_self(),mp->thread))
- {
- fprintf(stderr,
- "safe_mutex: Trying to lock mutex at %s, line %d, when the"
- " mutex was already locked at %s, line %d in thread %s\n",
- file,line,mp->file, mp->line, my_thread_name());
- fflush(stderr);
- abort();
- }
- }
- pthread_mutex_unlock(&mp->global);
-
- /*
- If we are imitating trylock(), we need to take special
- precautions.
-
- - We cannot use pthread_mutex_lock() only since another thread can
- overtake this thread and take the lock before this thread
- causing pthread_mutex_trylock() to hang. In this case, we should
- just return EBUSY. Hence, we use pthread_mutex_trylock() to be
- able to return immediately.
-
- - We cannot just use trylock() and continue execution below, since
- this would generate an error and abort execution if the thread
- was overtaken and trylock() returned EBUSY . In this case, we
- instead just return EBUSY, since this is the expected behaviour
- of trylock().
- */
- if (try_lock)
- {
- error= pthread_mutex_trylock(&mp->mutex);
- if (error == EBUSY)
- return error;
- }
- else
- error= pthread_mutex_lock(&mp->mutex);
-
- if (error || (error=pthread_mutex_lock(&mp->global)))
- {
- fprintf(stderr,"Got error %d when trying to lock mutex at %s, line %d\n",
- error, file, line);
- fflush(stderr);
- abort();
- }
- mp->thread= pthread_self();
- if (mp->count++)
- {
- fprintf(stderr,"safe_mutex: Error in thread libray: Got mutex at %s, \
-line %d more than 1 time\n", file,line);
- fflush(stderr);
- abort();
- }
- mp->file= file;
- mp->line=line;
- pthread_mutex_unlock(&mp->global);
- return error;
-}
-
-
-int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line)
-{
- int error;
- pthread_mutex_lock(&mp->global);
- if (mp->count == 0)
- {
- fprintf(stderr,"safe_mutex: Trying to unlock mutex that wasn't locked at %s, line %d\n Last used at %s, line: %d\n",
- file,line,mp->file ? mp->file : "",mp->line);
- fflush(stderr);
- abort();
- }
- if (!pthread_equal(pthread_self(),mp->thread))
- {
- fprintf(stderr,"safe_mutex: Trying to unlock mutex at %s, line %d that was locked by another thread at: %s, line: %d\n",
- file,line,mp->file,mp->line);
- fflush(stderr);
- abort();
- }
- mp->thread= 0;
- mp->count--;
-#ifdef __WIN__
- pthread_mutex_unlock(&mp->mutex);
- error=0;
-#else
- error=pthread_mutex_unlock(&mp->mutex);
- if (error)
- {
- fprintf(stderr,"safe_mutex: Got error: %d (%d) when trying to unlock mutex at %s, line %d\n", error, errno, file, line);
- fflush(stderr);
- abort();
- }
-#endif /* __WIN__ */
- pthread_mutex_unlock(&mp->global);
- return error;
-}
-
-
-int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp, const char *file,
- uint line)
-{
- int error;
- pthread_mutex_lock(&mp->global);
- if (mp->count == 0)
- {
- fprintf(stderr,"safe_mutex: Trying to cond_wait on a unlocked mutex at %s, line %d\n",file,line);
- fflush(stderr);
- abort();
- }
- if (!pthread_equal(pthread_self(),mp->thread))
- {
- fprintf(stderr,"safe_mutex: Trying to cond_wait on a mutex at %s, line %d that was locked by another thread at: %s, line: %d\n",
- file,line,mp->file,mp->line);
- fflush(stderr);
- abort();
- }
-
- if (mp->count-- != 1)
- {
- fprintf(stderr,"safe_mutex: Count was %d on locked mutex at %s, line %d\n",
- mp->count+1, file, line);
- fflush(stderr);
- abort();
- }
- pthread_mutex_unlock(&mp->global);
- error=pthread_cond_wait(cond,&mp->mutex);
- pthread_mutex_lock(&mp->global);
- if (error)
- {
- fprintf(stderr,"safe_mutex: Got error: %d (%d) when doing a safe_mutex_wait at %s, line %d\n", error, errno, file, line);
- fflush(stderr);
- abort();
- }
- mp->thread=pthread_self();
- if (mp->count++)
- {
- fprintf(stderr,
- "safe_mutex: Count was %d in thread 0x%lx when locking mutex at %s, line %d\n",
- mp->count-1, my_thread_dbug_id(), file, line);
- fflush(stderr);
- abort();
- }
- mp->file= file;
- mp->line=line;
- pthread_mutex_unlock(&mp->global);
- return error;
-}
-
-
-int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp,
- const struct timespec *abstime,
- const char *file, uint line)
-{
- int error;
- pthread_mutex_lock(&mp->global);
- if (mp->count != 1 || !pthread_equal(pthread_self(),mp->thread))
- {
- fprintf(stderr,"safe_mutex: Trying to cond_wait at %s, line %d on a not hold mutex\n",file,line);
- fflush(stderr);
- abort();
- }
- mp->count--; /* Mutex will be released */
- pthread_mutex_unlock(&mp->global);
- error=pthread_cond_timedwait(cond,&mp->mutex,abstime);
-#ifdef EXTRA_DEBUG
- if (error && (error != EINTR && error != ETIMEDOUT && error != ETIME))
- {
- fprintf(stderr,"safe_mutex: Got error: %d (%d) when doing a safe_mutex_timedwait at %s, line %d\n", error, errno, file, line);
- }
-#endif
- pthread_mutex_lock(&mp->global);
- mp->thread=pthread_self();
- if (mp->count++)
- {
- fprintf(stderr,
- "safe_mutex: Count was %d in thread 0x%lx when locking mutex at %s, line %d (error: %d (%d))\n",
- mp->count-1, my_thread_dbug_id(), file, line, error, error);
- fflush(stderr);
- abort();
- }
- mp->file= file;
- mp->line=line;
- pthread_mutex_unlock(&mp->global);
- return error;
-}
-
-
-int safe_mutex_destroy(safe_mutex_t *mp, const char *file, uint line)
-{
- int error=0;
- if (!mp->file)
- {
- fprintf(stderr,
- "safe_mutex: Trying to destroy unitialized mutex at %s, line %d\n",
- file, line);
- fflush(stderr);
- abort();
- }
- if (mp->count != 0)
- {
- fprintf(stderr,"safe_mutex: Trying to destroy a mutex that was locked at %s, line %d at %s, line %d\n",
- mp->file,mp->line, file, line);
- fflush(stderr);
- abort();
- }
-#ifdef __WIN__
- pthread_mutex_destroy(&mp->global);
- pthread_mutex_destroy(&mp->mutex);
-#else
- if (pthread_mutex_destroy(&mp->global))
- error=1;
- if (pthread_mutex_destroy(&mp->mutex))
- error=1;
-#endif
- mp->file= 0; /* Mark destroyed */
-
-#ifdef SAFE_MUTEX_DETECT_DESTROY
- if (mp->info)
- {
- struct st_safe_mutex_info_t *info= mp->info;
- pthread_mutex_lock(&THR_LOCK_mutex);
-
- if (info->prev)
- info->prev->next = info->next;
- else
- safe_mutex_root = info->next;
- if (info->next)
- info->next->prev = info->prev;
- safe_mutex_count--;
-
- pthread_mutex_unlock(&THR_LOCK_mutex);
- free(info);
- mp->info= NULL; /* Get crash if double free */
- }
-#else
- pthread_mutex_lock(&THR_LOCK_mutex);
- safe_mutex_count--;
- pthread_mutex_unlock(&THR_LOCK_mutex);
-#endif /* SAFE_MUTEX_DETECT_DESTROY */
- return error;
-}
-
-
-/*
- Free global resources and check that all mutex has been destroyed
-
- SYNOPSIS
- safe_mutex_end()
- file Print errors on this file
-
- NOTES
- We can't use DBUG_PRINT() here as we have in my_end() disabled
- DBUG handling before calling this function.
-
- In MySQL one may get one warning for a mutex created in my_thr_init.c
- This is ok, as this thread may not yet have been exited.
-*/
-
-void safe_mutex_end(FILE *file __attribute__((unused)))
-{
- if (!safe_mutex_count) /* safetly */
- pthread_mutex_destroy(&THR_LOCK_mutex);
-#ifdef SAFE_MUTEX_DETECT_DESTROY
- if (!file)
- return;
-
- if (safe_mutex_count)
- {
- fprintf(file, "Warning: Not destroyed mutex: %lu\n", safe_mutex_count);
- (void) fflush(file);
- }
- {
- struct st_safe_mutex_info_t *ptr;
- for (ptr= safe_mutex_root ; ptr ; ptr= ptr->next)
- {
- fprintf(file, "\tMutex initiated at line %4u in '%s'\n",
- ptr->init_line, ptr->init_file);
- (void) fflush(file);
- }
- }
-#endif /* SAFE_MUTEX_DETECT_DESTROY */
-}
-
-#endif /* SAFE_MUTEX */
-
-#if defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX)
-
-#include "mysys_priv.h"
-#include "my_static.h"
-#include <m_string.h>
-
-#include <m_ctype.h>
-#include <hash.h>
-#include <myisampack.h>
-#include <mysys_err.h>
-#include <my_sys.h>
-
-#undef pthread_mutex_t
-#undef pthread_mutex_init
-#undef pthread_mutex_lock
-#undef pthread_mutex_trylock
-#undef pthread_mutex_unlock
-#undef pthread_mutex_destroy
-#undef pthread_cond_wait
-#undef pthread_cond_timedwait
-
-ulong mutex_delay(ulong delayloops)
-{
- ulong i;
- volatile ulong j;
-
- j = 0;
-
- for (i = 0; i < delayloops * 50; i++)
- j += i;
-
- return(j);
-}
-
-#define MY_PTHREAD_FASTMUTEX_SPINS 8
-#define MY_PTHREAD_FASTMUTEX_DELAY 4
-
-static int cpu_count= 0;
-
-int my_pthread_fastmutex_init(my_pthread_fastmutex_t *mp,
- const pthread_mutexattr_t *attr)
-{
- if ((cpu_count > 1) && (attr == MY_MUTEX_INIT_FAST))
- mp->spins= MY_PTHREAD_FASTMUTEX_SPINS;
- else
- mp->spins= 0;
- mp->rng_state= 1;
- return pthread_mutex_init(&mp->mutex, attr);
-}
-
-/**
- Park-Miller random number generator. A simple linear congruential
- generator that operates in multiplicative group of integers modulo n.
-
- x_{k+1} = (x_k g) mod n
-
- Popular pair of parameters: n = 2^32 − 5 = 4294967291 and g = 279470273.
- The period of the generator is about 2^31.
- Largest value that can be returned: 2147483646 (RAND_MAX)
-
- Reference:
-
- S. K. Park and K. W. Miller
- "Random number generators: good ones are hard to find"
- Commun. ACM, October 1988, Volume 31, No 10, pages 1192-1201.
-*/
-
-static double park_rng(my_pthread_fastmutex_t *mp)
-{
- mp->rng_state= ((my_ulonglong)mp->rng_state * 279470273U) % 4294967291U;
- return (mp->rng_state / 2147483647.0);
-}
-
-int my_pthread_fastmutex_lock(my_pthread_fastmutex_t *mp)
-{
- int res;
- uint i;
- uint maxdelay= MY_PTHREAD_FASTMUTEX_DELAY;
-
- for (i= 0; i < mp->spins; i++)
- {
- res= pthread_mutex_trylock(&mp->mutex);
-
- if (res == 0)
- return 0;
-
- if (res != EBUSY)
- return res;
-
- mutex_delay(maxdelay);
- maxdelay += park_rng(mp) * MY_PTHREAD_FASTMUTEX_DELAY + 1;
- }
- return pthread_mutex_lock(&mp->mutex);
-}
-
-
-void fastmutex_global_init(void)
-{
-#ifdef _SC_NPROCESSORS_CONF
- cpu_count= sysconf(_SC_NPROCESSORS_CONF);
-#endif
-}
-
-#endif /* defined(MY_PTHREAD_FASTMUTEX) && !defined(SAFE_MUTEX) */
diff --git a/dep/mysqllite/mysys/thr_rwlock.c b/dep/mysqllite/mysys/thr_rwlock.c
deleted file mode 100644
index bad80b43eef..00000000000
--- a/dep/mysqllite/mysys/thr_rwlock.c
+++ /dev/null
@@ -1,472 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Synchronization - readers / writer thread locks */
-
-#include "mysys_priv.h"
-#if defined(NEED_MY_RW_LOCK)
-#include <errno.h>
-
-#ifdef _WIN32
-
-static BOOL have_srwlock= FALSE;
-/* Prototypes and function pointers for windows functions */
-typedef VOID (WINAPI* srw_func) (PSRWLOCK SRWLock);
-typedef BOOL (WINAPI* srw_bool_func) (PSRWLOCK SRWLock);
-
-static srw_func my_InitializeSRWLock;
-static srw_func my_AcquireSRWLockExclusive;
-static srw_func my_ReleaseSRWLockExclusive;
-static srw_func my_AcquireSRWLockShared;
-static srw_func my_ReleaseSRWLockShared;
-
-static srw_bool_func my_TryAcquireSRWLockExclusive;
-static srw_bool_func my_TryAcquireSRWLockShared;
-
-/**
- Check for presence of Windows slim reader writer lock function.
- Load function pointers.
-*/
-
-static void check_srwlock_availability(void)
-{
- HMODULE module= GetModuleHandle("kernel32");
-
- my_InitializeSRWLock= (srw_func) GetProcAddress(module,
- "InitializeSRWLock");
- my_AcquireSRWLockExclusive= (srw_func) GetProcAddress(module,
- "AcquireSRWLockExclusive");
- my_AcquireSRWLockShared= (srw_func) GetProcAddress(module,
- "AcquireSRWLockShared");
- my_ReleaseSRWLockExclusive= (srw_func) GetProcAddress(module,
- "ReleaseSRWLockExclusive");
- my_ReleaseSRWLockShared= (srw_func) GetProcAddress(module,
- "ReleaseSRWLockShared");
- my_TryAcquireSRWLockExclusive= (srw_bool_func) GetProcAddress(module,
- "TryAcquireSRWLockExclusive");
- my_TryAcquireSRWLockShared= (srw_bool_func) GetProcAddress(module,
- "TryAcquireSRWLockShared");
-
- /*
- We currently require TryAcquireSRWLockExclusive. This API is missing on
- Vista, this means SRWLock are only used starting with Win7.
-
- If "trylock" usage for rwlocks is eliminated from server codebase (it is used
- in a single place currently, in query cache), then SRWLock can be enabled on
- Vista too. In this case condition below needs to be changed to e.g check
- for my_InitializeSRWLock.
- */
-
- if (my_TryAcquireSRWLockExclusive)
- have_srwlock= TRUE;
-
-}
-
-
-static int srw_init(my_rw_lock_t *rwp)
-{
- my_InitializeSRWLock(&rwp->srwlock);
- rwp->have_exclusive_srwlock = FALSE;
- return 0;
-}
-
-
-static int srw_rdlock(my_rw_lock_t *rwp)
-{
- my_AcquireSRWLockShared(&rwp->srwlock);
- return 0;
-}
-
-
-static int srw_tryrdlock(my_rw_lock_t *rwp)
-{
-
- if (!my_TryAcquireSRWLockShared(&rwp->srwlock))
- return EBUSY;
- return 0;
-}
-
-
-static int srw_wrlock(my_rw_lock_t *rwp)
-{
- my_AcquireSRWLockExclusive(&rwp->srwlock);
- rwp->have_exclusive_srwlock= TRUE;
- return 0;
-}
-
-
-static int srw_trywrlock(my_rw_lock_t *rwp)
-{
- if (!my_TryAcquireSRWLockExclusive(&rwp->srwlock))
- return EBUSY;
- rwp->have_exclusive_srwlock= TRUE;
- return 0;
-}
-
-
-static int srw_unlock(my_rw_lock_t *rwp)
-{
- if (rwp->have_exclusive_srwlock)
- {
- rwp->have_exclusive_srwlock= FALSE;
- my_ReleaseSRWLockExclusive(&rwp->srwlock);
- }
- else
- {
- my_ReleaseSRWLockShared(&rwp->srwlock);
- }
- return 0;
-}
-
-#endif /*_WIN32 */
-
-/*
- Source base from Sun Microsystems SPILT, simplified for MySQL use
- -- Joshua Chamas
- Some cleanup and additional code by Monty
-*/
-
-/*
-* Multithreaded Demo Source
-*
-* Copyright (C) 1995 by Sun Microsystems, Inc.
-* All rights reserved.
-*
-* This file is a product of SunSoft, Inc. and is provided for
-* unrestricted use provided that this legend is included on all
-* media and as a part of the software program in whole or part.
-* Users may copy, modify or distribute this file at will.
-*
-* THIS FILE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
-* THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-*
-* This file is provided with no support and without any obligation on the
-* part of SunSoft, Inc. to assist in its use, correction, modification or
-* enhancement.
-*
-* SUNSOFT AND SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT
-* TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS
-* FILE OR ANY PART THEREOF.
-*
-* IN NO EVENT WILL SUNSOFT OR SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
-* LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
-* DAMAGES, EVEN IF THEY HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
-* DAMAGES.
-*
-* SunSoft, Inc.
-* 2550 Garcia Avenue
-* Mountain View, California 94043
-*/
-
-int my_rw_init(my_rw_lock_t *rwp)
-{
- pthread_condattr_t cond_attr;
-
-#ifdef _WIN32
- /*
- Once initialization is used here rather than in my_init(), in order to
- - avoid my_init() pitfalls- (undefined order in which initialization should
- run)
- - be potentially useful C++ (static constructors)
- - just to simplify the API.
- Also, the overhead is of my_pthread_once is very small.
- */
- static my_pthread_once_t once_control= MY_PTHREAD_ONCE_INIT;
- my_pthread_once(&once_control, check_srwlock_availability);
-
- if (have_srwlock)
- return srw_init(rwp);
-#endif
-
- pthread_mutex_init( &rwp->lock, MY_MUTEX_INIT_FAST);
- pthread_condattr_init( &cond_attr );
- pthread_cond_init( &rwp->readers, &cond_attr );
- pthread_cond_init( &rwp->writers, &cond_attr );
- pthread_condattr_destroy(&cond_attr);
-
- rwp->state = 0;
- rwp->waiters = 0;
-#ifdef SAFE_MUTEX
- rwp->write_thread = 0;
-#endif
-
- return(0);
-}
-
-
-int my_rw_destroy(my_rw_lock_t *rwp)
-{
-#ifdef _WIN32
- if (have_srwlock)
- return 0; /* no destroy function */
-#endif
- DBUG_ASSERT(rwp->state == 0);
- pthread_mutex_destroy( &rwp->lock );
- pthread_cond_destroy( &rwp->readers );
- pthread_cond_destroy( &rwp->writers );
- return(0);
-}
-
-
-int my_rw_rdlock(my_rw_lock_t *rwp)
-{
-#ifdef _WIN32
- if (have_srwlock)
- return srw_rdlock(rwp);
-#endif
-
- pthread_mutex_lock(&rwp->lock);
-
- /* active or queued writers */
- while (( rwp->state < 0 ) || rwp->waiters)
- pthread_cond_wait( &rwp->readers, &rwp->lock);
-
- rwp->state++;
- pthread_mutex_unlock(&rwp->lock);
- return(0);
-}
-
-int my_rw_tryrdlock(my_rw_lock_t *rwp)
-{
- int res;
-
-#ifdef _WIN32
- if (have_srwlock)
- return srw_tryrdlock(rwp);
-#endif
-
- pthread_mutex_lock(&rwp->lock);
- if ((rwp->state < 0 ) || rwp->waiters)
- res= EBUSY; /* Can't get lock */
- else
- {
- res=0;
- rwp->state++;
- }
- pthread_mutex_unlock(&rwp->lock);
- return(res);
-}
-
-
-int my_rw_wrlock(my_rw_lock_t *rwp)
-{
-#ifdef _WIN32
- if (have_srwlock)
- return srw_wrlock(rwp);
-#endif
-
- pthread_mutex_lock(&rwp->lock);
- rwp->waiters++; /* another writer queued */
-
- my_rw_lock_assert_not_write_owner(rwp);
-
- while (rwp->state)
- pthread_cond_wait(&rwp->writers, &rwp->lock);
- rwp->state = -1;
- rwp->waiters--;
-#ifdef SAFE_MUTEX
- rwp->write_thread= pthread_self();
-#endif
- pthread_mutex_unlock(&rwp->lock);
- return(0);
-}
-
-
-int my_rw_trywrlock(my_rw_lock_t *rwp)
-{
- int res;
-
-#ifdef _WIN32
- if (have_srwlock)
- return srw_trywrlock(rwp);
-#endif
-
- pthread_mutex_lock(&rwp->lock);
- if (rwp->state)
- res= EBUSY; /* Can't get lock */
- else
- {
- res=0;
- rwp->state = -1;
-#ifdef SAFE_MUTEX
- rwp->write_thread= pthread_self();
-#endif
- }
- pthread_mutex_unlock(&rwp->lock);
- return(res);
-}
-
-
-int my_rw_unlock(my_rw_lock_t *rwp)
-{
-#ifdef _WIN32
- if (have_srwlock)
- return srw_unlock(rwp);
-#endif
-
- DBUG_PRINT("rw_unlock",
- ("state: %d waiters: %d", rwp->state, rwp->waiters));
- pthread_mutex_lock(&rwp->lock);
-
- DBUG_ASSERT(rwp->state != 0);
-
- if (rwp->state == -1) /* writer releasing */
- {
- my_rw_lock_assert_write_owner(rwp);
- rwp->state= 0; /* mark as available */
-#ifdef SAFE_MUTEX
- rwp->write_thread= 0;
-#endif
-
- if ( rwp->waiters ) /* writers queued */
- pthread_cond_signal( &rwp->writers );
- else
- pthread_cond_broadcast( &rwp->readers );
- }
- else
- {
- if ( --rwp->state == 0 && /* no more readers */
- rwp->waiters)
- pthread_cond_signal( &rwp->writers );
- }
-
- pthread_mutex_unlock( &rwp->lock );
- return(0);
-}
-
-#endif /* defined(NEED_MY_RW_LOCK) */
-
-
-int rw_pr_init(rw_pr_lock_t *rwlock)
-{
- pthread_mutex_init(&rwlock->lock, NULL);
- pthread_cond_init(&rwlock->no_active_readers, NULL);
- rwlock->active_readers= 0;
- rwlock->writers_waiting_readers= 0;
- rwlock->active_writer= FALSE;
-#ifdef SAFE_MUTEX
- rwlock->writer_thread= 0;
-#endif
- return 0;
-}
-
-
-int rw_pr_destroy(rw_pr_lock_t *rwlock)
-{
- pthread_cond_destroy(&rwlock->no_active_readers);
- pthread_mutex_destroy(&rwlock->lock);
- return 0;
-}
-
-
-int rw_pr_rdlock(rw_pr_lock_t *rwlock)
-{
- pthread_mutex_lock(&rwlock->lock);
- /*
- The fact that we were able to acquire 'lock' mutex means
- that there are no active writers and we can acquire rd-lock.
- Increment active readers counter to prevent requests for
- wr-lock from succeeding and unlock mutex.
- */
- rwlock->active_readers++;
- pthread_mutex_unlock(&rwlock->lock);
- return 0;
-}
-
-
-int rw_pr_wrlock(rw_pr_lock_t *rwlock)
-{
- pthread_mutex_lock(&rwlock->lock);
-
- if (rwlock->active_readers != 0)
- {
- /* There are active readers. We have to wait until they are gone. */
- rwlock->writers_waiting_readers++;
-
- while (rwlock->active_readers != 0)
- pthread_cond_wait(&rwlock->no_active_readers, &rwlock->lock);
-
- rwlock->writers_waiting_readers--;
- }
-
- /*
- We own 'lock' mutex so there is no active writers.
- Also there are no active readers.
- This means that we can grant wr-lock.
- Not releasing 'lock' mutex until unlock will block
- both requests for rd and wr-locks.
- Set 'active_writer' flag to simplify unlock.
-
- Thanks to the fact wr-lock/unlock in the absence of
- contention from readers is essentially mutex lock/unlock
- with a few simple checks make this rwlock implementation
- wr-lock optimized.
- */
- rwlock->active_writer= TRUE;
-#ifdef SAFE_MUTEX
- rwlock->writer_thread= pthread_self();
-#endif
- return 0;
-}
-
-
-int rw_pr_unlock(rw_pr_lock_t *rwlock)
-{
- if (rwlock->active_writer)
- {
- /* We are unlocking wr-lock. */
-#ifdef SAFE_MUTEX
- rwlock->writer_thread= 0;
-#endif
- rwlock->active_writer= FALSE;
- if (rwlock->writers_waiting_readers)
- {
- /*
- Avoid expensive cond signal in case when there is no contention
- or it is wr-only.
-
- Note that from view point of performance it would be better to
- signal on the condition variable after unlocking mutex (as it
- reduces number of contex switches).
-
- Unfortunately this would mean that such rwlock can't be safely
- used by MDL subsystem, which relies on the fact that it is OK
- to destroy rwlock once it is in unlocked state.
- */
- pthread_cond_signal(&rwlock->no_active_readers);
- }
- pthread_mutex_unlock(&rwlock->lock);
- }
- else
- {
- /* We are unlocking rd-lock. */
- pthread_mutex_lock(&rwlock->lock);
- rwlock->active_readers--;
- if (rwlock->active_readers == 0 &&
- rwlock->writers_waiting_readers)
- {
- /*
- If we are last reader and there are waiting
- writers wake them up.
- */
- pthread_cond_signal(&rwlock->no_active_readers);
- }
- pthread_mutex_unlock(&rwlock->lock);
- }
- return 0;
-}
-
-
diff --git a/dep/mysqllite/mysys/tree.c b/dep/mysqllite/mysys/tree.c
deleted file mode 100644
index 8ea7102ed4c..00000000000
--- a/dep/mysqllite/mysys/tree.c
+++ /dev/null
@@ -1,757 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Code for handling red-black (balanced) binary trees.
- key in tree is allocated accrding to following:
-
- 1) If size < 0 then tree will not allocate keys and only a pointer to
- each key is saved in tree.
- compare and search functions uses and returns key-pointer
-
- 2) If size == 0 then there are two options:
- - key_size != 0 to tree_insert: The key will be stored in the tree.
- - key_size == 0 to tree_insert: A pointer to the key is stored.
- compare and search functions uses and returns key-pointer.
-
- 3) if key_size is given to init_tree then each node will continue the
- key and calls to insert_key may increase length of key.
- if key_size > sizeof(pointer) and key_size is a multiple of 8 (double
- allign) then key will be put on a 8 alligned adress. Else
- the key will be on adress (element+1). This is transparent for user
- compare and search functions uses a pointer to given key-argument.
-
- - If you use a free function for tree-elements and you are freeing
- the element itself, you should use key_size = 0 to init_tree and
- tree_search
-
- The actual key in TREE_ELEMENT is saved as a pointer or after the
- TREE_ELEMENT struct.
- If one uses only pointers in tree one can use tree_set_pointer() to
- change address of data.
-
- Implemented by monty.
-*/
-
-/*
- NOTE:
- tree->compare function should be ALWAYS called as
- (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element), key)
- and not other way around, as
- (*tree->compare)(custom_arg, key, ELEMENT_KEY(tree,element))
-
- ft_boolean_search.c (at least) relies on that.
-*/
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <my_tree.h>
-#include "my_base.h"
-
-#define BLACK 1
-#define RED 0
-#define DEFAULT_ALLOC_SIZE 8192
-#define DEFAULT_ALIGN_SIZE 8192
-
-static void delete_tree_element(TREE *,TREE_ELEMENT *);
-static int tree_walk_left_root_right(TREE *,TREE_ELEMENT *,
- tree_walk_action,void *);
-static int tree_walk_right_root_left(TREE *,TREE_ELEMENT *,
- tree_walk_action,void *);
-static void left_rotate(TREE_ELEMENT **parent,TREE_ELEMENT *leaf);
-static void right_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf);
-static void rb_insert(TREE *tree,TREE_ELEMENT ***parent,
- TREE_ELEMENT *leaf);
-static void rb_delete_fixup(TREE *tree,TREE_ELEMENT ***parent);
-
-
- /* The actuall code for handling binary trees */
-
-#ifndef DBUG_OFF
-static int test_rb_tree(TREE_ELEMENT *element);
-#endif
-
-void init_tree(TREE *tree, ulong default_alloc_size, ulong memory_limit,
- int size, qsort_cmp2 compare, my_bool with_delete,
- tree_element_free free_element, void *custom_arg)
-{
- DBUG_ENTER("init_tree");
- DBUG_PRINT("enter",("tree: 0x%lx size: %d", (long) tree, size));
-
- if (default_alloc_size < DEFAULT_ALLOC_SIZE)
- default_alloc_size= DEFAULT_ALLOC_SIZE;
- default_alloc_size= MY_ALIGN(default_alloc_size, DEFAULT_ALIGN_SIZE);
- bzero((uchar*) &tree->null_element,sizeof(tree->null_element));
- tree->root= &tree->null_element;
- tree->compare=compare;
- tree->size_of_element=size > 0 ? (uint) size : 0;
- tree->memory_limit=memory_limit;
- tree->free=free_element;
- tree->allocated=0;
- tree->elements_in_tree=0;
- tree->custom_arg = custom_arg;
- tree->null_element.colour=BLACK;
- tree->null_element.left=tree->null_element.right=0;
- tree->flag= 0;
- if (!free_element && size >= 0 &&
- ((uint) size <= sizeof(void*) || ((uint) size & (sizeof(void*)-1))))
- {
- /*
- We know that the data doesn't have to be aligned (like if the key
- contains a double), so we can store the data combined with the
- TREE_ELEMENT.
- */
- tree->offset_to_key=sizeof(TREE_ELEMENT); /* Put key after element */
- /* Fix allocation size so that we don't lose any memory */
- default_alloc_size/=(sizeof(TREE_ELEMENT)+size);
- if (!default_alloc_size)
- default_alloc_size=1;
- default_alloc_size*=(sizeof(TREE_ELEMENT)+size);
- }
- else
- {
- tree->offset_to_key=0; /* use key through pointer */
- tree->size_of_element+=sizeof(void*);
- }
- if (!(tree->with_delete=with_delete))
- {
- init_alloc_root(&tree->mem_root, (uint) default_alloc_size, 0);
- tree->mem_root.min_malloc=(sizeof(TREE_ELEMENT)+tree->size_of_element);
- }
- DBUG_VOID_RETURN;
-}
-
-static void free_tree(TREE *tree, myf free_flags)
-{
- DBUG_ENTER("free_tree");
- DBUG_PRINT("enter",("tree: 0x%lx", (long) tree));
-
- if (tree->root) /* If initialized */
- {
- if (tree->with_delete)
- delete_tree_element(tree,tree->root);
- else
- {
- if (tree->free)
- {
- if (tree->memory_limit)
- (*tree->free)(NULL, free_init, tree->custom_arg);
- delete_tree_element(tree,tree->root);
- if (tree->memory_limit)
- (*tree->free)(NULL, free_end, tree->custom_arg);
- }
- free_root(&tree->mem_root, free_flags);
- }
- }
- tree->root= &tree->null_element;
- tree->elements_in_tree=0;
- tree->allocated=0;
-
- DBUG_VOID_RETURN;
-}
-
-void delete_tree(TREE* tree)
-{
- free_tree(tree, MYF(0)); /* my_free() mem_root if applicable */
-}
-
-void reset_tree(TREE* tree)
-{
- /* do not free mem_root, just mark blocks as free */
- free_tree(tree, MYF(MY_MARK_BLOCKS_FREE));
-}
-
-
-static void delete_tree_element(TREE *tree, TREE_ELEMENT *element)
-{
- if (element != &tree->null_element)
- {
- delete_tree_element(tree,element->left);
- if (tree->free)
- (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg);
- delete_tree_element(tree,element->right);
- if (tree->with_delete)
- my_free(element);
- }
-}
-
-
-/*
- insert, search and delete of elements
-
- The following should be true:
- parent[0] = & parent[-1][0]->left ||
- parent[0] = & parent[-1][0]->right
-*/
-
-TREE_ELEMENT *tree_insert(TREE *tree, void *key, uint key_size,
- void* custom_arg)
-{
- int cmp;
- TREE_ELEMENT *element,***parent;
-
- parent= tree->parents;
- *parent = &tree->root; element= tree->root;
- for (;;)
- {
- if (element == &tree->null_element ||
- (cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element),
- key)) == 0)
- break;
- if (cmp < 0)
- {
- *++parent= &element->right; element= element->right;
- }
- else
- {
- *++parent = &element->left; element= element->left;
- }
- }
- if (element == &tree->null_element)
- {
- uint alloc_size=sizeof(TREE_ELEMENT)+key_size+tree->size_of_element;
- tree->allocated+=alloc_size;
-
- if (tree->memory_limit && tree->elements_in_tree
- && tree->allocated > tree->memory_limit)
- {
- reset_tree(tree);
- return tree_insert(tree, key, key_size, custom_arg);
- }
-
- key_size+=tree->size_of_element;
- if (tree->with_delete)
- element=(TREE_ELEMENT *) my_malloc(alloc_size, MYF(MY_WME));
- else
- element=(TREE_ELEMENT *) alloc_root(&tree->mem_root,alloc_size);
- if (!element)
- return(NULL);
- **parent=element;
- element->left=element->right= &tree->null_element;
- if (!tree->offset_to_key)
- {
- if (key_size == sizeof(void*)) /* no length, save pointer */
- *((void**) (element+1))=key;
- else
- {
- *((void**) (element+1))= (void*) ((void **) (element+1)+1);
- memcpy((uchar*) *((void **) (element+1)),key,
- (size_t) (key_size-sizeof(void*)));
- }
- }
- else
- memcpy((uchar*) element+tree->offset_to_key,key,(size_t) key_size);
- element->count=1; /* May give warning in purify */
- tree->elements_in_tree++;
- rb_insert(tree,parent,element); /* rebalance tree */
- }
- else
- {
- if (tree->flag & TREE_NO_DUPS)
- return(NULL);
- element->count++;
- /* Avoid a wrap over of the count. */
- if (! element->count)
- element->count--;
- }
- DBUG_EXECUTE("check_tree", test_rb_tree(tree->root););
- return element;
-}
-
-int tree_delete(TREE *tree, void *key, uint key_size, void *custom_arg)
-{
- int cmp,remove_colour;
- TREE_ELEMENT *element,***parent, ***org_parent, *nod;
- if (!tree->with_delete)
- return 1; /* not allowed */
-
- parent= tree->parents;
- *parent= &tree->root; element= tree->root;
- for (;;)
- {
- if (element == &tree->null_element)
- return 1; /* Was not in tree */
- if ((cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element),
- key)) == 0)
- break;
- if (cmp < 0)
- {
- *++parent= &element->right; element= element->right;
- }
- else
- {
- *++parent = &element->left; element= element->left;
- }
- }
- if (element->left == &tree->null_element)
- {
- (**parent)=element->right;
- remove_colour= element->colour;
- }
- else if (element->right == &tree->null_element)
- {
- (**parent)=element->left;
- remove_colour= element->colour;
- }
- else
- {
- org_parent= parent;
- *++parent= &element->right; nod= element->right;
- while (nod->left != &tree->null_element)
- {
- *++parent= &nod->left; nod= nod->left;
- }
- (**parent)=nod->right; /* unlink nod from tree */
- remove_colour= nod->colour;
- org_parent[0][0]=nod; /* put y in place of element */
- org_parent[1]= &nod->right;
- nod->left=element->left;
- nod->right=element->right;
- nod->colour=element->colour;
- }
- if (remove_colour == BLACK)
- rb_delete_fixup(tree,parent);
- if (tree->free)
- (*tree->free)(ELEMENT_KEY(tree,element), free_free, tree->custom_arg);
- tree->allocated-= sizeof(TREE_ELEMENT) + tree->size_of_element + key_size;
- my_free(element);
- tree->elements_in_tree--;
- return 0;
-}
-
-
-void *tree_search(TREE *tree, void *key, void *custom_arg)
-{
- int cmp;
- TREE_ELEMENT *element=tree->root;
-
- for (;;)
- {
- if (element == &tree->null_element)
- return (void*) 0;
- if ((cmp = (*tree->compare)(custom_arg, ELEMENT_KEY(tree,element),
- key)) == 0)
- return ELEMENT_KEY(tree,element);
- if (cmp < 0)
- element=element->right;
- else
- element=element->left;
- }
-}
-
-void *tree_search_key(TREE *tree, const void *key,
- TREE_ELEMENT **parents, TREE_ELEMENT ***last_pos,
- enum ha_rkey_function flag, void *custom_arg)
-{
- int cmp;
- TREE_ELEMENT *element= tree->root;
- TREE_ELEMENT **last_left_step_parent= NULL, **last_right_step_parent= NULL;
- TREE_ELEMENT **last_equal_element= NULL;
-
-/*
- TODO: support for HA_READ_KEY_OR_PREV, HA_READ_PREFIX flags if needed.
-*/
-
- *parents = &tree->null_element;
- while (element != &tree->null_element)
- {
- *++parents= element;
- if ((cmp= (*tree->compare)(custom_arg, ELEMENT_KEY(tree, element),
- key)) == 0)
- {
- switch (flag) {
- case HA_READ_KEY_EXACT:
- case HA_READ_KEY_OR_NEXT:
- case HA_READ_BEFORE_KEY:
- last_equal_element= parents;
- cmp= 1;
- break;
- case HA_READ_AFTER_KEY:
- cmp= -1;
- break;
- case HA_READ_PREFIX_LAST:
- case HA_READ_PREFIX_LAST_OR_PREV:
- last_equal_element= parents;
- cmp= -1;
- break;
- default:
- return NULL;
- }
- }
- if (cmp < 0) /* element < key */
- {
- last_right_step_parent= parents;
- element= element->right;
- }
- else
- {
- last_left_step_parent= parents;
- element= element->left;
- }
- }
- switch (flag) {
- case HA_READ_KEY_EXACT:
- case HA_READ_PREFIX_LAST:
- *last_pos= last_equal_element;
- break;
- case HA_READ_KEY_OR_NEXT:
- *last_pos= last_equal_element ? last_equal_element : last_left_step_parent;
- break;
- case HA_READ_AFTER_KEY:
- *last_pos= last_left_step_parent;
- break;
- case HA_READ_PREFIX_LAST_OR_PREV:
- *last_pos= last_equal_element ? last_equal_element : last_right_step_parent;
- break;
- case HA_READ_BEFORE_KEY:
- *last_pos= last_right_step_parent;
- break;
- default:
- return NULL;
- }
- return *last_pos ? ELEMENT_KEY(tree, **last_pos) : NULL;
-}
-
-/*
- Search first (the most left) or last (the most right) tree element
-*/
-void *tree_search_edge(TREE *tree, TREE_ELEMENT **parents,
- TREE_ELEMENT ***last_pos, int child_offs)
-{
- TREE_ELEMENT *element= tree->root;
-
- *parents= &tree->null_element;
- while (element != &tree->null_element)
- {
- *++parents= element;
- element= ELEMENT_CHILD(element, child_offs);
- }
- *last_pos= parents;
- return **last_pos != &tree->null_element ?
- ELEMENT_KEY(tree, **last_pos) : NULL;
-}
-
-void *tree_search_next(TREE *tree, TREE_ELEMENT ***last_pos, int l_offs,
- int r_offs)
-{
- TREE_ELEMENT *x= **last_pos;
-
- if (ELEMENT_CHILD(x, r_offs) != &tree->null_element)
- {
- x= ELEMENT_CHILD(x, r_offs);
- *++*last_pos= x;
- while (ELEMENT_CHILD(x, l_offs) != &tree->null_element)
- {
- x= ELEMENT_CHILD(x, l_offs);
- *++*last_pos= x;
- }
- return ELEMENT_KEY(tree, x);
- }
- else
- {
- TREE_ELEMENT *y= *--*last_pos;
- while (y != &tree->null_element && x == ELEMENT_CHILD(y, r_offs))
- {
- x= y;
- y= *--*last_pos;
- }
- return y == &tree->null_element ? NULL : ELEMENT_KEY(tree, y);
- }
-}
-
-/*
- Expected that tree is fully balanced
- (each path from root to leaf has the same length)
-*/
-ha_rows tree_record_pos(TREE *tree, const void *key,
- enum ha_rkey_function flag, void *custom_arg)
-{
- int cmp;
- TREE_ELEMENT *element= tree->root;
- double left= 1;
- double right= tree->elements_in_tree;
-
- while (element != &tree->null_element)
- {
- if ((cmp= (*tree->compare)(custom_arg, ELEMENT_KEY(tree, element),
- key)) == 0)
- {
- switch (flag) {
- case HA_READ_KEY_EXACT:
- case HA_READ_BEFORE_KEY:
- cmp= 1;
- break;
- case HA_READ_AFTER_KEY:
- cmp= -1;
- break;
- default:
- return HA_POS_ERROR;
- }
- }
- if (cmp < 0) /* element < key */
- {
- element= element->right;
- left= (left + right) / 2;
- }
- else
- {
- element= element->left;
- right= (left + right) / 2;
- }
- }
- switch (flag) {
- case HA_READ_KEY_EXACT:
- case HA_READ_BEFORE_KEY:
- return (ha_rows) right;
- case HA_READ_AFTER_KEY:
- return (ha_rows) left;
- default:
- return HA_POS_ERROR;
- }
-}
-
-int tree_walk(TREE *tree, tree_walk_action action, void *argument, TREE_WALK visit)
-{
- switch (visit) {
- case left_root_right:
- return tree_walk_left_root_right(tree,tree->root,action,argument);
- case right_root_left:
- return tree_walk_right_root_left(tree,tree->root,action,argument);
- }
- return 0; /* Keep gcc happy */
-}
-
-static int tree_walk_left_root_right(TREE *tree, TREE_ELEMENT *element, tree_walk_action action, void *argument)
-{
- int error;
- if (element->left) /* Not null_element */
- {
- if ((error=tree_walk_left_root_right(tree,element->left,action,
- argument)) == 0 &&
- (error=(*action)(ELEMENT_KEY(tree,element),
- (element_count) element->count,
- argument)) == 0)
- error=tree_walk_left_root_right(tree,element->right,action,argument);
- return error;
- }
- return 0;
-}
-
-static int tree_walk_right_root_left(TREE *tree, TREE_ELEMENT *element, tree_walk_action action, void *argument)
-{
- int error;
- if (element->right) /* Not null_element */
- {
- if ((error=tree_walk_right_root_left(tree,element->right,action,
- argument)) == 0 &&
- (error=(*action)(ELEMENT_KEY(tree,element),
- (element_count) element->count,
- argument)) == 0)
- error=tree_walk_right_root_left(tree,element->left,action,argument);
- return error;
- }
- return 0;
-}
-
-
- /* Functions to fix up the tree after insert and delete */
-
-static void left_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf)
-{
- TREE_ELEMENT *y;
-
- y=leaf->right;
- leaf->right=y->left;
- parent[0]=y;
- y->left=leaf;
-}
-
-static void right_rotate(TREE_ELEMENT **parent, TREE_ELEMENT *leaf)
-{
- TREE_ELEMENT *x;
-
- x=leaf->left;
- leaf->left=x->right;
- parent[0]=x;
- x->right=leaf;
-}
-
-static void rb_insert(TREE *tree, TREE_ELEMENT ***parent, TREE_ELEMENT *leaf)
-{
- TREE_ELEMENT *y,*par,*par2;
-
- leaf->colour=RED;
- while (leaf != tree->root && (par=parent[-1][0])->colour == RED)
- {
- if (par == (par2=parent[-2][0])->left)
- {
- y= par2->right;
- if (y->colour == RED)
- {
- par->colour=BLACK;
- y->colour=BLACK;
- leaf=par2;
- parent-=2;
- leaf->colour=RED; /* And the loop continues */
- }
- else
- {
- if (leaf == par->right)
- {
- left_rotate(parent[-1],par);
- par=leaf; /* leaf is now parent to old leaf */
- }
- par->colour=BLACK;
- par2->colour=RED;
- right_rotate(parent[-2],par2);
- break;
- }
- }
- else
- {
- y= par2->left;
- if (y->colour == RED)
- {
- par->colour=BLACK;
- y->colour=BLACK;
- leaf=par2;
- parent-=2;
- leaf->colour=RED; /* And the loop continues */
- }
- else
- {
- if (leaf == par->left)
- {
- right_rotate(parent[-1],par);
- par=leaf;
- }
- par->colour=BLACK;
- par2->colour=RED;
- left_rotate(parent[-2],par2);
- break;
- }
- }
- }
- tree->root->colour=BLACK;
-}
-
-static void rb_delete_fixup(TREE *tree, TREE_ELEMENT ***parent)
-{
- TREE_ELEMENT *x,*w,*par;
-
- x= **parent;
- while (x != tree->root && x->colour == BLACK)
- {
- if (x == (par=parent[-1][0])->left)
- {
- w=par->right;
- if (w->colour == RED)
- {
- w->colour=BLACK;
- par->colour=RED;
- left_rotate(parent[-1],par);
- parent[0]= &w->left;
- *++parent= &par->left;
- w=par->right;
- }
- if (w->left->colour == BLACK && w->right->colour == BLACK)
- {
- w->colour=RED;
- x=par;
- parent--;
- }
- else
- {
- if (w->right->colour == BLACK)
- {
- w->left->colour=BLACK;
- w->colour=RED;
- right_rotate(&par->right,w);
- w=par->right;
- }
- w->colour=par->colour;
- par->colour=BLACK;
- w->right->colour=BLACK;
- left_rotate(parent[-1],par);
- x=tree->root;
- break;
- }
- }
- else
- {
- w=par->left;
- if (w->colour == RED)
- {
- w->colour=BLACK;
- par->colour=RED;
- right_rotate(parent[-1],par);
- parent[0]= &w->right;
- *++parent= &par->right;
- w=par->left;
- }
- if (w->right->colour == BLACK && w->left->colour == BLACK)
- {
- w->colour=RED;
- x=par;
- parent--;
- }
- else
- {
- if (w->left->colour == BLACK)
- {
- w->right->colour=BLACK;
- w->colour=RED;
- left_rotate(&par->left,w);
- w=par->left;
- }
- w->colour=par->colour;
- par->colour=BLACK;
- w->left->colour=BLACK;
- right_rotate(parent[-1],par);
- x=tree->root;
- break;
- }
- }
- }
- x->colour=BLACK;
-}
-
-#ifndef DBUG_OFF
-
- /* Test that the proporties for a red-black tree holds */
-
-static int test_rb_tree(TREE_ELEMENT *element)
-{
- int count_l,count_r;
-
- if (!element->left)
- return 0; /* Found end of tree */
- if (element->colour == RED &&
- (element->left->colour == RED || element->right->colour == RED))
- {
- printf("Wrong tree: Found two red in a row\n");
- return -1;
- }
- count_l=test_rb_tree(element->left);
- count_r=test_rb_tree(element->right);
- if (count_l >= 0 && count_r >= 0)
- {
- if (count_l == count_r)
- return count_l+(element->colour == BLACK);
- printf("Wrong tree: Incorrect black-count: %d - %d\n",count_l,count_r);
- }
- return -1;
-}
-#endif
diff --git a/dep/mysqllite/mysys/typelib.c b/dep/mysqllite/mysys/typelib.c
deleted file mode 100644
index 7681ff581ac..00000000000
--- a/dep/mysqllite/mysys/typelib.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Functions to handle typelib */
-
-#include "mysys_priv.h"
-#include <m_string.h>
-#include <m_ctype.h>
-
-
-#define is_field_separator(X) ((X) == ',' || (X) == '=')
-
-int find_type_or_exit(const char *x, TYPELIB *typelib, const char *option)
-{
- int res;
- const char **ptr;
-
- if ((res= find_type((char *) x, typelib, 2)) <= 0)
- {
- ptr= typelib->type_names;
- if (!*x)
- fprintf(stderr, "No option given to %s\n", option);
- else
- fprintf(stderr, "Unknown option to %s: %s\n", option, x);
- fprintf(stderr, "Alternatives are: '%s'", *ptr);
- while (*++ptr)
- fprintf(stderr, ",'%s'", *ptr);
- fprintf(stderr, "\n");
- exit(1);
- }
- return res;
-}
-
-
-/**
- Search after a string in a list of strings. Endspace in x is not compared.
-
- @param x String to find
- @param lib TYPELIB (struct of pointer to values + count)
- @param full_name bitmap of what to do
- If & 1 accept only whole names
- If & 2 don't expand if half field
- If & 4 allow #number# as type
- If & 8 use ',' as string terminator
-
- @note
- If part, uniq field is found and full_name == 0 then x is expanded
- to full field.
-
- @retval
- -1 Too many matching values
- @retval
- 0 No matching value
- @retval
- >0 Offset+1 in typelib for matched string
-*/
-
-
-int find_type(char *x, const TYPELIB *typelib, uint full_name)
-{
- int find,pos;
- int UNINIT_VAR(findpos); /* guarded by find */
- reg1 char * i;
- reg2 const char *j;
- DBUG_ENTER("find_type");
- DBUG_PRINT("enter",("x: '%s' lib: 0x%lx", x, (long) typelib));
-
- if (!typelib->count)
- {
- DBUG_PRINT("exit",("no count"));
- DBUG_RETURN(0);
- }
- find=0;
- for (pos=0 ; (j=typelib->type_names[pos]) ; pos++)
- {
- for (i=x ;
- *i && (!(full_name & 8) || !is_field_separator(*i)) &&
- my_toupper(&my_charset_latin1,*i) ==
- my_toupper(&my_charset_latin1,*j) ; i++, j++) ;
- if (! *j)
- {
- while (*i == ' ')
- i++; /* skip_end_space */
- if (! *i || ((full_name & 8) && is_field_separator(*i)))
- DBUG_RETURN(pos+1);
- }
- if ((!*i && (!(full_name & 8) || !is_field_separator(*i))) &&
- (!*j || !(full_name & 1)))
- {
- find++;
- findpos=pos;
- }
- }
- if (find == 0 && (full_name & 4) && x[0] == '#' && strend(x)[-1] == '#' &&
- (findpos=atoi(x+1)-1) >= 0 && (uint) findpos < typelib->count)
- find=1;
- else if (find == 0 || ! x[0])
- {
- DBUG_PRINT("exit",("Couldn't find type"));
- DBUG_RETURN(0);
- }
- else if (find != 1 || (full_name & 1))
- {
- DBUG_PRINT("exit",("Too many possybilities"));
- DBUG_RETURN(-1);
- }
- if (!(full_name & 2))
- (void) strmov(x,typelib->type_names[findpos]);
- DBUG_RETURN(findpos+1);
-} /* find_type */
-
-
-/**
- Get name of type nr
-
- @note
- first type is 1, 0 = empty field
-*/
-
-void make_type(register char * to, register uint nr,
- register TYPELIB *typelib)
-{
- DBUG_ENTER("make_type");
- if (!nr)
- to[0]=0;
- else
- (void) strmov(to,get_type(typelib,nr-1));
- DBUG_VOID_RETURN;
-} /* make_type */
-
-
-/**
- Get type
-
- @note
- first type is 0
-*/
-
-const char *get_type(TYPELIB *typelib, uint nr)
-{
- if (nr < (uint) typelib->count && typelib->type_names)
- return(typelib->type_names[nr]);
- return "?";
-}
-
-
-/**
- Create an integer value to represent the supplied comma-seperated
- string where each string in the TYPELIB denotes a bit position.
-
- @param x string to decompose
- @param lib TYPELIB (struct of pointer to values + count)
- @param err index (not char position) of string element which was not
- found or 0 if there was no error
-
- @retval
- a integer representation of the supplied string
-*/
-
-my_ulonglong find_typeset(char *x, TYPELIB *lib, int *err)
-{
- my_ulonglong result;
- int find;
- char *i;
- DBUG_ENTER("find_set");
- DBUG_PRINT("enter",("x: '%s' lib: 0x%lx", x, (long) lib));
-
- if (!lib->count)
- {
- DBUG_PRINT("exit",("no count"));
- DBUG_RETURN(0);
- }
- result= 0;
- *err= 0;
- while (*x)
- {
- (*err)++;
- i= x;
- while (*x && !is_field_separator(*x))
- x++;
- if (x[0] && x[1]) /* skip separator if found */
- x++;
- if ((find= find_type(i, lib, 2 | 8) - 1) < 0)
- DBUG_RETURN(0);
- result|= (ULL(1) << find);
- }
- *err= 0;
- DBUG_RETURN(result);
-} /* find_set */
-
-
-/**
- Create a copy of a specified TYPELIB structure.
-
- @param root pointer to a MEM_ROOT object for allocations
- @param from pointer to a source TYPELIB structure
-
- @retval
- pointer to the new TYPELIB structure on successful copy
- @retval
- NULL otherwise
-*/
-
-TYPELIB *copy_typelib(MEM_ROOT *root, TYPELIB *from)
-{
- TYPELIB *to;
- uint i;
-
- if (!from)
- return NULL;
-
- if (!(to= (TYPELIB*) alloc_root(root, sizeof(TYPELIB))))
- return NULL;
-
- if (!(to->type_names= (const char **)
- alloc_root(root, (sizeof(char *) + sizeof(int)) * (from->count + 1))))
- return NULL;
- to->type_lengths= (unsigned int *)(to->type_names + from->count + 1);
- to->count= from->count;
- if (from->name)
- {
- if (!(to->name= strdup_root(root, from->name)))
- return NULL;
- }
- else
- to->name= NULL;
-
- for (i= 0; i < from->count; i++)
- {
- if (!(to->type_names[i]= strmake_root(root, from->type_names[i],
- from->type_lengths[i])))
- return NULL;
- to->type_lengths[i]= from->type_lengths[i];
- }
- to->type_names[to->count]= NULL;
- to->type_lengths[to->count]= 0;
-
- return to;
-}
-
-
-static const char *on_off_default_names[]= { "off","on","default", 0};
-static TYPELIB on_off_default_typelib= {array_elements(on_off_default_names)-1,
- "", on_off_default_names, 0};
-
-/**
- Parse a TYPELIB name from the buffer
-
- @param lib Set of names to scan for.
- @param strpos INOUT Start of the buffer (updated to point to the next
- character after the name)
- @param end End of the buffer
-
- @note
- The buffer is assumed to contain one of the names specified in the TYPELIB,
- followed by comma, '=', or end of the buffer.
-
- @retval
- 0 No matching name
- @retval
- >0 Offset+1 in typelib for matched name
-*/
-
-static uint parse_name(const TYPELIB *lib, const char **strpos, const char *end)
-{
- const char *pos= *strpos;
- uint find= find_type((char*)pos, lib, 8);
- for (; pos != end && *pos != '=' && *pos !=',' ; pos++);
- *strpos= pos;
- return find;
-}
-
-/**
- Parse and apply a set of flag assingments
-
- @param lib Flag names
- @param default_name Number of "default" in the typelib
- @param cur_set Current set of flags (start from this state)
- @param default_set Default set of flags (use this for assign-default
- keyword and flag=default assignments)
- @param str String to be parsed
- @param length Length of the string
- @param err_pos OUT If error, set to point to start of wrong set string
- NULL on success
- @param err_len OUT If error, set to the length of wrong set string
-
- @details
- Parse a set of flag assignments, that is, parse a string in form:
-
- param_name1=value1,param_name2=value2,...
-
- where the names are specified in the TYPELIB, and each value can be
- either 'on','off', or 'default'. Setting the same name twice is not
- allowed.
-
- Besides param=val assignments, we support the "default" keyword (keyword
- #default_name in the typelib). It can be used one time, if specified it
- causes us to build the new set over the default_set rather than cur_set
- value.
-
- @note
- it's not charset aware
-
- @retval
- Parsed set value if (*errpos == NULL), otherwise undefined
-*/
-
-my_ulonglong find_set_from_flags(const TYPELIB *lib, uint default_name,
- my_ulonglong cur_set, my_ulonglong default_set,
- const char *str, uint length,
- char **err_pos, uint *err_len)
-{
- const char *end= str + length;
- my_ulonglong flags_to_set= 0, flags_to_clear= 0, res;
- my_bool set_defaults= 0;
-
- *err_pos= 0; /* No error yet */
- if (str != end)
- {
- const char *start= str;
- for (;;)
- {
- const char *pos= start;
- uint flag_no, value;
-
- if (!(flag_no= parse_name(lib, &pos, end)))
- goto err;
-
- if (flag_no == default_name)
- {
- /* Using 'default' twice isn't allowed. */
- if (set_defaults)
- goto err;
- set_defaults= TRUE;
- }
- else
- {
- my_ulonglong bit= (1ULL << (flag_no - 1));
- /* parse the '=on|off|default' */
- if ((flags_to_clear | flags_to_set) & bit ||
- pos >= end || *pos++ != '=' ||
- !(value= parse_name(&on_off_default_typelib, &pos, end)))
- goto err;
-
- if (value == 1) /* this is '=off' */
- flags_to_clear|= bit;
- else if (value == 2) /* this is '=on' */
- flags_to_set|= bit;
- else /* this is '=default' */
- {
- if (default_set & bit)
- flags_to_set|= bit;
- else
- flags_to_clear|= bit;
- }
- }
- if (pos >= end)
- break;
-
- if (*pos++ != ',')
- goto err;
-
- start=pos;
- continue;
- err:
- *err_pos= (char*)start;
- *err_len= end - start;
- break;
- }
- }
- res= set_defaults? default_set : cur_set;
- res|= flags_to_set;
- res&= ~flags_to_clear;
- return res;
-}
-
diff --git a/dep/mysqllite/sql-common/client.c b/dep/mysqllite/sql-common/client.c
deleted file mode 100644
index 354c04b717b..00000000000
--- a/dep/mysqllite/sql-common/client.c
+++ /dev/null
@@ -1,4273 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- This file is included by both libmysql.c (the MySQL client C API)
- and the mysqld server to connect to another MYSQL server.
-
- The differences for the two cases are:
-
- - Things that only works for the client:
- - Trying to automaticly determinate user name if not supplied to
- mysql_real_connect()
- - Support for reading local file with LOAD DATA LOCAL
- - SHARED memory handling
- - Prepared statements
-
- - Things that only works for the server
- - Alarm handling on connect
-
- In all other cases, the code should be idential for the client and
- server.
-*/
-
-#include <my_global.h>
-
-#include "mysql.h"
-
-#ifndef __WIN__
-#include <netdb.h>
-#endif
-
-/* Remove client convenience wrappers */
-#undef max_allowed_packet
-#undef net_buffer_length
-
-#ifdef EMBEDDED_LIBRARY
-
-#undef MYSQL_SERVER
-
-#ifndef MYSQL_CLIENT
-#define MYSQL_CLIENT
-#endif
-
-#define CLI_MYSQL_REAL_CONNECT STDCALL cli_mysql_real_connect
-
-#undef net_flush
-my_bool net_flush(NET *net);
-
-#else /*EMBEDDED_LIBRARY*/
-#define CLI_MYSQL_REAL_CONNECT STDCALL mysql_real_connect
-#endif /*EMBEDDED_LIBRARY*/
-#include <my_sys.h>
-#include <mysys_err.h>
-#include <m_string.h>
-#include <m_ctype.h>
-#include "mysql_version.h"
-#include "mysqld_error.h"
-#include "errmsg.h"
-#include <violite.h>
-#if !defined(__WIN__)
-#include <my_pthread.h> /* because of signal() */
-#endif /* !defined(__WIN__) */
-
-#include <sys/stat.h>
-#include <signal.h>
-#include <time.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#if !defined(__WIN__)
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#ifdef HAVE_SELECT_H
-# include <select.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif /* !defined(__WIN__) */
-#ifdef HAVE_SYS_UN_H
-# include <sys/un.h>
-#endif
-
-#if defined(__WIN__)
-#define perror(A)
-#else
-#include <errno.h>
-#define SOCKET_ERROR -1
-#endif
-
-#ifdef __WIN__
-#define CONNECT_TIMEOUT 20
-#else
-#define CONNECT_TIMEOUT 0
-#endif
-
-#include "client_settings.h"
-#include <sql_common.h>
-#include <mysql/client_plugin.h>
-#define native_password_plugin_name "mysql_native_password"
-#define old_password_plugin_name "mysql_old_password"
-
-
-uint mysql_port=0;
-char *mysql_unix_port= 0;
-const char *unknown_sqlstate= "HY000";
-const char *not_error_sqlstate= "00000";
-const char *cant_connect_sqlstate= "08001";
-#ifdef HAVE_SMEM
-char *shared_memory_base_name= 0;
-const char *def_shared_memory_base_name= default_shared_memory_base_name;
-#endif
-
-static void mysql_close_free_options(MYSQL *mysql);
-static void mysql_close_free(MYSQL *mysql);
-static void mysql_prune_stmt_list(MYSQL *mysql);
-
-#if !defined(__WIN__)
-static int wait_for_data(my_socket fd, uint timeout);
-#endif
-
-CHARSET_INFO *default_client_charset_info = &my_charset_latin1;
-
-/* Server error code and message */
-unsigned int mysql_server_last_errno;
-char mysql_server_last_error[MYSQL_ERRMSG_SIZE];
-
-/****************************************************************************
- A modified version of connect(). my_connect() allows you to specify
- a timeout value, in seconds, that we should wait until we
- derermine we can't connect to a particular host. If timeout is 0,
- my_connect() will behave exactly like connect().
-
- Base version coded by Steve Bernacki, Jr. <steve@navinet.net>
-*****************************************************************************/
-
-int my_connect(my_socket fd, const struct sockaddr *name, uint namelen,
- uint timeout)
-{
-#if defined(__WIN__)
- DBUG_ENTER("my_connect");
- DBUG_RETURN(connect(fd, (struct sockaddr*) name, namelen));
-#else
- int flags, res, s_err;
- DBUG_ENTER("my_connect");
- DBUG_PRINT("enter", ("fd: %d timeout: %u", fd, timeout));
-
- /*
- If they passed us a timeout of zero, we should behave
- exactly like the normal connect() call does.
- */
-
- if (timeout == 0)
- DBUG_RETURN(connect(fd, (struct sockaddr*) name, namelen));
-
- flags = fcntl(fd, F_GETFL, 0); /* Set socket to not block */
-#ifdef O_NONBLOCK
- fcntl(fd, F_SETFL, flags | O_NONBLOCK); /* and save the flags.. */
-#endif
-
- DBUG_PRINT("info", ("connecting non-blocking"));
- res= connect(fd, (struct sockaddr*) name, namelen);
- DBUG_PRINT("info", ("connect result: %d errno: %d", res, errno));
- s_err= errno; /* Save the error... */
- fcntl(fd, F_SETFL, flags);
- if ((res != 0) && (s_err != EINPROGRESS))
- {
- errno= s_err; /* Restore it */
- DBUG_RETURN(-1);
- }
- if (res == 0) /* Connected quickly! */
- DBUG_RETURN(0);
- DBUG_RETURN(wait_for_data(fd, timeout));
-#endif
-}
-
-
-/*
- Wait up to timeout seconds for a connection to be established.
-
- We prefer to do this with poll() as there is no limitations with this.
- If not, we will use select()
-*/
-
-#if !defined(__WIN__)
-
-static int wait_for_data(my_socket fd, uint timeout)
-{
-#ifdef HAVE_POLL
- struct pollfd ufds;
- int res;
- DBUG_ENTER("wait_for_data");
-
- DBUG_PRINT("info", ("polling"));
- ufds.fd= fd;
- ufds.events= POLLIN | POLLPRI;
- if (!(res= poll(&ufds, 1, (int) timeout*1000)))
- {
- DBUG_PRINT("info", ("poll timed out"));
- errno= EINTR;
- DBUG_RETURN(-1);
- }
- DBUG_PRINT("info",
- ("poll result: %d errno: %d revents: 0x%02d events: 0x%02d",
- res, errno, ufds.revents, ufds.events));
- if (res < 0 || !(ufds.revents & (POLLIN | POLLPRI)))
- DBUG_RETURN(-1);
- /*
- At this point, we know that something happened on the socket.
- But this does not means that everything is alright.
- The connect might have failed. We need to retrieve the error code
- from the socket layer. We must return success only if we are sure
- that it was really a success. Otherwise we might prevent the caller
- from trying another address to connect to.
- */
- {
- int s_err;
- socklen_t s_len= sizeof(s_err);
-
- DBUG_PRINT("info", ("Get SO_ERROR from non-blocked connected socket."));
- res= getsockopt(fd, SOL_SOCKET, SO_ERROR, &s_err, &s_len);
- DBUG_PRINT("info", ("getsockopt res: %d s_err: %d", res, s_err));
- if (res)
- DBUG_RETURN(res);
- /* getsockopt() was successful, check the retrieved status value. */
- if (s_err)
- {
- errno= s_err;
- DBUG_RETURN(-1);
- }
- /* Status from connect() is zero. Socket is successfully connected. */
- }
- DBUG_RETURN(0);
-#else
- SOCKOPT_OPTLEN_TYPE s_err_size = sizeof(uint);
- fd_set sfds;
- struct timeval tv;
- time_t start_time, now_time;
- int res, s_err;
- DBUG_ENTER("wait_for_data");
-
- if (fd >= FD_SETSIZE) /* Check if wrong error */
- DBUG_RETURN(0); /* Can't use timeout */
-
- /*
- Our connection is "in progress." We can use the select() call to wait
- up to a specified period of time for the connection to suceed.
- If select() returns 0 (after waiting howevermany seconds), our socket
- never became writable (host is probably unreachable.) Otherwise, if
- select() returns 1, then one of two conditions exist:
-
- 1. An error occured. We use getsockopt() to check for this.
- 2. The connection was set up sucessfully: getsockopt() will
- return 0 as an error.
-
- Thanks goes to Andrew Gierth <andrew@erlenstar.demon.co.uk>
- who posted this method of timing out a connect() in
- comp.unix.programmer on August 15th, 1997.
- */
-
- FD_ZERO(&sfds);
- FD_SET(fd, &sfds);
- /*
- select could be interrupted by a signal, and if it is,
- the timeout should be adjusted and the select restarted
- to work around OSes that don't restart select and
- implementations of select that don't adjust tv upon
- failure to reflect the time remaining
- */
- start_time= my_time(0);
- for (;;)
- {
- tv.tv_sec = (long) timeout;
- tv.tv_usec = 0;
-#if defined(HPUX10)
- if ((res = select(fd+1, NULL, (int*) &sfds, NULL, &tv)) > 0)
- break;
-#else
- if ((res = select(fd+1, NULL, &sfds, NULL, &tv)) > 0)
- break;
-#endif
- if (res == 0) /* timeout */
- DBUG_RETURN(-1);
- now_time= my_time(0);
- timeout-= (uint) (now_time - start_time);
- if (errno != EINTR || (int) timeout <= 0)
- DBUG_RETURN(-1);
- }
-
- /*
- select() returned something more interesting than zero, let's
- see if we have any errors. If the next two statements pass,
- we've got an open socket!
- */
-
- s_err=0;
- if (getsockopt(fd, SOL_SOCKET, SO_ERROR, (char*) &s_err, &s_err_size) != 0)
- DBUG_RETURN(-1);
-
- if (s_err)
- { /* getsockopt could succeed */
- errno = s_err;
- DBUG_RETURN(-1); /* but return an error... */
- }
- DBUG_RETURN(0); /* ok */
-#endif /* HAVE_POLL */
-}
-#endif /* !defined(__WIN__) */
-
-/**
- Set the internal error message to mysql handler
-
- @param mysql connection handle (client side)
- @param errcode CR_ error code, passed to ER macro to get
- error text
- @parma sqlstate SQL standard sqlstate
-*/
-
-void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate)
-{
- NET *net;
- DBUG_ENTER("set_mysql_error");
- DBUG_PRINT("enter", ("error :%d '%s'", errcode, ER(errcode)));
- DBUG_ASSERT(mysql != 0);
-
- if (mysql)
- {
- net= &mysql->net;
- net->last_errno= errcode;
- strmov(net->last_error, ER(errcode));
- strmov(net->sqlstate, sqlstate);
- }
- else
- {
- mysql_server_last_errno= errcode;
- strmov(mysql_server_last_error, ER(errcode));
- }
- DBUG_VOID_RETURN;
-}
-
-/**
- Clear possible error state of struct NET
-
- @param net clear the state of the argument
-*/
-
-void net_clear_error(NET *net)
-{
- net->last_errno= 0;
- net->last_error[0]= '\0';
- strmov(net->sqlstate, not_error_sqlstate);
-}
-
-/**
- Set an error message on the client.
-
- @param mysql connection handle
- @param errcode CR_* errcode, for client errors
- @param sqlstate SQL standard sql state, unknown_sqlstate for the
- majority of client errors.
- @param format error message template, in sprintf format
- @param ... variable number of arguments
-*/
-
-void set_mysql_extended_error(MYSQL *mysql, int errcode,
- const char *sqlstate,
- const char *format, ...)
-{
- NET *net;
- va_list args;
- DBUG_ENTER("set_mysql_extended_error");
- DBUG_PRINT("enter", ("error :%d '%s'", errcode, format));
- DBUG_ASSERT(mysql != 0);
-
- net= &mysql->net;
- net->last_errno= errcode;
- va_start(args, format);
- my_vsnprintf(net->last_error, sizeof(net->last_error)-1,
- format, args);
- va_end(args);
- strmov(net->sqlstate, sqlstate);
-
- DBUG_VOID_RETURN;
-}
-
-
-
-/*
- Create a named pipe connection
-*/
-
-#ifdef __WIN__
-
-HANDLE create_named_pipe(MYSQL *mysql, uint connect_timeout, char **arg_host,
- char **arg_unix_socket)
-{
- HANDLE hPipe=INVALID_HANDLE_VALUE;
- char pipe_name[1024];
- DWORD dwMode;
- int i;
- my_bool testing_named_pipes=0;
- char *host= *arg_host, *unix_socket= *arg_unix_socket;
-
- if ( ! unix_socket || (unix_socket)[0] == 0x00)
- unix_socket = mysql_unix_port;
- if (!host || !strcmp(host,LOCAL_HOST))
- host=LOCAL_HOST_NAMEDPIPE;
-
-
- pipe_name[sizeof(pipe_name)-1]= 0; /* Safety if too long string */
- strxnmov(pipe_name, sizeof(pipe_name)-1, "\\\\", host, "\\pipe\\",
- unix_socket, NullS);
- DBUG_PRINT("info",("Server name: '%s'. Named Pipe: %s", host, unix_socket));
-
- for (i=0 ; i < 100 ; i++) /* Don't retry forever */
- {
- if ((hPipe = CreateFile(pipe_name,
- GENERIC_READ | GENERIC_WRITE,
- 0,
- NULL,
- OPEN_EXISTING,
- FILE_FLAG_OVERLAPPED,
- NULL )) != INVALID_HANDLE_VALUE)
- break;
- if (GetLastError() != ERROR_PIPE_BUSY)
- {
- set_mysql_extended_error(mysql, CR_NAMEDPIPEOPEN_ERROR,
- unknown_sqlstate, ER(CR_NAMEDPIPEOPEN_ERROR),
- host, unix_socket, (ulong) GetLastError());
- return INVALID_HANDLE_VALUE;
- }
- /* wait for for an other instance */
- if (! WaitNamedPipe(pipe_name, connect_timeout*1000) )
- {
- set_mysql_extended_error(mysql, CR_NAMEDPIPEWAIT_ERROR, unknown_sqlstate,
- ER(CR_NAMEDPIPEWAIT_ERROR),
- host, unix_socket, (ulong) GetLastError());
- return INVALID_HANDLE_VALUE;
- }
- }
- if (hPipe == INVALID_HANDLE_VALUE)
- {
- set_mysql_extended_error(mysql, CR_NAMEDPIPEOPEN_ERROR, unknown_sqlstate,
- ER(CR_NAMEDPIPEOPEN_ERROR), host, unix_socket,
- (ulong) GetLastError());
- return INVALID_HANDLE_VALUE;
- }
- dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
- if ( !SetNamedPipeHandleState(hPipe, &dwMode, NULL, NULL) )
- {
- CloseHandle( hPipe );
- set_mysql_extended_error(mysql, CR_NAMEDPIPESETSTATE_ERROR,
- unknown_sqlstate, ER(CR_NAMEDPIPESETSTATE_ERROR),
- host, unix_socket, (ulong) GetLastError());
- return INVALID_HANDLE_VALUE;
- }
- *arg_host=host ; *arg_unix_socket=unix_socket; /* connect arg */
- return (hPipe);
-}
-#endif
-
-
-/*
- Create new shared memory connection, return handler of connection
-
- SYNOPSIS
- create_shared_memory()
- mysql Pointer of mysql structure
- net Pointer of net structure
- connect_timeout Timeout of connection
-*/
-
-#ifdef HAVE_SMEM
-HANDLE create_shared_memory(MYSQL *mysql,NET *net, uint connect_timeout)
-{
- ulong smem_buffer_length = shared_memory_buffer_length + 4;
- /*
- event_connect_request is event object for start connection actions
- event_connect_answer is event object for confirm, that server put data
- handle_connect_file_map is file-mapping object, use for create shared
- memory
- handle_connect_map is pointer on shared memory
- handle_map is pointer on shared memory for client
- event_server_wrote,
- event_server_read,
- event_client_wrote,
- event_client_read are events for transfer data between server and client
- handle_file_map is file-mapping object, use for create shared memory
- */
- HANDLE event_connect_request = NULL;
- HANDLE event_connect_answer = NULL;
- HANDLE handle_connect_file_map = NULL;
- char *handle_connect_map = NULL;
-
- char *handle_map = NULL;
- HANDLE event_server_wrote = NULL;
- HANDLE event_server_read = NULL;
- HANDLE event_client_wrote = NULL;
- HANDLE event_client_read = NULL;
- HANDLE event_conn_closed = NULL;
- HANDLE handle_file_map = NULL;
- ulong connect_number;
- char connect_number_char[22], *p;
- char *tmp= NULL;
- char *suffix_pos;
- DWORD error_allow = 0;
- DWORD error_code = 0;
- DWORD event_access_rights= SYNCHRONIZE | EVENT_MODIFY_STATE;
- char *shared_memory_base_name = mysql->options.shared_memory_base_name;
- static const char *name_prefixes[] = {"","Global\\"};
- const char *prefix;
- int i;
-
- /*
- If this is NULL, somebody freed the MYSQL* options. mysql_close()
- is a good candidate. We don't just silently (re)set it to
- def_shared_memory_base_name as that would create really confusing/buggy
- behavior if the user passed in a different name on the command-line or
- in a my.cnf.
- */
- DBUG_ASSERT(shared_memory_base_name != NULL);
-
- /*
- get enough space base-name + '_' + longest suffix we might ever send
- */
- if (!(tmp= (char *)my_malloc(strlen(shared_memory_base_name) + 32L, MYF(MY_FAE))))
- goto err;
-
- /*
- The name of event and file-mapping events create agree next rule:
- shared_memory_base_name+unique_part
- Where:
- shared_memory_base_name is unique value for each server
- unique_part is uniquel value for each object (events and file-mapping)
- */
- for (i = 0; i< array_elements(name_prefixes); i++)
- {
- prefix= name_prefixes[i];
- suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", NullS);
- strmov(suffix_pos, "CONNECT_REQUEST");
- event_connect_request= OpenEvent(event_access_rights, FALSE, tmp);
- if (event_connect_request)
- {
- break;
- }
- }
- if (!event_connect_request)
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR;
- goto err;
- }
- strmov(suffix_pos, "CONNECT_ANSWER");
- if (!(event_connect_answer= OpenEvent(event_access_rights,FALSE,tmp)))
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR;
- goto err;
- }
- strmov(suffix_pos, "CONNECT_DATA");
- if (!(handle_connect_file_map= OpenFileMapping(FILE_MAP_WRITE,FALSE,tmp)))
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR;
- goto err;
- }
- if (!(handle_connect_map= MapViewOfFile(handle_connect_file_map,
- FILE_MAP_WRITE,0,0,sizeof(DWORD))))
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_MAP_ERROR;
- goto err;
- }
-
- /* Send to server request of connection */
- if (!SetEvent(event_connect_request))
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_SET_ERROR;
- goto err;
- }
-
- /* Wait of answer from server */
- if (WaitForSingleObject(event_connect_answer,connect_timeout*1000) !=
- WAIT_OBJECT_0)
- {
- error_allow = CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR;
- goto err;
- }
-
- /* Get number of connection */
- connect_number = uint4korr(handle_connect_map);/*WAX2*/
- p= int10_to_str(connect_number, connect_number_char, 10);
-
- /*
- The name of event and file-mapping events create agree next rule:
- shared_memory_base_name+unique_part+number_of_connection
-
- Where:
- shared_memory_base_name is uniquel value for each server
- unique_part is uniquel value for each object (events and file-mapping)
- number_of_connection is number of connection between server and client
- */
- suffix_pos = strxmov(tmp, prefix , shared_memory_base_name, "_", connect_number_char,
- "_", NullS);
- strmov(suffix_pos, "DATA");
- if ((handle_file_map = OpenFileMapping(FILE_MAP_WRITE,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_FILE_MAP_ERROR;
- goto err2;
- }
- if ((handle_map = MapViewOfFile(handle_file_map,FILE_MAP_WRITE,0,0,
- smem_buffer_length)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_MAP_ERROR;
- goto err2;
- }
-
- strmov(suffix_pos, "SERVER_WROTE");
- if ((event_server_wrote = OpenEvent(event_access_rights,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
- goto err2;
- }
-
- strmov(suffix_pos, "SERVER_READ");
- if ((event_server_read = OpenEvent(event_access_rights,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
- goto err2;
- }
-
- strmov(suffix_pos, "CLIENT_WROTE");
- if ((event_client_wrote = OpenEvent(event_access_rights,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
- goto err2;
- }
-
- strmov(suffix_pos, "CLIENT_READ");
- if ((event_client_read = OpenEvent(event_access_rights,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
- goto err2;
- }
-
- strmov(suffix_pos, "CONNECTION_CLOSED");
- if ((event_conn_closed = OpenEvent(event_access_rights,FALSE,tmp)) == NULL)
- {
- error_allow = CR_SHARED_MEMORY_EVENT_ERROR;
- goto err2;
- }
- /*
- Set event that server should send data
- */
- SetEvent(event_server_read);
-
-err2:
- if (error_allow == 0)
- {
- net->vio= vio_new_win32shared_memory(handle_file_map,handle_map,
- event_server_wrote,
- event_server_read,event_client_wrote,
- event_client_read,event_conn_closed);
- }
- else
- {
- error_code = GetLastError();
- if (event_server_read)
- CloseHandle(event_server_read);
- if (event_server_wrote)
- CloseHandle(event_server_wrote);
- if (event_client_read)
- CloseHandle(event_client_read);
- if (event_client_wrote)
- CloseHandle(event_client_wrote);
- if (event_conn_closed)
- CloseHandle(event_conn_closed);
- if (handle_map)
- UnmapViewOfFile(handle_map);
- if (handle_file_map)
- CloseHandle(handle_file_map);
- }
-err:
- my_free(tmp);
- if (error_allow)
- error_code = GetLastError();
- if (event_connect_request)
- CloseHandle(event_connect_request);
- if (event_connect_answer)
- CloseHandle(event_connect_answer);
- if (handle_connect_map)
- UnmapViewOfFile(handle_connect_map);
- if (handle_connect_file_map)
- CloseHandle(handle_connect_file_map);
- if (error_allow)
- {
- if (error_allow == CR_SHARED_MEMORY_EVENT_ERROR)
- set_mysql_extended_error(mysql, error_allow, unknown_sqlstate,
- ER(error_allow), suffix_pos, error_code);
- else
- set_mysql_extended_error(mysql, error_allow, unknown_sqlstate,
- ER(error_allow), error_code);
- return(INVALID_HANDLE_VALUE);
- }
- return(handle_map);
-}
-#endif
-
-/**
- Read a packet from server. Give error message if socket was down
- or packet is an error message
-
- @retval packet_error An error occurred during reading.
- Error message is set.
- @retval
-*/
-
-ulong
-cli_safe_read(MYSQL *mysql)
-{
- NET *net= &mysql->net;
- ulong len=0;
-
- if (net->vio != 0)
- len=my_net_read(net);
-
- if (len == packet_error || len == 0)
- {
- DBUG_PRINT("error",("Wrong connection or packet. fd: %s len: %lu",
- vio_description(net->vio),len));
-#ifdef MYSQL_SERVER
- if (net->vio && vio_was_interrupted(net->vio))
- return (packet_error);
-#endif /*MYSQL_SERVER*/
- end_server(mysql);
- set_mysql_error(mysql, net->last_errno == ER_NET_PACKET_TOO_LARGE ?
- CR_NET_PACKET_TOO_LARGE: CR_SERVER_LOST, unknown_sqlstate);
- return (packet_error);
- }
- if (net->read_pos[0] == 255)
- {
- if (len > 3)
- {
- char *pos=(char*) net->read_pos+1;
- net->last_errno=uint2korr(pos);
- pos+=2;
- len-=2;
- if (protocol_41(mysql) && pos[0] == '#')
- {
- strmake(net->sqlstate, pos+1, SQLSTATE_LENGTH);
- pos+= SQLSTATE_LENGTH+1;
- }
- else
- {
- /*
- The SQL state hasn't been received -- it should be reset to HY000
- (unknown error sql state).
- */
-
- strmov(net->sqlstate, unknown_sqlstate);
- }
-
- (void) strmake(net->last_error,(char*) pos,
- min((uint) len,(uint) sizeof(net->last_error)-1));
- }
- else
- set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate);
- /*
- Cover a protocol design error: error packet does not
- contain the server status. Therefore, the client has no way
- to find out whether there are more result sets of
- a multiple-result-set statement pending. Luckily, in 5.0 an
- error always aborts execution of a statement, wherever it is
- a multi-statement or a stored procedure, so it should be
- safe to unconditionally turn off the flag here.
- */
- mysql->server_status&= ~SERVER_MORE_RESULTS_EXISTS;
-
- DBUG_PRINT("error",("Got error: %d/%s (%s)",
- net->last_errno,
- net->sqlstate,
- net->last_error));
- return(packet_error);
- }
- return len;
-}
-
-void free_rows(MYSQL_DATA *cur)
-{
- if (cur)
- {
- free_root(&cur->alloc,MYF(0));
- my_free(cur);
- }
-}
-
-my_bool
-cli_advanced_command(MYSQL *mysql, enum enum_server_command command,
- const uchar *header, ulong header_length,
- const uchar *arg, ulong arg_length, my_bool skip_check,
- MYSQL_STMT *stmt)
-{
- NET *net= &mysql->net;
- my_bool result= 1;
- my_bool stmt_skip= stmt ? stmt->state != MYSQL_STMT_INIT_DONE : FALSE;
- DBUG_ENTER("cli_advanced_command");
-
- if (mysql->net.vio == 0)
- { /* Do reconnect if possible */
- if (mysql_reconnect(mysql) || stmt_skip)
- DBUG_RETURN(1);
- }
- if (mysql->status != MYSQL_STATUS_READY ||
- mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
- {
- DBUG_PRINT("error",("state: %d", mysql->status));
- set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate);
- DBUG_RETURN(1);
- }
-
- net_clear_error(net);
- mysql->info=0;
- mysql->affected_rows= ~(my_ulonglong) 0;
- /*
- We don't want to clear the protocol buffer on COM_QUIT, because if
- the previous command was a shutdown command, we may have the
- response for the COM_QUIT already in the communication buffer
- */
- net_clear(&mysql->net, (command != COM_QUIT));
-
- if (net_write_command(net,(uchar) command, header, header_length,
- arg, arg_length))
- {
- DBUG_PRINT("error",("Can't send command to server. Error: %d",
- socket_errno));
- if (net->last_errno == ER_NET_PACKET_TOO_LARGE)
- {
- set_mysql_error(mysql, CR_NET_PACKET_TOO_LARGE, unknown_sqlstate);
- goto end;
- }
- end_server(mysql);
- if (mysql_reconnect(mysql) || stmt_skip)
- goto end;
- if (net_write_command(net,(uchar) command, header, header_length,
- arg, arg_length))
- {
- set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate);
- goto end;
- }
- }
- result=0;
- if (!skip_check)
- result= ((mysql->packet_length=cli_safe_read(mysql)) == packet_error ?
- 1 : 0);
-end:
- DBUG_PRINT("exit",("result: %d", result));
- DBUG_RETURN(result);
-}
-
-void free_old_query(MYSQL *mysql)
-{
- DBUG_ENTER("free_old_query");
- if (mysql->fields)
- free_root(&mysql->field_alloc,MYF(0));
- init_alloc_root(&mysql->field_alloc,8192,0); /* Assume rowlength < 8192 */
- mysql->fields= 0;
- mysql->field_count= 0; /* For API */
- mysql->warning_count= 0;
- mysql->info= 0;
- DBUG_VOID_RETURN;
-}
-
-
-/**
- Finish reading of a partial result set from the server.
- Get the EOF packet, and update mysql->status
- and mysql->warning_count.
-
- @return TRUE if a communication or protocol error, an error
- is set in this case, FALSE otherwise.
-*/
-
-my_bool flush_one_result(MYSQL *mysql)
-{
- ulong packet_length;
-
- DBUG_ASSERT(mysql->status != MYSQL_STATUS_READY);
-
- do
- {
- packet_length= cli_safe_read(mysql);
- /*
- There is an error reading from the connection,
- or (sic!) there were no error and no
- data in the stream, i.e. no more data from the server.
- Since we know our position in the stream (somewhere in
- the middle of a result set), this latter case is an error too
- -- each result set must end with a EOF packet.
- cli_safe_read() has set an error for us, just return.
- */
- if (packet_length == packet_error)
- return TRUE;
- }
- while (packet_length > 8 || mysql->net.read_pos[0] != 254);
-
- /* Analyze EOF packet of the result set. */
-
- if (protocol_41(mysql))
- {
- char *pos= (char*) mysql->net.read_pos + 1;
- mysql->warning_count=uint2korr(pos);
- pos+=2;
- mysql->server_status=uint2korr(pos);
- pos+=2;
- }
- return FALSE;
-}
-
-
-/**
- Read a packet from network. If it's an OK packet, flush it.
-
- @return TRUE if error, FALSE otherwise. In case of
- success, is_ok_packet is set to TRUE or FALSE,
- based on what we got from network.
-*/
-
-my_bool opt_flush_ok_packet(MYSQL *mysql, my_bool *is_ok_packet)
-{
- ulong packet_length= cli_safe_read(mysql);
-
- if (packet_length == packet_error)
- return TRUE;
-
- /* cli_safe_read always reads a non-empty packet. */
- DBUG_ASSERT(packet_length);
-
- *is_ok_packet= mysql->net.read_pos[0] == 0;
- if (*is_ok_packet)
- {
- uchar *pos= mysql->net.read_pos + 1;
-
- net_field_length_ll(&pos); /* affected rows */
- net_field_length_ll(&pos); /* insert id */
-
- mysql->server_status=uint2korr(pos);
- pos+=2;
-
- if (protocol_41(mysql))
- {
- mysql->warning_count=uint2korr(pos);
- pos+=2;
- }
- }
- return FALSE;
-}
-
-
-/*
- Flush result set sent from server
-*/
-
-static void cli_flush_use_result(MYSQL *mysql, my_bool flush_all_results)
-{
- /* Clear the current execution status */
- DBUG_ENTER("cli_flush_use_result");
- DBUG_PRINT("warning",("Not all packets read, clearing them"));
-
- if (flush_one_result(mysql))
- DBUG_VOID_RETURN; /* An error occurred */
-
- if (! flush_all_results)
- DBUG_VOID_RETURN;
-
- while (mysql->server_status & SERVER_MORE_RESULTS_EXISTS)
- {
- my_bool is_ok_packet;
- if (opt_flush_ok_packet(mysql, &is_ok_packet))
- DBUG_VOID_RETURN; /* An error occurred. */
- if (is_ok_packet)
- {
- /*
- Indeed what we got from network was an OK packet, and we
- know that OK is the last one in a multi-result-set, so
- just return.
- */
- DBUG_VOID_RETURN;
- }
- /*
- It's a result set, not an OK packet. A result set contains
- of two result set subsequences: field metadata, terminated
- with EOF packet, and result set data, again terminated with
- EOF packet. Read and flush them.
- */
- if (flush_one_result(mysql) || flush_one_result(mysql))
- DBUG_VOID_RETURN; /* An error occurred. */
- }
-
- DBUG_VOID_RETURN;
-}
-
-
-#ifdef __WIN__
-static my_bool is_NT(void)
-{
- char *os=getenv("OS");
- return (os && !strcmp(os, "Windows_NT")) ? 1 : 0;
-}
-#endif
-
-
-#ifdef CHECK_LICENSE
-/**
- Check server side variable 'license'.
-
- If the variable does not exist or does not contain 'Commercial',
- we're talking to non-commercial server from commercial client.
-
- @retval 0 success
- @retval !0 network error or the server is not commercial.
- Error code is saved in mysql->net.last_errno.
-*/
-
-static int check_license(MYSQL *mysql)
-{
- MYSQL_ROW row;
- MYSQL_RES *res;
- NET *net= &mysql->net;
- static const char query[]= "SELECT @@license";
- static const char required_license[]= STRINGIFY_ARG(LICENSE);
-
- if (mysql_real_query(mysql, query, sizeof(query)-1))
- {
- if (net->last_errno == ER_UNKNOWN_SYSTEM_VARIABLE)
- {
- set_mysql_extended_error(mysql, CR_WRONG_LICENSE, unknown_sqlstate,
- ER(CR_WRONG_LICENSE), required_license);
- }
- return 1;
- }
- if (!(res= mysql_use_result(mysql)))
- return 1;
- row= mysql_fetch_row(res);
- /*
- If no rows in result set, or column value is NULL (none of these
- two is ever true for server variables now), or column value
- mismatch, set wrong license error.
- */
- if (!net->last_errno &&
- (!row || !row[0] ||
- strncmp(row[0], required_license, sizeof(required_license))))
- {
- set_mysql_extended_error(mysql, CR_WRONG_LICENSE, unknown_sqlstate,
- ER(CR_WRONG_LICENSE), required_license);
- }
- mysql_free_result(res);
- return net->last_errno;
-}
-#endif /* CHECK_LICENSE */
-
-
-/**************************************************************************
- Shut down connection
-**************************************************************************/
-
-void end_server(MYSQL *mysql)
-{
- int save_errno= errno;
- DBUG_ENTER("end_server");
- if (mysql->net.vio != 0)
- {
- DBUG_PRINT("info",("Net: %s", vio_description(mysql->net.vio)));
-#ifdef MYSQL_SERVER
- slave_io_thread_detach_vio();
-#endif
- vio_delete(mysql->net.vio);
- mysql->net.vio= 0; /* Marker */
- mysql_prune_stmt_list(mysql);
- }
- net_end(&mysql->net);
- free_old_query(mysql);
- errno= save_errno;
- DBUG_VOID_RETURN;
-}
-
-
-void STDCALL
-mysql_free_result(MYSQL_RES *result)
-{
- DBUG_ENTER("mysql_free_result");
- DBUG_PRINT("enter",("mysql_res: 0x%lx", (long) result));
- if (result)
- {
- MYSQL *mysql= result->handle;
- if (mysql)
- {
- if (mysql->unbuffered_fetch_owner == &result->unbuffered_fetch_cancelled)
- mysql->unbuffered_fetch_owner= 0;
- if (mysql->status == MYSQL_STATUS_USE_RESULT)
- {
- (*mysql->methods->flush_use_result)(mysql, FALSE);
- mysql->status=MYSQL_STATUS_READY;
- if (mysql->unbuffered_fetch_owner)
- *mysql->unbuffered_fetch_owner= TRUE;
- }
- }
- free_rows(result->data);
- if (result->fields)
- free_root(&result->field_alloc,MYF(0));
- my_free(result->row);
- my_free(result);
- }
- DBUG_VOID_RETURN;
-}
-
-/****************************************************************************
- Get options from my.cnf
-****************************************************************************/
-
-static const char *default_options[]=
-{
- "port","socket","compress","password","pipe", "timeout", "user",
- "init-command", "host", "database", "debug", "return-found-rows",
- "ssl-key" ,"ssl-cert" ,"ssl-ca" ,"ssl-capath",
- "character-sets-dir", "default-character-set", "interactive-timeout",
- "connect-timeout", "local-infile", "disable-local-infile",
- "ssl-cipher", "max-allowed-packet", "protocol", "shared-memory-base-name",
- "multi-results", "multi-statements", "multi-queries", "secure-auth",
- "report-data-truncation", "plugin-dir", "default-auth",
- NullS
-};
-enum option_id {
- OPT_port=1, OPT_socket, OPT_compress, OPT_password, OPT_pipe, OPT_timeout, OPT_user,
- OPT_init_command, OPT_host, OPT_database, OPT_debug, OPT_return_found_rows,
- OPT_ssl_key, OPT_ssl_cert, OPT_ssl_ca, OPT_ssl_capath,
- OPT_character_sets_dir, OPT_default_character_set, OPT_interactive_timeout,
- OPT_connect_timeout, OPT_local_infile, OPT_disable_local_infile,
- OPT_replication_probe, OPT_enable_reads_from_master, OPT_repl_parse_query,
- OPT_ssl_cipher, OPT_max_allowed_packet, OPT_protocol, OPT_shared_memory_base_name,
- OPT_multi_results, OPT_multi_statements, OPT_multi_queries, OPT_secure_auth,
- OPT_report_data_truncation, OPT_plugin_dir, OPT_default_auth,
-};
-
-static TYPELIB option_types={array_elements(default_options)-1,
- "options",default_options, NULL};
-
-const char *sql_protocol_names_lib[] =
-{ "TCP", "SOCKET", "PIPE", "MEMORY", NullS };
-TYPELIB sql_protocol_typelib = {array_elements(sql_protocol_names_lib)-1,"",
- sql_protocol_names_lib, NULL};
-
-static int add_init_command(struct st_mysql_options *options, const char *cmd)
-{
- char *tmp;
-
- if (!options->init_commands)
- {
- options->init_commands= (DYNAMIC_ARRAY*)my_malloc(sizeof(DYNAMIC_ARRAY),
- MYF(MY_WME));
- init_dynamic_array(options->init_commands,sizeof(char*),0,5);
- }
-
- if (!(tmp= my_strdup(cmd,MYF(MY_WME))) ||
- insert_dynamic(options->init_commands, (uchar*)&tmp))
- {
- my_free(tmp);
- return 1;
- }
-
- return 0;
-}
-
-#define EXTENSION_SET_STRING(OPTS, X, STR) \
- if ((OPTS)->extension) \
- my_free((OPTS)->extension->X); \
- else \
- (OPTS)->extension= (struct st_mysql_options_extention *) \
- my_malloc(sizeof(struct st_mysql_options_extention), \
- MYF(MY_WME | MY_ZEROFILL)); \
- (OPTS)->extension->X= my_strdup((STR), MYF(MY_WME));
-
-void mysql_read_default_options(struct st_mysql_options *options,
- const char *filename,const char *group)
-{
- int argc;
- char *argv_buff[1],**argv;
- const char *groups[3];
- DBUG_ENTER("mysql_read_default_options");
- DBUG_PRINT("enter",("file: %s group: %s",filename,group ? group :"NULL"));
-
- argc=1; argv=argv_buff; argv_buff[0]= (char*) "client";
- groups[0]= (char*) "client"; groups[1]= (char*) group; groups[2]=0;
-
- my_load_defaults(filename, groups, &argc, &argv, NULL);
- if (argc != 1) /* If some default option */
- {
- char **option=argv;
- while (*++option)
- {
- if (option[0] == args_separator) /* skip arguments separator */
- continue;
- /* DBUG_PRINT("info",("option: %s",option[0])); */
- if (option[0][0] == '-' && option[0][1] == '-')
- {
- char *end=strcend(*option,'=');
- char *opt_arg=0;
- if (*end)
- {
- opt_arg=end+1;
- *end=0; /* Remove '=' */
- }
- /* Change all '_' in variable name to '-' */
- for (end= *option ; *(end= strcend(end,'_')) ; )
- *end= '-';
- switch (find_type(*option+2,&option_types,2)) {
- case OPT_port:
- if (opt_arg)
- options->port=atoi(opt_arg);
- break;
- case OPT_socket:
- if (opt_arg)
- {
- my_free(options->unix_socket);
- options->unix_socket=my_strdup(opt_arg,MYF(MY_WME));
- }
- break;
- case OPT_compress:
- options->compress=1;
- options->client_flag|= CLIENT_COMPRESS;
- break;
- case OPT_password:
- if (opt_arg)
- {
- my_free(options->password);
- options->password=my_strdup(opt_arg,MYF(MY_WME));
- }
- break;
- case OPT_pipe:
- options->protocol = MYSQL_PROTOCOL_PIPE;
- case OPT_connect_timeout:
- case OPT_timeout:
- if (opt_arg)
- options->connect_timeout=atoi(opt_arg);
- break;
- case OPT_user:
- if (opt_arg)
- {
- my_free(options->user);
- options->user=my_strdup(opt_arg,MYF(MY_WME));
- }
- break;
- case OPT_init_command:
- add_init_command(options,opt_arg);
- break;
- case OPT_host:
- if (opt_arg)
- {
- my_free(options->host);
- options->host=my_strdup(opt_arg,MYF(MY_WME));
- }
- break;
- case OPT_database:
- if (opt_arg)
- {
- my_free(options->db);
- options->db=my_strdup(opt_arg,MYF(MY_WME));
- }
- break;
- case OPT_debug:
-#ifdef MYSQL_CLIENT
- mysql_debug(opt_arg ? opt_arg : "d:t:o,/tmp/client.trace");
- break;
-#endif
- case OPT_return_found_rows:
- options->client_flag|=CLIENT_FOUND_ROWS;
- break;
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- case OPT_ssl_key:
- my_free(options->ssl_key);
- options->ssl_key = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_ssl_cert:
- my_free(options->ssl_cert);
- options->ssl_cert = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_ssl_ca:
- my_free(options->ssl_ca);
- options->ssl_ca = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_ssl_capath:
- my_free(options->ssl_capath);
- options->ssl_capath = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_ssl_cipher:
- my_free(options->ssl_cipher);
- options->ssl_cipher= my_strdup(opt_arg, MYF(MY_WME));
- break;
-#else
- case OPT_ssl_key:
- case OPT_ssl_cert:
- case OPT_ssl_ca:
- case OPT_ssl_capath:
- case OPT_ssl_cipher:
- break;
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
- case OPT_character_sets_dir:
- my_free(options->charset_dir);
- options->charset_dir = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_default_character_set:
- my_free(options->charset_name);
- options->charset_name = my_strdup(opt_arg, MYF(MY_WME));
- break;
- case OPT_interactive_timeout:
- options->client_flag|= CLIENT_INTERACTIVE;
- break;
- case OPT_local_infile:
- if (!opt_arg || atoi(opt_arg) != 0)
- options->client_flag|= CLIENT_LOCAL_FILES;
- else
- options->client_flag&= ~CLIENT_LOCAL_FILES;
- break;
- case OPT_disable_local_infile:
- options->client_flag&= ~CLIENT_LOCAL_FILES;
- break;
- case OPT_max_allowed_packet:
- if (opt_arg)
- options->max_allowed_packet= atoi(opt_arg);
- break;
- case OPT_protocol:
- if ((options->protocol= find_type(opt_arg,
- &sql_protocol_typelib,0)) <= 0)
- {
- fprintf(stderr, "Unknown option to protocol: %s\n", opt_arg);
- exit(1);
- }
- break;
- case OPT_shared_memory_base_name:
-#ifdef HAVE_SMEM
- if (options->shared_memory_base_name != def_shared_memory_base_name)
- my_free(options->shared_memory_base_name);
- options->shared_memory_base_name=my_strdup(opt_arg,MYF(MY_WME));
-#endif
- break;
- case OPT_multi_results:
- options->client_flag|= CLIENT_MULTI_RESULTS;
- break;
- case OPT_multi_statements:
- case OPT_multi_queries:
- options->client_flag|= CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS;
- break;
- case OPT_secure_auth:
- options->secure_auth= TRUE;
- break;
- case OPT_report_data_truncation:
- options->report_data_truncation= opt_arg ? test(atoi(opt_arg)) : 1;
- break;
- case OPT_plugin_dir:
- {
- char buff[FN_REFLEN], buff2[FN_REFLEN];
- if (strlen(opt_arg) >= FN_REFLEN)
- opt_arg[FN_REFLEN]= '\0';
- if (my_realpath(buff, opt_arg, 0))
- {
- DBUG_PRINT("warning",("failed to normalize the plugin path: %s",
- opt_arg));
- break;
- }
- convert_dirname(buff, buff2, NULL);
- EXTENSION_SET_STRING(options, plugin_dir, buff2);
- }
- break;
- case OPT_default_auth:
- EXTENSION_SET_STRING(options, default_auth, opt_arg);
- break;
- default:
- DBUG_PRINT("warning",("unknown option: %s",option[0]));
- }
- }
- }
- }
- free_defaults(argv);
- DBUG_VOID_RETURN;
-}
-
-
-/**************************************************************************
- Get column lengths of the current row
- If one uses mysql_use_result, res->lengths contains the length information,
- else the lengths are calculated from the offset between pointers.
-**************************************************************************/
-
-static void cli_fetch_lengths(ulong *to, MYSQL_ROW column,
- unsigned int field_count)
-{
- ulong *prev_length;
- char *start=0;
- MYSQL_ROW end;
-
- prev_length=0; /* Keep gcc happy */
- for (end=column + field_count + 1 ; column != end ; column++, to++)
- {
- if (!*column)
- {
- *to= 0; /* Null */
- continue;
- }
- if (start) /* Found end of prev string */
- *prev_length= (ulong) (*column-start-1);
- start= *column;
- prev_length= to;
- }
-}
-
-/***************************************************************************
- Change field rows to field structs
-***************************************************************************/
-
-MYSQL_FIELD *
-unpack_fields(MYSQL_DATA *data,MEM_ROOT *alloc,uint fields,
- my_bool default_value, uint server_capabilities)
-{
- MYSQL_ROWS *row;
- MYSQL_FIELD *field,*result;
- ulong lengths[9]; /* Max of fields */
- DBUG_ENTER("unpack_fields");
-
- field= result= (MYSQL_FIELD*) alloc_root(alloc,
- (uint) sizeof(*field)*fields);
- if (!result)
- {
- free_rows(data); /* Free old data */
- DBUG_RETURN(0);
- }
- bzero((char*) field, (uint) sizeof(MYSQL_FIELD)*fields);
- if (server_capabilities & CLIENT_PROTOCOL_41)
- {
- /* server is 4.1, and returns the new field result format */
- for (row=data->data; row ; row = row->next,field++)
- {
- uchar *pos;
- /* fields count may be wrong */
- DBUG_ASSERT((uint) (field - result) < fields);
- cli_fetch_lengths(&lengths[0], row->data, default_value ? 8 : 7);
- field->catalog= strmake_root(alloc,(char*) row->data[0], lengths[0]);
- field->db= strmake_root(alloc,(char*) row->data[1], lengths[1]);
- field->table= strmake_root(alloc,(char*) row->data[2], lengths[2]);
- field->org_table= strmake_root(alloc,(char*) row->data[3], lengths[3]);
- field->name= strmake_root(alloc,(char*) row->data[4], lengths[4]);
- field->org_name= strmake_root(alloc,(char*) row->data[5], lengths[5]);
-
- field->catalog_length= lengths[0];
- field->db_length= lengths[1];
- field->table_length= lengths[2];
- field->org_table_length= lengths[3];
- field->name_length= lengths[4];
- field->org_name_length= lengths[5];
-
- /* Unpack fixed length parts */
- pos= (uchar*) row->data[6];
- field->charsetnr= uint2korr(pos);
- field->length= (uint) uint4korr(pos+2);
- field->type= (enum enum_field_types) pos[6];
- field->flags= uint2korr(pos+7);
- field->decimals= (uint) pos[9];
-
- if (IS_NUM(field->type))
- field->flags|= NUM_FLAG;
- if (default_value && row->data[7])
- {
- field->def=strmake_root(alloc,(char*) row->data[7], lengths[7]);
- field->def_length= lengths[7];
- }
- else
- field->def=0;
- field->max_length= 0;
- }
- }
-#ifndef DELETE_SUPPORT_OF_4_0_PROTOCOL
- else
- {
- /* old protocol, for backward compatibility */
- for (row=data->data; row ; row = row->next,field++)
- {
- cli_fetch_lengths(&lengths[0], row->data, default_value ? 6 : 5);
- field->org_table= field->table= strdup_root(alloc,(char*) row->data[0]);
- field->name= strdup_root(alloc,(char*) row->data[1]);
- field->length= (uint) uint3korr(row->data[2]);
- field->type= (enum enum_field_types) (uchar) row->data[3][0];
-
- field->catalog=(char*) "";
- field->db= (char*) "";
- field->catalog_length= 0;
- field->db_length= 0;
- field->org_table_length= field->table_length= lengths[0];
- field->name_length= lengths[1];
-
- if (server_capabilities & CLIENT_LONG_FLAG)
- {
- field->flags= uint2korr(row->data[4]);
- field->decimals=(uint) (uchar) row->data[4][2];
- }
- else
- {
- field->flags= (uint) (uchar) row->data[4][0];
- field->decimals=(uint) (uchar) row->data[4][1];
- }
- if (IS_NUM(field->type))
- field->flags|= NUM_FLAG;
- if (default_value && row->data[5])
- {
- field->def=strdup_root(alloc,(char*) row->data[5]);
- field->def_length= lengths[5];
- }
- else
- field->def=0;
- field->max_length= 0;
- }
- }
-#endif /* DELETE_SUPPORT_OF_4_0_PROTOCOL */
- free_rows(data); /* Free old data */
- DBUG_RETURN(result);
-}
-
-/* Read all rows (fields or data) from server */
-
-MYSQL_DATA *cli_read_rows(MYSQL *mysql,MYSQL_FIELD *mysql_fields,
- unsigned int fields)
-{
- uint field;
- ulong pkt_len;
- ulong len;
- uchar *cp;
- char *to, *end_to;
- MYSQL_DATA *result;
- MYSQL_ROWS **prev_ptr,*cur;
- NET *net = &mysql->net;
- DBUG_ENTER("cli_read_rows");
-
- if ((pkt_len= cli_safe_read(mysql)) == packet_error)
- DBUG_RETURN(0);
- if (!(result=(MYSQL_DATA*) my_malloc(sizeof(MYSQL_DATA),
- MYF(MY_WME | MY_ZEROFILL))))
- {
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- init_alloc_root(&result->alloc,8192,0); /* Assume rowlength < 8192 */
- result->alloc.min_malloc=sizeof(MYSQL_ROWS);
- prev_ptr= &result->data;
- result->rows=0;
- result->fields=fields;
-
- /*
- The last EOF packet is either a single 254 character or (in MySQL 4.1)
- 254 followed by 1-7 status bytes.
-
- This doesn't conflict with normal usage of 254 which stands for a
- string where the length of the string is 8 bytes. (see net_field_length())
- */
-
- while (*(cp=net->read_pos) != 254 || pkt_len >= 8)
- {
- result->rows++;
- if (!(cur= (MYSQL_ROWS*) alloc_root(&result->alloc,
- sizeof(MYSQL_ROWS))) ||
- !(cur->data= ((MYSQL_ROW)
- alloc_root(&result->alloc,
- (fields+1)*sizeof(char *)+pkt_len))))
- {
- free_rows(result);
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- *prev_ptr=cur;
- prev_ptr= &cur->next;
- to= (char*) (cur->data+fields+1);
- end_to=to+pkt_len-1;
- for (field=0 ; field < fields ; field++)
- {
- if ((len=(ulong) net_field_length(&cp)) == NULL_LENGTH)
- { /* null field */
- cur->data[field] = 0;
- }
- else
- {
- cur->data[field] = to;
- if (len > (ulong) (end_to - to))
- {
- free_rows(result);
- set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- memcpy(to,(char*) cp,len); to[len]=0;
- to+=len+1;
- cp+=len;
- if (mysql_fields)
- {
- if (mysql_fields[field].max_length < len)
- mysql_fields[field].max_length=len;
- }
- }
- }
- cur->data[field]=to; /* End of last field */
- if ((pkt_len=cli_safe_read(mysql)) == packet_error)
- {
- free_rows(result);
- DBUG_RETURN(0);
- }
- }
- *prev_ptr=0; /* last pointer is null */
- if (pkt_len > 1) /* MySQL 4.1 protocol */
- {
- mysql->warning_count= uint2korr(cp+1);
- mysql->server_status= uint2korr(cp+3);
- DBUG_PRINT("info",("status: %u warning_count: %u",
- mysql->server_status, mysql->warning_count));
- }
- DBUG_PRINT("exit", ("Got %lu rows", (ulong) result->rows));
- DBUG_RETURN(result);
-}
-
-/*
- Read one row. Uses packet buffer as storage for fields.
- When next packet is read, the previous field values are destroyed
-*/
-
-
-static int
-read_one_row(MYSQL *mysql,uint fields,MYSQL_ROW row, ulong *lengths)
-{
- uint field;
- ulong pkt_len,len;
- uchar *pos, *prev_pos, *end_pos;
- NET *net= &mysql->net;
-
- if ((pkt_len=cli_safe_read(mysql)) == packet_error)
- return -1;
- if (pkt_len <= 8 && net->read_pos[0] == 254)
- {
- if (pkt_len > 1) /* MySQL 4.1 protocol */
- {
- mysql->warning_count= uint2korr(net->read_pos+1);
- mysql->server_status= uint2korr(net->read_pos+3);
- }
- return 1; /* End of data */
- }
- prev_pos= 0; /* allowed to write at packet[-1] */
- pos=net->read_pos;
- end_pos=pos+pkt_len;
- for (field=0 ; field < fields ; field++)
- {
- if ((len=(ulong) net_field_length(&pos)) == NULL_LENGTH)
- { /* null field */
- row[field] = 0;
- *lengths++=0;
- }
- else
- {
- if (len > (ulong) (end_pos - pos))
- {
- set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate);
- return -1;
- }
- row[field] = (char*) pos;
- pos+=len;
- *lengths++=len;
- }
- if (prev_pos)
- *prev_pos=0; /* Terminate prev field */
- prev_pos=pos;
- }
- row[field]=(char*) prev_pos+1; /* End of last field */
- *prev_pos=0; /* Terminate last field */
- return 0;
-}
-
-
-/****************************************************************************
- Init MySQL structure or allocate one
-****************************************************************************/
-
-MYSQL * STDCALL
-mysql_init(MYSQL *mysql)
-{
- if (mysql_server_init(0, NULL, NULL))
- return 0;
- if (!mysql)
- {
- if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL))))
- {
- set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate);
- return 0;
- }
- mysql->free_me=1;
- }
- else
- bzero((char*) (mysql), sizeof(*(mysql)));
- mysql->options.connect_timeout= CONNECT_TIMEOUT;
- mysql->charset=default_client_charset_info;
- strmov(mysql->net.sqlstate, not_error_sqlstate);
-
- /*
- Only enable LOAD DATA INFILE by default if configured with
- --enable-local-infile
- */
-
-#if defined(ENABLED_LOCAL_INFILE) && !defined(MYSQL_SERVER)
- mysql->options.client_flag|= CLIENT_LOCAL_FILES;
-#endif
-
-#ifdef HAVE_SMEM
- mysql->options.shared_memory_base_name= (char*) def_shared_memory_base_name;
-#endif
-
- mysql->options.methods_to_use= MYSQL_OPT_GUESS_CONNECTION;
- mysql->options.report_data_truncation= TRUE; /* default */
-
- /*
- By default we don't reconnect because it could silently corrupt data (after
- reconnection you potentially lose table locks, user variables, session
- variables (transactions but they are specifically dealt with in
- mysql_reconnect()).
- This is a change: < 5.0.3 mysql->reconnect was set to 1 by default.
- How this change impacts existing apps:
- - existing apps which relyed on the default will see a behaviour change;
- they will have to set reconnect=1 after mysql_real_connect().
- - existing apps which explicitely asked for reconnection (the only way they
- could do it was by setting mysql.reconnect to 1 after mysql_real_connect())
- will not see a behaviour change.
- - existing apps which explicitely asked for no reconnection
- (mysql.reconnect=0) will not see a behaviour change.
- */
- mysql->reconnect= 0;
-
- return mysql;
-}
-
-
-/*
- Fill in SSL part of MYSQL structure and set 'use_ssl' flag.
- NB! Errors are not reported until you do mysql_real_connect.
-*/
-
-#define strdup_if_not_null(A) (A) == 0 ? 0 : my_strdup((A),MYF(MY_WME))
-
-my_bool STDCALL
-mysql_ssl_set(MYSQL *mysql __attribute__((unused)) ,
- const char *key __attribute__((unused)),
- const char *cert __attribute__((unused)),
- const char *ca __attribute__((unused)),
- const char *capath __attribute__((unused)),
- const char *cipher __attribute__((unused)))
-{
- DBUG_ENTER("mysql_ssl_set");
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- mysql->options.ssl_key= strdup_if_not_null(key);
- mysql->options.ssl_cert= strdup_if_not_null(cert);
- mysql->options.ssl_ca= strdup_if_not_null(ca);
- mysql->options.ssl_capath= strdup_if_not_null(capath);
- mysql->options.ssl_cipher= strdup_if_not_null(cipher);
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
- DBUG_RETURN(0);
-}
-
-
-/*
- Free strings in the SSL structure and clear 'use_ssl' flag.
- NB! Errors are not reported until you do mysql_real_connect.
-*/
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
-
-static void
-mysql_ssl_free(MYSQL *mysql __attribute__((unused)))
-{
- struct st_VioSSLFd *ssl_fd= (struct st_VioSSLFd*) mysql->connector_fd;
- DBUG_ENTER("mysql_ssl_free");
-
- my_free(mysql->options.ssl_key);
- my_free(mysql->options.ssl_cert);
- my_free(mysql->options.ssl_ca);
- my_free(mysql->options.ssl_capath);
- my_free(mysql->options.ssl_cipher);
- if (ssl_fd)
- SSL_CTX_free(ssl_fd->ssl_context);
- my_free(mysql->connector_fd);
- mysql->options.ssl_key = 0;
- mysql->options.ssl_cert = 0;
- mysql->options.ssl_ca = 0;
- mysql->options.ssl_capath = 0;
- mysql->options.ssl_cipher= 0;
- mysql->options.use_ssl = FALSE;
- mysql->connector_fd = 0;
- DBUG_VOID_RETURN;
-}
-
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
-
-/*
- Return the SSL cipher (if any) used for current
- connection to the server.
-
- SYNOPSYS
- mysql_get_ssl_cipher()
- mysql pointer to the mysql connection
-
-*/
-
-const char * STDCALL
-mysql_get_ssl_cipher(MYSQL *mysql __attribute__((unused)))
-{
- DBUG_ENTER("mysql_get_ssl_cipher");
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- if (mysql->net.vio && mysql->net.vio->ssl_arg)
- DBUG_RETURN(SSL_get_cipher_name((SSL*)mysql->net.vio->ssl_arg));
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
- DBUG_RETURN(NULL);
-}
-
-
-/*
- Check the server's (subject) Common Name against the
- hostname we connected to
-
- SYNOPSIS
- ssl_verify_server_cert()
- vio pointer to a SSL connected vio
- server_hostname name of the server that we connected to
-
- RETURN VALUES
- 0 Success
- 1 Failed to validate server
-
- */
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
-
-static int ssl_verify_server_cert(Vio *vio, const char* server_hostname)
-{
- SSL *ssl;
- X509 *server_cert;
- char *cp1, *cp2;
- char buf[256];
- DBUG_ENTER("ssl_verify_server_cert");
- DBUG_PRINT("enter", ("server_hostname: %s", server_hostname));
-
- if (!(ssl= (SSL*)vio->ssl_arg))
- {
- DBUG_PRINT("error", ("No SSL pointer found"));
- DBUG_RETURN(1);
- }
-
- if (!server_hostname)
- {
- DBUG_PRINT("error", ("No server hostname supplied"));
- DBUG_RETURN(1);
- }
-
- if (!(server_cert= SSL_get_peer_certificate(ssl)))
- {
- DBUG_PRINT("error", ("Could not get server certificate"));
- DBUG_RETURN(1);
- }
-
- /*
- We already know that the certificate exchanged was valid; the SSL library
- handled that. Now we need to verify that the contents of the certificate
- are what we expect.
- */
-
- X509_NAME_oneline(X509_get_subject_name(server_cert), buf, sizeof(buf));
- X509_free (server_cert);
-
- DBUG_PRINT("info", ("hostname in cert: %s", buf));
- cp1= strstr(buf, "/CN=");
- if (cp1)
- {
- cp1+= 4; /* Skip the "/CN=" that we found */
- /* Search for next / which might be the delimiter for email */
- cp2= strchr(cp1, '/');
- if (cp2)
- *cp2= '\0';
- DBUG_PRINT("info", ("Server hostname in cert: %s", cp1));
- if (!strcmp(cp1, server_hostname))
- {
- /* Success */
- DBUG_RETURN(0);
- }
- }
- DBUG_PRINT("error", ("SSL certificate validation failure"));
- DBUG_RETURN(1);
-}
-
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
-
-
-/*
- Note that the mysql argument must be initialized with mysql_init()
- before calling mysql_real_connect !
-*/
-
-static my_bool cli_read_query_result(MYSQL *mysql);
-static MYSQL_RES *cli_use_result(MYSQL *mysql);
-
-int cli_read_change_user_result(MYSQL *mysql)
-{
- return cli_safe_read(mysql);
-}
-
-static MYSQL_METHODS client_methods=
-{
- cli_read_query_result, /* read_query_result */
- cli_advanced_command, /* advanced_command */
- cli_read_rows, /* read_rows */
- cli_use_result, /* use_result */
- cli_fetch_lengths, /* fetch_lengths */
- cli_flush_use_result, /* flush_use_result */
- cli_read_change_user_result /* read_change_user_result */
-#ifndef MYSQL_SERVER
- ,cli_list_fields, /* list_fields */
- cli_read_prepare_result, /* read_prepare_result */
- cli_stmt_execute, /* stmt_execute */
- cli_read_binary_rows, /* read_binary_rows */
- cli_unbuffered_fetch, /* unbuffered_fetch */
- NULL, /* free_embedded_thd */
- cli_read_statistics, /* read_statistics */
- cli_read_query_result, /* next_result */
- cli_read_binary_rows /* read_rows_from_cursor */
-#endif
-};
-
-
-
-typedef enum my_cs_match_type_enum
-{
- /* MySQL and OS charsets are fully compatible */
- my_cs_exact,
- /* MySQL charset is very close to OS charset */
- my_cs_approx,
- /*
- MySQL knows this charset, but it is not supported as client character set.
- */
- my_cs_unsupp
-} my_cs_match_type;
-
-
-typedef struct str2str_st
-{
- const char *os_name;
- const char *my_name;
- my_cs_match_type param;
-} MY_CSET_OS_NAME;
-
-const MY_CSET_OS_NAME charsets[]=
-{
-#ifdef __WIN__
- {"cp437", "cp850", my_cs_approx},
- {"cp850", "cp850", my_cs_exact},
- {"cp852", "cp852", my_cs_exact},
- {"cp858", "cp850", my_cs_approx},
- {"cp866", "cp866", my_cs_exact},
- {"cp874", "tis620", my_cs_approx},
- {"cp932", "cp932", my_cs_exact},
- {"cp936", "gbk", my_cs_approx},
- {"cp949", "euckr", my_cs_approx},
- {"cp950", "big5", my_cs_exact},
- {"cp1200", "utf16le", my_cs_unsupp},
- {"cp1201", "utf16", my_cs_unsupp},
- {"cp1250", "cp1250", my_cs_exact},
- {"cp1251", "cp1251", my_cs_exact},
- {"cp1252", "latin1", my_cs_exact},
- {"cp1253", "greek", my_cs_exact},
- {"cp1254", "latin5", my_cs_exact},
- {"cp1255", "hebrew", my_cs_approx},
- {"cp1256", "cp1256", my_cs_exact},
- {"cp1257", "cp1257", my_cs_exact},
- {"cp10000", "macroman", my_cs_exact},
- {"cp10001", "sjis", my_cs_approx},
- {"cp10002", "big5", my_cs_approx},
- {"cp10008", "gb2312", my_cs_approx},
- {"cp10021", "tis620", my_cs_approx},
- {"cp10029", "macce", my_cs_exact},
- {"cp12001", "utf32", my_cs_unsupp},
- {"cp20107", "swe7", my_cs_exact},
- {"cp20127", "latin1", my_cs_approx},
- {"cp20866", "koi8r", my_cs_exact},
- {"cp20932", "ujis", my_cs_exact},
- {"cp20936", "gb2312", my_cs_approx},
- {"cp20949", "euckr", my_cs_approx},
- {"cp21866", "koi8u", my_cs_exact},
- {"cp28591", "latin1", my_cs_approx},
- {"cp28592", "latin2", my_cs_exact},
- {"cp28597", "greek", my_cs_exact},
- {"cp28598", "hebrew", my_cs_exact},
- {"cp28599", "latin5", my_cs_exact},
- {"cp28603", "latin7", my_cs_exact},
-#ifdef UNCOMMENT_THIS_WHEN_WL_4579_IS_DONE
- {"cp28605", "latin9", my_cs_exact},
-#endif
- {"cp38598", "hebrew", my_cs_exact},
- {"cp51932", "ujis", my_cs_exact},
- {"cp51936", "gb2312", my_cs_exact},
- {"cp51949", "euckr", my_cs_exact},
- {"cp51950", "big5", my_cs_exact},
-#ifdef UNCOMMENT_THIS_WHEN_WL_WL_4024_IS_DONE
- {"cp54936", "gb18030", my_cs_exact},
-#endif
- {"cp65001", "utf8", my_cs_exact},
-
-#else /* not Windows */
-
- {"646", "latin1", my_cs_approx}, /* Default on Solaris */
- {"ANSI_X3.4-1968", "latin1", my_cs_approx},
- {"ansi1251", "cp1251", my_cs_exact},
- {"armscii8", "armscii8", my_cs_exact},
- {"armscii-8", "armscii8", my_cs_exact},
- {"ASCII", "latin1", my_cs_approx},
- {"Big5", "big5", my_cs_exact},
- {"cp1251", "cp1251", my_cs_exact},
- {"cp1255", "hebrew", my_cs_approx},
- {"CP866", "cp866", my_cs_exact},
- {"eucCN", "gb2312", my_cs_exact},
- {"euc-CN", "gb2312", my_cs_exact},
- {"eucJP", "ujis", my_cs_exact},
- {"euc-JP", "ujis", my_cs_exact},
- {"eucKR", "euckr", my_cs_exact},
- {"euc-KR", "euckr", my_cs_exact},
-#ifdef UNCOMMENT_THIS_WHEN_WL_WL_4024_IS_DONE
- {"gb18030", "gb18030", my_cs_exact},
-#endif
- {"gb2312", "gb2312", my_cs_exact},
- {"gbk", "gbk", my_cs_exact},
- {"georgianps", "geostd8", my_cs_exact},
- {"georgian-ps", "geostd8", my_cs_exact},
- {"IBM-1252", "cp1252", my_cs_exact},
-
- {"iso88591", "latin1", my_cs_approx},
- {"ISO_8859-1", "latin1", my_cs_approx},
- {"ISO8859-1", "latin1", my_cs_approx},
- {"ISO-8859-1", "latin1", my_cs_approx},
-
- {"iso885913", "latin7", my_cs_exact},
- {"ISO_8859-13", "latin7", my_cs_exact},
- {"ISO8859-13", "latin7", my_cs_exact},
- {"ISO-8859-13", "latin7", my_cs_exact},
-
-#ifdef UNCOMMENT_THIS_WHEN_WL_4579_IS_DONE
- {"iso885915", "latin9", my_cs_exact},
- {"ISO_8859-15", "latin9", my_cs_exact},
- {"ISO8859-15", "latin9", my_cs_exact},
- {"ISO-8859-15", "latin9", my_cs_exact},
-#endif
-
- {"iso88592", "latin2", my_cs_exact},
- {"ISO_8859-2", "latin2", my_cs_exact},
- {"ISO8859-2", "latin2", my_cs_exact},
- {"ISO-8859-2", "latin2", my_cs_exact},
-
- {"iso88597", "greek", my_cs_exact},
- {"ISO_8859-7", "greek", my_cs_exact},
- {"ISO8859-7", "greek", my_cs_exact},
- {"ISO-8859-7", "greek", my_cs_exact},
-
- {"iso88598", "hebrew", my_cs_exact},
- {"ISO_8859-8", "hebrew", my_cs_exact},
- {"ISO8859-8", "hebrew", my_cs_exact},
- {"ISO-8859-8", "hebrew", my_cs_exact},
-
- {"iso88599", "latin5", my_cs_exact},
- {"ISO_8859-9", "latin5", my_cs_exact},
- {"ISO8859-9", "latin5", my_cs_exact},
- {"ISO-8859-9", "latin5", my_cs_exact},
-
- {"koi8r", "koi8r", my_cs_exact},
- {"KOI8-R", "koi8r", my_cs_exact},
- {"koi8u", "koi8u", my_cs_exact},
- {"KOI8-U", "koi8u", my_cs_exact},
-
- {"roman8", "hp8", my_cs_exact}, /* Default on HP UX */
-
- {"Shift_JIS", "sjis", my_cs_exact},
- {"SJIS", "sjis", my_cs_exact},
- {"shiftjisx0213", "sjis", my_cs_exact},
-
- {"tis620", "tis620", my_cs_exact},
- {"tis-620", "tis620", my_cs_exact},
-
- {"ujis", "ujis", my_cs_exact},
-
- {"US-ASCII", "latin1", my_cs_approx},
-
- {"utf8", "utf8", my_cs_exact},
- {"utf-8", "utf8", my_cs_exact},
-#endif
- {NULL, NULL, 0}
-};
-
-
-static const char *
-my_os_charset_to_mysql_charset(const char *csname)
-{
- const MY_CSET_OS_NAME *csp;
- for (csp= charsets; csp->os_name; csp++)
- {
- if (!my_strcasecmp(&my_charset_latin1, csp->os_name, csname))
- {
- switch (csp->param)
- {
- case my_cs_exact:
- return csp->my_name;
-
- case my_cs_approx:
- /*
- Maybe we should print a warning eventually:
- character set correspondence is not exact.
- */
- return csp->my_name;
-
- default:
- my_printf_error(ER_UNKNOWN_ERROR,
- "OS character set '%s'"
- " is not supported by MySQL client",
- MYF(0), csp->my_name);
- goto def;
- }
- }
- }
-
- my_printf_error(ER_UNKNOWN_ERROR,
- "Unknown OS character set '%s'.",
- MYF(0), csname);
-
-def:
- csname= MYSQL_DEFAULT_CHARSET_NAME;
- my_printf_error(ER_UNKNOWN_ERROR,
- "Switching to the default character set '%s'.",
- MYF(0), csname);
- return csname;
-}
-
-
-#ifndef __WIN__
-#include <stdlib.h> /* for getenv() */
-#ifdef HAVE_LANGINFO_H
-#include <langinfo.h>
-#endif
-#ifdef HAVE_LOCALE_H
-#include <locale.h>
-#endif
-#endif /* __WIN__ */
-
-
-static int
-mysql_autodetect_character_set(MYSQL *mysql)
-{
- const char *csname= MYSQL_DEFAULT_CHARSET_NAME;
-
-#ifdef __WIN__
- char cpbuf[64];
- {
- my_snprintf(cpbuf, sizeof(cpbuf), "cp%d", (int) GetConsoleCP());
- csname= my_os_charset_to_mysql_charset(cpbuf);
- }
-#elif defined(HAVE_SETLOCALE) && defined(HAVE_NL_LANGINFO)
- {
- if (setlocale(LC_CTYPE, "") && (csname= nl_langinfo(CODESET)))
- csname= my_os_charset_to_mysql_charset(csname);
- }
-#endif
-
- if (!(mysql->options.charset_name= my_strdup(csname, MYF(MY_WME))))
- return 1;
- return 0;
-}
-
-
-static void
-mysql_set_character_set_with_default_collation(MYSQL *mysql)
-{
- const char *save= charsets_dir;
- if (mysql->options.charset_dir)
- charsets_dir=mysql->options.charset_dir;
-
- if ((mysql->charset= get_charset_by_csname(mysql->options.charset_name,
- MY_CS_PRIMARY, MYF(MY_WME))))
- {
- /* Try to set compiled default collation when it's possible. */
- CHARSET_INFO *collation;
- if ((collation=
- get_charset_by_name(MYSQL_DEFAULT_COLLATION_NAME, MYF(MY_WME))) &&
- my_charset_same(mysql->charset, collation))
- {
- mysql->charset= collation;
- }
- else
- {
- /*
- Default compiled collation not found, or is not applicable
- to the requested character set.
- Continue with the default collation of the character set.
- */
- }
- }
- charsets_dir= save;
-}
-
-
-C_MODE_START
-int mysql_init_character_set(MYSQL *mysql)
-{
- /* Set character set */
- if (!mysql->options.charset_name)
- {
- if (!(mysql->options.charset_name=
- my_strdup(MYSQL_DEFAULT_CHARSET_NAME,MYF(MY_WME))))
- return 1;
- }
- else if (!strcmp(mysql->options.charset_name,
- MYSQL_AUTODETECT_CHARSET_NAME) &&
- mysql_autodetect_character_set(mysql))
- return 1;
-
- mysql_set_character_set_with_default_collation(mysql);
-
- if (!mysql->charset)
- {
- if (mysql->options.charset_dir)
- set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate,
- ER(CR_CANT_READ_CHARSET),
- mysql->options.charset_name,
- mysql->options.charset_dir);
- else
- {
- char cs_dir_name[FN_REFLEN];
- get_charsets_dir(cs_dir_name);
- set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate,
- ER(CR_CANT_READ_CHARSET),
- mysql->options.charset_name,
- cs_dir_name);
- }
- return 1;
- }
- return 0;
-}
-C_MODE_END
-
-/*********** client side authentication support **************************/
-
-typedef struct st_mysql_client_plugin_AUTHENTICATION auth_plugin_t;
-static int client_mpvio_write_packet(struct st_plugin_vio*, const uchar*, int);
-static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql);
-static int old_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql);
-
-static auth_plugin_t native_password_client_plugin=
-{
- MYSQL_CLIENT_AUTHENTICATION_PLUGIN,
- MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION,
- native_password_plugin_name,
- "R.J.Silk, Sergei Golubchik",
- "Native MySQL authentication",
- {1, 0, 0},
- "GPL",
- NULL,
- NULL,
- NULL,
- NULL,
- native_password_auth_client
-};
-
-static auth_plugin_t old_password_client_plugin=
-{
- MYSQL_CLIENT_AUTHENTICATION_PLUGIN,
- MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION,
- old_password_plugin_name,
- "R.J.Silk, Sergei Golubchik",
- "Old MySQL-3.23 authentication",
- {1, 0, 0},
- "GPL",
- NULL,
- NULL,
- NULL,
- NULL,
- old_password_auth_client
-};
-
-struct st_mysql_client_plugin *mysql_client_builtins[]=
-{
- (struct st_mysql_client_plugin *)&native_password_client_plugin,
- (struct st_mysql_client_plugin *)&old_password_client_plugin,
- 0
-};
-
-
-
-/* this is a "superset" of MYSQL_PLUGIN_VIO, in C++ I use inheritance */
-typedef struct {
- int (*read_packet)(struct st_plugin_vio *vio, uchar **buf);
- int (*write_packet)(struct st_plugin_vio *vio, const uchar *pkt, int pkt_len);
- void (*info)(struct st_plugin_vio *vio, struct st_plugin_vio_info *info);
- /* -= end of MYSQL_PLUGIN_VIO =- */
- MYSQL *mysql;
- auth_plugin_t *plugin; /**< what plugin we're under */
- const char *db;
- struct {
- uchar *pkt; /**< pointer into NET::buff */
- uint pkt_len;
- } cached_server_reply;
- int packets_read, packets_written; /**< counters for send/received packets */
- int mysql_change_user; /**< if it's mysql_change_user() */
- int last_read_packet_len; /**< the length of the last *read* packet */
-} MCPVIO_EXT;
-
-/**
- sends a COM_CHANGE_USER command with a caller provided payload
-
- Packet format:
-
- Bytes Content
- ----- ----
- n user name - \0-terminated string
- n password
- 3.23 scramble - \0-terminated string (9 bytes)
- otherwise - length (1 byte) coded
- n database name - \0-terminated string
- 2 character set number (if the server >= 4.1.x)
- n client auth plugin name - \0-terminated string,
- (if the server supports plugin auth)
-
- @retval 0 ok
- @retval 1 error
-*/
-static int send_change_user_packet(MCPVIO_EXT *mpvio,
- const uchar *data, int data_len)
-{
- MYSQL *mysql= mpvio->mysql;
- char *buff, *end;
- int res= 1;
-
- buff= my_alloca(USERNAME_LENGTH + data_len + 1 + NAME_LEN + 2 + NAME_LEN);
-
- end= strmake(buff, mysql->user, USERNAME_LENGTH) + 1;
-
- if (!data_len)
- *end++= 0;
- else
- {
- if (mysql->client_flag & CLIENT_SECURE_CONNECTION)
- {
- DBUG_ASSERT(data_len <= 255);
- if (data_len > 255)
- {
- set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate);
- goto error;
- }
- *end++= data_len;
- }
- else
- {
- DBUG_ASSERT(data_len == SCRAMBLE_LENGTH_323 + 1);
- DBUG_ASSERT(data[SCRAMBLE_LENGTH_323] == 0);
- }
- memcpy(end, data, data_len);
- end+= data_len;
- }
- end= strmake(end, mpvio->db ? mpvio->db : "", NAME_LEN) + 1;
-
- if (mysql->server_capabilities & CLIENT_PROTOCOL_41)
- {
- int2store(end, (ushort) mysql->charset->number);
- end+= 2;
- }
-
- if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH)
- end= strmake(end, mpvio->plugin->name, NAME_LEN) + 1;
-
- res= simple_command(mysql, COM_CHANGE_USER,
- (uchar*)buff, (ulong)(end-buff), 1);
-
-error:
- my_afree(buff);
- return res;
-}
-
-/**
- sends a client authentication packet (second packet in the 3-way handshake)
-
- Packet format (when the server is 4.0 or earlier):
-
- Bytes Content
- ----- ----
- 2 client capabilities
- 3 max packet size
- n user name, \0-terminated
- 9 scramble_323, \0-terminated
-
- Packet format (when the server is 4.1 or newer):
-
- Bytes Content
- ----- ----
- 4 client capabilities
- 4 max packet size
- 1 charset number
- 23 reserved (always 0)
- n user name, \0-terminated
- n plugin auth data (e.g. scramble), length (1 byte) coded
- n database name, \0-terminated
- (if CLIENT_CONNECT_WITH_DB is set in the capabilities)
- n client auth plugin name - \0-terminated string,
- (if CLIENT_PLUGIN_AUTH is set in the capabilities)
-
- @retval 0 ok
- @retval 1 error
-*/
-static int send_client_reply_packet(MCPVIO_EXT *mpvio,
- const uchar *data, int data_len)
-{
- MYSQL *mysql= mpvio->mysql;
- NET *net= &mysql->net;
- char *buff, *end;
-
- /* see end= buff+32 below, fixed size of the packet is 32 bytes */
- buff= my_alloca(33 + USERNAME_LENGTH + data_len + NAME_LEN + NAME_LEN);
-
- mysql->client_flag|= mysql->options.client_flag;
- mysql->client_flag|= CLIENT_CAPABILITIES;
-
- if (mysql->client_flag & CLIENT_MULTI_STATEMENTS)
- mysql->client_flag|= CLIENT_MULTI_RESULTS;
-
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- if (mysql->options.ssl_key || mysql->options.ssl_cert ||
- mysql->options.ssl_ca || mysql->options.ssl_capath ||
- mysql->options.ssl_cipher)
- mysql->options.use_ssl= 1;
- if (mysql->options.use_ssl)
- mysql->client_flag|= CLIENT_SSL;
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY*/
- if (mpvio->db)
- mysql->client_flag|= CLIENT_CONNECT_WITH_DB;
-
- /* Remove options that server doesn't support */
- mysql->client_flag= mysql->client_flag &
- (~(CLIENT_COMPRESS | CLIENT_SSL | CLIENT_PROTOCOL_41)
- | mysql->server_capabilities);
-
-#ifndef HAVE_COMPRESS
- mysql->client_flag&= ~CLIENT_COMPRESS;
-#endif
-
- if (mysql->client_flag & CLIENT_PROTOCOL_41)
- {
- /* 4.1 server and 4.1 client has a 32 byte option flag */
- int4store(buff,mysql->client_flag);
- int4store(buff+4, net->max_packet_size);
- buff[8]= (char) mysql->charset->number;
- bzero(buff+9, 32-9);
- end= buff+32;
- }
- else
- {
- int2store(buff, mysql->client_flag);
- int3store(buff+2, net->max_packet_size);
- end= buff+5;
- }
-#ifdef HAVE_OPENSSL
- if (mysql->client_flag & CLIENT_SSL)
- {
- /* Do the SSL layering. */
- struct st_mysql_options *options= &mysql->options;
- struct st_VioSSLFd *ssl_fd;
-
- /*
- Send mysql->client_flag, max_packet_size - unencrypted otherwise
- the server does not know we want to do SSL
- */
- if (my_net_write(net, (uchar*)buff, (size_t) (end-buff)) || net_flush(net))
- {
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "sending connection information to server",
- errno);
- goto error;
- }
-
- /* Create the VioSSLConnectorFd - init SSL and load certs */
- if (!(ssl_fd= new_VioSSLConnectorFd(options->ssl_key,
- options->ssl_cert,
- options->ssl_ca,
- options->ssl_capath,
- options->ssl_cipher)))
- {
- set_mysql_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate);
- goto error;
- }
- mysql->connector_fd= (unsigned char *) ssl_fd;
-
- /* Connect to the server */
- DBUG_PRINT("info", ("IO layer change in progress..."));
- if (sslconnect(ssl_fd, net->vio,
- (long) (mysql->options.connect_timeout)))
- {
- set_mysql_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate);
- goto error;
- }
- DBUG_PRINT("info", ("IO layer change done!"));
-
- /* Verify server cert */
- if ((mysql->client_flag & CLIENT_SSL_VERIFY_SERVER_CERT) &&
- ssl_verify_server_cert(net->vio, mysql->host))
- {
- set_mysql_error(mysql, CR_SSL_CONNECTION_ERROR, unknown_sqlstate);
- goto error;
- }
- }
-#endif /* HAVE_OPENSSL */
-
- DBUG_PRINT("info",("Server version = '%s' capabilites: %lu status: %u client_flag: %lu",
- mysql->server_version, mysql->server_capabilities,
- mysql->server_status, mysql->client_flag));
-
- compile_time_assert(MYSQL_USERNAME_LENGTH == USERNAME_LENGTH);
-
- /* This needs to be changed as it's not useful with big packets */
- if (mysql->user[0])
- strmake(end, mysql->user, USERNAME_LENGTH);
- else
- read_user_name(end);
-
- /* We have to handle different version of handshake here */
- DBUG_PRINT("info",("user: %s",end));
- end= strend(end) + 1;
- if (data_len)
- {
- if (mysql->server_capabilities & CLIENT_SECURE_CONNECTION)
- {
- *end++= data_len;
- memcpy(end, data, data_len);
- end+= data_len;
- }
- else
- {
- DBUG_ASSERT(data_len == SCRAMBLE_LENGTH_323 + 1); /* incl. \0 at the end */
- memcpy(end, data, data_len);
- end+= data_len;
- }
- }
- else
- *end++= 0;
-
- /* Add database if needed */
- if (mpvio->db && (mysql->server_capabilities & CLIENT_CONNECT_WITH_DB))
- {
- end= strmake(end, mpvio->db, NAME_LEN) + 1;
- mysql->db= my_strdup(mpvio->db, MYF(MY_WME));
- }
-
- if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH)
- end= strmake(end, mpvio->plugin->name, NAME_LEN) + 1;
-
- /* Write authentication package */
- if (my_net_write(net, (uchar*) buff, (size_t) (end-buff)) || net_flush(net))
- {
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "sending authentication information",
- errno);
- goto error;
- }
- my_afree(buff);
- return 0;
-
-error:
- my_afree(buff);
- return 1;
-}
-
-/**
- vio->read_packet() callback method for client authentication plugins
-
- This function is called by a client authentication plugin, when it wants
- to read data from the server.
-*/
-static int client_mpvio_read_packet(struct st_plugin_vio *mpv, uchar **buf)
-{
- MCPVIO_EXT *mpvio= (MCPVIO_EXT*)mpv;
- MYSQL *mysql= mpvio->mysql;
- ulong pkt_len;
-
- /* there are cached data left, feed it to a plugin */
- if (mpvio->cached_server_reply.pkt)
- {
- *buf= mpvio->cached_server_reply.pkt;
- mpvio->cached_server_reply.pkt= 0;
- mpvio->packets_read++;
- return mpvio->cached_server_reply.pkt_len;
- }
-
- if (mpvio->packets_read == 0)
- {
- /*
- the server handshake packet came from the wrong plugin,
- or it's mysql_change_user(). Either way, there is no data
- for a plugin to read. send a dummy packet to the server
- to initiate a dialog.
- */
- if (client_mpvio_write_packet(mpv, 0, 0))
- return (int)packet_error;
- }
-
- /* otherwise read the data */
- pkt_len= (*mysql->methods->read_change_user_result)(mysql);
- mpvio->last_read_packet_len= pkt_len;
- *buf= mysql->net.read_pos;
-
- /* was it a request to change plugins ? */
- if (**buf == 254)
- return (int)packet_error; /* if yes, this plugin shan't continue */
-
- /*
- the server sends \1\255 or \1\254 instead of just \255 or \254 -
- for us to not confuse it with an error or "change plugin" packets.
- We remove this escaping \1 here.
-
- See also server_mpvio_write_packet() where the escaping is done.
- */
- if (pkt_len && **buf == 1)
- {
- (*buf)++;
- pkt_len--;
- }
- mpvio->packets_read++;
- return pkt_len;
-}
-
-/**
- vio->write_packet() callback method for client authentication plugins
-
- This function is called by a client authentication plugin, when it wants
- to send data to the server.
-
- It transparently wraps the data into a change user or authentication
- handshake packet, if neccessary.
-*/
-static int client_mpvio_write_packet(struct st_plugin_vio *mpv,
- const uchar *pkt, int pkt_len)
-{
- int res;
- MCPVIO_EXT *mpvio= (MCPVIO_EXT*)mpv;
-
- if (mpvio->packets_written == 0)
- {
- if (mpvio->mysql_change_user)
- res= send_change_user_packet(mpvio, pkt, pkt_len);
- else
- res= send_client_reply_packet(mpvio, pkt, pkt_len);
- }
- else
- {
- NET *net= &mpvio->mysql->net;
- if (mpvio->mysql->thd)
- res= 1; /* no chit-chat in embedded */
- else
- res= my_net_write(net, pkt, pkt_len) || net_flush(net);
- if (res)
- set_mysql_extended_error(mpvio->mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "sending authentication information",
- errno);
- }
- mpvio->packets_written++;
- return res;
-}
-
-/**
- fills MYSQL_PLUGIN_VIO_INFO structure with the information about the
- connection
-*/
-void mpvio_info(Vio *vio, MYSQL_PLUGIN_VIO_INFO *info)
-{
- bzero(info, sizeof(*info));
- switch (vio->type) {
- case VIO_TYPE_TCPIP:
- info->protocol= MYSQL_VIO_TCP;
- info->socket= vio->sd;
- return;
- case VIO_TYPE_SOCKET:
- info->protocol= MYSQL_VIO_SOCKET;
- info->socket= vio->sd;
- return;
- case VIO_TYPE_SSL:
- {
- struct sockaddr addr;
- socklen_t addrlen= sizeof(addr);
- if (getsockname(vio->sd, &addr, &addrlen))
- return;
- info->protocol= addr.sa_family == AF_UNIX ?
- MYSQL_VIO_SOCKET : MYSQL_VIO_TCP;
- info->socket= vio->sd;
- return;
- }
-#ifdef _WIN32
- case VIO_TYPE_NAMEDPIPE:
- info->protocol= MYSQL_VIO_PIPE;
- info->handle= vio->hPipe;
- return;
-#ifdef HAVE_SMEM
- case VIO_TYPE_SHARED_MEMORY:
- info->protocol= MYSQL_VIO_MEMORY;
- info->handle= vio->handle_file_map; /* or what ? */
- return;
-#endif
-#endif
- default: DBUG_ASSERT(0);
- }
-}
-
-static void client_mpvio_info(MYSQL_PLUGIN_VIO *vio,
- MYSQL_PLUGIN_VIO_INFO *info)
-{
- MCPVIO_EXT *mpvio= (MCPVIO_EXT*)vio;
- mpvio_info(mpvio->mysql->net.vio, info);
-}
-
-/**
- Client side of the plugin driver authentication.
-
- @note this is used by both the mysql_real_connect and mysql_change_user
-
- @param mysql mysql
- @param data pointer to the plugin auth data (scramble) in the
- handshake packet
- @param data_len the length of the data
- @param data_plugin a plugin that data were prepared for
- or 0 if it's mysql_change_user()
- @param db initial db to use, can be 0
-
- @retval 0 ok
- @retval 1 error
-*/
-int run_plugin_auth(MYSQL *mysql, char *data, uint data_len,
- const char *data_plugin, const char *db)
-{
- const char *auth_plugin_name;
- auth_plugin_t *auth_plugin;
- MCPVIO_EXT mpvio;
- ulong pkt_length;
- int res;
-
- DBUG_ENTER ("run_plugin_auth");
- /* determine the default/initial plugin to use */
- if (mysql->options.extension && mysql->options.extension->default_auth &&
- mysql->server_capabilities & CLIENT_PLUGIN_AUTH)
- {
- auth_plugin_name= mysql->options.extension->default_auth;
- if (!(auth_plugin= (auth_plugin_t*) mysql_client_find_plugin(mysql,
- auth_plugin_name, MYSQL_CLIENT_AUTHENTICATION_PLUGIN)))
- DBUG_RETURN (1); /* oops, not found */
- }
- else
- {
- auth_plugin= mysql->server_capabilities & CLIENT_PROTOCOL_41 ?
- &native_password_client_plugin : &old_password_client_plugin;
- auth_plugin_name= auth_plugin->name;
- }
-
- DBUG_PRINT ("info", ("using plugin %s", auth_plugin_name));
-
- mysql->net.last_errno= 0; /* just in case */
-
- if (data_plugin && strcmp(data_plugin, auth_plugin_name))
- {
- /* data was prepared for a different plugin, don't show it to this one */
- data= 0;
- data_len= 0;
- }
-
- mpvio.mysql_change_user= data_plugin == 0;
- mpvio.cached_server_reply.pkt= (uchar*)data;
- mpvio.cached_server_reply.pkt_len= data_len;
- mpvio.read_packet= client_mpvio_read_packet;
- mpvio.write_packet= client_mpvio_write_packet;
- mpvio.info= client_mpvio_info;
- mpvio.mysql= mysql;
- mpvio.packets_read= mpvio.packets_written= 0;
- mpvio.db= db;
- mpvio.plugin= auth_plugin;
-
- res= auth_plugin->authenticate_user((struct st_plugin_vio *)&mpvio, mysql);
- DBUG_PRINT ("info", ("authenticate_user returned %s",
- res == CR_OK ? "CR_OK" :
- res == CR_ERROR ? "CR_ERROR" :
- res == CR_OK_HANDSHAKE_COMPLETE ?
- "CR_OK_HANDSHAKE_COMPLETE" : "error"));
-
- compile_time_assert(CR_OK == -1);
- compile_time_assert(CR_ERROR == 0);
- if (res > CR_OK && mysql->net.read_pos[0] != 254)
- {
- /*
- the plugin returned an error. write it down in mysql,
- unless the error code is CR_ERROR and mysql->net.last_errno
- is already set (the plugin has done it)
- */
- DBUG_PRINT ("info", ("res=%d", res));
- if (res > CR_ERROR)
- set_mysql_error(mysql, res, unknown_sqlstate);
- else
- if (!mysql->net.last_errno)
- set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate);
- DBUG_RETURN (1);
- }
-
- /* read the OK packet (or use the cached value in mysql->net.read_pos */
- if (res == CR_OK)
- pkt_length= (*mysql->methods->read_change_user_result)(mysql);
- else /* res == CR_OK_HANDSHAKE_COMPLETE */
- pkt_length= mpvio.last_read_packet_len;
-
- DBUG_PRINT ("info", ("OK packet length=%lu", pkt_length));
- if (pkt_length == packet_error)
- {
- if (mysql->net.last_errno == CR_SERVER_LOST)
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "reading authorization packet",
- errno);
- DBUG_RETURN (1);
- }
-
- if (mysql->net.read_pos[0] == 254)
- {
- /* The server asked to use a different authentication plugin */
- if (pkt_length == 1)
- {
- /* old "use short scramble" packet */
- DBUG_PRINT ("info", ("old use short scramble packet from server"));
- auth_plugin_name= old_password_plugin_name;
- mpvio.cached_server_reply.pkt= (uchar*)mysql->scramble;
- mpvio.cached_server_reply.pkt_len= SCRAMBLE_LENGTH + 1;
- }
- else
- {
- /* new "use different plugin" packet */
- uint len;
- auth_plugin_name= (char*)mysql->net.read_pos + 1;
- len= strlen(auth_plugin_name); /* safe as my_net_read always appends \0 */
- mpvio.cached_server_reply.pkt_len= pkt_length - len - 2;
- mpvio.cached_server_reply.pkt= mysql->net.read_pos + len + 2;
- DBUG_PRINT ("info", ("change plugin packet from server for plugin %s",
- auth_plugin_name));
- }
-
- if (!(auth_plugin= (auth_plugin_t *) mysql_client_find_plugin(mysql,
- auth_plugin_name, MYSQL_CLIENT_AUTHENTICATION_PLUGIN)))
- DBUG_RETURN (1);
-
- mpvio.plugin= auth_plugin;
- res= auth_plugin->authenticate_user((struct st_plugin_vio *)&mpvio, mysql);
-
- DBUG_PRINT ("info", ("second authenticate_user returned %s",
- res == CR_OK ? "CR_OK" :
- res == CR_ERROR ? "CR_ERROR" :
- res == CR_OK_HANDSHAKE_COMPLETE ?
- "CR_OK_HANDSHAKE_COMPLETE" : "error"));
- if (res > CR_OK)
- {
- if (res > CR_ERROR)
- set_mysql_error(mysql, res, unknown_sqlstate);
- else
- if (!mysql->net.last_errno)
- set_mysql_error(mysql, CR_UNKNOWN_ERROR, unknown_sqlstate);
- DBUG_RETURN (1);
- }
-
- if (res != CR_OK_HANDSHAKE_COMPLETE)
- {
- /* Read what server thinks about out new auth message report */
- if (cli_safe_read(mysql) == packet_error)
- {
- if (mysql->net.last_errno == CR_SERVER_LOST)
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "reading final connect information",
- errno);
- DBUG_RETURN (1);
- }
- }
- }
- /*
- net->read_pos[0] should always be 0 here if the server implements
- the protocol correctly
- */
- DBUG_RETURN (mysql->net.read_pos[0] != 0);
-}
-
-MYSQL * STDCALL
-CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
- const char *passwd, const char *db,
- uint port, const char *unix_socket,ulong client_flag)
-{
- char buff[NAME_LEN+USERNAME_LENGTH+100];
- int scramble_data_len, pkt_scramble_len= 0;
- char *end,*host_info= 0, *server_version_end, *pkt_end;
- char *scramble_data;
- const char *scramble_plugin;
- ulong pkt_length;
- NET *net= &mysql->net;
-#ifdef MYSQL_SERVER
- thr_alarm_t alarmed;
- ALARM alarm_buff;
-#endif
-#ifdef __WIN__
- HANDLE hPipe=INVALID_HANDLE_VALUE;
-#endif
-#ifdef HAVE_SYS_UN_H
- struct sockaddr_un UNIXaddr;
-#endif
- DBUG_ENTER("mysql_real_connect");
-
- DBUG_PRINT("enter",("host: %s db: %s user: %s (client)",
- host ? host : "(Null)",
- db ? db : "(Null)",
- user ? user : "(Null)"));
-
- /* Test whether we're already connected */
- if (net->vio)
- {
- set_mysql_error(mysql, CR_ALREADY_CONNECTED, unknown_sqlstate);
- DBUG_RETURN(0);
- }
-
- mysql->methods= &client_methods;
- net->vio = 0; /* If something goes wrong */
- mysql->client_flag=0; /* For handshake */
-
- /* use default options */
- if (mysql->options.my_cnf_file || mysql->options.my_cnf_group)
- {
- mysql_read_default_options(&mysql->options,
- (mysql->options.my_cnf_file ?
- mysql->options.my_cnf_file : "my"),
- mysql->options.my_cnf_group);
- my_free(mysql->options.my_cnf_file);
- my_free(mysql->options.my_cnf_group);
- mysql->options.my_cnf_file=mysql->options.my_cnf_group=0;
- }
-
- /* Some empty-string-tests are done because of ODBC */
- if (!host || !host[0])
- host=mysql->options.host;
- if (!user || !user[0])
- {
- user=mysql->options.user;
- if (!user)
- user= "";
- }
- if (!passwd)
- {
- passwd=mysql->options.password;
-#if !defined(DONT_USE_MYSQL_PWD) && !defined(MYSQL_SERVER)
- if (!passwd)
- passwd=getenv("MYSQL_PWD"); /* get it from environment */
-#endif
- if (!passwd)
- passwd= "";
- }
- if (!db || !db[0])
- db=mysql->options.db;
- if (!port)
- port=mysql->options.port;
- if (!unix_socket)
- unix_socket=mysql->options.unix_socket;
-
- mysql->server_status=SERVER_STATUS_AUTOCOMMIT;
- DBUG_PRINT("info", ("Connecting"));
-
- /*
- Part 0: Grab a socket and connect it to the server
- */
-#if defined(HAVE_SMEM)
- if ((!mysql->options.protocol ||
- mysql->options.protocol == MYSQL_PROTOCOL_MEMORY) &&
- (!host || !strcmp(host,LOCAL_HOST)))
- {
- DBUG_PRINT("info", ("Using shared memory"));
- if ((create_shared_memory(mysql,net, mysql->options.connect_timeout)) ==
- INVALID_HANDLE_VALUE)
- {
- DBUG_PRINT("error",
- ("host: '%s' socket: '%s' shared memory: %s have_tcpip: %d",
- host ? host : "<null>",
- unix_socket ? unix_socket : "<null>",
- (int) mysql->options.shared_memory_base_name,
- (int) have_tcpip));
- if (mysql->options.protocol == MYSQL_PROTOCOL_MEMORY)
- goto error;
-
- /*
- Try also with PIPE or TCP/IP. Clear the error from
- create_shared_memory().
- */
-
- net_clear_error(net);
- }
- else
- {
- mysql->options.protocol=MYSQL_PROTOCOL_MEMORY;
- unix_socket = 0;
- host=mysql->options.shared_memory_base_name;
- my_snprintf(host_info=buff, sizeof(buff)-1,
- ER(CR_SHARED_MEMORY_CONNECTION), host);
- }
- }
-#endif /* HAVE_SMEM */
-#if defined(HAVE_SYS_UN_H)
- if (!net->vio &&
- (!mysql->options.protocol ||
- mysql->options.protocol == MYSQL_PROTOCOL_SOCKET) &&
- (unix_socket || mysql_unix_port) &&
- (!host || !strcmp(host,LOCAL_HOST)))
- {
- my_socket sock= socket(AF_UNIX, SOCK_STREAM, 0);
- DBUG_PRINT("info", ("Using socket"));
- if (sock == SOCKET_ERROR)
- {
- set_mysql_extended_error(mysql, CR_SOCKET_CREATE_ERROR,
- unknown_sqlstate,
- ER(CR_SOCKET_CREATE_ERROR),
- socket_errno);
- goto error;
- }
-
- net->vio= vio_new(sock, VIO_TYPE_SOCKET,
- VIO_LOCALHOST | VIO_BUFFERED_READ);
- if (!net->vio)
- {
- DBUG_PRINT("error",("Unknow protocol %d ", mysql->options.protocol));
- set_mysql_error(mysql, CR_CONN_UNKNOW_PROTOCOL, unknown_sqlstate);
- closesocket(sock);
- goto error;
- }
-
- host= LOCAL_HOST;
- if (!unix_socket)
- unix_socket= mysql_unix_port;
- host_info= (char*) ER(CR_LOCALHOST_CONNECTION);
- DBUG_PRINT("info", ("Using UNIX sock '%s'", unix_socket));
-
- bzero((char*) &UNIXaddr, sizeof(UNIXaddr));
- UNIXaddr.sun_family= AF_UNIX;
- strmake(UNIXaddr.sun_path, unix_socket, sizeof(UNIXaddr.sun_path)-1);
-
- if (my_connect(sock, (struct sockaddr *) &UNIXaddr, sizeof(UNIXaddr),
- mysql->options.connect_timeout))
- {
- DBUG_PRINT("error",("Got error %d on connect to local server",
- socket_errno));
- set_mysql_extended_error(mysql, CR_CONNECTION_ERROR,
- unknown_sqlstate,
- ER(CR_CONNECTION_ERROR),
- unix_socket, socket_errno);
- vio_delete(net->vio);
- net->vio= 0;
- goto error;
- }
- mysql->options.protocol=MYSQL_PROTOCOL_SOCKET;
- }
-#elif defined(__WIN__)
- if (!net->vio &&
- (mysql->options.protocol == MYSQL_PROTOCOL_PIPE ||
- (host && !strcmp(host,LOCAL_HOST_NAMEDPIPE)) ||
- (! have_tcpip && (unix_socket || !host && is_NT()))))
- {
- if ((hPipe= create_named_pipe(mysql, mysql->options.connect_timeout,
- (char**) &host, (char**) &unix_socket)) ==
- INVALID_HANDLE_VALUE)
- {
- DBUG_PRINT("error",
- ("host: '%s' socket: '%s' have_tcpip: %d",
- host ? host : "<null>",
- unix_socket ? unix_socket : "<null>",
- (int) have_tcpip));
- if (mysql->options.protocol == MYSQL_PROTOCOL_PIPE ||
- (host && !strcmp(host,LOCAL_HOST_NAMEDPIPE)) ||
- (unix_socket && !strcmp(unix_socket,MYSQL_NAMEDPIPE)))
- goto error;
- /* Try also with TCP/IP */
- }
- else
- {
- net->vio= vio_new_win32pipe(hPipe);
- my_snprintf(host_info=buff, sizeof(buff)-1,
- ER(CR_NAMEDPIPE_CONNECTION), unix_socket);
- }
- }
-#endif
- DBUG_PRINT("info", ("net->vio: %p protocol: %d",
- net->vio, mysql->options.protocol));
- if (!net->vio &&
- (!mysql->options.protocol ||
- mysql->options.protocol == MYSQL_PROTOCOL_TCP))
- {
- struct addrinfo *res_lst, hints, *t_res;
- int gai_errno;
- char port_buf[NI_MAXSERV];
- my_socket sock= SOCKET_ERROR;
- int saved_error= 0, status= -1;
-
- unix_socket=0; /* This is not used */
-
- if (!port)
- port= mysql_port;
-
- if (!host)
- host= LOCAL_HOST;
-
- my_snprintf(host_info=buff, sizeof(buff)-1, ER(CR_TCP_CONNECTION), host);
- DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host, port));
-#ifdef MYSQL_SERVER
- thr_alarm_init(&alarmed);
- thr_alarm(&alarmed, mysql->options.connect_timeout, &alarm_buff);
-#endif
-
- DBUG_PRINT("info",("IP '%s'", "client"));
-
-#ifdef MYSQL_SERVER
- thr_end_alarm(&alarmed);
-#endif
-
- memset(&hints, 0, sizeof(hints));
- hints.ai_socktype= SOCK_STREAM;
- hints.ai_protocol= IPPROTO_TCP;
- hints.ai_family= AF_UNSPEC;
-
- DBUG_PRINT("info",("IPV6 getaddrinfo %s", host));
- my_snprintf(port_buf, NI_MAXSERV, "%d", port);
- gai_errno= getaddrinfo(host, port_buf, &hints, &res_lst);
-
- if (gai_errno != 0)
- {
- /*
- For DBUG we are keeping the right message but for client we default to
- historical error message.
- */
- DBUG_PRINT("info",("IPV6 getaddrinfo error %d", gai_errno));
- set_mysql_extended_error(mysql, CR_UNKNOWN_HOST, unknown_sqlstate,
- ER(CR_UNKNOWN_HOST), host, errno);
-
- goto error;
- }
-
- /*
- A hostname might map to multiple IP addresses (IPv4/IPv6). Go over the
- list of IP addresses until a successful connection can be established.
- */
- DBUG_PRINT("info", ("Try connect on all addresses for host."));
- for (t_res= res_lst; t_res; t_res= t_res->ai_next)
- {
- DBUG_PRINT("info", ("Create socket, family: %d type: %d proto: %d",
- t_res->ai_family, t_res->ai_socktype,
- t_res->ai_protocol));
- sock= socket(t_res->ai_family, t_res->ai_socktype, t_res->ai_protocol);
- if (sock == SOCKET_ERROR)
- {
- saved_error= socket_errno;
- continue;
- }
-
- DBUG_PRINT("info", ("Connect socket"));
- status= my_connect(sock, t_res->ai_addr, t_res->ai_addrlen,
- mysql->options.connect_timeout);
- /*
- Here we rely on my_connect() to return success only if the
- connect attempt was really successful. Otherwise we would stop
- trying another address, believing we were successful.
- */
- if (!status)
- break;
-
- /*
- Save value as socket errno might be overwritten due to
- calling a socket function below.
- */
- saved_error= socket_errno;
-
- DBUG_PRINT("info", ("No success, close socket, try next address."));
- closesocket(sock);
- }
- DBUG_PRINT("info",
- ("End of connect attempts, sock: %d status: %d error: %d",
- sock, status, saved_error));
-
- freeaddrinfo(res_lst);
-
- if (sock == SOCKET_ERROR)
- {
- set_mysql_extended_error(mysql, CR_IPSOCK_ERROR, unknown_sqlstate,
- ER(CR_IPSOCK_ERROR), saved_error);
- goto error;
- }
-
- if (status)
- {
- DBUG_PRINT("error",("Got error %d on connect to '%s'", saved_error, host));
- set_mysql_extended_error(mysql, CR_CONN_HOST_ERROR, unknown_sqlstate,
- ER(CR_CONN_HOST_ERROR), host, saved_error);
- goto error;
- }
-
- net->vio= vio_new(sock, VIO_TYPE_TCPIP, VIO_BUFFERED_READ);
- if (! net->vio )
- {
- DBUG_PRINT("error",("Unknow protocol %d ", mysql->options.protocol));
- set_mysql_error(mysql, CR_CONN_UNKNOW_PROTOCOL, unknown_sqlstate);
- closesocket(sock);
- goto error;
- }
- }
-
- DBUG_PRINT("info", ("net->vio: %p", net->vio));
- if (!net->vio)
- {
- DBUG_PRINT("error",("Unknow protocol %d ",mysql->options.protocol));
- set_mysql_error(mysql, CR_CONN_UNKNOW_PROTOCOL, unknown_sqlstate);
- goto error;
- }
-
- if (my_net_init(net, net->vio))
- {
- vio_delete(net->vio);
- net->vio = 0;
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- goto error;
- }
- vio_keepalive(net->vio,TRUE);
-
- /* If user set read_timeout, let it override the default */
- if (mysql->options.read_timeout)
- my_net_set_read_timeout(net, mysql->options.read_timeout);
-
- /* If user set write_timeout, let it override the default */
- if (mysql->options.write_timeout)
- my_net_set_write_timeout(net, mysql->options.write_timeout);
-
- if (mysql->options.max_allowed_packet)
- net->max_packet_size= mysql->options.max_allowed_packet;
-
- /* Get version info */
- mysql->protocol_version= PROTOCOL_VERSION; /* Assume this */
- if (mysql->options.connect_timeout &&
- vio_poll_read(net->vio, mysql->options.connect_timeout))
- {
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "waiting for initial communication packet",
- errno);
- goto error;
- }
-
- /*
- Part 1: Connection established, read and parse first packet
- */
- DBUG_PRINT("info", ("Read first packet."));
-
- if ((pkt_length=cli_safe_read(mysql)) == packet_error)
- {
- if (mysql->net.last_errno == CR_SERVER_LOST)
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "reading initial communication packet",
- errno);
- goto error;
- }
- pkt_end= (char*)net->read_pos + pkt_length;
- /* Check if version of protocol matches current one */
- mysql->protocol_version= net->read_pos[0];
- DBUG_DUMP("packet",(uchar*) net->read_pos,10);
- DBUG_PRINT("info",("mysql protocol version %d, server=%d",
- PROTOCOL_VERSION, mysql->protocol_version));
- if (mysql->protocol_version != PROTOCOL_VERSION)
- {
- set_mysql_extended_error(mysql, CR_VERSION_ERROR, unknown_sqlstate,
- ER(CR_VERSION_ERROR), mysql->protocol_version,
- PROTOCOL_VERSION);
- goto error;
- }
- server_version_end= end= strend((char*) net->read_pos+1);
- mysql->thread_id=uint4korr(end+1);
- end+=5;
- /*
- Scramble is split into two parts because old clients do not understand
- long scrambles; here goes the first part.
- */
- scramble_data= end;
- scramble_data_len= SCRAMBLE_LENGTH_323 + 1;
- scramble_plugin= old_password_plugin_name;
- end+= scramble_data_len;
-
- if (pkt_end >= end + 1)
- mysql->server_capabilities=uint2korr(end);
- if (pkt_end >= end + 18)
- {
- /* New protocol with 16 bytes to describe server characteristics */
- mysql->server_language=end[2];
- mysql->server_status=uint2korr(end+3);
- mysql->server_capabilities|= uint2korr(end+5) << 16;
- pkt_scramble_len= end[7];
- }
- end+= 18;
-
- if (mysql->options.secure_auth && passwd[0] &&
- !(mysql->server_capabilities & CLIENT_SECURE_CONNECTION))
- {
- set_mysql_error(mysql, CR_SECURE_AUTH, unknown_sqlstate);
- goto error;
- }
-
- if (mysql_init_character_set(mysql))
- goto error;
-
- /* Save connection information */
- if (!my_multi_malloc(MYF(0),
- &mysql->host_info, (uint) strlen(host_info)+1,
- &mysql->host, (uint) strlen(host)+1,
- &mysql->unix_socket,unix_socket ?
- (uint) strlen(unix_socket)+1 : (uint) 1,
- &mysql->server_version,
- (uint) (server_version_end - (char*) net->read_pos + 1),
- NullS) ||
- !(mysql->user=my_strdup(user,MYF(0))) ||
- !(mysql->passwd=my_strdup(passwd,MYF(0))))
- {
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- goto error;
- }
- strmov(mysql->host_info,host_info);
- strmov(mysql->host,host);
- if (unix_socket)
- strmov(mysql->unix_socket,unix_socket);
- else
- mysql->unix_socket=0;
- strmov(mysql->server_version,(char*) net->read_pos+1);
- mysql->port=port;
-
- if (pkt_end >= end + SCRAMBLE_LENGTH - SCRAMBLE_LENGTH_323 + 1)
- {
- /*
- move the first scramble part - directly in the NET buffer -
- to get a full continuous scramble. We've read all the header,
- and can overwrite it now.
- */
- memmove(end - SCRAMBLE_LENGTH_323, scramble_data,
- SCRAMBLE_LENGTH_323);
- scramble_data= end - SCRAMBLE_LENGTH_323;
- if (mysql->server_capabilities & CLIENT_PLUGIN_AUTH)
- {
- scramble_data_len= pkt_scramble_len;
- scramble_plugin= scramble_data + scramble_data_len;
- if (scramble_data + scramble_data_len > pkt_end)
- scramble_data_len= pkt_end - scramble_data;
- }
- else
- {
- scramble_data_len= pkt_end - scramble_data;
- scramble_plugin= native_password_plugin_name;
- }
- }
- else
- mysql->server_capabilities&= ~CLIENT_SECURE_CONNECTION;
-
- mysql->client_flag= client_flag;
-
- /*
- Part 2: invoke the plugin to send the authentication data to the server
- */
-
- if (run_plugin_auth(mysql, scramble_data, scramble_data_len,
- scramble_plugin, db))
- goto error;
-
- /*
- Part 3: authenticated, finish the initialization of the connection
- */
-
- if (mysql->client_flag & CLIENT_COMPRESS) /* We will use compression */
- net->compress=1;
-
-#ifdef CHECK_LICENSE
- if (check_license(mysql))
- goto error;
-#endif
-
- if (db && !mysql->db && mysql_select_db(mysql, db))
- {
- if (mysql->net.last_errno == CR_SERVER_LOST)
- set_mysql_extended_error(mysql, CR_SERVER_LOST, unknown_sqlstate,
- ER(CR_SERVER_LOST_EXTENDED),
- "Setting intital database",
- errno);
- goto error;
- }
-
- /*
- Using init_commands is not supported when connecting from within the
- server.
- */
-#ifndef MYSQL_SERVER
- if (mysql->options.init_commands)
- {
- DYNAMIC_ARRAY *init_commands= mysql->options.init_commands;
- char **ptr= (char**)init_commands->buffer;
- char **end_command= ptr + init_commands->elements;
-
- my_bool reconnect=mysql->reconnect;
- mysql->reconnect=0;
-
- for (; ptr < end_command; ptr++)
- {
- int status;
-
- if (mysql_real_query(mysql,*ptr, (ulong) strlen(*ptr)))
- goto error;
-
- do {
- if (mysql->fields)
- {
- MYSQL_RES *res;
- if (!(res= cli_use_result(mysql)))
- goto error;
- mysql_free_result(res);
- }
- if ((status= mysql_next_result(mysql)) > 0)
- goto error;
- } while (status == 0);
- }
- mysql->reconnect=reconnect;
- }
-#endif
-
- DBUG_PRINT("exit", ("Mysql handler: 0x%lx", (long) mysql));
- DBUG_RETURN(mysql);
-
-error:
- DBUG_PRINT("error",("message: %u/%s (%s)",
- net->last_errno,
- net->sqlstate,
- net->last_error));
- {
- /* Free alloced memory */
- end_server(mysql);
- mysql_close_free(mysql);
- if (!(client_flag & CLIENT_REMEMBER_OPTIONS))
- mysql_close_free_options(mysql);
- }
- DBUG_RETURN(0);
-}
-
-
-my_bool mysql_reconnect(MYSQL *mysql)
-{
- MYSQL tmp_mysql;
- DBUG_ENTER("mysql_reconnect");
- DBUG_ASSERT(mysql);
- DBUG_PRINT("enter", ("mysql->reconnect: %d", mysql->reconnect));
-
- if (!mysql->reconnect ||
- (mysql->server_status & SERVER_STATUS_IN_TRANS) || !mysql->host_info)
- {
- /* Allow reconnect next time */
- mysql->server_status&= ~SERVER_STATUS_IN_TRANS;
- set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate);
- DBUG_RETURN(1);
- }
- mysql_init(&tmp_mysql);
- tmp_mysql.options= mysql->options;
- tmp_mysql.options.my_cnf_file= tmp_mysql.options.my_cnf_group= 0;
-
- if (!mysql_real_connect(&tmp_mysql,mysql->host,mysql->user,mysql->passwd,
- mysql->db, mysql->port, mysql->unix_socket,
- mysql->client_flag | CLIENT_REMEMBER_OPTIONS))
- {
- mysql->net.last_errno= tmp_mysql.net.last_errno;
- strmov(mysql->net.last_error, tmp_mysql.net.last_error);
- strmov(mysql->net.sqlstate, tmp_mysql.net.sqlstate);
- DBUG_RETURN(1);
- }
- if (mysql_set_character_set(&tmp_mysql, mysql->charset->csname))
- {
- DBUG_PRINT("error", ("mysql_set_character_set() failed"));
- bzero((char*) &tmp_mysql.options,sizeof(tmp_mysql.options));
- mysql_close(&tmp_mysql);
- mysql->net.last_errno= tmp_mysql.net.last_errno;
- strmov(mysql->net.last_error, tmp_mysql.net.last_error);
- strmov(mysql->net.sqlstate, tmp_mysql.net.sqlstate);
- DBUG_RETURN(1);
- }
-
- DBUG_PRINT("info", ("reconnect succeded"));
- tmp_mysql.reconnect= 1;
- tmp_mysql.free_me= mysql->free_me;
-
- /* Move prepared statements (if any) over to the new mysql object */
- tmp_mysql.stmts= mysql->stmts;
- mysql->stmts= 0;
-
- /* Don't free options as these are now used in tmp_mysql */
- bzero((char*) &mysql->options,sizeof(mysql->options));
- mysql->free_me=0;
- mysql_close(mysql);
- *mysql=tmp_mysql;
- net_clear(&mysql->net, 1);
- mysql->affected_rows= ~(my_ulonglong) 0;
- DBUG_RETURN(0);
-}
-
-
-/**************************************************************************
- Set current database
-**************************************************************************/
-
-int STDCALL
-mysql_select_db(MYSQL *mysql, const char *db)
-{
- int error;
- DBUG_ENTER("mysql_select_db");
- DBUG_PRINT("enter",("db: '%s'",db));
-
- if ((error=simple_command(mysql,COM_INIT_DB, (const uchar*) db,
- (ulong) strlen(db),0)))
- DBUG_RETURN(error);
- my_free(mysql->db);
- mysql->db=my_strdup(db,MYF(MY_WME));
- DBUG_RETURN(0);
-}
-
-
-/*************************************************************************
- Send a QUIT to the server and close the connection
- If handle is alloced by mysql connect free it.
-*************************************************************************/
-
-static void mysql_close_free_options(MYSQL *mysql)
-{
- DBUG_ENTER("mysql_close_free_options");
-
- my_free(mysql->options.user);
- my_free(mysql->options.host);
- my_free(mysql->options.password);
- my_free(mysql->options.unix_socket);
- my_free(mysql->options.db);
- my_free(mysql->options.my_cnf_file);
- my_free(mysql->options.my_cnf_group);
- my_free(mysql->options.charset_dir);
- my_free(mysql->options.charset_name);
- my_free(mysql->options.client_ip);
- if (mysql->options.init_commands)
- {
- DYNAMIC_ARRAY *init_commands= mysql->options.init_commands;
- char **ptr= (char**)init_commands->buffer;
- char **end= ptr + init_commands->elements;
- for (; ptr<end; ptr++)
- my_free(*ptr);
- delete_dynamic(init_commands);
- my_free(init_commands);
- }
-#if defined(HAVE_OPENSSL) && !defined(EMBEDDED_LIBRARY)
- mysql_ssl_free(mysql);
-#endif /* HAVE_OPENSSL && !EMBEDDED_LIBRARY */
-#ifdef HAVE_SMEM
- if (mysql->options.shared_memory_base_name != def_shared_memory_base_name)
- my_free(mysql->options.shared_memory_base_name);
-#endif /* HAVE_SMEM */
- if (mysql->options.extension)
- {
- my_free(mysql->options.extension->plugin_dir);
- my_free(mysql->options.extension->default_auth);
- my_free(mysql->options.extension);
- }
- bzero((char*) &mysql->options,sizeof(mysql->options));
- DBUG_VOID_RETURN;
-}
-
-
-static void mysql_close_free(MYSQL *mysql)
-{
- my_free(mysql->host_info);
- my_free(mysql->user);
- my_free(mysql->passwd);
- my_free(mysql->db);
-#if defined(EMBEDDED_LIBRARY) || MYSQL_VERSION_ID >= 50100
- my_free(mysql->info_buffer);
- mysql->info_buffer= 0;
-#endif
- /* Clear pointers for better safety */
- mysql->host_info= mysql->user= mysql->passwd= mysql->db= 0;
-}
-
-
-/**
- For use when the connection to the server has been lost (in which case
- the server has discarded all information about prepared statements
- associated with the connection).
-
- Mark all statements in mysql->stmts by setting stmt->mysql= 0 if the
- statement has transitioned beyond the MYSQL_STMT_INIT_DONE state, and
- unlink the statement from the mysql->stmts list.
-
- The remaining pruned list of statements (if any) is kept in mysql->stmts.
-
- @param mysql pointer to the MYSQL object
-
- @return none
-*/
-static void mysql_prune_stmt_list(MYSQL *mysql)
-{
- LIST *element= mysql->stmts;
- LIST *pruned_list= 0;
-
- for (; element; element= element->next)
- {
- MYSQL_STMT *stmt= (MYSQL_STMT *) element->data;
- if (stmt->state != MYSQL_STMT_INIT_DONE)
- {
- stmt->mysql= 0;
- stmt->last_errno= CR_SERVER_LOST;
- strmov(stmt->last_error, ER(CR_SERVER_LOST));
- strmov(stmt->sqlstate, unknown_sqlstate);
- }
- else
- {
- pruned_list= list_add(pruned_list, element);
- }
- }
-
- mysql->stmts= pruned_list;
-}
-
-
-/*
- Clear connection pointer of every statement: this is necessary
- to give error on attempt to use a prepared statement of closed
- connection.
-
- SYNOPSYS
- mysql_detach_stmt_list()
- stmt_list pointer to mysql->stmts
- func_name name of calling function
-
- NOTE
- There is similar code in mysql_reconnect(), so changes here
- should also be reflected there.
-*/
-
-void mysql_detach_stmt_list(LIST **stmt_list __attribute__((unused)),
- const char *func_name __attribute__((unused)))
-{
-#ifdef MYSQL_CLIENT
- /* Reset connection handle in all prepared statements. */
- LIST *element= *stmt_list;
- char buff[MYSQL_ERRMSG_SIZE];
- DBUG_ENTER("mysql_detach_stmt_list");
-
- my_snprintf(buff, sizeof(buff)-1, ER(CR_STMT_CLOSED), func_name);
- for (; element; element= element->next)
- {
- MYSQL_STMT *stmt= (MYSQL_STMT *) element->data;
- set_stmt_error(stmt, CR_STMT_CLOSED, unknown_sqlstate, buff);
- stmt->mysql= 0;
- /* No need to call list_delete for statement here */
- }
- *stmt_list= 0;
- DBUG_VOID_RETURN;
-#endif /* MYSQL_CLIENT */
-}
-
-
-void STDCALL mysql_close(MYSQL *mysql)
-{
- DBUG_ENTER("mysql_close");
- if (mysql) /* Some simple safety */
- {
- /* If connection is still up, send a QUIT message */
- if (mysql->net.vio != 0)
- {
- free_old_query(mysql);
- mysql->status=MYSQL_STATUS_READY; /* Force command */
- mysql->reconnect=0;
- simple_command(mysql,COM_QUIT,(uchar*) 0,0,1);
- end_server(mysql); /* Sets mysql->net.vio= 0 */
- }
- mysql_close_free_options(mysql);
- mysql_close_free(mysql);
- mysql_detach_stmt_list(&mysql->stmts, "mysql_close");
-#ifndef MYSQL_SERVER
- if (mysql->thd)
- (*mysql->methods->free_embedded_thd)(mysql);
-#endif
- if (mysql->free_me)
- my_free(mysql);
- }
- DBUG_VOID_RETURN;
-}
-
-
-static my_bool cli_read_query_result(MYSQL *mysql)
-{
- uchar *pos;
- ulong field_count;
- MYSQL_DATA *fields;
- ulong length;
- DBUG_ENTER("cli_read_query_result");
-
- if ((length = cli_safe_read(mysql)) == packet_error)
- DBUG_RETURN(1);
- free_old_query(mysql); /* Free old result */
-#ifdef MYSQL_CLIENT /* Avoid warn of unused labels*/
-get_info:
-#endif
- pos=(uchar*) mysql->net.read_pos;
- if ((field_count= net_field_length(&pos)) == 0)
- {
- mysql->affected_rows= net_field_length_ll(&pos);
- mysql->insert_id= net_field_length_ll(&pos);
- DBUG_PRINT("info",("affected_rows: %lu insert_id: %lu",
- (ulong) mysql->affected_rows,
- (ulong) mysql->insert_id));
- if (protocol_41(mysql))
- {
- mysql->server_status=uint2korr(pos); pos+=2;
- mysql->warning_count=uint2korr(pos); pos+=2;
- }
- else if (mysql->server_capabilities & CLIENT_TRANSACTIONS)
- {
- /* MySQL 4.0 protocol */
- mysql->server_status=uint2korr(pos); pos+=2;
- mysql->warning_count= 0;
- }
- DBUG_PRINT("info",("status: %u warning_count: %u",
- mysql->server_status, mysql->warning_count));
- if (pos < mysql->net.read_pos+length && net_field_length(&pos))
- mysql->info=(char*) pos;
- DBUG_RETURN(0);
- }
-#ifdef MYSQL_CLIENT
- if (field_count == NULL_LENGTH) /* LOAD DATA LOCAL INFILE */
- {
- int error;
-
- if (!(mysql->options.client_flag & CLIENT_LOCAL_FILES))
- {
- set_mysql_error(mysql, CR_MALFORMED_PACKET, unknown_sqlstate);
- DBUG_RETURN(1);
- }
-
- error= handle_local_infile(mysql,(char*) pos);
- if ((length= cli_safe_read(mysql)) == packet_error || error)
- DBUG_RETURN(1);
- goto get_info; /* Get info packet */
- }
-#endif
- if (!(mysql->server_status & SERVER_STATUS_AUTOCOMMIT))
- mysql->server_status|= SERVER_STATUS_IN_TRANS;
-
- if (!(fields=cli_read_rows(mysql,(MYSQL_FIELD*)0, protocol_41(mysql) ? 7:5)))
- DBUG_RETURN(1);
- if (!(mysql->fields=unpack_fields(fields,&mysql->field_alloc,
- (uint) field_count,0,
- mysql->server_capabilities)))
- DBUG_RETURN(1);
- mysql->status= MYSQL_STATUS_GET_RESULT;
- mysql->field_count= (uint) field_count;
- DBUG_PRINT("exit",("ok"));
- DBUG_RETURN(0);
-}
-
-
-/*
- Send the query and return so we can do something else.
- Needs to be followed by mysql_read_query_result() when we want to
- finish processing it.
-*/
-
-int STDCALL
-mysql_send_query(MYSQL* mysql, const char* query, ulong length)
-{
- DBUG_ENTER("mysql_send_query");
- DBUG_RETURN(simple_command(mysql, COM_QUERY, (uchar*) query, length, 1));
-}
-
-
-int STDCALL
-mysql_real_query(MYSQL *mysql, const char *query, ulong length)
-{
- DBUG_ENTER("mysql_real_query");
- DBUG_PRINT("enter",("handle: 0x%lx", (long) mysql));
- DBUG_PRINT("query",("Query = '%-.4096s'",query));
-
- if (mysql_send_query(mysql,query,length))
- DBUG_RETURN(1);
- DBUG_RETURN((int) (*mysql->methods->read_query_result)(mysql));
-}
-
-
-/**************************************************************************
- Alloc result struct for buffered results. All rows are read to buffer.
- mysql_data_seek may be used.
-**************************************************************************/
-
-MYSQL_RES * STDCALL mysql_store_result(MYSQL *mysql)
-{
- MYSQL_RES *result;
- DBUG_ENTER("mysql_store_result");
-
- if (!mysql->fields)
- DBUG_RETURN(0);
- if (mysql->status != MYSQL_STATUS_GET_RESULT)
- {
- set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- mysql->status=MYSQL_STATUS_READY; /* server is ready */
- if (!(result=(MYSQL_RES*) my_malloc((uint) (sizeof(MYSQL_RES)+
- sizeof(ulong) *
- mysql->field_count),
- MYF(MY_WME | MY_ZEROFILL))))
- {
- set_mysql_error(mysql, CR_OUT_OF_MEMORY, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- result->methods= mysql->methods;
- result->eof=1; /* Marker for buffered */
- result->lengths=(ulong*) (result+1);
- if (!(result->data=
- (*mysql->methods->read_rows)(mysql,mysql->fields,mysql->field_count)))
- {
- my_free(result);
- DBUG_RETURN(0);
- }
- mysql->affected_rows= result->row_count= result->data->rows;
- result->data_cursor= result->data->data;
- result->fields= mysql->fields;
- result->field_alloc= mysql->field_alloc;
- result->field_count= mysql->field_count;
- /* The rest of result members is bzeroed in malloc */
- mysql->fields=0; /* fields is now in result */
- clear_alloc_root(&mysql->field_alloc);
- /* just in case this was mistakenly called after mysql_stmt_execute() */
- mysql->unbuffered_fetch_owner= 0;
- DBUG_RETURN(result); /* Data fetched */
-}
-
-
-/**************************************************************************
- Alloc struct for use with unbuffered reads. Data is fetched by domand
- when calling to mysql_fetch_row.
- mysql_data_seek is a noop.
-
- No other queries may be specified with the same MYSQL handle.
- There shouldn't be much processing per row because mysql server shouldn't
- have to wait for the client (and will not wait more than 30 sec/packet).
-**************************************************************************/
-
-static MYSQL_RES * cli_use_result(MYSQL *mysql)
-{
- MYSQL_RES *result;
- DBUG_ENTER("cli_use_result");
-
- if (!mysql->fields)
- DBUG_RETURN(0);
- if (mysql->status != MYSQL_STATUS_GET_RESULT)
- {
- set_mysql_error(mysql, CR_COMMANDS_OUT_OF_SYNC, unknown_sqlstate);
- DBUG_RETURN(0);
- }
- if (!(result=(MYSQL_RES*) my_malloc(sizeof(*result)+
- sizeof(ulong)*mysql->field_count,
- MYF(MY_WME | MY_ZEROFILL))))
- DBUG_RETURN(0);
- result->lengths=(ulong*) (result+1);
- result->methods= mysql->methods;
- if (!(result->row=(MYSQL_ROW)
- my_malloc(sizeof(result->row[0])*(mysql->field_count+1), MYF(MY_WME))))
- { /* Ptrs: to one row */
- my_free(result);
- DBUG_RETURN(0);
- }
- result->fields= mysql->fields;
- result->field_alloc= mysql->field_alloc;
- result->field_count= mysql->field_count;
- result->current_field=0;
- result->handle= mysql;
- result->current_row= 0;
- mysql->fields=0; /* fields is now in result */
- clear_alloc_root(&mysql->field_alloc);
- mysql->status=MYSQL_STATUS_USE_RESULT;
- mysql->unbuffered_fetch_owner= &result->unbuffered_fetch_cancelled;
- DBUG_RETURN(result); /* Data is read to be fetched */
-}
-
-
-/**************************************************************************
- Return next row of the query results
-**************************************************************************/
-
-MYSQL_ROW STDCALL
-mysql_fetch_row(MYSQL_RES *res)
-{
- DBUG_ENTER("mysql_fetch_row");
- if (!res->data)
- { /* Unbufferred fetch */
- if (!res->eof)
- {
- MYSQL *mysql= res->handle;
- if (mysql->status != MYSQL_STATUS_USE_RESULT)
- {
- set_mysql_error(mysql,
- res->unbuffered_fetch_cancelled ?
- CR_FETCH_CANCELED : CR_COMMANDS_OUT_OF_SYNC,
- unknown_sqlstate);
- }
- else if (!(read_one_row(mysql, res->field_count, res->row, res->lengths)))
- {
- res->row_count++;
- DBUG_RETURN(res->current_row=res->row);
- }
- DBUG_PRINT("info",("end of data"));
- res->eof=1;
- mysql->status=MYSQL_STATUS_READY;
- /*
- Reset only if owner points to us: there is a chance that somebody
- started new query after mysql_stmt_close():
- */
- if (mysql->unbuffered_fetch_owner == &res->unbuffered_fetch_cancelled)
- mysql->unbuffered_fetch_owner= 0;
- /* Don't clear handle in mysql_free_result */
- res->handle=0;
- }
- DBUG_RETURN((MYSQL_ROW) NULL);
- }
- {
- MYSQL_ROW tmp;
- if (!res->data_cursor)
- {
- DBUG_PRINT("info",("end of data"));
- DBUG_RETURN(res->current_row=(MYSQL_ROW) NULL);
- }
- tmp = res->data_cursor->data;
- res->data_cursor = res->data_cursor->next;
- DBUG_RETURN(res->current_row=tmp);
- }
-}
-
-
-/**************************************************************************
- Get column lengths of the current row
- If one uses mysql_use_result, res->lengths contains the length information,
- else the lengths are calculated from the offset between pointers.
-**************************************************************************/
-
-ulong * STDCALL
-mysql_fetch_lengths(MYSQL_RES *res)
-{
- MYSQL_ROW column;
-
- if (!(column=res->current_row))
- return 0; /* Something is wrong */
- if (res->data)
- (*res->methods->fetch_lengths)(res->lengths, column, res->field_count);
- return res->lengths;
-}
-
-
-int STDCALL
-mysql_options(MYSQL *mysql,enum mysql_option option, const void *arg)
-{
- DBUG_ENTER("mysql_option");
- DBUG_PRINT("enter",("option: %d",(int) option));
- switch (option) {
- case MYSQL_OPT_CONNECT_TIMEOUT:
- mysql->options.connect_timeout= *(uint*) arg;
- break;
- case MYSQL_OPT_READ_TIMEOUT:
- mysql->options.read_timeout= *(uint*) arg;
- break;
- case MYSQL_OPT_WRITE_TIMEOUT:
- mysql->options.write_timeout= *(uint*) arg;
- break;
- case MYSQL_OPT_COMPRESS:
- mysql->options.compress= 1; /* Remember for connect */
- mysql->options.client_flag|= CLIENT_COMPRESS;
- break;
- case MYSQL_OPT_NAMED_PIPE: /* This option is depricated */
- mysql->options.protocol=MYSQL_PROTOCOL_PIPE; /* Force named pipe */
- break;
- case MYSQL_OPT_LOCAL_INFILE: /* Allow LOAD DATA LOCAL ?*/
- if (!arg || test(*(uint*) arg))
- mysql->options.client_flag|= CLIENT_LOCAL_FILES;
- else
- mysql->options.client_flag&= ~CLIENT_LOCAL_FILES;
- break;
- case MYSQL_INIT_COMMAND:
- add_init_command(&mysql->options,arg);
- break;
- case MYSQL_READ_DEFAULT_FILE:
- my_free(mysql->options.my_cnf_file);
- mysql->options.my_cnf_file=my_strdup(arg,MYF(MY_WME));
- break;
- case MYSQL_READ_DEFAULT_GROUP:
- my_free(mysql->options.my_cnf_group);
- mysql->options.my_cnf_group=my_strdup(arg,MYF(MY_WME));
- break;
- case MYSQL_SET_CHARSET_DIR:
- my_free(mysql->options.charset_dir);
- mysql->options.charset_dir=my_strdup(arg,MYF(MY_WME));
- break;
- case MYSQL_SET_CHARSET_NAME:
- my_free(mysql->options.charset_name);
- mysql->options.charset_name=my_strdup(arg,MYF(MY_WME));
- break;
- case MYSQL_OPT_PROTOCOL:
- mysql->options.protocol= *(uint*) arg;
- break;
- case MYSQL_SHARED_MEMORY_BASE_NAME:
-#ifdef HAVE_SMEM
- if (mysql->options.shared_memory_base_name != def_shared_memory_base_name)
- my_free(mysql->options.shared_memory_base_name);
- mysql->options.shared_memory_base_name=my_strdup(arg,MYF(MY_WME));
-#endif
- break;
- case MYSQL_OPT_USE_REMOTE_CONNECTION:
- case MYSQL_OPT_USE_EMBEDDED_CONNECTION:
- case MYSQL_OPT_GUESS_CONNECTION:
- mysql->options.methods_to_use= option;
- break;
- case MYSQL_SET_CLIENT_IP:
- mysql->options.client_ip= my_strdup(arg, MYF(MY_WME));
- break;
- case MYSQL_SECURE_AUTH:
- mysql->options.secure_auth= *(my_bool *) arg;
- break;
- case MYSQL_REPORT_DATA_TRUNCATION:
- mysql->options.report_data_truncation= test(*(my_bool *) arg);
- break;
- case MYSQL_OPT_RECONNECT:
- mysql->reconnect= *(my_bool *) arg;
- break;
- case MYSQL_OPT_SSL_VERIFY_SERVER_CERT:
- if (*(my_bool*) arg)
- mysql->options.client_flag|= CLIENT_SSL_VERIFY_SERVER_CERT;
- else
- mysql->options.client_flag&= ~CLIENT_SSL_VERIFY_SERVER_CERT;
- break;
- case MYSQL_PLUGIN_DIR:
- EXTENSION_SET_STRING(&mysql->options, plugin_dir, arg);
- break;
- case MYSQL_DEFAULT_AUTH:
- EXTENSION_SET_STRING(&mysql->options, default_auth, arg);
- break;
- default:
- DBUG_RETURN(1);
- }
- DBUG_RETURN(0);
-}
-
-
-/****************************************************************************
- Functions to get information from the MySQL structure
- These are functions to make shared libraries more usable.
-****************************************************************************/
-
-/* MYSQL_RES */
-my_ulonglong STDCALL mysql_num_rows(MYSQL_RES *res)
-{
- return res->row_count;
-}
-
-unsigned int STDCALL mysql_num_fields(MYSQL_RES *res)
-{
- return res->field_count;
-}
-
-uint STDCALL mysql_errno(MYSQL *mysql)
-{
- return mysql ? mysql->net.last_errno : mysql_server_last_errno;
-}
-
-
-const char * STDCALL mysql_error(MYSQL *mysql)
-{
- return mysql ? mysql->net.last_error : mysql_server_last_error;
-}
-
-
-/*
- Get version number for server in a form easy to test on
-
- SYNOPSIS
- mysql_get_server_version()
- mysql Connection
-
- EXAMPLE
- 4.1.0-alfa -> 40100
-
- NOTES
- We will ensure that a newer server always has a bigger number.
-
- RETURN
- Signed number > 323000
-*/
-
-ulong STDCALL
-mysql_get_server_version(MYSQL *mysql)
-{
- uint major, minor, version;
- char *pos= mysql->server_version, *end_pos;
- major= (uint) strtoul(pos, &end_pos, 10); pos=end_pos+1;
- minor= (uint) strtoul(pos, &end_pos, 10); pos=end_pos+1;
- version= (uint) strtoul(pos, &end_pos, 10);
- return (ulong) major*10000L+(ulong) (minor*100+version);
-}
-
-
-/*
- mysql_set_character_set function sends SET NAMES cs_name to
- the server (which changes character_set_client, character_set_result
- and character_set_connection) and updates mysql->charset so other
- functions like mysql_real_escape will work correctly.
-*/
-int STDCALL mysql_set_character_set(MYSQL *mysql, const char *cs_name)
-{
- struct charset_info_st *cs;
- const char *save_csdir= charsets_dir;
-
- if (mysql->options.charset_dir)
- charsets_dir= mysql->options.charset_dir;
-
- if (strlen(cs_name) < MY_CS_NAME_SIZE &&
- (cs= get_charset_by_csname(cs_name, MY_CS_PRIMARY, MYF(0))))
- {
- char buff[MY_CS_NAME_SIZE + 10];
- charsets_dir= save_csdir;
- /* Skip execution of "SET NAMES" for pre-4.1 servers */
- if (mysql_get_server_version(mysql) < 40100)
- return 0;
- sprintf(buff, "SET NAMES %s", cs_name);
- if (!mysql_real_query(mysql, buff, (uint) strlen(buff)))
- {
- mysql->charset= cs;
- }
- }
- else
- {
- char cs_dir_name[FN_REFLEN];
- get_charsets_dir(cs_dir_name);
- set_mysql_extended_error(mysql, CR_CANT_READ_CHARSET, unknown_sqlstate,
- ER(CR_CANT_READ_CHARSET), cs_name, cs_dir_name);
- }
- charsets_dir= save_csdir;
- return mysql->net.last_errno;
-}
-
-/**
- client authentication plugin that does native MySQL authentication
- using a 20-byte (4.1+) scramble
-*/
-static int native_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
-{
- int pkt_len;
- uchar *pkt;
-
- DBUG_ENTER("native_password_auth_client");
-
-
- if (((MCPVIO_EXT *)vio)->mysql_change_user)
- {
- /*
- in mysql_change_user() the client sends the first packet.
- we use the old scramble.
- */
- pkt= (uchar*)mysql->scramble;
- pkt_len= SCRAMBLE_LENGTH + 1;
- }
- else
- {
- /* read the scramble */
- if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
- DBUG_RETURN(CR_ERROR);
-
- if (pkt_len != SCRAMBLE_LENGTH + 1)
- DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
-
- /* save it in MYSQL */
- memcpy(mysql->scramble, pkt, SCRAMBLE_LENGTH);
- mysql->scramble[SCRAMBLE_LENGTH] = 0;
- }
-
- if (mysql->passwd[0])
- {
- char scrambled[SCRAMBLE_LENGTH + 1];
- DBUG_PRINT("info", ("sending scramble"));
- scramble(scrambled, (char*)pkt, mysql->passwd);
- if (vio->write_packet(vio, (uchar*)scrambled, SCRAMBLE_LENGTH))
- DBUG_RETURN(CR_ERROR);
- }
- else
- {
- DBUG_PRINT("info", ("no password"));
- if (vio->write_packet(vio, 0, 0)) /* no password */
- DBUG_RETURN(CR_ERROR);
- }
-
- DBUG_RETURN(CR_OK);
-}
-
-/**
- client authentication plugin that does old MySQL authentication
- using an 8-byte (4.0-) scramble
-*/
-static int old_password_auth_client(MYSQL_PLUGIN_VIO *vio, MYSQL *mysql)
-{
- uchar *pkt;
- int pkt_len;
-
- DBUG_ENTER("old_password_auth_client");
-
- if (((MCPVIO_EXT *)vio)->mysql_change_user)
- {
- /*
- in mysql_change_user() the client sends the first packet.
- we use the old scramble.
- */
- pkt= (uchar*)mysql->scramble;
- pkt_len= SCRAMBLE_LENGTH_323 + 1;
- }
- else
- {
- /* read the scramble */
- if ((pkt_len= vio->read_packet(vio, &pkt)) < 0)
- DBUG_RETURN(CR_ERROR);
-
- if (pkt_len != SCRAMBLE_LENGTH_323 + 1 &&
- pkt_len != SCRAMBLE_LENGTH + 1)
- DBUG_RETURN(CR_SERVER_HANDSHAKE_ERR);
-
- /* save it in MYSQL */
- memcpy(mysql->scramble, pkt, pkt_len);
- mysql->scramble[pkt_len] = 0;
- }
-
- if (mysql->passwd[0])
- {
- char scrambled[SCRAMBLE_LENGTH_323 + 1];
- scramble_323(scrambled, (char*)pkt, mysql->passwd);
- if (vio->write_packet(vio, (uchar*)scrambled, SCRAMBLE_LENGTH_323 + 1))
- DBUG_RETURN(CR_ERROR);
- }
- else
- if (vio->write_packet(vio, 0, 0)) /* no password */
- DBUG_RETURN(CR_ERROR);
-
- DBUG_RETURN(CR_OK);
-}
diff --git a/dep/mysqllite/sql-common/client_plugin.c b/dep/mysqllite/sql-common/client_plugin.c
deleted file mode 100644
index 6b4cca8aeea..00000000000
--- a/dep/mysqllite/sql-common/client_plugin.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/* Copyright (C) 2010 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
-
- Support code for the client side (libmysql) plugins
-
- Client plugins are somewhat different from server plugins, they are simpler.
-
- They do not need to be installed or in any way explicitly loaded on the
- client, they are loaded automatically on demand.
- One client plugin per shared object, soname *must* match the plugin name.
-
- There is no reference counting and no unloading either.
-*/
-
-#include <my_global.h>
-#include "mysql.h"
-#include <my_sys.h>
-#include <m_string.h>
-#include <my_pthread.h>
-
-#include <sql_common.h>
-#include "errmsg.h"
-#include <mysql/client_plugin.h>
-
-struct st_client_plugin_int {
- struct st_client_plugin_int *next;
- void *dlhandle;
- struct st_mysql_client_plugin *plugin;
-};
-
-static my_bool initialized= 0;
-static MEM_ROOT mem_root;
-
-static const char *plugin_declarations_sym= "_mysql_client_plugin_declaration_";
-static uint plugin_version[MYSQL_CLIENT_MAX_PLUGINS]=
-{
- 0, /* these two are taken by Connector/C */
- 0, /* these two are taken by Connector/C */
- MYSQL_CLIENT_AUTHENTICATION_PLUGIN_INTERFACE_VERSION
-};
-
-/*
- Loaded plugins are stored in a linked list.
- The list is append-only, the elements are added to the head (like in a stack).
- The elements are added under a mutex, but the list can be read and traversed
- without any mutex because once an element is added to the list, it stays
- there. The main purpose of a mutex is to prevent two threads from
- loading the same plugin twice in parallel.
-*/
-struct st_client_plugin_int *plugin_list[MYSQL_CLIENT_MAX_PLUGINS];
-static pthread_mutex_t LOCK_load_client_plugin;
-
-static int is_not_initialized(MYSQL *mysql, const char *name)
-{
- if (initialized)
- return 0;
-
- set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD,
- unknown_sqlstate, ER(CR_AUTH_PLUGIN_CANNOT_LOAD),
- name, "not initialized");
- return 1;
-}
-
-/**
- finds a plugin in the list
-
- @param name plugin name to search for
- @param type plugin type
-
- @note this does NOT necessarily need a mutex, take care!
-
- @retval a pointer to a found plugin or 0
-*/
-static struct st_mysql_client_plugin *
-find_plugin(const char *name, int type)
-{
- struct st_client_plugin_int *p;
-
- DBUG_ASSERT(initialized);
- DBUG_ASSERT(type >= 0 && type < MYSQL_CLIENT_MAX_PLUGINS);
- if (type < 0 || type >= MYSQL_CLIENT_MAX_PLUGINS)
- return 0;
-
- for (p= plugin_list[type]; p; p= p->next)
- {
- if (strcmp(p->plugin->name, name) == 0)
- return p->plugin;
- }
- return NULL;
-}
-
-/**
- verifies the plugin and adds it to the list
-
- @param mysql MYSQL structure (for error reporting)
- @param plugin plugin to install
- @param dlhandle a handle to the shared object (returned by dlopen)
- or 0 if the plugin was not dynamically loaded
- @param argc number of arguments in the 'va_list args'
- @param args arguments passed to the plugin initialization function
-
- @retval a pointer to an installed plugin or 0
-*/
-static struct st_mysql_client_plugin *
-add_plugin(MYSQL *mysql, struct st_mysql_client_plugin *plugin, void *dlhandle,
- int argc, va_list args)
-{
- const char *errmsg;
- struct st_client_plugin_int plugin_int, *p;
- char errbuf[1024];
-
- DBUG_ASSERT(initialized);
-
- plugin_int.plugin= plugin;
- plugin_int.dlhandle= dlhandle;
-
- if (plugin->type >= MYSQL_CLIENT_MAX_PLUGINS)
- {
- errmsg= "Unknown client plugin type";
- goto err1;
- }
-
- if (plugin->interface_version < plugin_version[plugin->type] ||
- (plugin->interface_version >> 8) >
- (plugin_version[plugin->type] >> 8))
- {
- errmsg= "Incompatible client plugin interface";
- goto err1;
- }
-
- /* Call the plugin initialization function, if any */
- if (plugin->init && plugin->init(errbuf, sizeof(errbuf), argc, args))
- {
- errmsg= errbuf;
- goto err1;
- }
-
- p= (struct st_client_plugin_int *)
- memdup_root(&mem_root, &plugin_int, sizeof(plugin_int));
-
- if (!p)
- {
- errmsg= "Out of memory";
- goto err2;
- }
-
- safe_mutex_assert_owner(&LOCK_load_client_plugin);
-
- p->next= plugin_list[plugin->type];
- plugin_list[plugin->type]= p;
-
- return plugin;
-
-err2:
- if (plugin->deinit)
- plugin->deinit();
-err1:
- set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate,
- ER(CR_AUTH_PLUGIN_CANNOT_LOAD), plugin->name,
- errmsg);
- if (dlhandle)
- dlclose(dlhandle);
- return NULL;
-}
-
-/**
- Loads plugins which are specified in the environment variable
- LIBMYSQL_PLUGINS.
-
- Multiple plugins must be separated by semicolon. This function doesn't
- return or log an error.
-
- The function is be called by mysql_client_plugin_init
-
- @todo
- Support extended syntax, passing parameters to plugins, for example
- LIBMYSQL_PLUGINS="plugin1(param1,param2);plugin2;..."
- or
- LIBMYSQL_PLUGINS="plugin1=int:param1,str:param2;plugin2;..."
-*/
-static void load_env_plugins(MYSQL *mysql)
-{
- char *plugs, *free_env, *s= getenv("LIBMYSQL_PLUGINS");
-
- /* no plugins to load */
- if(!s)
- return;
-
- free_env= plugs= my_strdup(s, MYF(MY_WME));
-
- do {
- if ((s= strchr(plugs, ';')))
- *s= '\0';
- mysql_load_plugin(mysql, plugs, -1, 0);
- plugs= s + 1;
- } while (s);
-
- my_free(free_env);
-}
-
-/********** extern functions to be used by libmysql *********************/
-
-/**
- Initializes the client plugin layer.
-
- This function must be called before any other client plugin function.
-
- @retval 0 successful
- @retval != 0 error occured
-*/
-int mysql_client_plugin_init()
-{
- MYSQL mysql;
- struct st_mysql_client_plugin **builtin;
-
- if (initialized)
- return 0;
-
- bzero(&mysql, sizeof(mysql)); /* dummy mysql for set_mysql_extended_error */
-
- pthread_mutex_init(&LOCK_load_client_plugin, MY_MUTEX_INIT_SLOW);
- init_alloc_root(&mem_root, 128, 128);
-
- bzero(&plugin_list, sizeof(plugin_list));
-
- initialized= 1;
-
- pthread_mutex_lock(&LOCK_load_client_plugin);
-
- for (builtin= mysql_client_builtins; *builtin; builtin++)
- add_plugin(&mysql, *builtin, 0, 0, 0);
-
- pthread_mutex_unlock(&LOCK_load_client_plugin);
-
- load_env_plugins(&mysql);
-
- return 0;
-}
-
-/**
- Deinitializes the client plugin layer.
-
- Unloades all client plugins and frees any associated resources.
-*/
-void mysql_client_plugin_deinit()
-{
- int i;
- struct st_client_plugin_int *p;
-
- if (!initialized)
- return;
-
- for (i=0; i < MYSQL_CLIENT_MAX_PLUGINS; i++)
- for (p= plugin_list[i]; p; p= p->next)
- {
- if (p->plugin->deinit)
- p->plugin->deinit();
- if (p->dlhandle)
- dlclose(p->dlhandle);
- }
-
- bzero(&plugin_list, sizeof(plugin_list));
- initialized= 0;
- free_root(&mem_root, MYF(0));
- pthread_mutex_destroy(&LOCK_load_client_plugin);
-}
-
-/************* public facing functions, for client consumption *********/
-
-/* see <mysql/client_plugin.h> for a full description */
-struct st_mysql_client_plugin *
-mysql_client_register_plugin(MYSQL *mysql,
- struct st_mysql_client_plugin *plugin)
-{
- if (is_not_initialized(mysql, plugin->name))
- return NULL;
-
- pthread_mutex_lock(&LOCK_load_client_plugin);
-
- /* make sure the plugin wasn't loaded meanwhile */
- if (find_plugin(plugin->name, plugin->type))
- {
- set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD,
- unknown_sqlstate, ER(CR_AUTH_PLUGIN_CANNOT_LOAD),
- plugin->name, "it is already loaded");
- plugin= NULL;
- }
- else
- plugin= add_plugin(mysql, plugin, 0, 0, 0);
-
- pthread_mutex_unlock(&LOCK_load_client_plugin);
- return plugin;
-}
-
-/* see <mysql/client_plugin.h> for a full description */
-struct st_mysql_client_plugin *
-mysql_load_plugin_v(MYSQL *mysql, const char *name, int type,
- int argc, va_list args)
-{
- const char *errmsg;
- char dlpath[FN_REFLEN+1];
- void *sym, *dlhandle;
- struct st_mysql_client_plugin *plugin;
-#ifdef _WIN32
- char win_errormsg[2048];
-#endif
-
- DBUG_ENTER ("mysql_load_plugin_v");
- DBUG_PRINT ("entry", ("name=%s type=%d int argc=%d", name, type, argc));
- if (is_not_initialized(mysql, name))
- {
- DBUG_PRINT ("leave", ("mysql not initialized"));
- DBUG_RETURN (NULL);
- }
-
- pthread_mutex_lock(&LOCK_load_client_plugin);
-
- /* make sure the plugin wasn't loaded meanwhile */
- if (type >= 0 && find_plugin(name, type))
- {
- errmsg= "it is already loaded";
- goto err;
- }
-
- /* Compile dll path */
- strxnmov(dlpath, sizeof(dlpath) - 1,
- mysql->options.extension && mysql->options.extension->plugin_dir ?
- mysql->options.extension->plugin_dir : PLUGINDIR, "/",
- name, SO_EXT, NullS);
-
- DBUG_PRINT ("info", ("dlopeninig %s", dlpath));
- /* Open new dll handle */
- if (!(dlhandle= dlopen(dlpath, RTLD_NOW)))
- {
-#if defined(__APPLE__)
- /* Apple supports plugins with .so also, so try this as well */
- strxnmov(dlpath, sizeof(dlpath) - 1,
- mysql->options.extension && mysql->options.extension->plugin_dir ?
- mysql->options.extension->plugin_dir : PLUGINDIR, "/",
- name, ".so", NullS);
- if ((dlhandle= dlopen(dlpath, RTLD_NOW)))
- goto have_plugin;
-#endif
-
- DBUG_PRINT ("info", ("failed to dlopen"));
-#ifdef _WIN32
- if(FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,
- 0, GetLastError(), 0, win_errormsg, 2048, NULL))
- errmsg= win_errormsg;
- else
- errmsg= "";
-#else
- errmsg= dlerror();
-#endif
- goto err;
- }
-
-#if defined(__APPLE__)
-have_plugin:
-#endif
- if (!(sym= dlsym(dlhandle, plugin_declarations_sym)))
- {
- errmsg= "not a plugin";
- dlclose(dlhandle);
- goto err;
- }
-
- plugin= (struct st_mysql_client_plugin*)sym;
-
- if (type >=0 && type != plugin->type)
- {
- errmsg= "type mismatch";
- goto err;
- }
-
- if (strcmp(name, plugin->name))
- {
- errmsg= "name mismatch";
- goto err;
- }
-
- if (type < 0 && find_plugin(name, plugin->type))
- {
- errmsg= "it is already loaded";
- goto err;
- }
-
- plugin= add_plugin(mysql, plugin, dlhandle, argc, args);
-
- pthread_mutex_unlock(&LOCK_load_client_plugin);
-
- DBUG_PRINT ("leave", ("plugin loaded ok"));
- DBUG_RETURN (plugin);
-
-err:
- pthread_mutex_unlock(&LOCK_load_client_plugin);
- DBUG_PRINT ("leave", ("plugin load error : %s", errmsg));
- set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate,
- ER(CR_AUTH_PLUGIN_CANNOT_LOAD), name, errmsg);
- DBUG_RETURN (NULL);
-}
-
-/* see <mysql/client_plugin.h> for a full description */
-struct st_mysql_client_plugin *
-mysql_load_plugin(MYSQL *mysql, const char *name, int type, int argc, ...)
-{
- struct st_mysql_client_plugin *p;
- va_list args;
- va_start(args, argc);
- p= mysql_load_plugin_v(mysql, name, type, argc, args);
- va_end(args);
- return p;
-}
-
-/* see <mysql/client_plugin.h> for a full description */
-struct st_mysql_client_plugin *
-mysql_client_find_plugin(MYSQL *mysql, const char *name, int type)
-{
- struct st_mysql_client_plugin *p;
-
- DBUG_ENTER ("mysql_client_find_plugin");
- DBUG_PRINT ("entry", ("name=%s, type=%d", name, type));
- if (is_not_initialized(mysql, name))
- DBUG_RETURN (NULL);
-
- if (type < 0 || type >= MYSQL_CLIENT_MAX_PLUGINS)
- {
- set_mysql_extended_error(mysql, CR_AUTH_PLUGIN_CANNOT_LOAD, unknown_sqlstate,
- ER(CR_AUTH_PLUGIN_CANNOT_LOAD), name,
- "invalid type");
- }
-
- if ((p= find_plugin(name, type)))
- {
- DBUG_PRINT ("leave", ("found %p", p));
- DBUG_RETURN (p);
- }
-
- /* not found, load it */
- p= mysql_load_plugin(mysql, name, type, 0);
- DBUG_PRINT ("leave", ("loaded %p", p));
- DBUG_RETURN (p);
-}
-
-
-/* see <mysql/client_plugin.h> for a full description */
-int STDCALL mysql_plugin_options(struct st_mysql_client_plugin *plugin,
- const char *option,
- const void *value)
-{
- DBUG_ENTER("mysql_plugin_options");
- /* does the plugin support options call? */
- if (!plugin || !plugin->options)
- DBUG_RETURN(1);
- DBUG_RETURN(plugin->options(option, value));
-}
diff --git a/dep/mysqllite/sql-common/my_time.c b/dep/mysqllite/sql-common/my_time.c
deleted file mode 100644
index 38384600fc1..00000000000
--- a/dep/mysqllite/sql-common/my_time.c
+++ /dev/null
@@ -1,1256 +0,0 @@
-/* Copyright (C) 2004-2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_time.h>
-#include <m_string.h>
-#include <m_ctype.h>
-/* Windows version of localtime_r() is declared in my_ptrhead.h */
-#include <my_pthread.h>
-
-ulonglong log_10_int[20]=
-{
- 1, 10, 100, 1000, 10000UL, 100000UL, 1000000UL, 10000000UL,
- ULL(100000000), ULL(1000000000), ULL(10000000000), ULL(100000000000),
- ULL(1000000000000), ULL(10000000000000), ULL(100000000000000),
- ULL(1000000000000000), ULL(10000000000000000), ULL(100000000000000000),
- ULL(1000000000000000000), ULL(10000000000000000000)
-};
-
-
-/* Position for YYYY-DD-MM HH-MM-DD.FFFFFF AM in default format */
-
-static uchar internal_format_positions[]=
-{0, 1, 2, 3, 4, 5, 6, (uchar) 255};
-
-static char time_separator=':';
-
-static ulong const days_at_timestart=719528; /* daynr at 1970.01.01 */
-uchar days_in_month[]= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0};
-
-/*
- Offset of system time zone from UTC in seconds used to speed up
- work of my_system_gmt_sec() function.
-*/
-static long my_time_zone=0;
-
-
-/* Calc days in one year. works with 0 <= year <= 99 */
-
-uint calc_days_in_year(uint year)
-{
- return ((year & 3) == 0 && (year%100 || (year%400 == 0 && year)) ?
- 366 : 365);
-}
-
-/**
- @brief Check datetime value for validity according to flags.
-
- @param[in] ltime Date to check.
- @param[in] not_zero_date ltime is not the zero date
- @param[in] flags flags to check
- (see str_to_datetime() flags in my_time.h)
- @param[out] was_cut set to 2 if value was invalid according to flags.
- (Feb 29 in non-leap etc.) This remains unchanged
- if value is not invalid.
-
- @details Here we assume that year and month is ok!
- If month is 0 we allow any date. (This only happens if we allow zero
- date parts in str_to_datetime())
- Disallow dates with zero year and non-zero month and/or day.
-
- @return
- 0 OK
- 1 error
-*/
-
-my_bool check_date(const MYSQL_TIME *ltime, my_bool not_zero_date,
- ulonglong flags, int *was_cut)
-{
- if (not_zero_date)
- {
- if ((((flags & TIME_NO_ZERO_IN_DATE) || !(flags & TIME_FUZZY_DATE)) &&
- (ltime->month == 0 || ltime->day == 0)) ||
- (!(flags & TIME_INVALID_DATES) &&
- ltime->month && ltime->day > days_in_month[ltime->month-1] &&
- (ltime->month != 2 || calc_days_in_year(ltime->year) != 366 ||
- ltime->day != 29)))
- {
- *was_cut= 2;
- return TRUE;
- }
- }
- else if (flags & TIME_NO_ZERO_DATE)
- {
- /*
- We don't set *was_cut here to signal that the problem was a zero date
- and not an invalid date
- */
- return TRUE;
- }
- return FALSE;
-}
-
-
-/*
- Convert a timestamp string to a MYSQL_TIME value.
-
- SYNOPSIS
- str_to_datetime()
- str String to parse
- length Length of string
- l_time Date is stored here
- flags Bitmap of following items
- TIME_FUZZY_DATE Set if we should allow partial dates
- TIME_DATETIME_ONLY Set if we only allow full datetimes.
- TIME_NO_ZERO_IN_DATE Don't allow partial dates
- TIME_NO_ZERO_DATE Don't allow 0000-00-00 date
- TIME_INVALID_DATES Allow 2000-02-31
- was_cut 0 Value OK
- 1 If value was cut during conversion
- 2 check_date(date,flags) considers date invalid
-
- DESCRIPTION
- At least the following formats are recogniced (based on number of digits)
- YYMMDD, YYYYMMDD, YYMMDDHHMMSS, YYYYMMDDHHMMSS
- YY-MM-DD, YYYY-MM-DD, YY-MM-DD HH.MM.SS
- YYYYMMDDTHHMMSS where T is a the character T (ISO8601)
- Also dates where all parts are zero are allowed
-
- The second part may have an optional .###### fraction part.
-
- NOTES
- This function should work with a format position vector as long as the
- following things holds:
- - All date are kept together and all time parts are kept together
- - Date and time parts must be separated by blank
- - Second fractions must come after second part and be separated
- by a '.'. (The second fractions are optional)
- - AM/PM must come after second fractions (or after seconds if no fractions)
- - Year must always been specified.
- - If time is before date, then we will use datetime format only if
- the argument consist of two parts, separated by space.
- Otherwise we will assume the argument is a date.
- - The hour part must be specified in hour-minute-second order.
-
- RETURN VALUES
- MYSQL_TIMESTAMP_NONE String wasn't a timestamp, like
- [DD [HH:[MM:[SS]]]].fraction.
- l_time is not changed.
- MYSQL_TIMESTAMP_DATE DATE string (YY MM and DD parts ok)
- MYSQL_TIMESTAMP_DATETIME Full timestamp
- MYSQL_TIMESTAMP_ERROR Timestamp with wrong values.
- All elements in l_time is set to 0
-*/
-
-#define MAX_DATE_PARTS 8
-
-enum enum_mysql_timestamp_type
-str_to_datetime(const char *str, uint length, MYSQL_TIME *l_time,
- ulonglong flags, int *was_cut)
-{
- uint field_length, UNINIT_VAR(year_length), digits, i, number_of_fields;
- uint date[MAX_DATE_PARTS], date_len[MAX_DATE_PARTS];
- uint add_hours= 0, start_loop;
- ulong not_zero_date, allow_space;
- my_bool is_internal_format;
- const char *pos, *UNINIT_VAR(last_field_pos);
- const char *end=str+length;
- const uchar *format_position;
- my_bool found_delimitier= 0, found_space= 0;
- uint frac_pos, frac_len;
- DBUG_ENTER("str_to_datetime");
- DBUG_PRINT("ENTER",("str: %.*s",length,str));
-
- LINT_INIT(field_length);
-
- *was_cut= 0;
-
- /* Skip space at start */
- for (; str != end && my_isspace(&my_charset_latin1, *str) ; str++)
- ;
- if (str == end || ! my_isdigit(&my_charset_latin1, *str))
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
- }
-
- is_internal_format= 0;
- /* This has to be changed if want to activate different timestamp formats */
- format_position= internal_format_positions;
-
- /*
- Calculate number of digits in first part.
- If length= 8 or >= 14 then year is of format YYYY.
- (YYYY-MM-DD, YYYYMMDD, YYYYYMMDDHHMMSS)
- */
- for (pos=str;
- pos != end && (my_isdigit(&my_charset_latin1,*pos) || *pos == 'T');
- pos++)
- ;
-
- digits= (uint) (pos-str);
- start_loop= 0; /* Start of scan loop */
- date_len[format_position[0]]= 0; /* Length of year field */
- if (pos == end || *pos == '.')
- {
- /* Found date in internal format (only numbers like YYYYMMDD) */
- year_length= (digits == 4 || digits == 8 || digits >= 14) ? 4 : 2;
- field_length= year_length;
- is_internal_format= 1;
- format_position= internal_format_positions;
- }
- else
- {
- if (format_position[0] >= 3) /* If year is after HHMMDD */
- {
- /*
- If year is not in first part then we have to determinate if we got
- a date field or a datetime field.
- We do this by checking if there is two numbers separated by
- space in the input.
- */
- while (pos < end && !my_isspace(&my_charset_latin1, *pos))
- pos++;
- while (pos < end && !my_isdigit(&my_charset_latin1, *pos))
- pos++;
- if (pos == end)
- {
- if (flags & TIME_DATETIME_ONLY)
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE); /* Can't be a full datetime */
- }
- /* Date field. Set hour, minutes and seconds to 0 */
- date[0]= date[1]= date[2]= date[3]= date[4]= 0;
- start_loop= 5; /* Start with first date part */
- }
- }
-
- field_length= format_position[0] == 0 ? 4 : 2;
- }
-
- /*
- Only allow space in the first "part" of the datetime field and:
- - after days, part seconds
- - before and after AM/PM (handled by code later)
-
- 2003-03-03 20:00:20 AM
- 20:00:20.000000 AM 03-03-2000
- */
- i= max((uint) format_position[0], (uint) format_position[1]);
- set_if_bigger(i, (uint) format_position[2]);
- allow_space= ((1 << i) | (1 << format_position[6]));
- allow_space&= (1 | 2 | 4 | 8);
-
- not_zero_date= 0;
- for (i = start_loop;
- i < MAX_DATE_PARTS-1 && str != end &&
- my_isdigit(&my_charset_latin1,*str);
- i++)
- {
- const char *start= str;
- ulong tmp_value= (uint) (uchar) (*str++ - '0');
-
- /*
- Internal format means no delimiters; every field has a fixed
- width. Otherwise, we scan until we find a delimiter and discard
- leading zeroes -- except for the microsecond part, where leading
- zeroes are significant, and where we never process more than six
- digits.
- */
- my_bool scan_until_delim= !is_internal_format &&
- ((i != format_position[6]));
-
- while (str != end && my_isdigit(&my_charset_latin1,str[0]) &&
- (scan_until_delim || --field_length))
- {
- tmp_value=tmp_value*10 + (ulong) (uchar) (*str - '0');
- str++;
- }
- date_len[i]= (uint) (str - start);
- if (tmp_value > 999999) /* Impossible date part */
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
- }
- date[i]=tmp_value;
- not_zero_date|= tmp_value;
-
- /* Length of next field */
- field_length= format_position[i+1] == 0 ? 4 : 2;
-
- if ((last_field_pos= str) == end)
- {
- i++; /* Register last found part */
- break;
- }
- /* Allow a 'T' after day to allow CCYYMMDDT type of fields */
- if (i == format_position[2] && *str == 'T')
- {
- str++; /* ISO8601: CCYYMMDDThhmmss */
- continue;
- }
- if (i == format_position[5]) /* Seconds */
- {
- if (*str == '.') /* Followed by part seconds */
- {
- str++;
- field_length= 6; /* 6 digits */
- }
- continue;
- }
- while (str != end &&
- (my_ispunct(&my_charset_latin1,*str) ||
- my_isspace(&my_charset_latin1,*str)))
- {
- if (my_isspace(&my_charset_latin1,*str))
- {
- if (!(allow_space & (1 << i)))
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
- }
- found_space= 1;
- }
- str++;
- found_delimitier= 1; /* Should be a 'normal' date */
- }
- /* Check if next position is AM/PM */
- if (i == format_position[6]) /* Seconds, time for AM/PM */
- {
- i++; /* Skip AM/PM part */
- if (format_position[7] != 255) /* If using AM/PM */
- {
- if (str+2 <= end && (str[1] == 'M' || str[1] == 'm'))
- {
- if (str[0] == 'p' || str[0] == 'P')
- add_hours= 12;
- else if (str[0] != 'a' || str[0] != 'A')
- continue; /* Not AM/PM */
- str+= 2; /* Skip AM/PM */
- /* Skip space after AM/PM */
- while (str != end && my_isspace(&my_charset_latin1,*str))
- str++;
- }
- }
- }
- last_field_pos= str;
- }
- if (found_delimitier && !found_space && (flags & TIME_DATETIME_ONLY))
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE); /* Can't be a datetime */
- }
-
- str= last_field_pos;
-
- number_of_fields= i - start_loop;
- while (i < MAX_DATE_PARTS)
- {
- date_len[i]= 0;
- date[i++]= 0;
- }
-
- if (!is_internal_format)
- {
- year_length= date_len[(uint) format_position[0]];
- if (!year_length) /* Year must be specified */
- {
- *was_cut= 1;
- DBUG_RETURN(MYSQL_TIMESTAMP_NONE);
- }
-
- l_time->year= date[(uint) format_position[0]];
- l_time->month= date[(uint) format_position[1]];
- l_time->day= date[(uint) format_position[2]];
- l_time->hour= date[(uint) format_position[3]];
- l_time->minute= date[(uint) format_position[4]];
- l_time->second= date[(uint) format_position[5]];
-
- frac_pos= (uint) format_position[6];
- frac_len= date_len[frac_pos];
- if (frac_len < 6)
- date[frac_pos]*= (uint) log_10_int[6 - frac_len];
- l_time->second_part= date[frac_pos];
-
- if (format_position[7] != (uchar) 255)
- {
- if (l_time->hour > 12)
- {
- *was_cut= 1;
- goto err;
- }
- l_time->hour= l_time->hour%12 + add_hours;
- }
- }
- else
- {
- l_time->year= date[0];
- l_time->month= date[1];
- l_time->day= date[2];
- l_time->hour= date[3];
- l_time->minute= date[4];
- l_time->second= date[5];
- if (date_len[6] < 6)
- date[6]*= (uint) log_10_int[6 - date_len[6]];
- l_time->second_part=date[6];
- }
- l_time->neg= 0;
-
- if (year_length == 2 && not_zero_date)
- l_time->year+= (l_time->year < YY_PART_YEAR ? 2000 : 1900);
-
- if (number_of_fields < 3 ||
- l_time->year > 9999 || l_time->month > 12 ||
- l_time->day > 31 || l_time->hour > 23 ||
- l_time->minute > 59 || l_time->second > 59)
- {
- /* Only give warning for a zero date if there is some garbage after */
- if (!not_zero_date) /* If zero date */
- {
- for (; str != end ; str++)
- {
- if (!my_isspace(&my_charset_latin1, *str))
- {
- not_zero_date= 1; /* Give warning */
- break;
- }
- }
- }
- *was_cut= test(not_zero_date);
- goto err;
- }
-
- if (check_date(l_time, not_zero_date != 0, flags, was_cut))
- goto err;
-
- l_time->time_type= (number_of_fields <= 3 ?
- MYSQL_TIMESTAMP_DATE : MYSQL_TIMESTAMP_DATETIME);
-
- for (; str != end ; str++)
- {
- if (!my_isspace(&my_charset_latin1,*str))
- {
- *was_cut= 1;
- break;
- }
- }
-
- DBUG_RETURN(l_time->time_type);
-
-err:
- bzero((char*) l_time, sizeof(*l_time));
- DBUG_RETURN(MYSQL_TIMESTAMP_ERROR);
-}
-
-
-/*
- Convert a time string to a MYSQL_TIME struct.
-
- SYNOPSIS
- str_to_time()
- str A string in full TIMESTAMP format or
- [-] DAYS [H]H:MM:SS, [H]H:MM:SS, [M]M:SS, [H]HMMSS,
- [M]MSS or [S]S
- There may be an optional [.second_part] after seconds
- length Length of str
- l_time Store result here
- warning Set MYSQL_TIME_WARN_TRUNCATED flag if the input string
- was cut during conversion, and/or
- MYSQL_TIME_WARN_OUT_OF_RANGE flag, if the value is
- out of range.
-
- NOTES
- Because of the extra days argument, this function can only
- work with times where the time arguments are in the above order.
-
- RETURN
- 0 ok
- 1 error
-*/
-
-my_bool str_to_time(const char *str, uint length, MYSQL_TIME *l_time,
- int *warning)
-{
- ulong date[5];
- ulonglong value;
- const char *end=str+length, *end_of_days;
- my_bool found_days,found_hours;
- uint state;
-
- l_time->neg=0;
- *warning= 0;
- for (; str != end && my_isspace(&my_charset_latin1,*str) ; str++)
- length--;
- if (str != end && *str == '-')
- {
- l_time->neg=1;
- str++;
- length--;
- }
- if (str == end)
- return 1;
-
- /* Check first if this is a full TIMESTAMP */
- if (length >= 12)
- { /* Probably full timestamp */
- int was_cut;
- enum enum_mysql_timestamp_type
- res= str_to_datetime(str, length, l_time,
- (TIME_FUZZY_DATE | TIME_DATETIME_ONLY), &was_cut);
- if ((int) res >= (int) MYSQL_TIMESTAMP_ERROR)
- {
- if (was_cut)
- *warning|= MYSQL_TIME_WARN_TRUNCATED;
- return res == MYSQL_TIMESTAMP_ERROR;
- }
- }
-
- /* Not a timestamp. Try to get this as a DAYS_TO_SECOND string */
- for (value=0; str != end && my_isdigit(&my_charset_latin1,*str) ; str++)
- value=value*10L + (long) (*str - '0');
-
- /* Skip all space after 'days' */
- end_of_days= str;
- for (; str != end && my_isspace(&my_charset_latin1, str[0]) ; str++)
- ;
-
- LINT_INIT(state);
- found_days=found_hours=0;
- if ((uint) (end-str) > 1 && str != end_of_days &&
- my_isdigit(&my_charset_latin1, *str))
- { /* Found days part */
- date[0]= (ulong) value;
- state= 1; /* Assume next is hours */
- found_days= 1;
- }
- else if ((end-str) > 1 && *str == time_separator &&
- my_isdigit(&my_charset_latin1, str[1]))
- {
- date[0]= 0; /* Assume we found hours */
- date[1]= (ulong) value;
- state=2;
- found_hours=1;
- str++; /* skip ':' */
- }
- else
- {
- /* String given as one number; assume HHMMSS format */
- date[0]= 0;
- date[1]= (ulong) (value/10000);
- date[2]= (ulong) (value/100 % 100);
- date[3]= (ulong) (value % 100);
- state=4;
- goto fractional;
- }
-
- /* Read hours, minutes and seconds */
- for (;;)
- {
- for (value=0; str != end && my_isdigit(&my_charset_latin1,*str) ; str++)
- value=value*10L + (long) (*str - '0');
- date[state++]= (ulong) value;
- if (state == 4 || (end-str) < 2 || *str != time_separator ||
- !my_isdigit(&my_charset_latin1,str[1]))
- break;
- str++; /* Skip time_separator (':') */
- }
-
- if (state != 4)
- { /* Not HH:MM:SS */
- /* Fix the date to assume that seconds was given */
- if (!found_hours && !found_days)
- {
- bmove_upp((uchar*) (date+4), (uchar*) (date+state),
- sizeof(long)*(state-1));
- bzero((uchar*) date, sizeof(long)*(4-state));
- }
- else
- bzero((uchar*) (date+state), sizeof(long)*(4-state));
- }
-
-fractional:
- /* Get fractional second part */
- if ((end-str) >= 2 && *str == '.' && my_isdigit(&my_charset_latin1,str[1]))
- {
- int field_length= 5;
- str++; value=(uint) (uchar) (*str - '0');
- while (++str != end && my_isdigit(&my_charset_latin1, *str))
- {
- if (field_length-- > 0)
- value= value*10 + (uint) (uchar) (*str - '0');
- }
- if (field_length > 0)
- value*= (long) log_10_int[field_length];
- else if (field_length < 0)
- *warning|= MYSQL_TIME_WARN_TRUNCATED;
- date[4]= (ulong) value;
- }
- else
- date[4]=0;
-
- /* Check for exponent part: E<gigit> | E<sign><digit> */
- /* (may occur as result of %g formatting of time value) */
- if ((end - str) > 1 &&
- (*str == 'e' || *str == 'E') &&
- (my_isdigit(&my_charset_latin1, str[1]) ||
- ((str[1] == '-' || str[1] == '+') &&
- (end - str) > 2 &&
- my_isdigit(&my_charset_latin1, str[2]))))
- return 1;
-
- if (internal_format_positions[7] != 255)
- {
- /* Read a possible AM/PM */
- while (str != end && my_isspace(&my_charset_latin1, *str))
- str++;
- if (str+2 <= end && (str[1] == 'M' || str[1] == 'm'))
- {
- if (str[0] == 'p' || str[0] == 'P')
- {
- str+= 2;
- date[1]= date[1]%12 + 12;
- }
- else if (str[0] == 'a' || str[0] == 'A')
- str+=2;
- }
- }
-
- /* Integer overflow checks */
- if (date[0] > UINT_MAX || date[1] > UINT_MAX ||
- date[2] > UINT_MAX || date[3] > UINT_MAX ||
- date[4] > UINT_MAX)
- return 1;
-
- l_time->year= 0; /* For protocol::store_time */
- l_time->month= 0;
- l_time->day= date[0];
- l_time->hour= date[1];
- l_time->minute= date[2];
- l_time->second= date[3];
- l_time->second_part= date[4];
- l_time->time_type= MYSQL_TIMESTAMP_TIME;
-
- /* Check if the value is valid and fits into MYSQL_TIME range */
- if (check_time_range(l_time, warning))
- return 1;
-
- /* Check if there is garbage at end of the MYSQL_TIME specification */
- if (str != end)
- {
- do
- {
- if (!my_isspace(&my_charset_latin1,*str))
- {
- *warning|= MYSQL_TIME_WARN_TRUNCATED;
- break;
- }
- } while (++str != end);
- }
- return 0;
-}
-
-
-/*
- Check 'time' value to lie in the MYSQL_TIME range
-
- SYNOPSIS:
- check_time_range()
- time pointer to MYSQL_TIME value
- warning set MYSQL_TIME_WARN_OUT_OF_RANGE flag if the value is out of range
-
- DESCRIPTION
- If the time value lies outside of the range [-838:59:59, 838:59:59],
- set it to the closest endpoint of the range and set
- MYSQL_TIME_WARN_OUT_OF_RANGE flag in the 'warning' variable.
-
- RETURN
- 0 time value is valid, but was possibly truncated
- 1 time value is invalid
-*/
-
-int check_time_range(struct st_mysql_time *my_time, int *warning)
-{
- longlong hour;
-
- if (my_time->minute >= 60 || my_time->second >= 60)
- return 1;
-
- hour= my_time->hour + (24*my_time->day);
- if (hour <= TIME_MAX_HOUR &&
- (hour != TIME_MAX_HOUR || my_time->minute != TIME_MAX_MINUTE ||
- my_time->second != TIME_MAX_SECOND || !my_time->second_part))
- return 0;
-
- my_time->day= 0;
- my_time->hour= TIME_MAX_HOUR;
- my_time->minute= TIME_MAX_MINUTE;
- my_time->second= TIME_MAX_SECOND;
- my_time->second_part= 0;
- *warning|= MYSQL_TIME_WARN_OUT_OF_RANGE;
- return 0;
-}
-
-
-/*
- Prepare offset of system time zone from UTC for my_system_gmt_sec() func.
-
- SYNOPSIS
- my_init_time()
-*/
-void my_init_time(void)
-{
- time_t seconds;
- struct tm *l_time,tm_tmp;
- MYSQL_TIME my_time;
- my_bool not_used;
-
- seconds= (time_t) time((time_t*) 0);
- localtime_r(&seconds,&tm_tmp);
- l_time= &tm_tmp;
- my_time_zone= 3600; /* Comp. for -3600 in my_gmt_sec */
- my_time.year= (uint) l_time->tm_year+1900;
- my_time.month= (uint) l_time->tm_mon+1;
- my_time.day= (uint) l_time->tm_mday;
- my_time.hour= (uint) l_time->tm_hour;
- my_time.minute= (uint) l_time->tm_min;
- my_time.second= (uint) l_time->tm_sec;
- my_system_gmt_sec(&my_time, &my_time_zone, &not_used); /* Init my_time_zone */
-}
-
-
-/*
- Handle 2 digit year conversions
-
- SYNOPSIS
- year_2000_handling()
- year 2 digit year
-
- RETURN
- Year between 1970-2069
-*/
-
-uint year_2000_handling(uint year)
-{
- if ((year=year+1900) < 1900+YY_PART_YEAR)
- year+=100;
- return year;
-}
-
-
-/*
- Calculate nr of day since year 0 in new date-system (from 1615)
-
- SYNOPSIS
- calc_daynr()
- year Year (exact 4 digit year, no year conversions)
- month Month
- day Day
-
- NOTES: 0000-00-00 is a valid date, and will return 0
-
- RETURN
- Days since 0000-00-00
-*/
-
-long calc_daynr(uint year,uint month,uint day)
-{
- long delsum;
- int temp;
- int y= year; /* may be < 0 temporarily */
- DBUG_ENTER("calc_daynr");
-
- if (y == 0 && month == 0 && day == 0)
- DBUG_RETURN(0); /* Skip errors */
- /* Cast to int to be able to handle month == 0 */
- delsum= (long) (365 * y + 31 *((int) month - 1) + (int) day);
- if (month <= 2)
- y--;
- else
- delsum-= (long) ((int) month * 4 + 23) / 10;
- temp=(int) ((y/100+1)*3)/4;
- DBUG_PRINT("exit",("year: %d month: %d day: %d -> daynr: %ld",
- y+(month <= 2),month,day,delsum+y/4-temp));
- DBUG_RETURN(delsum+(int) y/4-temp);
-} /* calc_daynr */
-
-
-/*
- Convert time in MYSQL_TIME representation in system time zone to its
- my_time_t form (number of seconds in UTC since begginning of Unix Epoch).
-
- SYNOPSIS
- my_system_gmt_sec()
- t - time value to be converted
- my_timezone - pointer to long where offset of system time zone
- from UTC will be stored for caching
- in_dst_time_gap - set to true if time falls into spring time-gap
-
- NOTES
- The idea is to cache the time zone offset from UTC (including daylight
- saving time) for the next call to make things faster. But currently we
- just calculate this offset during startup (by calling my_init_time()
- function) and use it all the time.
- Time value provided should be legal time value (e.g. '2003-01-01 25:00:00'
- is not allowed).
-
- RETURN VALUE
- Time in UTC seconds since Unix Epoch representation.
-*/
-my_time_t
-my_system_gmt_sec(const MYSQL_TIME *t_src, long *my_timezone,
- my_bool *in_dst_time_gap)
-{
- uint loop;
- time_t tmp= 0;
- int shift= 0;
- MYSQL_TIME tmp_time;
- MYSQL_TIME *t= &tmp_time;
- struct tm *l_time,tm_tmp;
- long diff, current_timezone;
-
- /*
- Use temp variable to avoid trashing input data, which could happen in
- case of shift required for boundary dates processing.
- */
- memcpy(&tmp_time, t_src, sizeof(MYSQL_TIME));
-
- if (!validate_timestamp_range(t))
- return 0;
-
- /*
- Calculate the gmt time based on current time and timezone
- The -1 on the end is to ensure that if have a date that exists twice
- (like 2002-10-27 02:00:0 MET), we will find the initial date.
-
- By doing -3600 we will have to call localtime_r() several times, but
- I couldn't come up with a better way to get a repeatable result :(
-
- We can't use mktime() as it's buggy on many platforms and not thread safe.
-
- Note: this code assumes that our time_t estimation is not too far away
- from real value (we assume that localtime_r(tmp) will return something
- within 24 hrs from t) which is probably true for all current time zones.
-
- Note2: For the dates, which have time_t representation close to
- MAX_INT32 (efficient time_t limit for supported platforms), we should
- do a small trick to avoid overflow. That is, convert the date, which is
- two days earlier, and then add these days to the final value.
-
- The same trick is done for the values close to 0 in time_t
- representation for platfroms with unsigned time_t (QNX).
-
- To be more verbose, here is a sample (extracted from the code below):
- (calc_daynr(2038, 1, 19) - (long) days_at_timestart)*86400L + 4*3600L
- would return -2147480896 because of the long type overflow. In result
- we would get 1901 year in localtime_r(), which is an obvious error.
-
- Alike problem raises with the dates close to Epoch. E.g.
- (calc_daynr(1969, 12, 31) - (long) days_at_timestart)*86400L + 23*3600L
- will give -3600.
-
- On some platforms, (E.g. on QNX) time_t is unsigned and localtime(-3600)
- wil give us a date around 2106 year. Which is no good.
-
- Theoreticaly, there could be problems with the latter conversion:
- there are at least two timezones, which had time switches near 1 Jan
- of 1970 (because of political reasons). These are America/Hermosillo and
- America/Mazatlan time zones. They changed their offset on
- 1970-01-01 08:00:00 UTC from UTC-8 to UTC-7. For these zones
- the code below will give incorrect results for dates close to
- 1970-01-01, in the case OS takes into account these historical switches.
- Luckily, it seems that we support only one platform with unsigned
- time_t. It's QNX. And QNX does not support historical timezone data at all.
- E.g. there are no /usr/share/zoneinfo/ files or any other mean to supply
- historical information for localtime_r() etc. That is, the problem is not
- relevant to QNX.
-
- We are safe with shifts close to MAX_INT32, as there are no known
- time switches on Jan 2038 yet :)
- */
- if ((t->year == TIMESTAMP_MAX_YEAR) && (t->month == 1) && (t->day > 4))
- {
- /*
- Below we will pass (uint) (t->day - shift) to calc_daynr.
- As we don't want to get an overflow here, we will shift
- only safe dates. That's why we have (t->day > 4) above.
- */
- t->day-= 2;
- shift= 2;
- }
-#ifdef TIME_T_UNSIGNED
- else
- {
- /*
- We can get 0 in time_t representaion only on 1969, 31 of Dec or on
- 1970, 1 of Jan. For both dates we use shift, which is added
- to t->day in order to step out a bit from the border.
- This is required for platforms, where time_t is unsigned.
- As far as I know, among the platforms we support it's only QNX.
- Note: the order of below if-statements is significant.
- */
-
- if ((t->year == TIMESTAMP_MIN_YEAR + 1) && (t->month == 1)
- && (t->day <= 10))
- {
- t->day+= 2;
- shift= -2;
- }
-
- if ((t->year == TIMESTAMP_MIN_YEAR) && (t->month == 12)
- && (t->day == 31))
- {
- t->year++;
- t->month= 1;
- t->day= 2;
- shift= -2;
- }
- }
-#endif
-
- tmp= (time_t) (((calc_daynr((uint) t->year, (uint) t->month, (uint) t->day) -
- (long) days_at_timestart)*86400L + (long) t->hour*3600L +
- (long) (t->minute*60 + t->second)) + (time_t) my_time_zone -
- 3600);
-
- current_timezone= my_time_zone;
- localtime_r(&tmp,&tm_tmp);
- l_time=&tm_tmp;
- for (loop=0;
- loop < 2 &&
- (t->hour != (uint) l_time->tm_hour ||
- t->minute != (uint) l_time->tm_min ||
- t->second != (uint) l_time->tm_sec);
- loop++)
- { /* One check should be enough ? */
- /* Get difference in days */
- int days= t->day - l_time->tm_mday;
- if (days < -1)
- days= 1; /* Month has wrapped */
- else if (days > 1)
- days= -1;
- diff=(3600L*(long) (days*24+((int) t->hour - (int) l_time->tm_hour)) +
- (long) (60*((int) t->minute - (int) l_time->tm_min)) +
- (long) ((int) t->second - (int) l_time->tm_sec));
- current_timezone+= diff+3600; /* Compensate for -3600 above */
- tmp+= (time_t) diff;
- localtime_r(&tmp,&tm_tmp);
- l_time=&tm_tmp;
- }
- /*
- Fix that if we are in the non existing daylight saving time hour
- we move the start of the next real hour.
-
- This code doesn't handle such exotical thing as time-gaps whose length
- is more than one hour or non-integer (latter can theoretically happen
- if one of seconds will be removed due leap correction, or because of
- general time correction like it happened for Africa/Monrovia time zone
- in year 1972).
- */
- if (loop == 2 && t->hour != (uint) l_time->tm_hour)
- {
- int days= t->day - l_time->tm_mday;
- if (days < -1)
- days=1; /* Month has wrapped */
- else if (days > 1)
- days= -1;
- diff=(3600L*(long) (days*24+((int) t->hour - (int) l_time->tm_hour))+
- (long) (60*((int) t->minute - (int) l_time->tm_min)) +
- (long) ((int) t->second - (int) l_time->tm_sec));
- if (diff == 3600)
- tmp+=3600 - t->minute*60 - t->second; /* Move to next hour */
- else if (diff == -3600)
- tmp-=t->minute*60 + t->second; /* Move to previous hour */
-
- *in_dst_time_gap= 1;
- }
- *my_timezone= current_timezone;
-
-
- /* shift back, if we were dealing with boundary dates */
- tmp+= shift*86400L;
-
- /*
- This is possible for dates, which slightly exceed boundaries.
- Conversion will pass ok for them, but we don't allow them.
- First check will pass for platforms with signed time_t.
- instruction above (tmp+= shift*86400L) could exceed
- MAX_INT32 (== TIMESTAMP_MAX_VALUE) and overflow will happen.
- So, tmp < TIMESTAMP_MIN_VALUE will be triggered. On platfroms
- with unsigned time_t tmp+= shift*86400L might result in a number,
- larger then TIMESTAMP_MAX_VALUE, so another check will work.
- */
- if ((tmp < TIMESTAMP_MIN_VALUE) || (tmp > TIMESTAMP_MAX_VALUE))
- tmp= 0;
-
- return (my_time_t) tmp;
-} /* my_system_gmt_sec */
-
-
-/* Set MYSQL_TIME structure to 0000-00-00 00:00:00.000000 */
-
-void set_zero_time(MYSQL_TIME *tm, enum enum_mysql_timestamp_type time_type)
-{
- bzero((void*) tm, sizeof(*tm));
- tm->time_type= time_type;
-}
-
-
-/*
- Functions to convert time/date/datetime value to a string,
- using default format.
- This functions don't check that given MYSQL_TIME structure members are
- in valid range. If they are not, return value won't reflect any
- valid date either. Additionally, make_time doesn't take into
- account time->day member: it's assumed that days have been converted
- to hours already.
-
- RETURN
- number of characters written to 'to'
-*/
-
-int my_time_to_str(const MYSQL_TIME *l_time, char *to)
-{
- uint extra_hours= 0;
- return sprintf(to, "%s%02u:%02u:%02u", (l_time->neg ? "-" : ""),
- extra_hours+ l_time->hour, l_time->minute, l_time->second);
-}
-
-int my_date_to_str(const MYSQL_TIME *l_time, char *to)
-{
- return sprintf(to, "%04u-%02u-%02u",
- l_time->year, l_time->month, l_time->day);
-}
-
-int my_datetime_to_str(const MYSQL_TIME *l_time, char *to)
-{
- return sprintf(to, "%04u-%02u-%02u %02u:%02u:%02u",
- l_time->year, l_time->month, l_time->day,
- l_time->hour, l_time->minute, l_time->second);
-}
-
-
-/*
- Convert struct DATE/TIME/DATETIME value to string using built-in
- MySQL time conversion formats.
-
- SYNOPSIS
- my_TIME_to_string()
-
- NOTE
- The string must have at least MAX_DATE_STRING_REP_LENGTH bytes reserved.
-*/
-
-int my_TIME_to_str(const MYSQL_TIME *l_time, char *to)
-{
- switch (l_time->time_type) {
- case MYSQL_TIMESTAMP_DATETIME:
- return my_datetime_to_str(l_time, to);
- case MYSQL_TIMESTAMP_DATE:
- return my_date_to_str(l_time, to);
- case MYSQL_TIMESTAMP_TIME:
- return my_time_to_str(l_time, to);
- case MYSQL_TIMESTAMP_NONE:
- case MYSQL_TIMESTAMP_ERROR:
- to[0]='\0';
- return 0;
- default:
- DBUG_ASSERT(0);
- return 0;
- }
-}
-
-
-/*
- Convert datetime value specified as number to broken-down TIME
- representation and form value of DATETIME type as side-effect.
-
- SYNOPSIS
- number_to_datetime()
- nr - datetime value as number
- time_res - pointer for structure for broken-down representation
- flags - flags to use in validating date, as in str_to_datetime()
- was_cut 0 Value ok
- 1 If value was cut during conversion
- 2 check_date(date,flags) considers date invalid
-
- DESCRIPTION
- Convert a datetime value of formats YYMMDD, YYYYMMDD, YYMMDDHHMSS,
- YYYYMMDDHHMMSS to broken-down MYSQL_TIME representation. Return value in
- YYYYMMDDHHMMSS format as side-effect.
-
- This function also checks if datetime value fits in DATETIME range.
-
- RETURN VALUE
- -1 Timestamp with wrong values
- anything else DATETIME as integer in YYYYMMDDHHMMSS format
- Datetime value in YYYYMMDDHHMMSS format.
-*/
-
-longlong number_to_datetime(longlong nr, MYSQL_TIME *time_res,
- ulonglong flags, int *was_cut)
-{
- long part1,part2;
-
- *was_cut= 0;
- bzero((char*) time_res, sizeof(*time_res));
- time_res->time_type=MYSQL_TIMESTAMP_DATE;
-
- if (nr == LL(0) || nr >= LL(10000101000000))
- {
- time_res->time_type=MYSQL_TIMESTAMP_DATETIME;
- goto ok;
- }
- if (nr < 101)
- goto err;
- if (nr <= (YY_PART_YEAR-1)*10000L+1231L)
- {
- nr= (nr+20000000L)*1000000L; /* YYMMDD, year: 2000-2069 */
- goto ok;
- }
- if (nr < (YY_PART_YEAR)*10000L+101L)
- goto err;
- if (nr <= 991231L)
- {
- nr= (nr+19000000L)*1000000L; /* YYMMDD, year: 1970-1999 */
- goto ok;
- }
- /*
- Though officially we support DATE values from 1000-01-01 only, one can
- easily insert a value like 1-1-1. So, for consistency reasons such dates
- are allowed when TIME_FUZZY_DATE is set.
- */
- if (nr < 10000101L && !(flags & TIME_FUZZY_DATE))
- goto err;
- if (nr <= 99991231L)
- {
- nr= nr*1000000L;
- goto ok;
- }
- if (nr < 101000000L)
- goto err;
-
- time_res->time_type=MYSQL_TIMESTAMP_DATETIME;
-
- if (nr <= (YY_PART_YEAR-1)*LL(10000000000)+LL(1231235959))
- {
- nr= nr+LL(20000000000000); /* YYMMDDHHMMSS, 2000-2069 */
- goto ok;
- }
- if (nr < YY_PART_YEAR*LL(10000000000)+ LL(101000000))
- goto err;
- if (nr <= LL(991231235959))
- nr= nr+LL(19000000000000); /* YYMMDDHHMMSS, 1970-1999 */
-
- ok:
- part1=(long) (nr/LL(1000000));
- part2=(long) (nr - (longlong) part1*LL(1000000));
- time_res->year= (int) (part1/10000L); part1%=10000L;
- time_res->month= (int) part1 / 100;
- time_res->day= (int) part1 % 100;
- time_res->hour= (int) (part2/10000L); part2%=10000L;
- time_res->minute=(int) part2 / 100;
- time_res->second=(int) part2 % 100;
-
- if (time_res->year <= 9999 && time_res->month <= 12 &&
- time_res->day <= 31 && time_res->hour <= 23 &&
- time_res->minute <= 59 && time_res->second <= 59 &&
- !check_date(time_res, (nr != 0), flags, was_cut))
- return nr;
-
- /* Don't want to have was_cut get set if NO_ZERO_DATE was violated. */
- if (!nr && (flags & TIME_NO_ZERO_DATE))
- return LL(-1);
-
- err:
- *was_cut= 1;
- return LL(-1);
-}
-
-
-/* Convert time value to integer in YYYYMMDDHHMMSS format */
-
-ulonglong TIME_to_ulonglong_datetime(const MYSQL_TIME *my_time)
-{
- return ((ulonglong) (my_time->year * 10000UL +
- my_time->month * 100UL +
- my_time->day) * ULL(1000000) +
- (ulonglong) (my_time->hour * 10000UL +
- my_time->minute * 100UL +
- my_time->second));
-}
-
-
-/* Convert MYSQL_TIME value to integer in YYYYMMDD format */
-
-ulonglong TIME_to_ulonglong_date(const MYSQL_TIME *my_time)
-{
- return (ulonglong) (my_time->year * 10000UL + my_time->month * 100UL +
- my_time->day);
-}
-
-
-/*
- Convert MYSQL_TIME value to integer in HHMMSS format.
- This function doesn't take into account time->day member:
- it's assumed that days have been converted to hours already.
-*/
-
-ulonglong TIME_to_ulonglong_time(const MYSQL_TIME *my_time)
-{
- return (ulonglong) (my_time->hour * 10000UL +
- my_time->minute * 100UL +
- my_time->second);
-}
-
-
-/*
- Convert struct MYSQL_TIME (date and time split into year/month/day/hour/...
- to a number in format YYYYMMDDHHMMSS (DATETIME),
- YYYYMMDD (DATE) or HHMMSS (TIME).
-
- SYNOPSIS
- TIME_to_ulonglong()
-
- DESCRIPTION
- The function is used when we need to convert value of time item
- to a number if it's used in numeric context, i. e.:
- SELECT NOW()+1, CURDATE()+0, CURTIMIE()+0;
- SELECT ?+1;
-
- NOTE
- This function doesn't check that given MYSQL_TIME structure members are
- in valid range. If they are not, return value won't reflect any
- valid date either.
-*/
-
-ulonglong TIME_to_ulonglong(const MYSQL_TIME *my_time)
-{
- switch (my_time->time_type) {
- case MYSQL_TIMESTAMP_DATETIME:
- return TIME_to_ulonglong_datetime(my_time);
- case MYSQL_TIMESTAMP_DATE:
- return TIME_to_ulonglong_date(my_time);
- case MYSQL_TIMESTAMP_TIME:
- return TIME_to_ulonglong_time(my_time);
- case MYSQL_TIMESTAMP_NONE:
- case MYSQL_TIMESTAMP_ERROR:
- return ULL(0);
- default:
- DBUG_ASSERT(0);
- }
- return 0;
-}
-
diff --git a/dep/mysqllite/sql-common/pack.c b/dep/mysqllite/sql-common/pack.c
deleted file mode 100644
index 7ff89471b45..00000000000
--- a/dep/mysqllite/sql-common/pack.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <mysql_com.h>
-#include <mysql.h>
-
-/* Get the length of next field. Change parameter to point at fieldstart */
-ulong STDCALL net_field_length(uchar **packet)
-{
- reg1 uchar *pos= (uchar *)*packet;
- if (*pos < 251)
- {
- (*packet)++;
- return (ulong) *pos;
- }
- if (*pos == 251)
- {
- (*packet)++;
- return NULL_LENGTH;
- }
- if (*pos == 252)
- {
- (*packet)+=3;
- return (ulong) uint2korr(pos+1);
- }
- if (*pos == 253)
- {
- (*packet)+=4;
- return (ulong) uint3korr(pos+1);
- }
- (*packet)+=9; /* Must be 254 when here */
- return (ulong) uint4korr(pos+1);
-}
-
-/* The same as above but returns longlong */
-my_ulonglong net_field_length_ll(uchar **packet)
-{
- reg1 uchar *pos= *packet;
- if (*pos < 251)
- {
- (*packet)++;
- return (my_ulonglong) *pos;
- }
- if (*pos == 251)
- {
- (*packet)++;
- return (my_ulonglong) NULL_LENGTH;
- }
- if (*pos == 252)
- {
- (*packet)+=3;
- return (my_ulonglong) uint2korr(pos+1);
- }
- if (*pos == 253)
- {
- (*packet)+=4;
- return (my_ulonglong) uint3korr(pos+1);
- }
- (*packet)+=9; /* Must be 254 when here */
-#ifdef NO_CLIENT_LONGLONG
- return (my_ulonglong) uint4korr(pos+1);
-#else
- return (my_ulonglong) uint8korr(pos+1);
-#endif
-}
-
-/*
- Store an integer with simple packing into a output package
-
- SYNOPSIS
- net_store_length()
- pkg Store the packed integer here
- length integers to store
-
- NOTES
- This is mostly used to store lengths of strings.
- We have to cast the result for the LL() becasue of a bug in Forte CC
- compiler.
-
- RETURN
- Position in 'pkg' after the packed length
-*/
-
-uchar *net_store_length(uchar *packet, ulonglong length)
-{
- if (length < (ulonglong) LL(251))
- {
- *packet=(uchar) length;
- return packet+1;
- }
- /* 251 is reserved for NULL */
- if (length < (ulonglong) LL(65536))
- {
- *packet++=252;
- int2store(packet,(uint) length);
- return packet+2;
- }
- if (length < (ulonglong) LL(16777216))
- {
- *packet++=253;
- int3store(packet,(ulong) length);
- return packet+3;
- }
- *packet++=254;
- int8store(packet,length);
- return packet+8;
-}
-
diff --git a/dep/mysqllite/sql/net_serv.cc b/dep/mysqllite/sql/net_serv.cc
deleted file mode 100644
index d60e2051ccd..00000000000
--- a/dep/mysqllite/sql/net_serv.cc
+++ /dev/null
@@ -1,1186 +0,0 @@
-/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/**
- @file
-
- This file is the net layer API for the MySQL client/server protocol.
-
- Write and read of logical packets to/from socket.
-
- Writes are cached into net_buffer_length big packets.
- Read packets are reallocated dynamicly when reading big packets.
- Each logical packet has the following pre-info:
- 3 byte length & 1 byte package-number.
-
- This file needs to be written in C as it's used by the libmysql client as a
- C file.
-*/
-
-/*
- HFTODO this must be hidden if we don't want client capabilities in
- embedded library
- */
-#include <my_global.h>
-#include <mysql.h>
-#include <mysql_com.h>
-#include <mysqld_error.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <my_net.h>
-#include <violite.h>
-#include <signal.h>
-#include <errno.h>
-#include "probes_mysql.h"
-
-#ifdef EMBEDDED_LIBRARY
-#undef MYSQL_SERVER
-#undef MYSQL_CLIENT
-#define MYSQL_CLIENT
-#endif /*EMBEDDED_LIBRARY */
-
-
-/*
- The following handles the differences when this is linked between the
- client and the server.
-
- This gives an error if a too big packet is found.
- The server can change this, but because the client can't normally do this
- the client should have a bigger max_allowed_packet.
-*/
-
-#if defined(__WIN__) || !defined(MYSQL_SERVER)
- /* The following is because alarms doesn't work on windows. */
-#ifndef NO_ALARM
-#define NO_ALARM
-#endif
-#endif
-
-#ifndef NO_ALARM
-#include "my_pthread.h"
-void sql_print_error(const char *format,...);
-#else
-#define DONT_USE_THR_ALARM
-#endif /* NO_ALARM */
-
-#include "thr_alarm.h"
-
-#ifdef MYSQL_SERVER
-/*
- The following variables/functions should really not be declared
- extern, but as it's hard to include sql_priv.h here, we have to
- live with this for a while.
-*/
-extern uint test_flags;
-extern ulong bytes_sent, bytes_received, net_big_packet_count;
-#ifndef MYSQL_INSTANCE_MANAGER
-#ifdef HAVE_QUERY_CACHE
-#define USE_QUERY_CACHE
-extern void query_cache_insert(const char *packet, ulong length,
- unsigned pkt_nr);
-#endif // HAVE_QUERY_CACHE
-#define update_statistics(A) A
-#endif /* MYSQL_INSTANCE_MANGER */
-#endif /* defined(MYSQL_SERVER) && !defined(MYSQL_INSTANCE_MANAGER) */
-
-#if !defined(MYSQL_SERVER) || defined(MYSQL_INSTANCE_MANAGER)
-#define update_statistics(A)
-#define thd_increment_bytes_sent(N)
-#endif
-
-#define TEST_BLOCKING 8
-#define MAX_PACKET_LENGTH (256L*256L*256L-1)
-
-static my_bool net_write_buff(NET *net,const uchar *packet,ulong len);
-
-
-/** Init with packet info. */
-
-my_bool my_net_init(NET *net, Vio* vio)
-{
- DBUG_ENTER("my_net_init");
- net->vio = vio;
- my_net_local_init(net); /* Set some limits */
- if (!(net->buff=(uchar*) my_malloc((size_t) net->max_packet+
- NET_HEADER_SIZE + COMP_HEADER_SIZE,
- MYF(MY_WME))))
- DBUG_RETURN(1);
- net->buff_end=net->buff+net->max_packet;
- net->error=0; net->return_status=0;
- net->pkt_nr=net->compress_pkt_nr=0;
- net->write_pos=net->read_pos = net->buff;
- net->last_error[0]=0;
- net->compress=0; net->reading_or_writing=0;
- net->where_b = net->remain_in_buf=0;
- net->last_errno=0;
- net->unused= 0;
-#if defined(MYSQL_SERVER) && !defined(EMBEDDED_LIBRARY)
- net->skip_big_packet= FALSE;
-#endif
-
- if (vio != 0) /* If real connection */
- {
- net->fd = vio_fd(vio); /* For perl DBI/DBD */
-#if defined(MYSQL_SERVER) && !defined(__WIN__)
- if (!(test_flags & TEST_BLOCKING))
- {
- my_bool old_mode;
- vio_blocking(vio, FALSE, &old_mode);
- }
-#endif
- vio_fastsend(vio);
- }
- DBUG_RETURN(0);
-}
-
-
-void net_end(NET *net)
-{
- DBUG_ENTER("net_end");
- my_free(net->buff);
- net->buff=0;
- DBUG_VOID_RETURN;
-}
-
-
-/** Realloc the packet buffer. */
-
-my_bool net_realloc(NET *net, size_t length)
-{
- uchar *buff;
- size_t pkt_length;
- DBUG_ENTER("net_realloc");
- DBUG_PRINT("enter",("length: %lu", (ulong) length));
-
- if (length >= net->max_packet_size)
- {
- DBUG_PRINT("error", ("Packet too large. Max size: %lu",
- net->max_packet_size));
- /* @todo: 1 and 2 codes are identical. */
- net->error= 1;
- net->last_errno= ER_NET_PACKET_TOO_LARGE;
-#ifdef MYSQL_SERVER
- my_error(ER_NET_PACKET_TOO_LARGE, MYF(0));
-#endif
- DBUG_RETURN(1);
- }
- pkt_length = (length+IO_SIZE-1) & ~(IO_SIZE-1);
- /*
- We must allocate some extra bytes for the end 0 and to be able to
- read big compressed blocks + 1 safety byte since uint3korr() in
- my_real_read() may actually read 4 bytes depending on build flags and
- platform.
- */
- if (!(buff= (uchar*) my_realloc((char*) net->buff, pkt_length +
- NET_HEADER_SIZE + COMP_HEADER_SIZE + 1,
- MYF(MY_WME))))
- {
- /* @todo: 1 and 2 codes are identical. */
- net->error= 1;
- net->last_errno= ER_OUT_OF_RESOURCES;
- /* In the server the error is reported by MY_WME flag. */
- DBUG_RETURN(1);
- }
- net->buff=net->write_pos=buff;
- net->buff_end=buff+(net->max_packet= (ulong) pkt_length);
- DBUG_RETURN(0);
-}
-
-
-/**
- Check if there is any data to be read from the socket.
-
- @param sd socket descriptor
-
- @retval
- 0 No data to read
- @retval
- 1 Data or EOF to read
- @retval
- -1 Don't know if data is ready or not
-*/
-
-#if !defined(EMBEDDED_LIBRARY)
-
-static int net_data_is_ready(my_socket sd)
-{
-#ifdef HAVE_POLL
- struct pollfd ufds;
- int res;
-
- ufds.fd= sd;
- ufds.events= POLLIN | POLLPRI;
- if (!(res= poll(&ufds, 1, 0)))
- return 0;
- if (res < 0 || !(ufds.revents & (POLLIN | POLLPRI)))
- return 0;
- return 1;
-#else
- fd_set sfds;
- struct timeval tv;
- int res;
-
-#ifndef __WIN__
- /* Windows uses an _array_ of 64 fd's as default, so it's safe */
- if (sd >= FD_SETSIZE)
- return -1;
-#define NET_DATA_IS_READY_CAN_RETURN_MINUS_ONE
-#endif
-
- FD_ZERO(&sfds);
- FD_SET(sd, &sfds);
-
- tv.tv_sec= tv.tv_usec= 0;
-
- if ((res= select((int) (sd + 1), &sfds, NULL, NULL, &tv)) < 0)
- return 0;
- else
- return test(res ? FD_ISSET(sd, &sfds) : 0);
-#endif /* HAVE_POLL */
-}
-
-#endif /* EMBEDDED_LIBRARY */
-
-/**
- Remove unwanted characters from connection
- and check if disconnected.
-
- Read from socket until there is nothing more to read. Discard
- what is read.
-
- If there is anything when to read 'net_clear' is called this
- normally indicates an error in the protocol.
-
- When connection is properly closed (for TCP it means with
- a FIN packet), then select() considers a socket "ready to read",
- in the sense that there's EOF to read, but read() returns 0.
-
- @param net NET handler
- @param clear_buffer if <> 0, then clear all data from comm buff
-*/
-
-void net_clear(NET *net, my_bool clear_buffer)
-{
-#if !defined(EMBEDDED_LIBRARY)
- size_t count;
- int ready;
-#endif
- DBUG_ENTER("net_clear");
-
-#if !defined(EMBEDDED_LIBRARY)
- if (clear_buffer)
- {
- while ((ready= net_data_is_ready(net->vio->sd)) > 0)
- {
- /* The socket is ready */
- if ((long) (count= vio_read(net->vio, net->buff,
- (size_t) net->max_packet)) > 0)
- {
- DBUG_PRINT("info",("skipped %ld bytes from file: %s",
- (long) count, vio_description(net->vio)));
-#if defined(EXTRA_DEBUG)
- fprintf(stderr,"Note: net_clear() skipped %ld bytes from file: %s\n",
- (long) count, vio_description(net->vio));
-#endif
- }
- else
- {
- DBUG_PRINT("info",("socket ready but only EOF to read - disconnected"));
- net->error= 2;
- break;
- }
- }
-#ifdef NET_DATA_IS_READY_CAN_RETURN_MINUS_ONE
- /* 'net_data_is_ready' returned "don't know" */
- if (ready == -1)
- {
- /* Read unblocking to clear net */
- my_bool old_mode;
- if (!vio_blocking(net->vio, FALSE, &old_mode))
- {
- while ((long) (count= vio_read(net->vio, net->buff,
- (size_t) net->max_packet)) > 0)
- DBUG_PRINT("info",("skipped %ld bytes from file: %s",
- (long) count, vio_description(net->vio)));
- vio_blocking(net->vio, TRUE, &old_mode);
- }
- }
-#endif /* NET_DATA_IS_READY_CAN_RETURN_MINUS_ONE */
- }
-#endif /* EMBEDDED_LIBRARY */
- net->pkt_nr=net->compress_pkt_nr=0; /* Ready for new command */
- net->write_pos=net->buff;
- DBUG_VOID_RETURN;
-}
-
-
-/** Flush write_buffer if not empty. */
-
-my_bool net_flush(NET *net)
-{
- my_bool error= 0;
- DBUG_ENTER("net_flush");
- if (net->buff != net->write_pos)
- {
- error=test(net_real_write(net, net->buff,
- (size_t) (net->write_pos - net->buff)));
- net->write_pos=net->buff;
- }
- /* Sync packet number if using compression */
- if (net->compress)
- net->pkt_nr=net->compress_pkt_nr;
- DBUG_RETURN(error);
-}
-
-
-/*****************************************************************************
-** Write something to server/client buffer
-*****************************************************************************/
-
-/**
- Write a logical packet with packet header.
-
- Format: Packet length (3 bytes), packet number(1 byte)
- When compression is used a 3 byte compression length is added
-
- @note
- If compression is used the original package is modified!
-*/
-
-my_bool
-my_net_write(NET *net,const uchar *packet,size_t len)
-{
- uchar buff[NET_HEADER_SIZE];
- int rc;
-
- if (unlikely(!net->vio)) /* nowhere to write */
- return 0;
-
- MYSQL_NET_WRITE_START(len);
-
- /*
- Big packets are handled by splitting them in packets of MAX_PACKET_LENGTH
- length. The last packet is always a packet that is < MAX_PACKET_LENGTH.
- (The last packet may even have a length of 0)
- */
- while (len >= MAX_PACKET_LENGTH)
- {
- const ulong z_size = MAX_PACKET_LENGTH;
- int3store(buff, z_size);
- buff[3]= (uchar) net->pkt_nr++;
- if (net_write_buff(net, buff, NET_HEADER_SIZE) ||
- net_write_buff(net, packet, z_size))
- {
- MYSQL_NET_WRITE_DONE(1);
- return 1;
- }
- packet += z_size;
- len-= z_size;
- }
- /* Write last packet */
- int3store(buff,len);
- buff[3]= (uchar) net->pkt_nr++;
- if (net_write_buff(net, buff, NET_HEADER_SIZE))
- {
- MYSQL_NET_WRITE_DONE(1);
- return 1;
- }
-#ifndef DEBUG_DATA_PACKETS
- DBUG_DUMP("packet_header", buff, NET_HEADER_SIZE);
-#endif
- rc= test(net_write_buff(net,packet,len));
- MYSQL_NET_WRITE_DONE(rc);
- return rc;
-}
-
-/**
- Send a command to the server.
-
- The reason for having both header and packet is so that libmysql
- can easy add a header to a special command (like prepared statements)
- without having to re-alloc the string.
-
- As the command is part of the first data packet, we have to do some data
- juggling to put the command in there, without having to create a new
- packet.
-
- This function will split big packets into sub-packets if needed.
- (Each sub packet can only be 2^24 bytes)
-
- @param net NET handler
- @param command Command in MySQL server (enum enum_server_command)
- @param header Header to write after command
- @param head_len Length of header
- @param packet Query or parameter to query
- @param len Length of packet
-
- @retval
- 0 ok
- @retval
- 1 error
-*/
-
-my_bool
-net_write_command(NET *net,uchar command,
- const uchar *header, size_t head_len,
- const uchar *packet, size_t len)
-{
- size_t length=len+1+head_len; /* 1 extra byte for command */
- uchar buff[NET_HEADER_SIZE+1];
- uint header_size=NET_HEADER_SIZE+1;
- int rc;
- DBUG_ENTER("net_write_command");
- DBUG_PRINT("enter",("length: %lu", (ulong) len));
-
- MYSQL_NET_WRITE_START(length);
-
- buff[4]=command; /* For first packet */
-
- if (length >= MAX_PACKET_LENGTH)
- {
- /* Take into account that we have the command in the first header */
- len= MAX_PACKET_LENGTH - 1 - head_len;
- do
- {
- int3store(buff, MAX_PACKET_LENGTH);
- buff[3]= (uchar) net->pkt_nr++;
- if (net_write_buff(net, buff, header_size) ||
- net_write_buff(net, header, head_len) ||
- net_write_buff(net, packet, len))
- {
- MYSQL_NET_WRITE_DONE(1);
- DBUG_RETURN(1);
- }
- packet+= len;
- length-= MAX_PACKET_LENGTH;
- len= MAX_PACKET_LENGTH;
- head_len= 0;
- header_size= NET_HEADER_SIZE;
- } while (length >= MAX_PACKET_LENGTH);
- len=length; /* Data left to be written */
- }
- int3store(buff,length);
- buff[3]= (uchar) net->pkt_nr++;
- rc= test(net_write_buff(net, buff, header_size) ||
- (head_len && net_write_buff(net, header, head_len)) ||
- net_write_buff(net, packet, len) || net_flush(net));
- MYSQL_NET_WRITE_DONE(rc);
- DBUG_RETURN(rc);
-}
-
-/**
- Caching the data in a local buffer before sending it.
-
- Fill up net->buffer and send it to the client when full.
-
- If the rest of the to-be-sent-packet is bigger than buffer,
- send it in one big block (to avoid copying to internal buffer).
- If not, copy the rest of the data to the buffer and return without
- sending data.
-
- @param net Network handler
- @param packet Packet to send
- @param len Length of packet
-
- @note
- The cached buffer can be sent as it is with 'net_flush()'.
- In this code we have to be careful to not send a packet longer than
- MAX_PACKET_LENGTH to net_real_write() if we are using the compressed
- protocol as we store the length of the compressed packet in 3 bytes.
-
- @retval
- 0 ok
- @retval
- 1
-*/
-
-static my_bool
-net_write_buff(NET *net, const uchar *packet, ulong len)
-{
- ulong left_length;
- if (net->compress && net->max_packet > MAX_PACKET_LENGTH)
- left_length= (ulong) (MAX_PACKET_LENGTH - (net->write_pos - net->buff));
- else
- left_length= (ulong) (net->buff_end - net->write_pos);
-
-#ifdef DEBUG_DATA_PACKETS
- DBUG_DUMP("data", packet, len);
-#endif
- if (len > left_length)
- {
- if (net->write_pos != net->buff)
- {
- /* Fill up already used packet and write it */
- memcpy((char*) net->write_pos,packet,left_length);
- if (net_real_write(net, net->buff,
- (size_t) (net->write_pos - net->buff) + left_length))
- return 1;
- net->write_pos= net->buff;
- packet+= left_length;
- len-= left_length;
- }
- if (net->compress)
- {
- /*
- We can't have bigger packets than 16M with compression
- Because the uncompressed length is stored in 3 bytes
- */
- left_length= MAX_PACKET_LENGTH;
- while (len > left_length)
- {
- if (net_real_write(net, packet, left_length))
- return 1;
- packet+= left_length;
- len-= left_length;
- }
- }
- if (len > net->max_packet)
- return net_real_write(net, packet, len) ? 1 : 0;
- /* Send out rest of the blocks as full sized blocks */
- }
- memcpy((char*) net->write_pos,packet,len);
- net->write_pos+= len;
- return 0;
-}
-
-
-/**
- Read and write one packet using timeouts.
- If needed, the packet is compressed before sending.
-
- @todo
- - TODO is it needed to set this variable if we have no socket
-*/
-
-int
-net_real_write(NET *net,const uchar *packet, size_t len)
-{
- size_t length;
- const uchar *pos,*end;
- thr_alarm_t alarmed;
-#ifndef NO_ALARM
- ALARM alarm_buff;
-#endif
- uint retry_count=0;
- my_bool net_blocking = vio_is_blocking(net->vio);
- DBUG_ENTER("net_real_write");
-
-#if defined(MYSQL_SERVER) && defined(USE_QUERY_CACHE)
- query_cache_insert((char*) packet, len, net->pkt_nr);
-#endif
-
- if (net->error == 2)
- DBUG_RETURN(-1); /* socket can't be used */
-
- net->reading_or_writing=2;
-#ifdef HAVE_COMPRESS
- if (net->compress)
- {
- size_t complen;
- uchar *b;
- uint header_length=NET_HEADER_SIZE+COMP_HEADER_SIZE;
- if (!(b= (uchar*) my_malloc(len + NET_HEADER_SIZE +
- COMP_HEADER_SIZE, MYF(MY_WME))))
- {
- net->error= 2;
- net->last_errno= ER_OUT_OF_RESOURCES;
- /* In the server, the error is reported by MY_WME flag. */
- net->reading_or_writing= 0;
- DBUG_RETURN(1);
- }
- memcpy(b+header_length,packet,len);
-
- if (my_compress(b+header_length, &len, &complen))
- complen=0;
- int3store(&b[NET_HEADER_SIZE],complen);
- int3store(b,len);
- b[3]=(uchar) (net->compress_pkt_nr++);
- len+= header_length;
- packet= b;
- }
-#endif /* HAVE_COMPRESS */
-
-#ifdef DEBUG_DATA_PACKETS
- DBUG_DUMP("data", packet, len);
-#endif
-
-#ifndef NO_ALARM
- thr_alarm_init(&alarmed);
- if (net_blocking)
- thr_alarm(&alarmed, net->write_timeout, &alarm_buff);
-#else
- alarmed=0;
- /* Write timeout is set in my_net_set_write_timeout */
-#endif /* NO_ALARM */
-
- pos= packet;
- end=pos+len;
- while (pos != end)
- {
- if ((long) (length= vio_write(net->vio,pos,(size_t) (end-pos))) <= 0)
- {
- my_bool interrupted = vio_should_retry(net->vio);
-#if !defined(__WIN__)
- if ((interrupted || length == 0) && !thr_alarm_in_use(&alarmed))
- {
- if (!thr_alarm(&alarmed, net->write_timeout, &alarm_buff))
- { /* Always true for client */
- my_bool old_mode;
- while (vio_blocking(net->vio, TRUE, &old_mode) < 0)
- {
- if (vio_should_retry(net->vio) && retry_count++ < net->retry_count)
- continue;
-#ifdef EXTRA_DEBUG
- fprintf(stderr,
- "%s: my_net_write: fcntl returned error %d, aborting thread\n",
- my_progname,vio_errno(net->vio));
-#endif /* EXTRA_DEBUG */
- net->error= 2; /* Close socket */
- net->last_errno= ER_NET_PACKET_TOO_LARGE;
-#ifdef MYSQL_SERVER
- my_error(ER_NET_PACKET_TOO_LARGE, MYF(0));
-#endif
- goto end;
- }
- retry_count=0;
- continue;
- }
- }
- else
-#endif /* !defined(__WIN__) */
- if (thr_alarm_in_use(&alarmed) && !thr_got_alarm(&alarmed) &&
- interrupted)
- {
- if (retry_count++ < net->retry_count)
- continue;
-#ifdef EXTRA_DEBUG
- fprintf(stderr, "%s: write looped, aborting thread\n",
- my_progname);
-#endif /* EXTRA_DEBUG */
- }
-#if defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER)
- if (vio_errno(net->vio) == SOCKET_EINTR)
- {
- DBUG_PRINT("warning",("Interrupted write. Retrying..."));
- continue;
- }
-#endif /* defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER) */
- net->error= 2; /* Close socket */
- net->last_errno= (interrupted ? ER_NET_WRITE_INTERRUPTED :
- ER_NET_ERROR_ON_WRITE);
-#ifdef MYSQL_SERVER
- my_error(net->last_errno, MYF(0));
-#endif /* MYSQL_SERVER */
- break;
- }
- pos+=length;
- update_statistics(thd_increment_bytes_sent(length));
- }
-#ifndef __WIN__
- end:
-#endif
-#ifdef HAVE_COMPRESS
- if (net->compress)
- my_free((void*) packet);
-#endif
- if (thr_alarm_in_use(&alarmed))
- {
- my_bool old_mode;
- thr_end_alarm(&alarmed);
- vio_blocking(net->vio, net_blocking, &old_mode);
- }
- net->reading_or_writing=0;
- DBUG_RETURN(((int) (pos != end)));
-}
-
-
-/*****************************************************************************
-** Read something from server/clinet
-*****************************************************************************/
-
-#ifndef NO_ALARM
-
-static my_bool net_safe_read(NET *net, uchar *buff, size_t length,
- thr_alarm_t *alarmed)
-{
- uint retry_count=0;
- while (length > 0)
- {
- size_t tmp;
- if ((long) (tmp= vio_read(net->vio, buff, length)) <= 0)
- {
- my_bool interrupted = vio_should_retry(net->vio);
- if (!thr_got_alarm(alarmed) && interrupted)
- { /* Probably in MIT threads */
- if (retry_count++ < net->retry_count)
- continue;
- }
- return 1;
- }
- length-= tmp;
- buff+= tmp;
- }
- return 0;
-}
-
-/**
- Help function to clear the commuication buffer when we get a too big packet.
-
- @param net Communication handle
- @param remain Bytes to read
- @param alarmed Parameter for thr_alarm()
- @param alarm_buff Parameter for thr_alarm()
-
- @retval
- 0 Was able to read the whole packet
- @retval
- 1 Got mailformed packet from client
-*/
-
-static my_bool my_net_skip_rest(NET *net, uint32 remain, thr_alarm_t *alarmed,
- ALARM *alarm_buff)
-{
- uint32 old=remain;
- DBUG_ENTER("my_net_skip_rest");
- DBUG_PRINT("enter",("bytes_to_skip: %u", (uint) remain));
-
- /* The following is good for debugging */
- update_statistics(thd_increment_net_big_packet_count(1));
-
- if (!thr_alarm_in_use(alarmed))
- {
- my_bool old_mode;
- if (thr_alarm(alarmed,net->read_timeout, alarm_buff) ||
- vio_blocking(net->vio, TRUE, &old_mode) < 0)
- DBUG_RETURN(1); /* Can't setup, abort */
- }
- for (;;)
- {
- while (remain > 0)
- {
- size_t length= min(remain, net->max_packet);
- if (net_safe_read(net, net->buff, length, alarmed))
- DBUG_RETURN(1);
- update_statistics(thd_increment_bytes_received(length));
- remain -= (uint32) length;
- }
- if (old != MAX_PACKET_LENGTH)
- break;
- if (net_safe_read(net, net->buff, NET_HEADER_SIZE, alarmed))
- DBUG_RETURN(1);
- old=remain= uint3korr(net->buff);
- net->pkt_nr++;
- }
- DBUG_RETURN(0);
-}
-#endif /* NO_ALARM */
-
-
-/**
- Reads one packet to net->buff + net->where_b.
- Long packets are handled by my_net_read().
- This function reallocates the net->buff buffer if necessary.
-
- @return
- Returns length of packet.
-*/
-
-static ulong
-my_real_read(NET *net, size_t *complen)
-{
- uchar *pos;
- size_t length;
- uint i,retry_count=0;
- ulong len=packet_error;
- thr_alarm_t alarmed;
-#ifndef NO_ALARM
- ALARM alarm_buff;
-#endif
- my_bool net_blocking=vio_is_blocking(net->vio);
- uint32 remain= (net->compress ? NET_HEADER_SIZE+COMP_HEADER_SIZE :
- NET_HEADER_SIZE);
- *complen = 0;
-
- net->reading_or_writing=1;
- thr_alarm_init(&alarmed);
-#ifndef NO_ALARM
- if (net_blocking)
- thr_alarm(&alarmed,net->read_timeout,&alarm_buff);
-#else
- /* Read timeout is set in my_net_set_read_timeout */
-#endif /* NO_ALARM */
-
- pos = net->buff + net->where_b; /* net->packet -4 */
- for (i=0 ; i < 2 ; i++)
- {
- while (remain > 0)
- {
- /* First read is done with non blocking mode */
- if ((long) (length= vio_read(net->vio, pos, remain)) <= 0L)
- {
- my_bool interrupted = vio_should_retry(net->vio);
-
- DBUG_PRINT("info",("vio_read returned %ld errno: %d",
- (long) length, vio_errno(net->vio)));
-#if !defined(__WIN__) || defined(MYSQL_SERVER)
- /*
- We got an error that there was no data on the socket. We now set up
- an alarm to not 'read forever', change the socket to non blocking
- mode and try again
- */
- if ((interrupted || length == 0) && !thr_alarm_in_use(&alarmed))
- {
- if (!thr_alarm(&alarmed,net->read_timeout,&alarm_buff)) /* Don't wait too long */
- {
- my_bool old_mode;
- while (vio_blocking(net->vio, TRUE, &old_mode) < 0)
- {
- if (vio_should_retry(net->vio) &&
- retry_count++ < net->retry_count)
- continue;
- DBUG_PRINT("error",
- ("fcntl returned error %d, aborting thread",
- vio_errno(net->vio)));
-#ifdef EXTRA_DEBUG
- fprintf(stderr,
- "%s: read: fcntl returned error %d, aborting thread\n",
- my_progname,vio_errno(net->vio));
-#endif /* EXTRA_DEBUG */
- len= packet_error;
- net->error= 2; /* Close socket */
- net->last_errno= ER_NET_FCNTL_ERROR;
-#ifdef MYSQL_SERVER
- my_error(ER_NET_FCNTL_ERROR, MYF(0));
-#endif
- goto end;
- }
- retry_count=0;
- continue;
- }
- }
-#endif /* (!defined(__WIN__) || defined(MYSQL_SERVER) */
- if (thr_alarm_in_use(&alarmed) && !thr_got_alarm(&alarmed) &&
- interrupted)
- { /* Probably in MIT threads */
- if (retry_count++ < net->retry_count)
- continue;
-#ifdef EXTRA_DEBUG
- fprintf(stderr, "%s: read looped with error %d, aborting thread\n",
- my_progname,vio_errno(net->vio));
-#endif /* EXTRA_DEBUG */
- }
-#if defined(THREAD_SAFE_CLIENT) && !defined(MYSQL_SERVER)
- if (vio_errno(net->vio) == SOCKET_EINTR)
- {
- DBUG_PRINT("warning",("Interrupted read. Retrying..."));
- continue;
- }
-#endif
- DBUG_PRINT("error",("Couldn't read packet: remain: %u errno: %d length: %ld",
- remain, vio_errno(net->vio), (long) length));
- len= packet_error;
- net->error= 2; /* Close socket */
- net->last_errno= (vio_was_interrupted(net->vio) ?
- ER_NET_READ_INTERRUPTED :
- ER_NET_READ_ERROR);
-#ifdef MYSQL_SERVER
- my_error(net->last_errno, MYF(0));
-#endif
- goto end;
- }
- remain -= (uint32) length;
- pos+= length;
- update_statistics(thd_increment_bytes_received(length));
- }
- if (i == 0)
- { /* First parts is packet length */
- ulong helping;
- DBUG_DUMP("packet_header", net->buff+net->where_b,
- NET_HEADER_SIZE);
- if (net->buff[net->where_b + 3] != (uchar) net->pkt_nr)
- {
- if (net->buff[net->where_b] != (uchar) 255)
- {
- DBUG_PRINT("error",
- ("Packets out of order (Found: %d, expected %u)",
- (int) net->buff[net->where_b + 3],
- net->pkt_nr));
- /*
- We don't make noise server side, since the client is expected
- to break the protocol for e.g. --send LOAD DATA .. LOCAL where
- the server expects the client to send a file, but the client
- may reply with a new command instead.
- */
-#if defined (EXTRA_DEBUG) && !defined (MYSQL_SERVER)
- fflush(stdout);
- fprintf(stderr,"Error: Packets out of order (Found: %d, expected %d)\n",
- (int) net->buff[net->where_b + 3],
- (uint) (uchar) net->pkt_nr);
- fflush(stderr);
- DBUG_ASSERT(0);
-#endif
- }
- len= packet_error;
- /* Not a NET error on the client. XXX: why? */
-#ifdef MYSQL_SERVER
- my_error(ER_NET_PACKETS_OUT_OF_ORDER, MYF(0));
-#endif
- goto end;
- }
- net->compress_pkt_nr= ++net->pkt_nr;
-#ifdef HAVE_COMPRESS
- if (net->compress)
- {
- /*
- The following uint3korr() may read 4 bytes, so make sure we don't
- read unallocated or uninitialized memory. The right-hand expression
- must match the size of the buffer allocated in net_realloc().
- */
- DBUG_ASSERT(net->where_b + NET_HEADER_SIZE + sizeof(uint32) <=
- net->max_packet + NET_HEADER_SIZE + COMP_HEADER_SIZE + 1);
- /*
- If the packet is compressed then complen > 0 and contains the
- number of bytes in the uncompressed packet
- */
- *complen=uint3korr(&(net->buff[net->where_b + NET_HEADER_SIZE]));
- }
-#endif
-
- len=uint3korr(net->buff+net->where_b);
- if (!len) /* End of big multi-packet */
- goto end;
- helping = max(len,*complen) + net->where_b;
- /* The necessary size of net->buff */
- if (helping >= net->max_packet)
- {
- if (net_realloc(net,helping))
- {
-#if defined(MYSQL_SERVER) && !defined(NO_ALARM)
- if (!net->compress &&
- net->skip_big_packet &&
- !my_net_skip_rest(net, (uint32) len, &alarmed, &alarm_buff))
- net->error= 3; /* Successfully skiped packet */
-#endif
- len= packet_error; /* Return error and close connection */
- goto end;
- }
- }
- pos=net->buff + net->where_b;
- remain = (uint32) len;
- }
- }
-
-end:
- if (thr_alarm_in_use(&alarmed))
- {
- my_bool old_mode;
- thr_end_alarm(&alarmed);
- vio_blocking(net->vio, net_blocking, &old_mode);
- }
- net->reading_or_writing=0;
-#ifdef DEBUG_DATA_PACKETS
- if (len != packet_error)
- DBUG_DUMP("data", net->buff+net->where_b, len);
-#endif
- return(len);
-}
-
-
-/**
- Read a packet from the client/server and return it without the internal
- package header.
-
- If the packet is the first packet of a multi-packet packet
- (which is indicated by the length of the packet = 0xffffff) then
- all sub packets are read and concatenated.
-
- If the packet was compressed, its uncompressed and the length of the
- uncompressed packet is returned.
-
- @return
- The function returns the length of the found packet or packet_error.
- net->read_pos points to the read data.
-*/
-
-ulong
-my_net_read(NET *net)
-{
- size_t len, complen;
-
- MYSQL_NET_READ_START();
-
-#ifdef HAVE_COMPRESS
- if (!net->compress)
- {
-#endif
- len = my_real_read(net,&complen);
- if (len == MAX_PACKET_LENGTH)
- {
- /* First packet of a multi-packet. Concatenate the packets */
- ulong save_pos = net->where_b;
- size_t total_length= 0;
- do
- {
- net->where_b += len;
- total_length += len;
- len = my_real_read(net,&complen);
- } while (len == MAX_PACKET_LENGTH);
- if (len != packet_error)
- len+= total_length;
- net->where_b = save_pos;
- }
- net->read_pos = net->buff + net->where_b;
- if (len != packet_error)
- net->read_pos[len]=0; /* Safeguard for mysql_use_result */
- MYSQL_NET_READ_DONE(0, len);
- return len;
-#ifdef HAVE_COMPRESS
- }
- else
- {
- /* We are using the compressed protocol */
-
- ulong buf_length;
- ulong start_of_packet;
- ulong first_packet_offset;
- uint read_length, multi_byte_packet=0;
-
- if (net->remain_in_buf)
- {
- buf_length= net->buf_length; /* Data left in old packet */
- first_packet_offset= start_of_packet= (net->buf_length -
- net->remain_in_buf);
- /* Restore the character that was overwritten by the end 0 */
- net->buff[start_of_packet]= net->save_char;
- }
- else
- {
- /* reuse buffer, as there is nothing in it that we need */
- buf_length= start_of_packet= first_packet_offset= 0;
- }
- for (;;)
- {
- ulong packet_len;
-
- if (buf_length - start_of_packet >= NET_HEADER_SIZE)
- {
- read_length = uint3korr(net->buff+start_of_packet);
- if (!read_length)
- {
- /* End of multi-byte packet */
- start_of_packet += NET_HEADER_SIZE;
- break;
- }
- if (read_length + NET_HEADER_SIZE <= buf_length - start_of_packet)
- {
- if (multi_byte_packet)
- {
- /* Remove packet header for second packet */
- memmove(net->buff + first_packet_offset + start_of_packet,
- net->buff + first_packet_offset + start_of_packet +
- NET_HEADER_SIZE,
- buf_length - start_of_packet);
- start_of_packet += read_length;
- buf_length -= NET_HEADER_SIZE;
- }
- else
- start_of_packet+= read_length + NET_HEADER_SIZE;
-
- if (read_length != MAX_PACKET_LENGTH) /* last package */
- {
- multi_byte_packet= 0; /* No last zero len packet */
- break;
- }
- multi_byte_packet= NET_HEADER_SIZE;
- /* Move data down to read next data packet after current one */
- if (first_packet_offset)
- {
- memmove(net->buff,net->buff+first_packet_offset,
- buf_length-first_packet_offset);
- buf_length-=first_packet_offset;
- start_of_packet -= first_packet_offset;
- first_packet_offset=0;
- }
- continue;
- }
- }
- /* Move data down to read next data packet after current one */
- if (first_packet_offset)
- {
- memmove(net->buff,net->buff+first_packet_offset,
- buf_length-first_packet_offset);
- buf_length-=first_packet_offset;
- start_of_packet -= first_packet_offset;
- first_packet_offset=0;
- }
-
- net->where_b=buf_length;
- if ((packet_len = my_real_read(net,&complen)) == packet_error)
- {
- MYSQL_NET_READ_DONE(1, 0);
- return packet_error;
- }
- if (my_uncompress(net->buff + net->where_b, packet_len,
- &complen))
- {
- net->error= 2; /* caller will close socket */
- net->last_errno= ER_NET_UNCOMPRESS_ERROR;
-#ifdef MYSQL_SERVER
- my_error(ER_NET_UNCOMPRESS_ERROR, MYF(0));
-#endif
- MYSQL_NET_READ_DONE(1, 0);
- return packet_error;
- }
- buf_length+= complen;
- }
-
- net->read_pos= net->buff+ first_packet_offset + NET_HEADER_SIZE;
- net->buf_length= buf_length;
- net->remain_in_buf= (ulong) (buf_length - start_of_packet);
- len = ((ulong) (start_of_packet - first_packet_offset) - NET_HEADER_SIZE -
- multi_byte_packet);
- net->save_char= net->read_pos[len]; /* Must be saved */
- net->read_pos[len]=0; /* Safeguard for mysql_use_result */
- }
-#endif /* HAVE_COMPRESS */
- MYSQL_NET_READ_DONE(0, len);
- return len;
-}
-
-
-void my_net_set_read_timeout(NET *net, uint timeout)
-{
- DBUG_ENTER("my_net_set_read_timeout");
- DBUG_PRINT("enter", ("timeout: %d", timeout));
- net->read_timeout= timeout;
-#ifdef NO_ALARM
- if (net->vio)
- vio_timeout(net->vio, 0, timeout);
-#endif
- DBUG_VOID_RETURN;
-}
-
-
-void my_net_set_write_timeout(NET *net, uint timeout)
-{
- DBUG_ENTER("my_net_set_write_timeout");
- DBUG_PRINT("enter", ("timeout: %d", timeout));
- net->write_timeout= timeout;
-#ifdef NO_ALARM
- if (net->vio)
- vio_timeout(net->vio, 1, timeout);
-#endif
- DBUG_VOID_RETURN;
-}
diff --git a/dep/mysqllite/sql/password.c b/dep/mysqllite/sql/password.c
deleted file mode 100644
index 3b69705cc87..00000000000
--- a/dep/mysqllite/sql/password.c
+++ /dev/null
@@ -1,562 +0,0 @@
-/* Copyright (C) 2000-2006 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* password checking routines */
-/*****************************************************************************
- The main idea is that no password are sent between client & server on
- connection and that no password are saved in mysql in a decodable form.
-
- On connection a random string is generated and sent to the client.
- The client generates a new string with a random generator inited with
- the hash values from the password and the sent string.
- This 'check' string is sent to the server where it is compared with
- a string generated from the stored hash_value of the password and the
- random string.
-
- The password is saved (in user.password) by using the PASSWORD() function in
- mysql.
-
- This is .c file because it's used in libmysqlclient, which is entirely in C.
- (we need it to be portable to a variety of systems).
- Example:
- update user set password=PASSWORD("hello") where user="test"
- This saves a hashed number as a string in the password field.
-
- The new authentication is performed in following manner:
-
- SERVER: public_seed=create_random_string()
- send(public_seed)
-
- CLIENT: recv(public_seed)
- hash_stage1=sha1("password")
- hash_stage2=sha1(hash_stage1)
- reply=xor(hash_stage1, sha1(public_seed,hash_stage2)
-
- // this three steps are done in scramble()
-
- send(reply)
-
-
- SERVER: recv(reply)
- hash_stage1=xor(reply, sha1(public_seed,hash_stage2))
- candidate_hash2=sha1(hash_stage1)
- check(candidate_hash2==hash_stage2)
-
- // this three steps are done in check_scramble()
-
-*****************************************************************************/
-
-#include <password.h>
-#include <my_global.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <sha1.h>
-#include "mysql.h"
-
-/************ MySQL 3.23-4.0 authentication routines: untouched ***********/
-
-/*
- New (MySQL 3.21+) random generation structure initialization
- SYNOPSIS
- randominit()
- rand_st OUT Structure to initialize
- seed1 IN First initialization parameter
- seed2 IN Second initialization parameter
-*/
-
-void randominit(struct rand_struct *rand_st, ulong seed1, ulong seed2)
-{ /* For mysql 3.21.# */
-#ifdef HAVE_purify
- bzero((char*) rand_st,sizeof(*rand_st)); /* Avoid UMC varnings */
-#endif
- rand_st->max_value= 0x3FFFFFFFL;
- rand_st->max_value_dbl=(double) rand_st->max_value;
- rand_st->seed1=seed1%rand_st->max_value ;
- rand_st->seed2=seed2%rand_st->max_value;
-}
-
-
-/*
- Generate random number.
- SYNOPSIS
- my_rnd()
- rand_st INOUT Structure used for number generation
- RETURN VALUE
- generated pseudo random number
-*/
-
-double my_rnd(struct rand_struct *rand_st)
-{
- rand_st->seed1=(rand_st->seed1*3+rand_st->seed2) % rand_st->max_value;
- rand_st->seed2=(rand_st->seed1+rand_st->seed2+33) % rand_st->max_value;
- return (((double) rand_st->seed1)/rand_st->max_value_dbl);
-}
-
-
-/*
- Generate binary hash from raw text string
- Used for Pre-4.1 password handling
- SYNOPSIS
- hash_password()
- result OUT store hash in this location
- password IN plain text password to build hash
- password_len IN password length (password may be not null-terminated)
-*/
-
-void hash_password(ulong *result, const char *password, uint password_len)
-{
- register ulong nr=1345345333L, add=7, nr2=0x12345671L;
- ulong tmp;
- const char *password_end= password + password_len;
- for (; password < password_end; password++)
- {
- if (*password == ' ' || *password == '\t')
- continue; /* skip space in password */
- tmp= (ulong) (uchar) *password;
- nr^= (((nr & 63)+add)*tmp)+ (nr << 8);
- nr2+=(nr2 << 8) ^ nr;
- add+=tmp;
- }
- result[0]=nr & (((ulong) 1L << 31) -1L); /* Don't use sign bit (str2int) */;
- result[1]=nr2 & (((ulong) 1L << 31) -1L);
-}
-
-
-/*
- Create password to be stored in user database from raw string
- Used for pre-4.1 password handling
- SYNOPSIS
- my_make_scrambled_password_323()
- to OUT store scrambled password here
- password IN user-supplied password
- pass_len IN length of password string
-*/
-
-void my_make_scrambled_password_323(char *to, const char *password,
- size_t pass_len)
-{
- ulong hash_res[2];
- hash_password(hash_res, password, (uint) pass_len);
- sprintf(to, "%08lx%08lx", hash_res[0], hash_res[1]);
-}
-
-
-/*
- Wrapper around my_make_scrambled_password_323() to maintain client lib ABI
- compatibility.
- In server code usage of my_make_scrambled_password_323() is preferred to
- avoid strlen().
- SYNOPSIS
- make_scrambled_password_323()
- to OUT store scrambled password here
- password IN NULL-terminated string with user-supplied password
-*/
-
-void make_scrambled_password_323(char *to, const char *password)
-{
- my_make_scrambled_password_323(to, password, strlen(password));
-}
-
-
-/*
- Scramble string with password.
- Used in pre 4.1 authentication phase.
- SYNOPSIS
- scramble_323()
- to OUT Store scrambled message here. Buffer must be at least
- SCRAMBLE_LENGTH_323+1 bytes long
- message IN Message to scramble. Message must be at least
- SRAMBLE_LENGTH_323 bytes long.
- password IN Password to use while scrambling
-*/
-
-void scramble_323(char *to, const char *message, const char *password)
-{
- struct rand_struct rand_st;
- ulong hash_pass[2], hash_message[2];
-
- if (password && password[0])
- {
- char extra, *to_start=to;
- const char *message_end= message + SCRAMBLE_LENGTH_323;
- hash_password(hash_pass,password, (uint) strlen(password));
- hash_password(hash_message, message, SCRAMBLE_LENGTH_323);
- randominit(&rand_st,hash_pass[0] ^ hash_message[0],
- hash_pass[1] ^ hash_message[1]);
- for (; message < message_end; message++)
- *to++= (char) (floor(my_rnd(&rand_st)*31)+64);
- extra=(char) (floor(my_rnd(&rand_st)*31));
- while (to_start != to)
- *(to_start++)^=extra;
- }
- *to= 0;
-}
-
-
-/*
- Check scrambled message
- Used in pre 4.1 password handling
- SYNOPSIS
- check_scramble_323()
- scrambled scrambled message to check.
- message original random message which was used for scrambling; must
- be exactly SCRAMBLED_LENGTH_323 bytes long and
- NULL-terminated.
- hash_pass password which should be used for scrambling
- All params are IN.
-
- RETURN VALUE
- 0 - password correct
- !0 - password invalid
-*/
-
-my_bool
-check_scramble_323(const unsigned char *scrambled, const char *message,
- ulong *hash_pass)
-{
- struct rand_struct rand_st;
- ulong hash_message[2];
- uchar buff[16],*to,extra; /* Big enough for check */
- const uchar *pos;
-
- hash_password(hash_message, message, SCRAMBLE_LENGTH_323);
- randominit(&rand_st,hash_pass[0] ^ hash_message[0],
- hash_pass[1] ^ hash_message[1]);
- to=buff;
- DBUG_ASSERT(sizeof(buff) > SCRAMBLE_LENGTH_323);
- for (pos=scrambled ; *pos && to < buff+sizeof(buff) ; pos++)
- *to++=(char) (floor(my_rnd(&rand_st)*31)+64);
- if (pos-scrambled != SCRAMBLE_LENGTH_323)
- return 1;
- extra=(char) (floor(my_rnd(&rand_st)*31));
- to=buff;
- while (*scrambled)
- {
- if (*scrambled++ != (uchar) (*to++ ^ extra))
- return 1; /* Wrong password */
- }
- return 0;
-}
-
-static inline uint8 char_val(uint8 X)
-{
- return (uint) (X >= '0' && X <= '9' ? X-'0' :
- X >= 'A' && X <= 'Z' ? X-'A'+10 : X-'a'+10);
-}
-
-
-/*
- Convert password from hex string (as stored in mysql.user) to binary form.
- SYNOPSIS
- get_salt_from_password_323()
- res OUT store salt here
- password IN password string as stored in mysql.user
- NOTE
- This function does not have length check for passwords. It will just crash
- Password hashes in old format must have length divisible by 8
-*/
-
-void get_salt_from_password_323(ulong *res, const char *password)
-{
- res[0]= res[1]= 0;
- if (password)
- {
- while (*password)
- {
- ulong val=0;
- uint i;
- for (i=0 ; i < 8 ; i++)
- val=(val << 4)+char_val(*password++);
- *res++=val;
- }
- }
-}
-
-
-/*
- Convert scrambled password from binary form to asciiz hex string.
- SYNOPSIS
- make_password_from_salt_323()
- to OUT store resulting string password here, at least 17 bytes
- salt IN password in salt format, 2 ulongs
-*/
-
-void make_password_from_salt_323(char *to, const ulong *salt)
-{
- sprintf(to,"%08lx%08lx", salt[0], salt[1]);
-}
-
-
-/*
- **************** MySQL 4.1.1 authentication routines *************
-*/
-
-/*
- Generate string of printable random characters of requested length
- SYNOPSIS
- create_random_string()
- to OUT buffer for generation; must be at least length+1 bytes
- long; result string is always null-terminated
- length IN how many random characters to put in buffer
- rand_st INOUT structure used for number generation
-*/
-
-void create_random_string(char *to, uint length, struct rand_struct *rand_st)
-{
- char *end= to + length;
- /* Use pointer arithmetics as it is faster way to do so. */
- for (; to < end; to++)
- *to= (char) (my_rnd(rand_st)*94+33);
- *to= '\0';
-}
-
-
-/* Character to use as version identifier for version 4.1 */
-
-#define PVERSION41_CHAR '*'
-
-
-/*
- Convert given octet sequence to asciiz string of hex characters;
- str..str+len and 'to' may not overlap.
- SYNOPSIS
- octet2hex()
- buf OUT output buffer. Must be at least 2*len+1 bytes
- str, len IN the beginning and the length of the input string
-
- RETURN
- buf+len*2
-*/
-
-char *octet2hex(char *to, const char *str, uint len)
-{
- const char *str_end= str + len;
- for (; str != str_end; ++str)
- {
- *to++= _dig_vec_upper[((uchar) *str) >> 4];
- *to++= _dig_vec_upper[((uchar) *str) & 0x0F];
- }
- *to= '\0';
- return to;
-}
-
-
-/*
- Convert given asciiz string of hex (0..9 a..f) characters to octet
- sequence.
- SYNOPSIS
- hex2octet()
- to OUT buffer to place result; must be at least len/2 bytes
- str, len IN begin, length for character string; str and to may not
- overlap; len % 2 == 0
-*/
-
-static void
-hex2octet(uint8 *to, const char *str, uint len)
-{
- const char *str_end= str + len;
- while (str < str_end)
- {
- register char tmp= char_val(*str++);
- *to++= (tmp << 4) | char_val(*str++);
- }
-}
-
-
-/*
- Encrypt/Decrypt function used for password encryption in authentication.
- Simple XOR is used here but it is OK as we crypt random strings. Note,
- that XOR(s1, XOR(s1, s2)) == s2, XOR(s1, s2) == XOR(s2, s1)
- SYNOPSIS
- my_crypt()
- to OUT buffer to hold crypted string; must be at least len bytes
- long; to and s1 (or s2) may be the same.
- s1, s2 IN input strings (of equal length)
- len IN length of s1 and s2
-*/
-
-static void
-my_crypt(char *to, const uchar *s1, const uchar *s2, uint len)
-{
- const uint8 *s1_end= s1 + len;
- while (s1 < s1_end)
- *to++= *s1++ ^ *s2++;
-}
-
-
-/*
- MySQL 4.1.1 password hashing: SHA conversion (see RFC 2289, 3174) twice
- applied to the password string, and then produced octet sequence is
- converted to hex string.
- The result of this function is used as return value from PASSWORD() and
- is stored in the database.
- SYNOPSIS
- my_make_scrambled_password()
- buf OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string
- password IN password string
- pass_len IN length of password string
-*/
-
-void my_make_scrambled_password(char *to, const char *password,
- size_t pass_len)
-{
- SHA1_CONTEXT sha1_context;
- uint8 hash_stage2[SHA1_HASH_SIZE];
-
- mysql_sha1_reset(&sha1_context);
- /* stage 1: hash password */
- mysql_sha1_input(&sha1_context, (uint8 *) password, (uint) pass_len);
- mysql_sha1_result(&sha1_context, (uint8 *) to);
- /* stage 2: hash stage1 output */
- mysql_sha1_reset(&sha1_context);
- mysql_sha1_input(&sha1_context, (uint8 *) to, SHA1_HASH_SIZE);
- /* separate buffer is used to pass 'to' in octet2hex */
- mysql_sha1_result(&sha1_context, hash_stage2);
- /* convert hash_stage2 to hex string */
- *to++= PVERSION41_CHAR;
- octet2hex(to, (const char*) hash_stage2, SHA1_HASH_SIZE);
-}
-
-
-/*
- Wrapper around my_make_scrambled_password() to maintain client lib ABI
- compatibility.
- In server code usage of my_make_scrambled_password() is preferred to
- avoid strlen().
- SYNOPSIS
- make_scrambled_password()
- buf OUT buffer of size 2*SHA1_HASH_SIZE + 2 to store hex string
- password IN NULL-terminated password string
-*/
-
-void make_scrambled_password(char *to, const char *password)
-{
- my_make_scrambled_password(to, password, strlen(password));
-}
-
-
-/*
- Produce an obscure octet sequence from password and random
- string, recieved from the server. This sequence corresponds to the
- password, but password can not be easily restored from it. The sequence
- is then sent to the server for validation. Trailing zero is not stored
- in the buf as it is not needed.
- This function is used by client to create authenticated reply to the
- server's greeting.
- SYNOPSIS
- scramble()
- buf OUT store scrambled string here. The buf must be at least
- SHA1_HASH_SIZE bytes long.
- message IN random message, must be exactly SCRAMBLE_LENGTH long and
- NULL-terminated.
- password IN users' password
-*/
-
-void
-scramble(char *to, const char *message, const char *password)
-{
- SHA1_CONTEXT sha1_context;
- uint8 hash_stage1[SHA1_HASH_SIZE];
- uint8 hash_stage2[SHA1_HASH_SIZE];
-
- mysql_sha1_reset(&sha1_context);
- /* stage 1: hash password */
- mysql_sha1_input(&sha1_context, (uint8 *) password, (uint) strlen(password));
- mysql_sha1_result(&sha1_context, hash_stage1);
- /* stage 2: hash stage 1; note that hash_stage2 is stored in the database */
- mysql_sha1_reset(&sha1_context);
- mysql_sha1_input(&sha1_context, hash_stage1, SHA1_HASH_SIZE);
- mysql_sha1_result(&sha1_context, hash_stage2);
- /* create crypt string as sha1(message, hash_stage2) */;
- mysql_sha1_reset(&sha1_context);
- mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
- mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
- /* xor allows 'from' and 'to' overlap: lets take advantage of it */
- mysql_sha1_result(&sha1_context, (uint8 *) to);
- my_crypt(to, (const uchar *) to, hash_stage1, SCRAMBLE_LENGTH);
-}
-
-
-/*
- Check that scrambled message corresponds to the password; the function
- is used by server to check that recieved reply is authentic.
- This function does not check lengths of given strings: message must be
- null-terminated, reply and hash_stage2 must be at least SHA1_HASH_SIZE
- long (if not, something fishy is going on).
- SYNOPSIS
- check_scramble()
- scramble clients' reply, presumably produced by scramble()
- message original random string, previously sent to client
- (presumably second argument of scramble()), must be
- exactly SCRAMBLE_LENGTH long and NULL-terminated.
- hash_stage2 hex2octet-decoded database entry
- All params are IN.
-
- RETURN VALUE
- 0 password is correct
- !0 password is invalid
-*/
-
-my_bool
-check_scramble(const uchar *scramble_arg, const char *message,
- const uint8 *hash_stage2)
-{
- SHA1_CONTEXT sha1_context;
- uint8 buf[SHA1_HASH_SIZE];
- uint8 hash_stage2_reassured[SHA1_HASH_SIZE];
-
- mysql_sha1_reset(&sha1_context);
- /* create key to encrypt scramble */
- mysql_sha1_input(&sha1_context, (const uint8 *) message, SCRAMBLE_LENGTH);
- mysql_sha1_input(&sha1_context, hash_stage2, SHA1_HASH_SIZE);
- mysql_sha1_result(&sha1_context, buf);
- /* encrypt scramble */
- my_crypt((char *) buf, buf, scramble_arg, SCRAMBLE_LENGTH);
- /* now buf supposedly contains hash_stage1: so we can get hash_stage2 */
- mysql_sha1_reset(&sha1_context);
- mysql_sha1_input(&sha1_context, buf, SHA1_HASH_SIZE);
- mysql_sha1_result(&sha1_context, hash_stage2_reassured);
- return memcmp(hash_stage2, hash_stage2_reassured, SHA1_HASH_SIZE);
-}
-
-
-/*
- Convert scrambled password from asciiz hex string to binary form.
-
- SYNOPSIS
- get_salt_from_password()
- res OUT buf to hold password. Must be at least SHA1_HASH_SIZE
- bytes long.
- password IN 4.1.1 version value of user.password
-*/
-
-void get_salt_from_password(uint8 *hash_stage2, const char *password)
-{
- hex2octet(hash_stage2, password+1 /* skip '*' */, SHA1_HASH_SIZE * 2);
-}
-
-/*
- Convert scrambled password from binary form to asciiz hex string.
- SYNOPSIS
- make_password_from_salt()
- to OUT store resulting string here, 2*SHA1_HASH_SIZE+2 bytes
- salt IN password in salt format
-*/
-
-void make_password_from_salt(char *to, const uint8 *hash_stage2)
-{
- *to++= PVERSION41_CHAR;
- octet2hex(to, (const char*) hash_stage2, SHA1_HASH_SIZE);
-}
diff --git a/dep/mysqllite/strings/CHARSET_INFO.txt b/dep/mysqllite/strings/CHARSET_INFO.txt
deleted file mode 100644
index 6f0a810be37..00000000000
--- a/dep/mysqllite/strings/CHARSET_INFO.txt
+++ /dev/null
@@ -1,281 +0,0 @@
-
-CHARSET_INFO
-============
-A structure containing data for charset+collation pair implementation.
-
-Virtual functions that use this data are collected into separate
-structures, MY_CHARSET_HANDLER and MY_COLLATION_HANDLER.
-
-
-typedef struct charset_info_st
-{
- uint number;
- uint primary_number;
- uint binary_number;
- uint state;
-
- const char *csname;
- const char *name;
- const char *comment;
-
- uchar *ctype;
- uchar *to_lower;
- uchar *to_upper;
- uchar *sort_order;
-
- uint16 *tab_to_uni;
- MY_UNI_IDX *tab_from_uni;
-
- uchar state_map[256];
- uchar ident_map[256];
-
- uint strxfrm_multiply;
- uint mbminlen;
- uint mbmaxlen;
- uint16 max_sort_char; /* For LIKE optimization */
-
- MY_CHARSET_HANDLER *cset;
- MY_COLLATION_HANDLER *coll;
-
-} CHARSET_INFO;
-
-
-CHARSET_INFO fields description:
-===============================
-
-
-Numbers (identifiers)
----------------------
-
-number - an ID uniquely identifying this charset+collation pair.
-
-primary_number - ID of a charset+collation pair, which consists
-of the same character set and the default collation of this
-character set. Not really used now. Intended to optimize some
-parts of the code where we need to find the default collation
-using its non-default counterpart for the given character set.
-
-binary_number - ID of a charset+collation pair, which consists
-of the same character set and the binary collation of this
-character set. Not really used now.
-
-Names
------
-
- csname - name of the character set for this charset+collation pair.
- name - name of the collation for this charset+collation pair.
- comment - a text comment, displayed in "Description" column of
- SHOW CHARACTER SET output.
-
-Conversion tables
------------------
-
- ctype - pointer to array[257] of "type of characters"
- bit mask for each character, e.g., whether a
- character is a digit, letter, separator, etc.
-
- Monty 2004-10-21:
- If you look at the macros, we use ctype[(char)+1].
- ctype[0] is traditionally in most ctype libraries
- reserved for EOF (-1). The idea is that you can use
- the result from fgetc() directly with ctype[]. As
- we have to be compatible with external ctype[] versions,
- it's better to do it the same way as they do...
-
- to_lower - pointer to array[256] used in LCASE()
- to_upper - pointer to array[256] used in UCASE()
- sort_order - pointer to array[256] used for strings comparison
-
-In all Asian charsets these arrays are set up as follows:
-
-- All bytes in the range 0x80..0xFF were marked as letters in the
- ctype array.
-
-- The to_lower and to_upper arrays map only ASCII letters.
- UPPER() and LOWER() doesn't really work for multi-byte characters.
- Most of the characters in Asian character sets are ideograms
- anyway and they don't have case mapping. However, there are
- still some characters from European alphabets.
- For example:
- _ujis 0x8FAAF2 - LATIN CAPITAL LETTER Y WITH ACUTE
- _ujis 0x8FABF2 - LATIN SMALL LETTER Y WITH ACUTE
-
- But they don't map to each other with UPPER and LOWER operations.
-
-- The sort_order array is filled case insensitively for the
- ASCII range 0x00..0x7F, and in "binary" fashion for the multi-byte
- range 0x80..0xFF for these collations:
-
- cp932_japanese_ci,
- euckr_korean_ci,
- eucjpms_japanese_ci,
- gb2312_chinese_ci,
- sjis_japanese_ci,
- ujis_japanese_ci.
-
- So multi-byte characters are sorted just according to their codes.
-
-
-- Two collations are still case insensitive for the ASCII characters,
- but have special sorting order for multi-byte characters
- (something more complex than just according to codes):
-
- big5_chinese_ci
- gbk_chinese_ci
-
- So handlers for these collations use only the 0x00..0x7F part
- of their sort_order arrays, and apply the special functions
- for multi-byte characters
-
-In Unicode character sets we have full support of UPPER/LOWER mapping,
-for sorting order, and for character type detection.
-"utf8_general_ci" still has the "old-fashioned" arrays
-like to_upper, to_lower, sort_order and ctype, but they are
-not really used (maybe only in some rare legacy functions).
-
-
-
-Unicode conversion data
------------------------
-For 8-bit character sets:
-
-tab_to_uni : array[256] of charset->Unicode translation
-tab_from_uni: a structure for Unicode->charset translation
-
-Non-8-bit charsets have their own structures per charset
-hidden in corresponding ctype-xxx.c file and don't use
-tab_to_uni and tab_from_uni tables.
-
-
-Parser maps
------------
-state_map[]
-ident_map[]
-
-These maps are used to quickly identify whether a character is an
-identifier part, a digit, a special character, or a part of another
-SQL language lexical item.
-
-Probably can be combined with ctype array in the future.
-But for some reasons these two arrays are used in the parser,
-while a separate ctype[] array is used in the other part of the
-code, like fulltext, etc.
-
-
-Miscellaneous fields
---------------------
-
- strxfrm_multiply - how many times a sort key (that is, a string
- that can be passed into memcmp() for comparison)
- can be longer than the original string.
- Usually it is 1. For some complex
- collations it can be bigger. For example,
- in latin1_german2_ci, a sort key is up to
- two times longer than the original string.
- e.g. Letter 'A' with two dots above is
- substituted with 'AE'.
- mbminlen - minimum multi-byte sequence length.
- Now always 1 except for ucs2. For ucs2,
- it is 2.
- mbmaxlen - maximum multi-byte sequence length.
- 1 for 8-bit charsets. Can be also 2 or 3.
-
- max_sort_char - for LIKE range
- in case of 8-bit character sets - native code
- of maximum character (max_str pad byte);
- in case of UTF8 and UCS2 - Unicode code of the maximum
- possible character (usually U+FFFF). This code is
- converted to multi-byte representation (usually 0xEFBFBF)
- and then used as a pad sequence for max_str.
- in case of other multi-byte character sets -
- max_str pad byte (usually 0xFF).
-
-MY_CHARSET_HANDLER
-==================
-
-MY_CHARSET_HANDLER is a collection of character-set
-related routines. Defined in m_ctype.h. Have the
-following set of functions:
-
-Multi-byte routines
-------------------
-ismbchar() - detects whether the given string is a multi-byte sequence
-mbcharlen() - returns length of multi-byte sequence starting with
- the given character
-numchars() - returns number of characters in the given string, e.g.
- in SQL function CHAR_LENGTH().
-charpos() - calculates the offset of the given position in the string.
- Used in SQL functions LEFT(), RIGHT(), SUBSTRING(),
- INSERT()
-
-well_formed_len()
- - returns length of a given multi-byte string in bytes
- Used in INSERTs to shorten the given string so it
- a) is "well formed" according to the given character set
- b) can fit into the given data type
-
-lengthsp() - returns the length of the given string without trailing spaces.
-
-
-Unicode conversion routines
----------------------------
-mb_wc - converts the left multi-byte sequence into its Unicode code.
-mc_mb - converts the given Unicode code into multi-byte sequence.
-
-
-Case and sort conversion
-------------------------
-caseup_str - converts the given 0-terminated string to uppercase
-casedn_str - converts the given 0-terminated string to lowercase
-caseup - converts the given string to lowercase using length
-casedn - converts the given string to lowercase using length
-
-Number-to-string conversion routines
-------------------------------------
-snprintf()
-long10_to_str()
-longlong10_to_str()
-
-The names are pretty self-describing.
-
-String padding routines
------------------------
-fill() - writes the given Unicode value into the given string
- with the given length. Used to pad the string, usually
- with space character, according to the given charset.
-
-String-to-number conversion routines
-------------------------------------
-strntol()
-strntoul()
-strntoll()
-strntoull()
-strntod()
-
-These functions are almost the same as their STDLIB counterparts,
-but also:
- - accept length instead of 0-terminator
- - are character set dependent
-
-Simple scanner routines
------------------------
-scan() - to skip leading spaces in the given string.
- Used when a string value is inserted into a numeric field.
-
-
-
-MY_COLLATION_HANDLER
-====================
-strnncoll() - compares two strings according to the given collation
-strnncollsp() - like the above but ignores trailing spaces
-strnxfrm() - makes a sort key suitable for memcmp() corresponding
- to the given string
-like_range() - creates a LIKE range, for optimizer
-wildcmp() - wildcard comparison, for LIKE
-strcasecmp() - 0-terminated string comparison
-instr() - finds the first substring appearance in the string
-hash_sort() - calculates hash value taking into account
- the collation rules, e.g. case-insensitivity,
- accent sensitivity, etc.
-
-
diff --git a/dep/mysqllite/strings/README b/dep/mysqllite/strings/README
deleted file mode 100644
index ddb811ede5e..00000000000
--- a/dep/mysqllite/strings/README
+++ /dev/null
@@ -1,82 +0,0 @@
-File : README
-Author : Richard A. O'Keefe.
-Updated: 30 April 1984
-Purpose: Explain the new strings package.
-
- The UNIX string libraries (described in the string(3) manual page)
-differ from UNIX to UNIX (e.g. strtok is not in V7 or 4.1bsd). Worse,
-the sources are not in the public domain, so that if there is a string
-routine which is nearly what you want but not quite you can't take a
-copy and modify it. And of course C programmers on non-UNIX systems
-are at the mercy of their supplier.
-
- This package was designed to let me do reasonable things with C's
-strings whatever UNIX (V7, PaNiX, UX63, 4.1bsd) I happen to be using.
-Everything in the System III manual is here and does just what the S3
-manual says it does. There are also lots of new goodies. I'm sorry
-about the names, but the routines do have to work on asphyxiated-at-
-birth systems which truncate identifiers. The convention is that a
-routine is called
- str [n] [c] <operation>
-If there is an "n", it means that the function takes an (int) "length"
-argument, which bounds the number of characters to be moved or looked
-at. If the function has a "set" argument, a "c" in the name indicates
-that the complement of the set is used. Functions or variables whose
-names start with _ are support routines which aren't really meant for
-general use. I don't know what the "p" is doing in "strpbrk", but it
-is there in the S3 manual so it's here too. "istrtok" does not follow
-this rule, but with 7 letters what can you do?
-
- I have included new versions of atoi(3) and atol(3) as well. They
-use a new primitive str2int, which takes a pair of bounds and a radix,
-and does much more thorough checking than the normal atoi and atol do.
-The result returned by atoi & atol is valid if and only if errno == 0.
-There is also an output conversion routine int2str, with itoa and ltoa
-as interface macros. Only after writing int2str did I notice that the
-str2int routine has no provision for unsigned numbers. On reflection,
-I don't greatly care. I'm afraid that int2str may depend on your "C"
-compiler in unexpected ways. Do check the code with -S.
-
- Several of these routines have "asm" inclusions conditional on the
-VaxAsm option. These insertions can make the routines which have them
-quite a bit faster, but there is a snag. The VAX architects, for some
-reason best known to themselves and their therapists, decided that all
-"strings" were shorter than 2^16 bytes. Even when the length operands
-are in 32-bit registers, only 16 bits count. So the "asm" versions do
-not work for long strings. If you can guarantee that all your strings
-will be short, define VaxAsm in the makefile, but in general, and when
-using other machines, do not define it.
-
- To use this library, you need the "strings.a" library file and the
-"strings.h" and "ctypes.h" header files. The other header files are
-for compiling the library itself, though if you are hacking extensions
-you may find them useful. General users really shouldn't see them.
-I've defined a few macros I find useful in "strings.h"; if you have no
-need for "index", "rindex", "streql", and "beql", just edit them out.
-On the 4.1bsd system I am using declaring all these functions 'extern'
-does not mean that they will all be loaded; but only the ones you use.
-When using lesser systems you may find it necessary to break strings.h
-up, or you could get by with just adding "extern" declarations for the
-functions you want as you need them. Many of these functions have the
-same names as functions in the "standard C library", by design as this
-is a replacement/reimplementation of part of that library. So you may
-have to talk the loader into loading this library first. Again, I've
-found no problems on 4.1bsd.
-
- You may wonder at my failure to provide manual pages for this code.
-For the things in V7, 4.?, or SIII, you should be able to use whichever
-manual page came with that system, and anything I might write would be
-so like it as to raise suspicions of violating AT&T copyrights. In the
-sources you will find comments which provide far more documentation for
-these routines than AT&T ever provided for their strings stuff, I just
-don't happen to have put it in nroff -man form. Had I done so, the .3
-files would have outbulked the .c files!
-
- These files are in the public domain. This includes getopt.c, which
-is the work of Henry Spencer, University of Toronto Zoology, who says of
-it "None of this software is derived from Bell software. I had no access
-to the source for Bell's versions at the time I wrote it. This software
-is hereby explicitly placed in the public domain. It may be used for
-any purpose on any machine by anyone." I would greatly prefer it if *my*
-material received no military use.
-
diff --git a/dep/mysqllite/strings/bchange.c b/dep/mysqllite/strings/bchange.c
deleted file mode 100644
index 0b2c62019b5..00000000000
--- a/dep/mysqllite/strings/bchange.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : bchange.c
- Author : Michael widenius
- Updated: 1987-03-20
- Defines: bchange()
-
- bchange(dst, old_length, src, new_length, tot_length)
- replaces old_length characters at dst to new_length characters from
- src in a buffer with tot_length bytes.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-void bchange(register uchar *dst, size_t old_length, register const uchar *src,
- size_t new_length, size_t tot_length)
-{
- size_t rest=tot_length-old_length;
- if (old_length < new_length)
- bmove_upp(dst+rest+new_length,dst+tot_length,rest);
- else
- bmove(dst+new_length,dst+old_length,rest);
- memcpy(dst,src,new_length);
-}
diff --git a/dep/mysqllite/strings/bmove_upp.c b/dep/mysqllite/strings/bmove_upp.c
deleted file mode 100644
index 05e786837f4..00000000000
--- a/dep/mysqllite/strings/bmove_upp.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : bmove.c
- Author : Michael widenius
- Updated: 1987-03-20
- Defines: bmove_upp()
-
- bmove_upp(dst, src, len) moves exactly "len" bytes from the source
- "src-len" to the destination "dst-len" counting downwards.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-void bmove_upp(register uchar *dst, register const uchar *src,
- register size_t len)
-{
- while (len-- != 0) *--dst = *--src;
-}
diff --git a/dep/mysqllite/strings/ctype-big5.c b/dep/mysqllite/strings/ctype-big5.c
deleted file mode 100644
index 3007d76a5a4..00000000000
--- a/dep/mysqllite/strings/ctype-big5.c
+++ /dev/null
@@ -1,6983 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- * This file is basicly usa7 character sets with some extra functions
- * for big5 handling
-*/
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_big5=1
- * .configure. mbmaxlen_big5=2
- */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_CHARSET_big5
-
-/*
- Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw
- modified by Wei He (hewei@mail.ied.ac.cn)
- modified by Alex Barkov <bar@udm.net>
-*/
-
-#define isbig5head(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xf9)
-#define isbig5tail(c) ((0x40<=(uchar)(c) && (uchar)(c)<=0x7e) || \
- (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe))
-
-#define isbig5code(c,d) (isbig5head(c) && isbig5tail(d))
-#define big5code(c,d) (((uchar)(c) <<8) | (uchar)(d))
-#define big5head(e) ((uchar)(e>>8))
-#define big5tail(e) ((uchar)(e&0xff))
-
-static uchar ctype_big5[257] =
-{
- 0, /* For standard library */
- 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32,
- 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
- 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16,
- 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,
- 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,
-};
-
-static uchar to_lower_big5[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar to_upper_big5[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar sort_order_big5[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '\\', ']', '[', '^', '_',
- 'E', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-
-static MY_UNICASE_INFO cA2[256]=
-{
- /* A200-A20F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A210-A21F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A220-A22F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A230-A23F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A240-A24F */
- {0xA240,0xA240,0xFFFD},
- {0xA241,0xA241,0xFF0F},
- {0xA242,0xA242,0xFF3C},
- {0xA243,0xA243,0xFF04},
- {0xA244,0xA244,0x00A5},
- {0xA245,0xA245,0x3012},
- {0xA246,0xA246,0x00A2},
- {0xA247,0xA247,0x00A3},
- {0xA248,0xA248,0xFF05},
- {0xA249,0xA249,0xFF20},
- {0xA24A,0xA24A,0x2103},
- {0xA24B,0xA24B,0x2109},
- {0xA24C,0xA24C,0xFE69},
- {0xA24D,0xA24D,0xFE6A},
- {0xA24E,0xA24E,0xFE6B},
- {0xA24F,0xA24F,0x33D5},
- /* A250-A25F */
- {0xA250,0xA250,0x339C},
- {0xA251,0xA251,0x339D},
- {0xA252,0xA252,0x339E},
- {0xA253,0xA253,0x33CE},
- {0xA254,0xA254,0x33A1},
- {0xA255,0xA255,0x338E},
- {0xA256,0xA256,0x338F},
- {0xA257,0xA257,0x33C4},
- {0xA258,0xA258,0x00B0},
- {0xA259,0xA259,0x5159},
- {0xA25A,0xA25A,0x515B},
- {0xA25B,0xA25B,0x515E},
- {0xA25C,0xA25C,0x515D},
- {0xA25D,0xA25D,0x5161},
- {0xA25E,0xA25E,0x5163},
- {0xA25F,0xA25F,0x55E7},
- /* A260-A26F */
- {0xA260,0xA260,0x74E9},
- {0xA261,0xA261,0x7CCE},
- {0xA262,0xA262,0x2581},
- {0xA263,0xA263,0x2582},
- {0xA264,0xA264,0x2583},
- {0xA265,0xA265,0x2584},
- {0xA266,0xA266,0x2585},
- {0xA267,0xA267,0x2586},
- {0xA268,0xA268,0x2587},
- {0xA269,0xA269,0x2588},
- {0xA26A,0xA26A,0x258F},
- {0xA26B,0xA26B,0x258E},
- {0xA26C,0xA26C,0x258D},
- {0xA26D,0xA26D,0x258C},
- {0xA26E,0xA26E,0x258B},
- {0xA26F,0xA26F,0x258A},
- /* A270-A27F */
- {0xA270,0xA270,0x2589},
- {0xA271,0xA271,0x253C},
- {0xA272,0xA272,0x2534},
- {0xA273,0xA273,0x252C},
- {0xA274,0xA274,0x2524},
- {0xA275,0xA275,0x251C},
- {0xA276,0xA276,0x2594},
- {0xA277,0xA277,0x2500},
- {0xA278,0xA278,0x2502},
- {0xA279,0xA279,0x2595},
- {0xA27A,0xA27A,0x250C},
- {0xA27B,0xA27B,0x2510},
- {0xA27C,0xA27C,0x2514},
- {0xA27D,0xA27D,0x2518},
- {0xA27E,0xA27E,0x256D},
- {0x0000,0x0000,0x0000},
- /* A280-A28F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A290-A29F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A2A0-A2AF */
- {0x0000,0x0000,0x0000},
- {0xA2A1,0xA2A1,0x256E},
- {0xA2A2,0xA2A2,0x2570},
- {0xA2A3,0xA2A3,0x256F},
- {0xA2A4,0xA2A4,0x2550},
- {0xA2A5,0xA2A5,0x255E},
- {0xA2A6,0xA2A6,0x256A},
- {0xA2A7,0xA2A7,0x2561},
- {0xA2A8,0xA2A8,0x25E2},
- {0xA2A9,0xA2A9,0x25E3},
- {0xA2AA,0xA2AA,0x25E5},
- {0xA2AB,0xA2AB,0x25E4},
- {0xA2AC,0xA2AC,0x2571},
- {0xA2AD,0xA2AD,0x2572},
- {0xA2AE,0xA2AE,0x2573},
- {0xA2AF,0xA2AF,0xFF10},
- /* A2B0-A2BF */
- {0xA2B0,0xA2B0,0xFF11},
- {0xA2B1,0xA2B1,0xFF12},
- {0xA2B2,0xA2B2,0xFF13},
- {0xA2B3,0xA2B3,0xFF14},
- {0xA2B4,0xA2B4,0xFF15},
- {0xA2B5,0xA2B5,0xFF16},
- {0xA2B6,0xA2B6,0xFF17},
- {0xA2B7,0xA2B7,0xFF18},
- {0xA2B8,0xA2B8,0xFF19},
- {0xA2B9,0xA2B9,0x2160},
- {0xA2BA,0xA2BA,0x2161},
- {0xA2BB,0xA2BB,0x2162},
- {0xA2BC,0xA2BC,0x2163},
- {0xA2BD,0xA2BD,0x2164},
- {0xA2BE,0xA2BE,0x2165},
- {0xA2BF,0xA2BF,0x2166},
- /* A2C0-A2CF */
- {0xA2C0,0xA2C0,0x2167},
- {0xA2C1,0xA2C1,0x2168},
- {0xA2C2,0xA2C2,0x2169},
- {0xA2C3,0xA2C3,0x3021},
- {0xA2C4,0xA2C4,0x3022},
- {0xA2C5,0xA2C5,0x3023},
- {0xA2C6,0xA2C6,0x3024},
- {0xA2C7,0xA2C7,0x3025},
- {0xA2C8,0xA2C8,0x3026},
- {0xA2C9,0xA2C9,0x3027},
- {0xA2CA,0xA2CA,0x3028},
- {0xA2CB,0xA2CB,0x3029},
- {0xA2CC,0xA2CC,0xFFFD},
- {0xA2CD,0xA2CD,0x5344},
- {0xA2CE,0xA2CE,0xFFFD},
- {0xA2CF,0xA2E9,0xFF21},
- /* A2D0-A2DF */
- {0xA2D0,0xA2EA,0xFF22},
- {0xA2D1,0xA2EB,0xFF23},
- {0xA2D2,0xA2EC,0xFF24},
- {0xA2D3,0xA2ED,0xFF25},
- {0xA2D4,0xA2EE,0xFF26},
- {0xA2D5,0xA2EF,0xFF27},
- {0xA2D6,0xA2F0,0xFF28},
- {0xA2D7,0xA2F1,0xFF29},
- {0xA2D8,0xA2F2,0xFF2A},
- {0xA2D9,0xA2F3,0xFF2B},
- {0xA2DA,0xA2F4,0xFF2C},
- {0xA2DB,0xA2F5,0xFF2D},
- {0xA2DC,0xA2F6,0xFF2E},
- {0xA2DD,0xA2F7,0xFF2F},
- {0xA2DE,0xA2F8,0xFF30},
- {0xA2DF,0xA2F9,0xFF31},
- /* A2E0-A2EF */
- {0xA2E0,0xA2FA,0xFF32},
- {0xA2E1,0xA2FB,0xFF33},
- {0xA2E2,0xA2FC,0xFF34},
- {0xA2E3,0xA2FD,0xFF35},
- {0xA2E4,0xA2FE,0xFF36},
- {0xA2E5,0xA340,0xFF37},
- {0xA2E6,0xA341,0xFF38},
- {0xA2E7,0xA342,0xFF39},
- {0xA2E8,0xA343,0xFF3A},
- {0xA2CF,0xA2E9,0xFF41},
- {0xA2D0,0xA2EA,0xFF42},
- {0xA2D1,0xA2EB,0xFF43},
- {0xA2D2,0xA2EC,0xFF44},
- {0xA2D3,0xA2ED,0xFF45},
- {0xA2D4,0xA2EE,0xFF46},
- {0xA2D5,0xA2EF,0xFF47},
- /* A2F0-A2FF */
- {0xA2D6,0xA2F0,0xFF48},
- {0xA2D7,0xA2F1,0xFF49},
- {0xA2D8,0xA2F2,0xFF4A},
- {0xA2D9,0xA2F3,0xFF4B},
- {0xA2DA,0xA2F4,0xFF4C},
- {0xA2DB,0xA2F5,0xFF4D},
- {0xA2DC,0xA2F6,0xFF4E},
- {0xA2DD,0xA2F7,0xFF4F},
- {0xA2DE,0xA2F8,0xFF50},
- {0xA2DF,0xA2F9,0xFF51},
- {0xA2E0,0xA2FA,0xFF52},
- {0xA2E1,0xA2FB,0xFF53},
- {0xA2E2,0xA2FC,0xFF54},
- {0xA2E3,0xA2FD,0xFF55},
- {0xA2E4,0xA2FE,0xFF56},
- {0x0000,0x0000,0x0000}
-};
-
-
-static MY_UNICASE_INFO cA3[256]=
-{
- /* A300-A30F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A310-A31F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A320-A32F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A330-A33F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A340-A34F */
- {0xA2E5,0xA340,0xFF57},
- {0xA2E6,0xA341,0xFF58},
- {0xA2E7,0xA342,0xFF59},
- {0xA2E8,0xA343,0xFF5A},
- {0xA344,0xA35C,0x0391},
- {0xA345,0xA35D,0x0392},
- {0xA346,0xA35E,0x0393},
- {0xA347,0xA35F,0x0394},
- {0xA348,0xA360,0x0395},
- {0xA349,0xA361,0x0396},
- {0xA34A,0xA362,0x0397},
- {0xA34B,0xA363,0x0398},
- {0xA34C,0xA364,0x0399},
- {0xA34D,0xA365,0x039A},
- {0xA34E,0xA366,0x039B},
- {0xA34F,0xA367,0x039C},
- /* A350-A35F */
- {0xA350,0xA368,0x039D},
- {0xA351,0xA369,0x039E},
- {0xA352,0xA36A,0x039F},
- {0xA353,0xA36B,0x03A0},
- {0xA354,0xA36C,0x03A1},
- {0xA355,0xA36D,0x03A3},
- {0xA356,0xA36E,0x03A4},
- {0xA357,0xA36F,0x03A5},
- {0xA358,0xA370,0x03A6},
- {0xA359,0xA371,0x03A7},
- {0xA35A,0xA372,0x03A8},
- {0xA35B,0xA373,0x03A9},
- {0xA344,0xA35C,0x03B1},
- {0xA345,0xA35D,0x03B2},
- {0xA346,0xA35E,0x03B3},
- {0xA347,0xA35F,0x03B4},
- /* A360-A36F */
- {0xA348,0xA360,0x03B5},
- {0xA349,0xA361,0x03B6},
- {0xA34A,0xA362,0x03B7},
- {0xA34B,0xA363,0x03B8},
- {0xA34C,0xA364,0x03B9},
- {0xA34D,0xA365,0x03BA},
- {0xA34E,0xA366,0x03BB},
- {0xA34F,0xA367,0x03BC},
- {0xA350,0xA368,0x03BD},
- {0xA351,0xA369,0x03BE},
- {0xA352,0xA36A,0x03BF},
- {0xA353,0xA36B,0x03C0},
- {0xA354,0xA36C,0x03C1},
- {0xA355,0xA36D,0x03C3},
- {0xA356,0xA36E,0x03C4},
- {0xA357,0xA36F,0x03C5},
- /* A370-A37F */
- {0xA358,0xA370,0x03C6},
- {0xA359,0xA371,0x03C7},
- {0xA35A,0xA372,0x03C8},
- {0xA35B,0xA373,0x03C9},
- {0xA374,0xA374,0x3105},
- {0xA375,0xA375,0x3106},
- {0xA376,0xA376,0x3107},
- {0xA377,0xA377,0x3108},
- {0xA378,0xA378,0x3109},
- {0xA379,0xA379,0x310A},
- {0xA37A,0xA37A,0x310B},
- {0xA37B,0xA37B,0x310C},
- {0xA37C,0xA37C,0x310D},
- {0xA37D,0xA37D,0x310E},
- {0xA37E,0xA37E,0x310F},
- {0x0000,0x0000,0x0000},
- /* A380-A38F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A390-A39F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* A3A0-A3AF */
- {0x0000,0x0000,0x0000},
- {0xA3A1,0xA3A1,0x3110},
- {0xA3A2,0xA3A2,0x3111},
- {0xA3A3,0xA3A3,0x3112},
- {0xA3A4,0xA3A4,0x3113},
- {0xA3A5,0xA3A5,0x3114},
- {0xA3A6,0xA3A6,0x3115},
- {0xA3A7,0xA3A7,0x3116},
- {0xA3A8,0xA3A8,0x3117},
- {0xA3A9,0xA3A9,0x3118},
- {0xA3AA,0xA3AA,0x3119},
- {0xA3AB,0xA3AB,0x311A},
- {0xA3AC,0xA3AC,0x311B},
- {0xA3AD,0xA3AD,0x311C},
- {0xA3AE,0xA3AE,0x311D},
- {0xA3AF,0xA3AF,0x311E},
- /* A3B0-A3BF */
- {0xA3B0,0xA3B0,0x311F},
- {0xA3B1,0xA3B1,0x3120},
- {0xA3B2,0xA3B2,0x3121},
- {0xA3B3,0xA3B3,0x3122},
- {0xA3B4,0xA3B4,0x3123},
- {0xA3B5,0xA3B5,0x3124},
- {0xA3B6,0xA3B6,0x3125},
- {0xA3B7,0xA3B7,0x3126},
- {0xA3B8,0xA3B8,0x3127},
- {0xA3B9,0xA3B9,0x3128},
- {0xA3BA,0xA3BA,0x3129},
- {0xA3BB,0xA3BB,0x02D9},
- {0xA3BC,0xA3BC,0x02C9},
- {0xA3BD,0xA3BD,0x02CA},
- {0xA3BE,0xA3BE,0x02C7},
- {0xA3BF,0xA3BF,0x02CB},
- /* A3C0-A3CF */
- {0xA3C0,0xA3C0,0x003F},
- {0xA3C1,0xA3C1,0x003F},
- {0xA3C2,0xA3C2,0x003F},
- {0xA3C3,0xA3C3,0x003F},
- {0xA3C4,0xA3C4,0x003F},
- {0xA3C5,0xA3C5,0x003F},
- {0xA3C6,0xA3C6,0x003F},
- {0xA3C7,0xA3C7,0x003F},
- {0xA3C8,0xA3C8,0x003F},
- {0xA3C9,0xA3C9,0x003F},
- {0xA3CA,0xA3CA,0x003F},
- {0xA3CB,0xA3CB,0x003F},
- {0xA3CC,0xA3CC,0x003F},
- {0xA3CD,0xA3CD,0x003F},
- {0xA3CE,0xA3CE,0x003F},
- {0xA3CF,0xA3CF,0x003F},
- /* A3D0-A3DF */
- {0xA3D0,0xA3D0,0x003F},
- {0xA3D1,0xA3D1,0x003F},
- {0xA3D2,0xA3D2,0x003F},
- {0xA3D3,0xA3D3,0x003F},
- {0xA3D4,0xA3D4,0x003F},
- {0xA3D5,0xA3D5,0x003F},
- {0xA3D6,0xA3D6,0x003F},
- {0xA3D7,0xA3D7,0x003F},
- {0xA3D8,0xA3D8,0x003F},
- {0xA3D9,0xA3D9,0x003F},
- {0xA3DA,0xA3DA,0x003F},
- {0xA3DB,0xA3DB,0x003F},
- {0xA3DC,0xA3DC,0x003F},
- {0xA3DD,0xA3DD,0x003F},
- {0xA3DE,0xA3DE,0x003F},
- {0xA3DF,0xA3DF,0x003F},
- /* A3E0-A3EF */
- {0xA3E0,0xA3E0,0x003F},
- {0xA3E1,0xA3E1,0x003F},
- {0xA3E2,0xA3E2,0x003F},
- {0xA3E3,0xA3E3,0x003F},
- {0xA3E4,0xA3E4,0x003F},
- {0xA3E5,0xA3E5,0x003F},
- {0xA3E6,0xA3E6,0x003F},
- {0xA3E7,0xA3E7,0x003F},
- {0xA3E8,0xA3E8,0x003F},
- {0xA3E9,0xA3E9,0x003F},
- {0xA3EA,0xA3EA,0x003F},
- {0xA3EB,0xA3EB,0x003F},
- {0xA3EC,0xA3EC,0x003F},
- {0xA3ED,0xA3ED,0x003F},
- {0xA3EE,0xA3EE,0x003F},
- {0xA3EF,0xA3EF,0x003F},
- /* A3F0-A3FF */
- {0xA3F0,0xA3F0,0x003F},
- {0xA3F1,0xA3F1,0x003F},
- {0xA3F2,0xA3F2,0x003F},
- {0xA3F3,0xA3F3,0x003F},
- {0xA3F4,0xA3F4,0x003F},
- {0xA3F5,0xA3F5,0x003F},
- {0xA3F6,0xA3F6,0x003F},
- {0xA3F7,0xA3F7,0x003F},
- {0xA3F8,0xA3F8,0x003F},
- {0xA3F9,0xA3F9,0x003F},
- {0xA3FA,0xA3FA,0x003F},
- {0xA3FB,0xA3FB,0x003F},
- {0xA3FC,0xA3FC,0x003F},
- {0xA3FD,0xA3FD,0x003F},
- {0xA3FE,0xA3FE,0x003F},
- {0x0000,0x0000,0x0000}
-};
-
-
-static MY_UNICASE_INFO cC7[256]=
-{
- /* C700-C70F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C710-C71F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C720-C72F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C730-C73F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C740-C74F */
- {0xC740,0xC740,0x30A8},
- {0xC741,0xC741,0x30A9},
- {0xC742,0xC742,0x30AA},
- {0xC743,0xC743,0x30AB},
- {0xC744,0xC744,0x30AC},
- {0xC745,0xC745,0x30AD},
- {0xC746,0xC746,0x30AE},
- {0xC747,0xC747,0x30AF},
- {0xC748,0xC748,0x30B0},
- {0xC749,0xC749,0x30B1},
- {0xC74A,0xC74A,0x30B2},
- {0xC74B,0xC74B,0x30B3},
- {0xC74C,0xC74C,0x30B4},
- {0xC74D,0xC74D,0x30B5},
- {0xC74E,0xC74E,0x30B6},
- {0xC74F,0xC74F,0x30B7},
- /* C750-C75F */
- {0xC750,0xC750,0x30B8},
- {0xC751,0xC751,0x30B9},
- {0xC752,0xC752,0x30BA},
- {0xC753,0xC753,0x30BB},
- {0xC754,0xC754,0x30BC},
- {0xC755,0xC755,0x30BD},
- {0xC756,0xC756,0x30BE},
- {0xC757,0xC757,0x30BF},
- {0xC758,0xC758,0x30C0},
- {0xC759,0xC759,0x30C1},
- {0xC75A,0xC75A,0x30C2},
- {0xC75B,0xC75B,0x30C3},
- {0xC75C,0xC75C,0x30C4},
- {0xC75D,0xC75D,0x30C5},
- {0xC75E,0xC75E,0x30C6},
- {0xC75F,0xC75F,0x30C7},
- /* C760-C76F */
- {0xC760,0xC760,0x30C8},
- {0xC761,0xC761,0x30C9},
- {0xC762,0xC762,0x30CA},
- {0xC763,0xC763,0x30CB},
- {0xC764,0xC764,0x30CC},
- {0xC765,0xC765,0x30CD},
- {0xC766,0xC766,0x30CE},
- {0xC767,0xC767,0x30CF},
- {0xC768,0xC768,0x30D0},
- {0xC769,0xC769,0x30D1},
- {0xC76A,0xC76A,0x30D2},
- {0xC76B,0xC76B,0x30D3},
- {0xC76C,0xC76C,0x30D4},
- {0xC76D,0xC76D,0x30D5},
- {0xC76E,0xC76E,0x30D6},
- {0xC76F,0xC76F,0x30D7},
- /* C770-C77F */
- {0xC770,0xC770,0x30D8},
- {0xC771,0xC771,0x30D9},
- {0xC772,0xC772,0x30DA},
- {0xC773,0xC773,0x30DB},
- {0xC774,0xC774,0x30DC},
- {0xC775,0xC775,0x30DD},
- {0xC776,0xC776,0x30DE},
- {0xC777,0xC777,0x30DF},
- {0xC778,0xC778,0x30E0},
- {0xC779,0xC779,0x30E1},
- {0xC77A,0xC77A,0x30E2},
- {0xC77B,0xC77B,0x30E3},
- {0xC77C,0xC77C,0x30E4},
- {0xC77D,0xC77D,0x30E5},
- {0xC77E,0xC77E,0x30E6},
- {0x0000,0x0000,0x0000},
- /* C780-C78F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C790-C79F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* C7A0-C7AF */
- {0x0000,0x0000,0x0000},
- {0xC7A1,0xC7A1,0x30E7},
- {0xC7A2,0xC7A2,0x30E8},
- {0xC7A3,0xC7A3,0x30E9},
- {0xC7A4,0xC7A4,0x30EA},
- {0xC7A5,0xC7A5,0x30EB},
- {0xC7A6,0xC7A6,0x30EC},
- {0xC7A7,0xC7A7,0x30ED},
- {0xC7A8,0xC7A8,0x30EE},
- {0xC7A9,0xC7A9,0x30EF},
- {0xC7AA,0xC7AA,0x30F0},
- {0xC7AB,0xC7AB,0x30F1},
- {0xC7AC,0xC7AC,0x30F2},
- {0xC7AD,0xC7AD,0x30F3},
- {0xC7AE,0xC7AE,0x30F4},
- {0xC7AF,0xC7AF,0x30F5},
- /* C7B0-C7BF */
- {0xC7B0,0xC7B0,0x30F6},
- {0xC7B1,0xC7CC,0x0414},
- {0xC7B2,0xC7CD,0x0415},
- {0xC7B3,0xC7CE,0x0401},
- {0xC7B4,0xC7CF,0x0416},
- {0xC7B5,0xC7D0,0x0417},
- {0xC7B6,0xC7D1,0x0418},
- {0xC7B7,0xC7D2,0x0419},
- {0xC7B8,0xC7D3,0x041A},
- {0xC7B9,0xC7D4,0x041B},
- {0xC7BA,0xC7D5,0x041C},
- {0xC7BB,0xC7DC,0x0423},
- {0xC7BC,0xC7DD,0x0424},
- {0xC7BD,0xC7DE,0x0425},
- {0xC7BE,0xC7DF,0x0426},
- {0xC7BF,0xC7E0,0x0427},
- /* C7C0-C7CF */
- {0xC7C0,0xC7E1,0x0428},
- {0xC7C1,0xC7E2,0x0429},
- {0xC7C2,0xC7E3,0x042A},
- {0xC7C3,0xC7E4,0x042B},
- {0xC7C4,0xC7E5,0x042C},
- {0xC7C5,0xC7E6,0x042D},
- {0xC7C6,0xC7E7,0x042E},
- {0xC7C7,0xC7E8,0x042F},
- {0xC7C8,0xC7C8,0x0430},
- {0xC7C9,0xC7C9,0x0431},
- {0xC7CA,0xC7CA,0x0432},
- {0xC7CB,0xC7CB,0x0433},
- {0xC7B1,0xC7CC,0x0434},
- {0xC7B2,0xC7CD,0x0435},
- {0xC7B3,0xC7CE,0x0451},
- {0xC7B4,0xC7CF,0x0436},
- /* C7D0-C7DF */
- {0xC7B5,0xC7D0,0x0437},
- {0xC7B6,0xC7D1,0x0438},
- {0xC7B7,0xC7D2,0x0439},
- {0xC7B8,0xC7D3,0x043A},
- {0xC7B9,0xC7D4,0x043B},
- {0xC7BA,0xC7D5,0x043C},
- {0xC7D6,0xC7D6,0x043D},
- {0xC7D7,0xC7D7,0x043E},
- {0xC7D8,0xC7D8,0x043F},
- {0xC7D9,0xC7D9,0x0440},
- {0xC7DA,0xC7DA,0x0441},
- {0xC7DB,0xC7DB,0x0442},
- {0xC7BB,0xC7DC,0x0443},
- {0xC7BC,0xC7DD,0x0444},
- {0xC7BD,0xC7DE,0x0445},
- {0xC7BE,0xC7DF,0x0446},
- /* C7E0-C7EF */
- {0xC7BF,0xC7E0,0x0447},
- {0xC7C0,0xC7E1,0x0448},
- {0xC7C1,0xC7E2,0x0449},
- {0xC7C2,0xC7E3,0x044A},
- {0xC7C3,0xC7E4,0x044B},
- {0xC7C4,0xC7E5,0x044C},
- {0xC7C5,0xC7E6,0x044D},
- {0xC7C6,0xC7E7,0x044E},
- {0xC7C7,0xC7E8,0x044F},
- {0xC7E9,0xC7E9,0x2460},
- {0xC7EA,0xC7EA,0x2461},
- {0xC7EB,0xC7EB,0x2462},
- {0xC7EC,0xC7EC,0x2463},
- {0xC7ED,0xC7ED,0x2464},
- {0xC7EE,0xC7EE,0x2465},
- {0xC7EF,0xC7EF,0x2466},
- /* C7F0-C7FF */
- {0xC7F0,0xC7F0,0x2467},
- {0xC7F1,0xC7F1,0x2468},
- {0xC7F2,0xC7F2,0x2469},
- {0xC7F3,0xC7F3,0x2474},
- {0xC7F4,0xC7F4,0x2475},
- {0xC7F5,0xC7F5,0x2476},
- {0xC7F6,0xC7F6,0x2477},
- {0xC7F7,0xC7F7,0x2478},
- {0xC7F8,0xC7F8,0x2479},
- {0xC7F9,0xC7F9,0x247A},
- {0xC7FA,0xC7FA,0x247B},
- {0xC7FB,0xC7FB,0x247C},
- {0xC7FC,0xC7FC,0x247D},
- {0xC7FD,0xC7FD,0x003F},
- {0xC7FE,0xC7FE,0x003F},
- {0x0000,0x0000,0x0000}
-};
-
-
-static MY_UNICASE_INFO *my_caseinfo_big5[256]=
-{
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, cA2, cA3, NULL, NULL, NULL, NULL, /* A */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, cC7, /* C */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-};
-
-
-static uint16 big5strokexfrm(uint16 i)
-{
- if ((i == 0xA440) || (i == 0xA441)) return 0xA440;
- else if (((i >= 0xA442) && (i <= 0xA453)) || ((i >= 0xC940) && (i <= 0xC944))) return 0xA442;
- else if (((i >= 0xA454) && (i <= 0xA47E)) || ((i >= 0xC945) && (i <= 0xC94C))) return 0xA454;
- else if (((i >= 0xA4A1) && (i <= 0xA4FD)) || ((i >= 0xC94D) && (i <= 0xC962))) return 0xA4A1;
- else if (((i >= 0xA4FE) && (i <= 0xA5DF)) || ((i >= 0xC963) && (i <= 0xC9AA))) return 0xA4FE;
- else if (((i >= 0xA5E0) && (i <= 0xA6E9)) || ((i >= 0xC9AB) && (i <= 0xCA59))) return 0xA5E0;
- else if (((i >= 0xA6EA) && (i <= 0xA8C2)) || ((i >= 0xCA5A) && (i <= 0xCBB0))) return 0xA6EA;
- else if ((i == 0xA260) || ((i >= 0xA8C3) && (i <= 0xAB44)) || ((i >= 0xCBB1) && (i <= 0xCDDC))) return 0xA8C3;
- else if ((i == 0xA259) || (i == 0xF9DA) || ((i >= 0xAB45) && (i <= 0xADBB)) || ((i >= 0xCDDD) && (i <= 0xD0C7))) return 0xAB45;
- else if ((i == 0xA25A) || ((i >= 0xADBC) && (i <= 0xB0AD)) || ((i >= 0xD0C8) && (i <= 0xD44A))) return 0xADBC;
- else if ((i == 0xA25B) || (i == 0xA25C) || ((i >= 0xB0AE) && (i <= 0xB3C2)) || ((i >= 0xD44B) && (i <= 0xD850))) return 0xB0AE;
- else if ((i == 0xF9DB) || ((i >= 0xB3C3) && (i <= 0xB6C2)) || ((i >= 0xD851) && (i <= 0xDCB0))) return 0xB3C3;
- else if ((i == 0xA25D) || (i == 0xA25F) || (i == 0xC6A1) || (i == 0xF9D6) || (i == 0xF9D8) || ((i >= 0xB6C3) && (i <= 0xB9AB)) || ((i >= 0xDCB1) && (i <= 0xE0EF))) return 0xB6C3;
- else if ((i == 0xF9DC) || ((i >= 0xB9AC) && (i <= 0xBBF4)) || ((i >= 0xE0F0) && (i <= 0xE4E5))) return 0xB9AC;
- else if ((i == 0xA261) || ((i >= 0xBBF5) && (i <= 0xBEA6)) || ((i >= 0xE4E6) && (i <= 0xE8F3))) return 0xBBF5;
- else if ((i == 0xA25E) || (i == 0xF9D7) || (i == 0xF9D9) || ((i >= 0xBEA7) && (i <= 0xC074)) || ((i >= 0xE8F4) && (i <= 0xECB8))) return 0xBEA7;
- else if (((i >= 0xC075) && (i <= 0xC24E)) || ((i >= 0xECB9) && (i <= 0xEFB6))) return 0xC075;
- else if (((i >= 0xC24F) && (i <= 0xC35E)) || ((i >= 0xEFB7) && (i <= 0xF1EA))) return 0xC24F;
- else if (((i >= 0xC35F) && (i <= 0xC454)) || ((i >= 0xF1EB) && (i <= 0xF3FC))) return 0xC35F;
- else if (((i >= 0xC455) && (i <= 0xC4D6)) || ((i >= 0xF3FD) && (i <= 0xF5BF))) return 0xC455;
- else if (((i >= 0xC4D7) && (i <= 0xC56A)) || ((i >= 0xF5C0) && (i <= 0xF6D5))) return 0xC4D7;
- else if (((i >= 0xC56B) && (i <= 0xC5C7)) || ((i >= 0xF6D6) && (i <= 0xF7CF))) return 0xC56B;
- else if (((i >= 0xC5C8) && (i <= 0xC5F0)) || ((i >= 0xF7D0) && (i <= 0xF8A4))) return 0xC5C8;
- else if (((i >= 0xC5F1) && (i <= 0xC654)) || ((i >= 0xF8A5) && (i <= 0xF8ED))) return 0xC5F1;
- else if (((i >= 0xC655) && (i <= 0xC664)) || ((i >= 0xF8EE) && (i <= 0xF96A))) return 0xC655;
- else if (((i >= 0xC665) && (i <= 0xC66B)) || ((i >= 0xF96B) && (i <= 0xF9A1))) return 0xC665;
- else if (((i >= 0xC66C) && (i <= 0xC675)) || ((i >= 0xF9A2) && (i <= 0xF9B9))) return 0xC66C;
- else if (((i >= 0xC676) && (i <= 0xC678)) || ((i >= 0xF9BA) && (i <= 0xF9C5))) return 0xC676;
- else if (((i >= 0xC679) && (i <= 0xC67C)) || ((i >= 0xF9C7) && (i <= 0xF9CB))) return 0xC679;
- else if ((i == 0xC67D) || ((i >= 0xF9CC) && (i <= 0xF9CF))) return 0xC67D;
- else if (i == 0xF9D0) return 0xF9D0;
- else if ((i == 0xC67E) || (i == 0xF9D1)) return 0xC67E;
- else if ((i == 0xF9C6) || (i == 0xF9D2)) return 0xF9C6;
- else if (i == 0xF9D3) return 0xF9D3;
- else if (i == 0xF9D4) return 0xF9D4;
- else if (i == 0xF9D5) return 0xF9D5;
- return 0xA140;
-}
-
-
-
-static int my_strnncoll_big5_internal(const uchar **a_res,
- const uchar **b_res, size_t length)
-{
- const uchar *a= *a_res, *b= *b_res;
-
- while (length--)
- {
- if ((length > 0) && isbig5code(*a,*(a+1)) && isbig5code(*b, *(b+1)))
- {
- if (*a != *b || *(a+1) != *(b+1))
- return ((int) big5code(*a,*(a+1)) -
- (int) big5code(*b,*(b+1)));
- a+= 2;
- b+= 2;
- length--;
- }
- else if (sort_order_big5[*a++] !=
- sort_order_big5[*b++])
- return ((int) sort_order_big5[a[-1]] -
- (int) sort_order_big5[b[-1]]);
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-/* Compare strings */
-
-static int my_strnncoll_big5(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_big5_internal(&a, &b, length);
- return res ? res : (int)((b_is_prefix ? length : a_length) - b_length);
-}
-
-
-/* compare strings, ignore end space */
-
-static int my_strnncollsp_big5(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_big5_internal(&a, &b, length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && a_length != b_length)
- {
- const uchar *end;
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put longer key in a */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t my_strnxfrm_big5(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uint16 e;
- size_t dstlen= len;
- uchar *dest_end= dest + dstlen;
-
- len = srclen;
- while (len-- && dest < dest_end)
- {
- if ((len > 0) && isbig5code(*src, *(src+1)))
- {
- e = big5strokexfrm((uint16) big5code(*src, *(src+1)));
- *dest++ = big5head(e);
- if (dest < dest_end)
- *dest++ = big5tail(e);
- src +=2;
- len--;
- } else
- *dest++ = sort_order_big5[(uchar) *src++];
- }
- if (dstlen > srclen)
- bfill(dest, dstlen - srclen, ' ');
- return dstlen;
-}
-
-#if 0
-static int my_strcoll_big5(const uchar *s1, const uchar *s2)
-{
-
- while (*s1 && *s2)
- {
- if (*(s1+1) && *(s2+1) && isbig5code(*s1,*(s1+1)) && isbig5code(*s2, *(s2+1)))
- {
- if (*s1 != *s2 || *(s1+1) != *(s2+1))
- return ((int) big5code(*s1,*(s1+1)) -
- (int) big5code(*s2,*(s2+1)));
- s1 +=2;
- s2 +=2;
- } else if (sort_order_big5[(uchar) *s1++] != sort_order_big5[(uchar) *s2++])
- return ((int) sort_order_big5[(uchar) s1[-1]] -
- (int) sort_order_big5[(uchar) s2[-1]]);
- }
- return 0;
-}
-
-static int my_strxfrm_big5(uchar *dest, const uchar *src, int len)
-{
- uint16 e;
- uchar *d = dest;
-
- if (len < 1) return 0;
- if (!*src)
- {
- *d = '\0';
- return 0;
- }
- while (*src && (len > 1))
- {
- if (*(src+1) && isbig5code(*src, *(src+1)))
- {
- e = big5strokexfrm((uint16) big5code(*src, *(src+1)));
- *d++ = big5head(e);
- *d++ = big5tail(e);
- src +=2;
- len--;
- } else
- *d++ = sort_order_big5[(uchar) *src++];
- }
- *d = '\0';
- return (int) (d-dest);
-}
-#endif
-
-
-static uint ismbchar_big5(CHARSET_INFO *cs __attribute__((unused)),
- const char* p, const char *e)
-{
- return (isbig5head(*(p)) && (e)-(p)>1 && isbig5tail(*((p)+1))? 2: 0);
-}
-
-
-static uint mbcharlen_big5(CHARSET_INFO *cs __attribute__((unused)), uint c)
-{
- return (isbig5head(c)? 2 : 1);
-}
-
-
-/* page 0 0xA140-0xC7FC */
-static uint16 tab_big5_uni0[]={
-0x3000,0xFF0C,0x3001,0x3002,0xFF0E,0x2022,0xFF1B,0xFF1A,
-0xFF1F,0xFF01,0xFE30,0x2026,0x2025,0xFE50,0xFF64,0xFE52,
-0x00B7,0xFE54,0xFE55,0xFE56,0xFE57,0xFF5C,0x2013,0xFE31,
-0x2014,0xFE33,0xFFFD,0xFE34,0xFE4F,0xFF08,0xFF09,0xFE35,
-0xFE36,0xFF5B,0xFF5D,0xFE37,0xFE38,0x3014,0x3015,0xFE39,
-0xFE3A,0x3010,0x3011,0xFE3B,0xFE3C,0x300A,0x300B,0xFE3D,
-0xFE3E,0x3008,0x3009,0xFE3F,0xFE40,0x300C,0x300D,0xFE41,
-0xFE42,0x300E,0x300F,0xFE43,0xFE44,0xFE59,0xFE5A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFE5B,0xFE5C,0xFE5D,0xFE5E,0x2018,0x2019,0x201C,
-0x201D,0x301D,0x301E,0x2035,0x2032,0xFF03,0xFF06,0xFF0A,
-0x203B,0x00A7,0x3003,0x25CB,0x25CF,0x25B3,0x25B2,0x25CE,
-0x2606,0x2605,0x25C7,0x25C6,0x25A1,0x25A0,0x25BD,0x25BC,
-0x32A3,0x2105,0x203E,0xFFFD,0xFF3F,0xFFFD,0xFE49,0xFE4A,
-0xFE4D,0xFE4E,0xFE4B,0xFE4C,0xFE5F,0xFE60,0xFE61,0xFF0B,
-0xFF0D,0x00D7,0x00F7,0x00B1,0x221A,0xFF1C,0xFF1E,0xFF1D,
-0x2266,0x2267,0x2260,0x221E,0x2252,0x2261,0xFE62,0xFE63,
-0xFE64,0xFE65,0xFE66,0x223C,0x2229,0x222A,0x22A5,0x2220,
-0x221F,0x22BF,0x33D2,0x33D1,0x222B,0x222E,0x2235,0x2234,
-0x2640,0x2642,0x2641,0x2609,0x2191,0x2193,0x2190,0x2192,
-0x2196,0x2197,0x2199,0x2198,0x2225,0x2223,0xFFFD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFFFD,0xFF0F,0xFF3C,0xFF04,0x00A5,0x3012,0x00A2,0x00A3,
-0xFF05,0xFF20,0x2103,0x2109,0xFE69,0xFE6A,0xFE6B,0x33D5,
-0x339C,0x339D,0x339E,0x33CE,0x33A1,0x338E,0x338F,0x33C4,
-0x00B0,0x5159,0x515B,0x515E,0x515D,0x5161,0x5163,0x55E7,
-0x74E9,0x7CCE,0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,
-0x2587,0x2588,0x258F,0x258E,0x258D,0x258C,0x258B,0x258A,
-0x2589,0x253C,0x2534,0x252C,0x2524,0x251C,0x2594,0x2500,
-0x2502,0x2595,0x250C,0x2510,0x2514,0x2518,0x256D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x256E,0x2570,0x256F,0x2550,0x255E,0x256A,0x2561,
-0x25E2,0x25E3,0x25E5,0x25E4,0x2571,0x2572,0x2573,0xFF10,
-0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18,
-0xFF19,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
-0x2167,0x2168,0x2169,0x3021,0x3022,0x3023,0x3024,0x3025,
-0x3026,0x3027,0x3028,0x3029,0xFFFD,0x5344,0xFFFD,0xFF21,
-0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,
-0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31,
-0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,
-0xFF3A,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,
-0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,
-0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFF57,0xFF58,0xFF59,0xFF5A,0x0391,0x0392,0x0393,0x0394,
-0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,0x039B,0x039C,
-0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,
-0x03A6,0x03A7,0x03A8,0x03A9,0x03B1,0x03B2,0x03B3,0x03B4,
-0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,
-0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,
-0x03C6,0x03C7,0x03C8,0x03C9,0x3105,0x3106,0x3107,0x3108,
-0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,
-0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,
-0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,
-0x3127,0x3128,0x3129,0x02D9,0x02C9,0x02CA,0x02C7,0x02CB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E00,0x4E59,0x4E01,0x4E03,0x4E43,0x4E5D,0x4E86,0x4E8C,
-0x4EBA,0x513F,0x5165,0x516B,0x51E0,0x5200,0x5201,0x529B,
-0x5315,0x5341,0x535C,0x53C8,0x4E09,0x4E0B,0x4E08,0x4E0A,
-0x4E2B,0x4E38,0x51E1,0x4E45,0x4E48,0x4E5F,0x4E5E,0x4E8E,
-0x4EA1,0x5140,0x5203,0x52FA,0x5343,0x53C9,0x53E3,0x571F,
-0x58EB,0x5915,0x5927,0x5973,0x5B50,0x5B51,0x5B53,0x5BF8,
-0x5C0F,0x5C22,0x5C38,0x5C71,0x5DDD,0x5DE5,0x5DF1,0x5DF2,
-0x5DF3,0x5DFE,0x5E72,0x5EFE,0x5F0B,0x5F13,0x624D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x4E11,0x4E10,0x4E0D,0x4E2D,0x4E30,0x4E39,0x4E4B,
-0x5C39,0x4E88,0x4E91,0x4E95,0x4E92,0x4E94,0x4EA2,0x4EC1,
-0x4EC0,0x4EC3,0x4EC6,0x4EC7,0x4ECD,0x4ECA,0x4ECB,0x4EC4,
-0x5143,0x5141,0x5167,0x516D,0x516E,0x516C,0x5197,0x51F6,
-0x5206,0x5207,0x5208,0x52FB,0x52FE,0x52FF,0x5316,0x5339,
-0x5348,0x5347,0x5345,0x535E,0x5384,0x53CB,0x53CA,0x53CD,
-0x58EC,0x5929,0x592B,0x592A,0x592D,0x5B54,0x5C11,0x5C24,
-0x5C3A,0x5C6F,0x5DF4,0x5E7B,0x5EFF,0x5F14,0x5F15,0x5FC3,
-0x6208,0x6236,0x624B,0x624E,0x652F,0x6587,0x6597,0x65A4,
-0x65B9,0x65E5,0x66F0,0x6708,0x6728,0x6B20,0x6B62,0x6B79,
-0x6BCB,0x6BD4,0x6BDB,0x6C0F,0x6C34,0x706B,0x722A,0x7236,
-0x723B,0x7247,0x7259,0x725B,0x72AC,0x738B,0x4E19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E16,0x4E15,0x4E14,0x4E18,0x4E3B,0x4E4D,0x4E4F,0x4E4E,
-0x4EE5,0x4ED8,0x4ED4,0x4ED5,0x4ED6,0x4ED7,0x4EE3,0x4EE4,
-0x4ED9,0x4EDE,0x5145,0x5144,0x5189,0x518A,0x51AC,0x51F9,
-0x51FA,0x51F8,0x520A,0x52A0,0x529F,0x5305,0x5306,0x5317,
-0x531D,0x4EDF,0x534A,0x5349,0x5361,0x5360,0x536F,0x536E,
-0x53BB,0x53EF,0x53E4,0x53F3,0x53EC,0x53EE,0x53E9,0x53E8,
-0x53FC,0x53F8,0x53F5,0x53EB,0x53E6,0x53EA,0x53F2,0x53F1,
-0x53F0,0x53E5,0x53ED,0x53FB,0x56DB,0x56DA,0x5916, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x592E,0x5931,0x5974,0x5976,0x5B55,0x5B83,0x5C3C,
-0x5DE8,0x5DE7,0x5DE6,0x5E02,0x5E03,0x5E73,0x5E7C,0x5F01,
-0x5F18,0x5F17,0x5FC5,0x620A,0x6253,0x6254,0x6252,0x6251,
-0x65A5,0x65E6,0x672E,0x672C,0x672A,0x672B,0x672D,0x6B63,
-0x6BCD,0x6C11,0x6C10,0x6C38,0x6C41,0x6C40,0x6C3E,0x72AF,
-0x7384,0x7389,0x74DC,0x74E6,0x7518,0x751F,0x7528,0x7529,
-0x7530,0x7531,0x7532,0x7533,0x758B,0x767D,0x76AE,0x76BF,
-0x76EE,0x77DB,0x77E2,0x77F3,0x793A,0x79BE,0x7A74,0x7ACB,
-0x4E1E,0x4E1F,0x4E52,0x4E53,0x4E69,0x4E99,0x4EA4,0x4EA6,
-0x4EA5,0x4EFF,0x4F09,0x4F19,0x4F0A,0x4F15,0x4F0D,0x4F10,
-0x4F11,0x4F0F,0x4EF2,0x4EF6,0x4EFB,0x4EF0,0x4EF3,0x4EFD,
-0x4F01,0x4F0B,0x5149,0x5147,0x5146,0x5148,0x5168, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5171,0x518D,0x51B0,0x5217,0x5211,0x5212,0x520E,0x5216,
-0x52A3,0x5308,0x5321,0x5320,0x5370,0x5371,0x5409,0x540F,
-0x540C,0x540A,0x5410,0x5401,0x540B,0x5404,0x5411,0x540D,
-0x5408,0x5403,0x540E,0x5406,0x5412,0x56E0,0x56DE,0x56DD,
-0x5733,0x5730,0x5728,0x572D,0x572C,0x572F,0x5729,0x5919,
-0x591A,0x5937,0x5938,0x5984,0x5978,0x5983,0x597D,0x5979,
-0x5982,0x5981,0x5B57,0x5B58,0x5B87,0x5B88,0x5B85,0x5B89,
-0x5BFA,0x5C16,0x5C79,0x5DDE,0x5E06,0x5E76,0x5E74, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5F0F,0x5F1B,0x5FD9,0x5FD6,0x620E,0x620C,0x620D,
-0x6210,0x6263,0x625B,0x6258,0x6536,0x65E9,0x65E8,0x65EC,
-0x65ED,0x66F2,0x66F3,0x6709,0x673D,0x6734,0x6731,0x6735,
-0x6B21,0x6B64,0x6B7B,0x6C16,0x6C5D,0x6C57,0x6C59,0x6C5F,
-0x6C60,0x6C50,0x6C55,0x6C61,0x6C5B,0x6C4D,0x6C4E,0x7070,
-0x725F,0x725D,0x767E,0x7AF9,0x7C73,0x7CF8,0x7F36,0x7F8A,
-0x7FBD,0x8001,0x8003,0x800C,0x8012,0x8033,0x807F,0x8089,
-0x808B,0x808C,0x81E3,0x81EA,0x81F3,0x81FC,0x820C,0x821B,
-0x821F,0x826E,0x8272,0x827E,0x866B,0x8840,0x884C,0x8863,
-0x897F,0x9621,0x4E32,0x4EA8,0x4F4D,0x4F4F,0x4F47,0x4F57,
-0x4F5E,0x4F34,0x4F5B,0x4F55,0x4F30,0x4F50,0x4F51,0x4F3D,
-0x4F3A,0x4F38,0x4F43,0x4F54,0x4F3C,0x4F46,0x4F63, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4F5C,0x4F60,0x4F2F,0x4F4E,0x4F36,0x4F59,0x4F5D,0x4F48,
-0x4F5A,0x514C,0x514B,0x514D,0x5175,0x51B6,0x51B7,0x5225,
-0x5224,0x5229,0x522A,0x5228,0x52AB,0x52A9,0x52AA,0x52AC,
-0x5323,0x5373,0x5375,0x541D,0x542D,0x541E,0x543E,0x5426,
-0x544E,0x5427,0x5446,0x5443,0x5433,0x5448,0x5442,0x541B,
-0x5429,0x544A,0x5439,0x543B,0x5438,0x542E,0x5435,0x5436,
-0x5420,0x543C,0x5440,0x5431,0x542B,0x541F,0x542C,0x56EA,
-0x56F0,0x56E4,0x56EB,0x574A,0x5751,0x5740,0x574D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5747,0x574E,0x573E,0x5750,0x574F,0x573B,0x58EF,
-0x593E,0x599D,0x5992,0x59A8,0x599E,0x59A3,0x5999,0x5996,
-0x598D,0x59A4,0x5993,0x598A,0x59A5,0x5B5D,0x5B5C,0x5B5A,
-0x5B5B,0x5B8C,0x5B8B,0x5B8F,0x5C2C,0x5C40,0x5C41,0x5C3F,
-0x5C3E,0x5C90,0x5C91,0x5C94,0x5C8C,0x5DEB,0x5E0C,0x5E8F,
-0x5E87,0x5E8A,0x5EF7,0x5F04,0x5F1F,0x5F64,0x5F62,0x5F77,
-0x5F79,0x5FD8,0x5FCC,0x5FD7,0x5FCD,0x5FF1,0x5FEB,0x5FF8,
-0x5FEA,0x6212,0x6211,0x6284,0x6297,0x6296,0x6280,0x6276,
-0x6289,0x626D,0x628A,0x627C,0x627E,0x6279,0x6273,0x6292,
-0x626F,0x6298,0x626E,0x6295,0x6293,0x6291,0x6286,0x6539,
-0x653B,0x6538,0x65F1,0x66F4,0x675F,0x674E,0x674F,0x6750,
-0x6751,0x675C,0x6756,0x675E,0x6749,0x6746,0x6760, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6753,0x6757,0x6B65,0x6BCF,0x6C42,0x6C5E,0x6C99,0x6C81,
-0x6C88,0x6C89,0x6C85,0x6C9B,0x6C6A,0x6C7A,0x6C90,0x6C70,
-0x6C8C,0x6C68,0x6C96,0x6C92,0x6C7D,0x6C83,0x6C72,0x6C7E,
-0x6C74,0x6C86,0x6C76,0x6C8D,0x6C94,0x6C98,0x6C82,0x7076,
-0x707C,0x707D,0x7078,0x7262,0x7261,0x7260,0x72C4,0x72C2,
-0x7396,0x752C,0x752B,0x7537,0x7538,0x7682,0x76EF,0x77E3,
-0x79C1,0x79C0,0x79BF,0x7A76,0x7CFB,0x7F55,0x8096,0x8093,
-0x809D,0x8098,0x809B,0x809A,0x80B2,0x826F,0x8292, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x828B,0x828D,0x898B,0x89D2,0x8A00,0x8C37,0x8C46,
-0x8C55,0x8C9D,0x8D64,0x8D70,0x8DB3,0x8EAB,0x8ECA,0x8F9B,
-0x8FB0,0x8FC2,0x8FC6,0x8FC5,0x8FC4,0x5DE1,0x9091,0x90A2,
-0x90AA,0x90A6,0x90A3,0x9149,0x91C6,0x91CC,0x9632,0x962E,
-0x9631,0x962A,0x962C,0x4E26,0x4E56,0x4E73,0x4E8B,0x4E9B,
-0x4E9E,0x4EAB,0x4EAC,0x4F6F,0x4F9D,0x4F8D,0x4F73,0x4F7F,
-0x4F6C,0x4F9B,0x4F8B,0x4F86,0x4F83,0x4F70,0x4F75,0x4F88,
-0x4F69,0x4F7B,0x4F96,0x4F7E,0x4F8F,0x4F91,0x4F7A,0x5154,
-0x5152,0x5155,0x5169,0x5177,0x5176,0x5178,0x51BD,0x51FD,
-0x523B,0x5238,0x5237,0x523A,0x5230,0x522E,0x5236,0x5241,
-0x52BE,0x52BB,0x5352,0x5354,0x5353,0x5351,0x5366,0x5377,
-0x5378,0x5379,0x53D6,0x53D4,0x53D7,0x5473,0x5475, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5496,0x5478,0x5495,0x5480,0x547B,0x5477,0x5484,0x5492,
-0x5486,0x547C,0x5490,0x5471,0x5476,0x548C,0x549A,0x5462,
-0x5468,0x548B,0x547D,0x548E,0x56FA,0x5783,0x5777,0x576A,
-0x5769,0x5761,0x5766,0x5764,0x577C,0x591C,0x5949,0x5947,
-0x5948,0x5944,0x5954,0x59BE,0x59BB,0x59D4,0x59B9,0x59AE,
-0x59D1,0x59C6,0x59D0,0x59CD,0x59CB,0x59D3,0x59CA,0x59AF,
-0x59B3,0x59D2,0x59C5,0x5B5F,0x5B64,0x5B63,0x5B97,0x5B9A,
-0x5B98,0x5B9C,0x5B99,0x5B9B,0x5C1A,0x5C48,0x5C45, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5C46,0x5CB7,0x5CA1,0x5CB8,0x5CA9,0x5CAB,0x5CB1,
-0x5CB3,0x5E18,0x5E1A,0x5E16,0x5E15,0x5E1B,0x5E11,0x5E78,
-0x5E9A,0x5E97,0x5E9C,0x5E95,0x5E96,0x5EF6,0x5F26,0x5F27,
-0x5F29,0x5F80,0x5F81,0x5F7F,0x5F7C,0x5FDD,0x5FE0,0x5FFD,
-0x5FF5,0x5FFF,0x600F,0x6014,0x602F,0x6035,0x6016,0x602A,
-0x6015,0x6021,0x6027,0x6029,0x602B,0x601B,0x6216,0x6215,
-0x623F,0x623E,0x6240,0x627F,0x62C9,0x62CC,0x62C4,0x62BF,
-0x62C2,0x62B9,0x62D2,0x62DB,0x62AB,0x62D3,0x62D4,0x62CB,
-0x62C8,0x62A8,0x62BD,0x62BC,0x62D0,0x62D9,0x62C7,0x62CD,
-0x62B5,0x62DA,0x62B1,0x62D8,0x62D6,0x62D7,0x62C6,0x62AC,
-0x62CE,0x653E,0x65A7,0x65BC,0x65FA,0x6614,0x6613,0x660C,
-0x6606,0x6602,0x660E,0x6600,0x660F,0x6615,0x660A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6607,0x670D,0x670B,0x676D,0x678B,0x6795,0x6771,0x679C,
-0x6773,0x6777,0x6787,0x679D,0x6797,0x676F,0x6770,0x677F,
-0x6789,0x677E,0x6790,0x6775,0x679A,0x6793,0x677C,0x676A,
-0x6772,0x6B23,0x6B66,0x6B67,0x6B7F,0x6C13,0x6C1B,0x6CE3,
-0x6CE8,0x6CF3,0x6CB1,0x6CCC,0x6CE5,0x6CB3,0x6CBD,0x6CBE,
-0x6CBC,0x6CE2,0x6CAB,0x6CD5,0x6CD3,0x6CB8,0x6CC4,0x6CB9,
-0x6CC1,0x6CAE,0x6CD7,0x6CC5,0x6CF1,0x6CBF,0x6CBB,0x6CE1,
-0x6CDB,0x6CCA,0x6CAC,0x6CEF,0x6CDC,0x6CD6,0x6CE0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7095,0x708E,0x7092,0x708A,0x7099,0x722C,0x722D,
-0x7238,0x7248,0x7267,0x7269,0x72C0,0x72CE,0x72D9,0x72D7,
-0x72D0,0x73A9,0x73A8,0x739F,0x73AB,0x73A5,0x753D,0x759D,
-0x7599,0x759A,0x7684,0x76C2,0x76F2,0x76F4,0x77E5,0x77FD,
-0x793E,0x7940,0x7941,0x79C9,0x79C8,0x7A7A,0x7A79,0x7AFA,
-0x7CFE,0x7F54,0x7F8C,0x7F8B,0x8005,0x80BA,0x80A5,0x80A2,
-0x80B1,0x80A1,0x80AB,0x80A9,0x80B4,0x80AA,0x80AF,0x81E5,
-0x81FE,0x820D,0x82B3,0x829D,0x8299,0x82AD,0x82BD,0x829F,
-0x82B9,0x82B1,0x82AC,0x82A5,0x82AF,0x82B8,0x82A3,0x82B0,
-0x82BE,0x82B7,0x864E,0x8671,0x521D,0x8868,0x8ECB,0x8FCE,
-0x8FD4,0x8FD1,0x90B5,0x90B8,0x90B1,0x90B6,0x91C7,0x91D1,
-0x9577,0x9580,0x961C,0x9640,0x963F,0x963B,0x9644, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9642,0x96B9,0x96E8,0x9752,0x975E,0x4E9F,0x4EAD,0x4EAE,
-0x4FE1,0x4FB5,0x4FAF,0x4FBF,0x4FE0,0x4FD1,0x4FCF,0x4FDD,
-0x4FC3,0x4FB6,0x4FD8,0x4FDF,0x4FCA,0x4FD7,0x4FAE,0x4FD0,
-0x4FC4,0x4FC2,0x4FDA,0x4FCE,0x4FDE,0x4FB7,0x5157,0x5192,
-0x5191,0x51A0,0x524E,0x5243,0x524A,0x524D,0x524C,0x524B,
-0x5247,0x52C7,0x52C9,0x52C3,0x52C1,0x530D,0x5357,0x537B,
-0x539A,0x53DB,0x54AC,0x54C0,0x54A8,0x54CE,0x54C9,0x54B8,
-0x54A6,0x54B3,0x54C7,0x54C2,0x54BD,0x54AA,0x54C1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x54C4,0x54C8,0x54AF,0x54AB,0x54B1,0x54BB,0x54A9,
-0x54A7,0x54BF,0x56FF,0x5782,0x578B,0x57A0,0x57A3,0x57A2,
-0x57CE,0x57AE,0x5793,0x5955,0x5951,0x594F,0x594E,0x5950,
-0x59DC,0x59D8,0x59FF,0x59E3,0x59E8,0x5A03,0x59E5,0x59EA,
-0x59DA,0x59E6,0x5A01,0x59FB,0x5B69,0x5BA3,0x5BA6,0x5BA4,
-0x5BA2,0x5BA5,0x5C01,0x5C4E,0x5C4F,0x5C4D,0x5C4B,0x5CD9,
-0x5CD2,0x5DF7,0x5E1D,0x5E25,0x5E1F,0x5E7D,0x5EA0,0x5EA6,
-0x5EFA,0x5F08,0x5F2D,0x5F65,0x5F88,0x5F85,0x5F8A,0x5F8B,
-0x5F87,0x5F8C,0x5F89,0x6012,0x601D,0x6020,0x6025,0x600E,
-0x6028,0x604D,0x6070,0x6068,0x6062,0x6046,0x6043,0x606C,
-0x606B,0x606A,0x6064,0x6241,0x62DC,0x6316,0x6309,0x62FC,
-0x62ED,0x6301,0x62EE,0x62FD,0x6307,0x62F1,0x62F7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x62EF,0x62EC,0x62FE,0x62F4,0x6311,0x6302,0x653F,0x6545,
-0x65AB,0x65BD,0x65E2,0x6625,0x662D,0x6620,0x6627,0x662F,
-0x661F,0x6628,0x6631,0x6624,0x66F7,0x67FF,0x67D3,0x67F1,
-0x67D4,0x67D0,0x67EC,0x67B6,0x67AF,0x67F5,0x67E9,0x67EF,
-0x67C4,0x67D1,0x67B4,0x67DA,0x67E5,0x67B8,0x67CF,0x67DE,
-0x67F3,0x67B0,0x67D9,0x67E2,0x67DD,0x67D2,0x6B6A,0x6B83,
-0x6B86,0x6BB5,0x6BD2,0x6BD7,0x6C1F,0x6CC9,0x6D0B,0x6D32,
-0x6D2A,0x6D41,0x6D25,0x6D0C,0x6D31,0x6D1E,0x6D17, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6D3B,0x6D3D,0x6D3E,0x6D36,0x6D1B,0x6CF5,0x6D39,
-0x6D27,0x6D38,0x6D29,0x6D2E,0x6D35,0x6D0E,0x6D2B,0x70AB,
-0x70BA,0x70B3,0x70AC,0x70AF,0x70AD,0x70B8,0x70AE,0x70A4,
-0x7230,0x7272,0x726F,0x7274,0x72E9,0x72E0,0x72E1,0x73B7,
-0x73CA,0x73BB,0x73B2,0x73CD,0x73C0,0x73B3,0x751A,0x752D,
-0x754F,0x754C,0x754E,0x754B,0x75AB,0x75A4,0x75A5,0x75A2,
-0x75A3,0x7678,0x7686,0x7687,0x7688,0x76C8,0x76C6,0x76C3,
-0x76C5,0x7701,0x76F9,0x76F8,0x7709,0x770B,0x76FE,0x76FC,
-0x7707,0x77DC,0x7802,0x7814,0x780C,0x780D,0x7946,0x7949,
-0x7948,0x7947,0x79B9,0x79BA,0x79D1,0x79D2,0x79CB,0x7A7F,
-0x7A81,0x7AFF,0x7AFD,0x7C7D,0x7D02,0x7D05,0x7D00,0x7D09,
-0x7D07,0x7D04,0x7D06,0x7F38,0x7F8E,0x7FBF,0x8004, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8010,0x800D,0x8011,0x8036,0x80D6,0x80E5,0x80DA,0x80C3,
-0x80C4,0x80CC,0x80E1,0x80DB,0x80CE,0x80DE,0x80E4,0x80DD,
-0x81F4,0x8222,0x82E7,0x8303,0x8305,0x82E3,0x82DB,0x82E6,
-0x8304,0x82E5,0x8302,0x8309,0x82D2,0x82D7,0x82F1,0x8301,
-0x82DC,0x82D4,0x82D1,0x82DE,0x82D3,0x82DF,0x82EF,0x8306,
-0x8650,0x8679,0x867B,0x867A,0x884D,0x886B,0x8981,0x89D4,
-0x8A08,0x8A02,0x8A03,0x8C9E,0x8CA0,0x8D74,0x8D73,0x8DB4,
-0x8ECD,0x8ECC,0x8FF0,0x8FE6,0x8FE2,0x8FEA,0x8FE5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8FED,0x8FEB,0x8FE4,0x8FE8,0x90CA,0x90CE,0x90C1,
-0x90C3,0x914B,0x914A,0x91CD,0x9582,0x9650,0x964B,0x964C,
-0x964D,0x9762,0x9769,0x97CB,0x97ED,0x97F3,0x9801,0x98A8,
-0x98DB,0x98DF,0x9996,0x9999,0x4E58,0x4EB3,0x500C,0x500D,
-0x5023,0x4FEF,0x5026,0x5025,0x4FF8,0x5029,0x5016,0x5006,
-0x503C,0x501F,0x501A,0x5012,0x5011,0x4FFA,0x5000,0x5014,
-0x5028,0x4FF1,0x5021,0x500B,0x5019,0x5018,0x4FF3,0x4FEE,
-0x502D,0x502A,0x4FFE,0x502B,0x5009,0x517C,0x51A4,0x51A5,
-0x51A2,0x51CD,0x51CC,0x51C6,0x51CB,0x5256,0x525C,0x5254,
-0x525B,0x525D,0x532A,0x537F,0x539F,0x539D,0x53DF,0x54E8,
-0x5510,0x5501,0x5537,0x54FC,0x54E5,0x54F2,0x5506,0x54FA,
-0x5514,0x54E9,0x54ED,0x54E1,0x5509,0x54EE,0x54EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x54E6,0x5527,0x5507,0x54FD,0x550F,0x5703,0x5704,0x57C2,
-0x57D4,0x57CB,0x57C3,0x5809,0x590F,0x5957,0x5958,0x595A,
-0x5A11,0x5A18,0x5A1C,0x5A1F,0x5A1B,0x5A13,0x59EC,0x5A20,
-0x5A23,0x5A29,0x5A25,0x5A0C,0x5A09,0x5B6B,0x5C58,0x5BB0,
-0x5BB3,0x5BB6,0x5BB4,0x5BAE,0x5BB5,0x5BB9,0x5BB8,0x5C04,
-0x5C51,0x5C55,0x5C50,0x5CED,0x5CFD,0x5CFB,0x5CEA,0x5CE8,
-0x5CF0,0x5CF6,0x5D01,0x5CF4,0x5DEE,0x5E2D,0x5E2B,0x5EAB,
-0x5EAD,0x5EA7,0x5F31,0x5F92,0x5F91,0x5F90,0x6059, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6063,0x6065,0x6050,0x6055,0x606D,0x6069,0x606F,
-0x6084,0x609F,0x609A,0x608D,0x6094,0x608C,0x6085,0x6096,
-0x6247,0x62F3,0x6308,0x62FF,0x634E,0x633E,0x632F,0x6355,
-0x6342,0x6346,0x634F,0x6349,0x633A,0x6350,0x633D,0x632A,
-0x632B,0x6328,0x634D,0x634C,0x6548,0x6549,0x6599,0x65C1,
-0x65C5,0x6642,0x6649,0x664F,0x6643,0x6652,0x664C,0x6645,
-0x6641,0x66F8,0x6714,0x6715,0x6717,0x6821,0x6838,0x6848,
-0x6846,0x6853,0x6839,0x6842,0x6854,0x6829,0x68B3,0x6817,
-0x684C,0x6851,0x683D,0x67F4,0x6850,0x6840,0x683C,0x6843,
-0x682A,0x6845,0x6813,0x6818,0x6841,0x6B8A,0x6B89,0x6BB7,
-0x6C23,0x6C27,0x6C28,0x6C26,0x6C24,0x6CF0,0x6D6A,0x6D95,
-0x6D88,0x6D87,0x6D66,0x6D78,0x6D77,0x6D59,0x6D93, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6D6C,0x6D89,0x6D6E,0x6D5A,0x6D74,0x6D69,0x6D8C,0x6D8A,
-0x6D79,0x6D85,0x6D65,0x6D94,0x70CA,0x70D8,0x70E4,0x70D9,
-0x70C8,0x70CF,0x7239,0x7279,0x72FC,0x72F9,0x72FD,0x72F8,
-0x72F7,0x7386,0x73ED,0x7409,0x73EE,0x73E0,0x73EA,0x73DE,
-0x7554,0x755D,0x755C,0x755A,0x7559,0x75BE,0x75C5,0x75C7,
-0x75B2,0x75B3,0x75BD,0x75BC,0x75B9,0x75C2,0x75B8,0x768B,
-0x76B0,0x76CA,0x76CD,0x76CE,0x7729,0x771F,0x7720,0x7728,
-0x77E9,0x7830,0x7827,0x7838,0x781D,0x7834,0x7837, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7825,0x782D,0x7820,0x781F,0x7832,0x7955,0x7950,
-0x7960,0x795F,0x7956,0x795E,0x795D,0x7957,0x795A,0x79E4,
-0x79E3,0x79E7,0x79DF,0x79E6,0x79E9,0x79D8,0x7A84,0x7A88,
-0x7AD9,0x7B06,0x7B11,0x7C89,0x7D21,0x7D17,0x7D0B,0x7D0A,
-0x7D20,0x7D22,0x7D14,0x7D10,0x7D15,0x7D1A,0x7D1C,0x7D0D,
-0x7D19,0x7D1B,0x7F3A,0x7F5F,0x7F94,0x7FC5,0x7FC1,0x8006,
-0x8018,0x8015,0x8019,0x8017,0x803D,0x803F,0x80F1,0x8102,
-0x80F0,0x8105,0x80ED,0x80F4,0x8106,0x80F8,0x80F3,0x8108,
-0x80FD,0x810A,0x80FC,0x80EF,0x81ED,0x81EC,0x8200,0x8210,
-0x822A,0x822B,0x8228,0x822C,0x82BB,0x832B,0x8352,0x8354,
-0x834A,0x8338,0x8350,0x8349,0x8335,0x8334,0x834F,0x8332,
-0x8339,0x8336,0x8317,0x8340,0x8331,0x8328,0x8343, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8654,0x868A,0x86AA,0x8693,0x86A4,0x86A9,0x868C,0x86A3,
-0x869C,0x8870,0x8877,0x8881,0x8882,0x887D,0x8879,0x8A18,
-0x8A10,0x8A0E,0x8A0C,0x8A15,0x8A0A,0x8A17,0x8A13,0x8A16,
-0x8A0F,0x8A11,0x8C48,0x8C7A,0x8C79,0x8CA1,0x8CA2,0x8D77,
-0x8EAC,0x8ED2,0x8ED4,0x8ECF,0x8FB1,0x9001,0x9006,0x8FF7,
-0x9000,0x8FFA,0x8FF4,0x9003,0x8FFD,0x9005,0x8FF8,0x9095,
-0x90E1,0x90DD,0x90E2,0x9152,0x914D,0x914C,0x91D8,0x91DD,
-0x91D7,0x91DC,0x91D9,0x9583,0x9662,0x9663,0x9661, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x965B,0x965D,0x9664,0x9658,0x965E,0x96BB,0x98E2,
-0x99AC,0x9AA8,0x9AD8,0x9B25,0x9B32,0x9B3C,0x4E7E,0x507A,
-0x507D,0x505C,0x5047,0x5043,0x504C,0x505A,0x5049,0x5065,
-0x5076,0x504E,0x5055,0x5075,0x5074,0x5077,0x504F,0x500F,
-0x506F,0x506D,0x515C,0x5195,0x51F0,0x526A,0x526F,0x52D2,
-0x52D9,0x52D8,0x52D5,0x5310,0x530F,0x5319,0x533F,0x5340,
-0x533E,0x53C3,0x66FC,0x5546,0x556A,0x5566,0x5544,0x555E,
-0x5561,0x5543,0x554A,0x5531,0x5556,0x554F,0x5555,0x552F,
-0x5564,0x5538,0x552E,0x555C,0x552C,0x5563,0x5533,0x5541,
-0x5557,0x5708,0x570B,0x5709,0x57DF,0x5805,0x580A,0x5806,
-0x57E0,0x57E4,0x57FA,0x5802,0x5835,0x57F7,0x57F9,0x5920,
-0x5962,0x5A36,0x5A41,0x5A49,0x5A66,0x5A6A,0x5A40, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5A3C,0x5A62,0x5A5A,0x5A46,0x5A4A,0x5B70,0x5BC7,0x5BC5,
-0x5BC4,0x5BC2,0x5BBF,0x5BC6,0x5C09,0x5C08,0x5C07,0x5C60,
-0x5C5C,0x5C5D,0x5D07,0x5D06,0x5D0E,0x5D1B,0x5D16,0x5D22,
-0x5D11,0x5D29,0x5D14,0x5D19,0x5D24,0x5D27,0x5D17,0x5DE2,
-0x5E38,0x5E36,0x5E33,0x5E37,0x5EB7,0x5EB8,0x5EB6,0x5EB5,
-0x5EBE,0x5F35,0x5F37,0x5F57,0x5F6C,0x5F69,0x5F6B,0x5F97,
-0x5F99,0x5F9E,0x5F98,0x5FA1,0x5FA0,0x5F9C,0x607F,0x60A3,
-0x6089,0x60A0,0x60A8,0x60CB,0x60B4,0x60E6,0x60BD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x60C5,0x60BB,0x60B5,0x60DC,0x60BC,0x60D8,0x60D5,
-0x60C6,0x60DF,0x60B8,0x60DA,0x60C7,0x621A,0x621B,0x6248,
-0x63A0,0x63A7,0x6372,0x6396,0x63A2,0x63A5,0x6377,0x6367,
-0x6398,0x63AA,0x6371,0x63A9,0x6389,0x6383,0x639B,0x636B,
-0x63A8,0x6384,0x6388,0x6399,0x63A1,0x63AC,0x6392,0x638F,
-0x6380,0x637B,0x6369,0x6368,0x637A,0x655D,0x6556,0x6551,
-0x6559,0x6557,0x555F,0x654F,0x6558,0x6555,0x6554,0x659C,
-0x659B,0x65AC,0x65CF,0x65CB,0x65CC,0x65CE,0x665D,0x665A,
-0x6664,0x6668,0x6666,0x665E,0x66F9,0x52D7,0x671B,0x6881,
-0x68AF,0x68A2,0x6893,0x68B5,0x687F,0x6876,0x68B1,0x68A7,
-0x6897,0x68B0,0x6883,0x68C4,0x68AD,0x6886,0x6885,0x6894,
-0x689D,0x68A8,0x689F,0x68A1,0x6882,0x6B32,0x6BBA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6BEB,0x6BEC,0x6C2B,0x6D8E,0x6DBC,0x6DF3,0x6DD9,0x6DB2,
-0x6DE1,0x6DCC,0x6DE4,0x6DFB,0x6DFA,0x6E05,0x6DC7,0x6DCB,
-0x6DAF,0x6DD1,0x6DAE,0x6DDE,0x6DF9,0x6DB8,0x6DF7,0x6DF5,
-0x6DC5,0x6DD2,0x6E1A,0x6DB5,0x6DDA,0x6DEB,0x6DD8,0x6DEA,
-0x6DF1,0x6DEE,0x6DE8,0x6DC6,0x6DC4,0x6DAA,0x6DEC,0x6DBF,
-0x6DE6,0x70F9,0x7109,0x710A,0x70FD,0x70EF,0x723D,0x727D,
-0x7281,0x731C,0x731B,0x7316,0x7313,0x7319,0x7387,0x7405,
-0x740A,0x7403,0x7406,0x73FE,0x740D,0x74E0,0x74F6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x74F7,0x751C,0x7522,0x7565,0x7566,0x7562,0x7570,
-0x758F,0x75D4,0x75D5,0x75B5,0x75CA,0x75CD,0x768E,0x76D4,
-0x76D2,0x76DB,0x7737,0x773E,0x773C,0x7736,0x7738,0x773A,
-0x786B,0x7843,0x784E,0x7965,0x7968,0x796D,0x79FB,0x7A92,
-0x7A95,0x7B20,0x7B28,0x7B1B,0x7B2C,0x7B26,0x7B19,0x7B1E,
-0x7B2E,0x7C92,0x7C97,0x7C95,0x7D46,0x7D43,0x7D71,0x7D2E,
-0x7D39,0x7D3C,0x7D40,0x7D30,0x7D33,0x7D44,0x7D2F,0x7D42,
-0x7D32,0x7D31,0x7F3D,0x7F9E,0x7F9A,0x7FCC,0x7FCE,0x7FD2,
-0x801C,0x804A,0x8046,0x812F,0x8116,0x8123,0x812B,0x8129,
-0x8130,0x8124,0x8202,0x8235,0x8237,0x8236,0x8239,0x838E,
-0x839E,0x8398,0x8378,0x83A2,0x8396,0x83BD,0x83AB,0x8392,
-0x838A,0x8393,0x8389,0x83A0,0x8377,0x837B,0x837C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8386,0x83A7,0x8655,0x5F6A,0x86C7,0x86C0,0x86B6,0x86C4,
-0x86B5,0x86C6,0x86CB,0x86B1,0x86AF,0x86C9,0x8853,0x889E,
-0x8888,0x88AB,0x8892,0x8896,0x888D,0x888B,0x8993,0x898F,
-0x8A2A,0x8A1D,0x8A23,0x8A25,0x8A31,0x8A2D,0x8A1F,0x8A1B,
-0x8A22,0x8C49,0x8C5A,0x8CA9,0x8CAC,0x8CAB,0x8CA8,0x8CAA,
-0x8CA7,0x8D67,0x8D66,0x8DBE,0x8DBA,0x8EDB,0x8EDF,0x9019,
-0x900D,0x901A,0x9017,0x9023,0x901F,0x901D,0x9010,0x9015,
-0x901E,0x9020,0x900F,0x9022,0x9016,0x901B,0x9014, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x90E8,0x90ED,0x90FD,0x9157,0x91CE,0x91F5,0x91E6,
-0x91E3,0x91E7,0x91ED,0x91E9,0x9589,0x966A,0x9675,0x9673,
-0x9678,0x9670,0x9674,0x9676,0x9677,0x966C,0x96C0,0x96EA,
-0x96E9,0x7AE0,0x7ADF,0x9802,0x9803,0x9B5A,0x9CE5,0x9E75,
-0x9E7F,0x9EA5,0x9EBB,0x50A2,0x508D,0x5085,0x5099,0x5091,
-0x5080,0x5096,0x5098,0x509A,0x6700,0x51F1,0x5272,0x5274,
-0x5275,0x5269,0x52DE,0x52DD,0x52DB,0x535A,0x53A5,0x557B,
-0x5580,0x55A7,0x557C,0x558A,0x559D,0x5598,0x5582,0x559C,
-0x55AA,0x5594,0x5587,0x558B,0x5583,0x55B3,0x55AE,0x559F,
-0x553E,0x55B2,0x559A,0x55BB,0x55AC,0x55B1,0x557E,0x5589,
-0x55AB,0x5599,0x570D,0x582F,0x582A,0x5834,0x5824,0x5830,
-0x5831,0x5821,0x581D,0x5820,0x58F9,0x58FA,0x5960, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5A77,0x5A9A,0x5A7F,0x5A92,0x5A9B,0x5AA7,0x5B73,0x5B71,
-0x5BD2,0x5BCC,0x5BD3,0x5BD0,0x5C0A,0x5C0B,0x5C31,0x5D4C,
-0x5D50,0x5D34,0x5D47,0x5DFD,0x5E45,0x5E3D,0x5E40,0x5E43,
-0x5E7E,0x5ECA,0x5EC1,0x5EC2,0x5EC4,0x5F3C,0x5F6D,0x5FA9,
-0x5FAA,0x5FA8,0x60D1,0x60E1,0x60B2,0x60B6,0x60E0,0x611C,
-0x6123,0x60FA,0x6115,0x60F0,0x60FB,0x60F4,0x6168,0x60F1,
-0x610E,0x60F6,0x6109,0x6100,0x6112,0x621F,0x6249,0x63A3,
-0x638C,0x63CF,0x63C0,0x63E9,0x63C9,0x63C6,0x63CD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x63D2,0x63E3,0x63D0,0x63E1,0x63D6,0x63ED,0x63EE,
-0x6376,0x63F4,0x63EA,0x63DB,0x6452,0x63DA,0x63F9,0x655E,
-0x6566,0x6562,0x6563,0x6591,0x6590,0x65AF,0x666E,0x6670,
-0x6674,0x6676,0x666F,0x6691,0x667A,0x667E,0x6677,0x66FE,
-0x66FF,0x671F,0x671D,0x68FA,0x68D5,0x68E0,0x68D8,0x68D7,
-0x6905,0x68DF,0x68F5,0x68EE,0x68E7,0x68F9,0x68D2,0x68F2,
-0x68E3,0x68CB,0x68CD,0x690D,0x6912,0x690E,0x68C9,0x68DA,
-0x696E,0x68FB,0x6B3E,0x6B3A,0x6B3D,0x6B98,0x6B96,0x6BBC,
-0x6BEF,0x6C2E,0x6C2F,0x6C2C,0x6E2F,0x6E38,0x6E54,0x6E21,
-0x6E32,0x6E67,0x6E4A,0x6E20,0x6E25,0x6E23,0x6E1B,0x6E5B,
-0x6E58,0x6E24,0x6E56,0x6E6E,0x6E2D,0x6E26,0x6E6F,0x6E34,
-0x6E4D,0x6E3A,0x6E2C,0x6E43,0x6E1D,0x6E3E,0x6ECB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6E89,0x6E19,0x6E4E,0x6E63,0x6E44,0x6E72,0x6E69,0x6E5F,
-0x7119,0x711A,0x7126,0x7130,0x7121,0x7136,0x716E,0x711C,
-0x724C,0x7284,0x7280,0x7336,0x7325,0x7334,0x7329,0x743A,
-0x742A,0x7433,0x7422,0x7425,0x7435,0x7436,0x7434,0x742F,
-0x741B,0x7426,0x7428,0x7525,0x7526,0x756B,0x756A,0x75E2,
-0x75DB,0x75E3,0x75D9,0x75D8,0x75DE,0x75E0,0x767B,0x767C,
-0x7696,0x7693,0x76B4,0x76DC,0x774F,0x77ED,0x785D,0x786C,
-0x786F,0x7A0D,0x7A08,0x7A0B,0x7A05,0x7A00,0x7A98, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7A97,0x7A96,0x7AE5,0x7AE3,0x7B49,0x7B56,0x7B46,
-0x7B50,0x7B52,0x7B54,0x7B4D,0x7B4B,0x7B4F,0x7B51,0x7C9F,
-0x7CA5,0x7D5E,0x7D50,0x7D68,0x7D55,0x7D2B,0x7D6E,0x7D72,
-0x7D61,0x7D66,0x7D62,0x7D70,0x7D73,0x5584,0x7FD4,0x7FD5,
-0x800B,0x8052,0x8085,0x8155,0x8154,0x814B,0x8151,0x814E,
-0x8139,0x8146,0x813E,0x814C,0x8153,0x8174,0x8212,0x821C,
-0x83E9,0x8403,0x83F8,0x840D,0x83E0,0x83C5,0x840B,0x83C1,
-0x83EF,0x83F1,0x83F4,0x8457,0x840A,0x83F0,0x840C,0x83CC,
-0x83FD,0x83F2,0x83CA,0x8438,0x840E,0x8404,0x83DC,0x8407,
-0x83D4,0x83DF,0x865B,0x86DF,0x86D9,0x86ED,0x86D4,0x86DB,
-0x86E4,0x86D0,0x86DE,0x8857,0x88C1,0x88C2,0x88B1,0x8983,
-0x8996,0x8A3B,0x8A60,0x8A55,0x8A5E,0x8A3C,0x8A41, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8A54,0x8A5B,0x8A50,0x8A46,0x8A34,0x8A3A,0x8A36,0x8A56,
-0x8C61,0x8C82,0x8CAF,0x8CBC,0x8CB3,0x8CBD,0x8CC1,0x8CBB,
-0x8CC0,0x8CB4,0x8CB7,0x8CB6,0x8CBF,0x8CB8,0x8D8A,0x8D85,
-0x8D81,0x8DCE,0x8DDD,0x8DCB,0x8DDA,0x8DD1,0x8DCC,0x8DDB,
-0x8DC6,0x8EFB,0x8EF8,0x8EFC,0x8F9C,0x902E,0x9035,0x9031,
-0x9038,0x9032,0x9036,0x9102,0x90F5,0x9109,0x90FE,0x9163,
-0x9165,0x91CF,0x9214,0x9215,0x9223,0x9209,0x921E,0x920D,
-0x9210,0x9207,0x9211,0x9594,0x958F,0x958B,0x9591, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9593,0x9592,0x958E,0x968A,0x968E,0x968B,0x967D,
-0x9685,0x9686,0x968D,0x9672,0x9684,0x96C1,0x96C5,0x96C4,
-0x96C6,0x96C7,0x96EF,0x96F2,0x97CC,0x9805,0x9806,0x9808,
-0x98E7,0x98EA,0x98EF,0x98E9,0x98F2,0x98ED,0x99AE,0x99AD,
-0x9EC3,0x9ECD,0x9ED1,0x4E82,0x50AD,0x50B5,0x50B2,0x50B3,
-0x50C5,0x50BE,0x50AC,0x50B7,0x50BB,0x50AF,0x50C7,0x527F,
-0x5277,0x527D,0x52DF,0x52E6,0x52E4,0x52E2,0x52E3,0x532F,
-0x55DF,0x55E8,0x55D3,0x55E6,0x55CE,0x55DC,0x55C7,0x55D1,
-0x55E3,0x55E4,0x55EF,0x55DA,0x55E1,0x55C5,0x55C6,0x55E5,
-0x55C9,0x5712,0x5713,0x585E,0x5851,0x5858,0x5857,0x585A,
-0x5854,0x586B,0x584C,0x586D,0x584A,0x5862,0x5852,0x584B,
-0x5967,0x5AC1,0x5AC9,0x5ACC,0x5ABE,0x5ABD,0x5ABC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5AB3,0x5AC2,0x5AB2,0x5D69,0x5D6F,0x5E4C,0x5E79,0x5EC9,
-0x5EC8,0x5F12,0x5F59,0x5FAC,0x5FAE,0x611A,0x610F,0x6148,
-0x611F,0x60F3,0x611B,0x60F9,0x6101,0x6108,0x614E,0x614C,
-0x6144,0x614D,0x613E,0x6134,0x6127,0x610D,0x6106,0x6137,
-0x6221,0x6222,0x6413,0x643E,0x641E,0x642A,0x642D,0x643D,
-0x642C,0x640F,0x641C,0x6414,0x640D,0x6436,0x6416,0x6417,
-0x6406,0x656C,0x659F,0x65B0,0x6697,0x6689,0x6687,0x6688,
-0x6696,0x6684,0x6698,0x668D,0x6703,0x6994,0x696D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x695A,0x6977,0x6960,0x6954,0x6975,0x6930,0x6982,
-0x694A,0x6968,0x696B,0x695E,0x6953,0x6979,0x6986,0x695D,
-0x6963,0x695B,0x6B47,0x6B72,0x6BC0,0x6BBF,0x6BD3,0x6BFD,
-0x6EA2,0x6EAF,0x6ED3,0x6EB6,0x6EC2,0x6E90,0x6E9D,0x6EC7,
-0x6EC5,0x6EA5,0x6E98,0x6EBC,0x6EBA,0x6EAB,0x6ED1,0x6E96,
-0x6E9C,0x6EC4,0x6ED4,0x6EAA,0x6EA7,0x6EB4,0x714E,0x7159,
-0x7169,0x7164,0x7149,0x7167,0x715C,0x716C,0x7166,0x714C,
-0x7165,0x715E,0x7146,0x7168,0x7156,0x723A,0x7252,0x7337,
-0x7345,0x733F,0x733E,0x746F,0x745A,0x7455,0x745F,0x745E,
-0x7441,0x743F,0x7459,0x745B,0x745C,0x7576,0x7578,0x7600,
-0x75F0,0x7601,0x75F2,0x75F1,0x75FA,0x75FF,0x75F4,0x75F3,
-0x76DE,0x76DF,0x775B,0x776B,0x7766,0x775E,0x7763, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7779,0x776A,0x776C,0x775C,0x7765,0x7768,0x7762,0x77EE,
-0x788E,0x78B0,0x7897,0x7898,0x788C,0x7889,0x787C,0x7891,
-0x7893,0x787F,0x797A,0x797F,0x7981,0x842C,0x79BD,0x7A1C,
-0x7A1A,0x7A20,0x7A14,0x7A1F,0x7A1E,0x7A9F,0x7AA0,0x7B77,
-0x7BC0,0x7B60,0x7B6E,0x7B67,0x7CB1,0x7CB3,0x7CB5,0x7D93,
-0x7D79,0x7D91,0x7D81,0x7D8F,0x7D5B,0x7F6E,0x7F69,0x7F6A,
-0x7F72,0x7FA9,0x7FA8,0x7FA4,0x8056,0x8058,0x8086,0x8084,
-0x8171,0x8170,0x8178,0x8165,0x816E,0x8173,0x816B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8179,0x817A,0x8166,0x8205,0x8247,0x8482,0x8477,
-0x843D,0x8431,0x8475,0x8466,0x846B,0x8449,0x846C,0x845B,
-0x843C,0x8435,0x8461,0x8463,0x8469,0x846D,0x8446,0x865E,
-0x865C,0x865F,0x86F9,0x8713,0x8708,0x8707,0x8700,0x86FE,
-0x86FB,0x8702,0x8703,0x8706,0x870A,0x8859,0x88DF,0x88D4,
-0x88D9,0x88DC,0x88D8,0x88DD,0x88E1,0x88CA,0x88D5,0x88D2,
-0x899C,0x89E3,0x8A6B,0x8A72,0x8A73,0x8A66,0x8A69,0x8A70,
-0x8A87,0x8A7C,0x8A63,0x8AA0,0x8A71,0x8A85,0x8A6D,0x8A62,
-0x8A6E,0x8A6C,0x8A79,0x8A7B,0x8A3E,0x8A68,0x8C62,0x8C8A,
-0x8C89,0x8CCA,0x8CC7,0x8CC8,0x8CC4,0x8CB2,0x8CC3,0x8CC2,
-0x8CC5,0x8DE1,0x8DDF,0x8DE8,0x8DEF,0x8DF3,0x8DFA,0x8DEA,
-0x8DE4,0x8DE6,0x8EB2,0x8F03,0x8F09,0x8EFE,0x8F0A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8F9F,0x8FB2,0x904B,0x904A,0x9053,0x9042,0x9054,0x903C,
-0x9055,0x9050,0x9047,0x904F,0x904E,0x904D,0x9051,0x903E,
-0x9041,0x9112,0x9117,0x916C,0x916A,0x9169,0x91C9,0x9237,
-0x9257,0x9238,0x923D,0x9240,0x923E,0x925B,0x924B,0x9264,
-0x9251,0x9234,0x9249,0x924D,0x9245,0x9239,0x923F,0x925A,
-0x9598,0x9698,0x9694,0x9695,0x96CD,0x96CB,0x96C9,0x96CA,
-0x96F7,0x96FB,0x96F9,0x96F6,0x9756,0x9774,0x9776,0x9810,
-0x9811,0x9813,0x980A,0x9812,0x980C,0x98FC,0x98F4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x98FD,0x98FE,0x99B3,0x99B1,0x99B4,0x9AE1,0x9CE9,
-0x9E82,0x9F0E,0x9F13,0x9F20,0x50E7,0x50EE,0x50E5,0x50D6,
-0x50ED,0x50DA,0x50D5,0x50CF,0x50D1,0x50F1,0x50CE,0x50E9,
-0x5162,0x51F3,0x5283,0x5282,0x5331,0x53AD,0x55FE,0x5600,
-0x561B,0x5617,0x55FD,0x5614,0x5606,0x5609,0x560D,0x560E,
-0x55F7,0x5616,0x561F,0x5608,0x5610,0x55F6,0x5718,0x5716,
-0x5875,0x587E,0x5883,0x5893,0x588A,0x5879,0x5885,0x587D,
-0x58FD,0x5925,0x5922,0x5924,0x596A,0x5969,0x5AE1,0x5AE6,
-0x5AE9,0x5AD7,0x5AD6,0x5AD8,0x5AE3,0x5B75,0x5BDE,0x5BE7,
-0x5BE1,0x5BE5,0x5BE6,0x5BE8,0x5BE2,0x5BE4,0x5BDF,0x5C0D,
-0x5C62,0x5D84,0x5D87,0x5E5B,0x5E63,0x5E55,0x5E57,0x5E54,
-0x5ED3,0x5ED6,0x5F0A,0x5F46,0x5F70,0x5FB9,0x6147, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x613F,0x614B,0x6177,0x6162,0x6163,0x615F,0x615A,0x6158,
-0x6175,0x622A,0x6487,0x6458,0x6454,0x64A4,0x6478,0x645F,
-0x647A,0x6451,0x6467,0x6434,0x646D,0x647B,0x6572,0x65A1,
-0x65D7,0x65D6,0x66A2,0x66A8,0x669D,0x699C,0x69A8,0x6995,
-0x69C1,0x69AE,0x69D3,0x69CB,0x699B,0x69B7,0x69BB,0x69AB,
-0x69B4,0x69D0,0x69CD,0x69AD,0x69CC,0x69A6,0x69C3,0x69A3,
-0x6B49,0x6B4C,0x6C33,0x6F33,0x6F14,0x6EFE,0x6F13,0x6EF4,
-0x6F29,0x6F3E,0x6F20,0x6F2C,0x6F0F,0x6F02,0x6F22, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6EFF,0x6EEF,0x6F06,0x6F31,0x6F38,0x6F32,0x6F23,
-0x6F15,0x6F2B,0x6F2F,0x6F88,0x6F2A,0x6EEC,0x6F01,0x6EF2,
-0x6ECC,0x6EF7,0x7194,0x7199,0x717D,0x718A,0x7184,0x7192,
-0x723E,0x7292,0x7296,0x7344,0x7350,0x7464,0x7463,0x746A,
-0x7470,0x746D,0x7504,0x7591,0x7627,0x760D,0x760B,0x7609,
-0x7613,0x76E1,0x76E3,0x7784,0x777D,0x777F,0x7761,0x78C1,
-0x789F,0x78A7,0x78B3,0x78A9,0x78A3,0x798E,0x798F,0x798D,
-0x7A2E,0x7A31,0x7AAA,0x7AA9,0x7AED,0x7AEF,0x7BA1,0x7B95,
-0x7B8B,0x7B75,0x7B97,0x7B9D,0x7B94,0x7B8F,0x7BB8,0x7B87,
-0x7B84,0x7CB9,0x7CBD,0x7CBE,0x7DBB,0x7DB0,0x7D9C,0x7DBD,
-0x7DBE,0x7DA0,0x7DCA,0x7DB4,0x7DB2,0x7DB1,0x7DBA,0x7DA2,
-0x7DBF,0x7DB5,0x7DB8,0x7DAD,0x7DD2,0x7DC7,0x7DAC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7F70,0x7FE0,0x7FE1,0x7FDF,0x805E,0x805A,0x8087,0x8150,
-0x8180,0x818F,0x8188,0x818A,0x817F,0x8182,0x81E7,0x81FA,
-0x8207,0x8214,0x821E,0x824B,0x84C9,0x84BF,0x84C6,0x84C4,
-0x8499,0x849E,0x84B2,0x849C,0x84CB,0x84B8,0x84C0,0x84D3,
-0x8490,0x84BC,0x84D1,0x84CA,0x873F,0x871C,0x873B,0x8722,
-0x8725,0x8734,0x8718,0x8755,0x8737,0x8729,0x88F3,0x8902,
-0x88F4,0x88F9,0x88F8,0x88FD,0x88E8,0x891A,0x88EF,0x8AA6,
-0x8A8C,0x8A9E,0x8AA3,0x8A8D,0x8AA1,0x8A93,0x8AA4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AAA,0x8AA5,0x8AA8,0x8A98,0x8A91,0x8A9A,0x8AA7,
-0x8C6A,0x8C8D,0x8C8C,0x8CD3,0x8CD1,0x8CD2,0x8D6B,0x8D99,
-0x8D95,0x8DFC,0x8F14,0x8F12,0x8F15,0x8F13,0x8FA3,0x9060,
-0x9058,0x905C,0x9063,0x9059,0x905E,0x9062,0x905D,0x905B,
-0x9119,0x9118,0x911E,0x9175,0x9178,0x9177,0x9174,0x9278,
-0x9280,0x9285,0x9298,0x9296,0x927B,0x9293,0x929C,0x92A8,
-0x927C,0x9291,0x95A1,0x95A8,0x95A9,0x95A3,0x95A5,0x95A4,
-0x9699,0x969C,0x969B,0x96CC,0x96D2,0x9700,0x977C,0x9785,
-0x97F6,0x9817,0x9818,0x98AF,0x98B1,0x9903,0x9905,0x990C,
-0x9909,0x99C1,0x9AAF,0x9AB0,0x9AE6,0x9B41,0x9B42,0x9CF4,
-0x9CF6,0x9CF3,0x9EBC,0x9F3B,0x9F4A,0x5104,0x5100,0x50FB,
-0x50F5,0x50F9,0x5102,0x5108,0x5109,0x5105,0x51DC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5287,0x5288,0x5289,0x528D,0x528A,0x52F0,0x53B2,0x562E,
-0x563B,0x5639,0x5632,0x563F,0x5634,0x5629,0x5653,0x564E,
-0x5657,0x5674,0x5636,0x562F,0x5630,0x5880,0x589F,0x589E,
-0x58B3,0x589C,0x58AE,0x58A9,0x58A6,0x596D,0x5B09,0x5AFB,
-0x5B0B,0x5AF5,0x5B0C,0x5B08,0x5BEE,0x5BEC,0x5BE9,0x5BEB,
-0x5C64,0x5C65,0x5D9D,0x5D94,0x5E62,0x5E5F,0x5E61,0x5EE2,
-0x5EDA,0x5EDF,0x5EDD,0x5EE3,0x5EE0,0x5F48,0x5F71,0x5FB7,
-0x5FB5,0x6176,0x6167,0x616E,0x615D,0x6155,0x6182, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x617C,0x6170,0x616B,0x617E,0x61A7,0x6190,0x61AB,
-0x618E,0x61AC,0x619A,0x61A4,0x6194,0x61AE,0x622E,0x6469,
-0x646F,0x6479,0x649E,0x64B2,0x6488,0x6490,0x64B0,0x64A5,
-0x6493,0x6495,0x64A9,0x6492,0x64AE,0x64AD,0x64AB,0x649A,
-0x64AC,0x6499,0x64A2,0x64B3,0x6575,0x6577,0x6578,0x66AE,
-0x66AB,0x66B4,0x66B1,0x6A23,0x6A1F,0x69E8,0x6A01,0x6A1E,
-0x6A19,0x69FD,0x6A21,0x6A13,0x6A0A,0x69F3,0x6A02,0x6A05,
-0x69ED,0x6A11,0x6B50,0x6B4E,0x6BA4,0x6BC5,0x6BC6,0x6F3F,
-0x6F7C,0x6F84,0x6F51,0x6F66,0x6F54,0x6F86,0x6F6D,0x6F5B,
-0x6F78,0x6F6E,0x6F8E,0x6F7A,0x6F70,0x6F64,0x6F97,0x6F58,
-0x6ED5,0x6F6F,0x6F60,0x6F5F,0x719F,0x71AC,0x71B1,0x71A8,
-0x7256,0x729B,0x734E,0x7357,0x7469,0x748B,0x7483, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x747E,0x7480,0x757F,0x7620,0x7629,0x761F,0x7624,0x7626,
-0x7621,0x7622,0x769A,0x76BA,0x76E4,0x778E,0x7787,0x778C,
-0x7791,0x778B,0x78CB,0x78C5,0x78BA,0x78CA,0x78BE,0x78D5,
-0x78BC,0x78D0,0x7A3F,0x7A3C,0x7A40,0x7A3D,0x7A37,0x7A3B,
-0x7AAF,0x7AAE,0x7BAD,0x7BB1,0x7BC4,0x7BB4,0x7BC6,0x7BC7,
-0x7BC1,0x7BA0,0x7BCC,0x7CCA,0x7DE0,0x7DF4,0x7DEF,0x7DFB,
-0x7DD8,0x7DEC,0x7DDD,0x7DE8,0x7DE3,0x7DDA,0x7DDE,0x7DE9,
-0x7D9E,0x7DD9,0x7DF2,0x7DF9,0x7F75,0x7F77,0x7FAF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7FE9,0x8026,0x819B,0x819C,0x819D,0x81A0,0x819A,
-0x8198,0x8517,0x853D,0x851A,0x84EE,0x852C,0x852D,0x8513,
-0x8511,0x8523,0x8521,0x8514,0x84EC,0x8525,0x84FF,0x8506,
-0x8782,0x8774,0x8776,0x8760,0x8766,0x8778,0x8768,0x8759,
-0x8757,0x874C,0x8753,0x885B,0x885D,0x8910,0x8907,0x8912,
-0x8913,0x8915,0x890A,0x8ABC,0x8AD2,0x8AC7,0x8AC4,0x8A95,
-0x8ACB,0x8AF8,0x8AB2,0x8AC9,0x8AC2,0x8ABF,0x8AB0,0x8AD6,
-0x8ACD,0x8AB6,0x8AB9,0x8ADB,0x8C4C,0x8C4E,0x8C6C,0x8CE0,
-0x8CDE,0x8CE6,0x8CE4,0x8CEC,0x8CED,0x8CE2,0x8CE3,0x8CDC,
-0x8CEA,0x8CE1,0x8D6D,0x8D9F,0x8DA3,0x8E2B,0x8E10,0x8E1D,
-0x8E22,0x8E0F,0x8E29,0x8E1F,0x8E21,0x8E1E,0x8EBA,0x8F1D,
-0x8F1B,0x8F1F,0x8F29,0x8F26,0x8F2A,0x8F1C,0x8F1E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8F25,0x9069,0x906E,0x9068,0x906D,0x9077,0x9130,0x912D,
-0x9127,0x9131,0x9187,0x9189,0x918B,0x9183,0x92C5,0x92BB,
-0x92B7,0x92EA,0x92AC,0x92E4,0x92C1,0x92B3,0x92BC,0x92D2,
-0x92C7,0x92F0,0x92B2,0x95AD,0x95B1,0x9704,0x9706,0x9707,
-0x9709,0x9760,0x978D,0x978B,0x978F,0x9821,0x982B,0x981C,
-0x98B3,0x990A,0x9913,0x9912,0x9918,0x99DD,0x99D0,0x99DF,
-0x99DB,0x99D1,0x99D5,0x99D2,0x99D9,0x9AB7,0x9AEE,0x9AEF,
-0x9B27,0x9B45,0x9B44,0x9B77,0x9B6F,0x9D06,0x9D09, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9D03,0x9EA9,0x9EBE,0x9ECE,0x58A8,0x9F52,0x5112,
-0x5118,0x5114,0x5110,0x5115,0x5180,0x51AA,0x51DD,0x5291,
-0x5293,0x52F3,0x5659,0x566B,0x5679,0x5669,0x5664,0x5678,
-0x566A,0x5668,0x5665,0x5671,0x566F,0x566C,0x5662,0x5676,
-0x58C1,0x58BE,0x58C7,0x58C5,0x596E,0x5B1D,0x5B34,0x5B78,
-0x5BF0,0x5C0E,0x5F4A,0x61B2,0x6191,0x61A9,0x618A,0x61CD,
-0x61B6,0x61BE,0x61CA,0x61C8,0x6230,0x64C5,0x64C1,0x64CB,
-0x64BB,0x64BC,0x64DA,0x64C4,0x64C7,0x64C2,0x64CD,0x64BF,
-0x64D2,0x64D4,0x64BE,0x6574,0x66C6,0x66C9,0x66B9,0x66C4,
-0x66C7,0x66B8,0x6A3D,0x6A38,0x6A3A,0x6A59,0x6A6B,0x6A58,
-0x6A39,0x6A44,0x6A62,0x6A61,0x6A4B,0x6A47,0x6A35,0x6A5F,
-0x6A48,0x6B59,0x6B77,0x6C05,0x6FC2,0x6FB1,0x6FA1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6FC3,0x6FA4,0x6FC1,0x6FA7,0x6FB3,0x6FC0,0x6FB9,0x6FB6,
-0x6FA6,0x6FA0,0x6FB4,0x71BE,0x71C9,0x71D0,0x71D2,0x71C8,
-0x71D5,0x71B9,0x71CE,0x71D9,0x71DC,0x71C3,0x71C4,0x7368,
-0x749C,0x74A3,0x7498,0x749F,0x749E,0x74E2,0x750C,0x750D,
-0x7634,0x7638,0x763A,0x76E7,0x76E5,0x77A0,0x779E,0x779F,
-0x77A5,0x78E8,0x78DA,0x78EC,0x78E7,0x79A6,0x7A4D,0x7A4E,
-0x7A46,0x7A4C,0x7A4B,0x7ABA,0x7BD9,0x7C11,0x7BC9,0x7BE4,
-0x7BDB,0x7BE1,0x7BE9,0x7BE6,0x7CD5,0x7CD6,0x7E0A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7E11,0x7E08,0x7E1B,0x7E23,0x7E1E,0x7E1D,0x7E09,
-0x7E10,0x7F79,0x7FB2,0x7FF0,0x7FF1,0x7FEE,0x8028,0x81B3,
-0x81A9,0x81A8,0x81FB,0x8208,0x8258,0x8259,0x854A,0x8559,
-0x8548,0x8568,0x8569,0x8543,0x8549,0x856D,0x856A,0x855E,
-0x8783,0x879F,0x879E,0x87A2,0x878D,0x8861,0x892A,0x8932,
-0x8925,0x892B,0x8921,0x89AA,0x89A6,0x8AE6,0x8AFA,0x8AEB,
-0x8AF1,0x8B00,0x8ADC,0x8AE7,0x8AEE,0x8AFE,0x8B01,0x8B02,
-0x8AF7,0x8AED,0x8AF3,0x8AF6,0x8AFC,0x8C6B,0x8C6D,0x8C93,
-0x8CF4,0x8E44,0x8E31,0x8E34,0x8E42,0x8E39,0x8E35,0x8F3B,
-0x8F2F,0x8F38,0x8F33,0x8FA8,0x8FA6,0x9075,0x9074,0x9078,
-0x9072,0x907C,0x907A,0x9134,0x9192,0x9320,0x9336,0x92F8,
-0x9333,0x932F,0x9322,0x92FC,0x932B,0x9304,0x931A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9310,0x9326,0x9321,0x9315,0x932E,0x9319,0x95BB,0x96A7,
-0x96A8,0x96AA,0x96D5,0x970E,0x9711,0x9716,0x970D,0x9713,
-0x970F,0x975B,0x975C,0x9766,0x9798,0x9830,0x9838,0x983B,
-0x9837,0x982D,0x9839,0x9824,0x9910,0x9928,0x991E,0x991B,
-0x9921,0x991A,0x99ED,0x99E2,0x99F1,0x9AB8,0x9ABC,0x9AFB,
-0x9AED,0x9B28,0x9B91,0x9D15,0x9D23,0x9D26,0x9D28,0x9D12,
-0x9D1B,0x9ED8,0x9ED4,0x9F8D,0x9F9C,0x512A,0x511F,0x5121,
-0x5132,0x52F5,0x568E,0x5680,0x5690,0x5685,0x5687, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x568F,0x58D5,0x58D3,0x58D1,0x58CE,0x5B30,0x5B2A,
-0x5B24,0x5B7A,0x5C37,0x5C68,0x5DBC,0x5DBA,0x5DBD,0x5DB8,
-0x5E6B,0x5F4C,0x5FBD,0x61C9,0x61C2,0x61C7,0x61E6,0x61CB,
-0x6232,0x6234,0x64CE,0x64CA,0x64D8,0x64E0,0x64F0,0x64E6,
-0x64EC,0x64F1,0x64E2,0x64ED,0x6582,0x6583,0x66D9,0x66D6,
-0x6A80,0x6A94,0x6A84,0x6AA2,0x6A9C,0x6ADB,0x6AA3,0x6A7E,
-0x6A97,0x6A90,0x6AA0,0x6B5C,0x6BAE,0x6BDA,0x6C08,0x6FD8,
-0x6FF1,0x6FDF,0x6FE0,0x6FDB,0x6FE4,0x6FEB,0x6FEF,0x6F80,
-0x6FEC,0x6FE1,0x6FE9,0x6FD5,0x6FEE,0x6FF0,0x71E7,0x71DF,
-0x71EE,0x71E6,0x71E5,0x71ED,0x71EC,0x71F4,0x71E0,0x7235,
-0x7246,0x7370,0x7372,0x74A9,0x74B0,0x74A6,0x74A8,0x7646,
-0x7642,0x764C,0x76EA,0x77B3,0x77AA,0x77B0,0x77AC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x77A7,0x77AD,0x77EF,0x78F7,0x78FA,0x78F4,0x78EF,0x7901,
-0x79A7,0x79AA,0x7A57,0x7ABF,0x7C07,0x7C0D,0x7BFE,0x7BF7,
-0x7C0C,0x7BE0,0x7CE0,0x7CDC,0x7CDE,0x7CE2,0x7CDF,0x7CD9,
-0x7CDD,0x7E2E,0x7E3E,0x7E46,0x7E37,0x7E32,0x7E43,0x7E2B,
-0x7E3D,0x7E31,0x7E45,0x7E41,0x7E34,0x7E39,0x7E48,0x7E35,
-0x7E3F,0x7E2F,0x7F44,0x7FF3,0x7FFC,0x8071,0x8072,0x8070,
-0x806F,0x8073,0x81C6,0x81C3,0x81BA,0x81C2,0x81C0,0x81BF,
-0x81BD,0x81C9,0x81BE,0x81E8,0x8209,0x8271,0x85AA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8584,0x857E,0x859C,0x8591,0x8594,0x85AF,0x859B,
-0x8587,0x85A8,0x858A,0x8667,0x87C0,0x87D1,0x87B3,0x87D2,
-0x87C6,0x87AB,0x87BB,0x87BA,0x87C8,0x87CB,0x893B,0x8936,
-0x8944,0x8938,0x893D,0x89AC,0x8B0E,0x8B17,0x8B19,0x8B1B,
-0x8B0A,0x8B20,0x8B1D,0x8B04,0x8B10,0x8C41,0x8C3F,0x8C73,
-0x8CFA,0x8CFD,0x8CFC,0x8CF8,0x8CFB,0x8DA8,0x8E49,0x8E4B,
-0x8E48,0x8E4A,0x8F44,0x8F3E,0x8F42,0x8F45,0x8F3F,0x907F,
-0x907D,0x9084,0x9081,0x9082,0x9080,0x9139,0x91A3,0x919E,
-0x919C,0x934D,0x9382,0x9328,0x9375,0x934A,0x9365,0x934B,
-0x9318,0x937E,0x936C,0x935B,0x9370,0x935A,0x9354,0x95CA,
-0x95CB,0x95CC,0x95C8,0x95C6,0x96B1,0x96B8,0x96D6,0x971C,
-0x971E,0x97A0,0x97D3,0x9846,0x98B6,0x9935,0x9A01, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x99FF,0x9BAE,0x9BAB,0x9BAA,0x9BAD,0x9D3B,0x9D3F,0x9E8B,
-0x9ECF,0x9EDE,0x9EDC,0x9EDD,0x9EDB,0x9F3E,0x9F4B,0x53E2,
-0x5695,0x56AE,0x58D9,0x58D8,0x5B38,0x5F5D,0x61E3,0x6233,
-0x64F4,0x64F2,0x64FE,0x6506,0x64FA,0x64FB,0x64F7,0x65B7,
-0x66DC,0x6726,0x6AB3,0x6AAC,0x6AC3,0x6ABB,0x6AB8,0x6AC2,
-0x6AAE,0x6AAF,0x6B5F,0x6B78,0x6BAF,0x7009,0x700B,0x6FFE,
-0x7006,0x6FFA,0x7011,0x700F,0x71FB,0x71FC,0x71FE,0x71F8,
-0x7377,0x7375,0x74A7,0x74BF,0x7515,0x7656,0x7658, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7652,0x77BD,0x77BF,0x77BB,0x77BC,0x790E,0x79AE,
-0x7A61,0x7A62,0x7A60,0x7AC4,0x7AC5,0x7C2B,0x7C27,0x7C2A,
-0x7C1E,0x7C23,0x7C21,0x7CE7,0x7E54,0x7E55,0x7E5E,0x7E5A,
-0x7E61,0x7E52,0x7E59,0x7F48,0x7FF9,0x7FFB,0x8077,0x8076,
-0x81CD,0x81CF,0x820A,0x85CF,0x85A9,0x85CD,0x85D0,0x85C9,
-0x85B0,0x85BA,0x85B9,0x85A6,0x87EF,0x87EC,0x87F2,0x87E0,
-0x8986,0x89B2,0x89F4,0x8B28,0x8B39,0x8B2C,0x8B2B,0x8C50,
-0x8D05,0x8E59,0x8E63,0x8E66,0x8E64,0x8E5F,0x8E55,0x8EC0,
-0x8F49,0x8F4D,0x9087,0x9083,0x9088,0x91AB,0x91AC,0x91D0,
-0x9394,0x938A,0x9396,0x93A2,0x93B3,0x93AE,0x93AC,0x93B0,
-0x9398,0x939A,0x9397,0x95D4,0x95D6,0x95D0,0x95D5,0x96E2,
-0x96DC,0x96D9,0x96DB,0x96DE,0x9724,0x97A3,0x97A6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x97AD,0x97F9,0x984D,0x984F,0x984C,0x984E,0x9853,0x98BA,
-0x993E,0x993F,0x993D,0x992E,0x99A5,0x9A0E,0x9AC1,0x9B03,
-0x9B06,0x9B4F,0x9B4E,0x9B4D,0x9BCA,0x9BC9,0x9BFD,0x9BC8,
-0x9BC0,0x9D51,0x9D5D,0x9D60,0x9EE0,0x9F15,0x9F2C,0x5133,
-0x56A5,0x58DE,0x58DF,0x58E2,0x5BF5,0x9F90,0x5EEC,0x61F2,
-0x61F7,0x61F6,0x61F5,0x6500,0x650F,0x66E0,0x66DD,0x6AE5,
-0x6ADD,0x6ADA,0x6AD3,0x701B,0x701F,0x7028,0x701A,0x701D,
-0x7015,0x7018,0x7206,0x720D,0x7258,0x72A2,0x7378, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x737A,0x74BD,0x74CA,0x74E3,0x7587,0x7586,0x765F,
-0x7661,0x77C7,0x7919,0x79B1,0x7A6B,0x7A69,0x7C3E,0x7C3F,
-0x7C38,0x7C3D,0x7C37,0x7C40,0x7E6B,0x7E6D,0x7E79,0x7E69,
-0x7E6A,0x7F85,0x7E73,0x7FB6,0x7FB9,0x7FB8,0x81D8,0x85E9,
-0x85DD,0x85EA,0x85D5,0x85E4,0x85E5,0x85F7,0x87FB,0x8805,
-0x880D,0x87F9,0x87FE,0x8960,0x895F,0x8956,0x895E,0x8B41,
-0x8B5C,0x8B58,0x8B49,0x8B5A,0x8B4E,0x8B4F,0x8B46,0x8B59,
-0x8D08,0x8D0A,0x8E7C,0x8E72,0x8E87,0x8E76,0x8E6C,0x8E7A,
-0x8E74,0x8F54,0x8F4E,0x8FAD,0x908A,0x908B,0x91B1,0x91AE,
-0x93E1,0x93D1,0x93DF,0x93C3,0x93C8,0x93DC,0x93DD,0x93D6,
-0x93E2,0x93CD,0x93D8,0x93E4,0x93D7,0x93E8,0x95DC,0x96B4,
-0x96E3,0x972A,0x9727,0x9761,0x97DC,0x97FB,0x985E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9858,0x985B,0x98BC,0x9945,0x9949,0x9A16,0x9A19,0x9B0D,
-0x9BE8,0x9BE7,0x9BD6,0x9BDB,0x9D89,0x9D61,0x9D72,0x9D6A,
-0x9D6C,0x9E92,0x9E97,0x9E93,0x9EB4,0x52F8,0x56A8,0x56B7,
-0x56B6,0x56B4,0x56BC,0x58E4,0x5B40,0x5B43,0x5B7D,0x5BF6,
-0x5DC9,0x61F8,0x61FA,0x6518,0x6514,0x6519,0x66E6,0x6727,
-0x6AEC,0x703E,0x7030,0x7032,0x7210,0x737B,0x74CF,0x7662,
-0x7665,0x7926,0x792A,0x792C,0x792B,0x7AC7,0x7AF6,0x7C4C,
-0x7C43,0x7C4D,0x7CEF,0x7CF0,0x8FAE,0x7E7D,0x7E7C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7E82,0x7F4C,0x8000,0x81DA,0x8266,0x85FB,0x85F9,
-0x8611,0x85FA,0x8606,0x860B,0x8607,0x860A,0x8814,0x8815,
-0x8964,0x89BA,0x89F8,0x8B70,0x8B6C,0x8B66,0x8B6F,0x8B5F,
-0x8B6B,0x8D0F,0x8D0D,0x8E89,0x8E81,0x8E85,0x8E82,0x91B4,
-0x91CB,0x9418,0x9403,0x93FD,0x95E1,0x9730,0x98C4,0x9952,
-0x9951,0x99A8,0x9A2B,0x9A30,0x9A37,0x9A35,0x9C13,0x9C0D,
-0x9E79,0x9EB5,0x9EE8,0x9F2F,0x9F5F,0x9F63,0x9F61,0x5137,
-0x5138,0x56C1,0x56C0,0x56C2,0x5914,0x5C6C,0x5DCD,0x61FC,
-0x61FE,0x651D,0x651C,0x6595,0x66E9,0x6AFB,0x6B04,0x6AFA,
-0x6BB2,0x704C,0x721B,0x72A7,0x74D6,0x74D4,0x7669,0x77D3,
-0x7C50,0x7E8F,0x7E8C,0x7FBC,0x8617,0x862D,0x861A,0x8823,
-0x8822,0x8821,0x881F,0x896A,0x896C,0x89BD,0x8B74, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B77,0x8B7D,0x8D13,0x8E8A,0x8E8D,0x8E8B,0x8F5F,0x8FAF,
-0x91BA,0x942E,0x9433,0x9435,0x943A,0x9438,0x9432,0x942B,
-0x95E2,0x9738,0x9739,0x9732,0x97FF,0x9867,0x9865,0x9957,
-0x9A45,0x9A43,0x9A40,0x9A3E,0x9ACF,0x9B54,0x9B51,0x9C2D,
-0x9C25,0x9DAF,0x9DB4,0x9DC2,0x9DB8,0x9E9D,0x9EEF,0x9F19,
-0x9F5C,0x9F66,0x9F67,0x513C,0x513B,0x56C8,0x56CA,0x56C9,
-0x5B7F,0x5DD4,0x5DD2,0x5F4E,0x61FF,0x6524,0x6B0A,0x6B61,
-0x7051,0x7058,0x7380,0x74E4,0x758A,0x766E,0x766C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x79B3,0x7C60,0x7C5F,0x807E,0x807D,0x81DF,0x8972,
-0x896F,0x89FC,0x8B80,0x8D16,0x8D17,0x8E91,0x8E93,0x8F61,
-0x9148,0x9444,0x9451,0x9452,0x973D,0x973E,0x97C3,0x97C1,
-0x986B,0x9955,0x9A55,0x9A4D,0x9AD2,0x9B1A,0x9C49,0x9C31,
-0x9C3E,0x9C3B,0x9DD3,0x9DD7,0x9F34,0x9F6C,0x9F6A,0x9F94,
-0x56CC,0x5DD6,0x6200,0x6523,0x652B,0x652A,0x66EC,0x6B10,
-0x74DA,0x7ACA,0x7C64,0x7C63,0x7C65,0x7E93,0x7E96,0x7E94,
-0x81E2,0x8638,0x863F,0x8831,0x8B8A,0x9090,0x908F,0x9463,
-0x9460,0x9464,0x9768,0x986F,0x995C,0x9A5A,0x9A5B,0x9A57,
-0x9AD3,0x9AD4,0x9AD1,0x9C54,0x9C57,0x9C56,0x9DE5,0x9E9F,
-0x9EF4,0x56D1,0x58E9,0x652C,0x705E,0x7671,0x7672,0x77D7,
-0x7F50,0x7F88,0x8836,0x8839,0x8862,0x8B93,0x8B92, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B96,0x8277,0x8D1B,0x91C0,0x946A,0x9742,0x9748,0x9744,
-0x97C6,0x9870,0x9A5F,0x9B22,0x9B58,0x9C5F,0x9DF9,0x9DFA,
-0x9E7C,0x9E7D,0x9F07,0x9F77,0x9F72,0x5EF3,0x6B16,0x7063,
-0x7C6C,0x7C6E,0x883B,0x89C0,0x8EA1,0x91C1,0x9472,0x9470,
-0x9871,0x995E,0x9AD6,0x9B23,0x9ECC,0x7064,0x77DA,0x8B9A,
-0x9477,0x97C9,0x9A62,0x9A65,0x7E9C,0x8B9C,0x8EAA,0x91C5,
-0x947D,0x947E,0x947C,0x9C77,0x9C78,0x9EF7,0x8C54,0x947F,
-0x9E1A,0x7228,0x9A6A,0x9B31,0x9E1B,0x9E1E,0x7C72, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x30FE,0x309D,0x309E,0x3005,0x3041,0x3042,0x3043,
-0x3044,0x3045,0x3046,0x3047,0x3048,0x3049,0x304A,0x304B,
-0x304C,0x304D,0x304E,0x304F,0x3050,0x3051,0x3052,0x3053,
-0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305A,0x305B,
-0x305C,0x305D,0x305E,0x305F,0x3060,0x3061,0x3062,0x3063,
-0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306A,0x306B,
-0x306C,0x306D,0x306E,0x306F,0x3070,0x3071,0x3072,0x3073,
-0x3074,0x3075,0x3076,0x3077,0x3078,0x3079,0x307A,0x307B,
-0x307C,0x307D,0x307E,0x307F,0x3080,0x3081,0x3082,0x3083,
-0x3084,0x3085,0x3086,0x3087,0x3088,0x3089,0x308A,0x308B,
-0x308C,0x308D,0x308E,0x308F,0x3090,0x3091,0x3092,0x3093,
-0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,
-0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,
-0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,
-0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,
-0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,
-0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,
-0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,
-0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x30E7,0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,
-0x30EE,0x30EF,0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,
-0x30F6,0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,
-0x041A,0x041B,0x041C,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436,
-0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,
-0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,
-0x044F,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,
-0x2467,0x2468,0x2469,0x2474,0x2475,0x2476,0x2477,0x2478,
-0x2479,0x247A,0x247B,0x247C,0x247D};
-
-/* page 1 0xC940-0xF9DC */
-static uint16 tab_big5_uni1[]={
-0x4E42,0x4E5C,0x51F5,0x531A,0x5382,0x4E07,0x4E0C,0x4E47,
-0x4E8D,0x56D7,0xFA0C,0x5C6E,0x5F73,0x4E0F,0x5187,0x4E0E,
-0x4E2E,0x4E93,0x4EC2,0x4EC9,0x4EC8,0x5198,0x52FC,0x536C,
-0x53B9,0x5720,0x5903,0x592C,0x5C10,0x5DFF,0x65E1,0x6BB3,
-0x6BCC,0x6C14,0x723F,0x4E31,0x4E3C,0x4EE8,0x4EDC,0x4EE9,
-0x4EE1,0x4EDD,0x4EDA,0x520C,0x531C,0x534C,0x5722,0x5723,
-0x5917,0x592F,0x5B81,0x5B84,0x5C12,0x5C3B,0x5C74,0x5C73,
-0x5E04,0x5E80,0x5E82,0x5FC9,0x6209,0x6250,0x6C15, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6C36,0x6C43,0x6C3F,0x6C3B,0x72AE,0x72B0,0x738A,
-0x79B8,0x808A,0x961E,0x4F0E,0x4F18,0x4F2C,0x4EF5,0x4F14,
-0x4EF1,0x4F00,0x4EF7,0x4F08,0x4F1D,0x4F02,0x4F05,0x4F22,
-0x4F13,0x4F04,0x4EF4,0x4F12,0x51B1,0x5213,0x5209,0x5210,
-0x52A6,0x5322,0x531F,0x534D,0x538A,0x5407,0x56E1,0x56DF,
-0x572E,0x572A,0x5734,0x593C,0x5980,0x597C,0x5985,0x597B,
-0x597E,0x5977,0x597F,0x5B56,0x5C15,0x5C25,0x5C7C,0x5C7A,
-0x5C7B,0x5C7E,0x5DDF,0x5E75,0x5E84,0x5F02,0x5F1A,0x5F74,
-0x5FD5,0x5FD4,0x5FCF,0x625C,0x625E,0x6264,0x6261,0x6266,
-0x6262,0x6259,0x6260,0x625A,0x6265,0x65EF,0x65EE,0x673E,
-0x6739,0x6738,0x673B,0x673A,0x673F,0x673C,0x6733,0x6C18,
-0x6C46,0x6C52,0x6C5C,0x6C4F,0x6C4A,0x6C54,0x6C4B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C4C,0x7071,0x725E,0x72B4,0x72B5,0x738E,0x752A,0x767F,
-0x7A75,0x7F51,0x8278,0x827C,0x8280,0x827D,0x827F,0x864D,
-0x897E,0x9099,0x9097,0x9098,0x909B,0x9094,0x9622,0x9624,
-0x9620,0x9623,0x4F56,0x4F3B,0x4F62,0x4F49,0x4F53,0x4F64,
-0x4F3E,0x4F67,0x4F52,0x4F5F,0x4F41,0x4F58,0x4F2D,0x4F33,
-0x4F3F,0x4F61,0x518F,0x51B9,0x521C,0x521E,0x5221,0x52AD,
-0x52AE,0x5309,0x5363,0x5372,0x538E,0x538F,0x5430,0x5437,
-0x542A,0x5454,0x5445,0x5419,0x541C,0x5425,0x5418, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x543D,0x544F,0x5441,0x5428,0x5424,0x5447,0x56EE,
-0x56E7,0x56E5,0x5741,0x5745,0x574C,0x5749,0x574B,0x5752,
-0x5906,0x5940,0x59A6,0x5998,0x59A0,0x5997,0x598E,0x59A2,
-0x5990,0x598F,0x59A7,0x59A1,0x5B8E,0x5B92,0x5C28,0x5C2A,
-0x5C8D,0x5C8F,0x5C88,0x5C8B,0x5C89,0x5C92,0x5C8A,0x5C86,
-0x5C93,0x5C95,0x5DE0,0x5E0A,0x5E0E,0x5E8B,0x5E89,0x5E8C,
-0x5E88,0x5E8D,0x5F05,0x5F1D,0x5F78,0x5F76,0x5FD2,0x5FD1,
-0x5FD0,0x5FED,0x5FE8,0x5FEE,0x5FF3,0x5FE1,0x5FE4,0x5FE3,
-0x5FFA,0x5FEF,0x5FF7,0x5FFB,0x6000,0x5FF4,0x623A,0x6283,
-0x628C,0x628E,0x628F,0x6294,0x6287,0x6271,0x627B,0x627A,
-0x6270,0x6281,0x6288,0x6277,0x627D,0x6272,0x6274,0x6537,
-0x65F0,0x65F4,0x65F3,0x65F2,0x65F5,0x6745,0x6747, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6759,0x6755,0x674C,0x6748,0x675D,0x674D,0x675A,0x674B,
-0x6BD0,0x6C19,0x6C1A,0x6C78,0x6C67,0x6C6B,0x6C84,0x6C8B,
-0x6C8F,0x6C71,0x6C6F,0x6C69,0x6C9A,0x6C6D,0x6C87,0x6C95,
-0x6C9C,0x6C66,0x6C73,0x6C65,0x6C7B,0x6C8E,0x7074,0x707A,
-0x7263,0x72BF,0x72BD,0x72C3,0x72C6,0x72C1,0x72BA,0x72C5,
-0x7395,0x7397,0x7393,0x7394,0x7392,0x753A,0x7539,0x7594,
-0x7595,0x7681,0x793D,0x8034,0x8095,0x8099,0x8090,0x8092,
-0x809C,0x8290,0x828F,0x8285,0x828E,0x8291,0x8293, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x828A,0x8283,0x8284,0x8C78,0x8FC9,0x8FBF,0x909F,
-0x90A1,0x90A5,0x909E,0x90A7,0x90A0,0x9630,0x9628,0x962F,
-0x962D,0x4E33,0x4F98,0x4F7C,0x4F85,0x4F7D,0x4F80,0x4F87,
-0x4F76,0x4F74,0x4F89,0x4F84,0x4F77,0x4F4C,0x4F97,0x4F6A,
-0x4F9A,0x4F79,0x4F81,0x4F78,0x4F90,0x4F9C,0x4F94,0x4F9E,
-0x4F92,0x4F82,0x4F95,0x4F6B,0x4F6E,0x519E,0x51BC,0x51BE,
-0x5235,0x5232,0x5233,0x5246,0x5231,0x52BC,0x530A,0x530B,
-0x533C,0x5392,0x5394,0x5487,0x547F,0x5481,0x5491,0x5482,
-0x5488,0x546B,0x547A,0x547E,0x5465,0x546C,0x5474,0x5466,
-0x548D,0x546F,0x5461,0x5460,0x5498,0x5463,0x5467,0x5464,
-0x56F7,0x56F9,0x576F,0x5772,0x576D,0x576B,0x5771,0x5770,
-0x5776,0x5780,0x5775,0x577B,0x5773,0x5774,0x5762, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5768,0x577D,0x590C,0x5945,0x59B5,0x59BA,0x59CF,0x59CE,
-0x59B2,0x59CC,0x59C1,0x59B6,0x59BC,0x59C3,0x59D6,0x59B1,
-0x59BD,0x59C0,0x59C8,0x59B4,0x59C7,0x5B62,0x5B65,0x5B93,
-0x5B95,0x5C44,0x5C47,0x5CAE,0x5CA4,0x5CA0,0x5CB5,0x5CAF,
-0x5CA8,0x5CAC,0x5C9F,0x5CA3,0x5CAD,0x5CA2,0x5CAA,0x5CA7,
-0x5C9D,0x5CA5,0x5CB6,0x5CB0,0x5CA6,0x5E17,0x5E14,0x5E19,
-0x5F28,0x5F22,0x5F23,0x5F24,0x5F54,0x5F82,0x5F7E,0x5F7D,
-0x5FDE,0x5FE5,0x602D,0x6026,0x6019,0x6032,0x600B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6034,0x600A,0x6017,0x6033,0x601A,0x601E,0x602C,
-0x6022,0x600D,0x6010,0x602E,0x6013,0x6011,0x600C,0x6009,
-0x601C,0x6214,0x623D,0x62AD,0x62B4,0x62D1,0x62BE,0x62AA,
-0x62B6,0x62CA,0x62AE,0x62B3,0x62AF,0x62BB,0x62A9,0x62B0,
-0x62B8,0x653D,0x65A8,0x65BB,0x6609,0x65FC,0x6604,0x6612,
-0x6608,0x65FB,0x6603,0x660B,0x660D,0x6605,0x65FD,0x6611,
-0x6610,0x66F6,0x670A,0x6785,0x676C,0x678E,0x6792,0x6776,
-0x677B,0x6798,0x6786,0x6784,0x6774,0x678D,0x678C,0x677A,
-0x679F,0x6791,0x6799,0x6783,0x677D,0x6781,0x6778,0x6779,
-0x6794,0x6B25,0x6B80,0x6B7E,0x6BDE,0x6C1D,0x6C93,0x6CEC,
-0x6CEB,0x6CEE,0x6CD9,0x6CB6,0x6CD4,0x6CAD,0x6CE7,0x6CB7,
-0x6CD0,0x6CC2,0x6CBA,0x6CC3,0x6CC6,0x6CED,0x6CF2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6CD2,0x6CDD,0x6CB4,0x6C8A,0x6C9D,0x6C80,0x6CDE,0x6CC0,
-0x6D30,0x6CCD,0x6CC7,0x6CB0,0x6CF9,0x6CCF,0x6CE9,0x6CD1,
-0x7094,0x7098,0x7085,0x7093,0x7086,0x7084,0x7091,0x7096,
-0x7082,0x709A,0x7083,0x726A,0x72D6,0x72CB,0x72D8,0x72C9,
-0x72DC,0x72D2,0x72D4,0x72DA,0x72CC,0x72D1,0x73A4,0x73A1,
-0x73AD,0x73A6,0x73A2,0x73A0,0x73AC,0x739D,0x74DD,0x74E8,
-0x753F,0x7540,0x753E,0x758C,0x7598,0x76AF,0x76F3,0x76F1,
-0x76F0,0x76F5,0x77F8,0x77FC,0x77F9,0x77FB,0x77FA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x77F7,0x7942,0x793F,0x79C5,0x7A78,0x7A7B,0x7AFB,
-0x7C75,0x7CFD,0x8035,0x808F,0x80AE,0x80A3,0x80B8,0x80B5,
-0x80AD,0x8220,0x82A0,0x82C0,0x82AB,0x829A,0x8298,0x829B,
-0x82B5,0x82A7,0x82AE,0x82BC,0x829E,0x82BA,0x82B4,0x82A8,
-0x82A1,0x82A9,0x82C2,0x82A4,0x82C3,0x82B6,0x82A2,0x8670,
-0x866F,0x866D,0x866E,0x8C56,0x8FD2,0x8FCB,0x8FD3,0x8FCD,
-0x8FD6,0x8FD5,0x8FD7,0x90B2,0x90B4,0x90AF,0x90B3,0x90B0,
-0x9639,0x963D,0x963C,0x963A,0x9643,0x4FCD,0x4FC5,0x4FD3,
-0x4FB2,0x4FC9,0x4FCB,0x4FC1,0x4FD4,0x4FDC,0x4FD9,0x4FBB,
-0x4FB3,0x4FDB,0x4FC7,0x4FD6,0x4FBA,0x4FC0,0x4FB9,0x4FEC,
-0x5244,0x5249,0x52C0,0x52C2,0x533D,0x537C,0x5397,0x5396,
-0x5399,0x5398,0x54BA,0x54A1,0x54AD,0x54A5,0x54CF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x54C3,0x830D,0x54B7,0x54AE,0x54D6,0x54B6,0x54C5,0x54C6,
-0x54A0,0x5470,0x54BC,0x54A2,0x54BE,0x5472,0x54DE,0x54B0,
-0x57B5,0x579E,0x579F,0x57A4,0x578C,0x5797,0x579D,0x579B,
-0x5794,0x5798,0x578F,0x5799,0x57A5,0x579A,0x5795,0x58F4,
-0x590D,0x5953,0x59E1,0x59DE,0x59EE,0x5A00,0x59F1,0x59DD,
-0x59FA,0x59FD,0x59FC,0x59F6,0x59E4,0x59F2,0x59F7,0x59DB,
-0x59E9,0x59F3,0x59F5,0x59E0,0x59FE,0x59F4,0x59ED,0x5BA8,
-0x5C4C,0x5CD0,0x5CD8,0x5CCC,0x5CD7,0x5CCB,0x5CDB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5CDE,0x5CDA,0x5CC9,0x5CC7,0x5CCA,0x5CD6,0x5CD3,
-0x5CD4,0x5CCF,0x5CC8,0x5CC6,0x5CCE,0x5CDF,0x5CF8,0x5DF9,
-0x5E21,0x5E22,0x5E23,0x5E20,0x5E24,0x5EB0,0x5EA4,0x5EA2,
-0x5E9B,0x5EA3,0x5EA5,0x5F07,0x5F2E,0x5F56,0x5F86,0x6037,
-0x6039,0x6054,0x6072,0x605E,0x6045,0x6053,0x6047,0x6049,
-0x605B,0x604C,0x6040,0x6042,0x605F,0x6024,0x6044,0x6058,
-0x6066,0x606E,0x6242,0x6243,0x62CF,0x630D,0x630B,0x62F5,
-0x630E,0x6303,0x62EB,0x62F9,0x630F,0x630C,0x62F8,0x62F6,
-0x6300,0x6313,0x6314,0x62FA,0x6315,0x62FB,0x62F0,0x6541,
-0x6543,0x65AA,0x65BF,0x6636,0x6621,0x6632,0x6635,0x661C,
-0x6626,0x6622,0x6633,0x662B,0x663A,0x661D,0x6634,0x6639,
-0x662E,0x670F,0x6710,0x67C1,0x67F2,0x67C8,0x67BA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x67DC,0x67BB,0x67F8,0x67D8,0x67C0,0x67B7,0x67C5,0x67EB,
-0x67E4,0x67DF,0x67B5,0x67CD,0x67B3,0x67F7,0x67F6,0x67EE,
-0x67E3,0x67C2,0x67B9,0x67CE,0x67E7,0x67F0,0x67B2,0x67FC,
-0x67C6,0x67ED,0x67CC,0x67AE,0x67E6,0x67DB,0x67FA,0x67C9,
-0x67CA,0x67C3,0x67EA,0x67CB,0x6B28,0x6B82,0x6B84,0x6BB6,
-0x6BD6,0x6BD8,0x6BE0,0x6C20,0x6C21,0x6D28,0x6D34,0x6D2D,
-0x6D1F,0x6D3C,0x6D3F,0x6D12,0x6D0A,0x6CDA,0x6D33,0x6D04,
-0x6D19,0x6D3A,0x6D1A,0x6D11,0x6D00,0x6D1D,0x6D42, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6D01,0x6D18,0x6D37,0x6D03,0x6D0F,0x6D40,0x6D07,
-0x6D20,0x6D2C,0x6D08,0x6D22,0x6D09,0x6D10,0x70B7,0x709F,
-0x70BE,0x70B1,0x70B0,0x70A1,0x70B4,0x70B5,0x70A9,0x7241,
-0x7249,0x724A,0x726C,0x7270,0x7273,0x726E,0x72CA,0x72E4,
-0x72E8,0x72EB,0x72DF,0x72EA,0x72E6,0x72E3,0x7385,0x73CC,
-0x73C2,0x73C8,0x73C5,0x73B9,0x73B6,0x73B5,0x73B4,0x73EB,
-0x73BF,0x73C7,0x73BE,0x73C3,0x73C6,0x73B8,0x73CB,0x74EC,
-0x74EE,0x752E,0x7547,0x7548,0x75A7,0x75AA,0x7679,0x76C4,
-0x7708,0x7703,0x7704,0x7705,0x770A,0x76F7,0x76FB,0x76FA,
-0x77E7,0x77E8,0x7806,0x7811,0x7812,0x7805,0x7810,0x780F,
-0x780E,0x7809,0x7803,0x7813,0x794A,0x794C,0x794B,0x7945,
-0x7944,0x79D5,0x79CD,0x79CF,0x79D6,0x79CE,0x7A80, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A7E,0x7AD1,0x7B00,0x7B01,0x7C7A,0x7C78,0x7C79,0x7C7F,
-0x7C80,0x7C81,0x7D03,0x7D08,0x7D01,0x7F58,0x7F91,0x7F8D,
-0x7FBE,0x8007,0x800E,0x800F,0x8014,0x8037,0x80D8,0x80C7,
-0x80E0,0x80D1,0x80C8,0x80C2,0x80D0,0x80C5,0x80E3,0x80D9,
-0x80DC,0x80CA,0x80D5,0x80C9,0x80CF,0x80D7,0x80E6,0x80CD,
-0x81FF,0x8221,0x8294,0x82D9,0x82FE,0x82F9,0x8307,0x82E8,
-0x8300,0x82D5,0x833A,0x82EB,0x82D6,0x82F4,0x82EC,0x82E1,
-0x82F2,0x82F5,0x830C,0x82FB,0x82F6,0x82F0,0x82EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x82E4,0x82E0,0x82FA,0x82F3,0x82ED,0x8677,0x8674,
-0x867C,0x8673,0x8841,0x884E,0x8867,0x886A,0x8869,0x89D3,
-0x8A04,0x8A07,0x8D72,0x8FE3,0x8FE1,0x8FEE,0x8FE0,0x90F1,
-0x90BD,0x90BF,0x90D5,0x90C5,0x90BE,0x90C7,0x90CB,0x90C8,
-0x91D4,0x91D3,0x9654,0x964F,0x9651,0x9653,0x964A,0x964E,
-0x501E,0x5005,0x5007,0x5013,0x5022,0x5030,0x501B,0x4FF5,
-0x4FF4,0x5033,0x5037,0x502C,0x4FF6,0x4FF7,0x5017,0x501C,
-0x5020,0x5027,0x5035,0x502F,0x5031,0x500E,0x515A,0x5194,
-0x5193,0x51CA,0x51C4,0x51C5,0x51C8,0x51CE,0x5261,0x525A,
-0x5252,0x525E,0x525F,0x5255,0x5262,0x52CD,0x530E,0x539E,
-0x5526,0x54E2,0x5517,0x5512,0x54E7,0x54F3,0x54E4,0x551A,
-0x54FF,0x5504,0x5508,0x54EB,0x5511,0x5505,0x54F1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x550A,0x54FB,0x54F7,0x54F8,0x54E0,0x550E,0x5503,0x550B,
-0x5701,0x5702,0x57CC,0x5832,0x57D5,0x57D2,0x57BA,0x57C6,
-0x57BD,0x57BC,0x57B8,0x57B6,0x57BF,0x57C7,0x57D0,0x57B9,
-0x57C1,0x590E,0x594A,0x5A19,0x5A16,0x5A2D,0x5A2E,0x5A15,
-0x5A0F,0x5A17,0x5A0A,0x5A1E,0x5A33,0x5B6C,0x5BA7,0x5BAD,
-0x5BAC,0x5C03,0x5C56,0x5C54,0x5CEC,0x5CFF,0x5CEE,0x5CF1,
-0x5CF7,0x5D00,0x5CF9,0x5E29,0x5E28,0x5EA8,0x5EAE,0x5EAA,
-0x5EAC,0x5F33,0x5F30,0x5F67,0x605D,0x605A,0x6067, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6041,0x60A2,0x6088,0x6080,0x6092,0x6081,0x609D,
-0x6083,0x6095,0x609B,0x6097,0x6087,0x609C,0x608E,0x6219,
-0x6246,0x62F2,0x6310,0x6356,0x632C,0x6344,0x6345,0x6336,
-0x6343,0x63E4,0x6339,0x634B,0x634A,0x633C,0x6329,0x6341,
-0x6334,0x6358,0x6354,0x6359,0x632D,0x6347,0x6333,0x635A,
-0x6351,0x6338,0x6357,0x6340,0x6348,0x654A,0x6546,0x65C6,
-0x65C3,0x65C4,0x65C2,0x664A,0x665F,0x6647,0x6651,0x6712,
-0x6713,0x681F,0x681A,0x6849,0x6832,0x6833,0x683B,0x684B,
-0x684F,0x6816,0x6831,0x681C,0x6835,0x682B,0x682D,0x682F,
-0x684E,0x6844,0x6834,0x681D,0x6812,0x6814,0x6826,0x6828,
-0x682E,0x684D,0x683A,0x6825,0x6820,0x6B2C,0x6B2F,0x6B2D,
-0x6B31,0x6B34,0x6B6D,0x8082,0x6B88,0x6BE6,0x6BE4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6BE8,0x6BE3,0x6BE2,0x6BE7,0x6C25,0x6D7A,0x6D63,0x6D64,
-0x6D76,0x6D0D,0x6D61,0x6D92,0x6D58,0x6D62,0x6D6D,0x6D6F,
-0x6D91,0x6D8D,0x6DEF,0x6D7F,0x6D86,0x6D5E,0x6D67,0x6D60,
-0x6D97,0x6D70,0x6D7C,0x6D5F,0x6D82,0x6D98,0x6D2F,0x6D68,
-0x6D8B,0x6D7E,0x6D80,0x6D84,0x6D16,0x6D83,0x6D7B,0x6D7D,
-0x6D75,0x6D90,0x70DC,0x70D3,0x70D1,0x70DD,0x70CB,0x7F39,
-0x70E2,0x70D7,0x70D2,0x70DE,0x70E0,0x70D4,0x70CD,0x70C5,
-0x70C6,0x70C7,0x70DA,0x70CE,0x70E1,0x7242,0x7278, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7277,0x7276,0x7300,0x72FA,0x72F4,0x72FE,0x72F6,
-0x72F3,0x72FB,0x7301,0x73D3,0x73D9,0x73E5,0x73D6,0x73BC,
-0x73E7,0x73E3,0x73E9,0x73DC,0x73D2,0x73DB,0x73D4,0x73DD,
-0x73DA,0x73D7,0x73D8,0x73E8,0x74DE,0x74DF,0x74F4,0x74F5,
-0x7521,0x755B,0x755F,0x75B0,0x75C1,0x75BB,0x75C4,0x75C0,
-0x75BF,0x75B6,0x75BA,0x768A,0x76C9,0x771D,0x771B,0x7710,
-0x7713,0x7712,0x7723,0x7711,0x7715,0x7719,0x771A,0x7722,
-0x7727,0x7823,0x782C,0x7822,0x7835,0x782F,0x7828,0x782E,
-0x782B,0x7821,0x7829,0x7833,0x782A,0x7831,0x7954,0x795B,
-0x794F,0x795C,0x7953,0x7952,0x7951,0x79EB,0x79EC,0x79E0,
-0x79EE,0x79ED,0x79EA,0x79DC,0x79DE,0x79DD,0x7A86,0x7A89,
-0x7A85,0x7A8B,0x7A8C,0x7A8A,0x7A87,0x7AD8,0x7B10, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7B04,0x7B13,0x7B05,0x7B0F,0x7B08,0x7B0A,0x7B0E,0x7B09,
-0x7B12,0x7C84,0x7C91,0x7C8A,0x7C8C,0x7C88,0x7C8D,0x7C85,
-0x7D1E,0x7D1D,0x7D11,0x7D0E,0x7D18,0x7D16,0x7D13,0x7D1F,
-0x7D12,0x7D0F,0x7D0C,0x7F5C,0x7F61,0x7F5E,0x7F60,0x7F5D,
-0x7F5B,0x7F96,0x7F92,0x7FC3,0x7FC2,0x7FC0,0x8016,0x803E,
-0x8039,0x80FA,0x80F2,0x80F9,0x80F5,0x8101,0x80FB,0x8100,
-0x8201,0x822F,0x8225,0x8333,0x832D,0x8344,0x8319,0x8351,
-0x8325,0x8356,0x833F,0x8341,0x8326,0x831C,0x8322, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8342,0x834E,0x831B,0x832A,0x8308,0x833C,0x834D,
-0x8316,0x8324,0x8320,0x8337,0x832F,0x8329,0x8347,0x8345,
-0x834C,0x8353,0x831E,0x832C,0x834B,0x8327,0x8348,0x8653,
-0x8652,0x86A2,0x86A8,0x8696,0x868D,0x8691,0x869E,0x8687,
-0x8697,0x8686,0x868B,0x869A,0x8685,0x86A5,0x8699,0x86A1,
-0x86A7,0x8695,0x8698,0x868E,0x869D,0x8690,0x8694,0x8843,
-0x8844,0x886D,0x8875,0x8876,0x8872,0x8880,0x8871,0x887F,
-0x886F,0x8883,0x887E,0x8874,0x887C,0x8A12,0x8C47,0x8C57,
-0x8C7B,0x8CA4,0x8CA3,0x8D76,0x8D78,0x8DB5,0x8DB7,0x8DB6,
-0x8ED1,0x8ED3,0x8FFE,0x8FF5,0x9002,0x8FFF,0x8FFB,0x9004,
-0x8FFC,0x8FF6,0x90D6,0x90E0,0x90D9,0x90DA,0x90E3,0x90DF,
-0x90E5,0x90D8,0x90DB,0x90D7,0x90DC,0x90E4,0x9150, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x914E,0x914F,0x91D5,0x91E2,0x91DA,0x965C,0x965F,0x96BC,
-0x98E3,0x9ADF,0x9B2F,0x4E7F,0x5070,0x506A,0x5061,0x505E,
-0x5060,0x5053,0x504B,0x505D,0x5072,0x5048,0x504D,0x5041,
-0x505B,0x504A,0x5062,0x5015,0x5045,0x505F,0x5069,0x506B,
-0x5063,0x5064,0x5046,0x5040,0x506E,0x5073,0x5057,0x5051,
-0x51D0,0x526B,0x526D,0x526C,0x526E,0x52D6,0x52D3,0x532D,
-0x539C,0x5575,0x5576,0x553C,0x554D,0x5550,0x5534,0x552A,
-0x5551,0x5562,0x5536,0x5535,0x5530,0x5552,0x5545, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x550C,0x5532,0x5565,0x554E,0x5539,0x5548,0x552D,
-0x553B,0x5540,0x554B,0x570A,0x5707,0x57FB,0x5814,0x57E2,
-0x57F6,0x57DC,0x57F4,0x5800,0x57ED,0x57FD,0x5808,0x57F8,
-0x580B,0x57F3,0x57CF,0x5807,0x57EE,0x57E3,0x57F2,0x57E5,
-0x57EC,0x57E1,0x580E,0x57FC,0x5810,0x57E7,0x5801,0x580C,
-0x57F1,0x57E9,0x57F0,0x580D,0x5804,0x595C,0x5A60,0x5A58,
-0x5A55,0x5A67,0x5A5E,0x5A38,0x5A35,0x5A6D,0x5A50,0x5A5F,
-0x5A65,0x5A6C,0x5A53,0x5A64,0x5A57,0x5A43,0x5A5D,0x5A52,
-0x5A44,0x5A5B,0x5A48,0x5A8E,0x5A3E,0x5A4D,0x5A39,0x5A4C,
-0x5A70,0x5A69,0x5A47,0x5A51,0x5A56,0x5A42,0x5A5C,0x5B72,
-0x5B6E,0x5BC1,0x5BC0,0x5C59,0x5D1E,0x5D0B,0x5D1D,0x5D1A,
-0x5D20,0x5D0C,0x5D28,0x5D0D,0x5D26,0x5D25,0x5D0F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5D30,0x5D12,0x5D23,0x5D1F,0x5D2E,0x5E3E,0x5E34,0x5EB1,
-0x5EB4,0x5EB9,0x5EB2,0x5EB3,0x5F36,0x5F38,0x5F9B,0x5F96,
-0x5F9F,0x608A,0x6090,0x6086,0x60BE,0x60B0,0x60BA,0x60D3,
-0x60D4,0x60CF,0x60E4,0x60D9,0x60DD,0x60C8,0x60B1,0x60DB,
-0x60B7,0x60CA,0x60BF,0x60C3,0x60CD,0x60C0,0x6332,0x6365,
-0x638A,0x6382,0x637D,0x63BD,0x639E,0x63AD,0x639D,0x6397,
-0x63AB,0x638E,0x636F,0x6387,0x6390,0x636E,0x63AF,0x6375,
-0x639C,0x636D,0x63AE,0x637C,0x63A4,0x633B,0x639F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6378,0x6385,0x6381,0x6391,0x638D,0x6370,0x6553,
-0x65CD,0x6665,0x6661,0x665B,0x6659,0x665C,0x6662,0x6718,
-0x6879,0x6887,0x6890,0x689C,0x686D,0x686E,0x68AE,0x68AB,
-0x6956,0x686F,0x68A3,0x68AC,0x68A9,0x6875,0x6874,0x68B2,
-0x688F,0x6877,0x6892,0x687C,0x686B,0x6872,0x68AA,0x6880,
-0x6871,0x687E,0x689B,0x6896,0x688B,0x68A0,0x6889,0x68A4,
-0x6878,0x687B,0x6891,0x688C,0x688A,0x687D,0x6B36,0x6B33,
-0x6B37,0x6B38,0x6B91,0x6B8F,0x6B8D,0x6B8E,0x6B8C,0x6C2A,
-0x6DC0,0x6DAB,0x6DB4,0x6DB3,0x6E74,0x6DAC,0x6DE9,0x6DE2,
-0x6DB7,0x6DF6,0x6DD4,0x6E00,0x6DC8,0x6DE0,0x6DDF,0x6DD6,
-0x6DBE,0x6DE5,0x6DDC,0x6DDD,0x6DDB,0x6DF4,0x6DCA,0x6DBD,
-0x6DED,0x6DF0,0x6DBA,0x6DD5,0x6DC2,0x6DCF,0x6DC9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6DD0,0x6DF2,0x6DD3,0x6DFD,0x6DD7,0x6DCD,0x6DE3,0x6DBB,
-0x70FA,0x710D,0x70F7,0x7117,0x70F4,0x710C,0x70F0,0x7104,
-0x70F3,0x7110,0x70FC,0x70FF,0x7106,0x7113,0x7100,0x70F8,
-0x70F6,0x710B,0x7102,0x710E,0x727E,0x727B,0x727C,0x727F,
-0x731D,0x7317,0x7307,0x7311,0x7318,0x730A,0x7308,0x72FF,
-0x730F,0x731E,0x7388,0x73F6,0x73F8,0x73F5,0x7404,0x7401,
-0x73FD,0x7407,0x7400,0x73FA,0x73FC,0x73FF,0x740C,0x740B,
-0x73F4,0x7408,0x7564,0x7563,0x75CE,0x75D2,0x75CF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x75CB,0x75CC,0x75D1,0x75D0,0x768F,0x7689,0x76D3,
-0x7739,0x772F,0x772D,0x7731,0x7732,0x7734,0x7733,0x773D,
-0x7725,0x773B,0x7735,0x7848,0x7852,0x7849,0x784D,0x784A,
-0x784C,0x7826,0x7845,0x7850,0x7964,0x7967,0x7969,0x796A,
-0x7963,0x796B,0x7961,0x79BB,0x79FA,0x79F8,0x79F6,0x79F7,
-0x7A8F,0x7A94,0x7A90,0x7B35,0x7B47,0x7B34,0x7B25,0x7B30,
-0x7B22,0x7B24,0x7B33,0x7B18,0x7B2A,0x7B1D,0x7B31,0x7B2B,
-0x7B2D,0x7B2F,0x7B32,0x7B38,0x7B1A,0x7B23,0x7C94,0x7C98,
-0x7C96,0x7CA3,0x7D35,0x7D3D,0x7D38,0x7D36,0x7D3A,0x7D45,
-0x7D2C,0x7D29,0x7D41,0x7D47,0x7D3E,0x7D3F,0x7D4A,0x7D3B,
-0x7D28,0x7F63,0x7F95,0x7F9C,0x7F9D,0x7F9B,0x7FCA,0x7FCB,
-0x7FCD,0x7FD0,0x7FD1,0x7FC7,0x7FCF,0x7FC9,0x801F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x801E,0x801B,0x8047,0x8043,0x8048,0x8118,0x8125,0x8119,
-0x811B,0x812D,0x811F,0x812C,0x811E,0x8121,0x8115,0x8127,
-0x811D,0x8122,0x8211,0x8238,0x8233,0x823A,0x8234,0x8232,
-0x8274,0x8390,0x83A3,0x83A8,0x838D,0x837A,0x8373,0x83A4,
-0x8374,0x838F,0x8381,0x8395,0x8399,0x8375,0x8394,0x83A9,
-0x837D,0x8383,0x838C,0x839D,0x839B,0x83AA,0x838B,0x837E,
-0x83A5,0x83AF,0x8388,0x8397,0x83B0,0x837F,0x83A6,0x8387,
-0x83AE,0x8376,0x839A,0x8659,0x8656,0x86BF,0x86B7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x86C2,0x86C1,0x86C5,0x86BA,0x86B0,0x86C8,0x86B9,
-0x86B3,0x86B8,0x86CC,0x86B4,0x86BB,0x86BC,0x86C3,0x86BD,
-0x86BE,0x8852,0x8889,0x8895,0x88A8,0x88A2,0x88AA,0x889A,
-0x8891,0x88A1,0x889F,0x8898,0x88A7,0x8899,0x889B,0x8897,
-0x88A4,0x88AC,0x888C,0x8893,0x888E,0x8982,0x89D6,0x89D9,
-0x89D5,0x8A30,0x8A27,0x8A2C,0x8A1E,0x8C39,0x8C3B,0x8C5C,
-0x8C5D,0x8C7D,0x8CA5,0x8D7D,0x8D7B,0x8D79,0x8DBC,0x8DC2,
-0x8DB9,0x8DBF,0x8DC1,0x8ED8,0x8EDE,0x8EDD,0x8EDC,0x8ED7,
-0x8EE0,0x8EE1,0x9024,0x900B,0x9011,0x901C,0x900C,0x9021,
-0x90EF,0x90EA,0x90F0,0x90F4,0x90F2,0x90F3,0x90D4,0x90EB,
-0x90EC,0x90E9,0x9156,0x9158,0x915A,0x9153,0x9155,0x91EC,
-0x91F4,0x91F1,0x91F3,0x91F8,0x91E4,0x91F9,0x91EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x91EB,0x91F7,0x91E8,0x91EE,0x957A,0x9586,0x9588,0x967C,
-0x966D,0x966B,0x9671,0x966F,0x96BF,0x976A,0x9804,0x98E5,
-0x9997,0x509B,0x5095,0x5094,0x509E,0x508B,0x50A3,0x5083,
-0x508C,0x508E,0x509D,0x5068,0x509C,0x5092,0x5082,0x5087,
-0x515F,0x51D4,0x5312,0x5311,0x53A4,0x53A7,0x5591,0x55A8,
-0x55A5,0x55AD,0x5577,0x5645,0x55A2,0x5593,0x5588,0x558F,
-0x55B5,0x5581,0x55A3,0x5592,0x55A4,0x557D,0x558C,0x55A6,
-0x557F,0x5595,0x55A1,0x558E,0x570C,0x5829,0x5837, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5819,0x581E,0x5827,0x5823,0x5828,0x57F5,0x5848,
-0x5825,0x581C,0x581B,0x5833,0x583F,0x5836,0x582E,0x5839,
-0x5838,0x582D,0x582C,0x583B,0x5961,0x5AAF,0x5A94,0x5A9F,
-0x5A7A,0x5AA2,0x5A9E,0x5A78,0x5AA6,0x5A7C,0x5AA5,0x5AAC,
-0x5A95,0x5AAE,0x5A37,0x5A84,0x5A8A,0x5A97,0x5A83,0x5A8B,
-0x5AA9,0x5A7B,0x5A7D,0x5A8C,0x5A9C,0x5A8F,0x5A93,0x5A9D,
-0x5BEA,0x5BCD,0x5BCB,0x5BD4,0x5BD1,0x5BCA,0x5BCE,0x5C0C,
-0x5C30,0x5D37,0x5D43,0x5D6B,0x5D41,0x5D4B,0x5D3F,0x5D35,
-0x5D51,0x5D4E,0x5D55,0x5D33,0x5D3A,0x5D52,0x5D3D,0x5D31,
-0x5D59,0x5D42,0x5D39,0x5D49,0x5D38,0x5D3C,0x5D32,0x5D36,
-0x5D40,0x5D45,0x5E44,0x5E41,0x5F58,0x5FA6,0x5FA5,0x5FAB,
-0x60C9,0x60B9,0x60CC,0x60E2,0x60CE,0x60C4,0x6114, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x60F2,0x610A,0x6116,0x6105,0x60F5,0x6113,0x60F8,0x60FC,
-0x60FE,0x60C1,0x6103,0x6118,0x611D,0x6110,0x60FF,0x6104,
-0x610B,0x624A,0x6394,0x63B1,0x63B0,0x63CE,0x63E5,0x63E8,
-0x63EF,0x63C3,0x649D,0x63F3,0x63CA,0x63E0,0x63F6,0x63D5,
-0x63F2,0x63F5,0x6461,0x63DF,0x63BE,0x63DD,0x63DC,0x63C4,
-0x63D8,0x63D3,0x63C2,0x63C7,0x63CC,0x63CB,0x63C8,0x63F0,
-0x63D7,0x63D9,0x6532,0x6567,0x656A,0x6564,0x655C,0x6568,
-0x6565,0x658C,0x659D,0x659E,0x65AE,0x65D0,0x65D2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x667C,0x666C,0x667B,0x6680,0x6671,0x6679,0x666A,
-0x6672,0x6701,0x690C,0x68D3,0x6904,0x68DC,0x692A,0x68EC,
-0x68EA,0x68F1,0x690F,0x68D6,0x68F7,0x68EB,0x68E4,0x68F6,
-0x6913,0x6910,0x68F3,0x68E1,0x6907,0x68CC,0x6908,0x6970,
-0x68B4,0x6911,0x68EF,0x68C6,0x6914,0x68F8,0x68D0,0x68FD,
-0x68FC,0x68E8,0x690B,0x690A,0x6917,0x68CE,0x68C8,0x68DD,
-0x68DE,0x68E6,0x68F4,0x68D1,0x6906,0x68D4,0x68E9,0x6915,
-0x6925,0x68C7,0x6B39,0x6B3B,0x6B3F,0x6B3C,0x6B94,0x6B97,
-0x6B99,0x6B95,0x6BBD,0x6BF0,0x6BF2,0x6BF3,0x6C30,0x6DFC,
-0x6E46,0x6E47,0x6E1F,0x6E49,0x6E88,0x6E3C,0x6E3D,0x6E45,
-0x6E62,0x6E2B,0x6E3F,0x6E41,0x6E5D,0x6E73,0x6E1C,0x6E33,
-0x6E4B,0x6E40,0x6E51,0x6E3B,0x6E03,0x6E2E,0x6E5E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6E68,0x6E5C,0x6E61,0x6E31,0x6E28,0x6E60,0x6E71,0x6E6B,
-0x6E39,0x6E22,0x6E30,0x6E53,0x6E65,0x6E27,0x6E78,0x6E64,
-0x6E77,0x6E55,0x6E79,0x6E52,0x6E66,0x6E35,0x6E36,0x6E5A,
-0x7120,0x711E,0x712F,0x70FB,0x712E,0x7131,0x7123,0x7125,
-0x7122,0x7132,0x711F,0x7128,0x713A,0x711B,0x724B,0x725A,
-0x7288,0x7289,0x7286,0x7285,0x728B,0x7312,0x730B,0x7330,
-0x7322,0x7331,0x7333,0x7327,0x7332,0x732D,0x7326,0x7323,
-0x7335,0x730C,0x742E,0x742C,0x7430,0x742B,0x7416, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x741A,0x7421,0x742D,0x7431,0x7424,0x7423,0x741D,
-0x7429,0x7420,0x7432,0x74FB,0x752F,0x756F,0x756C,0x75E7,
-0x75DA,0x75E1,0x75E6,0x75DD,0x75DF,0x75E4,0x75D7,0x7695,
-0x7692,0x76DA,0x7746,0x7747,0x7744,0x774D,0x7745,0x774A,
-0x774E,0x774B,0x774C,0x77DE,0x77EC,0x7860,0x7864,0x7865,
-0x785C,0x786D,0x7871,0x786A,0x786E,0x7870,0x7869,0x7868,
-0x785E,0x7862,0x7974,0x7973,0x7972,0x7970,0x7A02,0x7A0A,
-0x7A03,0x7A0C,0x7A04,0x7A99,0x7AE6,0x7AE4,0x7B4A,0x7B3B,
-0x7B44,0x7B48,0x7B4C,0x7B4E,0x7B40,0x7B58,0x7B45,0x7CA2,
-0x7C9E,0x7CA8,0x7CA1,0x7D58,0x7D6F,0x7D63,0x7D53,0x7D56,
-0x7D67,0x7D6A,0x7D4F,0x7D6D,0x7D5C,0x7D6B,0x7D52,0x7D54,
-0x7D69,0x7D51,0x7D5F,0x7D4E,0x7F3E,0x7F3F,0x7F65, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7F66,0x7FA2,0x7FA0,0x7FA1,0x7FD7,0x8051,0x804F,0x8050,
-0x80FE,0x80D4,0x8143,0x814A,0x8152,0x814F,0x8147,0x813D,
-0x814D,0x813A,0x81E6,0x81EE,0x81F7,0x81F8,0x81F9,0x8204,
-0x823C,0x823D,0x823F,0x8275,0x833B,0x83CF,0x83F9,0x8423,
-0x83C0,0x83E8,0x8412,0x83E7,0x83E4,0x83FC,0x83F6,0x8410,
-0x83C6,0x83C8,0x83EB,0x83E3,0x83BF,0x8401,0x83DD,0x83E5,
-0x83D8,0x83FF,0x83E1,0x83CB,0x83CE,0x83D6,0x83F5,0x83C9,
-0x8409,0x840F,0x83DE,0x8411,0x8406,0x83C2,0x83F3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x83D5,0x83FA,0x83C7,0x83D1,0x83EA,0x8413,0x83C3,
-0x83EC,0x83EE,0x83C4,0x83FB,0x83D7,0x83E2,0x841B,0x83DB,
-0x83FE,0x86D8,0x86E2,0x86E6,0x86D3,0x86E3,0x86DA,0x86EA,
-0x86DD,0x86EB,0x86DC,0x86EC,0x86E9,0x86D7,0x86E8,0x86D1,
-0x8848,0x8856,0x8855,0x88BA,0x88D7,0x88B9,0x88B8,0x88C0,
-0x88BE,0x88B6,0x88BC,0x88B7,0x88BD,0x88B2,0x8901,0x88C9,
-0x8995,0x8998,0x8997,0x89DD,0x89DA,0x89DB,0x8A4E,0x8A4D,
-0x8A39,0x8A59,0x8A40,0x8A57,0x8A58,0x8A44,0x8A45,0x8A52,
-0x8A48,0x8A51,0x8A4A,0x8A4C,0x8A4F,0x8C5F,0x8C81,0x8C80,
-0x8CBA,0x8CBE,0x8CB0,0x8CB9,0x8CB5,0x8D84,0x8D80,0x8D89,
-0x8DD8,0x8DD3,0x8DCD,0x8DC7,0x8DD6,0x8DDC,0x8DCF,0x8DD5,
-0x8DD9,0x8DC8,0x8DD7,0x8DC5,0x8EEF,0x8EF7,0x8EFA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8EF9,0x8EE6,0x8EEE,0x8EE5,0x8EF5,0x8EE7,0x8EE8,0x8EF6,
-0x8EEB,0x8EF1,0x8EEC,0x8EF4,0x8EE9,0x902D,0x9034,0x902F,
-0x9106,0x912C,0x9104,0x90FF,0x90FC,0x9108,0x90F9,0x90FB,
-0x9101,0x9100,0x9107,0x9105,0x9103,0x9161,0x9164,0x915F,
-0x9162,0x9160,0x9201,0x920A,0x9225,0x9203,0x921A,0x9226,
-0x920F,0x920C,0x9200,0x9212,0x91FF,0x91FD,0x9206,0x9204,
-0x9227,0x9202,0x921C,0x9224,0x9219,0x9217,0x9205,0x9216,
-0x957B,0x958D,0x958C,0x9590,0x9687,0x967E,0x9688, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9689,0x9683,0x9680,0x96C2,0x96C8,0x96C3,0x96F1,
-0x96F0,0x976C,0x9770,0x976E,0x9807,0x98A9,0x98EB,0x9CE6,
-0x9EF9,0x4E83,0x4E84,0x4EB6,0x50BD,0x50BF,0x50C6,0x50AE,
-0x50C4,0x50CA,0x50B4,0x50C8,0x50C2,0x50B0,0x50C1,0x50BA,
-0x50B1,0x50CB,0x50C9,0x50B6,0x50B8,0x51D7,0x527A,0x5278,
-0x527B,0x527C,0x55C3,0x55DB,0x55CC,0x55D0,0x55CB,0x55CA,
-0x55DD,0x55C0,0x55D4,0x55C4,0x55E9,0x55BF,0x55D2,0x558D,
-0x55CF,0x55D5,0x55E2,0x55D6,0x55C8,0x55F2,0x55CD,0x55D9,
-0x55C2,0x5714,0x5853,0x5868,0x5864,0x584F,0x584D,0x5849,
-0x586F,0x5855,0x584E,0x585D,0x5859,0x5865,0x585B,0x583D,
-0x5863,0x5871,0x58FC,0x5AC7,0x5AC4,0x5ACB,0x5ABA,0x5AB8,
-0x5AB1,0x5AB5,0x5AB0,0x5ABF,0x5AC8,0x5ABB,0x5AC6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5AB7,0x5AC0,0x5ACA,0x5AB4,0x5AB6,0x5ACD,0x5AB9,0x5A90,
-0x5BD6,0x5BD8,0x5BD9,0x5C1F,0x5C33,0x5D71,0x5D63,0x5D4A,
-0x5D65,0x5D72,0x5D6C,0x5D5E,0x5D68,0x5D67,0x5D62,0x5DF0,
-0x5E4F,0x5E4E,0x5E4A,0x5E4D,0x5E4B,0x5EC5,0x5ECC,0x5EC6,
-0x5ECB,0x5EC7,0x5F40,0x5FAF,0x5FAD,0x60F7,0x6149,0x614A,
-0x612B,0x6145,0x6136,0x6132,0x612E,0x6146,0x612F,0x614F,
-0x6129,0x6140,0x6220,0x9168,0x6223,0x6225,0x6224,0x63C5,
-0x63F1,0x63EB,0x6410,0x6412,0x6409,0x6420,0x6424, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6433,0x6443,0x641F,0x6415,0x6418,0x6439,0x6437,
-0x6422,0x6423,0x640C,0x6426,0x6430,0x6428,0x6441,0x6435,
-0x642F,0x640A,0x641A,0x6440,0x6425,0x6427,0x640B,0x63E7,
-0x641B,0x642E,0x6421,0x640E,0x656F,0x6592,0x65D3,0x6686,
-0x668C,0x6695,0x6690,0x668B,0x668A,0x6699,0x6694,0x6678,
-0x6720,0x6966,0x695F,0x6938,0x694E,0x6962,0x6971,0x693F,
-0x6945,0x696A,0x6939,0x6942,0x6957,0x6959,0x697A,0x6948,
-0x6949,0x6935,0x696C,0x6933,0x693D,0x6965,0x68F0,0x6978,
-0x6934,0x6969,0x6940,0x696F,0x6944,0x6976,0x6958,0x6941,
-0x6974,0x694C,0x693B,0x694B,0x6937,0x695C,0x694F,0x6951,
-0x6932,0x6952,0x692F,0x697B,0x693C,0x6B46,0x6B45,0x6B43,
-0x6B42,0x6B48,0x6B41,0x6B9B,0xFA0D,0x6BFB,0x6BFC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6BF9,0x6BF7,0x6BF8,0x6E9B,0x6ED6,0x6EC8,0x6E8F,0x6EC0,
-0x6E9F,0x6E93,0x6E94,0x6EA0,0x6EB1,0x6EB9,0x6EC6,0x6ED2,
-0x6EBD,0x6EC1,0x6E9E,0x6EC9,0x6EB7,0x6EB0,0x6ECD,0x6EA6,
-0x6ECF,0x6EB2,0x6EBE,0x6EC3,0x6EDC,0x6ED8,0x6E99,0x6E92,
-0x6E8E,0x6E8D,0x6EA4,0x6EA1,0x6EBF,0x6EB3,0x6ED0,0x6ECA,
-0x6E97,0x6EAE,0x6EA3,0x7147,0x7154,0x7152,0x7163,0x7160,
-0x7141,0x715D,0x7162,0x7172,0x7178,0x716A,0x7161,0x7142,
-0x7158,0x7143,0x714B,0x7170,0x715F,0x7150,0x7153, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7144,0x714D,0x715A,0x724F,0x728D,0x728C,0x7291,
-0x7290,0x728E,0x733C,0x7342,0x733B,0x733A,0x7340,0x734A,
-0x7349,0x7444,0x744A,0x744B,0x7452,0x7451,0x7457,0x7440,
-0x744F,0x7450,0x744E,0x7442,0x7446,0x744D,0x7454,0x74E1,
-0x74FF,0x74FE,0x74FD,0x751D,0x7579,0x7577,0x6983,0x75EF,
-0x760F,0x7603,0x75F7,0x75FE,0x75FC,0x75F9,0x75F8,0x7610,
-0x75FB,0x75F6,0x75ED,0x75F5,0x75FD,0x7699,0x76B5,0x76DD,
-0x7755,0x775F,0x7760,0x7752,0x7756,0x775A,0x7769,0x7767,
-0x7754,0x7759,0x776D,0x77E0,0x7887,0x789A,0x7894,0x788F,
-0x7884,0x7895,0x7885,0x7886,0x78A1,0x7883,0x7879,0x7899,
-0x7880,0x7896,0x787B,0x797C,0x7982,0x797D,0x7979,0x7A11,
-0x7A18,0x7A19,0x7A12,0x7A17,0x7A15,0x7A22,0x7A13, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A1B,0x7A10,0x7AA3,0x7AA2,0x7A9E,0x7AEB,0x7B66,0x7B64,
-0x7B6D,0x7B74,0x7B69,0x7B72,0x7B65,0x7B73,0x7B71,0x7B70,
-0x7B61,0x7B78,0x7B76,0x7B63,0x7CB2,0x7CB4,0x7CAF,0x7D88,
-0x7D86,0x7D80,0x7D8D,0x7D7F,0x7D85,0x7D7A,0x7D8E,0x7D7B,
-0x7D83,0x7D7C,0x7D8C,0x7D94,0x7D84,0x7D7D,0x7D92,0x7F6D,
-0x7F6B,0x7F67,0x7F68,0x7F6C,0x7FA6,0x7FA5,0x7FA7,0x7FDB,
-0x7FDC,0x8021,0x8164,0x8160,0x8177,0x815C,0x8169,0x815B,
-0x8162,0x8172,0x6721,0x815E,0x8176,0x8167,0x816F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8144,0x8161,0x821D,0x8249,0x8244,0x8240,0x8242,
-0x8245,0x84F1,0x843F,0x8456,0x8476,0x8479,0x848F,0x848D,
-0x8465,0x8451,0x8440,0x8486,0x8467,0x8430,0x844D,0x847D,
-0x845A,0x8459,0x8474,0x8473,0x845D,0x8507,0x845E,0x8437,
-0x843A,0x8434,0x847A,0x8443,0x8478,0x8432,0x8445,0x8429,
-0x83D9,0x844B,0x842F,0x8442,0x842D,0x845F,0x8470,0x8439,
-0x844E,0x844C,0x8452,0x846F,0x84C5,0x848E,0x843B,0x8447,
-0x8436,0x8433,0x8468,0x847E,0x8444,0x842B,0x8460,0x8454,
-0x846E,0x8450,0x870B,0x8704,0x86F7,0x870C,0x86FA,0x86D6,
-0x86F5,0x874D,0x86F8,0x870E,0x8709,0x8701,0x86F6,0x870D,
-0x8705,0x88D6,0x88CB,0x88CD,0x88CE,0x88DE,0x88DB,0x88DA,
-0x88CC,0x88D0,0x8985,0x899B,0x89DF,0x89E5,0x89E4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x89E1,0x89E0,0x89E2,0x89DC,0x89E6,0x8A76,0x8A86,0x8A7F,
-0x8A61,0x8A3F,0x8A77,0x8A82,0x8A84,0x8A75,0x8A83,0x8A81,
-0x8A74,0x8A7A,0x8C3C,0x8C4B,0x8C4A,0x8C65,0x8C64,0x8C66,
-0x8C86,0x8C84,0x8C85,0x8CCC,0x8D68,0x8D69,0x8D91,0x8D8C,
-0x8D8E,0x8D8F,0x8D8D,0x8D93,0x8D94,0x8D90,0x8D92,0x8DF0,
-0x8DE0,0x8DEC,0x8DF1,0x8DEE,0x8DD0,0x8DE9,0x8DE3,0x8DE2,
-0x8DE7,0x8DF2,0x8DEB,0x8DF4,0x8F06,0x8EFF,0x8F01,0x8F00,
-0x8F05,0x8F07,0x8F08,0x8F02,0x8F0B,0x9052,0x903F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9044,0x9049,0x903D,0x9110,0x910D,0x910F,0x9111,
-0x9116,0x9114,0x910B,0x910E,0x916E,0x916F,0x9248,0x9252,
-0x9230,0x923A,0x9266,0x9233,0x9265,0x925E,0x9283,0x922E,
-0x924A,0x9246,0x926D,0x926C,0x924F,0x9260,0x9267,0x926F,
-0x9236,0x9261,0x9270,0x9231,0x9254,0x9263,0x9250,0x9272,
-0x924E,0x9253,0x924C,0x9256,0x9232,0x959F,0x959C,0x959E,
-0x959B,0x9692,0x9693,0x9691,0x9697,0x96CE,0x96FA,0x96FD,
-0x96F8,0x96F5,0x9773,0x9777,0x9778,0x9772,0x980F,0x980D,
-0x980E,0x98AC,0x98F6,0x98F9,0x99AF,0x99B2,0x99B0,0x99B5,
-0x9AAD,0x9AAB,0x9B5B,0x9CEA,0x9CED,0x9CE7,0x9E80,0x9EFD,
-0x50E6,0x50D4,0x50D7,0x50E8,0x50F3,0x50DB,0x50EA,0x50DD,
-0x50E4,0x50D3,0x50EC,0x50F0,0x50EF,0x50E3,0x50E0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x51D8,0x5280,0x5281,0x52E9,0x52EB,0x5330,0x53AC,0x5627,
-0x5615,0x560C,0x5612,0x55FC,0x560F,0x561C,0x5601,0x5613,
-0x5602,0x55FA,0x561D,0x5604,0x55FF,0x55F9,0x5889,0x587C,
-0x5890,0x5898,0x5886,0x5881,0x587F,0x5874,0x588B,0x587A,
-0x5887,0x5891,0x588E,0x5876,0x5882,0x5888,0x587B,0x5894,
-0x588F,0x58FE,0x596B,0x5ADC,0x5AEE,0x5AE5,0x5AD5,0x5AEA,
-0x5ADA,0x5AED,0x5AEB,0x5AF3,0x5AE2,0x5AE0,0x5ADB,0x5AEC,
-0x5ADE,0x5ADD,0x5AD9,0x5AE8,0x5ADF,0x5B77,0x5BE0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5BE3,0x5C63,0x5D82,0x5D80,0x5D7D,0x5D86,0x5D7A,
-0x5D81,0x5D77,0x5D8A,0x5D89,0x5D88,0x5D7E,0x5D7C,0x5D8D,
-0x5D79,0x5D7F,0x5E58,0x5E59,0x5E53,0x5ED8,0x5ED1,0x5ED7,
-0x5ECE,0x5EDC,0x5ED5,0x5ED9,0x5ED2,0x5ED4,0x5F44,0x5F43,
-0x5F6F,0x5FB6,0x612C,0x6128,0x6141,0x615E,0x6171,0x6173,
-0x6152,0x6153,0x6172,0x616C,0x6180,0x6174,0x6154,0x617A,
-0x615B,0x6165,0x613B,0x616A,0x6161,0x6156,0x6229,0x6227,
-0x622B,0x642B,0x644D,0x645B,0x645D,0x6474,0x6476,0x6472,
-0x6473,0x647D,0x6475,0x6466,0x64A6,0x644E,0x6482,0x645E,
-0x645C,0x644B,0x6453,0x6460,0x6450,0x647F,0x643F,0x646C,
-0x646B,0x6459,0x6465,0x6477,0x6573,0x65A0,0x66A1,0x66A0,
-0x669F,0x6705,0x6704,0x6722,0x69B1,0x69B6,0x69C9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x69A0,0x69CE,0x6996,0x69B0,0x69AC,0x69BC,0x6991,0x6999,
-0x698E,0x69A7,0x698D,0x69A9,0x69BE,0x69AF,0x69BF,0x69C4,
-0x69BD,0x69A4,0x69D4,0x69B9,0x69CA,0x699A,0x69CF,0x69B3,
-0x6993,0x69AA,0x69A1,0x699E,0x69D9,0x6997,0x6990,0x69C2,
-0x69B5,0x69A5,0x69C6,0x6B4A,0x6B4D,0x6B4B,0x6B9E,0x6B9F,
-0x6BA0,0x6BC3,0x6BC4,0x6BFE,0x6ECE,0x6EF5,0x6EF1,0x6F03,
-0x6F25,0x6EF8,0x6F37,0x6EFB,0x6F2E,0x6F09,0x6F4E,0x6F19,
-0x6F1A,0x6F27,0x6F18,0x6F3B,0x6F12,0x6EED,0x6F0A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6F36,0x6F73,0x6EF9,0x6EEE,0x6F2D,0x6F40,0x6F30,
-0x6F3C,0x6F35,0x6EEB,0x6F07,0x6F0E,0x6F43,0x6F05,0x6EFD,
-0x6EF6,0x6F39,0x6F1C,0x6EFC,0x6F3A,0x6F1F,0x6F0D,0x6F1E,
-0x6F08,0x6F21,0x7187,0x7190,0x7189,0x7180,0x7185,0x7182,
-0x718F,0x717B,0x7186,0x7181,0x7197,0x7244,0x7253,0x7297,
-0x7295,0x7293,0x7343,0x734D,0x7351,0x734C,0x7462,0x7473,
-0x7471,0x7475,0x7472,0x7467,0x746E,0x7500,0x7502,0x7503,
-0x757D,0x7590,0x7616,0x7608,0x760C,0x7615,0x7611,0x760A,
-0x7614,0x76B8,0x7781,0x777C,0x7785,0x7782,0x776E,0x7780,
-0x776F,0x777E,0x7783,0x78B2,0x78AA,0x78B4,0x78AD,0x78A8,
-0x787E,0x78AB,0x789E,0x78A5,0x78A0,0x78AC,0x78A2,0x78A4,
-0x7998,0x798A,0x798B,0x7996,0x7995,0x7994,0x7993, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7997,0x7988,0x7992,0x7990,0x7A2B,0x7A4A,0x7A30,0x7A2F,
-0x7A28,0x7A26,0x7AA8,0x7AAB,0x7AAC,0x7AEE,0x7B88,0x7B9C,
-0x7B8A,0x7B91,0x7B90,0x7B96,0x7B8D,0x7B8C,0x7B9B,0x7B8E,
-0x7B85,0x7B98,0x5284,0x7B99,0x7BA4,0x7B82,0x7CBB,0x7CBF,
-0x7CBC,0x7CBA,0x7DA7,0x7DB7,0x7DC2,0x7DA3,0x7DAA,0x7DC1,
-0x7DC0,0x7DC5,0x7D9D,0x7DCE,0x7DC4,0x7DC6,0x7DCB,0x7DCC,
-0x7DAF,0x7DB9,0x7D96,0x7DBC,0x7D9F,0x7DA6,0x7DAE,0x7DA9,
-0x7DA1,0x7DC9,0x7F73,0x7FE2,0x7FE3,0x7FE5,0x7FDE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8024,0x805D,0x805C,0x8189,0x8186,0x8183,0x8187,
-0x818D,0x818C,0x818B,0x8215,0x8497,0x84A4,0x84A1,0x849F,
-0x84BA,0x84CE,0x84C2,0x84AC,0x84AE,0x84AB,0x84B9,0x84B4,
-0x84C1,0x84CD,0x84AA,0x849A,0x84B1,0x84D0,0x849D,0x84A7,
-0x84BB,0x84A2,0x8494,0x84C7,0x84CC,0x849B,0x84A9,0x84AF,
-0x84A8,0x84D6,0x8498,0x84B6,0x84CF,0x84A0,0x84D7,0x84D4,
-0x84D2,0x84DB,0x84B0,0x8491,0x8661,0x8733,0x8723,0x8728,
-0x876B,0x8740,0x872E,0x871E,0x8721,0x8719,0x871B,0x8743,
-0x872C,0x8741,0x873E,0x8746,0x8720,0x8732,0x872A,0x872D,
-0x873C,0x8712,0x873A,0x8731,0x8735,0x8742,0x8726,0x8727,
-0x8738,0x8724,0x871A,0x8730,0x8711,0x88F7,0x88E7,0x88F1,
-0x88F2,0x88FA,0x88FE,0x88EE,0x88FC,0x88F6,0x88FB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x88F0,0x88EC,0x88EB,0x899D,0x89A1,0x899F,0x899E,0x89E9,
-0x89EB,0x89E8,0x8AAB,0x8A99,0x8A8B,0x8A92,0x8A8F,0x8A96,
-0x8C3D,0x8C68,0x8C69,0x8CD5,0x8CCF,0x8CD7,0x8D96,0x8E09,
-0x8E02,0x8DFF,0x8E0D,0x8DFD,0x8E0A,0x8E03,0x8E07,0x8E06,
-0x8E05,0x8DFE,0x8E00,0x8E04,0x8F10,0x8F11,0x8F0E,0x8F0D,
-0x9123,0x911C,0x9120,0x9122,0x911F,0x911D,0x911A,0x9124,
-0x9121,0x911B,0x917A,0x9172,0x9179,0x9173,0x92A5,0x92A4,
-0x9276,0x929B,0x927A,0x92A0,0x9294,0x92AA,0x928D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x92A6,0x929A,0x92AB,0x9279,0x9297,0x927F,0x92A3,
-0x92EE,0x928E,0x9282,0x9295,0x92A2,0x927D,0x9288,0x92A1,
-0x928A,0x9286,0x928C,0x9299,0x92A7,0x927E,0x9287,0x92A9,
-0x929D,0x928B,0x922D,0x969E,0x96A1,0x96FF,0x9758,0x977D,
-0x977A,0x977E,0x9783,0x9780,0x9782,0x977B,0x9784,0x9781,
-0x977F,0x97CE,0x97CD,0x9816,0x98AD,0x98AE,0x9902,0x9900,
-0x9907,0x999D,0x999C,0x99C3,0x99B9,0x99BB,0x99BA,0x99C2,
-0x99BD,0x99C7,0x9AB1,0x9AE3,0x9AE7,0x9B3E,0x9B3F,0x9B60,
-0x9B61,0x9B5F,0x9CF1,0x9CF2,0x9CF5,0x9EA7,0x50FF,0x5103,
-0x5130,0x50F8,0x5106,0x5107,0x50F6,0x50FE,0x510B,0x510C,
-0x50FD,0x510A,0x528B,0x528C,0x52F1,0x52EF,0x5648,0x5642,
-0x564C,0x5635,0x5641,0x564A,0x5649,0x5646,0x5658, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x565A,0x5640,0x5633,0x563D,0x562C,0x563E,0x5638,0x562A,
-0x563A,0x571A,0x58AB,0x589D,0x58B1,0x58A0,0x58A3,0x58AF,
-0x58AC,0x58A5,0x58A1,0x58FF,0x5AFF,0x5AF4,0x5AFD,0x5AF7,
-0x5AF6,0x5B03,0x5AF8,0x5B02,0x5AF9,0x5B01,0x5B07,0x5B05,
-0x5B0F,0x5C67,0x5D99,0x5D97,0x5D9F,0x5D92,0x5DA2,0x5D93,
-0x5D95,0x5DA0,0x5D9C,0x5DA1,0x5D9A,0x5D9E,0x5E69,0x5E5D,
-0x5E60,0x5E5C,0x7DF3,0x5EDB,0x5EDE,0x5EE1,0x5F49,0x5FB2,
-0x618B,0x6183,0x6179,0x61B1,0x61B0,0x61A2,0x6189, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x619B,0x6193,0x61AF,0x61AD,0x619F,0x6192,0x61AA,
-0x61A1,0x618D,0x6166,0x61B3,0x622D,0x646E,0x6470,0x6496,
-0x64A0,0x6485,0x6497,0x649C,0x648F,0x648B,0x648A,0x648C,
-0x64A3,0x649F,0x6468,0x64B1,0x6498,0x6576,0x657A,0x6579,
-0x657B,0x65B2,0x65B3,0x66B5,0x66B0,0x66A9,0x66B2,0x66B7,
-0x66AA,0x66AF,0x6A00,0x6A06,0x6A17,0x69E5,0x69F8,0x6A15,
-0x69F1,0x69E4,0x6A20,0x69FF,0x69EC,0x69E2,0x6A1B,0x6A1D,
-0x69FE,0x6A27,0x69F2,0x69EE,0x6A14,0x69F7,0x69E7,0x6A40,
-0x6A08,0x69E6,0x69FB,0x6A0D,0x69FC,0x69EB,0x6A09,0x6A04,
-0x6A18,0x6A25,0x6A0F,0x69F6,0x6A26,0x6A07,0x69F4,0x6A16,
-0x6B51,0x6BA5,0x6BA3,0x6BA2,0x6BA6,0x6C01,0x6C00,0x6BFF,
-0x6C02,0x6F41,0x6F26,0x6F7E,0x6F87,0x6FC6,0x6F92, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6F8D,0x6F89,0x6F8C,0x6F62,0x6F4F,0x6F85,0x6F5A,0x6F96,
-0x6F76,0x6F6C,0x6F82,0x6F55,0x6F72,0x6F52,0x6F50,0x6F57,
-0x6F94,0x6F93,0x6F5D,0x6F00,0x6F61,0x6F6B,0x6F7D,0x6F67,
-0x6F90,0x6F53,0x6F8B,0x6F69,0x6F7F,0x6F95,0x6F63,0x6F77,
-0x6F6A,0x6F7B,0x71B2,0x71AF,0x719B,0x71B0,0x71A0,0x719A,
-0x71A9,0x71B5,0x719D,0x71A5,0x719E,0x71A4,0x71A1,0x71AA,
-0x719C,0x71A7,0x71B3,0x7298,0x729A,0x7358,0x7352,0x735E,
-0x735F,0x7360,0x735D,0x735B,0x7361,0x735A,0x7359, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7362,0x7487,0x7489,0x748A,0x7486,0x7481,0x747D,
-0x7485,0x7488,0x747C,0x7479,0x7508,0x7507,0x757E,0x7625,
-0x761E,0x7619,0x761D,0x761C,0x7623,0x761A,0x7628,0x761B,
-0x769C,0x769D,0x769E,0x769B,0x778D,0x778F,0x7789,0x7788,
-0x78CD,0x78BB,0x78CF,0x78CC,0x78D1,0x78CE,0x78D4,0x78C8,
-0x78C3,0x78C4,0x78C9,0x799A,0x79A1,0x79A0,0x799C,0x79A2,
-0x799B,0x6B76,0x7A39,0x7AB2,0x7AB4,0x7AB3,0x7BB7,0x7BCB,
-0x7BBE,0x7BAC,0x7BCE,0x7BAF,0x7BB9,0x7BCA,0x7BB5,0x7CC5,
-0x7CC8,0x7CCC,0x7CCB,0x7DF7,0x7DDB,0x7DEA,0x7DE7,0x7DD7,
-0x7DE1,0x7E03,0x7DFA,0x7DE6,0x7DF6,0x7DF1,0x7DF0,0x7DEE,
-0x7DDF,0x7F76,0x7FAC,0x7FB0,0x7FAD,0x7FED,0x7FEB,0x7FEA,
-0x7FEC,0x7FE6,0x7FE8,0x8064,0x8067,0x81A3,0x819F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x819E,0x8195,0x81A2,0x8199,0x8197,0x8216,0x824F,0x8253,
-0x8252,0x8250,0x824E,0x8251,0x8524,0x853B,0x850F,0x8500,
-0x8529,0x850E,0x8509,0x850D,0x851F,0x850A,0x8527,0x851C,
-0x84FB,0x852B,0x84FA,0x8508,0x850C,0x84F4,0x852A,0x84F2,
-0x8515,0x84F7,0x84EB,0x84F3,0x84FC,0x8512,0x84EA,0x84E9,
-0x8516,0x84FE,0x8528,0x851D,0x852E,0x8502,0x84FD,0x851E,
-0x84F6,0x8531,0x8526,0x84E7,0x84E8,0x84F0,0x84EF,0x84F9,
-0x8518,0x8520,0x8530,0x850B,0x8519,0x852F,0x8662, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8756,0x8763,0x8764,0x8777,0x87E1,0x8773,0x8758,
-0x8754,0x875B,0x8752,0x8761,0x875A,0x8751,0x875E,0x876D,
-0x876A,0x8750,0x874E,0x875F,0x875D,0x876F,0x876C,0x877A,
-0x876E,0x875C,0x8765,0x874F,0x877B,0x8775,0x8762,0x8767,
-0x8769,0x885A,0x8905,0x890C,0x8914,0x890B,0x8917,0x8918,
-0x8919,0x8906,0x8916,0x8911,0x890E,0x8909,0x89A2,0x89A4,
-0x89A3,0x89ED,0x89F0,0x89EC,0x8ACF,0x8AC6,0x8AB8,0x8AD3,
-0x8AD1,0x8AD4,0x8AD5,0x8ABB,0x8AD7,0x8ABE,0x8AC0,0x8AC5,
-0x8AD8,0x8AC3,0x8ABA,0x8ABD,0x8AD9,0x8C3E,0x8C4D,0x8C8F,
-0x8CE5,0x8CDF,0x8CD9,0x8CE8,0x8CDA,0x8CDD,0x8CE7,0x8DA0,
-0x8D9C,0x8DA1,0x8D9B,0x8E20,0x8E23,0x8E25,0x8E24,0x8E2E,
-0x8E15,0x8E1B,0x8E16,0x8E11,0x8E19,0x8E26,0x8E27, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8E14,0x8E12,0x8E18,0x8E13,0x8E1C,0x8E17,0x8E1A,0x8F2C,
-0x8F24,0x8F18,0x8F1A,0x8F20,0x8F23,0x8F16,0x8F17,0x9073,
-0x9070,0x906F,0x9067,0x906B,0x912F,0x912B,0x9129,0x912A,
-0x9132,0x9126,0x912E,0x9185,0x9186,0x918A,0x9181,0x9182,
-0x9184,0x9180,0x92D0,0x92C3,0x92C4,0x92C0,0x92D9,0x92B6,
-0x92CF,0x92F1,0x92DF,0x92D8,0x92E9,0x92D7,0x92DD,0x92CC,
-0x92EF,0x92C2,0x92E8,0x92CA,0x92C8,0x92CE,0x92E6,0x92CD,
-0x92D5,0x92C9,0x92E0,0x92DE,0x92E7,0x92D1,0x92D3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x92B5,0x92E1,0x92C6,0x92B4,0x957C,0x95AC,0x95AB,
-0x95AE,0x95B0,0x96A4,0x96A2,0x96D3,0x9705,0x9708,0x9702,
-0x975A,0x978A,0x978E,0x9788,0x97D0,0x97CF,0x981E,0x981D,
-0x9826,0x9829,0x9828,0x9820,0x981B,0x9827,0x98B2,0x9908,
-0x98FA,0x9911,0x9914,0x9916,0x9917,0x9915,0x99DC,0x99CD,
-0x99CF,0x99D3,0x99D4,0x99CE,0x99C9,0x99D6,0x99D8,0x99CB,
-0x99D7,0x99CC,0x9AB3,0x9AEC,0x9AEB,0x9AF3,0x9AF2,0x9AF1,
-0x9B46,0x9B43,0x9B67,0x9B74,0x9B71,0x9B66,0x9B76,0x9B75,
-0x9B70,0x9B68,0x9B64,0x9B6C,0x9CFC,0x9CFA,0x9CFD,0x9CFF,
-0x9CF7,0x9D07,0x9D00,0x9CF9,0x9CFB,0x9D08,0x9D05,0x9D04,
-0x9E83,0x9ED3,0x9F0F,0x9F10,0x511C,0x5113,0x5117,0x511A,
-0x5111,0x51DE,0x5334,0x53E1,0x5670,0x5660,0x566E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5673,0x5666,0x5663,0x566D,0x5672,0x565E,0x5677,0x571C,
-0x571B,0x58C8,0x58BD,0x58C9,0x58BF,0x58BA,0x58C2,0x58BC,
-0x58C6,0x5B17,0x5B19,0x5B1B,0x5B21,0x5B14,0x5B13,0x5B10,
-0x5B16,0x5B28,0x5B1A,0x5B20,0x5B1E,0x5BEF,0x5DAC,0x5DB1,
-0x5DA9,0x5DA7,0x5DB5,0x5DB0,0x5DAE,0x5DAA,0x5DA8,0x5DB2,
-0x5DAD,0x5DAF,0x5DB4,0x5E67,0x5E68,0x5E66,0x5E6F,0x5EE9,
-0x5EE7,0x5EE6,0x5EE8,0x5EE5,0x5F4B,0x5FBC,0x619D,0x61A8,
-0x6196,0x61C5,0x61B4,0x61C6,0x61C1,0x61CC,0x61BA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x61BF,0x61B8,0x618C,0x64D7,0x64D6,0x64D0,0x64CF,
-0x64C9,0x64BD,0x6489,0x64C3,0x64DB,0x64F3,0x64D9,0x6533,
-0x657F,0x657C,0x65A2,0x66C8,0x66BE,0x66C0,0x66CA,0x66CB,
-0x66CF,0x66BD,0x66BB,0x66BA,0x66CC,0x6723,0x6A34,0x6A66,
-0x6A49,0x6A67,0x6A32,0x6A68,0x6A3E,0x6A5D,0x6A6D,0x6A76,
-0x6A5B,0x6A51,0x6A28,0x6A5A,0x6A3B,0x6A3F,0x6A41,0x6A6A,
-0x6A64,0x6A50,0x6A4F,0x6A54,0x6A6F,0x6A69,0x6A60,0x6A3C,
-0x6A5E,0x6A56,0x6A55,0x6A4D,0x6A4E,0x6A46,0x6B55,0x6B54,
-0x6B56,0x6BA7,0x6BAA,0x6BAB,0x6BC8,0x6BC7,0x6C04,0x6C03,
-0x6C06,0x6FAD,0x6FCB,0x6FA3,0x6FC7,0x6FBC,0x6FCE,0x6FC8,
-0x6F5E,0x6FC4,0x6FBD,0x6F9E,0x6FCA,0x6FA8,0x7004,0x6FA5,
-0x6FAE,0x6FBA,0x6FAC,0x6FAA,0x6FCF,0x6FBF,0x6FB8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6FA2,0x6FC9,0x6FAB,0x6FCD,0x6FAF,0x6FB2,0x6FB0,0x71C5,
-0x71C2,0x71BF,0x71B8,0x71D6,0x71C0,0x71C1,0x71CB,0x71D4,
-0x71CA,0x71C7,0x71CF,0x71BD,0x71D8,0x71BC,0x71C6,0x71DA,
-0x71DB,0x729D,0x729E,0x7369,0x7366,0x7367,0x736C,0x7365,
-0x736B,0x736A,0x747F,0x749A,0x74A0,0x7494,0x7492,0x7495,
-0x74A1,0x750B,0x7580,0x762F,0x762D,0x7631,0x763D,0x7633,
-0x763C,0x7635,0x7632,0x7630,0x76BB,0x76E6,0x779A,0x779D,
-0x77A1,0x779C,0x779B,0x77A2,0x77A3,0x7795,0x7799, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7797,0x78DD,0x78E9,0x78E5,0x78EA,0x78DE,0x78E3,
-0x78DB,0x78E1,0x78E2,0x78ED,0x78DF,0x78E0,0x79A4,0x7A44,
-0x7A48,0x7A47,0x7AB6,0x7AB8,0x7AB5,0x7AB1,0x7AB7,0x7BDE,
-0x7BE3,0x7BE7,0x7BDD,0x7BD5,0x7BE5,0x7BDA,0x7BE8,0x7BF9,
-0x7BD4,0x7BEA,0x7BE2,0x7BDC,0x7BEB,0x7BD8,0x7BDF,0x7CD2,
-0x7CD4,0x7CD7,0x7CD0,0x7CD1,0x7E12,0x7E21,0x7E17,0x7E0C,
-0x7E1F,0x7E20,0x7E13,0x7E0E,0x7E1C,0x7E15,0x7E1A,0x7E22,
-0x7E0B,0x7E0F,0x7E16,0x7E0D,0x7E14,0x7E25,0x7E24,0x7F43,
-0x7F7B,0x7F7C,0x7F7A,0x7FB1,0x7FEF,0x802A,0x8029,0x806C,
-0x81B1,0x81A6,0x81AE,0x81B9,0x81B5,0x81AB,0x81B0,0x81AC,
-0x81B4,0x81B2,0x81B7,0x81A7,0x81F2,0x8255,0x8256,0x8257,
-0x8556,0x8545,0x856B,0x854D,0x8553,0x8561,0x8558, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8540,0x8546,0x8564,0x8541,0x8562,0x8544,0x8551,0x8547,
-0x8563,0x853E,0x855B,0x8571,0x854E,0x856E,0x8575,0x8555,
-0x8567,0x8560,0x858C,0x8566,0x855D,0x8554,0x8565,0x856C,
-0x8663,0x8665,0x8664,0x879B,0x878F,0x8797,0x8793,0x8792,
-0x8788,0x8781,0x8796,0x8798,0x8779,0x8787,0x87A3,0x8785,
-0x8790,0x8791,0x879D,0x8784,0x8794,0x879C,0x879A,0x8789,
-0x891E,0x8926,0x8930,0x892D,0x892E,0x8927,0x8931,0x8922,
-0x8929,0x8923,0x892F,0x892C,0x891F,0x89F1,0x8AE0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8AE2,0x8AF2,0x8AF4,0x8AF5,0x8ADD,0x8B14,0x8AE4,
-0x8ADF,0x8AF0,0x8AC8,0x8ADE,0x8AE1,0x8AE8,0x8AFF,0x8AEF,
-0x8AFB,0x8C91,0x8C92,0x8C90,0x8CF5,0x8CEE,0x8CF1,0x8CF0,
-0x8CF3,0x8D6C,0x8D6E,0x8DA5,0x8DA7,0x8E33,0x8E3E,0x8E38,
-0x8E40,0x8E45,0x8E36,0x8E3C,0x8E3D,0x8E41,0x8E30,0x8E3F,
-0x8EBD,0x8F36,0x8F2E,0x8F35,0x8F32,0x8F39,0x8F37,0x8F34,
-0x9076,0x9079,0x907B,0x9086,0x90FA,0x9133,0x9135,0x9136,
-0x9193,0x9190,0x9191,0x918D,0x918F,0x9327,0x931E,0x9308,
-0x931F,0x9306,0x930F,0x937A,0x9338,0x933C,0x931B,0x9323,
-0x9312,0x9301,0x9346,0x932D,0x930E,0x930D,0x92CB,0x931D,
-0x92FA,0x9325,0x9313,0x92F9,0x92F7,0x9334,0x9302,0x9324,
-0x92FF,0x9329,0x9339,0x9335,0x932A,0x9314,0x930C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x930B,0x92FE,0x9309,0x9300,0x92FB,0x9316,0x95BC,0x95CD,
-0x95BE,0x95B9,0x95BA,0x95B6,0x95BF,0x95B5,0x95BD,0x96A9,
-0x96D4,0x970B,0x9712,0x9710,0x9799,0x9797,0x9794,0x97F0,
-0x97F8,0x9835,0x982F,0x9832,0x9924,0x991F,0x9927,0x9929,
-0x999E,0x99EE,0x99EC,0x99E5,0x99E4,0x99F0,0x99E3,0x99EA,
-0x99E9,0x99E7,0x9AB9,0x9ABF,0x9AB4,0x9ABB,0x9AF6,0x9AFA,
-0x9AF9,0x9AF7,0x9B33,0x9B80,0x9B85,0x9B87,0x9B7C,0x9B7E,
-0x9B7B,0x9B82,0x9B93,0x9B92,0x9B90,0x9B7A,0x9B95, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9B7D,0x9B88,0x9D25,0x9D17,0x9D20,0x9D1E,0x9D14,
-0x9D29,0x9D1D,0x9D18,0x9D22,0x9D10,0x9D19,0x9D1F,0x9E88,
-0x9E86,0x9E87,0x9EAE,0x9EAD,0x9ED5,0x9ED6,0x9EFA,0x9F12,
-0x9F3D,0x5126,0x5125,0x5122,0x5124,0x5120,0x5129,0x52F4,
-0x5693,0x568C,0x568D,0x5686,0x5684,0x5683,0x567E,0x5682,
-0x567F,0x5681,0x58D6,0x58D4,0x58CF,0x58D2,0x5B2D,0x5B25,
-0x5B32,0x5B23,0x5B2C,0x5B27,0x5B26,0x5B2F,0x5B2E,0x5B7B,
-0x5BF1,0x5BF2,0x5DB7,0x5E6C,0x5E6A,0x5FBE,0x5FBB,0x61C3,
-0x61B5,0x61BC,0x61E7,0x61E0,0x61E5,0x61E4,0x61E8,0x61DE,
-0x64EF,0x64E9,0x64E3,0x64EB,0x64E4,0x64E8,0x6581,0x6580,
-0x65B6,0x65DA,0x66D2,0x6A8D,0x6A96,0x6A81,0x6AA5,0x6A89,
-0x6A9F,0x6A9B,0x6AA1,0x6A9E,0x6A87,0x6A93,0x6A8E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6A95,0x6A83,0x6AA8,0x6AA4,0x6A91,0x6A7F,0x6AA6,0x6A9A,
-0x6A85,0x6A8C,0x6A92,0x6B5B,0x6BAD,0x6C09,0x6FCC,0x6FA9,
-0x6FF4,0x6FD4,0x6FE3,0x6FDC,0x6FED,0x6FE7,0x6FE6,0x6FDE,
-0x6FF2,0x6FDD,0x6FE2,0x6FE8,0x71E1,0x71F1,0x71E8,0x71F2,
-0x71E4,0x71F0,0x71E2,0x7373,0x736E,0x736F,0x7497,0x74B2,
-0x74AB,0x7490,0x74AA,0x74AD,0x74B1,0x74A5,0x74AF,0x7510,
-0x7511,0x7512,0x750F,0x7584,0x7643,0x7648,0x7649,0x7647,
-0x76A4,0x76E9,0x77B5,0x77AB,0x77B2,0x77B7,0x77B6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x77B4,0x77B1,0x77A8,0x77F0,0x78F3,0x78FD,0x7902,
-0x78FB,0x78FC,0x78F2,0x7905,0x78F9,0x78FE,0x7904,0x79AB,
-0x79A8,0x7A5C,0x7A5B,0x7A56,0x7A58,0x7A54,0x7A5A,0x7ABE,
-0x7AC0,0x7AC1,0x7C05,0x7C0F,0x7BF2,0x7C00,0x7BFF,0x7BFB,
-0x7C0E,0x7BF4,0x7C0B,0x7BF3,0x7C02,0x7C09,0x7C03,0x7C01,
-0x7BF8,0x7BFD,0x7C06,0x7BF0,0x7BF1,0x7C10,0x7C0A,0x7CE8,
-0x7E2D,0x7E3C,0x7E42,0x7E33,0x9848,0x7E38,0x7E2A,0x7E49,
-0x7E40,0x7E47,0x7E29,0x7E4C,0x7E30,0x7E3B,0x7E36,0x7E44,
-0x7E3A,0x7F45,0x7F7F,0x7F7E,0x7F7D,0x7FF4,0x7FF2,0x802C,
-0x81BB,0x81C4,0x81CC,0x81CA,0x81C5,0x81C7,0x81BC,0x81E9,
-0x825B,0x825A,0x825C,0x8583,0x8580,0x858F,0x85A7,0x8595,
-0x85A0,0x858B,0x85A3,0x857B,0x85A4,0x859A,0x859E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8577,0x857C,0x8589,0x85A1,0x857A,0x8578,0x8557,0x858E,
-0x8596,0x8586,0x858D,0x8599,0x859D,0x8581,0x85A2,0x8582,
-0x8588,0x8585,0x8579,0x8576,0x8598,0x8590,0x859F,0x8668,
-0x87BE,0x87AA,0x87AD,0x87C5,0x87B0,0x87AC,0x87B9,0x87B5,
-0x87BC,0x87AE,0x87C9,0x87C3,0x87C2,0x87CC,0x87B7,0x87AF,
-0x87C4,0x87CA,0x87B4,0x87B6,0x87BF,0x87B8,0x87BD,0x87DE,
-0x87B2,0x8935,0x8933,0x893C,0x893E,0x8941,0x8952,0x8937,
-0x8942,0x89AD,0x89AF,0x89AE,0x89F2,0x89F3,0x8B1E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x8B18,0x8B16,0x8B11,0x8B05,0x8B0B,0x8B22,0x8B0F,
-0x8B12,0x8B15,0x8B07,0x8B0D,0x8B08,0x8B06,0x8B1C,0x8B13,
-0x8B1A,0x8C4F,0x8C70,0x8C72,0x8C71,0x8C6F,0x8C95,0x8C94,
-0x8CF9,0x8D6F,0x8E4E,0x8E4D,0x8E53,0x8E50,0x8E4C,0x8E47,
-0x8F43,0x8F40,0x9085,0x907E,0x9138,0x919A,0x91A2,0x919B,
-0x9199,0x919F,0x91A1,0x919D,0x91A0,0x93A1,0x9383,0x93AF,
-0x9364,0x9356,0x9347,0x937C,0x9358,0x935C,0x9376,0x9349,
-0x9350,0x9351,0x9360,0x936D,0x938F,0x934C,0x936A,0x9379,
-0x9357,0x9355,0x9352,0x934F,0x9371,0x9377,0x937B,0x9361,
-0x935E,0x9363,0x9367,0x9380,0x934E,0x9359,0x95C7,0x95C0,
-0x95C9,0x95C3,0x95C5,0x95B7,0x96AE,0x96B0,0x96AC,0x9720,
-0x971F,0x9718,0x971D,0x9719,0x979A,0x97A1,0x979C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x979E,0x979D,0x97D5,0x97D4,0x97F1,0x9841,0x9844,0x984A,
-0x9849,0x9845,0x9843,0x9925,0x992B,0x992C,0x992A,0x9933,
-0x9932,0x992F,0x992D,0x9931,0x9930,0x9998,0x99A3,0x99A1,
-0x9A02,0x99FA,0x99F4,0x99F7,0x99F9,0x99F8,0x99F6,0x99FB,
-0x99FD,0x99FE,0x99FC,0x9A03,0x9ABE,0x9AFE,0x9AFD,0x9B01,
-0x9AFC,0x9B48,0x9B9A,0x9BA8,0x9B9E,0x9B9B,0x9BA6,0x9BA1,
-0x9BA5,0x9BA4,0x9B86,0x9BA2,0x9BA0,0x9BAF,0x9D33,0x9D41,
-0x9D67,0x9D36,0x9D2E,0x9D2F,0x9D31,0x9D38,0x9D30, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9D45,0x9D42,0x9D43,0x9D3E,0x9D37,0x9D40,0x9D3D,
-0x7FF5,0x9D2D,0x9E8A,0x9E89,0x9E8D,0x9EB0,0x9EC8,0x9EDA,
-0x9EFB,0x9EFF,0x9F24,0x9F23,0x9F22,0x9F54,0x9FA0,0x5131,
-0x512D,0x512E,0x5698,0x569C,0x5697,0x569A,0x569D,0x5699,
-0x5970,0x5B3C,0x5C69,0x5C6A,0x5DC0,0x5E6D,0x5E6E,0x61D8,
-0x61DF,0x61ED,0x61EE,0x61F1,0x61EA,0x61F0,0x61EB,0x61D6,
-0x61E9,0x64FF,0x6504,0x64FD,0x64F8,0x6501,0x6503,0x64FC,
-0x6594,0x65DB,0x66DA,0x66DB,0x66D8,0x6AC5,0x6AB9,0x6ABD,
-0x6AE1,0x6AC6,0x6ABA,0x6AB6,0x6AB7,0x6AC7,0x6AB4,0x6AAD,
-0x6B5E,0x6BC9,0x6C0B,0x7007,0x700C,0x700D,0x7001,0x7005,
-0x7014,0x700E,0x6FFF,0x7000,0x6FFB,0x7026,0x6FFC,0x6FF7,
-0x700A,0x7201,0x71FF,0x71F9,0x7203,0x71FD,0x7376, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x74B8,0x74C0,0x74B5,0x74C1,0x74BE,0x74B6,0x74BB,0x74C2,
-0x7514,0x7513,0x765C,0x7664,0x7659,0x7650,0x7653,0x7657,
-0x765A,0x76A6,0x76BD,0x76EC,0x77C2,0x77BA,0x78FF,0x790C,
-0x7913,0x7914,0x7909,0x7910,0x7912,0x7911,0x79AD,0x79AC,
-0x7A5F,0x7C1C,0x7C29,0x7C19,0x7C20,0x7C1F,0x7C2D,0x7C1D,
-0x7C26,0x7C28,0x7C22,0x7C25,0x7C30,0x7E5C,0x7E50,0x7E56,
-0x7E63,0x7E58,0x7E62,0x7E5F,0x7E51,0x7E60,0x7E57,0x7E53,
-0x7FB5,0x7FB3,0x7FF7,0x7FF8,0x8075,0x81D1,0x81D2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x81D0,0x825F,0x825E,0x85B4,0x85C6,0x85C0,0x85C3,
-0x85C2,0x85B3,0x85B5,0x85BD,0x85C7,0x85C4,0x85BF,0x85CB,
-0x85CE,0x85C8,0x85C5,0x85B1,0x85B6,0x85D2,0x8624,0x85B8,
-0x85B7,0x85BE,0x8669,0x87E7,0x87E6,0x87E2,0x87DB,0x87EB,
-0x87EA,0x87E5,0x87DF,0x87F3,0x87E4,0x87D4,0x87DC,0x87D3,
-0x87ED,0x87D8,0x87E3,0x87A4,0x87D7,0x87D9,0x8801,0x87F4,
-0x87E8,0x87DD,0x8953,0x894B,0x894F,0x894C,0x8946,0x8950,
-0x8951,0x8949,0x8B2A,0x8B27,0x8B23,0x8B33,0x8B30,0x8B35,
-0x8B47,0x8B2F,0x8B3C,0x8B3E,0x8B31,0x8B25,0x8B37,0x8B26,
-0x8B36,0x8B2E,0x8B24,0x8B3B,0x8B3D,0x8B3A,0x8C42,0x8C75,
-0x8C99,0x8C98,0x8C97,0x8CFE,0x8D04,0x8D02,0x8D00,0x8E5C,
-0x8E62,0x8E60,0x8E57,0x8E56,0x8E5E,0x8E65,0x8E67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8E5B,0x8E5A,0x8E61,0x8E5D,0x8E69,0x8E54,0x8F46,0x8F47,
-0x8F48,0x8F4B,0x9128,0x913A,0x913B,0x913E,0x91A8,0x91A5,
-0x91A7,0x91AF,0x91AA,0x93B5,0x938C,0x9392,0x93B7,0x939B,
-0x939D,0x9389,0x93A7,0x938E,0x93AA,0x939E,0x93A6,0x9395,
-0x9388,0x9399,0x939F,0x938D,0x93B1,0x9391,0x93B2,0x93A4,
-0x93A8,0x93B4,0x93A3,0x93A5,0x95D2,0x95D3,0x95D1,0x96B3,
-0x96D7,0x96DA,0x5DC2,0x96DF,0x96D8,0x96DD,0x9723,0x9722,
-0x9725,0x97AC,0x97AE,0x97A8,0x97AB,0x97A4,0x97AA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x97A2,0x97A5,0x97D7,0x97D9,0x97D6,0x97D8,0x97FA,
-0x9850,0x9851,0x9852,0x98B8,0x9941,0x993C,0x993A,0x9A0F,
-0x9A0B,0x9A09,0x9A0D,0x9A04,0x9A11,0x9A0A,0x9A05,0x9A07,
-0x9A06,0x9AC0,0x9ADC,0x9B08,0x9B04,0x9B05,0x9B29,0x9B35,
-0x9B4A,0x9B4C,0x9B4B,0x9BC7,0x9BC6,0x9BC3,0x9BBF,0x9BC1,
-0x9BB5,0x9BB8,0x9BD3,0x9BB6,0x9BC4,0x9BB9,0x9BBD,0x9D5C,
-0x9D53,0x9D4F,0x9D4A,0x9D5B,0x9D4B,0x9D59,0x9D56,0x9D4C,
-0x9D57,0x9D52,0x9D54,0x9D5F,0x9D58,0x9D5A,0x9E8E,0x9E8C,
-0x9EDF,0x9F01,0x9F00,0x9F16,0x9F25,0x9F2B,0x9F2A,0x9F29,
-0x9F28,0x9F4C,0x9F55,0x5134,0x5135,0x5296,0x52F7,0x53B4,
-0x56AB,0x56AD,0x56A6,0x56A7,0x56AA,0x56AC,0x58DA,0x58DD,
-0x58DB,0x5912,0x5B3D,0x5B3E,0x5B3F,0x5DC3,0x5E70, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5FBF,0x61FB,0x6507,0x6510,0x650D,0x6509,0x650C,0x650E,
-0x6584,0x65DE,0x65DD,0x66DE,0x6AE7,0x6AE0,0x6ACC,0x6AD1,
-0x6AD9,0x6ACB,0x6ADF,0x6ADC,0x6AD0,0x6AEB,0x6ACF,0x6ACD,
-0x6ADE,0x6B60,0x6BB0,0x6C0C,0x7019,0x7027,0x7020,0x7016,
-0x702B,0x7021,0x7022,0x7023,0x7029,0x7017,0x7024,0x701C,
-0x702A,0x720C,0x720A,0x7207,0x7202,0x7205,0x72A5,0x72A6,
-0x72A4,0x72A3,0x72A1,0x74CB,0x74C5,0x74B7,0x74C3,0x7516,
-0x7660,0x77C9,0x77CA,0x77C4,0x77F1,0x791D,0x791B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7921,0x791C,0x7917,0x791E,0x79B0,0x7A67,0x7A68,
-0x7C33,0x7C3C,0x7C39,0x7C2C,0x7C3B,0x7CEC,0x7CEA,0x7E76,
-0x7E75,0x7E78,0x7E70,0x7E77,0x7E6F,0x7E7A,0x7E72,0x7E74,
-0x7E68,0x7F4B,0x7F4A,0x7F83,0x7F86,0x7FB7,0x7FFD,0x7FFE,
-0x8078,0x81D7,0x81D5,0x8264,0x8261,0x8263,0x85EB,0x85F1,
-0x85ED,0x85D9,0x85E1,0x85E8,0x85DA,0x85D7,0x85EC,0x85F2,
-0x85F8,0x85D8,0x85DF,0x85E3,0x85DC,0x85D1,0x85F0,0x85E6,
-0x85EF,0x85DE,0x85E2,0x8800,0x87FA,0x8803,0x87F6,0x87F7,
-0x8809,0x880C,0x880B,0x8806,0x87FC,0x8808,0x87FF,0x880A,
-0x8802,0x8962,0x895A,0x895B,0x8957,0x8961,0x895C,0x8958,
-0x895D,0x8959,0x8988,0x89B7,0x89B6,0x89F6,0x8B50,0x8B48,
-0x8B4A,0x8B40,0x8B53,0x8B56,0x8B54,0x8B4B,0x8B55, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B51,0x8B42,0x8B52,0x8B57,0x8C43,0x8C77,0x8C76,0x8C9A,
-0x8D06,0x8D07,0x8D09,0x8DAC,0x8DAA,0x8DAD,0x8DAB,0x8E6D,
-0x8E78,0x8E73,0x8E6A,0x8E6F,0x8E7B,0x8EC2,0x8F52,0x8F51,
-0x8F4F,0x8F50,0x8F53,0x8FB4,0x9140,0x913F,0x91B0,0x91AD,
-0x93DE,0x93C7,0x93CF,0x93C2,0x93DA,0x93D0,0x93F9,0x93EC,
-0x93CC,0x93D9,0x93A9,0x93E6,0x93CA,0x93D4,0x93EE,0x93E3,
-0x93D5,0x93C4,0x93CE,0x93C0,0x93D2,0x93E7,0x957D,0x95DA,
-0x95DB,0x96E1,0x9729,0x972B,0x972C,0x9728,0x9726, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x97B3,0x97B7,0x97B6,0x97DD,0x97DE,0x97DF,0x985C,
-0x9859,0x985D,0x9857,0x98BF,0x98BD,0x98BB,0x98BE,0x9948,
-0x9947,0x9943,0x99A6,0x99A7,0x9A1A,0x9A15,0x9A25,0x9A1D,
-0x9A24,0x9A1B,0x9A22,0x9A20,0x9A27,0x9A23,0x9A1E,0x9A1C,
-0x9A14,0x9AC2,0x9B0B,0x9B0A,0x9B0E,0x9B0C,0x9B37,0x9BEA,
-0x9BEB,0x9BE0,0x9BDE,0x9BE4,0x9BE6,0x9BE2,0x9BF0,0x9BD4,
-0x9BD7,0x9BEC,0x9BDC,0x9BD9,0x9BE5,0x9BD5,0x9BE1,0x9BDA,
-0x9D77,0x9D81,0x9D8A,0x9D84,0x9D88,0x9D71,0x9D80,0x9D78,
-0x9D86,0x9D8B,0x9D8C,0x9D7D,0x9D6B,0x9D74,0x9D75,0x9D70,
-0x9D69,0x9D85,0x9D73,0x9D7B,0x9D82,0x9D6F,0x9D79,0x9D7F,
-0x9D87,0x9D68,0x9E94,0x9E91,0x9EC0,0x9EFC,0x9F2D,0x9F40,
-0x9F41,0x9F4D,0x9F56,0x9F57,0x9F58,0x5337,0x56B2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x56B5,0x56B3,0x58E3,0x5B45,0x5DC6,0x5DC7,0x5EEE,0x5EEF,
-0x5FC0,0x5FC1,0x61F9,0x6517,0x6516,0x6515,0x6513,0x65DF,
-0x66E8,0x66E3,0x66E4,0x6AF3,0x6AF0,0x6AEA,0x6AE8,0x6AF9,
-0x6AF1,0x6AEE,0x6AEF,0x703C,0x7035,0x702F,0x7037,0x7034,
-0x7031,0x7042,0x7038,0x703F,0x703A,0x7039,0x7040,0x703B,
-0x7033,0x7041,0x7213,0x7214,0x72A8,0x737D,0x737C,0x74BA,
-0x76AB,0x76AA,0x76BE,0x76ED,0x77CC,0x77CE,0x77CF,0x77CD,
-0x77F2,0x7925,0x7923,0x7927,0x7928,0x7924,0x7929, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x79B2,0x7A6E,0x7A6C,0x7A6D,0x7AF7,0x7C49,0x7C48,
-0x7C4A,0x7C47,0x7C45,0x7CEE,0x7E7B,0x7E7E,0x7E81,0x7E80,
-0x7FBA,0x7FFF,0x8079,0x81DB,0x81D9,0x820B,0x8268,0x8269,
-0x8622,0x85FF,0x8601,0x85FE,0x861B,0x8600,0x85F6,0x8604,
-0x8609,0x8605,0x860C,0x85FD,0x8819,0x8810,0x8811,0x8817,
-0x8813,0x8816,0x8963,0x8966,0x89B9,0x89F7,0x8B60,0x8B6A,
-0x8B5D,0x8B68,0x8B63,0x8B65,0x8B67,0x8B6D,0x8DAE,0x8E86,
-0x8E88,0x8E84,0x8F59,0x8F56,0x8F57,0x8F55,0x8F58,0x8F5A,
-0x908D,0x9143,0x9141,0x91B7,0x91B5,0x91B2,0x91B3,0x940B,
-0x9413,0x93FB,0x9420,0x940F,0x9414,0x93FE,0x9415,0x9410,
-0x9428,0x9419,0x940D,0x93F5,0x9400,0x93F7,0x9407,0x940E,
-0x9416,0x9412,0x93FA,0x9409,0x93F8,0x940A,0x93FF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x93FC,0x940C,0x93F6,0x9411,0x9406,0x95DE,0x95E0,0x95DF,
-0x972E,0x972F,0x97B9,0x97BB,0x97FD,0x97FE,0x9860,0x9862,
-0x9863,0x985F,0x98C1,0x98C2,0x9950,0x994E,0x9959,0x994C,
-0x994B,0x9953,0x9A32,0x9A34,0x9A31,0x9A2C,0x9A2A,0x9A36,
-0x9A29,0x9A2E,0x9A38,0x9A2D,0x9AC7,0x9ACA,0x9AC6,0x9B10,
-0x9B12,0x9B11,0x9C0B,0x9C08,0x9BF7,0x9C05,0x9C12,0x9BF8,
-0x9C40,0x9C07,0x9C0E,0x9C06,0x9C17,0x9C14,0x9C09,0x9D9F,
-0x9D99,0x9DA4,0x9D9D,0x9D92,0x9D98,0x9D90,0x9D9B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9DA0,0x9D94,0x9D9C,0x9DAA,0x9D97,0x9DA1,0x9D9A,
-0x9DA2,0x9DA8,0x9D9E,0x9DA3,0x9DBF,0x9DA9,0x9D96,0x9DA6,
-0x9DA7,0x9E99,0x9E9B,0x9E9A,0x9EE5,0x9EE4,0x9EE7,0x9EE6,
-0x9F30,0x9F2E,0x9F5B,0x9F60,0x9F5E,0x9F5D,0x9F59,0x9F91,
-0x513A,0x5139,0x5298,0x5297,0x56C3,0x56BD,0x56BE,0x5B48,
-0x5B47,0x5DCB,0x5DCF,0x5EF1,0x61FD,0x651B,0x6B02,0x6AFC,
-0x6B03,0x6AF8,0x6B00,0x7043,0x7044,0x704A,0x7048,0x7049,
-0x7045,0x7046,0x721D,0x721A,0x7219,0x737E,0x7517,0x766A,
-0x77D0,0x792D,0x7931,0x792F,0x7C54,0x7C53,0x7CF2,0x7E8A,
-0x7E87,0x7E88,0x7E8B,0x7E86,0x7E8D,0x7F4D,0x7FBB,0x8030,
-0x81DD,0x8618,0x862A,0x8626,0x861F,0x8623,0x861C,0x8619,
-0x8627,0x862E,0x8621,0x8620,0x8629,0x861E,0x8625, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8829,0x881D,0x881B,0x8820,0x8824,0x881C,0x882B,0x884A,
-0x896D,0x8969,0x896E,0x896B,0x89FA,0x8B79,0x8B78,0x8B45,
-0x8B7A,0x8B7B,0x8D10,0x8D14,0x8DAF,0x8E8E,0x8E8C,0x8F5E,
-0x8F5B,0x8F5D,0x9146,0x9144,0x9145,0x91B9,0x943F,0x943B,
-0x9436,0x9429,0x943D,0x943C,0x9430,0x9439,0x942A,0x9437,
-0x942C,0x9440,0x9431,0x95E5,0x95E4,0x95E3,0x9735,0x973A,
-0x97BF,0x97E1,0x9864,0x98C9,0x98C6,0x98C0,0x9958,0x9956,
-0x9A39,0x9A3D,0x9A46,0x9A44,0x9A42,0x9A41,0x9A3A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A3F,0x9ACD,0x9B15,0x9B17,0x9B18,0x9B16,0x9B3A,
-0x9B52,0x9C2B,0x9C1D,0x9C1C,0x9C2C,0x9C23,0x9C28,0x9C29,
-0x9C24,0x9C21,0x9DB7,0x9DB6,0x9DBC,0x9DC1,0x9DC7,0x9DCA,
-0x9DCF,0x9DBE,0x9DC5,0x9DC3,0x9DBB,0x9DB5,0x9DCE,0x9DB9,
-0x9DBA,0x9DAC,0x9DC8,0x9DB1,0x9DAD,0x9DCC,0x9DB3,0x9DCD,
-0x9DB2,0x9E7A,0x9E9C,0x9EEB,0x9EEE,0x9EED,0x9F1B,0x9F18,
-0x9F1A,0x9F31,0x9F4E,0x9F65,0x9F64,0x9F92,0x4EB9,0x56C6,
-0x56C5,0x56CB,0x5971,0x5B4B,0x5B4C,0x5DD5,0x5DD1,0x5EF2,
-0x6521,0x6520,0x6526,0x6522,0x6B0B,0x6B08,0x6B09,0x6C0D,
-0x7055,0x7056,0x7057,0x7052,0x721E,0x721F,0x72A9,0x737F,
-0x74D8,0x74D5,0x74D9,0x74D7,0x766D,0x76AD,0x7935,0x79B4,
-0x7A70,0x7A71,0x7C57,0x7C5C,0x7C59,0x7C5B,0x7C5A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7CF4,0x7CF1,0x7E91,0x7F4F,0x7F87,0x81DE,0x826B,0x8634,
-0x8635,0x8633,0x862C,0x8632,0x8636,0x882C,0x8828,0x8826,
-0x882A,0x8825,0x8971,0x89BF,0x89BE,0x89FB,0x8B7E,0x8B84,
-0x8B82,0x8B86,0x8B85,0x8B7F,0x8D15,0x8E95,0x8E94,0x8E9A,
-0x8E92,0x8E90,0x8E96,0x8E97,0x8F60,0x8F62,0x9147,0x944C,
-0x9450,0x944A,0x944B,0x944F,0x9447,0x9445,0x9448,0x9449,
-0x9446,0x973F,0x97E3,0x986A,0x9869,0x98CB,0x9954,0x995B,
-0x9A4E,0x9A53,0x9A54,0x9A4C,0x9A4F,0x9A48,0x9A4A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9A49,0x9A52,0x9A50,0x9AD0,0x9B19,0x9B2B,0x9B3B,
-0x9B56,0x9B55,0x9C46,0x9C48,0x9C3F,0x9C44,0x9C39,0x9C33,
-0x9C41,0x9C3C,0x9C37,0x9C34,0x9C32,0x9C3D,0x9C36,0x9DDB,
-0x9DD2,0x9DDE,0x9DDA,0x9DCB,0x9DD0,0x9DDC,0x9DD1,0x9DDF,
-0x9DE9,0x9DD9,0x9DD8,0x9DD6,0x9DF5,0x9DD5,0x9DDD,0x9EB6,
-0x9EF0,0x9F35,0x9F33,0x9F32,0x9F42,0x9F6B,0x9F95,0x9FA2,
-0x513D,0x5299,0x58E8,0x58E7,0x5972,0x5B4D,0x5DD8,0x882F,
-0x5F4F,0x6201,0x6203,0x6204,0x6529,0x6525,0x6596,0x66EB,
-0x6B11,0x6B12,0x6B0F,0x6BCA,0x705B,0x705A,0x7222,0x7382,
-0x7381,0x7383,0x7670,0x77D4,0x7C67,0x7C66,0x7E95,0x826C,
-0x863A,0x8640,0x8639,0x863C,0x8631,0x863B,0x863E,0x8830,
-0x8832,0x882E,0x8833,0x8976,0x8974,0x8973,0x89FE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B8C,0x8B8E,0x8B8B,0x8B88,0x8C45,0x8D19,0x8E98,0x8F64,
-0x8F63,0x91BC,0x9462,0x9455,0x945D,0x9457,0x945E,0x97C4,
-0x97C5,0x9800,0x9A56,0x9A59,0x9B1E,0x9B1F,0x9B20,0x9C52,
-0x9C58,0x9C50,0x9C4A,0x9C4D,0x9C4B,0x9C55,0x9C59,0x9C4C,
-0x9C4E,0x9DFB,0x9DF7,0x9DEF,0x9DE3,0x9DEB,0x9DF8,0x9DE4,
-0x9DF6,0x9DE1,0x9DEE,0x9DE6,0x9DF2,0x9DF0,0x9DE2,0x9DEC,
-0x9DF4,0x9DF3,0x9DE8,0x9DED,0x9EC2,0x9ED0,0x9EF2,0x9EF3,
-0x9F06,0x9F1C,0x9F38,0x9F37,0x9F36,0x9F43,0x9F4F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9F71,0x9F70,0x9F6E,0x9F6F,0x56D3,0x56CD,0x5B4E,
-0x5C6D,0x652D,0x66ED,0x66EE,0x6B13,0x705F,0x7061,0x705D,
-0x7060,0x7223,0x74DB,0x74E5,0x77D5,0x7938,0x79B7,0x79B6,
-0x7C6A,0x7E97,0x7F89,0x826D,0x8643,0x8838,0x8837,0x8835,
-0x884B,0x8B94,0x8B95,0x8E9E,0x8E9F,0x8EA0,0x8E9D,0x91BE,
-0x91BD,0x91C2,0x946B,0x9468,0x9469,0x96E5,0x9746,0x9743,
-0x9747,0x97C7,0x97E5,0x9A5E,0x9AD5,0x9B59,0x9C63,0x9C67,
-0x9C66,0x9C62,0x9C5E,0x9C60,0x9E02,0x9DFE,0x9E07,0x9E03,
-0x9E06,0x9E05,0x9E00,0x9E01,0x9E09,0x9DFF,0x9DFD,0x9E04,
-0x9EA0,0x9F1E,0x9F46,0x9F74,0x9F75,0x9F76,0x56D4,0x652E,
-0x65B8,0x6B18,0x6B19,0x6B17,0x6B1A,0x7062,0x7226,0x72AA,
-0x77D8,0x77D9,0x7939,0x7C69,0x7C6B,0x7CF6,0x7E9A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7E98,0x7E9B,0x7E99,0x81E0,0x81E1,0x8646,0x8647,0x8648,
-0x8979,0x897A,0x897C,0x897B,0x89FF,0x8B98,0x8B99,0x8EA5,
-0x8EA4,0x8EA3,0x946E,0x946D,0x946F,0x9471,0x9473,0x9749,
-0x9872,0x995F,0x9C68,0x9C6E,0x9C6D,0x9E0B,0x9E0D,0x9E10,
-0x9E0F,0x9E12,0x9E11,0x9EA1,0x9EF5,0x9F09,0x9F47,0x9F78,
-0x9F7B,0x9F7A,0x9F79,0x571E,0x7066,0x7C6F,0x883C,0x8DB2,
-0x8EA6,0x91C3,0x9474,0x9478,0x9476,0x9475,0x9A60,0x9C74,
-0x9C73,0x9C71,0x9C75,0x9E14,0x9E13,0x9EF6,0x9F0A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x9FA4,0x7068,0x7065,0x7CF7,0x866A,0x883E,0x883D,
-0x883F,0x8B9E,0x8C9C,0x8EA9,0x8EC9,0x974B,0x9873,0x9874,
-0x98CC,0x9961,0x99AB,0x9A64,0x9A66,0x9A67,0x9B24,0x9E15,
-0x9E17,0x9F48,0x6207,0x6B1E,0x7227,0x864C,0x8EA8,0x9482,
-0x9480,0x9481,0x9A69,0x9A68,0x9B2E,0x9E19,0x7229,0x864B,
-0x8B9F,0x9483,0x9C79,0x9EB7,0x7675,0x9A6B,0x9C7A,0x9E1D,
-0x7069,0x706A,0x9EA4,0x9F7E,0x9F49,0x9F98,0x7881,0x92B9,
-0x88CF,0x58BB,0x6052,0x7CA7,0x5AFA};
-
-static int func_big5_uni_onechar(int code){
- if ((code>=0xA140)&&(code<=0xC7FC))
- return(tab_big5_uni0[code-0xA140]);
- if ((code>=0xC940)&&(code<=0xF9DC))
- return(tab_big5_uni1[code-0xC940]);
- return(0);
-}
-
-
-/* page 0 0x00A2-0x00F7 */
-static uint16 tab_uni_big50[]={
-0xA246,0xA247, 0,0xA244, 0,0xA1B1, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA258,0xA1D3,
- 0, 0, 0, 0, 0,0xA150, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1D1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1D2};
-
-/* page 1 0x02C7-0x0451 */
-static uint16 tab_uni_big51[]={
-0xA3BE, 0,0xA3BC,0xA3BD,0xA3BF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA3BB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA344,0xA345,0xA346,0xA347,0xA348,0xA349,
-0xA34A,0xA34B,0xA34C,0xA34D,0xA34E,0xA34F,0xA350,0xA351,
-0xA352,0xA353,0xA354, 0,0xA355,0xA356,0xA357,0xA358,
-0xA359,0xA35A,0xA35B, 0, 0, 0, 0, 0,
- 0, 0,0xA35C,0xA35D,0xA35E,0xA35F,0xA360,0xA361,
-0xA362,0xA363,0xA364,0xA365,0xA366,0xA367,0xA368,0xA369,
-0xA36A,0xA36B,0xA36C, 0,0xA36D,0xA36E,0xA36F,0xA370,
-0xA371,0xA372,0xA373, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xC7B3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xC7B1,0xC7B2,0xC7B4,
-0xC7B5,0xC7B6,0xC7B7,0xC7B8,0xC7B9,0xC7BA, 0, 0,
- 0, 0, 0, 0,0xC7BB,0xC7BC,0xC7BD,0xC7BE,
-0xC7BF,0xC7C0,0xC7C1,0xC7C2,0xC7C3,0xC7C4,0xC7C5,0xC7C6,
-0xC7C7,0xC7C8,0xC7C9,0xC7CA,0xC7CB,0xC7CC,0xC7CD,0xC7CF,
-0xC7D0,0xC7D1,0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7,
-0xC7D8,0xC7D9,0xC7DA,0xC7DB,0xC7DC,0xC7DD,0xC7DE,0xC7DF,
-0xC7E0,0xC7E1,0xC7E2,0xC7E3,0xC7E4,0xC7E5,0xC7E6,0xC7E7,
-0xC7E8, 0,0xC7CE};
-
-/* page 2 0x2013-0x22BF */
-static uint16 tab_uni_big52[]={
-0xA156,0xA158, 0, 0, 0,0xA1A5,0xA1A6, 0,
- 0,0xA1A7,0xA1A8, 0, 0, 0, 0,0xA145,
- 0, 0,0xA14C,0xA14B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA1AC,
- 0, 0,0xA1AB, 0, 0, 0, 0, 0,
-0xA1B0, 0, 0,0xA1C2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA24A, 0,0xA1C1, 0, 0, 0,0xA24B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA2B9,0xA2BA,0xA2BB,
-0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0,0xA2C1,0xA2C2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1F6,0xA1F4,0xA1F7,
-0xA1F5, 0, 0,0xA1F8,0xA1F9,0xA1FB,0xA1FA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA1D4,
- 0, 0, 0,0xA1DB,0xA1E8,0xA1E7, 0, 0,
-0xA1FD, 0,0xA1FC, 0, 0, 0,0xA1E4,0xA1E5,
-0xA1EC, 0, 0,0xA1ED, 0, 0, 0, 0,
- 0,0xA1EF,0xA1EE, 0, 0, 0, 0, 0,
- 0,0xA1E3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA1DC,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1DA,0xA1DD, 0,
- 0, 0, 0,0xA1D8,0xA1D9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA1E6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA1E9};
-
-/* page 3 0x2460-0x2642 */
-static uint16 tab_uni_big53[]={
-0xC7E9,0xC7EA,0xC7EB,0xC7EC,0xC7ED,0xC7EE,0xC7EF,0xC7F0,
-0xC7F1,0xC7F2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xC7F3,0xC7F4,0xC7F5,0xC7F6,
-0xC7F7,0xC7F8,0xC7F9,0xC7FA,0xC7FB,0xC7FC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA277, 0,0xA278, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA27A, 0, 0, 0,
-0xA27B, 0, 0, 0,0xA27C, 0, 0, 0,
-0xA27D, 0, 0, 0,0xA275, 0, 0, 0,
- 0, 0, 0, 0,0xA274, 0, 0, 0,
- 0, 0, 0, 0,0xA273, 0, 0, 0,
- 0, 0, 0, 0,0xA272, 0, 0, 0,
- 0, 0, 0, 0,0xA271, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA2A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA2A5, 0,
- 0,0xA2A7, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA2A6, 0, 0,0xA27E,0xA2A1,0xA2A3,
-0xA2A2,0xA2AC,0xA2AD,0xA2AE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA262,0xA263,0xA264,0xA265,0xA266,0xA267,0xA268,
-0xA269,0xA270,0xA26F,0xA26E,0xA26D,0xA26C,0xA26B,0xA26A,
- 0, 0, 0, 0,0xA276,0xA279, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1BD,0xA1BC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA1B6,0xA1B5, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA1BF,0xA1BE, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA1BB,0xA1BA,
- 0, 0, 0,0xA1B3, 0, 0,0xA1B7,0xA1B4,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA2A8,0xA2A9,0xA2AB,0xA2AA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1B9,0xA1B8, 0,
- 0,0xA1F3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1F0,0xA1F2,0xA1F1};
-
-/* page 4 0x3000-0x3129 */
-static uint16 tab_uni_big54[]={
-0xA140,0xA142,0xA143,0xA1B2, 0,0xC6A4, 0, 0,
-0xA171,0xA172,0xA16D,0xA16E,0xA175,0xA176,0xA179,0xA17A,
-0xA169,0xA16A,0xA245, 0,0xA165,0xA166, 0, 0,
- 0, 0, 0, 0, 0,0xA1A9,0xA1AA, 0,
- 0,0xA2C3,0xA2C4,0xA2C5,0xA2C6,0xA2C7,0xA2C8,0xA2C9,
-0xA2CA,0xA2CB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xC6A5,0xC6A6,0xC6A7,0xC6A8,0xC6A9,0xC6AA,0xC6AB,
-0xC6AC,0xC6AD,0xC6AE,0xC6AF,0xC6B0,0xC6B1,0xC6B2,0xC6B3,
-0xC6B4,0xC6B5,0xC6B6,0xC6B7,0xC6B8,0xC6B9,0xC6BA,0xC6BB,
-0xC6BC,0xC6BD,0xC6BE,0xC6BF,0xC6C0,0xC6C1,0xC6C2,0xC6C3,
-0xC6C4,0xC6C5,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA,0xC6CB,
-0xC6CC,0xC6CD,0xC6CE,0xC6CF,0xC6D0,0xC6D1,0xC6D2,0xC6D3,
-0xC6D4,0xC6D5,0xC6D6,0xC6D7,0xC6D8,0xC6D9,0xC6DA,0xC6DB,
-0xC6DC,0xC6DD,0xC6DE,0xC6DF,0xC6E0,0xC6E1,0xC6E2,0xC6E3,
-0xC6E4,0xC6E5,0xC6E6,0xC6E7,0xC6E8,0xC6E9,0xC6EA,0xC6EB,
-0xC6EC,0xC6ED,0xC6EE,0xC6EF,0xC6F0,0xC6F1,0xC6F2,0xC6F3,
-0xC6F4,0xC6F5,0xC6F6,0xC6F7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xC6A2,0xC6A3, 0,
- 0,0xC6F8,0xC6F9,0xC6FA,0xC6FB,0xC6FC,0xC6FD,0xC6FE,
-0xC740,0xC741,0xC742,0xC743,0xC744,0xC745,0xC746,0xC747,
-0xC748,0xC749,0xC74A,0xC74B,0xC74C,0xC74D,0xC74E,0xC74F,
-0xC750,0xC751,0xC752,0xC753,0xC754,0xC755,0xC756,0xC757,
-0xC758,0xC759,0xC75A,0xC75B,0xC75C,0xC75D,0xC75E,0xC75F,
-0xC760,0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767,
-0xC768,0xC769,0xC76A,0xC76B,0xC76C,0xC76D,0xC76E,0xC76F,
-0xC770,0xC771,0xC772,0xC773,0xC774,0xC775,0xC776,0xC777,
-0xC778,0xC779,0xC77A,0xC77B,0xC77C,0xC77D,0xC77E,0xC7A1,
-0xC7A2,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7A7,0xC7A8,0xC7A9,
-0xC7AA,0xC7AB,0xC7AC,0xC7AD,0xC7AE,0xC7AF,0xC7B0, 0,
- 0, 0, 0, 0, 0, 0,0xC6A1, 0,
- 0, 0, 0, 0, 0,0xA374,0xA375,0xA376,
-0xA377,0xA378,0xA379,0xA37A,0xA37B,0xA37C,0xA37D,0xA37E,
-0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5,0xA3A6,0xA3A7,0xA3A8,
-0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,0xA3B0,
-0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8,
-0xA3B9,0xA3BA};
-
-/* page 5 0x32A3-0x32A3 */
-static uint16 tab_uni_big55[]={
-0xA1C0};
-
-/* page 6 0x338E-0x33D5 */
-static uint16 tab_uni_big56[]={
-0xA255,0xA256, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA250,0xA251,
-0xA252, 0, 0,0xA254, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA257, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA253, 0, 0,0xA1EB,0xA1EA, 0, 0,0xA24F
-};
-
-/* page 7 0x4E00-0x9483 */
-static uint16 tab_uni_big57[]={
-0xA440,0xA442, 0,0xA443, 0, 0, 0,0xC945,
-0xA456,0xA454,0xA457,0xA455,0xC946,0xA4A3,0xC94F,0xC94D,
-0xA4A2,0xA4A1, 0, 0,0xA542,0xA541,0xA540, 0,
-0xA543,0xA4FE, 0, 0, 0, 0,0xA5E0,0xA5E1,
- 0, 0, 0, 0, 0, 0,0xA8C3, 0,
- 0, 0, 0,0xA458, 0,0xA4A4,0xC950, 0,
-0xA4A5,0xC963,0xA6EA,0xCBB1, 0, 0, 0, 0,
-0xA459,0xA4A6, 0,0xA544,0xC964, 0, 0, 0,
- 0, 0,0xC940,0xA444, 0,0xA45B, 0,0xC947,
-0xA45C, 0, 0,0xA4A7, 0,0xA545,0xA547,0xA546,
- 0, 0,0xA5E2,0xA5E3, 0, 0,0xA8C4, 0,
-0xADBC,0xA441, 0, 0,0xC941,0xA445,0xA45E,0xA45D,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA5E4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA8C5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xB0AE,0xD44B,
- 0, 0,0xB6C3,0xDCB1,0xDCB2, 0,0xA446, 0,
-0xA4A9, 0, 0,0xA8C6,0xA447,0xC948,0xA45F, 0,
- 0,0xA4AA,0xA4AC,0xC951,0xA4AD,0xA4AB, 0, 0,
- 0,0xA5E5, 0,0xA8C7, 0, 0,0xA8C8,0xAB45,
- 0,0xA460,0xA4AE, 0,0xA5E6,0xA5E8,0xA5E7, 0,
-0xA6EB, 0, 0,0xA8C9,0xA8CA,0xAB46,0xAB47, 0,
- 0, 0, 0,0xADBD, 0, 0,0xDCB3, 0,
- 0,0xF6D6,0xA448, 0, 0, 0, 0, 0,
-0xA4B0,0xA4AF,0xC952,0xA4B1,0xA4B7, 0,0xA4B2,0xA4B3,
-0xC954,0xC953,0xA4B5,0xA4B6, 0,0xA4B4, 0, 0,
- 0, 0, 0, 0,0xA54A,0xA54B,0xA54C,0xA54D,
-0xA549,0xA550,0xC96A, 0,0xC966,0xC969,0xA551,0xA561,
- 0,0xC968, 0,0xA54E,0xA54F,0xA548, 0, 0,
-0xC965,0xC967, 0, 0, 0, 0, 0, 0,
-0xA5F5,0xC9B0,0xA5F2,0xA5F6,0xC9BA,0xC9AE,0xA5F3,0xC9B2,
- 0, 0, 0,0xA5F4, 0,0xA5F7, 0,0xA5E9,
-0xC9B1,0xA5F8,0xC9B5, 0,0xC9B9,0xC9B6, 0, 0,
-0xC9B3,0xA5EA,0xA5EC,0xA5F9, 0,0xA5EE,0xC9AB,0xA5F1,
-0xA5EF,0xA5F0,0xC9BB,0xC9B8,0xC9AF,0xA5ED, 0, 0,
-0xC9AC,0xA5EB, 0, 0, 0,0xC9B4, 0, 0,
- 0, 0,0xC9B7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xC9AD,0xCA66, 0,0xA742,
-0xA6F4, 0, 0,0xCA67,0xA6F1, 0,0xA744, 0,
-0xA6F9, 0,0xA6F8,0xCA5B,0xA6FC,0xA6F7,0xCA60,0xCA68,
- 0,0xCA64, 0,0xA6FA, 0, 0,0xA6FD,0xA6EE,
-0xA747,0xCA5D, 0, 0,0xCBBD,0xA6EC,0xA743,0xA6ED,
-0xA6F5,0xA6F6,0xCA62,0xCA5E,0xA6FB,0xA6F3,0xCA5A,0xA6EF,
-0xCA65,0xA745,0xA748,0xA6F2,0xA740,0xA746,0xA6F0,0xCA63,
-0xA741,0xCA69,0xCA5C,0xA6FE,0xCA5F, 0, 0,0xCA61,
- 0,0xA8D8,0xCBBF,0xCBCB,0xA8D0, 0,0xCBCC,0xA8CB,
-0xA8D5, 0, 0,0xA8CE,0xCBB9,0xA8D6,0xCBB8,0xCBBC,
-0xCBC3,0xCBC1,0xA8DE,0xA8D9,0xCBB3,0xCBB5,0xA8DB,0xA8CF,
-0xCBB6,0xCBC2,0xCBC9,0xA8D4,0xCBBB,0xCBB4,0xA8D3,0xCBB7,
-0xA8D7,0xCBBA, 0,0xA8D2, 0,0xA8CD, 0,0xA8DC,
-0xCBC4,0xA8DD,0xCBC8, 0,0xCBC6,0xCBCA,0xA8DA,0xCBBE,
-0xCBB2, 0,0xCBC0,0xA8D1,0xCBC5,0xA8CC,0xCBC7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xAB56,0xAB4A,
- 0, 0,0xCDE0,0xCDE8, 0,0xAB49,0xAB51,0xAB5D,
- 0,0xCDEE,0xCDEC,0xCDE7, 0, 0, 0,0xAB4B,
-0xCDED,0xCDE3,0xAB59,0xAB50,0xAB58,0xCDDE, 0,0xCDEA,
- 0,0xCDE1,0xAB54,0xCDE2, 0,0xCDDD,0xAB5B,0xAB4E,
-0xAB57,0xAB4D, 0,0xCDDF,0xCDE4, 0,0xCDEB,0xAB55,
-0xAB52,0xCDE6,0xAB5A,0xCDE9,0xCDE5,0xAB4F,0xAB5C,0xAB53,
-0xAB4C,0xAB48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCDEF, 0,0xADD7,0xADC1,
- 0,0xADD1, 0,0xADD6,0xD0D0,0xD0CF,0xD0D4,0xD0D5,
-0xADC4, 0,0xADCD, 0, 0, 0,0xADDA, 0,
-0xADCE, 0, 0, 0, 0,0xD0C9,0xADC7,0xD0CA,
- 0,0xADDC, 0,0xADD3,0xADBE,0xADBF,0xD0DD,0xB0BF,
- 0,0xADCC,0xADCB,0xD0CB,0xADCF,0xD45B,0xADC6,0xD0D6,
-0xADD5,0xADD4,0xADCA,0xD0CE,0xD0D7, 0,0xD0C8,0xADC9,
-0xD0D8,0xADD2,0xD0CC,0xADC0, 0,0xADC3,0xADC2,0xD0D9,
-0xADD0,0xADC5,0xADD9,0xADDB,0xD0D3,0xADD8, 0,0xD0DB,
-0xD0CD,0xD0DC, 0,0xD0D1, 0,0xD0DA, 0,0xD0D2,
- 0, 0, 0, 0,0xADC8, 0, 0, 0,
-0xD463,0xD457, 0,0xB0B3, 0,0xD45C,0xD462,0xB0B2,
-0xD455,0xB0B6,0xD459,0xD452,0xB0B4,0xD456,0xB0B9,0xB0BE,
- 0,0xD467, 0,0xD451, 0,0xB0BA, 0,0xD466,
- 0, 0,0xB0B5,0xD458,0xB0B1,0xD453,0xD44F,0xD45D,
-0xD450,0xD44E,0xD45A,0xD460,0xD461,0xB0B7, 0, 0,
-0xD85B,0xD45E,0xD44D,0xD45F, 0,0xB0C1,0xD464,0xB0C0,
-0xD44C, 0,0xD454,0xD465,0xB0BC,0xB0BB,0xB0B8,0xB0BD,
- 0, 0,0xB0AF, 0, 0,0xB0B0, 0, 0,
-0xB3C8, 0,0xD85E,0xD857, 0,0xB3C5, 0,0xD85F,
- 0, 0, 0,0xD855,0xD858,0xB3C4,0xD859, 0,
- 0,0xB3C7,0xD85D, 0,0xD853,0xD852,0xB3C9, 0,
-0xB3CA,0xB3C6,0xB3CB,0xD851,0xD85C,0xD85A,0xD854, 0,
- 0, 0,0xB3C3,0xD856, 0, 0, 0, 0,
- 0, 0, 0, 0,0xB6CA,0xB6C4,0xDCB7,0xB6CD,
-0xDCBD,0xDCC0,0xB6C6,0xB6C7,0xDCBA,0xB6C5,0xDCC3,0xB6CB,
-0xDCC4, 0,0xDCBF,0xB6CC, 0,0xDCB4,0xB6C9,0xDCB5,
- 0,0xDCBE,0xDCBC, 0,0xDCB8,0xB6C8,0xDCB6,0xB6CE,
-0xDCBB,0xDCC2,0xDCB9,0xDCC1, 0, 0,0xB9B6,0xB9B3,
- 0,0xB9B4, 0,0xE0F9,0xE0F1,0xB9B2,0xB9AF,0xE0F2,
- 0, 0,0xB9B1,0xE0F5, 0,0xE0F7, 0, 0,
-0xE0FE, 0, 0,0xE0FD,0xE0F8,0xB9AE,0xE0F0,0xB9AC,
-0xE0F3,0xB9B7,0xE0F6, 0,0xE0FA,0xB9B0,0xB9AD,0xE0FC,
-0xE0FB,0xB9B5, 0,0xE0F4, 0,0xBBF8,0xE4EC, 0,
-0xE4E9,0xBBF9, 0,0xBBF7, 0,0xE4F0,0xE4ED,0xE4E6,
-0xBBF6, 0,0xBBFA,0xE4E7,0xBBF5,0xBBFD,0xE4EA,0xE4EB,
-0xBBFB,0xBBFC,0xE4F1,0xE4EE,0xE4EF, 0, 0, 0,
-0xBEAA,0xE8F8,0xBEA7,0xE8F5,0xBEA9,0xBEAB, 0,0xE8F6,
-0xBEA8, 0,0xE8F7, 0,0xE8F4, 0, 0,0xC076,
-0xECBD,0xC077,0xECBB, 0,0xECBC,0xECBA,0xECB9, 0,
- 0,0xECBE,0xC075, 0, 0,0xEFB8,0xEFB9, 0,
-0xE4E8,0xEFB7,0xC078,0xC35F,0xF1EB,0xF1EC, 0,0xC4D7,
-0xC4D8,0xF5C1,0xF5C0,0xC56C,0xC56B,0xF7D0, 0,0xA449,
-0xA461,0xA4B9, 0,0xA4B8,0xA553,0xA552,0xA5FC,0xA5FB,
-0xA5FD,0xA5FA, 0,0xA74A,0xA749,0xA74B, 0, 0,
- 0, 0,0xA8E0, 0,0xA8DF,0xA8E1, 0,0xAB5E,
- 0,0xA259,0xD0DE,0xA25A,0xB0C2,0xA25C,0xA25B,0xD860,
- 0,0xA25D,0xB9B8,0xA25E, 0,0xA44A, 0,0xA4BA,
-0xA5FE,0xA8E2, 0,0xA44B,0xA4BD,0xA4BB,0xA4BC, 0,
- 0,0xA640, 0, 0, 0,0xA74C,0xA8E4,0xA8E3,
-0xA8E5, 0, 0, 0,0xADDD, 0, 0, 0,
-0xBEAC, 0, 0, 0, 0, 0, 0,0xC94E,
- 0,0xA554,0xA555, 0, 0,0xA641, 0,0xCA6A,
- 0,0xAB60,0xAB5F,0xD0E0,0xD0DF,0xB0C3, 0,0xA4BE,
-0xC955, 0, 0, 0, 0, 0,0xCBCD, 0,
-0xAB61, 0,0xADE0, 0,0xADDE,0xADDF, 0, 0,
- 0, 0,0xBEAD, 0,0xA556, 0, 0, 0,
-0xA642,0xC9BC, 0, 0, 0, 0,0xA74D,0xA74E,
- 0,0xCA6B, 0, 0,0xCBCE,0xA8E6,0xCBCF, 0,
- 0, 0, 0, 0,0xD0E2,0xD0E3,0xADE3, 0,
-0xD0E4, 0,0xD0E1,0xADE4,0xADE2,0xADE1,0xD0E5, 0,
-0xD468, 0, 0, 0,0xD861, 0, 0,0xDCC5,
-0xE140, 0, 0, 0,0xBBFE,0xBEAE,0xE8F9, 0,
-0xA44C,0xA45A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB0C4,0xB3CD, 0,0xB9B9, 0,0xC942,0xA4BF, 0,
-0xA559,0xA557,0xA558, 0, 0,0xA8E7, 0, 0,
-0xA44D,0xA44E, 0,0xA462, 0, 0,0xA4C0,0xA4C1,
-0xA4C2,0xC9BE,0xA55A, 0,0xC96B, 0,0xA646, 0,
-0xC9BF,0xA644,0xA645,0xC9BD, 0, 0,0xA647,0xA643,
- 0, 0, 0, 0,0xCA6C,0xAAEC,0xCA6D, 0,
- 0,0xCA6E, 0, 0,0xA750,0xA74F, 0, 0,
-0xA753,0xA751,0xA752, 0, 0, 0,0xA8ED, 0,
-0xA8EC,0xCBD4,0xCBD1,0xCBD2, 0,0xCBD0,0xA8EE,0xA8EA,
-0xA8E9, 0,0xA8EB,0xA8E8, 0, 0, 0, 0,
- 0,0xA8EF, 0,0xAB63,0xCDF0, 0,0xCBD3,0xAB68,
- 0,0xCDF1,0xAB64,0xAB67,0xAB66,0xAB65,0xAB62, 0,
- 0, 0,0xD0E8, 0,0xADE7,0xD0EB,0xADE5, 0,
- 0, 0,0xD0E7,0xADE8,0xADE6,0xADE9,0xD0E9,0xD0EA,
- 0,0xD0E6,0xD0EC, 0, 0, 0, 0, 0,
- 0,0xB3D1,0xB0C5,0xD469,0xD46B,0xD46A,0xD46C,0xB0C6,
- 0, 0,0xB3CE, 0,0xB3CF,0xB3D0, 0,0xB6D0,
-0xDCC7, 0,0xDCC6,0xDCC8,0xDCC9,0xB6D1, 0,0xB6CF,
-0xE141,0xE142,0xB9BB,0xB9BA,0xE35A, 0, 0,0xBC40,
-0xBC41,0xBC42,0xBC44,0xE4F2,0xE4F3,0xBC43, 0, 0,
- 0,0xBEAF, 0,0xBEB0, 0, 0,0xF1ED,0xF5C3,
-0xF5C2,0xF7D1, 0,0xA44F, 0, 0, 0,0xA55C,
-0xA55B, 0, 0,0xA648, 0, 0,0xC9C0, 0,
- 0,0xA755,0xA756,0xA754,0xA757,0xCA6F,0xCA70, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA8F1,0xCBD5, 0,0xA8F0, 0,
-0xCDF2,0xAB6C,0xCDF3,0xAB6B, 0, 0, 0,0xAB69,
- 0,0xAB6A, 0, 0, 0,0xD0ED, 0, 0,
- 0, 0,0xB0C7,0xD46E, 0,0xB0CA,0xD46D,0xB1E5,
-0xB0C9,0xB0C8, 0,0xB3D4, 0,0xB3D3,0xB3D2,0xB6D2,
- 0, 0,0xB6D5,0xB6D6,0xB6D4, 0,0xB6D3, 0,
- 0,0xE143, 0,0xE144, 0, 0, 0,0xE4F5,
-0xBC45,0xE4F4, 0,0xBEB1,0xECBF,0xC079, 0,0xF1EE,
-0xC455, 0,0xA463,0xA4C3,0xC956, 0,0xA4C4,0xA4C5,
- 0, 0, 0, 0, 0,0xA55D,0xA55E, 0,
-0xA649,0xCA71,0xCBD6,0xCBD7, 0,0xAB6D,0xD0EE,0xB0CC,
-0xB0CB,0xD863,0xD862, 0, 0,0xA450,0xA4C6,0xA55F,
- 0,0xB0CD,0xC943, 0,0xC96C,0xA560, 0,0xC9C2,
-0xA64B,0xA64A,0xC9C1,0xA758, 0, 0, 0, 0,
- 0, 0,0xADEA, 0, 0,0xD46F, 0,0xB6D7,
-0xE145,0xB9BC, 0, 0,0xE8FA, 0, 0,0xF3FD,
- 0,0xA4C7, 0, 0,0xCBD8,0xCDF4,0xB0D0,0xB0CE,
-0xB0CF,0xA451, 0,0xA464,0xA2CD,0xA4CA, 0,0xA4C9,
-0xA4C8,0xA563,0xA562, 0,0xC96D,0xC9C3, 0, 0,
- 0,0xA8F5,0xA8F2,0xA8F4,0xA8F3, 0, 0,0xAB6E,
- 0, 0,0xB3D5, 0,0xA452, 0,0xA4CB, 0,
-0xA565,0xA564, 0,0xCA72, 0, 0,0xA8F6, 0,
- 0, 0, 0, 0,0xC957, 0,0xA567,0xA566,
-0xA64C,0xA64D,0xCA73,0xA759, 0,0xA75A, 0,0xA8F7,
-0xA8F8,0xA8F9, 0,0xAB6F,0xCDF5, 0, 0,0xADEB,
- 0, 0,0xC944, 0,0xA4CC, 0, 0, 0,
- 0, 0,0xC9C4, 0, 0, 0,0xCA74,0xCA75,
- 0, 0,0xCBD9, 0,0xCBDA, 0,0xCDF7,0xCDF6,
-0xCDF9,0xCDF8,0xAB70, 0,0xD470,0xADED,0xD0EF,0xADEC,
- 0, 0, 0, 0,0xD864,0xB3D6, 0,0xD865,
- 0, 0, 0, 0,0xE146,0xB9BD, 0, 0,
- 0, 0,0xBC46, 0,0xF1EF, 0, 0, 0,
- 0,0xC958, 0,0xA568, 0, 0, 0, 0,
- 0, 0, 0,0xB0D1, 0, 0, 0, 0,
-0xA453,0xA465,0xA4CE,0xA4CD, 0,0xA4CF, 0, 0,
- 0, 0, 0, 0,0xA8FB, 0,0xA8FA,0xA8FC,
- 0, 0, 0,0xAB71, 0, 0, 0,0xADEE,
- 0,0xE8FB,0xC24F,0xA466,0xA56A,0xA579,0xA574, 0,
-0xA56F,0xA56E,0xA575,0xA573,0xA56C,0xA57A,0xA56D,0xA569,
-0xA578,0xA577,0xA576,0xA56B, 0,0xA572, 0, 0,
-0xA571, 0, 0,0xA57B,0xA570, 0, 0, 0,
- 0,0xA653, 0,0xA659,0xA655, 0,0xA65B,0xC9C5,
-0xA658,0xA64E,0xA651,0xA654,0xA650,0xA657,0xA65A,0xA64F,
-0xA652,0xA656,0xA65C, 0, 0, 0, 0, 0,
-0xCA7E,0xCA7B, 0,0xA767,0xCA7C,0xA75B,0xA75D,0xA775,
-0xA770, 0, 0, 0,0xCAA5,0xCA7D,0xA75F,0xA761,
-0xCAA4,0xA768,0xCA78,0xA774,0xA776,0xA75C,0xA76D, 0,
-0xCA76,0xA773, 0,0xA764, 0,0xA76E,0xA76F,0xCA77,
-0xA76C,0xA76A, 0,0xA76B,0xA771,0xCAA1,0xA75E, 0,
-0xA772,0xCAA3,0xA766,0xA763, 0,0xCA7A,0xA762,0xCAA6,
-0xA765, 0,0xA769, 0, 0, 0,0xA760,0xCAA2,
- 0, 0, 0, 0,0xCA79, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCBEB,0xCBEA,0xA94F,0xCBED,0xCBEF,0xCBE4,0xCBE7,0xCBEE,
-0xA950, 0, 0,0xCBE1,0xCBE5, 0, 0,0xCBE9,
-0xCE49,0xA94B,0xCE4D,0xA8FD,0xCBE6,0xA8FE,0xA94C,0xA945,
-0xA941, 0,0xCBE2,0xA944,0xA949,0xA952,0xCBE3,0xCBDC,
-0xA943,0xCBDD,0xCBDF, 0,0xA946, 0,0xA948,0xCBDB,
-0xCBE0, 0, 0,0xA951,0xA94D,0xCBE8,0xA953, 0,
-0xA94A,0xCBDE,0xA947, 0, 0,0xA942,0xA940, 0,
-0xCBEC, 0,0xA94E, 0, 0, 0, 0, 0,
-0xCE48,0xCDFB,0xCE4B, 0, 0,0xCDFD,0xAB78,0xABA8,
-0xAB74,0xABA7,0xAB7D,0xABA4,0xAB72,0xCDFC,0xCE43,0xABA3,
-0xCE4F,0xABA5, 0,0xAB79, 0, 0,0xCE45,0xCE42,
-0xAB77, 0,0xCDFA,0xABA6,0xCE4A,0xAB7C,0xCE4C,0xABA9,
-0xAB73,0xAB7E,0xAB7B,0xCE40,0xABA1,0xCE46,0xCE47,0xAB7A,
-0xABA2,0xAB76, 0, 0, 0, 0,0xAB75,0xCDFE,
- 0, 0, 0, 0, 0, 0,0xCE44, 0,
- 0, 0, 0, 0, 0, 0,0xCE4E, 0,
-0xD144,0xADFB,0xD0F1, 0,0xD0F6,0xADF4,0xAE40,0xD0F4,
-0xADEF,0xADF9,0xADFE,0xD0FB, 0,0xADFA,0xADFD, 0,
- 0,0xD0FE,0xADF5,0xD0F5, 0, 0, 0,0xD142,
-0xD143, 0,0xADF7,0xD141,0xADF3,0xAE43, 0,0xD0F8,
- 0,0xADF1, 0,0xD146,0xD0F9,0xD0FD,0xADF6,0xAE42,
-0xD0FA,0xADFC,0xD140,0xD147,0xD4A1, 0,0xD145,0xAE44,
-0xADF0,0xD0FC,0xD0F3, 0,0xADF8, 0, 0,0xD0F2,
- 0, 0,0xD0F7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD0F0,0xAE41,
- 0, 0,0xD477, 0,0xB0E4,0xD4A7,0xB0E2,0xB0DF,
-0xD47C,0xB0DB,0xD4A2,0xB0E6,0xD476,0xD47B,0xD47A,0xADF2,
-0xB0E1,0xD4A5, 0,0xD4A8,0xD473, 0,0xB3E8, 0,
-0xD4A9,0xB0E7, 0,0xB0D9,0xB0D6,0xD47E,0xB0D3, 0,
-0xD4A6, 0,0xB0DA,0xD4AA, 0,0xD474,0xD4A4,0xB0DD,
-0xD475,0xD478,0xD47D, 0, 0,0xB0DE,0xB0DC,0xB0E8,
- 0, 0, 0, 0,0xB0E3, 0,0xB0D7,0xB1D2,
- 0,0xB0D8,0xD479,0xB0E5,0xB0E0,0xD4A3,0xB0D5, 0,
- 0, 0,0xB0D4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD471,0xD472,0xD86A,
- 0, 0, 0,0xB3D7,0xB3DA,0xD875,0xB3EE,0xD878,
-0xB3D8,0xD871,0xB3DE,0xB3E4,0xB5BD, 0, 0,0xB3E2,
-0xD86E,0xB3EF,0xB3DB,0xB3E3,0xD876,0xDCD7,0xD87B,0xD86F,
- 0,0xD866,0xD873,0xD86D,0xB3E1,0xD879, 0, 0,
-0xB3DD,0xB3F1,0xB3EA, 0,0xB3DF,0xB3DC, 0,0xB3E7,
- 0,0xD87A,0xD86C,0xD872,0xD874,0xD868,0xD877,0xB3D9,
-0xD867, 0,0xB3E0,0xB3F0,0xB3EC,0xD869,0xB3E6, 0,
- 0,0xB3ED,0xB3E9,0xB3E5, 0,0xD870, 0, 0,
- 0, 0, 0,0xB3EB, 0, 0, 0,0xDCD5,
-0xDCD1, 0,0xDCE0,0xDCCA,0xDCD3,0xB6E5,0xB6E6,0xB6DE,
-0xDCDC,0xB6E8,0xDCCF,0xDCCE,0xDCCC,0xDCDE,0xB6DC,0xDCD8,
-0xDCCD,0xB6DF,0xDCD6,0xB6DA,0xDCD2,0xDCD9,0xDCDB, 0,
- 0,0xDCDF,0xB6E3,0xDCCB,0xB6DD,0xDCD0, 0,0xB6D8,
- 0,0xB6E4,0xDCDA,0xB6E0,0xB6E1,0xB6E7,0xB6DB,0xA25F,
-0xB6D9,0xDCD4, 0, 0, 0, 0, 0,0xB6E2,
- 0, 0,0xDCDD, 0, 0, 0,0xB9CD,0xB9C8,
- 0,0xE155,0xE151, 0,0xE14B,0xB9C2,0xB9BE,0xE154,
-0xB9BF,0xE14E,0xE150, 0,0xE153, 0,0xB9C4, 0,
-0xB9CB,0xB9C5, 0, 0,0xE149,0xB9C6,0xB9C7,0xE14C,
-0xB9CC, 0,0xE14A,0xE14F,0xB9C3,0xE148,0xB9C9,0xB9C1,
- 0, 0, 0,0xB9C0,0xE14D,0xE152, 0,0xB9CA,
- 0, 0, 0, 0, 0, 0, 0,0xE147,
- 0,0xBC4D,0xE547, 0,0xE544, 0,0xBC47,0xBC53,
-0xBC54, 0,0xBC4A,0xE542,0xBC4C,0xE4F9,0xBC52, 0,
-0xE546,0xBC49,0xE548,0xBC48, 0,0xE543,0xE545,0xBC4B,
-0xE541,0xE4FA,0xE4F7, 0, 0,0xD86B,0xE4FD, 0,
-0xE4F6,0xE4FC,0xE4FB, 0,0xE4F8, 0,0xBC4F, 0,
- 0, 0, 0,0xBC4E, 0, 0, 0,0xBC50,
-0xE4FE,0xBEB2,0xE540, 0, 0, 0,0xE945, 0,
-0xE8FD, 0,0xBEBE,0xE942,0xBEB6,0xBEBA,0xE941, 0,
-0xBEB9,0xBEB5,0xBEB8,0xBEB3,0xBEBD,0xE943,0xE8FE,0xBEBC,
-0xE8FC,0xBEBB,0xE944,0xE940,0xBC51, 0,0xBEBF,0xE946,
-0xBEB7,0xBEB4, 0, 0, 0, 0,0xECC6,0xECC8,
-0xC07B,0xECC9,0xECC7,0xECC5,0xECC4,0xC07D,0xECC3,0xC07E,
- 0, 0, 0, 0,0xECC1,0xECC2,0xC07A,0xC0A1,
-0xC07C, 0, 0,0xECC0, 0,0xC250, 0,0xEFBC,
-0xEFBA,0xEFBF,0xEFBD, 0,0xEFBB,0xEFBE, 0, 0,
- 0, 0, 0, 0, 0,0xC360,0xF1F2,0xF1F3,
-0xC456, 0,0xF1F4,0xF1F0,0xF1F5,0xF1F1,0xC251, 0,
- 0, 0,0xF3FE,0xF441,0xC459,0xF440,0xC458,0xC457,
- 0, 0, 0, 0,0xC45A,0xF5C5,0xF5C6, 0,
-0xC4DA,0xC4D9,0xC4DB,0xF5C4, 0,0xF6D8,0xF6D7, 0,
-0xC56D,0xC56F,0xC56E,0xF6D9,0xC5C8,0xF8A6, 0, 0,
- 0,0xC5F1, 0,0xF8A5,0xF8EE, 0, 0,0xC949,
- 0, 0,0xA57D,0xA57C, 0,0xA65F,0xA65E,0xC9C7,
-0xA65D,0xC9C6, 0, 0,0xA779,0xCAA9, 0,0xCAA8,
- 0, 0,0xA777,0xA77A, 0, 0,0xCAA7, 0,
-0xA778, 0, 0, 0, 0, 0, 0,0xCBF0,
- 0,0xCBF1,0xA954, 0, 0, 0, 0,0xABAA,
- 0,0xD148,0xD149,0xAE45,0xAE46, 0, 0,0xD4AC,
-0xB0E9,0xB0EB,0xD4AB,0xB0EA,0xD87C,0xB3F2, 0, 0,
- 0, 0,0xB6E9,0xB6EA,0xDCE1, 0,0xB9CF, 0,
-0xB9CE, 0,0xE549,0xE948,0xE947, 0,0xF96B,0xA467,
-0xC959, 0,0xC96E,0xC96F, 0, 0, 0, 0,
-0xA662,0xA666,0xC9C9, 0,0xA664,0xA663,0xC9C8,0xA665,
-0xA661, 0, 0,0xA660,0xC9CA, 0, 0, 0,
- 0, 0, 0,0xA7A6, 0, 0,0xA7A3, 0,
-0xA77D,0xCAAA, 0, 0, 0,0xCAAB, 0,0xA7A1,
- 0,0xCAAD,0xA77B,0xCAAE,0xCAAC,0xA77E,0xA7A2,0xA7A5,
-0xA7A4,0xA77C,0xCAAF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA959,0xCBFE, 0,0xA95B, 0,0xA95A, 0,
-0xCC40,0xA958,0xA957,0xCBF5, 0,0xCBF4, 0,0xCBF2,
-0xCBF7,0xCBF6,0xCBF3,0xCBFC,0xCBFD,0xCBFA,0xCBF8,0xA956,
- 0, 0, 0,0xCBFB,0xA95C,0xCC41, 0, 0,
-0xCBF9, 0,0xABAB,0xA955, 0, 0, 0, 0,
- 0, 0, 0,0xABAC,0xCE54, 0, 0,0xCE5A,
- 0, 0, 0,0xABB2,0xCE58,0xCE5E, 0,0xCE55,
-0xCE59,0xCE5B,0xCE5D,0xCE57, 0,0xCE56,0xCE51,0xCE52,
-0xABAD, 0,0xABAF,0xABAE,0xCE53,0xCE5C, 0, 0,
- 0, 0, 0, 0, 0, 0,0xABB1, 0,
- 0, 0, 0, 0, 0,0xCE50,0xD153, 0,
-0xD152,0xD157,0xD14E, 0,0xD151,0xD150, 0,0xD154,
- 0,0xD158,0xAE47,0xAE4A, 0, 0,0xD14F,0xD155,
- 0, 0, 0,0xAE49,0xD14A, 0,0xABB0,0xD4BA,
-0xD156, 0,0xD14D, 0,0xAE48,0xD14C, 0, 0,
- 0, 0, 0, 0,0xD4B1, 0, 0,0xB0EC,
-0xB0F0,0xD4C1,0xD4AF,0xD4BD,0xB0F1,0xD4BF, 0,0xD4C5,
- 0,0xD4C9, 0, 0,0xD4C0,0xD4B4,0xD4BC, 0,
-0xD4CA,0xD4C8,0xD4BE,0xD4B9,0xD4B2,0xD8A6,0xD4B0,0xB0F5,
-0xD4B7,0xB0F6,0xB0F2,0xD4AD,0xD4C3,0xD4B5, 0, 0,
-0xD4B3,0xD4C6,0xB0F3, 0,0xD4CC,0xB0ED,0xB0EF,0xD4BB,
-0xD4B6,0xAE4B,0xB0EE,0xD4B8,0xD4C7,0xD4CB,0xD4C2, 0,
-0xD4C4, 0, 0, 0,0xD4AE, 0, 0, 0,
- 0,0xD8A1, 0,0xD8AA,0xD8A9,0xB3FA,0xD8A2, 0,
-0xB3FB,0xB3F9, 0,0xD8A4,0xB3F6,0xD8A8, 0,0xD8A3,
-0xD8A5,0xD87D,0xB3F4, 0,0xD8B2,0xD8B1,0xD8AE,0xB3F3,
-0xB3F7,0xB3F8,0xD14B,0xD8AB,0xB3F5,0xB0F4,0xD8AD,0xD87E,
-0xD8B0,0xD8AF, 0,0xD8B3, 0,0xDCEF, 0,0xD8AC,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD8A7,0xDCE7,0xB6F4,0xB6F7,0xB6F2,0xDCE6,0xDCEA,0xDCE5,
- 0,0xB6EC,0xB6F6,0xDCE2,0xB6F0,0xDCE9, 0,0xB6EE,
-0xB6ED,0xDCEC,0xB6EF,0xDCEE, 0,0xDCEB,0xB6EB, 0,
- 0, 0,0xB6F5,0xDCF0,0xDCE4,0xDCED, 0, 0,
-0xDCE3, 0, 0,0xB6F1, 0,0xB6F3, 0,0xDCE8,
- 0,0xDCF1, 0, 0,0xE15D,0xB9D0,0xE163, 0,
- 0,0xB9D5,0xE15F,0xE166,0xE157,0xB9D7,0xB9D1,0xE15C,
-0xBC55,0xE15B,0xE164,0xB9D2, 0,0xB9D6,0xE15A,0xE160,
-0xE165,0xE156,0xB9D4,0xE15E, 0, 0,0xE162,0xE168,
-0xE158,0xE161, 0,0xB9D3,0xE167, 0, 0, 0,
-0xE159, 0, 0, 0,0xBC59,0xE54B,0xBC57,0xBC56,
-0xE54D,0xE552, 0,0xE54E, 0,0xE551,0xBC5C, 0,
-0xBEA5,0xBC5B, 0,0xE54A,0xE550, 0,0xBC5A,0xE54F,
- 0,0xE54C, 0,0xBC58, 0, 0, 0, 0,
- 0, 0,0xE94D,0xF9D9,0xE94F,0xE94A,0xBEC1,0xE94C,
- 0,0xBEC0,0xE94E, 0, 0,0xBEC3,0xE950,0xBEC2,
-0xE949,0xE94B, 0, 0, 0, 0,0xC0A5,0xECCC,
- 0,0xC0A4,0xECCD,0xC0A3,0xECCB,0xC0A2,0xECCA, 0,
-0xC253,0xC252,0xF1F6,0xF1F8, 0,0xF1F7,0xC361,0xC362,
- 0, 0,0xC363,0xF442,0xC45B, 0, 0,0xF7D3,
-0xF7D2,0xC5F2, 0,0xA468,0xA4D0, 0, 0,0xA7A7,
- 0, 0, 0, 0,0xCE5F, 0, 0, 0,
- 0,0xB3FC,0xB3FD, 0,0xDCF2,0xB9D8,0xE169,0xE553,
- 0, 0, 0,0xC95A, 0, 0,0xCAB0, 0,
- 0, 0, 0, 0,0xCC42,0xCE60,0xD159,0xAE4C,
- 0, 0,0xF1F9, 0,0xC4DC,0xA469,0xA57E,0xC970,
- 0,0xA667,0xA668, 0,0xA95D, 0, 0, 0,
-0xB0F7, 0,0xB9DA, 0,0xB9DB,0xB9D9, 0,0xA46A,
- 0,0xA4D1,0xA4D3,0xA4D2,0xC95B,0xA4D4,0xA5A1,0xC971,
- 0,0xA5A2, 0, 0, 0, 0, 0,0xA669,
-0xA66A, 0, 0, 0,0xC9CB, 0,0xA7A8, 0,
-0xCAB1, 0, 0, 0,0xA961,0xCC43, 0,0xA95F,
-0xA960,0xA95E,0xD15A, 0, 0, 0,0xABB6,0xABB5,
-0xABB7,0xABB4, 0,0xCE61,0xA962,0xABB3, 0,0xAE4D,
-0xAE4E, 0,0xAE4F, 0,0xD4CD, 0, 0, 0,
-0xB3FE,0xD8B4,0xB0F8, 0, 0, 0, 0,0xB6F8,
- 0,0xB9DD,0xB9DC,0xE16A, 0,0xBC5D,0xBEC4, 0,
-0xEFC0,0xF6DA,0xF7D4,0xA46B,0xA5A3, 0,0xA5A4,0xC9D1,
-0xA66C,0xA66F, 0,0xC9CF,0xC9CD,0xA66E,0xC9D0,0xC9D2,
-0xC9CC,0xA671,0xA670,0xA66D,0xA66B,0xC9CE, 0, 0,
- 0, 0,0xA7B3, 0, 0,0xA7B0,0xCAB6,0xCAB9,
-0xCAB8, 0,0xA7AA,0xA7B2, 0, 0,0xA7AF,0xCAB5,
-0xCAB3,0xA7AE, 0, 0, 0,0xA7A9,0xA7AC, 0,
-0xCAB4,0xCABB,0xCAB7,0xA7AD,0xA7B1,0xA7B4,0xCAB2,0xCABA,
-0xA7AB, 0, 0, 0, 0, 0,0xA967,0xA96F,
- 0,0xCC4F,0xCC48,0xA970,0xCC53,0xCC44,0xCC4B, 0,
- 0,0xA966,0xCC45,0xA964,0xCC4C,0xCC50,0xA963, 0,
-0xCC51,0xCC4A, 0,0xCC4D, 0,0xA972,0xA969,0xCC54,
-0xCC52, 0,0xA96E,0xA96C,0xCC49,0xA96B,0xCC47,0xCC46,
-0xA96A,0xA968,0xA971,0xA96D,0xA965, 0,0xCC4E, 0,
-0xABB9, 0,0xABC0,0xCE6F,0xABB8,0xCE67,0xCE63, 0,
-0xCE73,0xCE62, 0,0xABBB,0xCE6C,0xABBE,0xABC1, 0,
-0xABBC,0xCE70,0xABBF, 0,0xAE56,0xCE76,0xCE64, 0,
- 0,0xCE66,0xCE6D,0xCE71,0xCE75,0xCE72,0xCE6B,0xCE6E,
- 0, 0,0xCE68,0xABC3,0xCE6A,0xCE69,0xCE74,0xABBA,
-0xCE65,0xABC2, 0,0xABBD, 0, 0, 0, 0,
- 0,0xAE5C,0xD162, 0,0xAE5B, 0, 0,0xD160,
- 0,0xAE50, 0,0xAE55, 0,0xD15F,0xD15C,0xD161,
-0xAE51,0xD15B, 0,0xAE54,0xAE52, 0,0xD163,0xAE53,
-0xAE57, 0, 0,0xAE58, 0,0xAE5A, 0, 0,
- 0,0xAE59, 0, 0, 0,0xD15D,0xD15E, 0,
- 0, 0, 0,0xD164, 0,0xD4D4,0xB0F9,0xD8C2,
-0xD4D3,0xD4E6, 0, 0,0xB140, 0,0xD4E4, 0,
-0xB0FE,0xB0FA,0xD4ED,0xD4DD,0xD4E0, 0,0xB143,0xD4EA,
-0xD4E2,0xB0FB,0xB144, 0,0xD4E7,0xD4E5, 0, 0,
-0xD4D6,0xD4EB,0xD4DF,0xD4DA, 0,0xD4D0,0xD4EC,0xD4DC,
-0xD4CF, 0,0xB142,0xD4E1,0xD4EE,0xD4DE,0xD4D2,0xD4D7,
-0xD4CE, 0,0xB141, 0,0xD4DB,0xD4D8,0xB0FC,0xD4D1,
- 0,0xD4E9,0xB0FD, 0,0xD4D9,0xD4D5, 0, 0,
-0xD4E8, 0, 0, 0, 0, 0, 0,0xB440,
-0xD8BB, 0,0xD8B8,0xD8C9,0xD8BD,0xD8CA, 0,0xB442,
- 0, 0, 0,0xD8C6,0xD8C3, 0, 0, 0,
- 0, 0,0xD8C4,0xD8C7,0xD8CB, 0,0xD4E3,0xD8CD,
-0xDD47, 0,0xB443,0xD8CE,0xD8B6,0xD8C0, 0,0xD8C5,
- 0, 0,0xB441,0xB444,0xD8CC,0xD8CF,0xD8BA,0xD8B7,
- 0, 0,0xD8B9, 0, 0,0xD8BE,0xD8BC,0xB445,
- 0,0xD8C8, 0, 0,0xD8BF, 0,0xD8C1,0xD8B5,
-0xDCFA,0xDCF8,0xB742,0xB740,0xDD43,0xDCF9,0xDD44,0xDD40,
-0xDCF7,0xDD46,0xDCF6,0xDCFD,0xB6FE,0xB6FD,0xB6FC,0xDCFB,
-0xDD41,0xB6F9,0xB741, 0,0xDCF4, 0,0xDCFE,0xDCF3,
-0xDCFC,0xB6FA,0xDD42,0xDCF5,0xB6FB,0xDD45, 0, 0,
- 0, 0, 0, 0, 0,0xE16E,0xB9E2,0xB9E1,
-0xB9E3,0xE17A,0xE170,0xE176,0xE16B,0xE179,0xE178,0xE17C,
-0xE175,0xB9DE,0xE174,0xB9E4, 0,0xE16D,0xB9DF, 0,
-0xE17B,0xB9E0,0xE16F,0xE172,0xE177,0xE171,0xE16C, 0,
- 0, 0, 0,0xE173,0xE555,0xBC61,0xE558,0xE557,
-0xE55A,0xE55C,0xF9DC,0xBC5F, 0,0xE556, 0,0xE554,
- 0,0xE55D,0xE55B,0xE559, 0,0xE55F, 0,0xE55E,
-0xBC63,0xBC5E, 0,0xBC60,0xBC62, 0, 0,0xE560,
-0xE957, 0, 0,0xE956,0xE955, 0,0xE958,0xE951,
- 0,0xE952,0xE95A,0xE953, 0,0xBEC5,0xE95C, 0,
-0xE95B,0xE954, 0,0xECD1,0xC0A8,0xECCF,0xECD4,0xECD3,
-0xE959, 0,0xC0A7, 0,0xECD2,0xECCE,0xECD6,0xECD5,
-0xC0A6, 0,0xECD0, 0,0xBEC6, 0, 0, 0,
-0xC254, 0, 0, 0,0xEFC1,0xF1FA,0xF1FB,0xF1FC,
-0xC45C, 0, 0,0xC45D, 0,0xF443, 0,0xF5C8,
-0xF5C7, 0, 0,0xF6DB,0xF6DC,0xF7D5,0xF8A7, 0,
-0xA46C,0xA46D, 0,0xA46E,0xA4D5,0xA5A5,0xC9D3,0xA672,
-0xA673, 0,0xA7B7,0xA7B8,0xA7B6,0xA7B5, 0,0xA973,
- 0, 0,0xCC55,0xA975,0xA974,0xCC56, 0, 0,
- 0,0xABC4, 0,0xAE5D,0xD165, 0,0xD4F0, 0,
-0xB145,0xB447,0xD4EF,0xB446, 0,0xB9E5, 0,0xE17D,
-0xBEC7, 0,0xC0A9,0xECD7, 0,0xC45E, 0,0xC570,
- 0,0xC972, 0,0xA5A6,0xC973,0xA676, 0,0xA674,
-0xA675,0xA677, 0,0xA7BA,0xA7B9, 0,0xCABC,0xA7BB,
- 0, 0,0xCABD,0xCC57, 0,0xCC58, 0,0xA976,
-0xA978,0xA97A,0xA977,0xA97B,0xA979, 0, 0, 0,
- 0, 0,0xABC8,0xABC5,0xABC7,0xABC9,0xABC6,0xD166,
-0xCE77, 0, 0, 0,0xD168,0xD167,0xAE63, 0,
-0xAE5F, 0, 0,0xAE60,0xAE62,0xAE64,0xAE61, 0,
-0xAE66,0xAE65, 0, 0, 0, 0, 0,0xB14A,
-0xD4F2,0xD4F1,0xB149, 0,0xB148,0xB147,0xB14B,0xB146,
- 0, 0,0xD8D5,0xD8D2,0xB449,0xD8D1,0xD8D6, 0,
-0xB44B,0xD8D4,0xB448,0xB44A,0xD8D3, 0,0xDD48, 0,
-0xDD49,0xDD4A, 0, 0, 0, 0,0xB9E6,0xB9EE,
-0xE17E,0xB9E8,0xB9EC,0xE1A1,0xB9ED,0xB9E9,0xB9EA,0xB9E7,
-0xB9EB,0xBC66,0xD8D0,0xBC67,0xBC65, 0,0xBC64,0xE95D,
-0xBEC8,0xECD8,0xECD9, 0, 0,0xC364,0xC45F, 0,
-0xA46F, 0,0xA678, 0, 0, 0, 0, 0,
- 0,0xABCA, 0,0xD169,0xAE67, 0, 0,0xB14E,
-0xB14D,0xB14C,0xB44C,0xB44D,0xD8D7,0xB9EF,0xBEC9,0xA470,
-0xC95C,0xA4D6,0xC974, 0, 0,0xC9D4,0xA679, 0,
- 0, 0,0xA97C, 0, 0, 0, 0,0xDD4B,
- 0, 0,0xA471, 0,0xA4D7,0xC9D5, 0, 0,
-0xCABE, 0,0xCABF, 0,0xA7BC, 0, 0, 0,
-0xD8D8,0xB44E, 0,0xDD4C, 0, 0, 0,0xC0AA,
-0xA472,0xA4A8,0xA4D8,0xC975,0xA5A7, 0,0xA7C0,0xA7BF,
-0xA7BD,0xA7BE, 0, 0,0xCC59,0xA97E,0xA9A1,0xCC5A,
-0xA97D, 0, 0,0xABCE,0xCE78,0xABCD,0xABCB,0xABCC,
-0xAE6A,0xAE68, 0, 0,0xD16B,0xAE69,0xD16A, 0,
-0xAE5E,0xD4F3, 0, 0,0xB150,0xB151, 0, 0,
-0xB14F, 0,0xB9F0,0xE1A2,0xBC68,0xBC69, 0,0xE561,
-0xC0AB,0xEFC2,0xEFC3, 0,0xC4DD,0xF8A8,0xC94B,0xA4D9,
- 0,0xA473, 0,0xC977,0xC976, 0, 0, 0,
- 0,0xA67A,0xC9D7,0xC9D8,0xC9D6, 0,0xC9D9, 0,
- 0, 0, 0, 0, 0, 0,0xCAC7, 0,
-0xCAC2,0xCAC4,0xCAC6,0xCAC3,0xA7C4,0xCAC0, 0,0xCAC1,
-0xA7C1,0xA7C2,0xCAC5,0xCAC8,0xA7C3,0xCAC9, 0, 0,
- 0, 0, 0, 0, 0,0xCC68, 0,0xCC62,
-0xCC5D,0xA9A3,0xCC65,0xCC63,0xCC5C,0xCC69,0xCC6C,0xCC67,
-0xCC60,0xA9A5,0xCC66,0xA9A6,0xCC61,0xCC64,0xCC5B,0xCC5F,
-0xCC6B,0xA9A7, 0,0xA9A8, 0,0xCC5E,0xCC6A,0xA9A2,
-0xA9A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCEAB,0xCEA4,
-0xCEAA,0xCEA3,0xCEA5,0xCE7D,0xCE7B, 0,0xCEAC,0xCEA9,
-0xCE79, 0,0xABD0,0xCEA7,0xCEA8, 0,0xCEA6,0xCE7C,
-0xCE7A,0xABCF,0xCEA2,0xCE7E, 0, 0,0xCEA1,0xCEAD,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xAE6F, 0,0xAE6E, 0,0xD16C,0xAE6B,0xD16E, 0,
-0xAE70,0xD16F, 0, 0,0xAE73, 0,0xAE71,0xD170,
-0xCEAE,0xD172, 0,0xAE6D, 0,0xAE6C, 0,0xD16D,
-0xD171,0xAE72, 0, 0, 0, 0,0xB153,0xB152,
- 0, 0, 0,0xD4F5,0xD4F9,0xD4FB,0xB154,0xD4FE,
- 0,0xB158,0xD541, 0,0xB15A, 0,0xB156,0xB15E,
- 0,0xB15B,0xD4F7,0xB155, 0,0xD4F6,0xD4F4,0xD543,
-0xD4F8, 0,0xB157,0xD542,0xB15C,0xD4FD,0xD4FC,0xB15D,
-0xD4FA,0xB159, 0, 0, 0, 0,0xD544, 0,
-0xD540,0xD8E7,0xD8EE,0xD8E3,0xB451,0xD8DF,0xD8EF,0xD8D9,
-0xD8EC,0xD8EA,0xD8E4, 0,0xD8ED,0xD8E6, 0,0xD8DE,
-0xD8F0,0xD8DC,0xD8E9,0xD8DA, 0,0xD8F1, 0,0xB452,
- 0,0xD8EB,0xDD4F,0xD8DD,0xB44F, 0,0xD8E1, 0,
-0xB450,0xD8E0,0xD8E5, 0, 0,0xD8E2, 0, 0,
- 0,0xD8E8, 0, 0, 0, 0,0xDD53, 0,
- 0, 0,0xDD56,0xDD4E, 0,0xDD50, 0,0xDD55,
-0xDD54,0xB743, 0,0xD8DB,0xDD52, 0, 0,0xB744,
- 0,0xDD4D,0xDD51, 0, 0, 0, 0,0xE1A9,
- 0,0xE1B0,0xE1A7, 0,0xE1AE,0xE1A5,0xE1AD,0xE1B1,
-0xE1A4,0xE1A8,0xE1A3, 0,0xB9F1, 0,0xE1A6,0xB9F2,
-0xE1AC,0xE1AB,0xE1AA, 0, 0,0xE1AF, 0, 0,
- 0, 0,0xE565,0xE567,0xBC6B,0xE568, 0,0xE563,
- 0,0xE562,0xE56C, 0,0xE56A,0xBC6A,0xE56D,0xE564,
-0xE569,0xE56B,0xE566, 0, 0, 0, 0,0xE961,
-0xE966,0xE960,0xE965, 0,0xE95E,0xE968,0xE964,0xE969,
-0xE963,0xE95F,0xE967, 0,0xE96A,0xE962, 0,0xECDA,
-0xC0AF, 0,0xC0AD, 0,0xC0AC,0xC0AE, 0, 0,
-0xEFC4, 0,0xF172,0xF1FD, 0, 0,0xF444,0xF445,
- 0,0xC460, 0,0xF5C9, 0,0xC4DE, 0,0xF5CA,
- 0,0xF6DE,0xC572, 0,0xC571,0xF6DD,0xC5C9, 0,
-0xF7D6, 0, 0, 0, 0,0xA474,0xA67B,0xC9DA,
-0xCACA,0xA8B5,0xB15F, 0, 0,0xA475,0xA5AA,0xA5A9,
-0xA5A8, 0, 0,0xA7C5, 0, 0,0xAE74, 0,
-0xDD57,0xA476,0xA477,0xA478,0xA4DA, 0, 0,0xABD1,
- 0,0xCEAF, 0, 0, 0,0xB453,0xA479,0xC95D,
- 0, 0,0xA5AB,0xA5AC,0xC978, 0,0xA67C, 0,
- 0, 0,0xCACB, 0,0xA7C6, 0,0xCACC, 0,
- 0,0xA9AE, 0, 0,0xCC6E,0xA9AC,0xA9AB,0xCC6D,
-0xA9A9,0xCC6F,0xA9AA,0xA9AD, 0,0xABD2, 0,0xABD4,
-0xCEB3,0xCEB0,0xCEB1,0xCEB2,0xCEB4,0xABD3, 0, 0,
-0xD174,0xD173, 0,0xAE76, 0,0xAE75, 0, 0,
- 0, 0, 0,0xB162,0xD546, 0,0xB161,0xB163,
-0xB160, 0, 0, 0, 0,0xB455,0xD545, 0,
-0xB456,0xD8F3, 0,0xB457,0xD8F2,0xB454, 0, 0,
- 0, 0,0xDD5A,0xDD5C,0xB745,0xDD5B,0xDD59,0xDD58,
- 0, 0, 0,0xE1B4,0xB9F7,0xB9F5, 0,0xB9F6,
-0xE1B2,0xE1B3, 0,0xB9F3,0xE571,0xE56F, 0,0xBC6D,
-0xE570,0xBC6E,0xBC6C,0xB9F4, 0, 0,0xE96D,0xE96B,
-0xE96C,0xE56E,0xECDC,0xC0B0,0xECDB,0xEFC5,0xEFC6,0xE96E,
-0xF1FE, 0,0xA47A,0xA5AD,0xA67E,0xC9DB,0xA67D, 0,
-0xA9AF,0xB746, 0,0xA4DB,0xA5AE,0xABD5,0xB458, 0,
-0xC979, 0,0xC97A, 0,0xC9DC, 0, 0,0xA7C8,
-0xCAD0,0xCACE,0xA7C9,0xCACD,0xCACF,0xCAD1, 0,0xA7C7,
- 0, 0, 0, 0, 0,0xA9B3,0xA9B4,0xA9B1,
- 0, 0,0xA9B0,0xCEB8,0xA9B2, 0, 0, 0,
-0xABD6, 0,0xCEB7,0xCEB9,0xCEB6,0xCEBA,0xABD7,0xAE79,
-0xD175, 0,0xD177,0xAE77,0xD178,0xAE78,0xD176, 0,
-0xCEB5,0xD547,0xD54A,0xD54B,0xD548,0xB167,0xB166,0xB164,
-0xB165,0xD549, 0, 0, 0, 0,0xB168, 0,
- 0,0xB45A,0xB45B, 0,0xB45C,0xDD5D,0xDD5F,0xDD61,
-0xB748,0xB747,0xB459,0xDD60,0xDD5E, 0,0xE1B8, 0,
- 0,0xE1B6,0xE1BC,0xB9F8,0xE1BD,0xE1BA,0xB9F9,0xE1B7,
-0xE1B5,0xE1BB,0xBC70,0xE573,0xE1B9,0xBC72,0xE574,0xBC71,
-0xBC74,0xE575,0xBC6F,0xBC73, 0,0xE973,0xE971,0xE970,
-0xE972,0xE96F, 0, 0,0xC366, 0,0xF446,0xF447,
- 0,0xF5CB,0xF6DF,0xC655, 0, 0,0xA9B5,0xA7CA,
- 0, 0,0xABD8, 0, 0, 0,0xA47B,0xA4DC,
- 0,0xA5AF,0xC9DD, 0,0xA7CB,0xCAD2, 0,0xCEBB,
-0xABD9, 0,0xB9FA,0xA47C, 0, 0, 0,0xA6A1,
- 0, 0,0xB749,0xA47D,0xA4DD,0xA4DE, 0,0xA5B1,
-0xA5B0, 0,0xC9DE,0xA6A2, 0,0xCAD3, 0,0xA7CC,
- 0, 0,0xCC71,0xCC72,0xCC73, 0,0xA9B6,0xA9B7,
-0xCC70,0xA9B8, 0, 0, 0,0xABDA,0xCEBC, 0,
-0xD17A,0xAE7A, 0,0xD179, 0,0xB169,0xD54C,0xB16A,
-0xD54D, 0, 0, 0,0xB45D, 0, 0, 0,
-0xDD62, 0, 0,0xE1BF,0xE1BE, 0,0xB9FB, 0,
-0xBC75,0xE576,0xBECA,0xE974,0xC0B1, 0,0xC573,0xF7D8,
- 0, 0, 0, 0,0xCC74, 0,0xCEBD,0xB16B,
-0xD8F4,0xB74A, 0, 0, 0,0xC255, 0, 0,
- 0, 0,0xA7CE, 0,0xA7CD,0xABDB, 0,0xD17B,
- 0,0xB16D,0xB343,0xB16E,0xB16C,0xB45E, 0,0xE1C0,
-0xB9FC,0xBC76, 0,0xC94C,0xC9DF, 0,0xCAD5,0xA7CF,
-0xCAD4,0xA7D0, 0, 0,0xA9BC,0xCC77,0xCC76,0xA9BB,
-0xA9B9,0xA9BA,0xCC75, 0, 0,0xABDD,0xCEBE,0xABE0,
-0xABDC,0xABE2,0xABDE,0xABDF,0xABE1, 0, 0, 0,
-0xAE7D,0xAE7C,0xAE7B, 0, 0, 0,0xD54F,0xB16F,
-0xB172,0xB170, 0,0xD54E,0xB175, 0,0xB171,0xD550,
-0xB174,0xB173, 0, 0, 0,0xD8F6,0xD8F5, 0,
-0xB461,0xB45F,0xB460,0xD8F7,0xB74B,0xDD64,0xB74C,0xDD63,
- 0, 0,0xE577, 0, 0,0xBC78,0xE1C1,0xBC77,
- 0,0xB9FD, 0,0xECDE,0xE975,0xC0B2,0xECDD,0xF240,
-0xF448,0xF449, 0,0xA4DF, 0,0xA5B2, 0, 0,
- 0,0xC97B, 0, 0,0xA7D2,0xA7D4, 0,0xC9E2,
-0xCAD8,0xCAD7,0xCAD6, 0,0xC9E1,0xC9E0,0xA6A4,0xA7D3,
-0xA7D1,0xA6A3, 0, 0, 0,0xA9BD,0xCC78, 0,
-0xA9BE,0xCADD, 0,0xCADF,0xCADE,0xCC79, 0, 0,
-0xCADA, 0,0xA7D8,0xA7D6, 0,0xCAD9,0xCADB,0xCAE1,
- 0,0xA7D5, 0,0xCADC,0xCAE5,0xA9C0, 0,0xCAE2,
-0xA7D7, 0,0xCAE0,0xCAE3, 0,0xA9BF, 0,0xA9C1,
-0xCAE4, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCCAF,0xCCA2,0xCC7E,0xCCAE,0xCCA9,0xABE7,0xA9C2,
-0xCCAA,0xCCAD,0xABE3,0xCCAC,0xA9C3,0xA9C8,0xA9C6,0xCCA3,
- 0,0xCC7C,0xCCA5,0xA9CD,0xCCB0,0xABE4,0xCCA6, 0,
-0xABE5,0xA9C9,0xCCA8, 0,0xCECD,0xABE6,0xCC7B,0xA9CA,
-0xABE8,0xA9CB,0xA9C7,0xA9CC,0xCCA7,0xCC7A,0xCCAB,0xA9C4,
- 0, 0,0xCC7D,0xCCA4,0xCCA1,0xA9C5, 0,0xCEBF,
- 0,0xCEC0, 0, 0, 0, 0, 0, 0,
-0xCECA,0xD1A1,0xCECB,0xABEE,0xCECE,0xCEC4,0xABED,0xCEC6,
- 0,0xCEC7, 0, 0,0xCEC9,0xABE9, 0, 0,
-0xAEA3, 0,0xF9DA,0xCEC5,0xCEC1,0xAEA4, 0, 0,
-0xCECF,0xAE7E,0xD17D,0xCEC8, 0,0xD17C,0xCEC3,0xCECC,
- 0, 0,0xABEC,0xAEA1,0xABF2,0xAEA2,0xCED0,0xD17E,
-0xABEB,0xAEA6,0xABF1,0xABF0,0xABEF,0xAEA5,0xCED1,0xAEA7,
-0xABEA, 0,0xCEC2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xB176,
-0xD1A4,0xD1A6, 0,0xD1A8,0xAEA8,0xAEAE,0xD553,0xD1AC,
-0xD1A3,0xB178,0xD551, 0,0xAEAD,0xAEAB,0xD1AE, 0,
-0xD552, 0,0xD1A5, 0,0xAEAC,0xD1A9,0xAEAF,0xD1AB,
- 0, 0,0xAEAA,0xD1AA,0xD1AD,0xD1A7, 0,0xAEA9,
-0xB179, 0,0xD1A2,0xB177, 0, 0, 0, 0,
-0xB17A, 0, 0, 0, 0, 0, 0, 0,
-0xD555,0xD55E,0xB464, 0,0xB17C,0xB1A3,0xB465,0xD560,
-0xB1AA,0xD8F9,0xD556,0xB1A2,0xB1A5,0xB17E,0xD554,0xD562,
-0xD565,0xD949, 0,0xD563,0xD8FD,0xB1A1,0xB1A8,0xB1AC,
-0xD55D,0xD8F8,0xD561,0xB17B,0xD8FA,0xD564,0xD8FC,0xD559,
- 0,0xB462, 0,0xD557,0xD558,0xB1A7, 0, 0,
-0xB1A6,0xD55B,0xB1AB,0xD55F,0xB1A4,0xD55C, 0,0xB1A9,
-0xB466,0xB463,0xD8FB, 0,0xD55A, 0,0xB17D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB46B,0xB46F,0xD940,0xB751,0xB46D,0xD944,0xB471,0xDD65,
-0xD946,0xB753,0xB469,0xB46C,0xD947, 0,0xD948,0xD94E,
-0xB473,0xB754, 0,0xD94A,0xD94F,0xD943,0xB75E, 0,
-0xB755,0xB472,0xD941,0xD950, 0,0xB75D,0xB470,0xB74E,
-0xD94D, 0,0xB474,0xD945,0xD8FE,0xB46A,0xD942, 0,
-0xD94B, 0,0xB74D,0xB752,0xB467,0xD94C, 0,0xB750,
- 0, 0, 0,0xB468, 0, 0, 0,0xB75C,
-0xE1C3,0xDD70, 0,0xDD68,0xE1C2, 0,0xDD6C,0xDD6E,
- 0, 0,0xDD6B, 0,0xB75B, 0,0xDD6A,0xB75F,
- 0, 0, 0,0xE1D2, 0, 0,0xB75A,0xBA40,
-0xDD71,0xE1C4, 0, 0,0xB758,0xDD69,0xDD6D,0xB9FE,
-0xB74F,0xDD66,0xDD67,0xBA41,0xB757,0xB759,0xB756,0xDD6F,
- 0, 0,0xE1C8,0xE1C9,0xE1CE,0xBC7D,0xE1D5, 0,
-0xBA47, 0,0xBA46,0xE1D0, 0,0xBC7C,0xE1C5,0xBA45,
- 0,0xE1D4,0xBA43,0xBA44, 0,0xE1D1,0xE5AA,0xBC7A,
-0xB46E, 0,0xE1D3,0xBCA3,0xE1CB, 0,0xBC7B, 0,
-0xBCA2,0xE1C6,0xE1CA,0xE1C7,0xE1CD,0xBA48,0xBC79,0xBA42,
- 0,0xE57A,0xE1CF, 0,0xBCA1, 0,0xBCA4, 0,
-0xE1CC, 0,0xBC7E,0xE579, 0, 0, 0, 0,
- 0,0xE57E,0xBECE,0xE578,0xE9A3,0xE5A9,0xBCA8, 0,
-0xBCA6,0xBECC,0xE5A6,0xE5A2,0xBCAC, 0,0xE978, 0,
- 0, 0,0xBCAA,0xE5A1, 0,0xE976, 0,0xE5A5,
- 0,0xE5A8,0xE57D, 0,0xBCAB, 0, 0,0xBCA5,
-0xE977,0xBECD,0xE5A7,0xBCA7,0xBCA9,0xE5A4,0xBCAD,0xE5A3,
-0xE57C,0xE57B,0xBECB,0xE5AB,0xE97A,0xECE0,0xBED0, 0,
-0xE9A2, 0,0xE97E, 0,0xECE1, 0,0xBED1,0xE9A1,
- 0,0xE97C,0xC0B4,0xECDF, 0,0xE979,0xE97B,0xC0B5,
-0xBED3,0xC0B3,0xBED2,0xC0B7,0xE97D,0xBECF, 0, 0,
- 0, 0, 0, 0, 0, 0,0xEFCF, 0,
-0xEFC7, 0, 0, 0, 0, 0,0xECE7,0xEFC8,
-0xECE3, 0, 0,0xC256,0xECE5,0xECE4,0xC0B6,0xECE2,
-0xECE6,0xEFD0,0xEFCC,0xEFCE, 0,0xEFC9,0xEFCA, 0,
-0xEFCD,0xEFCB,0xC367, 0, 0,0xC36A,0xC369,0xC368,
-0xC461,0xF44A,0xC462,0xF241,0xC4DF,0xF5CC,0xC4E0,0xC574,
-0xC5CA,0xF7D9, 0,0xF7DA,0xF7DB, 0, 0,0xF9BA,
-0xA4E0,0xC97C,0xA5B3, 0,0xA6A6,0xA6A7,0xA6A5, 0,
-0xA6A8,0xA7DA,0xA7D9, 0,0xCCB1,0xA9CF,0xA9CE, 0,
- 0,0xD1AF,0xB1AD,0xB1AE, 0, 0, 0,0xB475,
-0xDD72,0xB760,0xB761,0xDD74,0xDD76,0xDD75, 0,0xE1D7,
- 0,0xE1D6,0xBA49,0xE1D8, 0,0xE5AC,0xBCAE, 0,
-0xBED4, 0,0xC0B8,0xC257,0xC0B9, 0,0xA4E1, 0,
- 0, 0,0xCAE6, 0, 0,0xCCB2,0xA9D1,0xA9D0,
-0xA9D2,0xABF3,0xCED2,0xCED3, 0, 0,0xD1B0,0xAEB0,
-0xB1AF,0xB476,0xD951,0xA4E2, 0,0xA47E,0xA4E3, 0,
-0xC97D,0xA5B7,0xA5B6,0xA5B4,0xA5B5, 0, 0, 0,
-0xA6AB,0xC9E9,0xC9EB,0xA6AA,0xC9E3, 0,0xC9E4, 0,
-0xC9EA,0xC9E6,0xC9E8,0xA6A9,0xC9E5,0xC9EC,0xC9E7, 0,
- 0, 0, 0, 0, 0,0xA7E1,0xA7EA,0xA7E8,
-0xCAF0,0xCAED,0xCAF5,0xA7E6,0xCAF6, 0,0xA7DF,0xCAF3,
- 0,0xA7E5,0xCAEF,0xCAEE,0xA7E3,0xCAF4,0xA7E4,0xA9D3,
-0xA7DE,0xCAF1, 0,0xCAE7,0xA7DB, 0,0xA7EE,0xCAEC,
-0xCAF2,0xA7E0,0xA7E2, 0,0xCAE8, 0,0xCAE9,0xCAEA,
- 0,0xA7ED,0xA7E7,0xA7EC,0xCAEB,0xA7EB,0xA7DD,0xA7DC,
-0xA7E9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA9E1,0xCCBE,0xCCB7,0xA9DC,0xA9EF,0xCCB3,0xCCBA,0xCCBC,
-0xCCBF,0xA9EA, 0,0xCCBB,0xCCB4,0xA9E8,0xCCB8, 0,
-0xCCC0,0xA9D9, 0,0xCCBD,0xA9E3,0xA9E2,0xCCB6,0xA9D7,
- 0, 0,0xA9D8, 0,0xA9D6, 0,0xA9EE,0xA9E6,
-0xA9E0,0xA9D4,0xCCB9,0xA9DF,0xA9D5,0xA9E7,0xA9F0,0xCED4,
-0xA9E4,0xCCB5,0xA9DA,0xA9DD,0xA9DE, 0,0xA9EC,0xA9ED,
-0xA9EB,0xA9E5,0xA9E9,0xA9DB,0xABF4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCEDA,0xAC41,0xABF8,0xABFA,0xAC40,
-0xCEE6,0xABFD,0xD1B1,0xAEB1,0xAC43,0xCED7,0xCEDF,0xABFE,
-0xCEDE,0xCEDB,0xCEE3,0xCEE5,0xABF7,0xABFB,0xAC42,0xAEB3,
-0xCEE0,0xABF9,0xAC45,0xCED9, 0, 0, 0,0xABFC,
-0xAEB2,0xABF6, 0,0xCED6,0xCEDD,0xCED5,0xCED8,0xCEDC,
-0xD1B2,0xAC44, 0,0xCEE1,0xCEE2,0xCEE4,0xABF5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xAEC1,0xD1BE,0xAEBF,0xAEC0,0xD1B4,0xD1C4, 0,0xAEB6,
- 0, 0,0xD566,0xD1C6,0xD1C0, 0,0xD1B7, 0,
-0xD1C9,0xD1BA,0xAEBC,0xD57D,0xD1BD,0xAEBE,0xAEB5, 0,
-0xD1CB,0xD1BF,0xAEB8,0xD1B8,0xD1B5,0xD1B6,0xAEB9,0xD1C5,
-0xD1CC,0xAEBB,0xD1BC,0xD1BB,0xAEC3,0xAEC2,0xAEB4,0xAEBA,
-0xAEBD,0xD1C8, 0, 0,0xD1C2,0xAEB7,0xD1B3,0xD1CA,
-0xD1C1,0xD1C3,0xD1C7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD567, 0,0xB1B7,
-0xB1CB,0xB1CA, 0,0xB1BF, 0,0xD579,0xD575,0xD572,
-0xD5A6,0xB1BA,0xB1B2, 0, 0,0xD577,0xB4A8,0xB1B6,
-0xD5A1, 0,0xB1CC,0xB1C9,0xD57B,0xD56A, 0, 0,
-0xB1C8,0xD5A3,0xD569,0xB1BD,0xB1C1,0xD5A2, 0,0xD573,
-0xB1C2,0xB1BC,0xD568, 0,0xB478,0xD5A5,0xD571,0xB1C7,
-0xD574,0xD5A4,0xB1C6, 0,0xD952, 0,0xB1B3,0xD56F,
-0xB1B8,0xB1C3, 0,0xB1BE,0xD578,0xD56E,0xD56C,0xD57E,
-0xB1B0,0xB1C4,0xB1B4,0xB477,0xD57C,0xB1B5, 0,0xB1B1,
-0xB1C0,0xB1BB,0xB1B9,0xD570,0xB1C5,0xD56D,0xD57A,0xD576,
-0xD954,0xD953, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD56B,0xD964, 0,
-0xB47A, 0,0xD96A,0xD959,0xD967,0xDD77,0xB47D,0xD96B,
-0xD96E,0xB47C,0xD95C,0xD96D,0xD96C,0xB47E,0xD955,0xB479,
-0xB4A3, 0,0xB4A1,0xD969, 0,0xD95F,0xB4A5,0xD970,
-0xD968,0xD971,0xB4AD,0xB4AB,0xD966,0xD965, 0,0xD963,
-0xD95D,0xB4A4, 0,0xB4A2,0xD1B9,0xD956, 0,0xDDB7,
-0xD957,0xB47B,0xB4AA,0xDD79, 0,0xB4A6,0xB4A7,0xD958,
-0xD96F,0xDD78,0xD960,0xD95B,0xB4A9,0xD961,0xD95E, 0,
- 0,0xB4AE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xB770, 0,
- 0,0xDD7C,0xDDB1,0xDDB6,0xDDAA,0xB76C,0xDDBB,0xB769,
-0xDD7A, 0,0xDD7B,0xB762,0xB76B,0xDDA4,0xB76E,0xB76F,
-0xDDA5, 0,0xDDB2,0xDDB8,0xB76A, 0,0xB764,0xDDA3,
-0xDD7D,0xDDBA,0xDDA8,0xDDA9,0xDD7E,0xDDB4,0xDDAB,0xDDB5,
-0xDDAD, 0,0xB765,0xE1D9,0xB768,0xB766,0xDDB9,0xDDB0,
-0xDDAC, 0, 0,0xDDA1,0xBA53,0xDDAF,0xB76D,0xDDA7,
- 0,0xDDA6, 0, 0, 0,0xB767,0xB763,0xE1EE,
-0xDDB3,0xDDAE, 0,0xDDA2, 0, 0, 0, 0,
- 0, 0, 0,0xE1E9, 0,0xE1DA,0xE1E5, 0,
-0xE1EC,0xBA51,0xB4AC,0xE1EA,0xBA4C, 0, 0, 0,
-0xBA4B,0xE1F1, 0,0xE1DB,0xE1E8,0xE1DC,0xE1E7,0xBA4F,
-0xE1EB,0xD962, 0, 0, 0,0xE1F2,0xE1E3,0xBA52,
-0xE5BA,0xBCAF, 0,0xE1F0,0xE1EF,0xBA54,0xE5AD,0xBCB0,
-0xE5AE, 0,0xE1DF,0xE1E0,0xE1DD,0xE1E2,0xE1DE,0xE1F3,
-0xBA4E,0xBCB1,0xBA50,0xBA55, 0,0xE1E1, 0,0xE1ED,
- 0, 0,0xE1E6, 0, 0,0xE5B1, 0,0xBA4A,
-0xBCB4,0xE9AA,0xE5B6,0xE5B5,0xE5B7, 0, 0,0xE5B4,
-0xBCB5, 0,0xBCBB,0xBCB8, 0,0xBCB9,0xE5AF,0xE5B2,
-0xE5BC,0xBCC1,0xBCBF, 0,0xE5B3,0xD95A,0xBCB2,0xE5B9,
-0xE5B0, 0,0xBCC2,0xE5B8,0xBA4D,0xBCB7,0xE1E4, 0,
- 0,0xBCBA, 0,0xBCBE,0xBCC0,0xBCBD,0xBCBC, 0,
-0xBCB6,0xE5BB,0xBCB3,0xBCC3, 0, 0, 0, 0,
- 0, 0, 0,0xBED8,0xBED9,0xE9A9,0xBEE2,0xBEDF,
- 0,0xBED6,0xBEDD,0xE9AB,0xBEDB,0xBED5, 0,0xBEDC,
- 0,0xE9A8,0xC0BB,0xBED7, 0,0xBEDE,0xC0BA,0xE9A7,
-0xE9A6, 0,0xBEE0, 0,0xBEE1, 0,0xE9A5,0xE9A4,
-0xC0BC,0xE9AE,0xBEDA,0xE9AC, 0, 0, 0, 0,
-0xC0BD, 0,0xC0C2,0xECEA,0xECEC, 0,0xC0BF, 0,
-0xECED,0xECE9, 0,0xECEB,0xC0C0,0xC0C3, 0,0xECE8,
-0xC0BE,0xC0C1,0xC259,0xE9AD,0xC258, 0, 0,0xC25E,
-0xEFD4, 0,0xC25C,0xC25D,0xEFD7,0xEFD3,0xC25A,0xEFD1,
-0xC36B,0xEFD5, 0,0xEFD6,0xEFD2, 0,0xC25B,0xF242,
- 0,0xF245, 0, 0,0xF246,0xF244,0xF247,0xC36C,
-0xF243, 0, 0,0xF44E,0xC464,0xF44D,0xF44C,0xF44B,
-0xC463,0xC465, 0,0xF5CD,0xC4E2,0xC4E1, 0, 0,
-0xF6E1,0xF6E0,0xF6E3,0xC5CB,0xC575,0xF7DD,0xF6E2, 0,
- 0,0xF7DC,0xC5CD,0xC5CC,0xC5F3,0xF8A9,0xF8EF,0xA4E4,
- 0, 0,0xD972,0xE9AF, 0, 0,0xA6AC,0xCAF7,
-0xA7F1,0xA7EF, 0,0xA7F0, 0,0xCCC1,0xA9F1,0xAC46,
- 0,0xCEE7, 0,0xCEE8, 0,0xAC47,0xD1CE, 0,
-0xAEC4,0xAEC5,0xD1CD, 0, 0, 0, 0,0xB1D3,
- 0,0xB1CF, 0,0xD5A7,0xB1D6,0xB1D5,0xB1CE,0xB1D1,
-0xB1D4,0xB1D0, 0, 0,0xD976,0xB1CD,0xB4AF, 0,
- 0, 0,0xB4B1,0xB4B2,0xD975,0xD978,0xB4B0,0xD973,
-0xD977, 0,0xD974, 0,0xB771, 0, 0,0xDDBC,
- 0, 0,0xBA56,0xE1F4,0xBEE3,0xBCC4,0xE5BD,0xBCC5,
-0xBCC6,0xE5BF,0xE5BE,0xE5C0,0xE9B1, 0, 0,0xE9B0,
-0xECEF,0xECEE,0xC0C4,0xC0C5,0xF248, 0, 0,0xA4E5,
- 0, 0, 0, 0,0xD979, 0, 0, 0,
-0xB4B4,0xB4B3,0xDDBD, 0,0xEFD8,0xC4E3,0xF7DE,0xA4E6,
- 0,0xAEC6, 0,0xB1D8,0xB1D7,0xD97A,0xD97B,0xB772,
-0xE1F5,0xBA57,0xE9B2, 0,0xA4E7,0xA5B8, 0,0xA9F2,
-0xCCC2, 0,0xCEE9,0xAC48,0xB1D9, 0,0xD97C,0xB4B5,
-0xB773, 0,0xE5C1,0xE5C2, 0, 0,0xECF0,0xC25F,
-0xF8F0,0xA4E8, 0,0xCCC3,0xA9F3,0xAC49, 0,0xCEEA,
- 0,0xAEC7,0xD1D2,0xD1D0,0xD1D1,0xAEC8,0xD1CF, 0,
- 0, 0, 0,0xB1DB,0xB1DC,0xD5A8,0xB1DD,0xB1DA,
-0xD97D, 0,0xD97E,0xDDBE, 0, 0,0xBA59,0xBA58,
- 0, 0,0xECF1,0xEFD9, 0,0xF24A,0xF249,0xF44F,
- 0,0xC95E,0xAC4A, 0, 0,0xA4E9,0xA5B9, 0,
-0xA6AE,0xA6AD, 0, 0,0xA6AF,0xA6B0,0xC9EE,0xC9ED,
-0xCAF8,0xA7F2,0xCAFB,0xCAFA,0xCAF9,0xCAFC, 0, 0,
- 0, 0,0xA9F4,0xCCC9,0xCCC5,0xCCCE, 0, 0,
-0xA9FB, 0,0xA9F9,0xCCCA,0xCCC6,0xCCCD,0xA9F8,0xAA40,
-0xCCC8,0xCCC4,0xA9FE,0xCCCB,0xA9F7,0xCCCC,0xA9FA,0xA9FC,
-0xCCD0,0xCCCF,0xCCC7,0xA9F6,0xA9F5,0xA9FD, 0, 0,
- 0, 0, 0, 0,0xCEEF,0xCEF5, 0,0xAC50,
-0xAC4D,0xCEEC,0xCEF1, 0,0xAC53,0xAC4B,0xCEF0,0xAC4E,
-0xAC51, 0, 0,0xCEF3, 0,0xAC4C,0xCEF8,0xAC4F,
- 0,0xAC52,0xCEED,0xCEF2,0xCEF6,0xCEEE,0xCEEB, 0,
- 0,0xCEF7,0xCEF4, 0, 0, 0, 0, 0,
- 0,0xAED0,0xAEC9,0xAECC, 0,0xAECF, 0,0xD1D5,
- 0,0xAECA,0xD1D3, 0,0xAECE, 0, 0,0xAECB,
- 0,0xD1D6,0xAECD, 0, 0, 0, 0, 0,
- 0,0xD5AC,0xB1DF,0xD5AB,0xD5AD,0xB1DE,0xB1E3,0xD1D4,
- 0,0xD5AA,0xD5AE, 0,0xB1E0,0xD5A9,0xB1E2, 0,
-0xB1E1, 0,0xD9A7, 0,0xD9A2, 0,0xB4B6,0xB4BA,
-0xB4B7,0xD9A5,0xD9A8, 0,0xB4B8, 0,0xB4B9,0xB4BE,
-0xDDC7,0xD9A6,0xB4BC,0xD9A3,0xD9A1, 0,0xB4BD, 0,
-0xD9A4, 0, 0, 0,0xB779, 0,0xDDBF,0xB776,
-0xB777,0xB775,0xDDC4,0xDDC3,0xDDC0,0xB77B, 0, 0,
-0xDDC2,0xB4BB, 0, 0,0xDDC6,0xDDC1,0xB778,0xB774,
-0xB77A,0xDDC5, 0, 0, 0,0xBA5C, 0,0xE1F8,
-0xE1F7,0xE1F6,0xBA5A, 0, 0, 0, 0, 0,
-0xBA5B,0xE5C5,0xE5C8,0xBCC8, 0, 0,0xBCC7,0xE5C9,
-0xE5C4,0xBCCA,0xE5C6, 0,0xBCC9,0xE5C3, 0,0xE5C7,
-0xBEE9,0xBEE6,0xE9BB,0xE9BA, 0,0xE9B9,0xE9B4, 0,
-0xE9B5, 0, 0, 0,0xBEE7, 0,0xBEE4,0xBEE8,
-0xE9B3,0xBEE5,0xE9B6,0xE9B7,0xE9BC, 0, 0,0xE9B8,
- 0, 0,0xECF2, 0, 0, 0,0xC0C7, 0,
-0xEFDC,0xC0C6,0xEFDA,0xEFDB,0xC260,0xC36E,0xF24B, 0,
-0xC36D, 0, 0,0xF451,0xF452, 0,0xC466, 0,
-0xF450,0xC4E4, 0,0xF7DF,0xC5CE,0xF8AA,0xF8AB, 0,
-0xA4EA, 0,0xA6B1,0xA6B2,0xA7F3, 0,0xCCD1,0xAC54,
-0xAED1,0xB1E4, 0, 0,0xB0D2, 0,0xB4BF,0xB4C0,
-0xB3CC,0xD9A9, 0,0xB77C,0xE1FA,0xE1F9, 0, 0,
-0xA4EB,0xA6B3,0xCCD2,0xAA42, 0,0xAA41, 0,0xCEF9,
-0xCEFA, 0,0xD1D7,0xD1D8,0xAED2,0xAED3, 0,0xAED4,
-0xD5AF, 0, 0,0xB1E6, 0,0xB4C2, 0,0xB4C1,
-0xDDC8,0xDF7A,0xE1FB,0xE9BD, 0, 0,0xC261,0xC467,
-0xA4EC, 0,0xA5BC,0xA5BD,0xA5BB,0xA5BE,0xA5BA, 0,
- 0,0xA6B6, 0,0xC9F6,0xA6B5,0xA6B7, 0, 0,
-0xC9F1,0xC9F0,0xC9F3,0xC9F2,0xC9F5,0xA6B4,0xC9EF,0xC9F4,
- 0, 0, 0, 0, 0,0xCAFD,0xA7FD,0xCAFE,
-0xCB43,0xA7FC, 0,0xCB47,0xCB42,0xCB45,0xA7F5,0xA7F6,
-0xA7F7,0xA7F8, 0,0xA840, 0,0xCB41,0xA7FA,0xA841,
- 0,0xCB40,0xCB46, 0,0xA7F9,0xCB44,0xA7FB,0xA7F4,
-0xA7FE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xAA57, 0,0xCCD4,0xAA43, 0,0xAA4D,
-0xAA4E,0xAA46,0xAA58,0xAA48,0xCCDC,0xAA53,0xCCD7,0xAA49,
-0xCCE6,0xCCE7,0xCCDF,0xCCD8,0xAA56,0xCCE4,0xAA51,0xAA4F,
- 0,0xCCE5, 0,0xCCE3,0xCCDB,0xCCD3,0xCCDA,0xAA4A,
- 0,0xAA50, 0,0xAA44,0xCCDE,0xCCDD,0xCCD5, 0,
-0xAA52,0xCCE1,0xCCD6,0xAA55,0xCCE8,0xAA45, 0,0xAA4C,
-0xCCD9,0xCCE2,0xAA54, 0,0xAA47,0xAA4B, 0,0xCCE0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCF5B,0xAC5C,
-0xAC69, 0,0xCF56,0xCF4C,0xAC62,0xCF4A,0xAC5B,0xCF45,
-0xAC65,0xCF52,0xCEFE,0xCF41, 0, 0, 0, 0,
-0xCF44,0xCEFB,0xCF51,0xCF61,0xAC60,0xCF46,0xCF58, 0,
-0xCEFD,0xCF5F,0xCF60,0xCF63,0xCF5A,0xCF4B,0xCF53,0xAC66,
-0xAC59,0xAC61,0xAC6D,0xAC56,0xAC58, 0, 0, 0,
-0xCF43,0xAC6A,0xAC63,0xCF5D,0xCF40,0xAC6C,0xAC67,0xCF49,
- 0, 0,0xAC6B,0xCF50,0xCF48,0xAC64,0xCF5C,0xCF54,
- 0,0xAC5E,0xCF62,0xCF47,0xAC5A,0xCF59,0xCF4F,0xAC5F,
-0xCF55,0xAC57,0xCEFC,0xAC68,0xAEE3,0xAC5D,0xCF4E,0xCF4D,
-0xCF42, 0,0xCF5E, 0,0xCF57, 0, 0,0xAC55,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD1EC,0xAEEA,0xD1ED, 0,0xD1E1,0xAEDF,
-0xAEEB, 0,0xD1DA, 0,0xD1E3,0xD1EB, 0,0xD1D9,
-0xD1F4,0xAED5, 0, 0, 0,0xD1F3,0xD1EE, 0,
-0xD1EF,0xAEDD,0xAEE8,0xD1E5, 0,0xD1E6,0xD1F0,0xD1E7,
- 0,0xD1E2,0xD1DC,0xD1DD,0xD1EA,0xD1E4, 0, 0,
-0xAED6,0xAEDA,0xD1F2,0xD1DE,0xAEE6,0xAEE2, 0, 0,
-0xAEE5,0xAEEC,0xAEDB,0xAEE7,0xD1E9,0xAEE9,0xAED8, 0,
-0xAED7,0xD1DB, 0,0xD1DF,0xAEE0,0xD1F1,0xD1E8,0xD1E0,
-0xAEE4,0xAEE1, 0,0xAED9,0xAEDC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD5C4, 0,0xD5B4,0xD5B5,0xD5B9,
- 0,0xD5C8,0xD5C5, 0,0xD5BE,0xD5BD,0xB1ED,0xD5C1,
-0xD5D0,0xD5B0, 0,0xD5D1,0xD5C3,0xD5D5,0xD5C9,0xB1EC,
-0xD5C7,0xB1E7,0xB1FC,0xB1F2, 0,0xB1F6,0xB1F5,0xD5B1,
- 0,0xD5CE,0xD5D4,0xD5CC,0xD5D3, 0, 0,0xD5C0,
-0xD5B2,0xD5D2,0xD5C2,0xB1EA,0xB1F7, 0,0xD5CB,0xB1F0,
- 0, 0, 0,0xD5CA,0xD5B3,0xB1F8, 0,0xB1FA,
-0xD5CD,0xB1FB,0xB1E9,0xD5BA,0xD5CF, 0, 0,0xB1EF,
-0xB1F9,0xD5BC,0xD5C6,0xD5B7,0xD5BB,0xB1F4,0xD5B6,0xB1E8,
-0xB1F1,0xB1EE,0xD5BF,0xAEDE,0xD9C0,0xB1EB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xB1F3, 0,0xD9C3,0xD9D9,
-0xD9CE,0xB4D6, 0,0xB4D1,0xD9BD,0xB4D2,0xD9CD, 0,
-0xD9C6,0xD9D3,0xB4CE,0xD9AB,0xD9D5,0xB4C4,0xD9B3,0xB4C7,
-0xB4C6, 0,0xB4D7, 0,0xD9AD,0xD9CF,0xD9D0,0xB4C9,
-0xB4C5,0xD9BB, 0,0xB4D0,0xD9B6, 0,0xD9D1,0xB4CC,
-0xD9C9,0xD9D6,0xD9B0,0xD9B5,0xD9AF, 0,0xB4CB,0xD9C2,
-0xDDDE,0xD9B1,0xB4CF,0xD9BA,0xD9D2,0xB4CA,0xD9B7,0xD9B4,
-0xD9C5,0xB4CD,0xB4C3,0xB4D9,0xD9C8,0xD9C7, 0, 0,
- 0, 0, 0, 0,0xD9AC,0xB4C8,0xD9D4,0xD9BC,
-0xD9BE, 0,0xD9CB,0xD9CA,0xD9AA,0xB4D3,0xB4D5,0xD9B2,
-0xD9B9,0xD9C1,0xB4D4,0xD9B8,0xD9C4,0xD9D7, 0,0xD9CC,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD9D8, 0, 0,
- 0, 0,0xD9AE, 0, 0, 0, 0,0xDDF2,
-0xB7A6, 0,0xDDF0,0xDDDB,0xDDE0,0xDDD9, 0,0xDDEC,
-0xDDCB,0xDDD2, 0,0xDDEA,0xDDF4,0xDDDC, 0,0xDDCF,
-0xDDE2,0xDDE7,0xDDD3, 0,0xDDE4,0xDDD0, 0, 0,
-0xDDD7,0xDDD8,0xB7A8,0xDDEB,0xDDE9, 0,0xDDCC,0xDDEE,
- 0,0xDDEF,0xDDF1,0xB7AC,0xB7A4, 0,0xD5B8,0xDDD4,
-0xDDE6,0xDDD5,0xB7A1,0xB7B1,0xDDED,0xB7AF,0xB7AB,0xDDCA,
-0xB7A3, 0,0xDDCD,0xB7B0, 0,0xDDDD,0xDDC9, 0,
-0xB7A9,0xDDE1,0xDDD1,0xB7AA,0xDDDA,0xB77E,0xB4D8,0xDDE3,
-0xD9BF,0xDDCE, 0, 0,0xDDE8,0xB7A5,0xDDE5,0xB7A2,
-0xDDDF,0xB7AD,0xDDD6,0xDDF3, 0, 0, 0, 0,
- 0, 0,0xB7A7,0xDEC6, 0, 0,0xB7AE, 0,
- 0, 0, 0, 0, 0,0xE24A,0xE248, 0,
-0xE25E,0xE246, 0,0xE258,0xB77D,0xBA5F,0xE242,0xE25D,
- 0,0xE247,0xE255,0xBA64,0xBA5D, 0,0xE25B, 0,
-0xE240,0xE25A, 0,0xBA6F,0xE251,0xE261,0xBA6D,0xE249,
-0xBA5E,0xE24B,0xE259,0xBA67,0xE244,0xBA6B,0xBA61,0xE24D,
-0xE243,0xE1FC, 0,0xE257,0xBA68,0xE260,0xE1FD,0xBA65,
- 0,0xE253, 0,0xBA66,0xE245,0xE250,0xE24C,0xE24E,
- 0,0xBA60,0xE25F,0xBA6E,0xE24F, 0,0xE262, 0,
- 0,0xE1FE,0xE254,0xBA63,0xBA6C,0xBA6A,0xE241,0xE256,
-0xBA69, 0, 0,0xBA62,0xE252, 0, 0, 0,
- 0,0xE25C, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE5D5, 0,0xE5D1,0xE5CD,0xE5E1,0xE5DE,
-0xBCCD, 0, 0,0xE5E5,0xE5D4,0xBCD8,0xE5DB, 0,
- 0,0xE5D0,0xE5DA,0xBCD5,0xE5EE, 0,0xE5EB,0xE5DD,
-0xE5CE, 0, 0,0xE5E2,0xE5E4,0xBCD1,0xE5D8,0xE5D3,
-0xE5CA,0xBCCE,0xBCD6, 0,0xE5E7,0xBCD7,0xE5CB,0xE5ED,
-0xE5E0,0xE5E6,0xBCD4, 0, 0,0xE5E3, 0,0xE5EA,
- 0,0xBCD9, 0,0xBCD3,0xE5DC,0xE5CF,0xE5EF,0xE5CC,
-0xE5E8,0xBCD0, 0,0xE5D6, 0,0xE5D7,0xBCCF,0xBCCC,
-0xE5D2,0xBCD2, 0,0xBCCB, 0,0xE5E9,0xE5EC,0xE5D9,
-0xE9CA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE9C2, 0,0xE9BE,0xBEF6, 0, 0,
-0xBEEB,0xBEF0,0xBEEC,0xE9CC,0xE9D7,0xBEEA,0xE9C4,0xE9CD,
-0xE5DF,0xE9CE, 0, 0,0xBEF1, 0,0xE9DD,0xBEF5,
-0xBEF8,0xE9C0, 0,0xBEF4, 0,0xE9DB,0xE9DC,0xE9D2,
-0xE9D1,0xE9C9, 0, 0,0xE9D3,0xE9DA,0xE9D9, 0,
-0xBEEF,0xBEED,0xE9CB,0xE9C8, 0,0xE9C5,0xE9D8,0xBEF7,
-0xE9D6,0xBEF3,0xBEF2, 0,0xE9D0, 0,0xE9BF,0xE9C1,
-0xE9C3,0xE9D5,0xE9CF,0xBEEE, 0,0xE9C6, 0,0xE9D4,
- 0, 0, 0, 0, 0, 0,0xE9C7, 0,
- 0, 0, 0, 0, 0, 0,0xC0CF,0xED45,
-0xC0C8,0xECF5, 0,0xED41,0xC0CA,0xED48, 0,0xECFC,
- 0,0xECF7, 0, 0,0xED49,0xECF3,0xECFE, 0,
-0xC0D1,0xED44,0xED4A,0xECFD,0xC0C9,0xED40,0xECF4,0xC0D0,
- 0, 0,0xED47,0xECF9,0xC0CC, 0,0xECFB,0xECF8,
-0xC0D2,0xECFA,0xC0CB,0xC0CE,0xED43,0xECF6,0xED46, 0,
-0xED42, 0, 0, 0,0xC263,0xEFE7,0xC268,0xC269,
- 0, 0, 0,0xC262,0xEFE6, 0,0xEFE3,0xEFE4,
-0xC266,0xEFDE,0xEFE2,0xC265, 0,0xEFDF, 0, 0,
- 0, 0,0xC267,0xC264, 0,0xEFDD,0xEFE1,0xEFE5,
- 0, 0, 0,0xF251,0xF24E,0xF257, 0,0xF256,
-0xF254,0xF24F, 0,0xC372, 0, 0, 0, 0,
- 0,0xF250,0xC371,0xC0CD,0xF253,0xC370,0xF258,0xF252,
-0xF24D,0xEFE0, 0, 0, 0,0xC36F, 0,0xF24C,
-0xF456, 0,0xF455,0xF255,0xC468, 0,0xF459,0xF45A,
-0xF454,0xF458, 0,0xF453, 0, 0, 0, 0,
-0xF5D1,0xF457,0xC4E7,0xC4E5,0xF5CF, 0, 0, 0,
-0xF5D2, 0,0xF5CE,0xF5D0,0xC4E6, 0, 0, 0,
-0xF6E5,0xF6E6,0xC576,0xF6E4, 0, 0, 0,0xF7E2,
-0xC5CF,0xF7E0,0xF7E1,0xF8AC, 0, 0,0xC656,0xF8F3,
-0xF8F1,0xF8F2,0xF8F4, 0, 0, 0,0xF9BB, 0,
-0xA4ED,0xA6B8, 0,0xAA59, 0,0xCCE9, 0, 0,
-0xCF64, 0, 0, 0,0xD1F5,0xD1F7, 0,0xD1F6,
- 0,0xD1F8,0xB1FD,0xD5D7,0xD1F9, 0,0xD5D6,0xD5D8,
-0xD5D9,0xD9DA,0xB4DB,0xD9DB,0xD9DD,0xB4DC,0xB4DA,0xD9DC,
- 0,0xDDFA,0xDDF8,0xDDF7, 0,0xDDF6,0xDDF5,0xB7B2,
-0xDDF9,0xBA70,0xE263,0xE265,0xBA71,0xE264,0xBCDB, 0,
-0xBCDA,0xE5F0, 0, 0,0xE9DF,0xE9DE,0xE9E0, 0,
- 0,0xBEF9, 0,0xED4B,0xC0D3, 0,0xEFE8,0xC26A,
-0xF259,0xC577,0xA4EE,0xA5BF,0xA6B9,0xA842,0xAA5A,0xAA5B,
- 0, 0,0xAC6E, 0, 0,0xD1FA, 0, 0,
- 0, 0,0xB7B3, 0, 0, 0,0xE6D1,0xBEFA,
-0xC26B,0xA4EF, 0,0xA6BA, 0, 0,0xCCEB,0xAA5C,
-0xCCEA, 0,0xCF65,0xAC6F,0xCF66, 0,0xAC70, 0,
-0xD1FC,0xAEEE,0xAEED, 0,0xD5DE,0xD5DC,0xD5DD,0xD5DB,
- 0,0xD5DA, 0, 0,0xD9DE,0xD9E1,0xB4DE,0xD9DF,
-0xB4DD,0xD9E0, 0,0xDDFB, 0, 0,0xE266,0xE267,
-0xE268, 0,0xE5F3,0xE5F2,0xBCDC,0xE5F1,0xE5F4,0xE9E1,
- 0, 0,0xE9E2,0xE9E3, 0,0xED4C,0xC0D4,0xC26C,
-0xF25A, 0,0xC4E8,0xC95F, 0,0xAC71,0xCF67,0xAEEF,
- 0, 0,0xB1FE, 0,0xB4DF,0xD9E2, 0,0xB7B5,
-0xB7B4, 0, 0,0xE269,0xE26A,0xBCDD,0xBCDE,0xE9E5,
-0xE9E4,0xEFE9,0xF7E3,0xA4F0,0xC960,0xA5C0, 0,0xA843,
-0xCB48, 0,0xAC72,0xB7B6,0xA4F1, 0,0xCF68,0xAC73,
-0xCF69, 0,0xC0D5,0xA4F2, 0, 0,0xCCEC, 0,
-0xCF6A, 0,0xD242,0xD241,0xD1FE, 0,0xD1FD,0xD243,
-0xD240, 0, 0,0xB240,0xB241, 0, 0,0xB4E0,
-0xD9E3, 0,0xD9E4,0xD9E5, 0, 0, 0,0xDE41,
-0xDE42,0xDE40, 0,0xDDFD,0xDDFE,0xB7B7,0xE26B,0xE5F7,
-0xE5F6,0xE5F5,0xE5F8,0xE9E7,0xE9E6,0xBEFB,0xE9E8, 0,
-0xC0D6,0xED4D, 0,0xEFEA,0xF25B,0xF6E7, 0,0xA4F3,
-0xA5C2,0xA5C1, 0,0xAA5D,0xC961,0xC97E,0xA6BB, 0,
-0xC9F7,0xCB49,0xCB4A,0xAA5E, 0,0xCCED, 0,0xAC74,
-0xCF6B,0xCF6C, 0,0xAEF0,0xAEF4,0xD244,0xAEF3,0xAEF1,
-0xAEF2, 0,0xD5DF,0xB242,0xB4E3, 0,0xB4E1,0xB4E2,
-0xD9E6, 0, 0,0xBA72,0xA4F4, 0,0xC9A1, 0,
-0xA5C3, 0, 0,0xC9A4, 0, 0,0xA5C6,0xC9A3,
-0xA5C5,0xA5C4,0xA844,0xC9A2, 0, 0,0xC9F8, 0,
- 0, 0,0xC9FC,0xC9FE,0xCA40,0xA6C5,0xA6C6,0xC9FB,
-0xA6C1, 0,0xC9F9, 0,0xC9FD,0xA6C2, 0,0xA6BD,
- 0,0xA6BE, 0,0xA6C4,0xC9FA,0xA6BC,0xA845,0xA6BF,
-0xA6C0,0xA6C3, 0, 0, 0,0xCB5B,0xCB59,0xCB4C,
-0xA851,0xCB53,0xA84C,0xCB4D, 0,0xCB55, 0,0xCB52,
-0xA84F,0xCB51,0xA856,0xCB5A,0xA858, 0,0xA85A, 0,
-0xCB4B, 0,0xA84D,0xCB5C, 0,0xA854,0xA857, 0,
-0xCD45,0xA847,0xA85E,0xA855,0xCB4E,0xA84A,0xA859,0xCB56,
-0xA848,0xA849,0xCD43,0xCB4F,0xA850,0xA85B,0xCB5D,0xCB50,
-0xA84E, 0,0xA853,0xCCEE,0xA85C,0xCB57,0xA852, 0,
-0xA85D,0xA846,0xCB54,0xA84B,0xCB58,0xCD44, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xAA6A,0xAA7A,0xCCF5,0xAA71, 0,
-0xCD4B,0xAA62, 0,0xAA65,0xCD42, 0,0xCCF3,0xCCF7,
-0xAA6D,0xAA6F,0xCCFA,0xAA76,0xAA68,0xAA66,0xAA67,0xAA75,
-0xCD47,0xAA70,0xCCF9,0xCCFB,0xAA6E,0xAA73,0xCCFC,0xCD4A,
- 0,0xAC75,0xAA79, 0,0xAA63,0xCD49, 0,0xCD4D,
-0xCCF8,0xCD4F,0xCD40,0xAA6C,0xCCF4,0xAA6B,0xAA7D,0xAA72,
- 0,0xCCF2,0xCF75,0xAA78,0xAA7C,0xCD41,0xCD46, 0,
-0xAA7E,0xAA77,0xAA69,0xAA5F, 0,0xAA64, 0,0xCCF6,
-0xAA60,0xCD4E, 0,0xCCF0,0xCCEF,0xCCFD,0xCCF1,0xAA7B,
-0xAEF5,0xAA74,0xCCFE,0xAA61, 0,0xACA6, 0, 0,
- 0,0xCD4C, 0, 0, 0, 0, 0, 0,
-0xCF7C,0xCFA1, 0,0xCFA4,0xCF77, 0, 0,0xCFA7,
-0xCFAA,0xCFAC,0xCF74,0xAC76,0xAC7B,0xD249,0xACAD,0xCFA5,
-0xCFAD,0xCF7B,0xCF73, 0, 0, 0,0xD264,0xAC7E,
-0xCFA2,0xCF78,0xCF7A,0xACA5, 0,0xCF7D,0xAC7D,0xCF70,
-0xCFA8, 0,0xCFAB, 0, 0,0xAC7A, 0,0xACA8,
-0xCF6D,0xACAA,0xAC78,0xACAE,0xCFA9,0xCF6F,0xACAB,0xD25E,
-0xCD48,0xAC7C,0xAC77,0xCF76,0xCF6E,0xACAC,0xACA4,0xCFA3,
-0xACA9,0xACA7,0xCF79,0xACA1,0xCF71,0xACA2,0xACA3,0xCF72,
-0xCFA6,0xAC79,0xCF7E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD24C,0xAEFD,0xAF43, 0, 0, 0,0xD255,0xD25B,
-0xD257,0xD24A,0xD24D,0xD246,0xD247,0xAF4A,0xAEFA,0xD256,
-0xD25F,0xAF45,0xAEF6, 0,0xAF40,0xD24E,0xAF42,0xD24F,
-0xD259, 0, 0, 0,0xAF44,0xD268,0xD248,0xAEFC,
-0xAEFB,0xAF48,0xD245,0xD266,0xD25A,0xD267,0xD261,0xD253,
-0xD262, 0,0xD25C,0xD265,0xD263,0xAF49,0xD254,0xAEF9,
-0xAEF8,0xAF41,0xAF47,0xD260,0xAF46,0xD251,0xB243, 0,
-0xD269,0xD250,0xD24B,0xAEFE,0xAF4B,0xAEF7, 0,0xD258,
-0xD25D, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xB265,0xD5E1,0xD5E5, 0,0xB252,0xB250,
- 0, 0,0xB247,0xD5E3,0xD5E2,0xB25B, 0,0xD5E8,
-0xB255, 0,0xD5FA,0xD647,0xB244,0xD5F7,0xD5F0,0xB267,
-0xD5E0, 0,0xD5FC, 0,0xB264,0xB258,0xB263,0xB24E,
-0xD5EC,0xD5FE,0xD5F6,0xB24F,0xB249,0xD645, 0,0xD5FD,
-0xD640,0xB251,0xB259,0xD642,0xD5EA,0xD5FB,0xD5EF,0xD644,
-0xB25E,0xB246,0xB25C,0xD5F4,0xD5F2,0xD5F3,0xB253,0xD5EE,
-0xD5ED,0xB248,0xD5E7,0xD646,0xB24A,0xD5F1,0xB268, 0,
-0xB262,0xD5E6,0xB25F,0xB25D,0xB266,0xD5F8,0xB261,0xD252,
-0xD5F9,0xB260,0xD641,0xB245,0xD5F5,0xB257,0xD5E9,0xB256,
- 0,0xB254,0xB24C,0xB24B,0xD9E7,0xD643, 0, 0,
-0xD5EB, 0, 0,0xD9FC, 0,0xB24D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xB541,0xB25A,0xB4EE,0xD9F6,0xB4FC, 0,0xD9EA,
-0xB4EB,0xB4E7,0xDA49,0xB4ED,0xB4F1,0xB4EC,0xB4F5,0xDA4D,
-0xDA44, 0, 0,0xD9F1,0xB4FA,0xB4F4,0xD9FD,0xB4E4,
-0xDA4A,0xDA43,0xB4E8,0xD9F7,0xB4F7,0xDA55,0xDA56, 0,
-0xB4E5,0xDA48,0xB4F9,0xD9FB,0xD9ED,0xD9EE,0xB4FD,0xD9F2,
-0xD9F9,0xD9F3, 0,0xB4FB,0xB544,0xD9EF,0xD9E8,0xD9E9,
- 0,0xD9EB,0xB4EA,0xD9F8, 0,0xB4F8,0xB542, 0,
- 0,0xD9FA,0xDA53,0xDA4B,0xB4E6,0xDA51,0xB4F2, 0,
-0xB4F0, 0,0xDA57,0xB4EF,0xDA41,0xD9F4,0xD9FE,0xB547,
-0xDA45,0xDA42,0xD9F0,0xB543,0xDA4F,0xDA4C,0xDA54,0xB4E9,
-0xDA40,0xB546, 0,0xDA47, 0, 0,0xB4F3,0xB4F6,
- 0,0xDA46,0xB545,0xD9F5,0xD5E4, 0, 0,0xDA50,
-0xDA4E,0xDA52, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD9EC,0xB540, 0, 0, 0,0xDE61,0xDE60,0xDE46,
-0xB7BD, 0,0xDE5F,0xDE49,0xDE4A, 0,0xB7C7,0xDE68,
-0xB7C2,0xDE5E, 0,0xDE43,0xB7C8,0xB7BE,0xDE52,0xDE48,
-0xDE4B,0xDE63,0xB7B8,0xDE6A,0xDE62,0xB7C1,0xDE57,0xB7CC,
- 0, 0,0xB7CB,0xB7C5, 0, 0,0xDE69,0xB7B9,
-0xDE55,0xDE4C,0xDE59,0xDE65,0xB7CD, 0,0xB7BB,0xDE54,
- 0,0xDE4D,0xB7C4, 0,0xB7C3,0xDE50,0xDE5A,0xDE64,
-0xDE47,0xDE51,0xB7BC,0xDE5B,0xB7C9,0xB7C0,0xDE4E,0xB7BF,
-0xDE45,0xDE53,0xDE67,0xB4FE,0xBAB0,0xDE56,0xE26C,0xDE58,
-0xDE66,0xB7C6,0xDE4F,0xB7BA,0xB7CA,0xBCF0,0xDE44, 0,
-0xDE5D, 0, 0, 0,0xDE5C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE2AA,0xBAAD,0xE27D,0xE2A4,0xBAA2,
- 0,0xE26E,0xBAAF, 0,0xBA77,0xE26D,0xE2B0,0xBAB1,
-0xE271,0xE2A3, 0,0xE273,0xE2B3,0xE2AF,0xBA75,0xBAA1,
-0xE653,0xBAAE,0xBA7D,0xE26F, 0,0xE2AE,0xBAA3,0xE2AB,
-0xE2B8,0xE275,0xE27E, 0, 0,0xE2B6,0xE2AC,0xBA7C,
- 0, 0,0xE27C,0xBA76,0xBA74,0xBAA8, 0, 0,
-0xE27A,0xE277,0xE278, 0,0xE2B2, 0,0xE2B7,0xE2B5,
-0xBA7A,0xE2B9,0xBA7E,0xBAA7, 0,0xE270,0xE5FA,0xE279,
- 0,0xBA78,0xBAAC,0xBAA9,0xBA7B,0xE2A5,0xE274,0xBAAA,
-0xE2A7,0xBAA4,0xBAA6,0xBA73, 0,0xE2A9,0xE2A1,0xE272,
-0xBAA5,0xE2B1,0xE2B4,0xE27B,0xE2A8, 0,0xBA79,0xBCDF,
-0xE2A6,0xE5F9, 0,0xE2AD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE276,0xE644,
-0xE64E,0xBCE2,0xE64D,0xE659,0xBCE4,0xE64B, 0,0xE64F,
-0xBCEF, 0,0xE646,0xBCE7, 0,0xE652,0xE9F0,0xBCF3,
-0xBCF2,0xE654,0xE643,0xE65E,0xBCED, 0,0xBCE3,0xE657,
- 0,0xE65B,0xE660,0xE655,0xE649,0xBCE6,0xBCE9,0xBCF1,
-0xBCEC, 0,0xE64C,0xE2A2, 0, 0,0xE648,0xE65F,
-0xBCE8, 0,0xBCEB,0xE661,0xBCE0,0xE656,0xE5FB,0xE65C,
-0xC0DF, 0,0xE64A, 0,0xBCE1,0xE645,0xBCE5,0xE5FC,
-0xBAAB,0xE641, 0,0xE65A,0xE642,0xE640,0xBCEA, 0,
-0xE658, 0,0xE5FE,0xE651,0xE650,0xE65D,0xE647,0xBCEE,
- 0, 0, 0, 0, 0, 0,0xE9F3, 0,
-0xBF49,0xBEFE,0xEA40,0xE9EB,0xBF41,0xE9F7,0xBF48,0xBF43,
-0xE9F5,0xED4F,0xE9FB,0xEA42,0xE9FA,0xE9E9,0xE9F8,0xEA44,
-0xEA46,0xBEFD,0xEA45,0xBF44,0xBF4A, 0,0xBF47, 0,
-0xE9FE,0xBF46,0xE9F9, 0,0xE9ED,0xE9F2, 0,0xE9FD,
-0xBF45,0xBF42,0xBEFC,0xBF40,0xE9F1, 0,0xE5FD,0xE9EC,
-0xE9EF,0xEA41,0xE9F4,0xE9EA,0xED4E,0xEA43,0xE9EE,0xE9FC,
- 0, 0, 0, 0,0xED51,0xC0E3, 0, 0,
-0xC0D7, 0, 0,0xC0DB,0xED53,0xED59,0xED57,0xC0D9,
-0xC0DA,0xC0E1,0xED5A,0xED52,0xC0DC, 0,0xED56,0xED55,
-0xED5B,0xC0E2, 0,0xC0DD,0xC0E0,0xED54,0xC0E4,0xC0DE,
-0xC0E5,0xC0D8,0xED58, 0,0xED50, 0, 0,0xEFF7,
- 0, 0,0xC271,0xEFF4,0xEFF6, 0,0xC26F,0xEFF2,
-0xEFF3,0xEFEE, 0, 0,0xE9F6,0xEFEF,0xC270,0xEFEB,
- 0,0xC26D,0xEFF8,0xC26E,0xEFEC,0xEFED,0xEFF1,0xC273,
- 0,0xC272, 0, 0,0xEFF0,0xC378,0xF25F,0xF265,
-0xC379,0xF25C,0xC376,0xC373,0xF267,0xC377, 0,0xC374,
-0xF25E,0xF261,0xF262,0xF263,0xF266, 0,0xEFF5,0xF25D,
-0xC375,0xF264,0xF268,0xF260, 0, 0, 0,0xF45D,
-0xC46A,0xF460,0xC46B,0xF468,0xF45F,0xF45C, 0,0xF45E,
-0xF462,0xF465,0xF464,0xF467,0xF45B, 0,0xC469,0xF463,
-0xF466,0xF469,0xF461,0xF5D3,0xF5D4,0xF5D8,0xF5D9, 0,
-0xF5D6,0xF5D7,0xF5D5, 0,0xC4E9, 0, 0, 0,
- 0,0xC578,0xF6EB, 0, 0,0xF6E8,0xF6E9,0xF6EA,
-0xC579, 0,0xF7E5,0xF7E4, 0,0xF8AF,0xC5F4,0xF8AD,
-0xF8B0,0xF8AE,0xF8F5,0xC657,0xC665,0xF9A3,0xF96C, 0,
-0xF9A2,0xF9D0,0xF9D1,0xA4F5, 0, 0, 0, 0,
-0xA6C7,0xCA41, 0, 0,0xCB5E, 0,0xA85F, 0,
-0xA862, 0,0xCB5F, 0,0xA860,0xA861, 0, 0,
- 0, 0,0xCD58,0xCD5A,0xCD55,0xCD52,0xCD54, 0,
- 0, 0,0xAAA4, 0, 0, 0,0xAAA2, 0,
- 0,0xCD56,0xAAA3,0xCD53,0xCD50,0xAAA1,0xCD57, 0,
-0xCD51,0xAAA5,0xCD59, 0, 0, 0, 0,0xCFAF,
- 0,0xCFB3, 0, 0,0xACB7, 0, 0, 0,
- 0,0xCFB6, 0,0xACAF,0xACB2,0xACB4,0xACB6,0xACB3,
-0xCFB2,0xCFB1, 0,0xACB1,0xCFB4,0xCFB5, 0,0xCFAE,
-0xACB5, 0,0xACB0, 0, 0, 0,0xCFB0, 0,
- 0, 0, 0, 0, 0,0xD277,0xD278,0xD279,
-0xAF50, 0,0xAF4C,0xD26E, 0,0xD276,0xD27B,0xAF51,
- 0,0xD26C,0xD272,0xD26B,0xD275, 0, 0,0xD271,
-0xAF4D,0xAF4F,0xD27A, 0,0xD26A,0xD26D,0xD273, 0,
-0xD274,0xD27C,0xD270, 0,0xAF4E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xB26D,
-0xD64E, 0, 0,0xD650,0xD64C, 0,0xD658,0xD64A,
-0xD657,0xB269,0xD648,0xDA5B,0xD652,0xB26C, 0,0xD653,
-0xD656, 0,0xD65A, 0,0xD64F, 0,0xD654, 0,
- 0,0xB26A,0xB26B,0xD659,0xD64D,0xD649,0xD65B, 0,
-0xD651, 0, 0,0xD655, 0, 0, 0,0xD64B,
- 0,0xB548,0xB549,0xDA65,0xB54F, 0,0xDA59,0xDA62,
-0xDA58,0xB54C,0xDA60,0xDA5E, 0,0xDA5F,0xB54A, 0,
-0xDA63, 0, 0, 0, 0, 0,0xDA5C,0xDA5A,
-0xB54B,0xDA5D,0xDA61, 0, 0, 0,0xB54D, 0,
- 0, 0,0xDA64, 0, 0, 0, 0, 0,
- 0,0xDE70,0xDE77,0xDE79,0xDEA1, 0,0xB7DA,0xDE6B,
- 0,0xB7D2, 0,0xDE7A,0xB7D7,0xDEA2,0xB7CE, 0,
-0xDE7D, 0,0xDE6D,0xDE7E,0xDE6C, 0,0xB7DC, 0,
-0xDE78,0xB7CF,0xDEA3, 0,0xB7D4,0xDE71,0xB7D9,0xDE7C,
-0xDE6F,0xDE76,0xDE72,0xDE6E,0xB7D1,0xB7D8,0xB7D6,0xB7D3,
-0xB7DB,0xB7D0,0xDE75, 0,0xB7D5, 0,0xB54E, 0,
-0xDE7B, 0,0xDE73, 0, 0, 0, 0, 0,
-0xDE74, 0, 0,0xE2C1, 0,0xBAB4, 0, 0,
-0xE2BD,0xE2C3,0xE2BF, 0,0xBAB6,0xE2BE,0xE2C2,0xE2BA,
- 0,0xE2BC,0xBAB5, 0, 0, 0, 0,0xE2C0,
-0xE2BB, 0,0xBAB7, 0,0xBAB2, 0, 0,0xE2C4,
- 0,0xBAB3,0xE667,0xE664,0xE670,0xE66A,0xE66C,0xBCF4,
-0xE666,0xE66E, 0, 0,0xE66D,0xE66B, 0,0xE671,
-0xBCF7,0xE668,0xE66F, 0,0xBCF5, 0, 0,0xE663,
-0xE665,0xBCF6,0xE662,0xE672, 0,0xE669, 0, 0,
-0xEA4A,0xBF51, 0, 0,0xEA55,0xEA53,0xBF4B,0xEA49,
-0xEA4C,0xEA4D,0xEA48,0xBF55,0xBF56,0xEA47,0xEA56,0xEA51,
-0xBF4F,0xBF4C,0xEA50,0xEA4E, 0, 0,0xBF52,0xEA52,
-0xBF4D, 0,0xBF4E, 0,0xEA4F,0xBF50,0xEA4B, 0,
-0xEA54,0xBF53,0xEA57,0xEA58,0xBF54, 0, 0,0xC0E7,
-0xC0EE,0xED5C,0xED62, 0,0xED60,0xC0EA,0xC0E9,0xC0E6,
-0xED5E, 0, 0, 0,0xC0EC,0xC0EB,0xC0E8, 0,
-0xED61,0xED5D,0xED5F, 0,0xC0ED, 0, 0, 0,
-0xC277,0xEFFB, 0,0xC274,0xC275,0xEFFD,0xC276,0xEFFA,
- 0,0xEFF9,0xF26C,0xEFFC, 0,0xF26D,0xC37A,0xF26B,
- 0, 0,0xF26A, 0,0xF269,0xC37B, 0, 0,
-0xC46C, 0, 0,0xF46A,0xF46B, 0, 0, 0,
- 0,0xF5DC,0xF5DB,0xC4EA, 0,0xF5DA,0xF6EC,0xF6ED,
- 0, 0,0xF7E6,0xF8B1, 0, 0,0xF8F6,0xF9BC,
-0xC679,0xF9C6,0xA4F6, 0,0xAAA6,0xAAA7, 0, 0,
-0xACB8, 0, 0, 0, 0,0xC0EF,0xA4F7, 0,
-0xAAA8,0xAF52,0xB7DD,0xA4F8, 0,0xB26E,0xBAB8,0xC962,
- 0,0xCFB7,0xD27D, 0,0xE2C5, 0,0xC0F0,0xA4F9,
-0xAAA9,0xCFB8,0xCFB9,0xDA66,0xB550, 0, 0,0xDEA4,
- 0, 0,0xB7DE,0xE2C6, 0, 0,0xBCF8, 0,
-0xC37C,0xA4FA,0xDA67,0xA4FB, 0,0xA6C9,0xCA42,0xA6C8,
-0xA865,0xA864,0xA863,0xCB60, 0, 0, 0,0xAAAA,
- 0,0xAAAB,0xCD5B, 0,0xCFBA, 0,0xCFBD,0xACBA,
-0xCFBB, 0,0xACB9,0xCFBC,0xACBB, 0,0xD2A2,0xD2A1,
-0xD27E,0xAF53, 0,0xD65D,0xD65E,0xB26F,0xD65C,0xD65F,
-0xB552,0xB270, 0, 0,0xB551,0xDA6B,0xDA6A, 0,
-0xDA68,0xDA69, 0,0xDA6C,0xDEA6,0xDEA5,0xDEA9, 0,
-0xDEA8,0xDEA7,0xBAB9,0xE2C9, 0,0xE2C8,0xBABA,0xE2C7,
-0xE673, 0,0xE674,0xBCF9, 0,0xEA59,0xEA5A, 0,
- 0,0xF272,0xC37D,0xF271,0xF270,0xF26E,0xF26F,0xC4EB,
-0xF46C,0xF6EE,0xF8F7, 0,0xA4FC, 0,0xC9A5,0xA5C7,
-0xC9A6, 0, 0, 0,0xCA43,0xCA44, 0, 0,
- 0, 0,0xCB66, 0, 0,0xCB62, 0,0xCB61,
-0xAAAC,0xCB65,0xA867,0xCB63,0xA866,0xCB67,0xCB64, 0,
- 0,0xCD5F,0xCFBE,0xCD5D,0xCD64, 0,0xAAAD, 0,
-0xAAB0,0xCD65,0xCD61, 0,0xCD62, 0,0xCD5C,0xAAAF,
-0xCD5E,0xAAAE,0xCD63, 0,0xCD60, 0, 0,0xCFC2,
-0xACBD,0xACBE, 0,0xCFC5,0xCFBF, 0,0xCFC4, 0,
-0xCFC0,0xACBC,0xCFC3,0xCFC1, 0, 0, 0, 0,
- 0, 0, 0,0xD2A8,0xD2A5, 0,0xD2A7,0xAF58,
-0xAF57,0xAF55,0xD2A4,0xD2A9,0xAF54,0xAF56,0xD2A6,0xD667,
-0xD2A3,0xD2AA, 0, 0, 0, 0, 0,0xD662,
-0xD666, 0,0xD665,0xDA6E,0xDA79, 0, 0,0xD668,
- 0,0xD663,0xDA6D,0xB274, 0, 0,0xB273,0xD661,
-0xD664,0xB275, 0,0xB272,0xB271,0xD660,0xD669, 0,
- 0, 0,0xDA70,0xDA77, 0,0xB554,0xDA76,0xDA73,
- 0,0xB556, 0, 0, 0,0xDA75, 0, 0,
-0xDA6F,0xDA71,0xDA74,0xDA72,0xB555,0xDA78,0xB553,0xB7DF,
- 0, 0,0xDEAD,0xDEAC,0xDEAA, 0,0xB7E2,0xB7E1,
-0xDEAE, 0,0xDEAB,0xE2CA,0xBABB,0xB7E0, 0, 0,
- 0,0xDEB0,0xDEAF, 0,0xE2CD,0xE2CB,0xBCFA, 0,
-0xBABC,0xE2CC,0xE676, 0, 0, 0, 0,0xBCFB,
-0xE675,0xE67E,0xE67D,0xE67B, 0,0xE67A,0xE677,0xE678,
-0xE679,0xE67C,0xE6A1, 0, 0,0xEA5F,0xEA5C,0xEA5D,
-0xBF57,0xEA5B,0xEA61,0xEA60,0xEA5E, 0,0xED64,0xED65,
-0xC0F1, 0,0xC0F2,0xED63, 0,0xC279,0xEFFE,0xC278,
-0xC37E, 0,0xC3A1,0xC46D,0xF46E,0xF46D,0xF5DD,0xF6EF,
-0xC57A,0xF7E8,0xF7E7,0xF7E9,0xA5C8,0xCFC6,0xAF59,0xB276,
-0xD66A,0xA5C9,0xC9A7,0xA4FD, 0, 0,0xCA45, 0,
- 0, 0,0xCB6C,0xCB6A,0xCB6B,0xCB68,0xA868,0xCB69,
- 0, 0, 0, 0, 0,0xCD6D, 0,0xAAB3,
-0xCD6B,0xCD67,0xCD6A, 0,0xCD66,0xAAB5,0xCD69, 0,
-0xAAB2,0xAAB1, 0,0xAAB4,0xCD6C,0xCD68, 0, 0,
- 0, 0,0xACC2,0xACC5,0xCFCE,0xCFCD,0xCFCC,0xACBF,
-0xCFD5,0xCFCB, 0,0xACC1,0xD2AF, 0,0xCFD2,0xCFD0,
-0xACC4, 0,0xCFC8,0xCFD3, 0,0xCFCA,0xCFD4,0xCFD1,
-0xCFC9, 0,0xACC0,0xCFD6,0xCFC7,0xACC3, 0, 0,
- 0, 0,0xD2B4,0xD2AB,0xD2B6, 0,0xD2AE,0xD2B9,
-0xD2BA,0xD2AC,0xD2B8,0xD2B5,0xD2B3,0xD2B7,0xAF5F, 0,
-0xAF5D, 0, 0,0xD2B1, 0,0xD2AD, 0,0xD2B0,
-0xD2BB,0xD2B2,0xAF5E,0xCFCF, 0,0xAF5A,0xAF5C, 0,
- 0, 0, 0, 0,0xD678,0xD66D,0xD66B, 0,
-0xD66C, 0,0xD673, 0,0xD674,0xD670,0xB27B,0xD675,
-0xD672,0xD66F, 0,0xB279,0xD66E,0xB277,0xB27A,0xD671,
-0xD679,0xAF5B,0xB278,0xD677,0xD676,0xB27C, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDA7E, 0,
- 0, 0,0xDAA1,0xB560, 0,0xDAA7, 0, 0,
-0xDAA9,0xDAA2,0xB55A,0xDAA6,0xDAA5,0xB55B,0xB561, 0,
-0xB562,0xDAA8,0xB558,0xDA7D,0xDA7B,0xDAA3,0xDA7A,0xB55F,
-0xDA7C,0xDAA4,0xDAAA,0xB559,0xB55E,0xB55C,0xB55D, 0,
- 0, 0,0xB557, 0, 0, 0, 0,0xB7E9,
-0xDEB7,0xB7E8,0xDEBB, 0,0xDEB1, 0,0xDEBC, 0,
- 0, 0,0xDEB2,0xDEB3, 0,0xDEBD,0xDEBA,0xDEB8,
-0xDEB9,0xDEB5,0xDEB4, 0,0xDEBE,0xB7E5, 0,0xDEB6,
- 0,0xB7EA,0xB7E4,0xB7EB,0xB7EC, 0,0xB7E7,0xB7E6,
- 0, 0,0xE2CE,0xBABE,0xBABD, 0, 0,0xE2D3,
- 0,0xBCFC,0xBABF, 0, 0,0xBAC1,0xE2D4,0xB7E3,
-0xBAC0,0xE2D0,0xE2D2,0xE2CF, 0,0xE2D1, 0, 0,
- 0,0xE6AB, 0, 0,0xE6AA,0xE6A7,0xBD40,0xEA62,
-0xBD41,0xE6A6, 0,0xBCFE, 0,0xE6A8,0xE6A5,0xE6A2,
-0xE6A9,0xE6A3,0xE6A4,0xBCFD, 0, 0, 0, 0,
-0xED69, 0,0xEA66, 0,0xEA65,0xEA67, 0,0xED66,
-0xBF5A, 0,0xEA63, 0,0xBF58, 0,0xBF5C,0xBF5B,
-0xEA64,0xEA68, 0,0xBF59, 0,0xED6D,0xC0F5,0xC27A,
-0xC0F6,0xC0F3,0xED6A,0xED68, 0,0xED6B, 0,0xED6E,
-0xC0F4,0xED6C,0xED67, 0, 0,0xF042,0xF045,0xF275,
-0xF040, 0,0xF46F,0xF046, 0,0xC3A2,0xF044,0xC27B,
-0xF041,0xF043,0xF047,0xF276, 0,0xF274, 0, 0,
- 0, 0,0xC3A3,0xF273, 0, 0, 0,0xC46E,
- 0, 0, 0, 0,0xC4ED,0xF6F1,0xC4EC,0xF6F3,
-0xF6F0,0xF6F2,0xC5D0,0xF8B2,0xA5CA,0xCD6E,0xD2BC,0xD2BD,
-0xB27D,0xDEBF,0xBF5D,0xC3A4,0xC57B,0xF8B3,0xA5CB, 0,
-0xCD6F,0xA260, 0, 0,0xCFD7, 0,0xCFD8, 0,
- 0, 0, 0, 0,0xD2BE,0xD2BF,0xB27E,0xB2A1,
- 0, 0, 0,0xDAAB, 0,0xDEC2,0xDEC1,0xDEC0,
-0xE2D5, 0,0xE2D6,0xE2D7,0xBAC2, 0, 0,0xE6AD,
-0xE6AC, 0, 0,0xEA69,0xBF5E,0xBF5F, 0,0xED72,
-0xED6F,0xED70,0xED71,0xF049,0xF048,0xC27C,0xF277,0xF5DE,
-0xA5CC, 0,0xACC6, 0,0xB2A2,0xDEC3, 0,0xA5CD,
- 0,0xD2C0,0xB2A3, 0, 0,0xB563,0xB564, 0,
-0xA5CE,0xA5CF,0xCA46,0xA86A,0xA869,0xACC7,0xCFD9,0xDAAC,
-0xA5D0,0xA5D1,0xA5D2,0xA5D3, 0, 0, 0,0xA86B,
-0xA86C,0xCB6E,0xCB6D, 0, 0,0xAAB6,0xCD72,0xCD70,
-0xCD71, 0, 0, 0, 0, 0, 0,0xCFDA,
-0xCFDB, 0, 0,0xACCB,0xACC9, 0,0xACCA,0xACC8,
- 0, 0, 0, 0,0xAF60, 0, 0, 0,
- 0,0xAF64,0xAF63,0xD2C1,0xAF62,0xAF61, 0,0xD2C2,
- 0, 0,0xB2A6,0xD67B,0xD67A,0xB2A4,0xB2A5, 0,
- 0, 0,0xB566,0xB565,0xDAAE, 0, 0,0xDAAD,
-0xB2A7, 0, 0, 0, 0, 0,0xB7ED,0xDEC5,
-0xB7EE,0xDEC4, 0, 0, 0,0xE2D8,0xE6AE,0xBD42,
-0xEA6A, 0, 0, 0,0xED73, 0,0xC3A6,0xC3A5,
- 0, 0,0xC57C,0xA5D4,0xCD73, 0, 0,0xB2A8,
-0xE2D9,0xBAC3, 0, 0,0xCB6F,0xCB70, 0, 0,
-0xCD74,0xAAB8,0xAAB9, 0, 0,0xAAB7, 0, 0,
- 0, 0,0xACCF,0xACD0,0xACCD,0xACCE, 0,0xCFDC,
- 0, 0,0xCFDD,0xACCC, 0, 0, 0, 0,
-0xD2C3, 0,0xAF68,0xAF69, 0,0xB2AB,0xD2C9, 0,
-0xAF6E,0xAF6C,0xD2CA,0xD2C5,0xAF6B,0xAF6A,0xAF65,0xD2C8,
-0xD2C7,0xD2C4,0xAF6D, 0,0xD2C6,0xAF66, 0,0xAF67,
- 0, 0,0xB2AC,0xD6A1,0xD6A2,0xB2AD,0xD67C,0xD67E,
-0xD6A4,0xD6A3,0xD67D, 0,0xB2A9,0xB2AA, 0,0xDAB6,
-0xB56B,0xB56A,0xDAB0,0xB568, 0,0xDAB3,0xB56C,0xDAB4,
-0xB56D,0xDAB1,0xB567,0xB569,0xDAB5, 0,0xDAB2,0xDAAF,
- 0, 0, 0, 0, 0,0xDED2, 0,0xDEC7,
-0xB7F0,0xB7F3,0xB7F2,0xB7F7,0xB7F6,0xDED3,0xDED1,0xDECA,
-0xDECE,0xDECD,0xB7F4,0xDED0,0xDECC,0xDED4,0xDECB,0xB7F5,
-0xB7EF,0xB7F1, 0,0xDEC9, 0, 0, 0, 0,
-0xE2DB,0xBAC7,0xE2DF,0xBAC6,0xE2DC,0xBAC5, 0,0xDEC8,
-0xDECF,0xE2DE, 0,0xBAC8,0xE2E0,0xE2DD,0xE2DA, 0,
- 0,0xE6B1,0xE6B5,0xE6B7,0xE6B3,0xE6B2,0xE6B0,0xBD45,
-0xBD43,0xBD48,0xBD49,0xE6B4,0xBD46,0xE6AF,0xBD47,0xBAC4,
-0xE6B6,0xBD44, 0, 0, 0,0xEA6C, 0,0xEA6B,
-0xEA73,0xEA6D,0xEA72,0xEA6F,0xBF60,0xEA71, 0, 0,
-0xBF61, 0,0xBF62, 0,0xEA70,0xEA6E, 0, 0,
- 0, 0,0xC0F8,0xED74, 0, 0,0xC0F7,0xED77,
-0xED75,0xED76, 0, 0,0xC0F9, 0, 0, 0,
-0xF04D, 0,0xC2A1,0xF04E, 0, 0,0xC27D,0xF04F,
-0xC27E,0xF04C,0xF050, 0,0xF04A, 0, 0,0xC3A7,
-0xF278,0xC3A8,0xC46F, 0,0xF04B,0xC470, 0, 0,
- 0,0xC4EE,0xF5DF, 0,0xC57E,0xF6F4,0xC57D, 0,
-0xF7EA,0xC5F5,0xC5F6, 0, 0,0xF9CC, 0, 0,
-0xACD1,0xCFDE, 0,0xB56E,0xB56F,0xA5D5,0xA6CA,0xCA47,
- 0,0xCB71,0xA86D, 0,0xAABA, 0,0xACD2,0xACD3,
-0xACD4,0xD6A6,0xD2CB,0xAF6F, 0, 0,0xB2AE,0xD6A5,
- 0, 0,0xDAB8,0xB571, 0,0xDAB7,0xB570, 0,
- 0,0xDED5,0xBD4A,0xE6BB,0xE6B8,0xE6B9,0xE6BA, 0,
- 0, 0, 0, 0,0xED78, 0,0xF051, 0,
- 0, 0,0xF471,0xF470, 0,0xF6F5,0xA5D6,0xCD75,
-0xAF70, 0, 0, 0,0xB572,0xDED6, 0, 0,
-0xE2E1, 0,0xBD4B,0xEA74, 0,0xF052,0xF472,0xA5D7,
- 0, 0,0xAABB,0xACD7,0xCFDF,0xACD8,0xACD6, 0,
-0xACD5,0xD2CC,0xAF71, 0, 0,0xAF72,0xAF73, 0,
- 0, 0,0xB2B0,0xD6A7,0xB2AF, 0, 0, 0,
- 0, 0,0xDAB9,0xB2B1,0xB573,0xDED7,0xB7F8,0xB7F9,
- 0,0xBAC9, 0,0xBACA,0xBD4C,0xBF64,0xEA75,0xBF63,
- 0,0xED79,0xC0FA, 0,0xF053,0xF473,0xA5D8,0xA86E,
-0xCD78,0xCD77,0xAABC,0xCD76,0xAABD,0xCD79, 0,0xCFE5,
-0xACDB,0xACDA,0xCFE7,0xCFE6,0xACDF, 0,0xACDE, 0,
- 0,0xACD9, 0,0xCFE1,0xCFE2,0xCFE3, 0,0xACE0,
-0xCFE0,0xACDC,0xCFE4,0xACDD, 0, 0, 0, 0,
-0xD2CF,0xD2D3,0xD2D1,0xD2D0, 0,0xD2D4, 0, 0,
- 0,0xD2D5,0xD2D6,0xD2CE, 0,0xD2CD, 0,0xAF75,
-0xAF76, 0,0xD2D7,0xD2D2, 0,0xD6B0, 0,0xD2D8,
-0xAF77,0xAF74, 0, 0, 0,0xD6AA, 0,0xD6A9,
- 0,0xD6AB,0xD6AC,0xD6AE,0xD6AD,0xD6B2,0xB2B5,0xB2B2,
-0xB2B6,0xD6A8,0xB2B7,0xD6B1,0xB2B4,0xD6AF,0xB2B3, 0,
- 0, 0, 0, 0,0xDABC,0xDABE,0xDABA,0xDABB,
- 0, 0,0xDABF,0xDAC1,0xDAC2,0xDABD,0xDAC0,0xB574,
- 0, 0,0xDEDB, 0,0xDEE0,0xDED8,0xDEDC, 0,
- 0,0xDEE1,0xDEDD,0xB7FA,0xB843, 0,0xB7FD,0xDED9,
-0xDEDA,0xBACE,0xB846,0xB7FE, 0,0xB844,0xB7FC,0xDEDF,
-0xB845,0xDEDE,0xB841,0xB7FB,0xB842,0xDEE2,0xE2E6,0xE2E8,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xB840, 0, 0,0xE2E3,0xBACC,0xE2E9,0xBACD,
-0xE2E7,0xE2E2,0xE2E5,0xE2EA,0xBACB,0xE2E4, 0,0xBD4E,
-0xE6BF,0xE6BE, 0,0xBD51,0xBD4F,0xE6BC,0xBD4D,0xE6BD,
- 0,0xBD50, 0, 0, 0,0xEA7D, 0,0xEAA1,
- 0,0xEA7E,0xEA76,0xEA7A,0xEA79,0xEA77,0xBF66,0xBF67,
-0xBF65,0xEA78,0xEA7B,0xEA7C, 0,0xBF68, 0,0xC140,
-0xEDA3, 0,0xC0FC,0xED7B,0xC0FE,0xC141, 0, 0,
-0xC0FD,0xEDA2,0xED7C,0xC0FB,0xEDA1,0xED7A,0xED7E,0xED7D,
- 0, 0,0xF055,0xC2A4,0xC2A5,0xC2A2, 0,0xC2A3,
- 0, 0,0xF054, 0,0xF27B, 0, 0,0xC3A9,
- 0,0xF279,0xF27A, 0,0xF474,0xF477,0xF475,0xF476,
-0xF5E0, 0, 0,0xC4EF,0xF7EB,0xF8B4, 0,0xC5F7,
-0xF8F8,0xF8F9,0xC666,0xA5D9,0xACE1, 0,0xDAC3, 0,
-0xDEE3, 0,0xA5DA,0xA86F, 0,0xAABE, 0,0xCFE8,
-0xCFE9,0xAF78, 0, 0,0xDAC4,0xB575,0xB847,0xC142,
-0xEDA4,0xF27C,0xF478,0xA5DB, 0, 0, 0,0xCDA1,
-0xCD7A,0xCD7C,0xCD7E,0xCD7D,0xCD7B,0xAABF, 0, 0,
- 0, 0,0xACE2,0xCFF2, 0,0xCFED,0xCFEA, 0,
- 0,0xCFF1, 0, 0,0xACE4,0xACE5,0xCFF0,0xCFEF,
-0xCFEE,0xCFEB,0xCFEC,0xCFF3,0xACE3, 0, 0, 0,
- 0, 0, 0, 0, 0,0xAF7C, 0,0xAFA4,
-0xAFA3,0xD2E1,0xD2DB,0xD2D9, 0,0xAFA1,0xD6B9,0xAF7A,
-0xD2DE,0xD2E2,0xD2E4,0xD2E0,0xD2DA,0xAFA2,0xD2DF,0xD2DD,
-0xAF79,0xD2E5,0xAFA5,0xD2E3,0xAF7D,0xD2DC, 0,0xAF7E,
-0xAF7B, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xB2B9, 0,0xD6BA, 0, 0,
-0xD6B3,0xD6B5,0xD6B7, 0,0xD6B8,0xD6B6,0xB2BA, 0,
-0xD6BB, 0,0xD6B4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDAC8,0xB576,0xDAD0, 0,
-0xDAC5, 0,0xDAD1, 0,0xDAC6,0xDAC7, 0, 0,
-0xDACF,0xDACE,0xDACB,0xB2B8,0xB577,0xDAC9,0xDACC,0xB578,
-0xDACD,0xDACA, 0, 0, 0, 0, 0, 0,
- 0,0xDEEE, 0,0xDEF2,0xB84E, 0,0xE2F0,0xB851,
-0xDEF0,0xF9D6, 0,0xDEED,0xDEE8,0xDEEA,0xDEEB,0xDEE4,
- 0,0xB84D, 0, 0,0xB84C, 0,0xB848,0xDEE7,
- 0,0xB84F, 0,0xB850,0xDEE6,0xDEE9,0xDEF1,0xB84A,
-0xB84B,0xDEEF,0xDEE5, 0, 0, 0,0xE2F2,0xBAD0,
-0xE2F4,0xDEEC,0xE2F6,0xBAD4,0xE2F7,0xE2F3, 0,0xBAD1,
-0xE2EF,0xBAD3,0xE2EC,0xE2F1,0xE2F5,0xE2EE, 0, 0,
-0xB849, 0,0xE2EB,0xBAD2,0xE2ED, 0, 0, 0,
- 0, 0,0xBD54,0xE6C1,0xBD58, 0,0xBD56, 0,
- 0,0xBACF, 0,0xE6C8,0xE6C9,0xBD53, 0, 0,
-0xE6C7,0xE6CA,0xBD55,0xBD52,0xE6C3,0xE6C0,0xE6C5,0xE6C2,
-0xBD59,0xE6C4, 0, 0,0xE6C6,0xBD57, 0, 0,
- 0, 0,0xBF6A,0xEAA8, 0,0xEAA2,0xEAA6,0xEAAC,
-0xEAAD,0xEAA9,0xEAAA,0xEAA7, 0,0xEAA4, 0,0xBF6C,
-0xBF69,0xEAA3,0xEAA5, 0,0xBF6B,0xEAAB, 0,0xC146,
- 0, 0,0xEDAA,0xEDA5,0xC145, 0, 0,0xC143,
- 0,0xEDAC,0xC144,0xEDA8,0xEDA9,0xEDA6,0xEDAD,0xF056,
- 0,0xC147,0xEDA7, 0,0xEDAE,0xEDAB, 0, 0,
- 0,0xF05A, 0, 0,0xF057, 0,0xC2A6, 0,
-0xF05B,0xF05D,0xF05C,0xF058,0xF059, 0, 0,0xF2A3,
- 0,0xC3AA, 0,0xF27E,0xF2A2,0xF27D,0xF2A4, 0,
- 0,0xF2A1, 0,0xF47A,0xF47D,0xF479,0xC471,0xF47B,
-0xF47C,0xF47E,0xC472,0xC474,0xC473,0xF5E1, 0,0xF5E3,
- 0,0xF5E2, 0, 0, 0,0xF6F6, 0, 0,
-0xF8B5,0xF8FA,0xA5DC, 0, 0,0xCB72,0xAAC0,0xCDA3,
-0xAAC1,0xAAC2,0xCDA2, 0,0xCFF8,0xCFF7,0xACE6,0xACE9,
-0xACE8,0xACE7,0xCFF4,0xCFF6,0xCFF5, 0, 0,0xD2E8,
-0xAFA7,0xD2EC,0xD2EB,0xD2EA,0xD2E6,0xAFA6,0xAFAA,0xAFAD,
- 0, 0,0xAFAE,0xD2E7,0xD2E9,0xAFAC,0xAFAB,0xAFA9,
-0xAFA8,0xD6C2, 0,0xD6C0,0xD6BC,0xB2BB, 0,0xD6BD,
-0xB2BC,0xD6BE,0xD6BF,0xD6C1, 0,0xB2BD, 0, 0,
-0xDAD5, 0,0xDAD4,0xDAD3,0xDAD2, 0, 0, 0,
- 0,0xDEF6,0xB852, 0,0xDEF3,0xDEF5, 0,0xB853,
- 0,0xB854,0xDEF4, 0, 0, 0, 0, 0,
-0xE341, 0,0xE2F9,0xE2FA, 0,0xBAD7,0xBAD5,0xBAD6,
-0xE343, 0,0xE342,0xE2FE,0xE2FD,0xE2FC,0xE2FB,0xE340,
-0xE2F8, 0,0xE6CB,0xE6D0,0xE6CE, 0, 0, 0,
-0xE6CD,0xE6CC,0xE6CF, 0,0xEAAE, 0,0xBF6D,0xC148,
-0xEDB0, 0,0xC149,0xEDAF,0xF05F,0xF05E,0xC2A7, 0,
-0xF2A5,0xC3AB,0xF4A1,0xC5A1,0xF6F7, 0,0xF8B7,0xF8B6,
-0xC9A8,0xACEA,0xACEB,0xD6C3, 0,0xB856,0xA5DD,0xA872,
-0xA871,0xA870, 0, 0, 0,0xCDA4, 0, 0,
-0xAAC4,0xAAC3, 0,0xACEE, 0,0xCFFA,0xCFFD,0xCFFB,
- 0,0xACEC,0xACED, 0, 0,0xCFF9,0xCFFC, 0,
-0xAFB5, 0, 0, 0,0xD2F3,0xD2F5,0xD2F4,0xAFB2,
-0xD2EF, 0, 0,0xAFB0,0xAFAF, 0,0xAFB3,0xAFB1,
- 0,0xAFB4,0xD2F2,0xD2ED,0xD2EE,0xD2F1,0xD2F0, 0,
- 0, 0, 0, 0, 0, 0,0xD6C6,0xD6C7,
-0xD6C5, 0,0xD6C4,0xB2BE, 0, 0, 0, 0,
-0xB57D, 0,0xDAD6,0xDAD8,0xDADA,0xB57C, 0, 0,
-0xB57A, 0,0xDAD7,0xB57B,0xDAD9,0xB579, 0, 0,
-0xDF41,0xDEF7,0xDEFA,0xDEFE,0xB85A,0xDEFC, 0,0xDEFB,
-0xDEF8,0xDEF9,0xB858,0xDF40,0xB857, 0,0xB85C,0xB85B,
-0xB859, 0,0xDEFD, 0, 0, 0,0xE349, 0,
-0xE348, 0, 0,0xE344, 0, 0,0xBAD8,0xE347,
-0xE346,0xBAD9, 0, 0, 0, 0, 0,0xBD5E,
- 0,0xE6D2, 0,0xBD5F,0xBD5B,0xBD5D, 0,0xBD5A,
-0xBD5C, 0, 0, 0,0xEAAF, 0,0xBF70,0xEAB1,
-0xEAB0, 0,0xE345,0xBF72,0xBF71,0xBF6E,0xBF6F, 0,
- 0, 0, 0, 0,0xEDB5, 0,0xEDB3,0xC14A,
-0xEDB4, 0,0xEDB6,0xEDB2,0xEDB1, 0, 0,0xF060,
-0xC2AA,0xC2A8,0xC2A9, 0, 0, 0, 0,0xF2A6,
-0xF2A7,0xC3AD, 0,0xC3AC,0xF4A3,0xF4A4,0xF4A2, 0,
-0xF6F8,0xF6F9, 0, 0,0xA5DE,0xCA48,0xA873, 0,
-0xCDA5,0xAAC6,0xAAC5,0xCDA6, 0, 0,0xD040,0xACEF,
-0xCFFE,0xACF0, 0, 0,0xAFB6,0xD2F8,0xD2F6,0xD2FC,
-0xAFB7,0xD2F7,0xD2FB,0xD2F9,0xD2FA, 0, 0,0xD6C8,
-0xD6CA, 0,0xB2BF, 0,0xD6C9,0xB2C0,0xB5A2,0xB5A1,
-0xB57E,0xDADB, 0, 0, 0, 0,0xDF44,0xB85D,
-0xB85E, 0,0xDF43,0xDF42, 0, 0, 0, 0,
-0xE34A,0xBADB,0xBADA,0xE34B,0xE34C, 0,0xBD61,0xBD60,
- 0,0xEAB5,0xE6D3,0xE6D5,0xE6D4,0xEAB4,0xEAB2,0xEAB6,
-0xEAB3, 0,0xBF73, 0, 0, 0,0xEDB7,0xC14B,
-0xEDB8,0xEDB9, 0, 0,0xC2AB,0xC2AC, 0,0xC475,
- 0, 0,0xC5D1,0xA5DF, 0, 0, 0, 0,
- 0,0xD041, 0, 0, 0, 0, 0, 0,
-0xD2FD,0xAFB8, 0, 0, 0, 0, 0,0xB3BA,
-0xB3B9, 0, 0,0xB5A4,0xDADD,0xB5A3,0xDADC, 0,
- 0, 0, 0,0xDF45, 0,0xBADC,0xE34D,0xBADD,
- 0, 0, 0, 0, 0, 0,0xC476,0xF4A5,
- 0,0xA6CB,0xAAC7,0xCDA7, 0,0xACF2, 0,0xACF1,
-0xD042,0xD043, 0, 0,0xD340,0xD342,0xAFB9, 0,
-0xD344,0xD347,0xD345, 0, 0, 0,0xD346,0xD343,
-0xD2FE,0xAFBA,0xD348,0xD341, 0, 0, 0, 0,
-0xD6D3,0xB2C6,0xD6DC,0xB2C3, 0,0xD6D5,0xB2C7, 0,
-0xB2C1, 0,0xD6D0,0xD6DD,0xD6D1,0xD6CE,0xB2C5, 0,
-0xB2C2, 0,0xD6D4,0xD6D7,0xB2C4,0xD6D8,0xB2C8,0xD6D9,
-0xD6CF,0xD6D6,0xD6DA,0xD6D2,0xD6CD,0xD6CB, 0, 0,
-0xD6DB, 0, 0,0xDADF, 0, 0, 0, 0,
-0xDAE4, 0, 0, 0,0xDAE0,0xDAE6,0xB5A7,0xD6CC,
-0xDAE1,0xB5A5,0xDADE,0xB5AC,0xDAE2,0xB5AB,0xDAE3,0xB5AD,
-0xB5A8,0xB5AE,0xB5A9, 0,0xB5AA, 0,0xB5A6, 0,
-0xDAE5, 0, 0, 0, 0, 0, 0, 0,
-0xB861,0xDF50, 0,0xDF53,0xDF47,0xDF4C,0xDF46,0xB863,
- 0,0xDF4A, 0, 0, 0,0xDF48,0xB862, 0,
-0xDF4F,0xDF4E,0xDF4B,0xDF4D,0xDF49,0xBAE1,0xDF52,0xB85F,
-0xDF51, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE35D, 0,0xBAE8,0xE358, 0,0xBAE7,
-0xE34E, 0,0xE350,0xBAE0,0xE355,0xE354,0xE357,0xBAE5,
-0xE352,0xE351, 0, 0,0xBAE4,0xBADF,0xE353,0xBAE2,
-0xE359,0xE35B, 0,0xE356,0xE34F,0xBAE3, 0, 0,
-0xBD69,0xBADE, 0, 0,0xE35C, 0, 0, 0,
- 0, 0, 0, 0,0xE6D9,0xBD62, 0,0xE6DB,
- 0,0xBD63, 0, 0,0xBD65,0xE6DE, 0,0xE6D6,
-0xBAE6,0xE6DC, 0, 0, 0, 0,0xE6D8, 0,
-0xB860,0xBD68, 0, 0,0xBD64, 0,0xBD66,0xBD67,
- 0,0xBF76,0xE6DD,0xE6D7,0xBD6A, 0,0xE6DA, 0,
- 0, 0, 0, 0,0xEAC0,0xEABB, 0, 0,
-0xEAC5,0xBF74,0xEABD,0xBF78,0xEAC3,0xEABA,0xEAB7,0xEAC6,
-0xC151,0xBF79,0xEAC2,0xEAB8,0xBF77,0xEABC,0xBF7B,0xEAB9,
-0xEABE,0xBF7A,0xEAC1,0xEAC4, 0, 0, 0, 0,
-0xEDCB,0xEDCC,0xEDBC,0xEDC3,0xEDC1, 0, 0,0xC14F,
-0xEDC8,0xEABF, 0,0xEDBF, 0,0xEDC9,0xC14E,0xEDBE,
-0xEDBD,0xEDC7,0xEDC4,0xEDC6, 0,0xEDBA,0xEDCA,0xC14C,
- 0,0xEDC5,0xEDCE,0xEDC2,0xC150,0xC14D,0xEDC0,0xEDBB,
-0xEDCD,0xBF75, 0, 0, 0, 0, 0, 0,
- 0,0xF063, 0, 0,0xF061,0xF067,0xC2B0,0xF065,
-0xF064,0xC2B2,0xF06A,0xC2B1, 0,0xF06B,0xF068,0xC2AE,
-0xF069,0xF062,0xC2AF,0xC2AD,0xF2AB,0xF066, 0, 0,
-0xF06C, 0, 0,0xF2A8, 0, 0, 0,0xC3B2,
-0xC3B0,0xF2AA, 0,0xF2AC,0xF2A9,0xC3B1,0xC3AE,0xC3AF,
-0xC3B3, 0, 0,0xC478, 0,0xF4AA, 0,0xF4A9,
-0xF4A7,0xF4A6,0xF4A8, 0,0xC477,0xC479, 0, 0,
-0xC4F0, 0, 0,0xF5E5,0xF5E4, 0, 0,0xF6FA,
- 0,0xF6FC,0xF6FE,0xF6FD,0xF6FB, 0, 0,0xC5A3,
-0xC5A2, 0, 0,0xC5D3,0xC5D2,0xC5D4,0xF7ED,0xF7EC,
- 0,0xF8FB,0xF8B8,0xF8FC,0xC658, 0,0xC659,0xF96D,
- 0, 0,0xC67E,0xA6CC, 0,0xCDA8, 0, 0,
-0xD045,0xD046,0xD044, 0, 0,0xACF3, 0,0xD047,
-0xD048,0xD049, 0, 0,0xD349,0xD34F, 0, 0,
-0xD34D,0xAFBB,0xD34B, 0,0xD34C,0xD34E, 0, 0,
- 0,0xD34A,0xB2C9, 0,0xD6DE,0xB2CB,0xD6E0,0xB2CA,
-0xD6DF, 0, 0, 0, 0, 0,0xDAE8,0xB5AF,
- 0,0xDAEA,0xDAE7,0xD6E1, 0,0xB5B0, 0,0xF9DB,
-0xDAE9, 0, 0, 0, 0, 0, 0,0xDF56,
- 0,0xB864,0xDF54,0xB865,0xDF55,0xB866, 0, 0,
- 0,0xBAE9,0xE361,0xE35E,0xE360,0xBAEA,0xBAEB,0xE35F,
- 0, 0, 0, 0, 0,0xE6DF, 0, 0,
-0xE6E0, 0,0xBD6B,0xE6E2,0xE6E1, 0,0xA261, 0,
-0xEACA,0xEACB,0xEAC7, 0,0xEAC8,0xBF7C,0xBF7D,0xEAC9,
- 0,0xC157, 0, 0,0xC153,0xC158,0xC154,0xC156,
-0xC152, 0,0xC155, 0, 0, 0, 0,0xC2B3,
-0xEDCF, 0,0xF2AE, 0,0xF2AD, 0,0xF4AB,0xC47A,
-0xC47B,0xF741,0xF5E6, 0,0xF740, 0,0xF8FD,0xF9A4,
-0xA6CD, 0, 0,0xA874, 0,0xCDA9,0xAAC8, 0,
-0xACF6,0xD04C,0xACF4,0xD04A,0xACF9,0xACF5,0xACFA,0xACF8,
-0xD04B,0xACF7,0xAFBF,0xAFBE,0xD35A,0xAFC7,0xD353,0xD359,
-0xAFC3,0xD352,0xD358,0xD356,0xAFC2,0xAFC4,0xD355,0xAFBD,
-0xD354,0xAFC8,0xAFC5,0xAFC9,0xAFC6,0xD351,0xD350,0xD357,
-0xAFC0,0xAFBC,0xAFC1, 0, 0, 0, 0, 0,
-0xD6F0,0xD6E9, 0,0xB5B5,0xD6E8, 0,0xB2CF,0xB2D6,
-0xB2D3,0xB2D9,0xB2D8,0xB2D4, 0,0xD6E2,0xD6E5, 0,
-0xD6E4,0xB2D0,0xD6E6,0xD6EF,0xB2D1,0xD6E3,0xD6EC,0xD6ED,
-0xB2D2,0xD6EA,0xB2D7,0xB2CD,0xB2D5,0xD6E7,0xB2CC,0xD6EB,
- 0, 0,0xD6EE, 0, 0, 0,0xDAFB,0xDAF2,
-0xB5B2,0xDAF9,0xDAF6,0xDAEE,0xDAF7,0xB5B4,0xDAEF, 0,
-0xDAEB, 0, 0,0xB86C,0xDAF4, 0,0xB5B1,0xDAFA,
- 0,0xB5B8,0xB5BA,0xDAED, 0, 0,0xB5B9,0xDAF0,
-0xB5B3,0xDAF8,0xDAF1,0xDAF5, 0,0xDAF3,0xB5B6,0xDAEC,
-0xB5BB,0xB2CE,0xB5B7,0xB5BC, 0, 0, 0, 0,
- 0,0xB868,0xDF5D,0xDF5F,0xDF61,0xDF65, 0,0xDF5B,
-0xDF59,0xB86A, 0,0xDF60,0xDF64,0xDF5C,0xDF58, 0,
-0xDF57, 0, 0, 0,0xDF62,0xDF5A,0xDF5E,0xB86B,
- 0,0xB869,0xDF66,0xB867,0xDF63, 0,0xE372, 0,
- 0, 0, 0, 0,0xBAEE,0xE36A,0xBD78,0xE374,
-0xBAF1,0xE378,0xBAF7,0xE365, 0, 0,0xE375,0xE362,
- 0,0xE377,0xE366, 0,0xBAFE,0xBAFB,0xE376,0xE370,
-0xBAED,0xBAF5,0xBAF4, 0,0xBAF3,0xBAF9, 0,0xE363,
-0xBAFA,0xE371,0xBAF6,0xBAEC,0xE373,0xBAEF,0xBAF0,0xBAF8,
-0xE368,0xE367,0xE364, 0,0xE36C,0xE369,0xE36D,0xBAFD,
- 0,0xE379,0xBAF2,0xE36E,0xE36F, 0,0xE36B, 0,
- 0, 0,0xBAFC, 0, 0, 0, 0,0xE6E7,
-0xBD70,0xBD79,0xBD75,0xE6E4, 0,0xBD72,0xBD76,0xE6F0,
-0xBD6C,0xE6E8, 0,0xBD74, 0, 0,0xE6EB,0xE6E6,
-0xBD73,0xBD77,0xE6E5, 0,0xBD71, 0,0xE6EF,0xBD6E,
-0xE6EE,0xE6ED,0xBD7A,0xE572,0xBD6D, 0,0xE6EC,0xE6E3,
- 0,0xBD7B,0xE6EA,0xBD6F, 0, 0, 0, 0,
- 0, 0, 0,0xE6E9, 0, 0, 0, 0,
-0xBFA2,0xBFA7,0xBF7E,0xEAD8,0xEACF,0xEADB,0xEAD3,0xEAD9,
-0xBFA8,0xBFA1,0xEACC,0xEAD2,0xEADC,0xEAD5,0xEADA,0xEACE,
- 0, 0,0xEAD6,0xBFA3,0xEAD4,0xBFA6,0xBFA5,0xEAD0,
-0xEAD1,0xEACD,0xEAD7,0xBFA4,0xEADE,0xEADD, 0, 0,
- 0,0xEDDA,0xEDD6,0xC15F, 0,0xEDD0,0xC159,0xC169,
-0xEDDC,0xC161,0xC15D,0xEDD3,0xC164,0xC167,0xEDDE,0xC15C,
-0xEDD5,0xC165,0xEDE0,0xEDDD,0xEDD1,0xC160,0xC15A,0xC168,
-0xEDD8,0xC163,0xEDD2,0xC15E,0xEDDF,0xC162,0xC15B,0xEDD9,
-0xC166,0xEDD7, 0, 0,0xEDDB, 0, 0, 0,
-0xF06E,0xF074,0xC2B9,0xF077,0xC2B4,0xC2B5,0xF06F,0xF076,
-0xF071,0xC2BA,0xC2B7, 0,0xF06D, 0,0xC2B6,0xF073,
-0xF075,0xC2B8,0xF072,0xF070, 0, 0, 0, 0,
-0xF2B8,0xC3B7,0xC3B8,0xC3B4, 0,0xC3B5, 0,0xF2B4,
-0xF2B2, 0,0xF2B6,0xC3BA,0xF2B7,0xF2B0,0xF2AF,0xF2B3,
-0xF2B1,0xC3B6,0xF2B5,0xF4AC,0xC47E,0xC47D,0xF4AD, 0,
-0xF4AF,0xF4AE,0xC4A1, 0, 0, 0,0xF5EB,0xF5E8,
-0xF5E9, 0,0xF5E7,0xF5EA,0xC4F2,0xF5EC, 0,0xC4F1,
- 0,0xF742, 0,0xC5D5,0xC5D7,0xF7EE,0xC5D6,0xF8B9,
-0xF940,0xF942,0xF8FE,0xF941,0xC66C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA6CE, 0,
-0xACFB,0xD26F,0xAFCA, 0, 0,0xB2DA,0xDAFC,0xDAFD,
- 0, 0, 0,0xEADF,0xC16A,0xEDE1, 0, 0,
-0xC2BB, 0,0xF2BA,0xF2B9,0xC4A2,0xF5ED, 0,0xF743,
-0xC5F8,0xCA49, 0, 0,0xAAC9,0xA875, 0, 0,
-0xD04D, 0, 0,0xD360,0xD35B,0xD35F,0xD35D,0xAFCB,
-0xD35E,0xD35C, 0,0xD6F1, 0,0xDAFE,0xDB40,0xDF69,
-0xDF6A,0xB86E,0xB86F,0xDF68,0xDF6B,0xDF67,0xB86D, 0,
-0xBB40, 0,0xB870,0xE37A, 0,0xBD7C,0xE6F1,0xBD7D,
- 0,0xBFA9,0xEAE2,0xEAE0,0xEAE1,0xEDE4,0xEDE3,0xEDE2,
- 0, 0, 0,0xF2BB, 0,0xC3B9,0xF2BC,0xF744,
-0xC5F9,0xF8BA,0xA6CF,0xAACB,0xAACA,0xD04F,0xACFC, 0,
- 0,0xD04E,0xD362, 0,0xAFCC,0xD6F2,0xD361, 0,
- 0, 0,0xB2DC,0xD6F5,0xD6F3,0xD6F4,0xB2DB, 0,
-0xDB42,0xDB43,0xDB41, 0,0xB873,0xDF6D,0xDF6C,0xDF6E,
-0xB872,0xB871, 0, 0,0xE6F2,0xE6F4, 0,0xBD7E,
-0xE6F3,0xEAE3,0xBFAA,0xF079, 0,0xF078,0xC3BB,0xF2BD,
-0xC3BD,0xC3BC,0xF4B0,0xF5EE,0xC4F3,0xA6D0,0xD050,0xACFD,
-0xD365,0xAFCE,0xD364,0xD363, 0,0xAFCD, 0,0xD6FB,
- 0,0xD6FD,0xD6F6,0xD6F7,0xB2DD,0xD6F8,0xB2DE,0xD6FC,
-0xD6F9,0xD6FA,0xB2DF, 0,0xB5BE,0xB5BF, 0,0xDB44,
- 0, 0, 0,0xDF6F,0xDF70, 0,0xE37E,0xBB43,
-0xBB41,0xBB42,0xE37B,0xE37C, 0,0xE37D,0xE6F9, 0,
-0xE6FA,0xBDA1,0xE6F7,0xE6F6,0xE6F8,0xE6F5,0xBFAD,0xEAE4,
-0xBFAB,0xBFAC,0xEDE6,0xC16B,0xEDE5,0xEFA8, 0,0xF07A,
-0xF07B,0xC2BC, 0,0xC2BD,0xC16C,0xF2BE,0xF2BF,0xF4B1,
-0xC4A3,0xA6D1, 0,0xA6D2,0xACFE,0xAACC,0xAFCF,0xD051,
- 0, 0, 0,0xB5C0,0xA6D3,0xAD41,0xD052,0xD053,
-0xAD40,0xAD42,0xA6D4, 0,0xD054,0xAFD1,0xD366,0xAFD3,
-0xAFD0,0xAFD2, 0,0xD741,0xB2E0, 0,0xD740,0xD6FE,
- 0,0xDF71, 0, 0,0xE3A1, 0,0xBDA2, 0,
-0xBFAE,0xEAE6,0xEAE5, 0,0xEDE7, 0, 0, 0,
-0xF5EF, 0, 0,0xA6D5,0xCB73,0xCDAA,0xAD43,0xD055,
- 0,0xD368, 0, 0, 0,0xAFD4,0xD367,0xAFD5,
- 0, 0, 0,0xD743, 0, 0,0xB2E2,0xD742,
-0xD744, 0,0xB2E1, 0, 0, 0, 0,0xDB46,
-0xDB47,0xDB45,0xB5C1, 0, 0, 0,0xB874, 0,
-0xB875, 0,0xBB45, 0,0xE3A3,0xE3A2,0xBB44, 0,
- 0, 0, 0, 0,0xE6FB, 0, 0,0xE6FC,
- 0, 0, 0, 0,0xEAE7, 0, 0,0xC170,
-0xC16F,0xC16D,0xC16E,0xC171, 0,0xF07C,0xC2BF,0xC2BE,
-0xF2C0,0xF4B2, 0, 0, 0,0xC5A5,0xC5A4,0xA6D6,
- 0, 0,0xD1FB, 0,0xB877,0xB5C2,0xB876,0xBB46,
- 0,0xA6D7,0xC9A9,0xA6D8,0xA6D9, 0, 0,0xCDAB,
-0xCB76, 0,0xCB77,0xA877, 0,0xCB74,0xA876, 0,
-0xA879,0xCB75,0xA87B,0xA87A,0xCB78,0xA878, 0, 0,
- 0,0xAAD1,0xAACF,0xCDAD, 0,0xAACE, 0, 0,
- 0,0xAAD3,0xAAD5,0xAAD2, 0,0xCDB0,0xCDAC,0xAAD6,
- 0,0xAAD0,0xA87C, 0,0xAAD4,0xCDAF, 0, 0,
-0xCDAE, 0,0xAACD, 0, 0, 0, 0, 0,
- 0, 0,0xD05B,0xAD47,0xAD48,0xD05D, 0,0xD057,
-0xD05A,0xD063,0xD061, 0,0xAD49,0xD067,0xAD4C,0xD064,
-0xD05C,0xD059, 0, 0,0xDB49,0xD062,0xAD44,0xD065,
-0xD056,0xD05F,0xAD46,0xAD4B,0xD060,0xAD4F,0xAD4D, 0,
-0xD058,0xAD4A, 0,0xD05E,0xAD4E,0xAD45,0xD066, 0,
- 0, 0, 0, 0, 0,0xAFDA, 0,0xAFE3,
-0xAFD8,0xAFD6,0xD36A,0xAFDE,0xAFDB,0xD36C, 0, 0,
-0xAFDD,0xD36B,0xD369,0xD36E,0xAFE2,0xAFE0,0xDB48, 0,
-0xD36F,0xD36D,0xAFD7, 0, 0,0xAFD9,0xAFDC, 0,
-0xAFDF, 0,0xAFE1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD74E,0xB2E4, 0,
-0xD745,0xD747, 0,0xD748, 0,0xD750,0xD74C,0xD74A,
- 0,0xD74D,0xD751,0xB2E5,0xB2E9,0xD746, 0,0xD74F,
- 0,0xB2E7, 0,0xB2E6,0xD74B,0xD749, 0,0xB2E3,
-0xB2E8, 0, 0, 0, 0, 0, 0, 0,
- 0,0xB5C8,0xDB51, 0, 0,0xDB4F,0xB5CA, 0,
- 0, 0, 0,0xDB4A,0xDFA1, 0,0xB5C9,0xDB4E,
- 0, 0,0xDB4B,0xB5C5,0xB5CB,0xDB50,0xB5C7,0xDB4D,
-0xBB47,0xB5C6,0xDB4C,0xB5CC,0xB5C4,0xB5C3, 0, 0,
- 0, 0, 0,0xDF77,0xDF75, 0,0xDF7B, 0,
-0xDF73,0xDFA2,0xDF78, 0,0xDF72,0xB87B,0xB8A3,0xDF7D,
- 0,0xDF76, 0,0xB87E, 0, 0,0xB87C,0xDF7E,
-0xB879,0xB878,0xDF79,0xB87D,0xB5CD, 0,0xDF7C,0xDF74,
-0xB87A,0xB8A1,0xB8A2, 0, 0, 0, 0,0xBB4C,
-0xBB48, 0,0xBB4D,0xE3A6, 0, 0,0xE3A5,0xE3A7,
-0xBB4A,0xE3A4,0xBB4B,0xE3AA,0xE3A9,0xE3A8, 0,0xBB49,
- 0, 0, 0, 0, 0,0xE741, 0,0xE744,
-0xBDA8,0xE743,0xBDA7,0xBDA3,0xBDA4,0xBDA5,0xE740,0xE6FE,
-0xBDA6, 0,0xE742,0xE6FD, 0, 0,0xEAE9,0xEAF3,
-0xBFB1,0xBFB0, 0,0xEAED,0xEAEF, 0,0xEAEA, 0,
-0xEAEE,0xEAE8,0xEAF1,0xBFAF,0xEAF0,0xEAEC, 0,0xEAF2,
- 0,0xEAEB,0xC174,0xEDE8,0xEDEE,0xC178,0xC17A,0xC177,
-0xC176, 0,0xC175,0xC173,0xEDE9,0xEDEC,0xC172,0xEDED,
- 0,0xC179,0xEDEB, 0,0xEDEA,0xC2C0, 0,0xC2C1,
-0xF0A1,0xF07D,0xF07E, 0, 0,0xF2C2, 0,0xF2C1,
-0xC3BE,0xF4B4,0xC4A4,0xF4B3, 0,0xF5F0,0xF745,0xC5A6,
-0xF943,0xF944,0xC5D8,0xA6DA, 0,0xAAD7,0xDB52,0xBB4E,
-0xC17B,0xEDEF,0xA6DB, 0,0xAFE5,0xAFE4,0xDB53, 0,
- 0, 0,0xEAF4,0xA6DC,0xAD50, 0, 0,0xDB54,
-0xDB55,0xDB56,0xBB4F,0xBFB2,0xA6DD, 0,0xAAD8,0xD068,
-0xAFE6,0xD370,0xB2EA, 0,0xDB57,0xB8A4, 0,0xBB50,
-0xBFB3,0xC17C,0xC2C2,0xF4B5,0xA6DE,0xAAD9, 0, 0,
-0xAFE7,0xD752,0xB5CE, 0,0xBB51,0xE3AB,0xE745, 0,
- 0, 0, 0,0xA6DF,0xB5CF,0xDFA3,0xBB52,0xA6E0,
-0xCDB1,0xD069,0xAD51, 0, 0,0xD372, 0, 0,
-0xAFEA, 0,0xAFE8,0xAFE9,0xAFEB, 0, 0,0xD371,
- 0, 0,0xD757,0xD754,0xD756,0xB2EB,0xB2ED,0xB2EC,
-0xD753,0xB2EE,0xD755, 0,0xDB58,0xDB59, 0,0xDB5A,
-0xDFA6, 0,0xDFA7, 0,0xDFA5,0xDFA8, 0,0xB8A5,
- 0,0xDFA4, 0,0xBB53, 0, 0,0xE74A,0xE746,
-0xE749,0xE74B,0xE748,0xE747, 0,0xEAF5,0xEAF6,0xEAF7,
-0xBFB4,0xBFB5,0xEDF1,0xEDF0,0xEDF2, 0,0xF0A3,0xF0A2,
- 0,0xF2C4, 0,0xF2C5,0xF2C3, 0,0xC4A5, 0,
-0xF4B6,0xF4B7, 0,0xF746,0xF7EF,0xF8BB,0xA6E1,0xA87D,
- 0,0xC17D,0xA6E2, 0,0xD758,0xDB5B, 0,0xC641,
-0xCA4A, 0, 0, 0,0xCA4B,0xCA4D,0xA6E3,0xCA4E,
-0xCA4C, 0, 0,0xCBA2,0xCBA3,0xCB7B, 0, 0,
- 0, 0,0xCBA1,0xA8A1, 0,0xA8A2,0xCB7C,0xCB7A,
-0xCB79,0xCB7D,0xA87E,0xCB7E,0xD06A, 0, 0, 0,
-0xCDB6,0xAADC,0xCDB5,0xCDB7, 0,0xAADB,0xCDBC,0xAADF,
-0xCDB2,0xCDC0,0xCDC6,0xAAE6,0xCDC3,0xAAE3, 0,0xCDB9,
-0xCDBF,0xCDC1, 0,0xCDB4,0xAAE2,0xAADD,0xCDBA,0xAAE4,
-0xAAE7,0xAAE1, 0,0xAADA,0xCDBE,0xCDB8,0xCDC5,0xAAE9,
-0xAAE5,0xAAE0,0xCDBD,0xAFEC,0xCDBB,0xAADE,0xAAE8, 0,
-0xCDB3, 0,0xCDC2,0xCDC4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xAD62,0xAD5C,0xAD64,0xAD61,0xD071,0xD074,0xAD5D,
- 0,0xD06B, 0,0xAD56,0xAD60, 0,0xAD63,0xAD65,
-0xD0A2,0xD077, 0,0xAD55,0xD0A1,0xAD59,0xAD57,0xAD52,
-0xD06F, 0,0xD07E,0xD073,0xD076,0xD0A5, 0,0xAD66,
-0xD07D,0xAD5E,0xD078,0xD0A4,0xD075,0xD079,0xD07C, 0,
- 0,0xD06D,0xD0A3,0xD07B, 0, 0,0xD06C, 0,
-0xD070,0xAD5F,0xAD5A,0xAD53,0xAD58,0xAD54,0xAD67,0xD06E,
-0xD3A5,0xAD5B, 0, 0,0xD07A,0xCE41, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD3A8,0xAFFA,
- 0,0xD376, 0,0xD3A3,0xD37D, 0,0xD3B2, 0,
-0xD3AA, 0,0xD37E, 0,0xD3A9,0xD378,0xD37C,0xD3B5,
-0xAFFD,0xD3AD,0xD3A4,0xAFED,0xD3B3,0xD374, 0,0xD3AC,
- 0,0xAFFC,0xAFF7,0xD373,0xAFF5,0xAFF4,0xAFF9,0xD3AB,
-0xAFF1,0xAFF8,0xD072,0xDB5C,0xD3A6, 0, 0,0xD37A,
-0xAFFB,0xD37B,0xD3A1,0xAFFE,0xD375,0xD3AF, 0,0xD3AE,
-0xD3B6,0xAFF3,0xAFF0,0xD3B4,0xD3B0,0xD3A7,0xD3A2,0xAFF6,
-0xAFF2,0xD377,0xAFEE,0xD3B1,0xAFEF, 0,0xD379, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD75E,0xD760,0xD765,0xD779,0xB2FC,
-0xB2F2, 0,0xD75D,0xB2FD,0xB2FE,0xD768,0xD76F,0xD775,
- 0,0xD762, 0,0xD769, 0, 0,0xB340,0xD777,
-0xD772,0xB2FA,0xB2F8,0xD76E,0xD76A,0xD75C,0xB2EF,0xD761,
-0xD759, 0,0xB2F7,0xB2F9,0xD766,0xD763,0xB2F4,0xD773,
-0xB2F1,0xD764,0xD77A,0xD76C, 0,0xD76B,0xB2F0, 0,
-0xB2FB, 0,0xB2F3,0xD75A,0xD75F,0xD770,0xD776,0xB341,
-0xD75B,0xD767,0xD76D,0xB2F6, 0, 0,0xD778,0xD771,
-0xD774, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xB2F5, 0,0xDB6C,
-0xDB60,0xB5D7,0xDB7D,0xDBA7,0xDBAA,0xB5D5,0xDB68,0xDBA3,
-0xDB69,0xDB77,0xB5E2,0xDB73,0xB5DF, 0,0xDB74,0xDB5D,
- 0,0xDBA4, 0, 0,0xB5E8,0xDBA1,0xDB75,0xDBAC,
-0xDB70,0xDFC8, 0,0xDBAF,0xB5E6,0xDB6E,0xDB7A,0xB5E9,
-0xB5D4,0xDB72,0xDBAD,0xDB6B,0xDB64,0xDB6F, 0,0xDB63,
-0xDB61,0xB5D0,0xDBA5,0xDB6A,0xDBA8, 0,0xDBA9,0xB5D8,
-0xB5DD,0xB5D9,0xB5E1,0xDB7E,0xB5DA,0xDB76,0xDB66, 0,
-0xB5D2,0xDB5E,0xDBA2,0xDBAB,0xDB65,0xB5E0,0xDBB0,0xDB71,
- 0,0xDB6D, 0,0xB5D1,0xB5E5, 0,0xDB7C,0xB5E7,
- 0,0xDB78,0xB5DC,0xB5D6,0xB5DE,0xB5D3,0xB5E4,0xDB79,
-0xDB67,0xDB7B,0xDB62,0xDBA6, 0, 0, 0, 0,
- 0, 0, 0,0xDBAE, 0, 0, 0, 0,
- 0, 0, 0,0xDB5F, 0, 0, 0, 0,
- 0,0xDFC7, 0,0xDFDD,0xB855,0xDFCC, 0,0xDFCA,
-0xDFB5,0xB8A9,0xDFC5,0xDFD9,0xDFC1,0xB8B1,0xDFD8,0xDFBF,
-0xB5E3,0xDFCF,0xDFC0,0xDFD6,0xB8B0,0xB8A8, 0,0xDFAA,
-0xDFB2, 0,0xDFCB,0xDFC3,0xDFDC,0xDFC6,0xB8B6,0xDFD7,
- 0,0xB8AD, 0,0xDFC9,0xDFD1,0xDFB6,0xDFD0, 0,
-0xDFE1,0xDFB1,0xDFD2, 0,0xDFDF, 0,0xDFAB,0xB5DB,
- 0,0xDFB9,0xDFB8,0xB8AF, 0,0xDFBC,0xDFBE,0xDFCD,
-0xDFDE,0xB8B2, 0,0xB8B3, 0,0xDFB0,0xB8AB,0xDFB4,
-0xDFDA,0xB8B4, 0,0xB8AC,0xB8AE,0xB8B5,0xDFE0,0xDFD3,
-0xDFCE, 0, 0,0xDFBB,0xDFBA,0xB8AA,0xDFAC,0xB8A7,
-0xDFC4,0xDFAD,0xDFC2, 0, 0,0xDFB7,0xDFDB, 0,
- 0, 0,0xB8A6, 0, 0, 0,0xDFB3, 0,
- 0, 0, 0, 0, 0,0xDFAF,0xDFD5,0xDFAE,
-0xBB60,0xE3D3, 0, 0,0xE3C2, 0, 0,0xE3AC,
-0xE3CA,0xBB58,0xE3BB,0xE3C5,0xBB5B,0xE3BE,0xBB59,0xE3AF,
-0xE3CD,0xE3AE,0xE3C1, 0,0xE3AD, 0, 0,0xE3BF,
-0xE3C8,0xE3C6,0xE3BA,0xE3B5,0xE3B3, 0,0xE3B4,0xE3C7,
-0xE3D2,0xE3BC,0xBB5A, 0,0xE3B7, 0,0xE3CB, 0,
-0xBB5D,0xE3B6,0xE3B0,0xE3C0,0xBB61, 0, 0,0xBB55,
-0xBB5E,0xE3B8,0xE3B2, 0,0xBB57,0xDFD4,0xBB56,0xE3C3,
- 0,0xBB54,0xBB63,0xBB5C,0xE3C4,0xE3B9,0xE3B1,0xE3CC,
-0xE3BD,0xBB62,0xE3D0,0xBB5F,0xE3CF, 0,0xE3C9,0xE3CE,
- 0, 0, 0,0xE3D1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE773,
-0xE774,0xE767,0xE766,0xE762,0xBDB4, 0,0xBDAC,0xE776,
-0xE775,0xDFA9,0xE75F,0xE763,0xE75D, 0,0xE770,0xE761,
- 0,0xE777,0xE75A,0xE758,0xE764,0xE76E,0xE769,0xBDB6,
-0xE74F, 0,0xE76D, 0, 0, 0,0xBDB7,0xDFBD,
-0xE75B,0xE752,0xE755,0xE77B,0xE75C,0xE753,0xE751,0xE74E,
- 0,0xBDB0,0xE765,0xBDAF,0xBDB3,0xE760,0xE768,0xBDA9,
-0xE778,0xE77C,0xBDAB, 0,0xE757,0xE76B,0xE76F,0xE754,
-0xE779,0xBDB2, 0,0xBDB1,0xE74C,0xBDB5,0xE772,0xE756,
-0xE76A,0xE750,0xE75E,0xE759,0xBDAD,0xBDAE,0xE76C,0xE77D,
-0xE77A,0xE771, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE74D, 0,0xBDAA,0xEB49, 0,
-0xEB40,0xEB43, 0,0xBFBB,0xEB45,0xEAF9,0xEB41,0xEB47,
-0xBFB8,0xBFBC,0xBFB6, 0, 0,0xEAFB,0xEB4C, 0,
- 0,0xEB46, 0,0xEAFC,0xEB55,0xEB4F,0xEAF8,0xEE46,
-0xEAFE,0xBFB7, 0,0xEB4A, 0,0xEB54,0xBFBF, 0,
-0xEB51,0xEAFD,0xEB44,0xEB48,0xEB42,0xEB56,0xEB53,0xEB50,
-0xBFB9,0xBFBA,0xBFBE,0xEAFA,0xEB57,0xBFBD,0xEB4D, 0,
- 0,0xEB4B, 0, 0, 0,0xEB4E,0xEE53,0xEE40,
-0xEE45,0xEE52,0xEE44,0xEDFB,0xEE41, 0,0xC1A2, 0,
-0xEDF4,0xEE4D,0xEE4F,0xEDF3,0xC1A1,0xEE51,0xEE49,0xC1A8,
-0xEE50,0xEE42,0xC1AA,0xEDF9,0xEB52,0xEE4A,0xEE47,0xEDF5,
-0xEE55,0xC1A4, 0, 0,0xC1A5,0xEDF7,0xEE48, 0,
-0xEE54,0xEE4B,0xEDFD,0xC1A7,0xC1A3,0xEE4C,0xEDFE,0xEE56,
-0xEDF8,0xEE43,0xEE4E,0xEDFA,0xEDFC, 0,0xC2CB,0xEDF6,
-0xC1A9,0xC2C4,0xC17E, 0, 0, 0, 0,0xC1A6,
-0xC2C8,0xF0B3, 0,0xF0A9,0xF0A4,0xF0AA,0xF0B4,0xF0B8,
-0xF0B7,0xC2CA,0xC2C9, 0, 0,0xF0AB,0xF0B9,0xF0AE,
-0xF0A6, 0,0xF0A8,0xF0A7,0xF0AD,0xF0B2,0xF0A5,0xF0AC,
-0xF0B1,0xC2C7, 0,0xF0AF, 0,0xC2C5,0xF0B0,0xC2C3,
-0xC2C6,0xF2D5,0xF0B5, 0, 0,0xC3C2, 0,0xF2CD,
-0xF2D1,0xF2C9,0xF2CC, 0,0xF2D4,0xC3C0,0xF2D9,0xF2D2,
- 0,0xF2CA,0xF2DA,0xF2D3,0xC3C3,0xC3C4,0xF2D7, 0,
-0xF2CB,0xC3BF,0xC3C1,0xF2C6,0xF2CE,0xF2C8, 0,0xF2D8,
-0xF2D6,0xF2C7,0xF2CF, 0, 0, 0,0xF4BE,0xC3C5,
-0xF2D0,0xC4A7,0xC4A9,0xC4A6, 0,0xF4C3,0xF4BB,0xF4B9,
-0xF4BD,0xF4BA, 0, 0,0xF4BF,0xF4C1,0xC4AA,0xC4AC,
- 0,0xF4C0,0xC4AD,0xC4AB,0xF4C2, 0, 0, 0,
- 0,0xC4A8, 0, 0, 0, 0, 0,0xC4F4,
-0xF5F1,0xF5F7,0xC4F6,0xF4BC,0xF5F6, 0,0xF5FD,0xF5F4,
-0xF5FB,0xF5FA,0xF4B8,0xF5F5,0xF0B6,0xF5FE,0xF5F3,0xF5F8,
- 0,0xF5FC,0xF5F2, 0,0xF74A,0xC4F5,0xF5F9, 0,
- 0,0xF7F4,0xF74B,0xF749,0xF747,0xF748,0xF74C, 0,
-0xC5D9,0xF7F2,0xF7F0,0xF7F5,0xF7F3, 0,0xF7F6,0xC5DA,
-0xF7F1, 0, 0,0xF8BC, 0, 0,0xF945,0xF946,
-0xF947, 0, 0,0xF9C7,0xF9BD,0xCA4F,0xAAEA, 0,
-0xAD68, 0,0xD3B8,0xD3B7,0xB040,0xB342,0xD77C, 0,
- 0,0xD77B, 0,0xB5EA,0xB8B8, 0,0xB8B7,0xB8B9,
- 0,0xE3D4,0xE77E,0xEB58,0xEB5A,0xEB59, 0,0xC1AB,
-0xEE57,0xF0BA,0xF9A5,0xA6E4, 0,0xCDC9,0xCDCA,0xCDC8,
-0xCDC7,0xAAEB, 0,0xD0A9,0xD0A7, 0, 0,0xD0A6,
- 0,0xAD69,0xAD6B,0xAD6A,0xD0A8, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD3C4,0xD3C1,0xD3BF,
- 0, 0,0xB041,0xD3C2,0xB046,0xD3BC,0xD3CB, 0,
-0xD3CD,0xD3BD, 0,0xB043,0xD3CE,0xD3C9,0xD3BB,0xD3C0,
-0xD3CA,0xD3C6,0xD3C3, 0,0xB048,0xD3CC,0xD3BE, 0,
- 0,0xD3C7,0xD3B9,0xB047,0xB044,0xD3C5, 0,0xD3C8,
-0xD3BA,0xB045,0xB042, 0, 0, 0, 0,0xB34C,
-0xD7A5,0xB34B, 0,0xD7A8,0xD7AB,0xB348,0xB346,0xD77E,
-0xD7A9,0xD7A7,0xD7A4,0xD7AC,0xD7AD,0xD7AF,0xD7B0,0xD77D,
-0xB345,0xD7A2,0xD7A1,0xD7AE,0xB347,0xD7A3,0xB349,0xB344,
-0xD7A6,0xB34D, 0,0xB34A,0xD7AA, 0, 0, 0,
-0xB5F1,0xDBBF, 0,0xDBB4,0xB5EE, 0,0xDFE7,0xDBBD,
-0xDBB1,0xB5EC,0xDBB6,0xB5EF,0xDBBA,0xDBB8,0xB5F2,0xB5EB,
- 0, 0,0xDBB2,0xDBB5,0xB5F0, 0,0xDBB3, 0,
-0xDBBE,0xDBBC,0xDBB7,0xDBB9,0xDBBB,0xB5ED, 0, 0,
- 0, 0, 0, 0, 0,0xDFE8,0xDFEE,0xDFE4,
-0xDFEA,0xB8BA,0xDFE6,0xB8C0, 0, 0,0xB8BF, 0,
-0xB8BE,0xDFED,0xB8C1,0xB8C2,0xDFE3,0xDFF0,0xB8C3,0xB8BD,
-0xB8BC,0xDFEC,0xB8C4,0xDFE2,0xDFE5,0xDFEF,0xDFEB, 0,
- 0,0xE3F4,0xE3E9,0xB8BB, 0, 0, 0, 0,
-0xBB6A,0xE3DD,0xE3F2,0xE3DE,0xBB65, 0,0xE3DB, 0,
-0xE3E4,0xE3DC,0xBB67,0xE3D6,0xE3F1,0xBB68,0xE3EE,0xE3EF,
-0xE3D7,0xBB6D,0xE3E6, 0,0xE3E0,0xE3E7,0xE3DA, 0,
-0xE3F3,0xE3EB,0xE3E5,0xE3D5,0xBB69,0xE3EC, 0,0xBB6C,
-0xE3F0, 0,0xE3EA,0xBB66,0xE3E8, 0,0xE3E2,0xBB64,
-0xE3D9,0xE3E1,0xE3ED,0xE3DF, 0, 0,0xE3E3, 0,
- 0, 0, 0, 0,0xBDC1,0xDFE9,0xE7B2,0xE7BB,
-0xE7B1,0xE7AD,0xE7AA,0xBDC2,0xE7A8,0xBB6B,0xE7A1,0xBDC0,
-0xE7A7,0xBDBF,0xE7AC,0xE7A9,0xE7B9,0xE7B4,0xE7AE,0xE7B3,
-0xBDBB,0xE7AB,0xE7BE,0xE7A2,0xE7A3,0xE7BA,0xBDBC,0xE7BF,
-0xBDBE,0xE7C0,0xE7B0,0xE3D8,0xE7B6,0xE7AF,0xE7B8,0xE7B5,
- 0, 0, 0,0xE7A6,0xBDB9,0xE7BD,0xBDBA,0xE7A4,
-0xBDBD,0xEB64,0xE7B7,0xE7BC, 0, 0, 0, 0,
- 0,0xEB61,0xBDB8,0xBFC0,0xEB6B,0xEB67, 0,0xEB65,
-0xEB60,0xEB6F, 0, 0, 0,0xBFC4, 0,0xEB5C,
-0xEB68,0xEB69,0xEB5F,0xEB5E,0xEB6C, 0,0xEB62,0xEB5D,
-0xEB63, 0,0xEB6E,0xEB5B,0xEB6D,0xEB6A,0xBFC2,0xBFC1,
- 0, 0,0xBFC3,0xEB66,0xF0CB, 0, 0, 0,
- 0, 0,0xEE59,0xC1B1,0xEE5D,0xEE5A,0xEE61,0xEE67,
-0xEE5C, 0,0xEE70,0xC1AE,0xEE6A,0xEE5F,0xEE6B,0xEE66,
-0xEE6D,0xEE5E,0xC1B3,0xC1B2,0xEE60,0xEE6E,0xEE58,0xEE6C,
-0xC1AC, 0,0xEE64,0xEE63,0xEE68,0xEE5B,0xC1B0, 0,
-0xC1B4,0xEE62,0xEE69,0xC1B5,0xEE65, 0, 0, 0,
- 0,0xC1AD,0xC1AF,0xF0C7,0xF0C5, 0, 0,0xF0CC,
-0xF0C9,0xF0CD, 0,0xF0BE,0xF0C6,0xF0D1,0xEE6F,0xF0C2,
-0xC2CF,0xE7A5,0xF0BD,0xF0CA,0xF0C4,0xF0C1,0xF0BC,0xF0BB,
-0xF0D0, 0,0xF0C0,0xF0BF,0xC2CD,0xF0C8, 0,0xC2CC,
- 0, 0,0xC2CE,0xF0C3,0xF0CF, 0,0xF2DE,0xF2DF,
- 0,0xC3C9,0xF2DC,0xC3C6,0xF2E4, 0,0xC3CA,0xF2E6,
-0xF2DB,0xF0CE,0xF2E8,0xF2DD, 0,0xC3C7,0xF2E3, 0,
-0xF2E5,0xF2E0,0xF2E7,0xF2E2,0xF2E1,0xC3C8, 0, 0,
-0xF4C5,0xF4C6, 0,0xF4C8,0xC4AE,0xC4AF,0xF4C9,0xF4C7,
- 0,0xF4C4, 0,0xF642,0xF645,0xF641, 0,0xC4FA,
-0xF643,0xC4F9,0xC4F8,0xC4F7,0xF644,0xF751,0xF74F, 0,
-0xF74E,0xF640,0xF750,0xF646,0xF74D, 0,0xF7F9,0xF7D7,
-0xF7F7,0xC5DB,0xF7F8,0xF7FA, 0,0xF8BF,0xC5FA,0xF8BE,
-0xF8BD,0xC5FB, 0,0xC65A,0xF96E,0xF9A7,0xF9A6,0xF9A8,
-0xA6E5,0xD0AA, 0,0xD3CF,0xD3D0, 0, 0, 0,
-0xDBC0, 0,0xF647,0xF8C0,0xA6E6,0xAD6C,0xD0AB, 0,
- 0, 0,0xD7B1,0xB34E, 0,0xDBC2,0xDBC1,0xB5F3,
- 0,0xB8C5,0xE7C1,0xBDC3, 0,0xBDC4, 0, 0,
- 0,0xBFC5,0xC5FC,0xA6E7, 0, 0, 0,0xD0AC,
-0xAAED,0xD0AE,0xD0AD,0xAD6D, 0,0xD3D1, 0,0xD3D8,
-0xB049,0xD3D6,0xD3D4, 0,0xD3DB,0xD3D2,0xD3D3,0xB04A,
- 0,0xB04E, 0, 0,0xD3DC,0xB04D,0xD3DA,0xD3D7,
-0xD3D5,0xB04B,0xB04C,0xD3D9, 0, 0, 0, 0,
-0xB350,0xD7B2, 0,0xB355,0xD7C2,0xB354,0xD7C4, 0,
- 0,0xD7B8,0xB352,0xD7C3, 0,0xD7B3,0xB353,0xD7BF,
-0xD7BB,0xD7BD,0xD7B7,0xD7BE, 0, 0,0xB34F,0xD7BA,
- 0,0xD7B9,0xD7B5, 0,0xD7C0, 0, 0,0xD7BC,
-0xD7B4, 0,0xD7B6,0xB351,0xD7C1, 0, 0, 0,
- 0,0xB5F6,0xDBCD, 0, 0, 0,0xDBC9,0xDBCB,
-0xDBC6,0xDBC5,0xDBC3, 0,0xDBCA,0xDBCC,0xDBC8, 0,
-0xDBC7,0xB5F4,0xB5F5, 0, 0, 0, 0, 0,
- 0,0xDBCF,0xB8CD,0xDFF2,0xDFF8,0xDFF3,0xDFF4,0xF9D8,
-0xDFF9, 0,0xB8CF, 0,0xB8C7,0xB8CE,0xDFF1,0xDBC4,
-0xB8CA,0xB8C8,0xDFF7,0xDFF6,0xB8C9,0xB8CB,0xDFF5,0xB8C6,
- 0,0xB8CC, 0, 0, 0, 0, 0,0xE3F6,
-0xBB74, 0, 0,0xE442,0xE441, 0,0xE3FB,0xBB76,
-0xE440,0xE3F7,0xE3F8,0xBB6E,0xBB70, 0,0xE3FD,0xE3F5,
-0xBB72,0xBB71,0xE3F9,0xE3FE,0xE3FC,0xBB73,0xE3FA, 0,
- 0,0xDBCE,0xBB6F, 0, 0,0xE7C2,0xE7C9,0xBDC6,
- 0,0xE7CD,0xBDCA,0xE7C5,0xE7C3, 0,0xE7CC, 0,
-0xBDC5,0xE7CB,0xBDC7,0xBDC8,0xE7C4,0xBDC9,0xE7CA,0xE7C6,
-0xE7C7,0xE7C8,0xBB75, 0, 0, 0,0xEB70,0xEB7C,
- 0,0xBFCA,0xEB77,0xEB79, 0,0xBFC8,0xEB71,0xEB75,
- 0,0xEB78,0xBFC6,0xBFC9,0xEB7B,0xEB73,0xEB74,0xEB7A,
-0xEB72,0xEB76,0xBFC7,0xEE72, 0,0xEE71,0xC1B7,0xEE77,
-0xC1B9, 0, 0,0xC1B6,0xEE73,0xC1BA,0xEE74, 0,
- 0,0xEE75,0xEE78, 0,0xC1B8, 0,0xF0D6, 0,
- 0,0xF0D9, 0,0xF0D3,0xF0D5, 0, 0,0xF0D4,
-0xF0D7,0xF0D8,0xEE76,0xF0D2, 0, 0,0xC3CD,0xF2EC,
-0xF2EF,0xF2F1,0xF2EA,0xF2EB,0xF2EE,0xF2F0,0xC3CE,0xC3CC,
-0xC3CB,0xF2ED,0xF2E9,0xF4CA,0xC4B0, 0,0xF4CB, 0,
- 0,0xF649,0xC4FB,0xF64B,0xC4FC,0xF648,0xF64A,0xC5A8,
- 0,0xF752,0xC5A7,0xF7FD,0xF7FC, 0,0xF7FB, 0,
- 0,0xF948,0xF949,0xF94B,0xF94A, 0,0xCA50,0xA6E8,
- 0,0xAD6E,0xD7C5,0xB5F7, 0,0xDFFA,0xC2D0, 0,
-0xF2F2, 0, 0,0xA8A3, 0, 0, 0,0xB357,
- 0, 0, 0,0xB356, 0,0xDBD0,0xB5F8,0xDBD2,
-0xDBD1, 0, 0,0xDFFB,0xB8D0,0xE443,0xE446,0xE445,
- 0,0xE444,0xE7CE,0xE7D0,0xE7CF, 0,0xBFCC, 0,
- 0, 0,0xBFCB, 0,0xC1BB,0xEE79,0xEE7B,0xEE7A,
- 0, 0,0xC2D1, 0, 0, 0,0xF2F4,0xF2F3,
- 0,0xF4CC,0xC4B1, 0, 0,0xC4FD,0xF754,0xF753,
-0xC65B, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA8A4,0xD0AF,0xAD6F,0xD7C8,0xD7C6, 0,
- 0,0xD7C7,0xDBD4,0xDBD5,0xE043,0xDBD3, 0,0xDFFC,
-0xE041,0xE040,0xE042,0xB8D1,0xDFFE,0xDFFD,0xE044, 0,
-0xE449,0xE447, 0,0xE448,0xE7D3,0xE7D1, 0, 0,
-0xE7D2,0xEB7D,0xEE7C,0xEE7D,0xC2D2, 0,0xF2F5,0xF4CD,
-0xC4B2, 0,0xF64C,0xF755,0xC5A9, 0,0xF7FE,0xF94C,
-0xA8A5, 0,0xAD71,0xAD72,0xD0B0, 0, 0,0xD0B1,
-0xAD70, 0,0xB054, 0,0xB052, 0,0xB051,0xB058,
-0xB050,0xB059,0xD3DD,0xB056, 0,0xB053,0xB057,0xB055,
-0xB04F, 0, 0,0xB35F, 0,0xB359,0xD7CC,0xB35E,
- 0, 0,0xB360,0xB35A, 0,0xB35B, 0,0xD7CA,
- 0, 0,0xB358, 0,0xD7CB,0xB35D, 0, 0,
-0xD7C9,0xB35C, 0, 0,0xB644, 0,0xB646, 0,
- 0,0xDBD8,0xB645,0xB5F9,0xB5FD, 0,0xB8E4,0xE049,
-0xDBDA,0xB5FE, 0, 0,0xDBDD,0xDBDE,0xB643, 0,
-0xDBE0, 0,0xDBE2, 0,0xDBE3,0xDBD7,0xDBD6,0xDBE4,
-0xB642,0xDBE1,0xDBDF, 0,0xB640,0xB5FB,0xB647,0xDBDB,
-0xDBDC,0xDBD9, 0,0xB641, 0, 0,0xB5FC, 0,
-0xB5FA,0xE048,0xB8DF,0xB8DA, 0, 0,0xB8D5, 0,
-0xB8E5,0xB8D6, 0,0xB8D2,0xB8E1,0xB8DE,0xB8E0, 0,
-0xB8D7,0xB8DC,0xB8D3,0xB8D4,0xE050,0xE04D,0xE045,0xE04A,
- 0,0xB8E2,0xE051,0xB8E3,0xB8D9, 0, 0,0xE047,
- 0,0xE04F,0xE04B,0xE04E,0xE04C,0xB8DD,0xE046,0xB8D8,
- 0, 0, 0,0xE44C,0xBB78,0xBB7B, 0,0xE44E,
- 0,0xBBA5,0xE44D,0xBB7D, 0,0xBDCF,0xE44F, 0,
-0xBBA4,0xE44B,0xBBA6, 0, 0, 0,0xBB79, 0,
-0xB8DB,0xBB7C, 0,0xBB7A,0xBB7E,0xBBA2,0xBB77,0xBBA7,
-0xBBA3, 0,0xBBA1,0xE44A, 0, 0, 0, 0,
-0xBDD6, 0,0xBDD2, 0, 0, 0,0xBDD9, 0,
-0xE7D6,0xBDDA,0xE7E2,0xE7DB,0xBDCB,0xE7E3,0xE7DD,0xBDD5,
-0xE7DE, 0,0xBDD4,0xE7E1,0xBDCE,0xE7DF,0xE7D5,0xBDCD,
-0xEBAA,0xBDD3, 0,0xBDD0, 0,0xBDD8, 0,0xE7D4,
- 0,0xE7D8,0xBDCC,0xE7D7,0xE7D9,0xE7DA,0xBDD7,0xE7DC,
-0xE7E0,0xE7E4, 0,0xBDDB,0xBFD2,0xEBA5,0xEBAB,0xEBA8,
-0xEB7E,0xEBAC,0xEBA1, 0,0xEBA7, 0,0xBFCD,0xBFD3,
-0xEBAD, 0, 0,0xBFCF, 0,0xBFD9,0xBFD4,0xEBAF,
-0xEBA9,0xBFD0,0xEBA2,0xBFDA,0xEBA3,0xEBA4,0xBFDB,0xBFD8,
-0xBDD1, 0,0xBFCE,0xEBB0,0xBFDC, 0,0xBFD5,0xEBAE,
-0xBFD1,0xBFD6,0xBFD7, 0,0xC1C3,0xEEA4,0xEEAD,0xEEAA,
-0xEEAC, 0,0xC1C0,0xEEA5, 0,0xEEAB,0xC1BC,0xEEA7,
-0xC1C4,0xEEA3,0xEEA8,0xEEAF,0xEBA6,0xEEA9,0xEEA2,0xC1BD,
-0xEEA1,0xC1BE,0xEEB0,0xC1BF,0xEEAE,0xC1C2,0xEE7E, 0,
-0xC1C1, 0,0xEEA6,0xF0DC,0xF0EA,0xF0E5,0xF0E7,0xF0DB,
-0xC2D3, 0,0xF0DA,0xC2D6,0xC2D5, 0,0xF0E9,0xF0E1,
-0xF0DE,0xF0E4, 0,0xF0DD, 0,0xF0DF,0xF0E8,0xF0E6,
- 0,0xC2D4,0xF0ED,0xF0EB,0xF0E2,0xF0EC,0xF0E3, 0,
-0xF2F9,0xC3CF,0xF341, 0, 0,0xF64F,0xC3D6,0xF0E0,
-0xF2F7,0xC3D2,0xF2F8,0xF2FD, 0, 0,0xC3D4,0xC3D5,
-0xF2F6,0xF340,0xF342,0xF2FA,0xF2FC,0xF2FE,0xF2FB,0xF343,
-0xC3D1,0xC3D7,0xC3D3, 0,0xC3D0,0xF4D0, 0,0xC4B7,
-0xF4CE, 0, 0,0xF4D2, 0,0xF4D3,0xC4B5,0xF4D4,
-0xF4D1, 0,0xF4CF,0xC4B8,0xC4B4,0xF4D5, 0,0xC4B6,
-0xC4B3, 0, 0, 0,0xC4FE, 0, 0,0xC540,
-0xF64E,0xF64D,0xF650,0xF651, 0,0xC541,0xF756,0xF75B,
-0xC5AA, 0,0xF758, 0,0xF757,0xF75A,0xF759, 0,
-0xF843, 0,0xC5DC,0xF842,0xF840, 0,0xF841, 0,
- 0, 0,0xC5FE,0xC5FD,0xF8C1,0xF8C2,0xC640, 0,
-0xF94D,0xF94E,0xC667, 0,0xC66D, 0,0xF9A9,0xF9C8,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA8A6,
- 0,0xD7CD, 0,0xD7CE,0xE052,0xE450,0xE7E5,0xC1C6,
- 0,0xC1C5,0xF0EE,0xF344, 0,0xF844,0xA8A7,0xD3DE,
-0xB05A,0xB361,0xE054,0xE053,0xBDDC,0xE7E6,0xBDDD,0xEEB1,
-0xC2D7, 0, 0, 0,0xC676,0xA8A8,0xCDCB,0xD3DF,
- 0, 0,0xB362, 0,0xD7CF,0xD7D0, 0,0xDBE5,
- 0,0xB648,0xB8E6, 0,0xE056,0xE055,0xE057, 0,
-0xE451,0xE452,0xBBA8,0xBFDD,0xBDDE,0xBFDE, 0,0xEEB5,
-0xEEB2,0xEEB4,0xEEB3,0xC1C7, 0,0xF0EF,0xF346,0xF345,
-0xCBA4,0xB05C,0xB05B,0xD3E0, 0,0xD7D1, 0, 0,
-0xDBE7,0xDBE6,0xB649, 0,0xE059,0xE05A,0xE058, 0,
- 0,0xB8E8,0xB8E7, 0,0xBBAA,0xBBA9, 0,0xE7E7,
-0xEBB3,0xEBB1,0xEBB2,0xBFDF,0xEEB7,0xEEB6, 0,0xF0F2,
-0xF0F1,0xF0F0,0xF347, 0,0xF9AA,0xA8A9,0xAD73, 0,
-0xAD74,0xB05D,0xB05E,0xD3E2,0xD3E1,0xD7D2, 0,0xB368,
-0xB366,0xB363,0xB367,0xB365,0xB364, 0, 0,0xB64A,
-0xDBEA, 0,0xB8ED,0xB64C,0xB651,0xDBEC,0xB653,0xB652,
-0xB655,0xDBEB,0xDBE8,0xB64F,0xB64B,0xB64D,0xDBE9,0xB654,
-0xB650,0xB64E,0xB8EF,0xB8EE,0xB8EC,0xB8F0, 0,0xB8EA,
-0xB8EB, 0,0xB8E9, 0,0xE05B, 0, 0,0xE454,
- 0,0xBBAC,0xBBAD,0xBBAB, 0,0xE453, 0,0xE455,
- 0,0xE7EA,0xE7EC, 0,0xBDE7,0xE7ED,0xBDE0,0xE7E9,
-0xBDDF,0xBDE9,0xBDE5,0xBDE6,0xBDE2,0xE7E8,0xBDE1,0xE7EE,
-0xE7EB, 0,0xBDE8, 0,0xBDE3,0xBDE4,0xEBB5, 0,
-0xEBB7,0xEBB6, 0,0xEBB8,0xBFE0,0xEBB4, 0, 0,
-0xC1CB,0xEEB8,0xC1C8,0xC1CC,0xC1CA,0xC1C9,0xF0F3, 0,
-0xF0F6, 0,0xF0F5, 0,0xF0F4,0xC2D8,0xF348,0xF349,
-0xC3D8,0xF34A,0xC3D9, 0, 0,0xC4BA, 0,0xC4B9,
-0xF652, 0, 0,0xC542,0xF653,0xF75C,0xC5AB,0xC5AC,
- 0,0xF845, 0,0xC642, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA8AA, 0,0xB36A,0xB369,
-0xE05C,0xE05D, 0,0xBBAE,0xEBB9,0xBDEA,0xEBBA,0xEEB9,
-0xA8AB, 0,0xD0B2,0xAD76,0xAD75, 0,0xD3E3,0xB05F,
-0xD3E4,0xD7D5, 0,0xD7D4, 0,0xD7D3, 0, 0,
-0xDBEE,0xB658, 0, 0,0xDBED,0xB657, 0, 0,
- 0,0xDBEF,0xB656, 0,0xE05F,0xE062,0xE060,0xE061,
-0xE065,0xE05E,0xE066,0xE063,0xE064,0xBBB0,0xE456, 0,
- 0,0xBBAF, 0,0xE7F2,0xE7F0, 0, 0,0xBDEB,
-0xE7EF,0xE7F1, 0,0xBDEC, 0,0xEBBB, 0,0xEBBC,
-0xC1CD, 0,0xF34C,0xF34E,0xF34B,0xF34D,0xF4D6,0xF654,
- 0, 0,0xF96F,0xA8AC,0xAD77,0xD3E5,0xD3E7,0xD3E6,
- 0,0xD7D8,0xB36C, 0,0xD7D6, 0,0xB36B,0xD7D9,
- 0,0xD7DA,0xD7D7, 0, 0,0xDBFB,0xB660,0xDBF3,
-0xDBF9, 0, 0,0xB65B,0xB65E,0xDBF2,0xB659,0xDBF6,
-0xE06C,0xB65D, 0,0xDBF1, 0,0xDBF7,0xDBF4,0xDBFA,
-0xDBF0,0xDBF8,0xB65C,0xB65F,0xDBF5,0xB65A, 0,0xB8F2,
-0xE068,0xB8F1,0xE06F,0xE06E,0xB8F8, 0,0xB8F9,0xE070,
-0xB8F3,0xE06D,0xB8F7,0xE072,0xE069, 0,0xE06B,0xB8F4,
-0xE067,0xE06A,0xE071,0xB8F5,0xE073, 0, 0, 0,
- 0, 0,0xB8F6, 0,0xBBB1,0xE45B,0xE461,0xE459,
-0xE462, 0,0xE458,0xE45D,0xE463,0xE460,0xE45F,0xE45E,
- 0,0xE457,0xE45C, 0, 0,0xE45A, 0,0xBDF1,
-0xBDEE,0xE7FB,0xE841,0xE843,0xE840,0xE7F8,0xE7FA,0xE845,
-0xE842,0xE7FC,0xE846,0xE7F9,0xE844,0xBDEF,0xBDF5,0xBDF3,
-0xE7F3,0xBDF4,0xBDF0,0xE7F4,0xE7F6,0xE7F5,0xE7FD,0xE7FE,
- 0,0xBDF2, 0,0xBDED, 0, 0,0xE7F7, 0,
-0xEBC6,0xBFE2, 0,0xEBBD,0xBFE3,0xBFE6,0xEBC2, 0,
-0xEBBF,0xBFE5, 0, 0,0xEBC3,0xEBC4,0xEBBE,0xEBC7,
-0xEBC0,0xEBC5,0xBFE4, 0,0xBFE1,0xEBC1, 0,0xEEBF,
-0xC1D0,0xC1CE,0xC1D1,0xC1CF,0xEEBE,0xEEBB,0xEEBA, 0,
-0xEEBD, 0, 0,0xEEBC,0xF145,0xC2DE,0xF0FB,0xF0FA,
- 0,0xC2D9,0xF141,0xF140,0xF0F7,0xF143,0xF0FC,0xC2DD,
-0xF0F9,0xF142,0xF0F8,0xC2DA,0xC2DC,0xF0FD,0xC2DB,0xF0FE,
- 0,0xF144,0xF352, 0,0xC3DE,0xF34F, 0,0xF353,
- 0, 0,0xC3DB,0xF351,0xC3E0, 0,0xC3DD, 0,
-0xF350, 0,0xC3DF,0xF354,0xC3DA, 0, 0, 0,
- 0,0xC4BC,0xC4BE, 0,0xF4D9,0xC4BD,0xF4D7,0xC3DC,
-0xF4D8,0xC4BB,0xC543,0xC545,0xF656,0xC544,0xF655, 0,
-0xF761,0xC5AD,0xF760,0xC5AE,0xF75E,0xF75D,0xF762,0xF763,
-0xF846, 0,0xF75F, 0, 0,0xF8C6,0xF8C3,0xF8C4,
-0xF8C5,0xC65C, 0,0xF951,0xF950,0xF94F,0xF970, 0,
-0xF9BE,0xF9AB,0xC66E,0xA8AD,0xB060, 0, 0, 0,
- 0, 0,0xB8FA, 0, 0, 0, 0, 0,
- 0, 0,0xBDF6, 0, 0,0xEBC8, 0, 0,
-0xC2DF, 0,0xF355, 0, 0, 0, 0, 0,
- 0,0xF9AC,0xA8AE,0xAAEE,0xAD79,0xAD78, 0,0xB063,
- 0,0xD3E8,0xB061,0xD3E9,0xB062, 0, 0,0xD7DF,
-0xD7DB, 0, 0,0xB36D,0xD7DE,0xD7DD,0xD7DC,0xB36E,
-0xD7E0,0xD7E1, 0, 0, 0,0xDC43,0xDC41,0xDC45,
-0xDC46,0xDC4C, 0,0xDC48,0xDC4A, 0,0xDC42,0xDBFC,
- 0,0xDC49, 0, 0,0xDC4B,0xDC44,0xDC47,0xDBFD,
-0xB662,0xDC40,0xDBFE,0xB661,0xB663, 0,0xB8FD,0xE075,
-0xE077,0xE076,0xE07B,0xB8FB, 0,0xE078,0xE074,0xE079,
-0xE07A,0xB8FC,0xB8FE,0xE07C, 0,0xE467,0xE466, 0,
-0xE464,0xE465,0xBBB3,0xBBB5,0xBBB2,0xBBB4,0xE84D,0xE84E,
-0xE849, 0,0xE84A,0xBDF8,0xBDFD,0xBDF7,0xBDFE,0xBDF9,
-0xE84B, 0, 0,0xE84C,0xE848,0xBE40,0xBDFB, 0,
- 0,0xBDFA,0xBDFC, 0,0xE847, 0,0xEBCA,0xBFE8,
- 0, 0,0xEBCC,0xBFEA,0xEBCF,0xEBCB,0xEBC9,0xEBCE,
-0xBFE9,0xEBCD, 0,0xBFE7, 0, 0,0xC1D3,0xC1D6,
-0xEEC1, 0,0xC1D4,0xEEC0,0xC1D2,0xC1D5,0xF146,0xF147,
-0xF148,0xC2E0, 0,0xF149, 0,0xC2E1,0xC3E2,0xF358,
-0xF359,0xF357,0xF356,0xF35A,0xC3E1,0xF4DD,0xF4DB,0xF4DC,
-0xF4DE,0xF4DA,0xF4DF,0xF658, 0,0xF659,0xF657,0xC546,
-0xF764,0xC5AF,0xF765,0xF848,0xF847, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA8AF,0xB664, 0, 0,0xB940,
- 0, 0, 0,0xBBB6, 0, 0,0xBFEC, 0,
-0xBFEB, 0, 0, 0, 0,0xC3E3,0xC47C,0xC547,
-0xA8B0,0xB064,0xB941, 0,0xF35B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCBA6,
- 0, 0,0xA8B1, 0,0xA8B4,0xA8B3,0xA8B2, 0,
- 0,0xCBA5, 0,0xCDCD, 0,0xCDCF,0xAAEF, 0,
- 0,0xAAF1,0xCDCC,0xCDCE,0xAAF0,0xCDD1,0xCDD0,0xCDD2,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD0B6,0xD0B4,0xAD7C,0xD0B3,0xADA3,0xAD7E,0xAD7B, 0,
-0xADA4, 0,0xAD7D,0xADA2, 0,0xADA1,0xD0B5, 0,
-0xAD7A, 0, 0, 0,0xB06A,0xD3EB,0xD3F1,0xB067,
-0xB06E, 0,0xB069,0xD3EE,0xD3F0,0xB06C,0xD3EA,0xD3ED,
-0xB068,0xB065,0xD3EC,0xB06B,0xD3EF,0xB06D,0xB066, 0,
- 0, 0, 0,0xD7E3,0xD7E6,0xB370, 0,0xB37A,
-0xB376,0xD7E4, 0, 0,0xB37E,0xB377,0xB37C,0xB372,
- 0,0xB36F,0xB371,0xB37D,0xD7E5,0xB375,0xB378,0xB374,
-0xB379,0xD7E7,0xB37B,0xB373,0xD7E2, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDC4D,0xB665,0xDC4F,
- 0,0xB667,0xB669, 0,0xDC4E,0xB666,0xB66A, 0,
-0xB668, 0, 0, 0,0xB947,0xE0A3,0xB94F,0xE07E,
- 0,0xB950,0xB945, 0,0xE0A1, 0, 0,0xB94A,
- 0,0xE0A2,0xB943,0xB942, 0,0xB94D,0xB94C,0xB94B,
-0xB949,0xB94E,0xE07D,0xB944,0xB946,0xB948, 0, 0,
-0xBBB8,0xBBBB, 0,0xBBBF,0xBBB9,0xBBBE,0xBBBC, 0,
-0xBBB7, 0,0xBBBD,0xBBBA, 0, 0, 0,0xE852,
-0xBE43,0xBE41, 0,0xE853, 0,0xBE44,0xBE42,0xE851,
-0xE850, 0,0xBFF0,0xE84F,0xBFEE,0xBFED,0xEBD0,0xBE45,
-0xBFEF,0xEBD1,0xBFF2,0xEBD2,0xBFF1,0xC1D8,0xEEC3,0xC1D7,
-0xC1DC,0xC1DA,0xC1DB,0xC2E3,0xC1D9,0xEEC2,0xEBD3,0xC2E2,
-0xC2E4, 0,0xC3E4,0xC3E5, 0,0xF4E0, 0,0xC5DE,
-0xC5DD,0xA8B6, 0, 0,0xCA55,0xB06F, 0,0xCA52,
-0xCA53,0xCA51, 0,0xCA54, 0, 0,0xCBAA,0xCBA7,
-0xCBAC,0xCBA8,0xA8B7,0xA8BA, 0,0xCBA9,0xA8B9,0xCBAB,
- 0, 0,0xA8B8, 0, 0, 0, 0,0xCDD5,
-0xCDD7,0xAAF4,0xCDD3,0xCDD6,0xCDD4,0xAAF2,0xAAF5, 0,
-0xAAF3, 0, 0, 0, 0,0xD0B8,0xD0BC,0xD0B9,
- 0,0xADA7, 0,0xADA8, 0,0xD0BB, 0,0xD0BD,
-0xD0BF, 0,0xADA5,0xD0BE, 0, 0,0xADA6, 0,
- 0, 0, 0, 0,0xD7EE,0xD0BA,0xD3F2,0xD3FB,
-0xD3F9,0xD3F4,0xD3F5,0xD3FA,0xD3FC,0xB071, 0,0xD3F7,
-0xD3F3,0xB070,0xB072,0xD3F6,0xD3FD,0xD3F8, 0, 0,
-0xB3A1,0xD7F1,0xD7E9,0xD7EF,0xD7F0,0xB3A2, 0,0xD7E8,
-0xD7EA,0xD0B7,0xD7EC,0xD7ED,0xD7EB,0xB66C, 0, 0,
- 0,0xDC56,0xEBD4,0xDC57,0xDC54,0xB3A3,0xB66E,0xDC53,
-0xDC59,0xDC58,0xB66B,0xDC5C,0xDC52,0xDC5B,0xDC50,0xDC5A,
-0xDC55,0xB66D, 0,0xE0AA, 0,0xE0A5,0xE0AB,0xE0A6,
-0xE0A4,0xE0A7,0xB951, 0,0xE0A9, 0,0xE0A8,0xB952,
-0xBBC1,0xBBC0,0xE46E,0xE471,0xE469,0xE46D,0xBBC2,0xE46C,
-0xE46A,0xE470,0xE46B,0xE468,0xE46F, 0,0xE859,0xBE48,
-0xF14A,0xE856,0xE857,0xE855,0xDC51,0xBE47,0xE85A,0xE854,
-0xBE46,0xBE49,0xE858,0xEBD5,0xBFF3,0xEBD6,0xEBD7, 0,
-0xEEC4,0xC1DD,0xF14B,0xF14C, 0, 0,0xF14D,0xF35D,
-0xF35C,0xF4E2, 0,0xF4E1,0xF65B,0xF65C,0xF65A,0xF766,
-0xC5B0,0xA8BB,0xADAA,0xADA9,0xB075,0xB074,0xD440,0xD441,
-0xD3FE, 0,0xB073,0xD7F5, 0,0xD7F6,0xD7F2,0xB3A4,
-0xD7F3, 0,0xD7F4, 0, 0, 0, 0,0xDC5F,
-0xDC61,0xDC5D,0xDC60,0xB66F,0xDC5E,0xB670, 0, 0,
-0xDD73,0xB955,0xB954, 0,0xB953, 0,0xE0AC,0xE0AD,
- 0, 0,0xE473,0xE475,0xBBC6,0xBBC3, 0,0xBBC5,
-0xBBC4,0xE474,0xE472, 0, 0, 0, 0, 0,
-0xE861,0xE85E,0xE85F,0xBE4D,0xE860,0xE85B,0xE85C,0xBE4A,
- 0,0xBE4B,0xE85D,0xBE4C, 0,0xEBDB, 0,0xEBDC,
-0xEBD9,0xEBDA,0xBFF4,0xEBD8, 0, 0, 0, 0,
- 0,0xEEC8,0xEEC5,0xEEC7,0xC1E0,0xEECB,0xC1DF,0xEEC9,
-0xEECC,0xEECA,0xEEC6,0xC1DE, 0,0xF14F, 0,0xF150,
-0xF14E, 0,0xF152,0xC2E5,0xC2E6,0xF35F,0xC3E7,0xF151,
-0xF35E,0xC3E6,0xF4E5,0xF4E6,0xC4BF,0xF4E4, 0,0xF4E3,
- 0,0xF65D,0xC548, 0,0xF849,0xF8C8,0xF8C7, 0,
-0xC643,0xC65D,0xF8C9,0xF971, 0,0xC66F,0xA8BC,0xAAF6,
- 0,0xB956, 0,0xC4C0,0xA8BD,0xADAB,0xB3A5,0xB671,
-0xC2E7,0xAAF7, 0,0xD0C1,0xD0C0,0xD442, 0,0xB078,
-0xB076,0xB07A,0xD444, 0,0xB079,0xB077, 0, 0,
- 0, 0,0xD443,0xB3A8,0xD7FC, 0,0xB3A7,0xB3A9,
-0xD842,0xB3AB,0xD7FE,0xD840,0xD7F7,0xB3AA,0xD843, 0,
- 0,0xD7F9, 0,0xD7FA,0xD7F8,0xB3A6, 0,0xD841,
-0xD7FB,0xD7FD, 0, 0, 0,0xDC6D, 0,0xDC6C,
-0xDC6A,0xDC62,0xDC71,0xDC65,0xDC6F,0xDC76,0xDC6E,0xB679,
- 0,0xB675,0xDC63, 0,0xDC69,0xB677, 0,0xDC68,
-0xB678,0xB67A,0xDC6B, 0,0xB672,0xB673,0xDC77,0xDC75,
- 0,0xDC74,0xDC66, 0,0xDC72, 0,0xB676, 0,
- 0, 0, 0,0xB674,0xDC73,0xDC64,0xDC67,0xDC70,
- 0, 0, 0, 0, 0,0xE4BA,0xE0B7, 0,
-0xE0B0,0xE0C3,0xE0CC,0xE0B3,0xB961, 0,0xE0C0,0xB957,
-0xB959,0xB965,0xE0B1, 0, 0,0xB95A,0xB95C,0xB966,
-0xB95B, 0, 0, 0, 0,0xB964,0xE0B9, 0,
-0xE0AE,0xB962,0xE0B8,0xB95E,0xE0CA,0xB963,0xE0C8,0xE0BC,
-0xE0C6,0xB960,0xE0AF,0xE0C9,0xE0C4, 0,0xE0CB,0xB958,
- 0, 0,0xB967,0xB95D, 0, 0,0xE0B5, 0,
-0xE0BD,0xE0C1, 0,0xE0C5,0xB95F,0xE0B4,0xE0B2,0xE0BE,
- 0, 0, 0, 0,0xE0BB,0xE0BA, 0,0xE0BF,
-0xE0C2, 0,0xE0C7, 0, 0, 0,0xE478, 0,
-0xBBC7,0xE4A4,0xE47A,0xBBCC,0xBBD0,0xE4AD,0xE4B5,0xE4A6,
-0xBBC8, 0,0xE4AA,0xE0B6, 0,0xBBC9,0xE4B1,0xE4B6,
-0xE4AE, 0,0xE4B0,0xE4B9,0xE4B2,0xE47E,0xE4A9, 0,
- 0,0xBBD1, 0,0xBBCD,0xE47C,0xE4AB,0xBBCB,0xE4A5,
-0xBBCA,0xE4B3,0xE4A2,0xE479,0xBBCE,0xE4B8, 0, 0,
-0xE47B,0xE4AF,0xE4AC,0xE4A7,0xE477,0xE476,0xE4A1,0xE4B4,
-0xBBCF,0xE4B7,0xE47D,0xE4A3,0xBE52, 0, 0, 0,
- 0, 0,0xBE5A,0xBE55,0xE8A4,0xE8A1,0xE867,0xBE50,
- 0,0xF9D7, 0,0xBE4F,0xBE56, 0, 0, 0,
-0xE865,0xBE54,0xE871,0xE863,0xE864,0xBE4E,0xE8A3,0xBE58,
-0xE874,0xE879,0xE873,0xEBEE,0xE86F,0xE877,0xE875,0xE868,
-0xE862,0xE87D,0xBE57,0xE87E, 0,0xE878, 0,0xE86D,
-0xE86B,0xE866, 0, 0, 0,0xE86E,0xE87B,0xE86A,
-0xE87A,0xE8A2, 0, 0,0xBE53, 0,0xE876,0xE87C,
-0xE872,0xE86C,0xBE51, 0, 0, 0,0xE4A8,0xE870,
-0xBE59,0xE869, 0, 0, 0, 0, 0,0xEBF4,
-0xBFF7,0xEBF3,0xEBF0,0xEC44,0xBFFB, 0,0xEC41,0xEBF8,
-0xEC43,0xEBE9,0xEBF6, 0,0xBFFD, 0,0xEBE1, 0,
-0xEBDF,0xEC42, 0,0xEC40,0xEBFE,0xEBED,0xEBEC,0xEBE2,
-0xC040, 0,0xEBE8,0xEBF2,0xEBFD,0xC043,0xEC45, 0,
-0xC1E8,0xC045,0xBFFE,0xEBE6, 0,0xEBEF,0xEBDE,0xEBE0,
-0xBFF5,0xC042,0xBFFA,0xEBE7,0xEBF7,0xEBF1,0xC041,0xEBDD,
-0xC1E3,0xEBF9,0xEBFC,0xBFFC, 0,0xEBEB,0xC044,0xBFF9,
- 0, 0, 0,0xBFF8,0xEBF5,0xEBFB,0xBFF6, 0,
-0xEBE4,0xEBFA, 0, 0,0xEBE5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xEBEA,0xEED2,
- 0,0xEED7,0xC1E5,0xC1E7,0xEEDD,0xC1E1,0xEEEC,0xEEE3,
-0xEED8,0xEED9,0xEEE2, 0,0xC1EE,0xEEE1,0xEED1,0xEEE0,
-0xEED4,0xEEED,0xC1ED,0xC1EB,0xEED5, 0,0xEEE8, 0,
-0xEEDA,0xEEE7, 0,0xEEE9,0xEED0,0xC1E6, 0,0xEEEA,
- 0, 0,0xEEDE, 0,0xC1EA,0xEEDB, 0, 0,
-0xC1EC,0xEEE4, 0, 0, 0,0xC1E4,0xEED6,0xEEE5,
- 0,0xEEDF,0xEBE3,0xEEE6,0xEED3, 0,0xC1E9, 0,
-0xEEEB, 0,0xC1E2,0xEECE, 0, 0, 0, 0,
-0xF160,0xF159,0xC2E9, 0,0xF154,0xF163,0xF15B,0xEEDC,
- 0,0xF165,0xF155, 0,0xC2E8,0xF15F,0xC2EA,0xC2F2,
-0xC2F0,0xF161,0xC2F1,0xF157, 0,0xF158,0xF15D,0xF162,
- 0,0xEECD,0xC2EB,0xF16A,0xF167,0xF16B,0xF15E,0xF15A,
-0xF168,0xF36A,0xF15C, 0,0xC2EE, 0,0xC2ED,0xEECF,
-0xC2EF,0xF164,0xF166,0xC2EC,0xF169,0xF153, 0,0xF156,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF373, 0,0xF363,0xC3EB,0xF371, 0, 0,0xF361,
-0xC3EC, 0,0xF36C, 0,0xF368,0xC3F1,0xF372,0xF362,
-0xF365,0xC3E9,0xF374, 0,0xF36D,0xF370,0xC3EF,0xC3F4,
-0xC3F2,0xF369,0xF364, 0,0xC3ED,0xC3EE,0xF360,0xC3EA,
- 0,0xC3E8,0xC3F0,0xF36F,0xC3F3, 0,0xF36B,0xF375,
-0xC3F5, 0, 0, 0,0xF367, 0,0xF36E, 0,
- 0, 0, 0, 0, 0,0xF4F3,0xF542,0xF4F5,
-0xF4FC,0xF366,0xF4FA,0xF4E9,0xF540,0xC4C3,0xF4ED,0xF4FE,
-0xF4F4, 0, 0,0xC4C2, 0, 0,0xF544,0xF4F6,
- 0,0xF4FB,0xF4FD,0xF4E7,0xF541,0xF4F2,0xF4F7,0xF4EB,
-0xF4EF,0xF543,0xF4F9,0xF4E8,0xF4EC,0xF4EE,0xF4F8, 0,
-0xC4C1,0xF4F1, 0, 0, 0, 0, 0, 0,
-0xF4EA, 0, 0, 0, 0, 0, 0, 0,
-0xF4F0,0xF661,0xF666,0xC54F,0xF668, 0,0xC549, 0,
-0xF664,0xF66A,0xC54E,0xC54A, 0,0xC54B,0xF660,0xF667,
-0xC54D,0xF665,0xC54C,0xF65F,0xF663,0xF662, 0,0xF65E,
-0xF669, 0, 0, 0,0xC5B1,0xF76D,0xF770,0xF76C,
-0xF76E,0xF76F,0xF769,0xF76A,0xF767, 0, 0,0xF76B,
-0xF768,0xC5B2,0xC5B3, 0, 0,0xF84B, 0,0xF84D,
- 0, 0, 0, 0, 0,0xF84C,0xF84E, 0,
-0xC5E0, 0,0xF84A,0xC5DF,0xC5E1, 0, 0, 0,
-0xF8CB,0xF8CC,0xC644,0xF8CA, 0,0xF953,0xF952,0xF954,
-0xC65F,0xF955,0xC65E,0xF956,0xF972,0xF975,0xF974,0xC668,
-0xF973, 0, 0, 0,0xC672,0xC670,0xC671,0xC677,
-0xF9C0,0xF9C1,0xF9BF,0xF9C9};
-
-/* page 8 0x9577-0x9FA4 */
-static uint16 tab_uni_big58[]={
-0xAAF8, 0, 0,0xD844,0xDC78,0xE8A5,0xF376, 0,
- 0,0xAAF9, 0,0xADAC,0xB07B, 0, 0,0xD845,
- 0,0xD846,0xB3AC, 0,0xB67D,0xDC7A,0xDC79,0xB6A3,
-0xB67C,0xDC7B,0xB67E,0xB6A2,0xB6A1,0xB67B, 0, 0,
- 0,0xB968, 0, 0,0xE0D0,0xE0CE, 0,0xE0CF,
-0xE0CD, 0,0xBBD2, 0,0xBBD5,0xBBD7,0xBBD6, 0,
- 0,0xBBD3,0xBBD4, 0,0xE8A7,0xE8A6,0xBE5B,0xE8A8,
- 0,0xE8A9,0xBE5C, 0, 0, 0,0xEC4D,0xEC4B,
-0xEEF3, 0,0xEC49,0xEC4A,0xC046,0xEC46,0xEC4E,0xEC48,
-0xEC4C,0xEEEF, 0, 0,0xEEF1, 0,0xEEF2,0xC1F3,
-0xEEEE,0xC1F2,0xEEF0,0xC1EF,0xC1F0,0xC1F1,0xEC47, 0,
- 0,0xC2F5,0xF16E,0xF16C,0xF16D,0xC2F3,0xC2F6,0xC2F4,
- 0, 0, 0,0xF377,0xF378,0xC3F6, 0,0xF545,
-0xF547,0xF546,0xC4C4,0xC550,0xF66D,0xF66C,0xF66B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xAAFA, 0,0xC9AA,
- 0,0xCA58,0xA6E9,0xCA56,0xCA59,0xCA57, 0, 0,
- 0,0xCBAE, 0,0xA8C1, 0,0xA8C2,0xCBB0,0xA8BF,
-0xCBAF,0xCBAD,0xA8C0,0xA8BE, 0, 0, 0, 0,
- 0, 0,0xCDD8,0xCDDB,0xAAFD,0xCDDA,0xCDD9, 0,
-0xAAFC,0xAAFB, 0,0xAB40,0xCDDC,0xAAFE, 0, 0,
- 0, 0, 0,0xD0C6,0xADAE,0xADAF,0xADB0,0xD0C7,
-0xD0C3,0xADAD,0xD0C4, 0,0xD0C5,0xD0C2, 0, 0,
- 0,0xB0A4, 0, 0,0xB0A1,0xD445,0xB0A2,0xB0A5,
-0xD446, 0,0xB07E,0xB07C,0xB07D,0xB0A3, 0, 0,
- 0, 0, 0,0xB3AD,0xD849,0xB3B5,0xD848, 0,
-0xD84B,0xB3B1,0xD84A,0xB6AB,0xB3AF,0xB3B2,0xB3AE,0xB3B3,
-0xB3B4,0xB3B0, 0, 0, 0,0xD847,0xB6A7,0xDC7D,
- 0,0xDCA3, 0, 0,0xDCA2,0xB6AC,0xB6A8,0xB6A9,
-0xDC7C,0xDC7E,0xDCA1,0xB6A4,0xB6A6, 0,0xB6AA,0xB6A5,
- 0, 0,0xE0D3,0xE0D1,0xE0D2,0xB96A,0xB96B, 0,
-0xE0D4,0xB969,0xBBD8, 0,0xBBDA,0xBBD9, 0,0xE4BB,
- 0, 0,0xE4BC,0xE8AB, 0,0xE8AA, 0, 0,
-0xC047,0xC048,0xEC4F,0xC049, 0,0xEEF6, 0,0xEEF4,
- 0,0xEEF5,0xC1F4, 0,0xF16F,0xC3F7, 0, 0,
- 0,0xC1F5,0xAB41, 0,0xB0A6,0xD447, 0, 0,
-0xD84C,0xB3B6,0xB6AD,0xDCA4,0xDCA6,0xB6AF,0xB6AE,0xB6B0,
-0xB6B1,0xDCA5,0xB96E,0xB96F,0xB96D,0xBBDB,0xB96C,0xE0D5,
- 0, 0, 0,0xBBDC,0xE8AC,0xEC50,0xC04A,0xC1F6,
-0xF170,0xF174,0xC2F9,0xF171,0xC2FA,0xC2F8,0xF175,0xC2FB,
-0xF173, 0,0xF379,0xC2F7,0xC3F8, 0,0xF8CD, 0,
- 0,0xAB42,0xB3B8,0xB3B7, 0, 0, 0, 0,
-0xB6B2,0xDCA8,0xDCA7,0xB6B3, 0, 0,0xE0D9,0xB973,
-0xB970,0xE0D8,0xB972,0xE0D6,0xB971, 0,0xE0D7, 0,
-0xE4BD,0xBBDD, 0,0xE8AF, 0,0xBE5D,0xE8AD,0xBE5E,
-0xBE5F,0xE8AE,0xBE60, 0,0xEC51, 0,0xC04E,0xC04B,
-0xC050,0xEC53,0xC04C,0xEC52,0xC04F, 0, 0,0xC04D,
- 0,0xEEF9,0xEEFB, 0, 0,0xC1F7,0xEEFA,0xC1F8,
-0xEEF8,0xEEF7, 0,0xF177,0xF176,0xC2FC,0xF178,0xF37E,
-0xC3FA,0xF37D,0xF37A,0xC3F9,0xF37B,0xF37C, 0,0xF548,
-0xF549,0xC4C5, 0,0xC553, 0, 0,0xF66E, 0,
- 0,0xC551,0xC552,0xF66F, 0, 0,0xC5B4,0xC5B5,
-0xF771, 0, 0,0xC645,0xF8CF,0xC647, 0,0xF8CE,
-0xF8D0,0xC646,0xF957, 0,0xF9AD, 0, 0, 0,
- 0, 0, 0,0xAB43, 0, 0, 0,0xB974,
- 0,0xE4BE, 0,0xE8B0,0xC051,0xC052, 0,0xAB44,
- 0,0xBE61,0xC3FB,0xADB1, 0, 0, 0,0xC053,
- 0,0xC5E2,0xADB2,0xD84D, 0,0xDCA9, 0,0xDCAB,
- 0,0xDCAA, 0,0xE0DD,0xE0DA,0xB975, 0,0xB976,
-0xE0DB,0xE0DC, 0,0xE4C0,0xE4C5,0xBBDE,0xE4BF,0xE4C1,
-0xE4C8,0xE4C3,0xE4C7,0xE4C4,0xE4C2,0xE4C6,0xBBDF, 0,
- 0,0xE8B3, 0,0xE8B1,0xBE63, 0,0xBE62,0xE8B2,
-0xBE64, 0, 0, 0, 0,0xEC56, 0, 0,
-0xEC55,0xC054,0xEC54,0xEEFC, 0,0xEEFE,0xEF41,0xEF40,
- 0,0xC1F9,0xEEFD,0xF1A1,0xC2FD,0xF17D,0xF1A2,0xC2FE,
- 0,0xF17B, 0,0xF17E,0xF17C,0xF179,0xC340,0xF17A,
- 0, 0, 0, 0,0xF3A1, 0, 0,0xF3A3,
-0xF3A2, 0,0xF54A, 0,0xF54B, 0, 0, 0,
-0xF670, 0,0xC5B7, 0,0xC5B6,0xF84F,0xF850,0xC648,
-0xF8D1, 0,0xC669, 0,0xADB3,0xB6B4,0xE4CA,0xE4C9,
-0xE8B5,0xE8B4, 0, 0,0xC1FA,0xEF43,0xEF42,0xF1A5,
-0xF1A3,0xF1A6,0xF1A4, 0, 0,0xC3FC,0xF3A4,0xF3A5,
-0xF3A6, 0,0xF671, 0,0xF772, 0,0xF8D2, 0,
- 0, 0, 0, 0, 0, 0,0xADB4, 0,
- 0,0xEC57,0xEF44, 0,0xADB5, 0, 0,0xBBE0,
- 0,0xEC58,0xC341,0xF1A7,0xC3FD, 0,0xF54C,0xF54D,
-0xC554,0xF851,0xADB6,0xB3BB,0xB3BC,0xD84E,0xB6B5,0xB6B6,
-0xDCAC,0xB6B7, 0,0xB97A, 0,0xB97C,0xE0DF,0xE0E0,
-0xE0DE,0xB977,0xB978,0xB97B,0xB979, 0, 0,0xE4CB,
-0xBBE1,0xBBE2, 0, 0,0xE8BC,0xBE67,0xE8B7,0xE8B6,
- 0,0xE8BB,0xBE65, 0, 0,0xC05B, 0,0xE8B8,
-0xE8BD,0xE8BA,0xE8B9, 0,0xBE66, 0,0xC059, 0,
-0xEC5A,0xC055, 0,0xEC5B, 0, 0,0xEC59, 0,
-0xC058,0xC056,0xC05A, 0,0xC057, 0, 0, 0,
- 0, 0,0xEF45, 0,0xEF4A,0xEF46,0xEF49,0xC1FB,
- 0,0xEDD4,0xEF48,0xEF47, 0,0xC344,0xC342,0xC345,
-0xC343,0xF1A8,0xF1A9,0xF1AA,0xC346, 0, 0, 0,
-0xF3AA,0xC440,0xF3A8, 0,0xC441,0xF3A7,0xF3A9,0xC3FE,
-0xF551,0xF54E, 0,0xF54F,0xF550,0xF672,0xC556, 0,
-0xC555, 0,0xF774,0xF773,0xC5B8, 0, 0, 0,
-0xC5E3,0xC649,0xC660,0xF958,0xF9AE,0xF9AF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xADB7,0xDCAD, 0, 0,0xE0E1,0xE4CC,0xE4CD,
-0xBBE3, 0,0xBBE4,0xE8BE,0xBE68, 0, 0,0xC1FC,
- 0,0xF1AB, 0,0xC347,0xF3AD,0xC442,0xF3AC,0xF3AE,
-0xF3AB,0xF675,0xF552,0xF553, 0,0xC4C6, 0,0xF674,
- 0, 0,0xF673, 0,0xF775,0xF9B0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xADB8, 0, 0, 0,
-0xADB9, 0, 0,0xB0A7,0xD448, 0,0xD84F, 0,
-0xB6B8, 0,0xB6BB,0xB6B9,0xDCAE, 0,0xB6BD, 0,
-0xB6BA, 0, 0,0xB6BC, 0,0xB97E, 0,0xE0E2,
- 0, 0,0xE0E3,0xE8C0, 0,0xB97D,0xB9A1,0xB9A2,
- 0,0xE4CF, 0,0xE4CE,0xBBE5, 0,0xBBE6, 0,
-0xE4D0,0xE8BF,0xBBE8,0xBE69, 0,0xBBE7, 0, 0,
- 0,0xC05C,0xE8C1,0xBE6B,0xBE6A,0xE8C2,0xE8C5,0xE8C3,
-0xE8C4,0xBE6C, 0,0xC061,0xC05F, 0, 0,0xC05E,
-0xEC5D, 0,0xC060, 0, 0,0xEC5C,0xEF4B, 0,
-0xEC5E,0xC05D,0xEC5F,0xEF4E,0xEF4C,0xEF4D,0xEF52,0xC34B,
-0xEF51,0xEF54,0xEF53,0xEF50,0xEF4F, 0,0xC1FD, 0,
- 0, 0, 0,0xF1AE, 0,0xF1AD,0xC34A,0xC348,
-0xC349, 0,0xF1AC, 0,0xF3B1, 0,0xC443, 0,
-0xF3B0,0xF3AF,0xC444, 0,0xF558,0xF557, 0,0xF555,
- 0,0xF554,0xC4C8,0xC4C7,0xF559,0xF776,0xC5B9,0xF677,
-0xC557,0xF676,0xF556, 0,0xF777,0xC5E4, 0,0xC661,
-0xF959, 0,0xF9B1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xADBA,
-0xD850,0xEF55,0xADBB, 0, 0,0xE4D2,0xE4D1,0xEC60,
- 0, 0,0xEF57, 0,0xEF56, 0,0xC34C,0xF3B2,
-0xF3B3,0xC4C9, 0, 0,0xF9B2,0xB0A8,0xB6BF,0xB6BE,
-0xE0E4,0xE0E6,0xB9A4,0xE0E5,0xB9A3,0xB9A5,0xE0E7, 0,
- 0, 0,0xE4D4,0xE4D6,0xE4D5, 0,0xE4D8, 0,
- 0, 0,0xBBE9,0xE4D7,0xE4D3, 0, 0, 0,
-0xE4D9, 0,0xE8CC, 0,0xE8CF,0xE8D1,0xE8C7,0xE8CB,
-0xE8C8,0xBE6E,0xBE71,0xBE73,0xE8C9,0xE8CA,0xBE72,0xE8CD,
-0xE8D0,0xE8CE,0xBE74, 0,0xBE70,0xE8C6,0xBE6D, 0,
-0xBE6F, 0, 0,0xC063,0xEC66,0xEC64,0xEC63, 0,
-0xEC69, 0,0xEC68,0xEC67, 0,0xEC62,0xC062,0xEC61,
- 0,0xEC65,0xC064, 0, 0,0xEF5A, 0,0xEF5E,
-0xEF5B,0xEF5D,0xEF5C,0xEF59,0xEF5F,0xEF62,0xEF60,0xEF61,
-0xC240, 0,0xC1FE,0xEF58,0xEF63,0xF1B3,0xF1B6,0xF1B8,
-0xF1B7, 0,0xF1B1,0xF1B5,0xF1B0, 0,0xF1B2,0xC34D,
-0xF1AF, 0,0xF1B4, 0, 0,0xF3C0,0xF3B5,0xC445,
- 0, 0,0xC446,0xF3B4,0xF3B9,0xF3BF,0xF3B7,0xF3BE,
- 0,0xF3BB, 0,0xF3BA,0xF3BD,0xF3B8,0xF3B6, 0,
-0xF3BC, 0,0xF560,0xF55E,0xC4CA,0xF55D,0xF563,0xF561,
- 0,0xC4CB,0xF55C,0xF55A, 0,0xF55B,0xC4CD,0xF55F,
-0xC4CC,0xF562,0xF678,0xF67E, 0, 0,0xF679,0xC55B,
-0xF6A1,0xC55A,0xF67D,0xF67C,0xC559,0xF67B,0xC558,0xF67A,
- 0,0xF77D,0xF7A1,0xF77E, 0,0xF77B,0xC5BB,0xF778,
-0xF77C,0xF7A3, 0,0xF7A2,0xF779,0xF77A,0xC5BA,0xF852,
-0xC5E7, 0,0xF853,0xC5E5,0xC5E6, 0, 0,0xF8D3,
-0xC64A,0xF976, 0,0xC66A, 0,0xF9B3,0xC66B,0xF9B4,
-0xF9B5,0xF9C3,0xF9C2,0xC67A,0xF9CD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xB0A9, 0, 0,0xE0E9, 0,0xE0E8, 0,
-0xBBEA,0xBBEB,0xE4DA, 0,0xE8D2,0xEC6C, 0, 0,
-0xBE75,0xC065,0xEC6A, 0,0xEC6D,0xC066, 0,0xEF64,
-0xEC6B,0xF1B9,0xC34E,0xF3C1, 0, 0, 0,0xF566,
-0xF564, 0, 0,0xF565, 0, 0,0xF6A2, 0,
-0xC55C,0xF7A4,0xC5EA,0xC5BC,0xC5E8,0xC5E9,0xF8D4,0xC662,
- 0,0xB0AA, 0, 0, 0,0xF1BA, 0, 0,
-0xD449, 0,0xB9A6, 0,0xE4DB, 0, 0,0xBBEC,
-0xE4DC, 0, 0, 0,0xE8D4,0xE8D3,0xC068,0xBE76,
-0xBE77, 0,0xE8D7,0xE8D6,0xE8D5, 0, 0,0xEC6E,
-0xEC71, 0,0xEC70,0xEC6F,0xC067,0xEF68,0xEF66,0xEF65,
- 0, 0,0xEF67, 0,0xC34F,0xF1BC,0xF1BD,0xC350,
- 0,0xF1BB, 0,0xF3C3,0xF3C2,0xF3C5,0xC447,0xF3C4,
- 0,0xF567,0xF569,0xF568, 0, 0,0xF6A3,0xF6A6,
-0xF6A4,0xF6A5,0xF7A5,0xC5BD, 0, 0, 0,0xF854,
-0xF855,0xF856, 0,0xC64B,0xC663,0xF9B6,0xB0AB, 0,
-0xBE78,0xC069,0xF1BE, 0,0xF7A6, 0, 0,0xF9C4,
-0xD44A, 0,0xC67B,0xB0AC,0xEC72, 0,0xF1BF, 0,
-0xF3C6, 0, 0,0xF6A7,0xF7A7,0xB0AD, 0,0xE4DD,
-0xE4DE, 0,0xBBED,0xBBEE,0xE8D9,0xBE7A,0xBE79,0xE8D8,
- 0,0xEF69, 0,0xF1C0,0xF1C2,0xF1C1,0xC353,0xC352,
-0xC351, 0,0xC55E,0xF6A8, 0,0xC55D,0xF7A9,0xF7A8,
- 0,0xC64C,0xF8D5,0xB3BD,0xE0EA, 0, 0, 0,
-0xE4E1,0xE4DF,0xE4E0, 0, 0,0xE8E2, 0,0xE8DD,
-0xE8DA,0xE8E1, 0, 0, 0,0xE8E3, 0, 0,
-0xBE7C,0xE8E0,0xE8DC, 0, 0,0xE8DB,0xE8DF,0xE8DE,
-0xBE7B, 0, 0,0xEC7D,0xEC78,0xEC76,0xECA1,0xEC77,
- 0,0xEC73, 0,0xEC79, 0, 0,0xEC74,0xEF72,
-0xEC75,0xECA2, 0, 0, 0, 0, 0, 0,
- 0,0xEC7C,0xC06A,0xEC7B,0xEC7A, 0,0xEC7E, 0,
- 0, 0, 0,0xEF6A,0xEF6D, 0, 0,0xEF6C,
- 0,0xEF74,0xEF6F,0xEF73, 0,0xEF71,0xEF70,0xEF6E,
- 0,0xEF6B, 0,0xC243,0xC242, 0,0xC244,0xC241,
-0xEF75, 0, 0, 0, 0, 0,0xF1C8,0xF1CB,
- 0,0xF1C9,0xF1CD, 0, 0, 0,0xF1CE, 0,
-0xF1C6,0xC358,0xF1C7, 0,0xF1C5,0xF1CC, 0,0xF1C4,
-0xF1C3,0xC357,0xC355,0xC354, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF1CA,0xF3CF,0xF3D5,0xC44A,
-0xF3D0, 0,0xF3D3,0xF3D7,0xC44B,0xF3D2, 0,0xF3CA,
- 0,0xF3C9,0xF3D6,0xF3CD, 0,0xF3CB,0xF3D4,0xF3CC,
-0xC449,0xC448, 0,0xF3C7,0xF3C8,0xF3D1, 0, 0,
- 0,0xF3CE, 0, 0, 0, 0, 0, 0,
-0xF56C,0xF56F, 0, 0, 0, 0,0xC356, 0,
- 0, 0, 0, 0, 0, 0,0xF56D,0xF573,
-0xF571,0xF56B,0xF576, 0,0xF56A, 0,0xC4CF,0xF572,
- 0, 0, 0,0xF56E,0xC4CE,0xF575, 0, 0,
-0xF574, 0, 0, 0, 0,0xF6AB,0xF6AA, 0,
- 0, 0,0xF6B1, 0,0xF6AD,0xF6B0,0xC560, 0,
- 0,0xF6AE,0xF6AF, 0,0xF6A9,0xF6AC,0xC55F, 0,
- 0, 0,0xC5BF,0xF7B4,0xF7AF,0xF7B3, 0,0xF7B6,
-0xF7B2, 0,0xF7AE, 0,0xC5C1,0xF7B1,0xF7B5,0xC5C0,
-0xF7AC,0xF570,0xF7B0, 0, 0,0xF7AD, 0,0xF7AA,
- 0,0xF7AB,0xC5BE,0xF85A,0xF85C,0xF85F,0xF85B,0xF860,
- 0,0xF859, 0,0xF857, 0,0xC5EB,0xF85D,0xC5ED,
-0xC5EC,0xF858,0xF85E, 0, 0, 0, 0,0xF8DA,
-0xC64D,0xF8DB, 0,0xF8D9,0xF8D6, 0, 0,0xF8D8,
-0xF8D7,0xF95A, 0, 0, 0, 0,0xF95C,0xF95B,
- 0, 0,0xF979, 0,0xF978,0xF977,0xF97A, 0,
-0xC673,0xC674,0xF9CA,0xF9CE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xB3BE,0xDCAF,
-0xE0ED, 0,0xB9A7,0xE0EB, 0, 0,0xE0EC, 0,
- 0, 0,0xE4E2,0xE4E3,0xBBF1,0xBBEF,0xE4E4,0xBBF0,
-0xE8E8, 0,0xE8EB,0xE8E5,0xE8EC,0xE8E4,0xE8E6, 0,
-0xE8E7,0xE8EA, 0, 0,0xBEA1,0xE8EF,0xE8EE,0xBE7D,
-0xE8E9,0xE8ED,0xBE7E, 0, 0, 0, 0, 0,
- 0,0xECAC, 0,0xC06F, 0,0xECA7,0xC06B, 0,
-0xECA4,0xECAA,0xECAD, 0,0xC070, 0,0xECA9,0xECA6,
-0xECAE,0xECA5, 0,0xECAB,0xC06C, 0,0xECA3,0xC06D,
- 0,0xC06E,0xECA8, 0, 0, 0,0xEFA9,0xEF7A,
-0xEF7B,0xEF7E,0xEF7C, 0,0xEF76, 0, 0,0xEF79,
-0xEFA5,0xEF7D, 0, 0,0xC245, 0,0xEFA7,0xEFA4,
-0xC246,0xEFA6,0xEF77,0xEFA2,0xEFA3, 0,0xEFA1, 0,
- 0, 0, 0,0xF1D2,0xF1D4,0xF1D7, 0, 0,
-0xF1D1, 0,0xC359,0xF1D9,0xF1D0,0xF1DA, 0,0xF1D6,
-0xF1D8,0xF1DC,0xF1D5,0xF1DD,0xF1D3,0xF1CF,0xC35A, 0,
-0xF1DB,0xC35B,0xC44D, 0, 0, 0, 0, 0,
-0xEF78,0xF3F1,0xF3E8,0xC44F,0xF3E4,0xC450, 0, 0,
-0xF3ED,0xF3E7,0xF3DD,0xC44E,0xF3EA,0xF3E5,0xF3E6, 0,
-0xF3D8,0xF3DF,0xF3EE, 0,0xF3EB, 0,0xF3E3, 0,
-0xF3EF,0xF3DE,0xF3D9,0xF3EC, 0,0xF3DB,0xF3E9,0xF3E0,
-0xF3F0,0xF3DC,0xC44C,0xF3DA,0xF3E1,0xF3E2, 0, 0,
- 0,0xF57D, 0,0xF57B, 0,0xF5A2, 0,0xF5AE,
-0xF5A5,0xF57C,0xF578,0xF5A7,0xF57E,0xF5A3,0xF57A,0xF5AA,
-0xF577,0xF5A1,0xF5A6,0xF5A8,0xF5AB,0xF579, 0,0xF5AF,
-0xF5B0,0xF5A9,0xF5AD,0xF5A4, 0,0xF6C1,0xF6C4, 0,
-0xC561, 0,0xF6C3,0xF6C8,0xF6C6,0xC562,0xF6BD,0xF6B3,
-0xF6B2,0xC564,0xF6BF,0xF6C0,0xF6BC,0xF6B4, 0,0xF6B9,
-0xF5AC, 0,0xF6B5,0xC563,0xF6BB, 0,0xF6BA, 0,
-0xF6B6,0xF6C2, 0,0xF6B7,0xF7BB,0xF6C5,0xF6C7,0xF6BE,
-0xF6B8,0xF7BC,0xF7BE,0xF7B8,0xC5C2, 0,0xF7C5,0xF7C3,
-0xC5C3,0xF7C2,0xF7C1,0xF7BA,0xF7B7,0xF7BD,0xF7C6,0xF7B9,
-0xF7BF, 0,0xF869,0xF86E,0xF864,0xF867,0xC5EE,0xF86B,
- 0,0xF872,0xF7C0, 0,0xF865,0xF86F,0xF873,0xF86A,
-0xF863,0xF86D, 0,0xF86C,0xF871,0xF870,0xF7C4,0xF868,
-0xF862,0xF866,0xC64E,0xC64F,0xF861, 0,0xF8E6,0xF8DD,
-0xF8E5,0xF8E2,0xF8E3,0xF8DC,0xF8DF,0xF8E7,0xF8E1,0xF8E0,
-0xF8DE, 0,0xF8E4, 0,0xF95D, 0,0xF95E, 0,
-0xF960,0xF95F,0xF962,0xF961,0xF97C,0xF97B,0xF9B7, 0,
-0xF9B8, 0,0xF9C5,0xC678,0xC67C, 0,0xF9CF,0xC67D,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xB3BF, 0,
- 0, 0,0xC4D0,0xF6C9, 0,0xC650,0xC651, 0,
-0xB3C0,0xE0EE, 0,0xB9A8,0xE8F0, 0, 0,0xECB0,
-0xECB1,0xECAF,0xEFAB,0xEFAA,0xC247,0xF1DF,0xEFAC,0xF1DE,
- 0, 0,0xF3F3,0xC451,0xC453,0xF3F2, 0, 0,
-0xC452, 0,0xF5B1,0xF5B3,0xF5B2,0xF6CA,0xC565, 0,
-0xC5EF,0xF8E8,0xF963, 0, 0,0xF9D2,0xB3C1, 0,
-0xE4E5, 0,0xBEA2, 0, 0, 0,0xECB3,0xECB2,
- 0,0xEFAD, 0, 0, 0,0xC454,0xC4D1,0xF7C7,
-0xF9CB, 0, 0, 0,0xB3C2,0xBBF2, 0,0xBEA3,
- 0,0xF3F4, 0,0xF874,0xB6C0, 0, 0, 0,
- 0,0xEFAE, 0, 0, 0,0xC664,0xB6C1,0xBEA4,
-0xC248,0xF875,0xB6C2, 0,0xE8F1,0xC072,0xECB4,0xECB5,
- 0,0xC071, 0,0xEFAF,0xC24C,0xC24A,0xC24B,0xC249,
-0xF1E0,0xC35C, 0, 0, 0,0xF5B5,0xF5B4,0xF5B7,
-0xF5B6,0xC4D2, 0, 0,0xF6CB, 0,0xF6CD,0xF6CC,
-0xC566,0xF7C8, 0,0xF876,0xF877,0xC5F0,0xF964,0xF97D,
-0xC675, 0,0xDCB0,0xECB6,0xEFB0,0xF3F5,0xE0EF, 0,
-0xEFB1,0xF1E2,0xF1E1, 0, 0, 0, 0,0xF878,
-0xC652, 0,0xF965,0xF97E, 0, 0, 0,0xB9A9,
-0xE8F2,0xE8F3, 0,0xECB7,0xB9AA, 0,0xC35D,0xF1E3,
- 0,0xF6CF,0xC567,0xF6D0,0xF6CE,0xF879, 0,0xF8E9,
- 0,0xB9AB, 0,0xEFB4,0xEFB3,0xEFB2,0xF1E4, 0,
- 0,0xF1E8,0xF1E7,0xF1E6,0xF1E5,0xC35E,0xF3F6,0xF5B9,
-0xC4D3,0xF5B8,0xF6D1,0xF7CB,0xF7CA,0xC5C4,0xF7C9,0xF87C,
-0xF87B,0xF87A, 0, 0,0xBBF3, 0,0xECB8,0xC24D,
- 0,0xF3F7,0xF3F8,0xF7CC,0xF87D, 0, 0,0xF8EA,
-0xF966,0xF9B9,0xF9D4,0xBBF4,0xC24E,0xF1E9,0xF3F9,0xF6D2,
-0xF87E, 0, 0,0xBEA6, 0,0xEFB5,0xF1EA,0xF3FA,
-0xF3FB,0xF3FC,0xF5BE, 0,0xF5BA,0xC568,0xF5BD,0xF5BC,
-0xC4D4,0xF5BB,0xC4D6, 0,0xC4D5,0xF6D4,0xF6D3,0xC569,
-0xC56A, 0, 0,0xC5C6,0xF7CD,0xC5C5, 0,0xF8A3,
-0xF8A4,0xF8A2,0xF8A1,0xC654, 0,0xF8EB,0xF8EC,0xF8ED,
-0xC653,0xF967,0xF96A,0xF969,0xF968, 0, 0,0xF9D3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xC073, 0,
- 0,0xC365,0xF5BF,0xF6D5, 0,0xC5C7,0xF7CE, 0,
- 0,0xF9D5, 0, 0, 0,0xC074, 0, 0,
- 0,0xEFB6, 0,0xF7CF, 0,0xF9A1};
-
-/* page 9 0xFA0C-0xFA0D */
-static uint16 tab_uni_big59[]={
-0xC94A,0xDDFC};
-
-/* page 10 0xFE30-0xFFFD */
-static uint16 tab_uni_big510[]={
-0xA14A,0xA157, 0,0xA159,0xA15B,0xA15F,0xA160,0xA163,
-0xA164,0xA167,0xA168,0xA16B,0xA16C,0xA16F,0xA170,0xA173,
-0xA174,0xA177,0xA178,0xA17B,0xA17C, 0, 0, 0,
- 0,0xA1C6,0xA1C7,0xA1CA,0xA1CB,0xA1C8,0xA1C9,0xA15C,
-0xA14D, 0,0xA14F, 0,0xA151,0xA152,0xA153,0xA154,
- 0,0xA17D,0xA17E,0xA1A1,0xA1A2,0xA1A3,0xA1A4,0xA1CC,
-0xA1CD,0xA1CE,0xA1DE,0xA1DF,0xA1E0,0xA1E1,0xA1E2, 0,
- 0,0xA24C,0xA24D,0xA24E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA149, 0,0xA1AD,0xA243,0xA248,0xA1AE, 0,
-0xA15D,0xA15E,0xA1AF,0xA1CF,0xA141,0xA1D0,0xA144,0xA241,
-0xA2AF,0xA2B0,0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6,
-0xA2B7,0xA2B8,0xA147,0xA146,0xA1D5,0xA1D7,0xA1D6,0xA148,
-0xA249,0xA2CF,0xA2D0,0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5,
-0xA2D6,0xA2D7,0xA2D8,0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD,
-0xA2DE,0xA2DF,0xA2E0,0xA2E1,0xA2E2,0xA2E3,0xA2E4,0xA2E5,
-0xA2E6,0xA2E7,0xA2E8, 0,0xA242, 0, 0,0xA1C4,
- 0,0xA2E9,0xA2EA,0xA2EB,0xA2EC,0xA2ED,0xA2EE,0xA2EF,
-0xA2F0,0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6,0xA2F7,
-0xA2F8,0xA2F9,0xA2FA,0xA2FB,0xA2FC,0xA2FD,0xA2FE,0xA340,
-0xA341,0xA342,0xA343,0xA161,0xA155,0xA162, 0, 0,
- 0, 0, 0, 0,0xA14E, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA2CE};
-
-static int func_uni_big5_onechar(int code){
- if ((code>=0x00A2)&&(code<=0x00F7))
- return(tab_uni_big50[code-0x00A2]);
- if ((code>=0x02C7)&&(code<=0x0451))
- return(tab_uni_big51[code-0x02C7]);
- if ((code>=0x2013)&&(code<=0x22BF))
- return(tab_uni_big52[code-0x2013]);
- if ((code>=0x2460)&&(code<=0x2642))
- return(tab_uni_big53[code-0x2460]);
- if ((code>=0x3000)&&(code<=0x3129))
- return(tab_uni_big54[code-0x3000]);
- if ((code>=0x32A3)&&(code<=0x32A3))
- return(tab_uni_big55[code-0x32A3]);
- if ((code>=0x338E)&&(code<=0x33D5))
- return(tab_uni_big56[code-0x338E]);
- if ((code>=0x4E00)&&(code<=0x9483))
- return(tab_uni_big57[code-0x4E00]);
- if ((code>=0x9577)&&(code<=0x9FA4))
- return(tab_uni_big58[code-0x9577]);
- if ((code>=0xFA0C)&&(code<=0xFA0D))
- return(tab_uni_big59[code-0xFA0C]);
- if ((code>=0xFE30)&&(code<=0xFFFD))
- return(tab_uni_big510[code-0xFE30]);
- return(0);
-}
-
-
-static int
-my_wc_mb_big5(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
-
- int code;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((int) wc < 0x80)
- {
- s[0]= (uchar) wc;
- return 1;
- }
-
- if (!(code=func_uni_big5_onechar(wc)))
- return MY_CS_ILUNI;
-
- if (s+2>e)
- return MY_CS_TOOSMALL;
-
- s[0]=code>>8;
- s[1]=code&0xFF;
-
- return 2;
-}
-
-
-static int
-my_mb_wc_big5(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc,const uchar *s,const uchar *e)
-{
-
- int hi;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((hi= s[0]) < 0x80)
- {
- pwc[0]=hi;
- return 1;
- }
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- if (!(pwc[0]=func_big5_uni_onechar((hi<<8)+s[1])))
- return -2;
-
- return 2;
-}
-
-
-/*
- Returns a well formed length of a BIG5 string.
- CP950 and HKSCS additional characters are also accepted.
-*/
-static
-size_t my_well_formed_len_big5(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
-
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if ((b < emb) && isbig5code((uchar)*b, (uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_big5,
- my_strnncollsp_big5,
- my_strnxfrm_big5,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_mb,
- my_strcasecmp_mb,
- my_instr_mb,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-static MY_CHARSET_HANDLER my_charset_big5_handler=
-{
- NULL, /* init */
- ismbchar_big5,
- mbcharlen_big5,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_big5,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_big5, /* mb_wc */
- my_wc_mb_big5, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb,
- my_casedn_str_mb,
- my_caseup_mb,
- my_casedn_mb,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-CHARSET_INFO my_charset_big5_chinese_ci=
-{
- 1,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
- "big5", /* cs name */
- "big5_chinese_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_big5,
- to_lower_big5,
- to_upper_big5,
- sort_order_big5,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_big5, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xF9D5, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_big5_handler,
- &my_collation_big5_chinese_ci_handler
-};
-
-
-CHARSET_INFO my_charset_big5_bin=
-{
- 84,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "big5", /* cs name */
- "big5_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_big5,
- to_lower_big5,
- to_upper_big5,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_big5, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xF9FE, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_big5_handler,
- &my_collation_mb_bin_handler
-};
-
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-bin.c b/dep/mysqllite/strings/ctype-bin.c
deleted file mode 100644
index 3b6a977e47c..00000000000
--- a/dep/mysqllite/strings/ctype-bin.c
+++ /dev/null
@@ -1,579 +0,0 @@
-/* Copyright (C) 2002 MySQL AB & tommy@valley.ne.jp.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* This file is for binary pseudo charset, created by bar@mysql.com */
-
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-static uchar ctype_bin[]=
-{
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 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,
-};
-
-
-/* Dummy array for toupper / tolower / sortorder */
-
-static uchar bin_char_array[] =
-{
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-
-static my_bool
-my_coll_init_8bit_bin(CHARSET_INFO *cs,
- void *(*alloc)(size_t) __attribute__((unused)))
-{
- cs->max_sort_char=255;
- return FALSE;
-}
-
-static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- size_t len=min(slen,tlen);
- int cmp= memcmp(s,t,len);
- return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen);
-}
-
-
-size_t my_lengthsp_binary(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr __attribute__((unused)),
- size_t length)
-{
- return length;
-}
-
-
-/*
- Compare two strings. Result is sign(first_argument - second_argument)
-
- SYNOPSIS
- my_strnncollsp_binary()
- cs Chararacter set
- s String to compare
- slen Length of 's'
- t String to compare
- tlen Length of 't'
-
- NOTE
- This function is used for real binary strings, i.e. for
- BLOB, BINARY(N) and VARBINARY(N).
- It compares trailing spaces as spaces.
-
- RETURN
- < 0 s < t
- 0 s == t
- > 0 s > t
-*/
-
-static int my_strnncollsp_binary(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- return my_strnncoll_binary(cs,s,slen,t,tlen,0);
-}
-
-
-static int my_strnncoll_8bit_bin(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- size_t len=min(slen,tlen);
- int cmp= memcmp(s,t,len);
- return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen);
-}
-
-
-/*
- Compare two strings. Result is sign(first_argument - second_argument)
-
- SYNOPSIS
- my_strnncollsp_8bit_bin()
- cs Chararacter set
- s String to compare
- slen Length of 's'
- t String to compare
- tlen Length of 't'
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- NOTE
- This function is used for character strings with binary collations.
- The shorter string is extended with end space to be as long as the longer
- one.
-
- RETURN
- < 0 s < t
- 0 s == t
- > 0 s > t
-*/
-
-static int my_strnncollsp_8bit_bin(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- const uchar *end;
- size_t length;
- int res;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- end= a + (length= min(a_length, b_length));
- while (a < end)
- {
- if (*a++ != *b++)
- return ((int) a[-1] - (int) b[-1]);
- }
- res= 0;
- if (a_length != b_length)
- {
- int swap= 1;
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (a_length < b_length)
- {
- /* put shorter key in s */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-/* This function is used for all conversion functions */
-
-static size_t my_case_str_bin(CHARSET_INFO *cs __attribute__((unused)),
- char *str __attribute__((unused)))
-{
- return 0;
-}
-
-
-static size_t my_case_bin(CHARSET_INFO *cs __attribute__((unused)),
- char *src __attribute__((unused)),
- size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- return srclen;
-}
-
-
-static int my_strcasecmp_bin(CHARSET_INFO * cs __attribute__((unused)),
- const char *s, const char *t)
-{
- return strcmp(s,t);
-}
-
-
-uint my_mbcharlen_8bit(CHARSET_INFO *cs __attribute__((unused)),
- uint c __attribute__((unused)))
-{
- return 1;
-}
-
-
-static int my_mb_wc_bin(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *wc,
- const uchar *str,
- const uchar *end __attribute__((unused)))
-{
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- *wc=str[0];
- return 1;
-}
-
-
-static int my_wc_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc,
- uchar *s,
- uchar *e __attribute__((unused)))
-{
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if (wc < 256)
- {
- s[0]= (char) wc;
- return 1;
- }
- return MY_CS_ILUNI;
-}
-
-
-void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,
- ulong *nr1, ulong *nr2)
-{
- const uchar *pos = key;
-
- /*
- Remove trailing spaces. We have to do this to be able to compare
- 'A ' and 'A' as identical
- */
- key= skip_trailing_space(key, len);
-
- for (; pos < (uchar*) key ; pos++)
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
- }
-}
-
-
-void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2)
-{
- const uchar *pos = key;
-
- key+= len;
-
- for (; pos < (uchar*) key ; pos++)
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
- }
-}
-
-
-/*
- The following defines is here to keep the following code identical to
- the one in ctype-simple.c
-*/
-
-#define likeconv(s,A) (A)
-#define INC_PTR(cs,A,B) (A)++
-
-
-int my_wildcmp_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- int result= -1; /* Not found, using wildcards */
-
- while (wildstr != wildend)
- {
- while (*wildstr != w_many && *wildstr != w_one)
- {
- if (*wildstr == escape && wildstr+1 != wildend)
- wildstr++;
- if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++))
- return(1); /* No match */
- if (wildstr == wildend)
- return(str != str_end); /* Match if both are at end */
- result=1; /* Found an anchor char */
- }
- if (*wildstr == w_one)
- {
- do
- {
- if (str == str_end) /* Skip one char if possible */
- return(result);
- INC_PTR(cs,str,str_end);
- } while (++wildstr < wildend && *wildstr == w_one);
- if (wildstr == wildend)
- break;
- }
- if (*wildstr == w_many)
- { /* Found w_many */
- uchar cmp;
- wildstr++;
- /* Remove any '%' and '_' from the wild search string */
- for (; wildstr != wildend ; wildstr++)
- {
- if (*wildstr == w_many)
- continue;
- if (*wildstr == w_one)
- {
- if (str == str_end)
- return(-1);
- INC_PTR(cs,str,str_end);
- continue;
- }
- break; /* Not a wild character */
- }
- if (wildstr == wildend)
- return(0); /* match if w_many is last */
- if (str == str_end)
- return(-1);
-
- if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
- cmp= *++wildstr;
-
- INC_PTR(cs,wildstr,wildend); /* This is compared through cmp */
- cmp=likeconv(cs,cmp);
- do
- {
- while (str != str_end && (uchar) likeconv(cs,*str) != cmp)
- str++;
- if (str++ == str_end)
- return(-1);
- {
- int tmp=my_wildcmp_bin(cs,str,str_end,wildstr,wildend,escape,w_one,
- w_many);
- if (tmp <= 0)
- return(tmp);
- }
- } while (str != str_end && wildstr[0] != w_many);
- return(-1);
- }
- }
- return(str != str_end ? 1 : 0);
-}
-
-
-static size_t my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- if (dest != src)
- memcpy(dest, src, min(dstlen,srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, 0);
- return dstlen;
-}
-
-
-static
-size_t my_strnxfrm_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- if (dest != src)
- memcpy(dest, src, min(dstlen,srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, ' ');
- return dstlen;
-}
-
-
-static
-uint my_instr_bin(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch)
-{
- register const uchar *str, *search, *end, *search_end;
-
- if (s_length <= b_length)
- {
- if (!s_length)
- {
- if (nmatch)
- {
- match->beg= 0;
- match->end= 0;
- match->mb_len= 0;
- }
- return 1; /* Empty string is always found */
- }
-
- str= (const uchar*) b;
- search= (const uchar*) s;
- end= (const uchar*) b+b_length-s_length+1;
- search_end= (const uchar*) s + s_length;
-
-skip:
- while (str != end)
- {
- if ( (*str++) == (*search))
- {
- register const uchar *i,*j;
-
- i= str;
- j= search+1;
-
- while (j != search_end)
- if ((*i++) != (*j++))
- goto skip;
-
- if (nmatch > 0)
- {
- match[0].beg= 0;
- match[0].end= (size_t) (str- (const uchar*)b-1);
- match[0].mb_len= match[0].end;
-
- if (nmatch > 1)
- {
- match[1].beg= match[0].end;
- match[1].end= match[0].end+s_length;
- match[1].mb_len= match[1].end-match[1].beg;
- }
- }
- return 2;
- }
- }
- }
- return 0;
-}
-
-
-MY_COLLATION_HANDLER my_collation_8bit_bin_handler =
-{
- my_coll_init_8bit_bin,
- my_strnncoll_8bit_bin,
- my_strnncollsp_8bit_bin,
- my_strnxfrm_8bit_bin,
- my_strnxfrmlen_simple,
- my_like_range_simple,
- my_wildcmp_bin,
- my_strcasecmp_bin,
- my_instr_bin,
- my_hash_sort_8bit_bin,
- my_propagate_simple
-};
-
-
-static MY_COLLATION_HANDLER my_collation_binary_handler =
-{
- NULL, /* init */
- my_strnncoll_binary,
- my_strnncollsp_binary,
- my_strnxfrm_bin,
- my_strnxfrmlen_simple,
- my_like_range_simple,
- my_wildcmp_bin,
- my_strcasecmp_bin,
- my_instr_bin,
- my_hash_sort_bin,
- my_propagate_simple
-};
-
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- NULL, /* ismbchar */
- my_mbcharlen_8bit, /* mbcharlen */
- my_numchars_8bit,
- my_charpos_8bit,
- my_well_formed_len_8bit,
- my_lengthsp_binary,
- my_numcells_8bit,
- my_mb_wc_bin,
- my_wc_mb_bin,
- my_mb_ctype_8bit,
- my_case_str_bin,
- my_case_str_bin,
- my_case_bin,
- my_case_bin,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_bin =
-{
- 63,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY,/* state */
- "binary", /* cs name */
- "binary", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_bin, /* ctype */
- bin_char_array, /* to_lower */
- bin_char_array, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- 0, /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_binary_handler
-};
diff --git a/dep/mysqllite/strings/ctype-cp932.c b/dep/mysqllite/strings/ctype-cp932.c
deleted file mode 100644
index df4083c9f8d..00000000000
--- a/dep/mysqllite/strings/ctype-cp932.c
+++ /dev/null
@@ -1,34889 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This file is for cp932 charaset (Windows Japanese),
- and created based on ctype-sjis.c file */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_CHARSET_cp932
-
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_cp932=1
- * .configure. mbmaxlen_cp932=2
- */
-
-static uchar ctype_cp932[257] =
-{
- 0, /* For standard library */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */
- 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */
- 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */
- 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */
- 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */
- 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */
- 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */
- 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */
- 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */
- 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */
- 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */
- 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */
- 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0000, 0000, 0000
-};
-
-static uchar to_lower_cp932[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377'
-};
-
-static uchar to_upper_cp932[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377'
-};
-
-static uchar sort_order_cp932[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377'
-};
-
-#define iscp932head(c) ((0x81<=(c) && (c)<=0x9f) || \
- ((0xe0<=(c)) && (c)<=0xfc))
-#define iscp932tail(c) ((0x40<=(c) && (c)<=0x7e) || \
- (0x80<=(c) && (c)<=0xfc))
-
-
-static uint ismbchar_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const char* p, const char *e)
-{
- return (iscp932head((uchar) *p) && (e-p)>1 && iscp932tail((uchar)p[1]) ? 2: 0);
-}
-
-static uint mbcharlen_cp932(CHARSET_INFO *cs __attribute__((unused)),uint c)
-{
- return (iscp932head((uchar) c) ? 2 : 1);
-}
-
-
-#define cp932code(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d))
-
-
-static MY_UNICASE_INFO c81[256]=
-{
- /* 8100-810F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8110-811F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8120-812F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8130-813F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0x8140,0x8140,0x3000}, /* 8140-814F */
- {0x8141,0x8141,0x3001},
- {0x8142,0x8142,0x3002},
- {0x8143,0x8143,0xFF0C},
- {0x8144,0x8144,0xFF0E},
- {0x8145,0x8145,0x30FB},
- {0x8146,0x8146,0xFF1A},
- {0x8147,0x8147,0xFF1B},
- {0x8148,0x8148,0xFF1F},
- {0x8149,0x8149,0xFF01},
- {0x814A,0x814A,0x309B},
- {0x814B,0x814B,0x309C},
- {0x814C,0x814C,0x00B4},
- {0x814D,0x814D,0xFF40},
- {0x814E,0x814E,0x00A8},
- {0x814F,0x814F,0xFF3E},
- {0x8150,0x8150,0xFFE3}, /* 8150-815F */
- {0x8151,0x8151,0xFF3F},
- {0x8152,0x8152,0x30FD},
- {0x8153,0x8153,0x30FE},
- {0x8154,0x8154,0x309D},
- {0x8155,0x8155,0x309E},
- {0x8156,0x8156,0x3003},
- {0x8157,0x8157,0x4EDD},
- {0x8158,0x8158,0x3005},
- {0x8159,0x8159,0x3006},
- {0x815A,0x815A,0x3007},
- {0x815B,0x815B,0x30FC},
- {0x815C,0x815C,0x2015},
- {0x815D,0x815D,0x2010},
- {0x815E,0x815E,0xFF0F},
- {0x815F,0x815F,0xFF3C},
- {0x8160,0x8160,0xFF5E}, /* 8160-816F */
- {0x8161,0x8161,0x2225},
- {0x8162,0x8162,0xFF5C},
- {0x8163,0x8163,0x2026},
- {0x8164,0x8164,0x2025},
- {0x8165,0x8165,0x2018},
- {0x8166,0x8166,0x2019},
- {0x8167,0x8167,0x201C},
- {0x8168,0x8168,0x201D},
- {0x8169,0x8169,0xFF08},
- {0x816A,0x816A,0xFF09},
- {0x816B,0x816B,0x3014},
- {0x816C,0x816C,0x3015},
- {0x816D,0x816D,0xFF3B},
- {0x816E,0x816E,0xFF3D},
- {0x816F,0x816F,0xFF5B},
- {0x8170,0x8170,0xFF5D}, /* 8170-817F */
- {0x8171,0x8171,0x3008},
- {0x8172,0x8172,0x3009},
- {0x8173,0x8173,0x300A},
- {0x8174,0x8174,0x300B},
- {0x8175,0x8175,0x300C},
- {0x8176,0x8176,0x300D},
- {0x8177,0x8177,0x300E},
- {0x8178,0x8178,0x300F},
- {0x8179,0x8179,0x3010},
- {0x817A,0x817A,0x3011},
- {0x817B,0x817B,0xFF0B},
- {0x817C,0x817C,0xFF0D},
- {0x817D,0x817D,0x00B1},
- {0x817E,0x817E,0x00D7},
- {0,0,0},
- {0x8180,0x8180,0x00F7}, /* 8180-818F */
- {0x8181,0x8181,0xFF1D},
- {0x8182,0x8182,0x2260},
- {0x8183,0x8183,0xFF1C},
- {0x8184,0x8184,0xFF1E},
- {0x8185,0x8185,0x2266},
- {0x8186,0x8186,0x2267},
- {0x8187,0x8187,0x221E},
- {0x8188,0x8188,0x2234},
- {0x8189,0x8189,0x2642},
- {0x818A,0x818A,0x2640},
- {0x818B,0x818B,0x00B0},
- {0x818C,0x818C,0x2032},
- {0x818D,0x818D,0x2033},
- {0x818E,0x818E,0x2103},
- {0x818F,0x818F,0xFFE5},
- {0x8190,0x8190,0xFF04}, /* 8190-819F*/
- {0x8191,0x8191,0xFFE0},
- {0x8192,0x8192,0xFFE1},
- {0x8193,0x8193,0xFF05},
- {0x8194,0x8194,0xFF03},
- {0x8195,0x8195,0xFF06},
- {0x8196,0x8196,0xFF0A},
- {0x8197,0x8197,0xFF20},
- {0x8198,0x8198,0x00A7},
- {0x8199,0x8199,0x2606},
- {0x819A,0x819A,0x2605},
- {0x819B,0x819B,0x25CB},
- {0x819C,0x819C,0x25CF},
- {0x819D,0x819D,0x25CE},
- {0x819E,0x819E,0x25C7},
- {0x819F,0x819F,0x25C6},
- {0x81A0,0x81A0,0x25A1}, /* 81A0-81AF */
- {0x81A1,0x81A1,0x25A0},
- {0x81A2,0x81A2,0x25B3},
- {0x81A3,0x81A3,0x25B2},
- {0x81A4,0x81A4,0x25BD},
- {0x81A5,0x81A5,0x25BC},
- {0x81A6,0x81A6,0x203B},
- {0x81A7,0x81A7,0x3012},
- {0x81A8,0x81A8,0x2192},
- {0x81A9,0x81A9,0x2190},
- {0x81AA,0x81AA,0x2191},
- {0x81AB,0x81AB,0x2193},
- {0x81AC,0x81AC,0x3013},
- {0x81AD,0x81AD,0x003F},
- {0x81AE,0x81AE,0x003F},
- {0x81AF,0x81AF,0x003F},
- {0x81B0,0x81B0,0x003F}, /* 81B0-81BF */
- {0x81B1,0x81B1,0x003F},
- {0x81B2,0x81B2,0x003F},
- {0x81B3,0x81B3,0x003F},
- {0x81B4,0x81B4,0x003F},
- {0x81B5,0x81B5,0x003F},
- {0x81B6,0x81B6,0x003F},
- {0x81B7,0x81B7,0x003F},
- {0x81B8,0x81B8,0x2208},
- {0x81B9,0x81B9,0x220B},
- {0x81BA,0x81BA,0x2286},
- {0x81BB,0x81BB,0x2287},
- {0x81BC,0x81BC,0x2282},
- {0x81BD,0x81BD,0x2283},
- {0x81BE,0x81BE,0x222A},
- {0x81BF,0x81BF,0x2229},
- {0x81C0,0x81C0,0x003F}, /* 81C0-81CF */
- {0x81C1,0x81C1,0x003F},
- {0x81C2,0x81C2,0x003F},
- {0x81C3,0x81C3,0x003F},
- {0x81C4,0x81C4,0x003F},
- {0x81C5,0x81C5,0x003F},
- {0x81C6,0x81C6,0x003F},
- {0x81C7,0x81C7,0x003F},
- {0x81C8,0x81C8,0x2227},
- {0x81C9,0x81C9,0x2228},
- {0x81CA,0x81CA,0xFFE2},
- {0x81CB,0x81CB,0x21D2},
- {0x81CC,0x81CC,0x21D4},
- {0x81CD,0x81CD,0x2200},
- {0x81CE,0x81CE,0x2203},
- {0x81CF,0x81CF,0x003F},
- {0x81D0,0x81D0,0x003F}, /* 81D0-81DF */
- {0x81D1,0x81D1,0x003F},
- {0x81D2,0x81D2,0x003F},
- {0x81D3,0x81D3,0x003F},
- {0x81D4,0x81D4,0x003F},
- {0x81D5,0x81D5,0x003F},
- {0x81D6,0x81D6,0x003F},
- {0x81D7,0x81D7,0x003F},
- {0x81D8,0x81D8,0x003F},
- {0x81D9,0x81D9,0x003F},
- {0x81DA,0x81DA,0x2220},
- {0x81DB,0x81DB,0x22A5},
- {0x81DC,0x81DC,0x2312},
- {0x81DD,0x81DD,0x2202},
- {0x81DE,0x81DE,0x2207},
- {0x81DF,0x81DF,0x2261},
- {0x81E0,0x81E0,0x2252}, /* 81E0-81EF */
- {0x81E1,0x81E1,0x226A},
- {0x81E2,0x81E2,0x226B},
- {0x81E3,0x81E3,0x221A},
- {0x81E4,0x81E4,0x223D},
- {0x81E5,0x81E5,0x221D},
- {0x81E6,0x81E6,0x2235},
- {0x81E7,0x81E7,0x222B},
- {0x81E8,0x81E8,0x222C},
- {0x81E9,0x81E9,0x003F},
- {0x81EA,0x81EA,0x003F},
- {0x81EB,0x81EB,0x003F},
- {0x81EC,0x81EC,0x003F},
- {0x81ED,0x81ED,0x003F},
- {0x81EE,0x81EE,0x003F},
- {0x81EF,0x81EF,0x003F},
- {0x81F0,0x81F0,0x212B}, /* 81F0-81FF */
- {0x81F1,0x81F1,0x2030},
- {0x81F2,0x81F2,0x266F},
- {0x81F3,0x81F3,0x266D},
- {0x81F4,0x81F4,0x266A},
- {0x81F5,0x81F5,0x2020},
- {0x81F6,0x81F6,0x2021},
- {0x81F7,0x81F7,0x00B6},
- {0x81F8,0x81F8,0x003F},
- {0x81F9,0x81F9,0x003F},
- {0x81FA,0x81FA,0x003F},
- {0x81FB,0x81FB,0x003F},
- {0x81FC,0x81FC,0x25EF},
- {0,0,0},
- {0,0,0},
- {0,0,0},
-};
-
-
-static MY_UNICASE_INFO c82[256]=
-{
- /* 8200-820F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8210-821F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8220-822F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8230-823F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0x8240,0x8240,0x003F}, /* 8240-824F */
- {0x8241,0x8241,0x003F},
- {0x8242,0x8242,0x003F},
- {0x8243,0x8243,0x003F},
- {0x8244,0x8244,0x003F},
- {0x8245,0x8245,0x003F},
- {0x8246,0x8246,0x003F},
- {0x8247,0x8247,0x003F},
- {0x8248,0x8248,0x003F},
- {0x8249,0x8249,0x003F},
- {0x824A,0x824A,0x003F},
- {0x824B,0x824B,0x003F},
- {0x824C,0x824C,0x003F},
- {0x824D,0x824D,0x003F},
- {0x824E,0x824E,0x003F},
- {0x824F,0x824F,0xFF10},
- {0x8250,0x8250,0xFF11}, /* 8250-825F */
- {0x8251,0x8251,0xFF12},
- {0x8252,0x8252,0xFF13},
- {0x8253,0x8253,0xFF14},
- {0x8254,0x8254,0xFF15},
- {0x8255,0x8255,0xFF16},
- {0x8256,0x8256,0xFF17},
- {0x8257,0x8257,0xFF18},
- {0x8258,0x8258,0xFF19},
- {0x8259,0x8259,0x003F},
- {0x825A,0x825A,0x003F},
- {0x825B,0x825B,0x003F},
- {0x825C,0x825C,0x003F},
- {0x825D,0x825D,0x003F},
- {0x825E,0x825E,0x003F},
- {0x825F,0x825F,0x003F},
- {0x8260,0x8281,0xFF21}, /* 8260-826F */
- {0x8261,0x8282,0xFF22},
- {0x8262,0x8283,0xFF23},
- {0x8263,0x8284,0xFF24},
- {0x8264,0x8285,0xFF25},
- {0x8265,0x8286,0xFF26},
- {0x8266,0x8287,0xFF27},
- {0x8267,0x8288,0xFF28},
- {0x8268,0x8289,0xFF29},
- {0x8269,0x828A,0xFF2A},
- {0x826A,0x828B,0xFF2B},
- {0x826B,0x828C,0xFF2C},
- {0x826C,0x828D,0xFF2D},
- {0x826D,0x828E,0xFF2E},
- {0x826E,0x828F,0xFF2F},
- {0x826F,0x8290,0xFF30},
- {0x8270,0x8291,0xFF31}, /* 8270-827F */
- {0x8271,0x8292,0xFF32},
- {0x8272,0x8293,0xFF33},
- {0x8273,0x8294,0xFF34},
- {0x8274,0x8295,0xFF35},
- {0x8275,0x8296,0xFF36},
- {0x8276,0x8297,0xFF37},
- {0x8277,0x8298,0xFF38},
- {0x8278,0x8299,0xFF39},
- {0x8279,0x829A,0xFF3A},
- {0x827A,0x827A,0x003F},
- {0x827B,0x827B,0x003F},
- {0x827C,0x827C,0x003F},
- {0x827D,0x827D,0x003F},
- {0x827E,0x827E,0x003F},
- {0,0,0},
- {0x8280,0x8280,0x003F}, /* 8280-828F */
- {0x8260,0x8281,0xFF41},
- {0x8261,0x8282,0xFF42},
- {0x8262,0x8283,0xFF43},
- {0x8263,0x8284,0xFF44},
- {0x8264,0x8285,0xFF45},
- {0x8265,0x8286,0xFF46},
- {0x8266,0x8287,0xFF47},
- {0x8267,0x8288,0xFF48},
- {0x8268,0x8289,0xFF49},
- {0x8269,0x828A,0xFF4A},
- {0x826A,0x828B,0xFF4B},
- {0x826B,0x828C,0xFF4C},
- {0x826C,0x828D,0xFF4D},
- {0x826D,0x828E,0xFF4E},
- {0x826E,0x828F,0xFF4F},
- {0x826F,0x8290,0xFF50}, /* 8290-829F */
- {0x8270,0x8291,0xFF51},
- {0x8271,0x8292,0xFF52},
- {0x8272,0x8293,0xFF53},
- {0x8273,0x8294,0xFF54},
- {0x8274,0x8295,0xFF55},
- {0x8275,0x8296,0xFF56},
- {0x8276,0x8297,0xFF57},
- {0x8277,0x8298,0xFF58},
- {0x8278,0x8299,0xFF59},
- {0x8279,0x829A,0xFF5A},
- {0x829B,0x829B,0x003F},
- {0x829C,0x829C,0x003F},
- {0x829D,0x829D,0x003F},
- {0x829E,0x829E,0x003F},
- {0x829F,0x829F,0x3041},
- {0x82A0,0x82A0,0x3042}, /* 82A0-82AF */
- {0x82A1,0x82A1,0x3043},
- {0x82A2,0x82A2,0x3044},
- {0x82A3,0x82A3,0x3045},
- {0x82A4,0x82A4,0x3046},
- {0x82A5,0x82A5,0x3047},
- {0x82A6,0x82A6,0x3048},
- {0x82A7,0x82A7,0x3049},
- {0x82A8,0x82A8,0x304A},
- {0x82A9,0x82A9,0x304B},
- {0x82AA,0x82AA,0x304C},
- {0x82AB,0x82AB,0x304D},
- {0x82AC,0x82AC,0x304E},
- {0x82AD,0x82AD,0x304F},
- {0x82AE,0x82AE,0x3050},
- {0x82AF,0x82AF,0x3051},
- {0x82B0,0x82B0,0x3052}, /* 82B0-82BF */
- {0x82B1,0x82B1,0x3053},
- {0x82B2,0x82B2,0x3054},
- {0x82B3,0x82B3,0x3055},
- {0x82B4,0x82B4,0x3056},
- {0x82B5,0x82B5,0x3057},
- {0x82B6,0x82B6,0x3058},
- {0x82B7,0x82B7,0x3059},
- {0x82B8,0x82B8,0x305A},
- {0x82B9,0x82B9,0x305B},
- {0x82BA,0x82BA,0x305C},
- {0x82BB,0x82BB,0x305D},
- {0x82BC,0x82BC,0x305E},
- {0x82BD,0x82BD,0x305F},
- {0x82BE,0x82BE,0x3060},
- {0x82BF,0x82BF,0x3061},
- {0x82C0,0x82C0,0x3062}, /* 82C0-82CF */
- {0x82C1,0x82C1,0x3063},
- {0x82C2,0x82C2,0x3064},
- {0x82C3,0x82C3,0x3065},
- {0x82C4,0x82C4,0x3066},
- {0x82C5,0x82C5,0x3067},
- {0x82C6,0x82C6,0x3068},
- {0x82C7,0x82C7,0x3069},
- {0x82C8,0x82C8,0x306A},
- {0x82C9,0x82C9,0x306B},
- {0x82CA,0x82CA,0x306C},
- {0x82CB,0x82CB,0x306D},
- {0x82CC,0x82CC,0x306E},
- {0x82CD,0x82CD,0x306F},
- {0x82CE,0x82CE,0x3070},
- {0x82CF,0x82CF,0x3071},
- {0x82D0,0x82D0,0x3072}, /* 82D0-82DF */
- {0x82D1,0x82D1,0x3073},
- {0x82D2,0x82D2,0x3074},
- {0x82D3,0x82D3,0x3075},
- {0x82D4,0x82D4,0x3076},
- {0x82D5,0x82D5,0x3077},
- {0x82D6,0x82D6,0x3078},
- {0x82D7,0x82D7,0x3079},
- {0x82D8,0x82D8,0x307A},
- {0x82D9,0x82D9,0x307B},
- {0x82DA,0x82DA,0x307C},
- {0x82DB,0x82DB,0x307D},
- {0x82DC,0x82DC,0x307E},
- {0x82DD,0x82DD,0x307F},
- {0x82DE,0x82DE,0x3080},
- {0x82DF,0x82DF,0x3081},
- {0x82E0,0x82E0,0x3082}, /* 82E0-82EF */
- {0x82E1,0x82E1,0x3083},
- {0x82E2,0x82E2,0x3084},
- {0x82E3,0x82E3,0x3085},
- {0x82E4,0x82E4,0x3086},
- {0x82E5,0x82E5,0x3087},
- {0x82E6,0x82E6,0x3088},
- {0x82E7,0x82E7,0x3089},
- {0x82E8,0x82E8,0x308A},
- {0x82E9,0x82E9,0x308B},
- {0x82EA,0x82EA,0x308C},
- {0x82EB,0x82EB,0x308D},
- {0x82EC,0x82EC,0x308E},
- {0x82ED,0x82ED,0x308F},
- {0x82EE,0x82EE,0x3090},
- {0x82EF,0x82EF,0x3091},
- {0x82F0,0x82F0,0x3092}, /* 82F0-82FF */
- {0x82F1,0x82F1,0x3093},
- {0x82F2,0x82F2,0x003F},
- {0x82F3,0x82F3,0x003F},
- {0x82F4,0x82F4,0x003F},
- {0x82F5,0x82F5,0x003F},
- {0x82F6,0x82F6,0x003F},
- {0x82F7,0x82F7,0x003F},
- {0x82F8,0x82F8,0x003F},
- {0x82F9,0x82F9,0x003F},
- {0x82FA,0x82FA,0x003F},
- {0x82FB,0x82FB,0x003F},
- {0x82FC,0x82FC,0x003F},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO c83[256]=
-{
- /* 8300-830F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8310-831F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8320-832F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8330-833F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0x8340,0x8340,0x30A1}, /* 8340 */
- {0x8341,0x8341,0x30A2},
- {0x8342,0x8342,0x30A3},
- {0x8343,0x8343,0x30A4},
- {0x8344,0x8344,0x30A5},
- {0x8345,0x8345,0x30A6},
- {0x8346,0x8346,0x30A7},
- {0x8347,0x8347,0x30A8},
- {0x8348,0x8348,0x30A9},
- {0x8349,0x8349,0x30AA},
- {0x834A,0x834A,0x30AB},
- {0x834B,0x834B,0x30AC},
- {0x834C,0x834C,0x30AD},
- {0x834D,0x834D,0x30AE},
- {0x834E,0x834E,0x30AF},
- {0x834F,0x834F,0x30B0},
- {0x8350,0x8350,0x30B1}, /* 8350 */
- {0x8351,0x8351,0x30B2},
- {0x8352,0x8352,0x30B3},
- {0x8353,0x8353,0x30B4},
- {0x8354,0x8354,0x30B5},
- {0x8355,0x8355,0x30B6},
- {0x8356,0x8356,0x30B7},
- {0x8357,0x8357,0x30B8},
- {0x8358,0x8358,0x30B9},
- {0x8359,0x8359,0x30BA},
- {0x835A,0x835A,0x30BB},
- {0x835B,0x835B,0x30BC},
- {0x835C,0x835C,0x30BD},
- {0x835D,0x835D,0x30BE},
- {0x835E,0x835E,0x30BF},
- {0x835F,0x835F,0x30C0},
- {0x8360,0x8360,0x30C1}, /* 8360 */
- {0x8361,0x8361,0x30C2},
- {0x8362,0x8362,0x30C3},
- {0x8363,0x8363,0x30C4},
- {0x8364,0x8364,0x30C5},
- {0x8365,0x8365,0x30C6},
- {0x8366,0x8366,0x30C7},
- {0x8367,0x8367,0x30C8},
- {0x8368,0x8368,0x30C9},
- {0x8369,0x8369,0x30CA},
- {0x836A,0x836A,0x30CB},
- {0x836B,0x836B,0x30CC},
- {0x836C,0x836C,0x30CD},
- {0x836D,0x836D,0x30CE},
- {0x836E,0x836E,0x30CF},
- {0x836F,0x836F,0x30D0},
- {0x8370,0x8370,0x30D1}, /* 8370 */
- {0x8371,0x8371,0x30D2},
- {0x8372,0x8372,0x30D3},
- {0x8373,0x8373,0x30D4},
- {0x8374,0x8374,0x30D5},
- {0x8375,0x8375,0x30D6},
- {0x8376,0x8376,0x30D7},
- {0x8377,0x8377,0x30D8},
- {0x8378,0x8378,0x30D9},
- {0x8379,0x8379,0x30DA},
- {0x837A,0x837A,0x30DB},
- {0x837B,0x837B,0x30DC},
- {0x837C,0x837C,0x30DD},
- {0x837D,0x837D,0x30DE},
- {0x837E,0x837E,0x30DF},
- {0,0,0},
- {0x8380,0x8380,0x30E0}, /* 8380 */
- {0x8381,0x8381,0x30E1},
- {0x8382,0x8382,0x30E2},
- {0x8383,0x8383,0x30E3},
- {0x8384,0x8384,0x30E4},
- {0x8385,0x8385,0x30E5},
- {0x8386,0x8386,0x30E6},
- {0x8387,0x8387,0x30E7},
- {0x8388,0x8388,0x30E8},
- {0x8389,0x8389,0x30E9},
- {0x838A,0x838A,0x30EA},
- {0x838B,0x838B,0x30EB},
- {0x838C,0x838C,0x30EC},
- {0x838D,0x838D,0x30ED},
- {0x838E,0x838E,0x30EE},
- {0x838F,0x838F,0x30EF},
- {0x8390,0x8390,0x30F0}, /* 8390 */
- {0x8391,0x8391,0x30F1},
- {0x8392,0x8392,0x30F2},
- {0x8393,0x8393,0x30F3},
- {0x8394,0x8394,0x30F4},
- {0x8395,0x8395,0x30F5},
- {0x8396,0x8396,0x30F6},
- {0x8397,0x8397,0x003F},
- {0x8398,0x8398,0x003F},
- {0x8399,0x8399,0x003F},
- {0x839A,0x839A,0x003F},
- {0x839B,0x839B,0x003F},
- {0x839C,0x839C,0x003F},
- {0x839D,0x839D,0x003F},
- {0x839E,0x839E,0x003F},
- {0x839F,0x83BF,0x0391},
- {0x83A0,0x83C0,0x0392}, /* 83A0 */
- {0x83A1,0x83C1,0x0393},
- {0x83A2,0x83C2,0x0394},
- {0x83A3,0x83C3,0x0395},
- {0x83A4,0x83C4,0x0396},
- {0x83A5,0x83C5,0x0397},
- {0x83A6,0x83C6,0x0398},
- {0x83A7,0x83C7,0x0399},
- {0x83A8,0x83C8,0x039A},
- {0x83A9,0x83C9,0x039B},
- {0x83AA,0x83CA,0x039C},
- {0x83AB,0x83CB,0x039D},
- {0x83AC,0x83CC,0x039E},
- {0x83AD,0x83CD,0x039F},
- {0x83AE,0x83CE,0x03A0},
- {0x83AF,0x83CF,0x03A1},
- {0x83B0,0x83D0,0x03A3}, /* 83B0 */
- {0x83B1,0x83D1,0x03A4},
- {0x83B2,0x83D2,0x03A5},
- {0x83B3,0x83D3,0x03A6},
- {0x83B4,0x83D4,0x03A7},
- {0x83B5,0x83D5,0x03A8},
- {0x83B6,0x83D6,0x03A9},
- {0x83B7,0x83B7,0x003F},
- {0x83B8,0x83B8,0x003F},
- {0x83B9,0x83B9,0x003F},
- {0x83BA,0x83BA,0x003F},
- {0x83BB,0x83BB,0x003F},
- {0x83BC,0x83BC,0x003F},
- {0x83BD,0x83BD,0x003F},
- {0x83BE,0x83BE,0x003F},
- {0x839F,0x83BF,0x03B1},
- {0x83A0,0x83C0,0x03B2}, /* 83C0 */
- {0x83A1,0x83C1,0x03B3},
- {0x83A2,0x83C2,0x03B4},
- {0x83A3,0x83C3,0x03B5},
- {0x83A4,0x83C4,0x03B6},
- {0x83A5,0x83C5,0x03B7},
- {0x83A6,0x83C6,0x03B8},
- {0x83A7,0x83C7,0x03B9},
- {0x83A8,0x83C8,0x03BA},
- {0x83A9,0x83C9,0x03BB},
- {0x83AA,0x83CA,0x03BC},
- {0x83AB,0x83CB,0x03BD},
- {0x83AC,0x83CC,0x03BE},
- {0x83AD,0x83CD,0x03BF},
- {0x83AE,0x83CE,0x03C0},
- {0x83AF,0x83CF,0x03C1},
- {0x83B0,0x83D0,0x03C3}, /* 83D0 */
- {0x83B1,0x83D1,0x03C4},
- {0x83B2,0x83D2,0x03C5},
- {0x83B3,0x83D3,0x03C6},
- {0x83B4,0x83D4,0x03C7},
- {0x83B5,0x83D5,0x03C8},
- {0x83B6,0x83D6,0x03C9},
- {0x83D7,0x83D7,0x003F},
- {0x83D8,0x83D8,0x003F},
- {0x83D9,0x83D9,0x003F},
- {0x83DA,0x83DA,0x003F},
- {0x83DB,0x83DB,0x003F},
- {0x83DC,0x83DC,0x003F},
- {0x83DD,0x83DD,0x003F},
- {0x83DE,0x83DE,0x003F},
- {0x83DF,0x83DF,0x003F},
- {0x83E0,0x83E0,0x003F}, /* 83E0 */
- {0x83E1,0x83E1,0x003F},
- {0x83E2,0x83E2,0x003F},
- {0x83E3,0x83E3,0x003F},
- {0x83E4,0x83E4,0x003F},
- {0x83E5,0x83E5,0x003F},
- {0x83E6,0x83E6,0x003F},
- {0x83E7,0x83E7,0x003F},
- {0x83E8,0x83E8,0x003F},
- {0x83E9,0x83E9,0x003F},
- {0x83EA,0x83EA,0x003F},
- {0x83EB,0x83EB,0x003F},
- {0x83EC,0x83EC,0x003F},
- {0x83ED,0x83ED,0x003F},
- {0x83EE,0x83EE,0x003F},
- {0x83EF,0x83EF,0x003F},
- {0x83F0,0x83F0,0x003F}, /* 83F0 */
- {0x83F1,0x83F1,0x003F},
- {0x83F2,0x83F2,0x003F},
- {0x83F3,0x83F3,0x003F},
- {0x83F4,0x83F4,0x003F},
- {0x83F5,0x83F5,0x003F},
- {0x83F6,0x83F6,0x003F},
- {0x83F7,0x83F7,0x003F},
- {0x83F8,0x83F8,0x003F},
- {0x83F9,0x83F9,0x003F},
- {0x83FA,0x83FA,0x003F},
- {0x83FB,0x83FB,0x003F},
- {0x83FC,0x83FC,0x003F},
- {0,0,0},
- {0,0,0},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO c84[256]=
-{
- /* 8400-840F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8410-841F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8420-842F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8430-843F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0x8440,0x8470,0x0410}, /* 8440 */
- {0x8441,0x8471,0x0411},
- {0x8442,0x8472,0x0412},
- {0x8443,0x8473,0x0413},
- {0x8444,0x8474,0x0414},
- {0x8445,0x8475,0x0415},
- {0x8446,0x8476,0x0401},
- {0x8447,0x8477,0x0416},
- {0x8448,0x8478,0x0417},
- {0x8449,0x8479,0x0418},
- {0x844A,0x847A,0x0419},
- {0x844B,0x847B,0x041A},
- {0x844C,0x847C,0x041B},
- {0x844D,0x847D,0x041C},
- {0x844E,0x847E,0x041D},
- {0x844F,0x8480,0x041E},
- {0x8450,0x8481,0x041F}, /* 8450 */
- {0x8451,0x8482,0x0420},
- {0x8452,0x8483,0x0421},
- {0x8453,0x8484,0x0422},
- {0x8454,0x8485,0x0423},
- {0x8455,0x8486,0x0424},
- {0x8456,0x8487,0x0425},
- {0x8457,0x8488,0x0426},
- {0x8458,0x8489,0x0427},
- {0x8459,0x848A,0x0428},
- {0x845A,0x848B,0x0429},
- {0x845B,0x848C,0x042A},
- {0x845C,0x848D,0x042B},
- {0x845D,0x848E,0x042C},
- {0x845E,0x848F,0x042D},
- {0x845F,0x8490,0x042E},
- {0x8460,0x8491,0x042F}, /* 8460 */
- {0x8461,0x8461,0x003F},
- {0x8462,0x8462,0x003F},
- {0x8463,0x8463,0x003F},
- {0x8464,0x8464,0x003F},
- {0x8465,0x8465,0x003F},
- {0x8466,0x8466,0x003F},
- {0x8467,0x8467,0x003F},
- {0x8468,0x8468,0x003F},
- {0x8469,0x8469,0x003F},
- {0x846A,0x846A,0x003F},
- {0x846B,0x846B,0x003F},
- {0x846C,0x846C,0x003F},
- {0x846D,0x846D,0x003F},
- {0x846E,0x846E,0x003F},
- {0x846F,0x846F,0x003F},
- {0x8440,0x8470,0x0430}, /* 8470 */
- {0x8441,0x8471,0x0431},
- {0x8442,0x8472,0x0432},
- {0x8443,0x8473,0x0433},
- {0x8444,0x8474,0x0434},
- {0x8445,0x8475,0x0435},
- {0x8446,0x8476,0x0451},
- {0x8447,0x8477,0x0436},
- {0x8448,0x8478,0x0437},
- {0x8449,0x8479,0x0438},
- {0x844A,0x847A,0x0439},
- {0x844B,0x847B,0x043A},
- {0x844C,0x847C,0x043B},
- {0x844D,0x847D,0x043C},
- {0x844E,0x847E,0x043D},
- {0,0,0},
- {0x844F,0x8480,0x043E}, /* 8480 */
- {0x8450,0x8481,0x043F},
- {0x8451,0x8482,0x0440},
- {0x8452,0x8483,0x0441},
- {0x8453,0x8484,0x0442},
- {0x8454,0x8485,0x0443},
- {0x8455,0x8486,0x0444},
- {0x8456,0x8487,0x0445},
- {0x8457,0x8488,0x0446},
- {0x8458,0x8489,0x0447},
- {0x8459,0x848A,0x0448},
- {0x845A,0x848B,0x0449},
- {0x845B,0x848C,0x044A},
- {0x845C,0x848D,0x044B},
- {0x845D,0x848E,0x044C},
- {0x845E,0x848F,0x044D},
- {0x845F,0x8490,0x044E}, /* 8490 */
- {0x8460,0x8491,0x044F},
- {0x8492,0x8492,0x003F},
- {0x8493,0x8493,0x003F},
- {0x8494,0x8494,0x003F},
- {0x8495,0x8495,0x003F},
- {0x8496,0x8496,0x003F},
- {0x8497,0x8497,0x003F},
- {0x8498,0x8498,0x003F},
- {0x8499,0x8499,0x003F},
- {0x849A,0x849A,0x003F},
- {0x849B,0x849B,0x003F},
- {0x849C,0x849C,0x003F},
- {0x849D,0x849D,0x003F},
- {0x849E,0x849E,0x003F},
- {0x849F,0x849F,0x2500},
- {0x84A0,0x84A0,0x2502}, /* 84A0 */
- {0x84A1,0x84A1,0x250C},
- {0x84A2,0x84A2,0x2510},
- {0x84A3,0x84A3,0x2518},
- {0x84A4,0x84A4,0x2514},
- {0x84A5,0x84A5,0x251C},
- {0x84A6,0x84A6,0x252C},
- {0x84A7,0x84A7,0x2524},
- {0x84A8,0x84A8,0x2534},
- {0x84A9,0x84A9,0x253C},
- {0x84AA,0x84AA,0x2501},
- {0x84AB,0x84AB,0x2503},
- {0x84AC,0x84AC,0x250F},
- {0x84AD,0x84AD,0x2513},
- {0x84AE,0x84AE,0x251B},
- {0x84AF,0x84AF,0x2517},
- {0x84B0,0x84B0,0x2523}, /* 84B0 */
- {0x84B1,0x84B1,0x2533},
- {0x84B2,0x84B2,0x252B},
- {0x84B3,0x84B3,0x253B},
- {0x84B4,0x84B4,0x254B},
- {0x84B5,0x84B5,0x2520},
- {0x84B6,0x84B6,0x252F},
- {0x84B7,0x84B7,0x2528},
- {0x84B8,0x84B8,0x2537},
- {0x84B9,0x84B9,0x253F},
- {0x84BA,0x84BA,0x251D},
- {0x84BB,0x84BB,0x2530},
- {0x84BC,0x84BC,0x2525},
- {0x84BD,0x84BD,0x2538},
- {0x84BE,0x84BE,0x2542},
- {0x84BF,0x84BF,0x003F},
- {0x84C0,0x84C0,0x003F}, /* 84C0 */
- {0x84C1,0x84C1,0x003F},
- {0x84C2,0x84C2,0x003F},
- {0x84C3,0x84C3,0x003F},
- {0x84C4,0x84C4,0x003F},
- {0x84C5,0x84C5,0x003F},
- {0x84C6,0x84C6,0x003F},
- {0x84C7,0x84C7,0x003F},
- {0x84C8,0x84C8,0x003F},
- {0x84C9,0x84C9,0x003F},
- {0x84CA,0x84CA,0x003F},
- {0x84CB,0x84CB,0x003F},
- {0x84CC,0x84CC,0x003F},
- {0x84CD,0x84CD,0x003F},
- {0x84CE,0x84CE,0x003F},
- {0x84CF,0x84CF,0x003F},
- {0x84D0,0x84D0,0x003F}, /* 84D0 */
- {0x84D1,0x84D1,0x003F},
- {0x84D2,0x84D2,0x003F},
- {0x84D3,0x84D3,0x003F},
- {0x84D4,0x84D4,0x003F},
- {0x84D5,0x84D5,0x003F},
- {0x84D6,0x84D6,0x003F},
- {0x84D7,0x84D7,0x003F},
- {0x84D8,0x84D8,0x003F},
- {0x84D9,0x84D9,0x003F},
- {0x84DA,0x84DA,0x003F},
- {0x84DB,0x84DB,0x003F},
- {0x84DC,0x84DC,0x003F},
- {0x84DD,0x84DD,0x003F},
- {0x84DE,0x84DE,0x003F},
- {0x84DF,0x84DF,0x003F},
- {0x84E0,0x84E0,0x003F}, /* 84E0 */
- {0x84E1,0x84E1,0x003F},
- {0x84E2,0x84E2,0x003F},
- {0x84E3,0x84E3,0x003F},
- {0x84E4,0x84E4,0x003F},
- {0x84E5,0x84E5,0x003F},
- {0x84E6,0x84E6,0x003F},
- {0x84E7,0x84E7,0x003F},
- {0x84E8,0x84E8,0x003F},
- {0x84E9,0x84E9,0x003F},
- {0x84EA,0x84EA,0x003F},
- {0x84EB,0x84EB,0x003F},
- {0x84EC,0x84EC,0x003F},
- {0x84ED,0x84ED,0x003F},
- {0x84EE,0x84EE,0x003F},
- {0x84EF,0x84EF,0x003F},
- {0x84F0,0x84F0,0x003F}, /* 84F0 */
- {0x84F1,0x84F1,0x003F},
- {0x84F2,0x84F2,0x003F},
- {0x84F3,0x84F3,0x003F},
- {0x84F4,0x84F4,0x003F},
- {0x84F5,0x84F5,0x003F},
- {0x84F6,0x84F6,0x003F},
- {0x84F7,0x84F7,0x003F},
- {0x84F8,0x84F8,0x003F},
- {0x84F9,0x84F9,0x003F},
- {0x84FA,0x84FA,0x003F},
- {0x84FB,0x84FB,0x003F},
- {0x84FC,0x84FC,0x003F},
- {0,0,0},
- {0,0,0},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO c87[256]=
-{
- /* 8700-870F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8710-871F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8720-872F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* 8730-873F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0x8740,0x8740,0x2460}, /* 8740 */
- {0x8741,0x8741,0x2461},
- {0x8742,0x8742,0x2462},
- {0x8743,0x8743,0x2463},
- {0x8744,0x8744,0x2464},
- {0x8745,0x8745,0x2465},
- {0x8746,0x8746,0x2466},
- {0x8747,0x8747,0x2467},
- {0x8748,0x8748,0x2468},
- {0x8749,0x8749,0x2469},
- {0x874A,0x874A,0x246A},
- {0x874B,0x874B,0x246B},
- {0x874C,0x874C,0x246C},
- {0x874D,0x874D,0x246D},
- {0x874E,0x874E,0x246E},
- {0x874F,0x874F,0x246F},
- {0x8750,0x8750,0x2470}, /* 8750 */
- {0x8751,0x8751,0x2471},
- {0x8752,0x8752,0x2472},
- {0x8753,0x8753,0x2473},
- {0x8754,0xEEEF,0x2160},
- {0x8755,0xEEF0,0x2161},
- {0x8756,0xEEF1,0x2162},
- {0x8757,0xEEF2,0x2163},
- {0x8758,0xEEF3,0x2164},
- {0x8759,0xEEF4,0x2165},
- {0x875A,0xEEF5,0x2166},
- {0x875B,0xEEF6,0x2167},
- {0x875C,0xEEF7,0x2168},
- {0x875D,0xEEF8,0x2169},
- {0x875E,0x875E,0x003F},
- {0x875F,0x875F,0x3349},
- {0x8760,0x8760,0x3314}, /* 8760 */
- {0x8761,0x8761,0x3322},
- {0x8762,0x8762,0x334D},
- {0x8763,0x8763,0x3318},
- {0x8764,0x8764,0x3327},
- {0x8765,0x8765,0x3303},
- {0x8766,0x8766,0x3336},
- {0x8767,0x8767,0x3351},
- {0x8768,0x8768,0x3357},
- {0x8769,0x8769,0x330D},
- {0x876A,0x876A,0x3326},
- {0x876B,0x876B,0x3323},
- {0x876C,0x876C,0x332B},
- {0x876D,0x876D,0x334A},
- {0x876E,0x876E,0x333B},
- {0x876F,0x876F,0x339C},
- {0x8770,0x8770,0x339D}, /* 8770 */
- {0x8771,0x8771,0x339E},
- {0x8772,0x8772,0x338E},
- {0x8773,0x8773,0x338F},
- {0x8774,0x8774,0x33C4},
- {0x8775,0x8775,0x33A1},
- {0x8776,0x8776,0x003F},
- {0x8777,0x8777,0x003F},
- {0x8778,0x8778,0x003F},
- {0x8779,0x8779,0x003F},
- {0x877A,0x877A,0x003F},
- {0x877B,0x877B,0x003F},
- {0x877C,0x877C,0x003F},
- {0x877D,0x877D,0x003F},
- {0x877E,0x877E,0x337B},
- {0,0,0},
- {0x8780,0x8780,0x301D}, /* 8780 */
- {0x8781,0x8781,0x301F},
- {0x8782,0x8782,0x2116},
- {0x8783,0x8783,0x33CD},
- {0x8784,0x8784,0x2121},
- {0x8785,0x8785,0x32A4},
- {0x8786,0x8786,0x32A5},
- {0x8787,0x8787,0x32A6},
- {0x8788,0x8788,0x32A7},
- {0x8789,0x8789,0x32A8},
- {0x878A,0x878A,0x3231},
- {0x878B,0x878B,0x3232},
- {0x878C,0x878C,0x3239},
- {0x878D,0x878D,0x337E},
- {0x878E,0x878E,0x337D},
- {0x878F,0x878F,0x337C},
- {0x8790,0x8790,0x2252}, /* 8790 */
- {0x8791,0x8791,0x2261},
- {0x8792,0x8792,0x222B},
- {0x8793,0x8793,0x222E},
- {0x8794,0x8794,0x2211},
- {0x8795,0x8795,0x221A},
- {0x8796,0x8796,0x22A5},
- {0x8797,0x8797,0x2220},
- {0x8798,0x8798,0x221F},
- {0x8799,0x8799,0x22BF},
- {0x879A,0x879A,0x2235},
- {0x879B,0x879B,0x2229},
- {0x879C,0x879C,0x222A},
- {0x879D,0x879D,0x003F},
- {0x879E,0x879E,0x003F},
- {0x879F,0x879F,0x003F},
- {0x87A0,0x87A0,0x003F}, /* 87A0 */
- {0x87A1,0x87A1,0x003F},
- {0x87A2,0x87A2,0x003F},
- {0x87A3,0x87A3,0x003F},
- {0x87A4,0x87A4,0x003F},
- {0x87A5,0x87A5,0x003F},
- {0x87A6,0x87A6,0x003F},
- {0x87A7,0x87A7,0x003F},
- {0x87A8,0x87A8,0x003F},
- {0x87A9,0x87A9,0x003F},
- {0x87AA,0x87AA,0x003F},
- {0x87AB,0x87AB,0x003F},
- {0x87AC,0x87AC,0x003F},
- {0x87AD,0x87AD,0x003F},
- {0x87AE,0x87AE,0x003F},
- {0x87AF,0x87AF,0x003F},
- {0x87B0,0x87B0,0x003F}, /* 87B0 */
- {0x87B1,0x87B1,0x003F},
- {0x87B2,0x87B2,0x003F},
- {0x87B3,0x87B3,0x003F},
- {0x87B4,0x87B4,0x003F},
- {0x87B5,0x87B5,0x003F},
- {0x87B6,0x87B6,0x003F},
- {0x87B7,0x87B7,0x003F},
- {0x87B8,0x87B8,0x003F},
- {0x87B9,0x87B9,0x003F},
- {0x87BA,0x87BA,0x003F},
- {0x87BB,0x87BB,0x003F},
- {0x87BC,0x87BC,0x003F},
- {0x87BD,0x87BD,0x003F},
- {0x87BE,0x87BE,0x003F},
- {0x87BF,0x87BF,0x003F},
- {0x87C0,0x87C0,0x003F}, /* 87C0 */
- {0x87C1,0x87C1,0x003F},
- {0x87C2,0x87C2,0x003F},
- {0x87C3,0x87C3,0x003F},
- {0x87C4,0x87C4,0x003F},
- {0x87C5,0x87C5,0x003F},
- {0x87C6,0x87C6,0x003F},
- {0x87C7,0x87C7,0x003F},
- {0x87C8,0x87C8,0x003F},
- {0x87C9,0x87C9,0x003F},
- {0x87CA,0x87CA,0x003F},
- {0x87CB,0x87CB,0x003F},
- {0x87CC,0x87CC,0x003F},
- {0x87CD,0x87CD,0x003F},
- {0x87CE,0x87CE,0x003F},
- {0x87CF,0x87CF,0x003F},
- {0x87D0,0x87D0,0x003F}, /* 87D0 */
- {0x87D1,0x87D1,0x003F},
- {0x87D2,0x87D2,0x003F},
- {0x87D3,0x87D3,0x003F},
- {0x87D4,0x87D4,0x003F},
- {0x87D5,0x87D5,0x003F},
- {0x87D6,0x87D6,0x003F},
- {0x87D7,0x87D7,0x003F},
- {0x87D8,0x87D8,0x003F},
- {0x87D9,0x87D9,0x003F},
- {0x87DA,0x87DA,0x003F},
- {0x87DB,0x87DB,0x003F},
- {0x87DC,0x87DC,0x003F},
- {0x87DD,0x87DD,0x003F},
- {0x87DE,0x87DE,0x003F},
- {0x87DF,0x87DF,0x003F},
- {0x87E0,0x87E0,0x003F}, /* 87E0 */
- {0x87E1,0x87E1,0x003F},
- {0x87E2,0x87E2,0x003F},
- {0x87E3,0x87E3,0x003F},
- {0x87E4,0x87E4,0x003F},
- {0x87E5,0x87E5,0x003F},
- {0x87E6,0x87E6,0x003F},
- {0x87E7,0x87E7,0x003F},
- {0x87E8,0x87E8,0x003F},
- {0x87E9,0x87E9,0x003F},
- {0x87EA,0x87EA,0x003F},
- {0x87EB,0x87EB,0x003F},
- {0x87EC,0x87EC,0x003F},
- {0x87ED,0x87ED,0x003F},
- {0x87EE,0x87EE,0x003F},
- {0x87EF,0x87EF,0x003F},
- {0x87F0,0x87F0,0x003F}, /* 87F0 */
- {0x87F1,0x87F1,0x003F},
- {0x87F2,0x87F2,0x003F},
- {0x87F3,0x87F3,0x003F},
- {0x87F4,0x87F4,0x003F},
- {0x87F5,0x87F5,0x003F},
- {0x87F6,0x87F6,0x003F},
- {0x87F7,0x87F7,0x003F},
- {0x87F8,0x87F8,0x003F},
- {0x87F9,0x87F9,0x003F},
- {0x87FA,0x87FA,0x003F},
- {0x87FB,0x87FB,0x003F},
- {0x87FC,0x87FC,0x003F},
- {0,0,0},
- {0,0,0},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO cEE[256]=
-{
- /* EE00-EE0F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* EE10-EE1F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* EE20-EE2F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* EE30-EE3F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0xEE40,0xEE40,0x72BE}, /* EE40 */
- {0xEE41,0xEE41,0x7324},
- {0xEE42,0xEE42,0xFA16},
- {0xEE43,0xEE43,0x7377},
- {0xEE44,0xEE44,0x73BD},
- {0xEE45,0xEE45,0x73C9},
- {0xEE46,0xEE46,0x73D6},
- {0xEE47,0xEE47,0x73E3},
- {0xEE48,0xEE48,0x73D2},
- {0xEE49,0xEE49,0x7407},
- {0xEE4A,0xEE4A,0x73F5},
- {0xEE4B,0xEE4B,0x7426},
- {0xEE4C,0xEE4C,0x742A},
- {0xEE4D,0xEE4D,0x7429},
- {0xEE4E,0xEE4E,0x742E},
- {0xEE4F,0xEE4F,0x7462},
-
- {0xEE50,0xEE50,0x7489}, /* EE50 */
- {0xEE51,0xEE51,0x749F},
- {0xEE52,0xEE52,0x7501},
- {0xEE53,0xEE53,0x756F},
- {0xEE54,0xEE54,0x7682},
- {0xEE55,0xEE55,0x769C},
- {0xEE56,0xEE56,0x769E},
- {0xEE57,0xEE57,0x769B},
- {0xEE58,0xEE58,0x76A6},
- {0xEE59,0xEE59,0xFA17},
- {0xEE5A,0xEE5A,0x7746},
- {0xEE5B,0xEE5B,0x52AF},
- {0xEE5C,0xEE5C,0x7821},
- {0xEE5D,0xEE5D,0x784E},
- {0xEE5E,0xEE5E,0x7864},
- {0xEE5F,0xEE5F,0x787A},
- {0xEE60,0xEE60,0x7930}, /* EE60 */
- {0xEE61,0xEE61,0xFA18},
- {0xEE62,0xEE62,0xFA19},
- {0xEE63,0xEE63,0xFA1A},
- {0xEE64,0xEE64,0x7994},
- {0xEE65,0xEE65,0xFA1B},
- {0xEE66,0xEE66,0x799B},
- {0xEE67,0xEE67,0x7AD1},
- {0xEE68,0xEE68,0x7AE7},
- {0xEE69,0xEE69,0xFA1C},
- {0xEE6A,0xEE6A,0x7AEB},
- {0xEE6B,0xEE6B,0x7B9E},
- {0xEE6C,0xEE6C,0xFA1D},
- {0xEE6D,0xEE6D,0x7D48},
- {0xEE6E,0xEE6E,0x7D5C},
- {0xEE6F,0xEE6F,0x7DB7},
- {0xEE70,0xEE70,0x7DA0}, /* EE70 */
- {0xEE71,0xEE71,0x7DD6},
- {0xEE72,0xEE72,0x7E52},
- {0xEE73,0xEE73,0x7F47},
- {0xEE74,0xEE74,0x7FA1},
- {0xEE75,0xEE75,0xFA1E},
- {0xEE76,0xEE76,0x8301},
- {0xEE77,0xEE77,0x8362},
- {0xEE78,0xEE78,0x837F},
- {0xEE79,0xEE79,0x83C7},
- {0xEE7A,0xEE7A,0x83F6},
- {0xEE7B,0xEE7B,0x8448},
- {0xEE7C,0xEE7C,0x84B4},
- {0xEE7D,0xEE7D,0x8553},
- {0xEE7E,0xEE7E,0x8559},
- {0,0,0},
- {0xEE80,0xEE80,0x856B}, /* EE80 */
- {0xEE81,0xEE81,0xFA1F},
- {0xEE82,0xEE82,0x85B0},
- {0xEE83,0xEE83,0xFA20},
- {0xEE84,0xEE84,0xFA21},
- {0xEE85,0xEE85,0x8807},
- {0xEE86,0xEE86,0x88F5},
- {0xEE87,0xEE87,0x8A12},
- {0xEE88,0xEE88,0x8A37},
- {0xEE89,0xEE89,0x8A79},
- {0xEE8A,0xEE8A,0x8AA7},
- {0xEE8B,0xEE8B,0x8ABE},
- {0xEE8C,0xEE8C,0x8ADF},
- {0xEE8D,0xEE8D,0xFA22},
- {0xEE8E,0xEE8E,0x8AF6},
- {0xEE8F,0xEE8F,0x8B53},
- {0xEE90,0xEE90,0x8B7F}, /* EE90 */
- {0xEE91,0xEE91,0x8CF0},
- {0xEE92,0xEE92,0x8CF4},
- {0xEE93,0xEE93,0x8D12},
- {0xEE94,0xEE94,0x8D76},
- {0xEE95,0xEE95,0xFA23},
- {0xEE96,0xEE96,0x8ECF},
- {0xEE97,0xEE97,0xFA24},
- {0xEE98,0xEE98,0xFA25},
- {0xEE99,0xEE99,0x9067},
- {0xEE9A,0xEE9A,0x90DE},
- {0xEE9B,0xEE9B,0xFA26},
- {0xEE9C,0xEE9C,0x9115},
- {0xEE9D,0xEE9D,0x9127},
- {0xEE9E,0xEE9E,0x91DA},
- {0xEE9F,0xEE9F,0x91D7},
- {0xEEA0,0xEEA0,0x91DE}, /* EEA0 */
- {0xEEA1,0xEEA1,0x91ED},
- {0xEEA2,0xEEA2,0x91EE},
- {0xEEA3,0xEEA3,0x91E4},
- {0xEEA4,0xEEA4,0x91E5},
- {0xEEA5,0xEEA5,0x9206},
- {0xEEA6,0xEEA6,0x9210},
- {0xEEA7,0xEEA7,0x920A},
- {0xEEA8,0xEEA8,0x923A},
- {0xEEA9,0xEEA9,0x9240},
- {0xEEAA,0xEEAA,0x923C},
- {0xEEAB,0xEEAB,0x924E},
- {0xEEAC,0xEEAC,0x9259},
- {0xEEAD,0xEEAD,0x9251},
- {0xEEAE,0xEEAE,0x9239},
- {0xEEAF,0xEEAF,0x9267},
- {0xEEB0,0xEEB0,0x92A7}, /* EEB0 */
- {0xEEB1,0xEEB1,0x9277},
- {0xEEB2,0xEEB2,0x9278},
- {0xEEB3,0xEEB3,0x92E7},
- {0xEEB4,0xEEB4,0x92D7},
- {0xEEB5,0xEEB5,0x92D9},
- {0xEEB6,0xEEB6,0x92D0},
- {0xEEB7,0xEEB7,0xFA27},
- {0xEEB8,0xEEB8,0x92D5},
- {0xEEB9,0xEEB9,0x92E0},
- {0xEEBA,0xEEBA,0x92D3},
- {0xEEBB,0xEEBB,0x9325},
- {0xEEBC,0xEEBC,0x9321},
- {0xEEBD,0xEEBD,0x92FB},
- {0xEEBE,0xEEBE,0xFA28},
- {0xEEBF,0xEEBF,0x931E},
- {0xEEC0,0xEEC0,0x92FF}, /* EEC0 */
- {0xEEC1,0xEEC1,0x931D},
- {0xEEC2,0xEEC2,0x9302},
- {0xEEC3,0xEEC3,0x9370},
- {0xEEC4,0xEEC4,0x9357},
- {0xEEC5,0xEEC5,0x93A4},
- {0xEEC6,0xEEC6,0x93C6},
- {0xEEC7,0xEEC7,0x93DE},
- {0xEEC8,0xEEC8,0x93F8},
- {0xEEC9,0xEEC9,0x9431},
- {0xEECA,0xEECA,0x9445},
- {0xEECB,0xEECB,0x9448},
- {0xEECC,0xEECC,0x9592},
- {0xEECD,0xEECD,0xF9DC},
- {0xEECE,0xEECE,0xFA29},
- {0xEECF,0xEECF,0x969D},
- {0xEED0,0xEED0,0x96AF}, /* EED0 */
- {0xEED1,0xEED1,0x9733},
- {0xEED2,0xEED2,0x973B},
- {0xEED3,0xEED3,0x9743},
- {0xEED4,0xEED4,0x974D},
- {0xEED5,0xEED5,0x974F},
- {0xEED6,0xEED6,0x9751},
- {0xEED7,0xEED7,0x9755},
- {0xEED8,0xEED8,0x9857},
- {0xEED9,0xEED9,0x9865},
- {0xEEDA,0xEEDA,0xFA2A},
- {0xEEDB,0xEEDB,0xFA2B},
- {0xEEDC,0xEEDC,0x9927},
- {0xEEDD,0xEEDD,0xFA2C},
- {0xEEDE,0xEEDE,0x999E},
- {0xEEDF,0xEEDF,0x9A4E},
- {0xEEE0,0xEEE0,0x9AD9}, /* EEE0 */
- {0xEEE1,0xEEE1,0x9ADC},
- {0xEEE2,0xEEE2,0x9B75},
- {0xEEE3,0xEEE3,0x9B72},
- {0xEEE4,0xEEE4,0x9B8F},
- {0xEEE5,0xEEE5,0x9BB1},
- {0xEEE6,0xEEE6,0x9BBB},
- {0xEEE7,0xEEE7,0x9C00},
- {0xEEE8,0xEEE8,0x9D70},
- {0xEEE9,0xEEE9,0x9D6B},
- {0xEEEA,0xEEEA,0xFA2D},
- {0xEEEB,0xEEEB,0x9E19},
- {0xEEEC,0xEEEC,0x9ED1},
- {0xEEED,0xEEED,0x003F},
- {0xEEEE,0xEEEE,0x003F},
- {0x8754,0xEEEF,0x2170},
- {0x8755,0xEEF0,0x2171}, /* EEF0 */
- {0x8756,0xEEF1,0x2172},
- {0x8757,0xEEF2,0x2173},
- {0x8758,0xEEF3,0x2174},
- {0x8759,0xEEF4,0x2175},
- {0x875A,0xEEF5,0x2176},
- {0x875B,0xEEF6,0x2177},
- {0x875C,0xEEF7,0x2178},
- {0x875D,0xEEF8,0x2179},
- {0xEEF9,0xEEF9,0xFFE2},
- {0xEEFA,0xEEFA,0xFFE4},
- {0xEEFB,0xEEFB,0xFF07},
- {0xEEFC,0xEEFC,0xFF02},
- {0,0,0},
- {0,0,0},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO cFA[256]=
-{
- /* FA00-FA0F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* FA10-FA1F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* FA20-FA2F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- /* FA30-FA3F */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
-
- {0xFA4A,0xFA40,0x2170}, /* FA40 */
- {0xFA4B,0xFA41,0x2171},
- {0xFA4C,0xFA42,0x2172},
- {0xFA4D,0xFA43,0x2173},
- {0xFA4E,0xFA44,0x2174},
- {0xFA4F,0xFA45,0x2175},
- {0xFA50,0xFA46,0x2176},
- {0xFA51,0xFA47,0x2177},
- {0xFA52,0xFA48,0x2178},
- {0xFA53,0xFA49,0x2179},
- {0xFA4A,0xFA40,0x2160},
- {0xFA4B,0xFA41,0x2161},
- {0xFA4C,0xFA42,0x2162},
- {0xFA4D,0xFA43,0x2163},
- {0xFA4E,0xFA44,0x2164},
- {0xFA4F,0xFA45,0x2165},
- {0xFA50,0xFA46,0x2166}, /* FA50 */
- {0xFA51,0xFA47,0x2167},
- {0xFA52,0xFA48,0x2168},
- {0xFA53,0xFA49,0x2169},
- {0xFA54,0xFA54,0xFFE2},
- {0xFA55,0xFA55,0xFFE4},
- {0xFA56,0xFA56,0xFF07},
- {0xFA57,0xFA57,0xFF02},
- {0xFA58,0xFA58,0x3231},
- {0xFA59,0xFA59,0x2116},
- {0xFA5A,0xFA5A,0x2121},
- {0xFA5B,0xFA5B,0x2235},
- {0xFA5C,0xFA5C,0x7E8A},
- {0xFA5D,0xFA5D,0x891C},
- {0xFA5E,0xFA5E,0x9348},
- {0xFA5F,0xFA5F,0x9288},
- {0xFA60,0xFA60,0x84DC}, /* FA60 */
- {0xFA61,0xFA61,0x4FC9},
- {0xFA62,0xFA62,0x70BB},
- {0xFA63,0xFA63,0x6631},
- {0xFA64,0xFA64,0x68C8},
- {0xFA65,0xFA65,0x92F9},
- {0xFA66,0xFA66,0x66FB},
- {0xFA67,0xFA67,0x5F45},
- {0xFA68,0xFA68,0x4E28},
- {0xFA69,0xFA69,0x4EE1},
- {0xFA6A,0xFA6A,0x4EFC},
- {0xFA6B,0xFA6B,0x4F00},
- {0xFA6C,0xFA6C,0x4F03},
- {0xFA6D,0xFA6D,0x4F39},
- {0xFA6E,0xFA6E,0x4F56},
- {0xFA6F,0xFA6F,0x4F92},
- {0xFA70,0xFA70,0x4F8A}, /* FA70 */
- {0xFA71,0xFA71,0x4F9A},
- {0xFA72,0xFA72,0x4F94},
- {0xFA73,0xFA73,0x4FCD},
- {0xFA74,0xFA74,0x5040},
- {0xFA75,0xFA75,0x5022},
- {0xFA76,0xFA76,0x4FFF},
- {0xFA77,0xFA77,0x501E},
- {0xFA78,0xFA78,0x5046},
- {0xFA79,0xFA79,0x5070},
- {0xFA7A,0xFA7A,0x5042},
- {0xFA7B,0xFA7B,0x5094},
- {0xFA7C,0xFA7C,0x50F4},
- {0xFA7D,0xFA7D,0x50D8},
- {0xFA7E,0xFA7E,0x514A},
- {0,0,0},
- {0xFA80,0xFA80,0x5164}, /* FA80 */
- {0xFA81,0xFA81,0x519D},
- {0xFA82,0xFA82,0x51BE},
- {0xFA83,0xFA83,0x51EC},
- {0xFA84,0xFA84,0x5215},
- {0xFA85,0xFA85,0x529C},
- {0xFA86,0xFA86,0x52A6},
- {0xFA87,0xFA87,0x52C0},
- {0xFA88,0xFA88,0x52DB},
- {0xFA89,0xFA89,0x5300},
- {0xFA8A,0xFA8A,0x5307},
- {0xFA8B,0xFA8B,0x5324},
- {0xFA8C,0xFA8C,0x5372},
- {0xFA8D,0xFA8D,0x5393},
- {0xFA8E,0xFA8E,0x53B2},
- {0xFA8F,0xFA8F,0x53DD},
- {0xFA90,0xFA90,0xFA0E}, /* FA90 */
- {0xFA91,0xFA91,0x549C},
- {0xFA92,0xFA92,0x548A},
- {0xFA93,0xFA93,0x54A9},
- {0xFA94,0xFA94,0x54FF},
- {0xFA95,0xFA95,0x5586},
- {0xFA96,0xFA96,0x5759},
- {0xFA97,0xFA97,0x5765},
- {0xFA98,0xFA98,0x57AC},
- {0xFA99,0xFA99,0x57C8},
- {0xFA9A,0xFA9A,0x57C7},
- {0xFA9B,0xFA9B,0xFA0F},
- {0xFA9C,0xFA9C,0xFA10},
- {0xFA9D,0xFA9D,0x589E},
- {0xFA9E,0xFA9E,0x58B2},
- {0xFA9F,0xFA9F,0x590B},
- {0xFAA0,0xFAA0,0x5953}, /* FAA0 */
- {0xFAA1,0xFAA1,0x595B},
- {0xFAA2,0xFAA2,0x595D},
- {0xFAA3,0xFAA3,0x5963},
- {0xFAA4,0xFAA4,0x59A4},
- {0xFAA5,0xFAA5,0x59BA},
- {0xFAA6,0xFAA6,0x5B56},
- {0xFAA7,0xFAA7,0x5BC0},
- {0xFAA8,0xFAA8,0x752F},
- {0xFAA9,0xFAA9,0x5BD8},
- {0xFAAA,0xFAAA,0x5BEC},
- {0xFAAB,0xFAAB,0x5C1E},
- {0xFAAC,0xFAAC,0x5CA6},
- {0xFAAD,0xFAAD,0x5CBA},
- {0xFAAE,0xFAAE,0x5CF5},
- {0xFAAF,0xFAAF,0x5D27},
- {0xFAB0,0xFAB0,0x5D53}, /* FAB0 */
- {0xFAB1,0xFAB1,0xFA11},
- {0xFAB2,0xFAB2,0x5D42},
- {0xFAB3,0xFAB3,0x5D6D},
- {0xFAB4,0xFAB4,0x5DB8},
- {0xFAB5,0xFAB5,0x5DB9},
- {0xFAB6,0xFAB6,0x5DD0},
- {0xFAB7,0xFAB7,0x5F21},
- {0xFAB8,0xFAB8,0x5F34},
- {0xFAB9,0xFAB9,0x5F67},
- {0xFABA,0xFABA,0x5FB7},
- {0xFABB,0xFABB,0x5FDE},
- {0xFABC,0xFABC,0x605D},
- {0xFABD,0xFABD,0x6085},
- {0xFABE,0xFABE,0x608A},
- {0xFABF,0xFABF,0x60DE},
- {0xFAC0,0xFAC0,0x60D5}, /* FAC0 */
- {0xFAC1,0xFAC1,0x6120},
- {0xFAC2,0xFAC2,0x60F2},
- {0xFAC3,0xFAC3,0x6111},
- {0xFAC4,0xFAC4,0x6137},
- {0xFAC5,0xFAC5,0x6130},
- {0xFAC6,0xFAC6,0x6198},
- {0xFAC7,0xFAC7,0x6213},
- {0xFAC8,0xFAC8,0x62A6},
- {0xFAC9,0xFAC9,0x63F5},
- {0xFACA,0xFACA,0x6460},
- {0xFACB,0xFACB,0x649D},
- {0xFACC,0xFACC,0x64CE},
- {0xFACD,0xFACD,0x654E},
- {0xFACE,0xFACE,0x6600},
- {0xFACF,0xFACF,0x6615},
- {0xFAD0,0xFAD0,0x663B}, /* FAD0 */
- {0xFAD1,0xFAD1,0x6609},
- {0xFAD2,0xFAD2,0x662E},
- {0xFAD3,0xFAD3,0x661E},
- {0xFAD4,0xFAD4,0x6624},
- {0xFAD5,0xFAD5,0x6665},
- {0xFAD6,0xFAD6,0x6657},
- {0xFAD7,0xFAD7,0x6659},
- {0xFAD8,0xFAD8,0xFA12},
- {0xFAD9,0xFAD9,0x6673},
- {0xFADA,0xFADA,0x6699},
- {0xFADB,0xFADB,0x66A0},
- {0xFADC,0xFADC,0x66B2},
- {0xFADD,0xFADD,0x66BF},
- {0xFADE,0xFADE,0x66FA},
- {0xFADF,0xFADF,0x670E},
- {0xFAE0,0xFAE0,0xF929}, /* FAE0 */
- {0xFAE1,0xFAE1,0x6766},
- {0xFAE2,0xFAE2,0x67BB},
- {0xFAE3,0xFAE3,0x6852},
- {0xFAE4,0xFAE4,0x67C0},
- {0xFAE5,0xFAE5,0x6801},
- {0xFAE6,0xFAE6,0x6844},
- {0xFAE7,0xFAE7,0x68CF},
- {0xFAE8,0xFAE8,0xFA13},
- {0xFAE9,0xFAE9,0x6968},
- {0xFAEA,0xFAEA,0xFA14},
- {0xFAEB,0xFAEB,0x6998},
- {0xFAEC,0xFAEC,0x69E2},
- {0xFAED,0xFAED,0x6A30},
- {0xFAEE,0xFAEE,0x6A6B},
- {0xFAEF,0xFAEF,0x6A46},
- {0xFAF0,0xFAF0,0x6A73}, /* FAF0 */
- {0xFAF1,0xFAF1,0x6A7E},
- {0xFAF2,0xFAF2,0x6AE2},
- {0xFAF3,0xFAF3,0x6AE4},
- {0xFAF4,0xFAF4,0x6BD6},
- {0xFAF5,0xFAF5,0x6C3F},
- {0xFAF6,0xFAF6,0x6C5C},
- {0xFAF7,0xFAF7,0x6C86},
- {0xFAF8,0xFAF8,0x6C6F},
- {0xFAF9,0xFAF9,0x6CDA},
- {0xFAFA,0xFAFA,0x6D04},
- {0xFAFB,0xFAFB,0x6D87},
- {0xFAFC,0xFAFC,0x6D6F},
- {0,0,0},
- {0,0,0},
- {0,0,0}
-};
-
-
-static MY_UNICASE_INFO *my_caseinfo_cp932[256]=
-{
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, c81, c82, c83, c84, NULL, NULL, c87, /* 8 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* A */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
- NULL, NULL, NULL, NULL, NULL, NULL, cEE, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
- NULL, NULL, cFA, NULL, NULL, NULL, NULL, NULL
-};
-
-
-static int my_strnncoll_cp932_internal(CHARSET_INFO *cs,
- const uchar **a_res, size_t a_length,
- const uchar **b_res, size_t b_length)
-{
- const uchar *a= *a_res, *b= *b_res;
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- while (a < a_end && b < b_end)
- {
- if (ismbchar_cp932(cs,(char*) a, (char*) a_end) &&
- ismbchar_cp932(cs,(char*) b, (char*) b_end))
- {
- uint a_char= cp932code(*a, *(a+1));
- uint b_char= cp932code(*b, *(b+1));
- if (a_char != b_char)
- return a_char - b_char;
- a += 2;
- b += 2;
- } else
- {
- if (sort_order_cp932[(uchar)*a] != sort_order_cp932[(uchar)*b])
- return sort_order_cp932[(uchar)*a] - sort_order_cp932[(uchar)*b];
- a++;
- b++;
- }
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-static int my_strnncoll_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length);
- if (b_is_prefix && a_length > b_length)
- a_length= b_length;
- return res ? res : (int) (a_length - b_length);
-}
-
-
-static int my_strnncollsp_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && (a != a_end || b != b_end))
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a == a_end)
- {
- /* put shorter key in a */
- a_end= b_end;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (; a < a_end ; a++)
- {
- if (*a != (uchar) ' ')
- return (*a < (uchar) ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-
-static size_t my_strnxfrm_cp932(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uchar *d_end = dest + len;
- uchar *s_end = (uchar*) src + srclen;
- while (dest < d_end && src < s_end)
- {
- if (ismbchar_cp932(cs,(char*) src, (char*) s_end))
- {
- *dest++ = *src++;
- if (dest < d_end && src < s_end)
- *dest++ = *src++;
- }
- else
- *dest++ = sort_order_cp932[(uchar)*src++];
- }
- if (len > srclen)
- bfill(dest, len - srclen, ' ');
- return len;
-}
-
-
-static uint16 cp932_to_unicode[65536]=
-{
- 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */
- 0x0004, 0x0005, 0x0006, 0x0007,
- 0x0008, 0x0009, 0x000A, 0x000B,
- 0x000C, 0x000D, 0x000E, 0x000F,
- 0x0010, 0x0011, 0x0012, 0x0013,
- 0x0014, 0x0015, 0x0016, 0x0017,
- 0x0018, 0x0019, 0x001A, 0x001B,
- 0x001C, 0x001D, 0x001E, 0x001F,
- 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */
- 0x0024, 0x0025, 0x0026, 0x0027,
- 0x0028, 0x0029, 0x002A, 0x002B,
- 0x002C, 0x002D, 0x002E, 0x002F,
- 0x0030, 0x0031, 0x0032, 0x0033,
- 0x0034, 0x0035, 0x0036, 0x0037,
- 0x0038, 0x0039, 0x003A, 0x003B,
- 0x003C, 0x003D, 0x003E, 0x003F,
- 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */
- 0x0044, 0x0045, 0x0046, 0x0047,
- 0x0048, 0x0049, 0x004A, 0x004B,
- 0x004C, 0x004D, 0x004E, 0x004F,
- 0x0050, 0x0051, 0x0052, 0x0053,
- 0x0054, 0x0055, 0x0056, 0x0057,
- 0x0058, 0x0059, 0x005A, 0x005B,
- 0x005C, 0x005D, 0x005E, 0x005F,
- 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */
- 0x0064, 0x0065, 0x0066, 0x0067,
- 0x0068, 0x0069, 0x006A, 0x006B,
- 0x006C, 0x006D, 0x006E, 0x006F,
- 0x0070, 0x0071, 0x0072, 0x0073,
- 0x0074, 0x0075, 0x0076, 0x0077,
- 0x0078, 0x0079, 0x007A, 0x007B,
- 0x007C, 0x007D, 0x007E, 0x007F,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0xFF61, 0xFF62, 0xFF63, /* 00A0 */
- 0xFF64, 0xFF65, 0xFF66, 0xFF67,
- 0xFF68, 0xFF69, 0xFF6A, 0xFF6B,
- 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F,
- 0xFF70, 0xFF71, 0xFF72, 0xFF73,
- 0xFF74, 0xFF75, 0xFF76, 0xFF77,
- 0xFF78, 0xFF79, 0xFF7A, 0xFF7B,
- 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F,
- 0xFF80, 0xFF81, 0xFF82, 0xFF83, /* 00C0 */
- 0xFF84, 0xFF85, 0xFF86, 0xFF87,
- 0xFF88, 0xFF89, 0xFF8A, 0xFF8B,
- 0xFF8C, 0xFF8D, 0xFF8E, 0xFF8F,
- 0xFF90, 0xFF91, 0xFF92, 0xFF93,
- 0xFF94, 0xFF95, 0xFF96, 0xFF97,
- 0xFF98, 0xFF99, 0xFF9A, 0xFF9B,
- 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 03A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 03C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 25A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 30A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 30C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 30E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 33A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 50C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 50E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 51A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 51E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 52A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 52C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 52E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 53A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 53C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 53E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 54A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 54C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 54E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 55E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 56A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 56C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 56E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 57A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 57C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 57E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 58C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 59A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 60A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 60E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 61C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 61E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 62C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 62E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 63A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 63C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 63E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 64C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 64E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 65A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 65C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 65E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 66A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 66C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 66E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 67A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 67C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 67E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 68A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 68E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 69A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 69C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 69E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 71C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 71E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 72A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 72C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 72E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 73C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 73E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 74A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 74E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 75A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 75C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 75E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 76C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 76E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 77A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 77E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 78A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 78C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 79C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 79E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 80A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 80C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 80E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x3000, 0x3001, 0x3002, 0xFF0C, /* 8140 */
- 0xFF0E, 0x30FB, 0xFF1A, 0xFF1B,
- 0xFF1F, 0xFF01, 0x309B, 0x309C,
- 0x00B4, 0xFF40, 0x00A8, 0xFF3E,
- 0xFFE3, 0xFF3F, 0x30FD, 0x30FE,
- 0x309D, 0x309E, 0x3003, 0x4EDD,
- 0x3005, 0x3006, 0x3007, 0x30FC,
- 0x2015, 0x2010, 0xFF0F, 0xFF3C,
- 0xFF5E, 0x2225, 0xFF5C, 0x2026, /* 8160 */
- 0x2025, 0x2018, 0x2019, 0x201C,
- 0x201D, 0xFF08, 0xFF09, 0x3014,
- 0x3015, 0xFF3B, 0xFF3D, 0xFF5B,
- 0xFF5D, 0x3008, 0x3009, 0x300A,
- 0x300B, 0x300C, 0x300D, 0x300E,
- 0x300F, 0x3010, 0x3011, 0xFF0B,
- 0xFF0D, 0x00B1, 0x00D7, 0x0000,
- 0x00F7, 0xFF1D, 0x2260, 0xFF1C, /* 8180 */
- 0xFF1E, 0x2266, 0x2267, 0x221E,
- 0x2234, 0x2642, 0x2640, 0x00B0,
- 0x2032, 0x2033, 0x2103, 0xFFE5,
- 0xFF04, 0xFFE0, 0xFFE1, 0xFF05,
- 0xFF03, 0xFF06, 0xFF0A, 0xFF20,
- 0x00A7, 0x2606, 0x2605, 0x25CB,
- 0x25CF, 0x25CE, 0x25C7, 0x25C6,
- 0x25A1, 0x25A0, 0x25B3, 0x25B2, /* 81A0 */
- 0x25BD, 0x25BC, 0x203B, 0x3012,
- 0x2192, 0x2190, 0x2191, 0x2193,
- 0x3013, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x2208, 0x220B, 0x2286, 0x2287,
- 0x2282, 0x2283, 0x222A, 0x2229,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 81C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x2227, 0x2228, 0xFFE2, 0x21D2,
- 0x21D4, 0x2200, 0x2203, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x2220, 0x22A5,
- 0x2312, 0x2202, 0x2207, 0x2261,
- 0x2252, 0x226A, 0x226B, 0x221A, /* 81E0 */
- 0x223D, 0x221D, 0x2235, 0x222B,
- 0x222C, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x212B, 0x2030, 0x266F, 0x266D,
- 0x266A, 0x2020, 0x2021, 0x00B6,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x25EF, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0xFF10,
- 0xFF11, 0xFF12, 0xFF13, 0xFF14,
- 0xFF15, 0xFF16, 0xFF17, 0xFF18,
- 0xFF19, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xFF21, 0xFF22, 0xFF23, 0xFF24, /* 8260 */
- 0xFF25, 0xFF26, 0xFF27, 0xFF28,
- 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C,
- 0xFF2D, 0xFF2E, 0xFF2F, 0xFF30,
- 0xFF31, 0xFF32, 0xFF33, 0xFF34,
- 0xFF35, 0xFF36, 0xFF37, 0xFF38,
- 0xFF39, 0xFF3A, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0xFF41, 0xFF42, 0xFF43, /* 8280 */
- 0xFF44, 0xFF45, 0xFF46, 0xFF47,
- 0xFF48, 0xFF49, 0xFF4A, 0xFF4B,
- 0xFF4C, 0xFF4D, 0xFF4E, 0xFF4F,
- 0xFF50, 0xFF51, 0xFF52, 0xFF53,
- 0xFF54, 0xFF55, 0xFF56, 0xFF57,
- 0xFF58, 0xFF59, 0xFF5A, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x3041,
- 0x3042, 0x3043, 0x3044, 0x3045, /* 82A0 */
- 0x3046, 0x3047, 0x3048, 0x3049,
- 0x304A, 0x304B, 0x304C, 0x304D,
- 0x304E, 0x304F, 0x3050, 0x3051,
- 0x3052, 0x3053, 0x3054, 0x3055,
- 0x3056, 0x3057, 0x3058, 0x3059,
- 0x305A, 0x305B, 0x305C, 0x305D,
- 0x305E, 0x305F, 0x3060, 0x3061,
- 0x3062, 0x3063, 0x3064, 0x3065, /* 82C0 */
- 0x3066, 0x3067, 0x3068, 0x3069,
- 0x306A, 0x306B, 0x306C, 0x306D,
- 0x306E, 0x306F, 0x3070, 0x3071,
- 0x3072, 0x3073, 0x3074, 0x3075,
- 0x3076, 0x3077, 0x3078, 0x3079,
- 0x307A, 0x307B, 0x307C, 0x307D,
- 0x307E, 0x307F, 0x3080, 0x3081,
- 0x3082, 0x3083, 0x3084, 0x3085, /* 82E0 */
- 0x3086, 0x3087, 0x3088, 0x3089,
- 0x308A, 0x308B, 0x308C, 0x308D,
- 0x308E, 0x308F, 0x3090, 0x3091,
- 0x3092, 0x3093, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x30A1, 0x30A2, 0x30A3, 0x30A4, /* 8340 */
- 0x30A5, 0x30A6, 0x30A7, 0x30A8,
- 0x30A9, 0x30AA, 0x30AB, 0x30AC,
- 0x30AD, 0x30AE, 0x30AF, 0x30B0,
- 0x30B1, 0x30B2, 0x30B3, 0x30B4,
- 0x30B5, 0x30B6, 0x30B7, 0x30B8,
- 0x30B9, 0x30BA, 0x30BB, 0x30BC,
- 0x30BD, 0x30BE, 0x30BF, 0x30C0,
- 0x30C1, 0x30C2, 0x30C3, 0x30C4, /* 8360 */
- 0x30C5, 0x30C6, 0x30C7, 0x30C8,
- 0x30C9, 0x30CA, 0x30CB, 0x30CC,
- 0x30CD, 0x30CE, 0x30CF, 0x30D0,
- 0x30D1, 0x30D2, 0x30D3, 0x30D4,
- 0x30D5, 0x30D6, 0x30D7, 0x30D8,
- 0x30D9, 0x30DA, 0x30DB, 0x30DC,
- 0x30DD, 0x30DE, 0x30DF, 0x0000,
- 0x30E0, 0x30E1, 0x30E2, 0x30E3, /* 8380 */
- 0x30E4, 0x30E5, 0x30E6, 0x30E7,
- 0x30E8, 0x30E9, 0x30EA, 0x30EB,
- 0x30EC, 0x30ED, 0x30EE, 0x30EF,
- 0x30F0, 0x30F1, 0x30F2, 0x30F3,
- 0x30F4, 0x30F5, 0x30F6, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0391,
- 0x0392, 0x0393, 0x0394, 0x0395, /* 83A0 */
- 0x0396, 0x0397, 0x0398, 0x0399,
- 0x039A, 0x039B, 0x039C, 0x039D,
- 0x039E, 0x039F, 0x03A0, 0x03A1,
- 0x03A3, 0x03A4, 0x03A5, 0x03A6,
- 0x03A7, 0x03A8, 0x03A9, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x03B1,
- 0x03B2, 0x03B3, 0x03B4, 0x03B5, /* 83C0 */
- 0x03B6, 0x03B7, 0x03B8, 0x03B9,
- 0x03BA, 0x03BB, 0x03BC, 0x03BD,
- 0x03BE, 0x03BF, 0x03C0, 0x03C1,
- 0x03C3, 0x03C4, 0x03C5, 0x03C6,
- 0x03C7, 0x03C8, 0x03C9, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 83E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0410, 0x0411, 0x0412, 0x0413, /* 8440 */
- 0x0414, 0x0415, 0x0401, 0x0416,
- 0x0417, 0x0418, 0x0419, 0x041A,
- 0x041B, 0x041C, 0x041D, 0x041E,
- 0x041F, 0x0420, 0x0421, 0x0422,
- 0x0423, 0x0424, 0x0425, 0x0426,
- 0x0427, 0x0428, 0x0429, 0x042A,
- 0x042B, 0x042C, 0x042D, 0x042E,
- 0x042F, 0x0000, 0x0000, 0x0000, /* 8460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0430, 0x0431, 0x0432, 0x0433,
- 0x0434, 0x0435, 0x0451, 0x0436,
- 0x0437, 0x0438, 0x0439, 0x043A,
- 0x043B, 0x043C, 0x043D, 0x0000,
- 0x043E, 0x043F, 0x0440, 0x0441, /* 8480 */
- 0x0442, 0x0443, 0x0444, 0x0445,
- 0x0446, 0x0447, 0x0448, 0x0449,
- 0x044A, 0x044B, 0x044C, 0x044D,
- 0x044E, 0x044F, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x2500,
- 0x2502, 0x250C, 0x2510, 0x2518, /* 84A0 */
- 0x2514, 0x251C, 0x252C, 0x2524,
- 0x2534, 0x253C, 0x2501, 0x2503,
- 0x250F, 0x2513, 0x251B, 0x2517,
- 0x2523, 0x2533, 0x252B, 0x253B,
- 0x254B, 0x2520, 0x252F, 0x2528,
- 0x2537, 0x253F, 0x251D, 0x2530,
- 0x2525, 0x2538, 0x2542, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 84C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 85C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 86A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x2460, 0x2461, 0x2462, 0x2463, /* 8740 */
- 0x2464, 0x2465, 0x2466, 0x2467,
- 0x2468, 0x2469, 0x246A, 0x246B,
- 0x246C, 0x246D, 0x246E, 0x246F,
- 0x2470, 0x2471, 0x2472, 0x2473,
- 0x2160, 0x2161, 0x2162, 0x2163,
- 0x2164, 0x2165, 0x2166, 0x2167,
- 0x2168, 0x2169, 0x0000, 0x3349,
- 0x3314, 0x3322, 0x334D, 0x3318, /* 8760 */
- 0x3327, 0x3303, 0x3336, 0x3351,
- 0x3357, 0x330D, 0x3326, 0x3323,
- 0x332B, 0x334A, 0x333B, 0x339C,
- 0x339D, 0x339E, 0x338E, 0x338F,
- 0x33C4, 0x33A1, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x337B, 0x0000,
- 0x301D, 0x301F, 0x2116, 0x33CD, /* 8780 */
- 0x2121, 0x32A4, 0x32A5, 0x32A6,
- 0x32A7, 0x32A8, 0x3231, 0x3232,
- 0x3239, 0x337E, 0x337D, 0x337C,
- 0x2252, 0x2261, 0x222B, 0x222E,
- 0x2211, 0x221A, 0x22A5, 0x2220,
- 0x221F, 0x22BF, 0x2235, 0x2229,
- 0x222A, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 87A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 87C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 87E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x4E9C,
- 0x5516, 0x5A03, 0x963F, 0x54C0, /* 88A0 */
- 0x611B, 0x6328, 0x59F6, 0x9022,
- 0x8475, 0x831C, 0x7A50, 0x60AA,
- 0x63E1, 0x6E25, 0x65ED, 0x8466,
- 0x82A6, 0x9BF5, 0x6893, 0x5727,
- 0x65A1, 0x6271, 0x5B9B, 0x59D0,
- 0x867B, 0x98F4, 0x7D62, 0x7DBE,
- 0x9B8E, 0x6216, 0x7C9F, 0x88B7,
- 0x5B89, 0x5EB5, 0x6309, 0x6697, /* 88C0 */
- 0x6848, 0x95C7, 0x978D, 0x674F,
- 0x4EE5, 0x4F0A, 0x4F4D, 0x4F9D,
- 0x5049, 0x56F2, 0x5937, 0x59D4,
- 0x5A01, 0x5C09, 0x60DF, 0x610F,
- 0x6170, 0x6613, 0x6905, 0x70BA,
- 0x754F, 0x7570, 0x79FB, 0x7DAD,
- 0x7DEF, 0x80C3, 0x840E, 0x8863,
- 0x8B02, 0x9055, 0x907A, 0x533B, /* 88E0 */
- 0x4E95, 0x4EA5, 0x57DF, 0x80B2,
- 0x90C1, 0x78EF, 0x4E00, 0x58F1,
- 0x6EA2, 0x9038, 0x7A32, 0x8328,
- 0x828B, 0x9C2F, 0x5141, 0x5370,
- 0x54BD, 0x54E1, 0x56E0, 0x59FB,
- 0x5F15, 0x98F2, 0x6DEB, 0x80E4,
- 0x852D, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9662, 0x9670, 0x96A0, 0x97FB, /* 8940 */
- 0x540B, 0x53F3, 0x5B87, 0x70CF,
- 0x7FBD, 0x8FC2, 0x96E8, 0x536F,
- 0x9D5C, 0x7ABA, 0x4E11, 0x7893,
- 0x81FC, 0x6E26, 0x5618, 0x5504,
- 0x6B1D, 0x851A, 0x9C3B, 0x59E5,
- 0x53A9, 0x6D66, 0x74DC, 0x958F,
- 0x5642, 0x4E91, 0x904B, 0x96F2,
- 0x834F, 0x990C, 0x53E1, 0x55B6, /* 8960 */
- 0x5B30, 0x5F71, 0x6620, 0x66F3,
- 0x6804, 0x6C38, 0x6CF3, 0x6D29,
- 0x745B, 0x76C8, 0x7A4E, 0x9834,
- 0x82F1, 0x885B, 0x8A60, 0x92ED,
- 0x6DB2, 0x75AB, 0x76CA, 0x99C5,
- 0x60A6, 0x8B01, 0x8D8A, 0x95B2,
- 0x698E, 0x53AD, 0x5186, 0x0000,
- 0x5712, 0x5830, 0x5944, 0x5BB4, /* 8980 */
- 0x5EF6, 0x6028, 0x63A9, 0x63F4,
- 0x6CBF, 0x6F14, 0x708E, 0x7114,
- 0x7159, 0x71D5, 0x733F, 0x7E01,
- 0x8276, 0x82D1, 0x8597, 0x9060,
- 0x925B, 0x9D1B, 0x5869, 0x65BC,
- 0x6C5A, 0x7525, 0x51F9, 0x592E,
- 0x5965, 0x5F80, 0x5FDC, 0x62BC,
- 0x65FA, 0x6A2A, 0x6B27, 0x6BB4, /* 89A0 */
- 0x738B, 0x7FC1, 0x8956, 0x9D2C,
- 0x9D0E, 0x9EC4, 0x5CA1, 0x6C96,
- 0x837B, 0x5104, 0x5C4B, 0x61B6,
- 0x81C6, 0x6876, 0x7261, 0x4E59,
- 0x4FFA, 0x5378, 0x6069, 0x6E29,
- 0x7A4F, 0x97F3, 0x4E0B, 0x5316,
- 0x4EEE, 0x4F55, 0x4F3D, 0x4FA1,
- 0x4F73, 0x52A0, 0x53EF, 0x5609, /* 89C0 */
- 0x590F, 0x5AC1, 0x5BB6, 0x5BE1,
- 0x79D1, 0x6687, 0x679C, 0x67B6,
- 0x6B4C, 0x6CB3, 0x706B, 0x73C2,
- 0x798D, 0x79BE, 0x7A3C, 0x7B87,
- 0x82B1, 0x82DB, 0x8304, 0x8377,
- 0x83EF, 0x83D3, 0x8766, 0x8AB2,
- 0x5629, 0x8CA8, 0x8FE6, 0x904E,
- 0x971E, 0x868A, 0x4FC4, 0x5CE8, /* 89E0 */
- 0x6211, 0x7259, 0x753B, 0x81E5,
- 0x82BD, 0x86FE, 0x8CC0, 0x96C5,
- 0x9913, 0x99D5, 0x4ECB, 0x4F1A,
- 0x89E3, 0x56DE, 0x584A, 0x58CA,
- 0x5EFB, 0x5FEB, 0x602A, 0x6094,
- 0x6062, 0x61D0, 0x6212, 0x62D0,
- 0x6539, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9B41, 0x6666, 0x68B0, 0x6D77, /* 8A40 */
- 0x7070, 0x754C, 0x7686, 0x7D75,
- 0x82A5, 0x87F9, 0x958B, 0x968E,
- 0x8C9D, 0x51F1, 0x52BE, 0x5916,
- 0x54B3, 0x5BB3, 0x5D16, 0x6168,
- 0x6982, 0x6DAF, 0x788D, 0x84CB,
- 0x8857, 0x8A72, 0x93A7, 0x9AB8,
- 0x6D6C, 0x99A8, 0x86D9, 0x57A3,
- 0x67FF, 0x86CE, 0x920E, 0x5283, /* 8A60 */
- 0x5687, 0x5404, 0x5ED3, 0x62E1,
- 0x64B9, 0x683C, 0x6838, 0x6BBB,
- 0x7372, 0x78BA, 0x7A6B, 0x899A,
- 0x89D2, 0x8D6B, 0x8F03, 0x90ED,
- 0x95A3, 0x9694, 0x9769, 0x5B66,
- 0x5CB3, 0x697D, 0x984D, 0x984E,
- 0x639B, 0x7B20, 0x6A2B, 0x0000,
- 0x6A7F, 0x68B6, 0x9C0D, 0x6F5F, /* 8A80 */
- 0x5272, 0x559D, 0x6070, 0x62EC,
- 0x6D3B, 0x6E07, 0x6ED1, 0x845B,
- 0x8910, 0x8F44, 0x4E14, 0x9C39,
- 0x53F6, 0x691B, 0x6A3A, 0x9784,
- 0x682A, 0x515C, 0x7AC3, 0x84B2,
- 0x91DC, 0x938C, 0x565B, 0x9D28,
- 0x6822, 0x8305, 0x8431, 0x7CA5,
- 0x5208, 0x82C5, 0x74E6, 0x4E7E, /* 8AA0 */
- 0x4F83, 0x51A0, 0x5BD2, 0x520A,
- 0x52D8, 0x52E7, 0x5DFB, 0x559A,
- 0x582A, 0x59E6, 0x5B8C, 0x5B98,
- 0x5BDB, 0x5E72, 0x5E79, 0x60A3,
- 0x611F, 0x6163, 0x61BE, 0x63DB,
- 0x6562, 0x67D1, 0x6853, 0x68FA,
- 0x6B3E, 0x6B53, 0x6C57, 0x6F22,
- 0x6F97, 0x6F45, 0x74B0, 0x7518, /* 8AC0 */
- 0x76E3, 0x770B, 0x7AFF, 0x7BA1,
- 0x7C21, 0x7DE9, 0x7F36, 0x7FF0,
- 0x809D, 0x8266, 0x839E, 0x89B3,
- 0x8ACC, 0x8CAB, 0x9084, 0x9451,
- 0x9593, 0x9591, 0x95A2, 0x9665,
- 0x97D3, 0x9928, 0x8218, 0x4E38,
- 0x542B, 0x5CB8, 0x5DCC, 0x73A9,
- 0x764C, 0x773C, 0x5CA9, 0x7FEB, /* 8AE0 */
- 0x8D0B, 0x96C1, 0x9811, 0x9854,
- 0x9858, 0x4F01, 0x4F0E, 0x5371,
- 0x559C, 0x5668, 0x57FA, 0x5947,
- 0x5B09, 0x5BC4, 0x5C90, 0x5E0C,
- 0x5E7E, 0x5FCC, 0x63EE, 0x673A,
- 0x65D7, 0x65E2, 0x671F, 0x68CB,
- 0x68C4, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6A5F, 0x5E30, 0x6BC5, 0x6C17, /* 8B40 */
- 0x6C7D, 0x757F, 0x7948, 0x5B63,
- 0x7A00, 0x7D00, 0x5FBD, 0x898F,
- 0x8A18, 0x8CB4, 0x8D77, 0x8ECC,
- 0x8F1D, 0x98E2, 0x9A0E, 0x9B3C,
- 0x4E80, 0x507D, 0x5100, 0x5993,
- 0x5B9C, 0x622F, 0x6280, 0x64EC,
- 0x6B3A, 0x72A0, 0x7591, 0x7947,
- 0x7FA9, 0x87FB, 0x8ABC, 0x8B70, /* 8B60 */
- 0x63AC, 0x83CA, 0x97A0, 0x5409,
- 0x5403, 0x55AB, 0x6854, 0x6A58,
- 0x8A70, 0x7827, 0x6775, 0x9ECD,
- 0x5374, 0x5BA2, 0x811A, 0x8650,
- 0x9006, 0x4E18, 0x4E45, 0x4EC7,
- 0x4F11, 0x53CA, 0x5438, 0x5BAE,
- 0x5F13, 0x6025, 0x6551, 0x0000,
- 0x673D, 0x6C42, 0x6C72, 0x6CE3, /* 8B80 */
- 0x7078, 0x7403, 0x7A76, 0x7AAE,
- 0x7B08, 0x7D1A, 0x7CFE, 0x7D66,
- 0x65E7, 0x725B, 0x53BB, 0x5C45,
- 0x5DE8, 0x62D2, 0x62E0, 0x6319,
- 0x6E20, 0x865A, 0x8A31, 0x8DDD,
- 0x92F8, 0x6F01, 0x79A6, 0x9B5A,
- 0x4EA8, 0x4EAB, 0x4EAC, 0x4F9B,
- 0x4FA0, 0x50D1, 0x5147, 0x7AF6, /* 8BA0 */
- 0x5171, 0x51F6, 0x5354, 0x5321,
- 0x537F, 0x53EB, 0x55AC, 0x5883,
- 0x5CE1, 0x5F37, 0x5F4A, 0x602F,
- 0x6050, 0x606D, 0x631F, 0x6559,
- 0x6A4B, 0x6CC1, 0x72C2, 0x72ED,
- 0x77EF, 0x80F8, 0x8105, 0x8208,
- 0x854E, 0x90F7, 0x93E1, 0x97FF,
- 0x9957, 0x9A5A, 0x4EF0, 0x51DD, /* 8BC0 */
- 0x5C2D, 0x6681, 0x696D, 0x5C40,
- 0x66F2, 0x6975, 0x7389, 0x6850,
- 0x7C81, 0x50C5, 0x52E4, 0x5747,
- 0x5DFE, 0x9326, 0x65A4, 0x6B23,
- 0x6B3D, 0x7434, 0x7981, 0x79BD,
- 0x7B4B, 0x7DCA, 0x82B9, 0x83CC,
- 0x887F, 0x895F, 0x8B39, 0x8FD1,
- 0x91D1, 0x541F, 0x9280, 0x4E5D, /* 8BE0 */
- 0x5036, 0x53E5, 0x533A, 0x72D7,
- 0x7396, 0x77E9, 0x82E6, 0x8EAF,
- 0x99C6, 0x99C8, 0x99D2, 0x5177,
- 0x611A, 0x865E, 0x55B0, 0x7A7A,
- 0x5076, 0x5BD3, 0x9047, 0x9685,
- 0x4E32, 0x6ADB, 0x91E7, 0x5C51,
- 0x5C48, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6398, 0x7A9F, 0x6C93, 0x9774, /* 8C40 */
- 0x8F61, 0x7AAA, 0x718A, 0x9688,
- 0x7C82, 0x6817, 0x7E70, 0x6851,
- 0x936C, 0x52F2, 0x541B, 0x85AB,
- 0x8A13, 0x7FA4, 0x8ECD, 0x90E1,
- 0x5366, 0x8888, 0x7941, 0x4FC2,
- 0x50BE, 0x5211, 0x5144, 0x5553,
- 0x572D, 0x73EA, 0x578B, 0x5951,
- 0x5F62, 0x5F84, 0x6075, 0x6176, /* 8C60 */
- 0x6167, 0x61A9, 0x63B2, 0x643A,
- 0x656C, 0x666F, 0x6842, 0x6E13,
- 0x7566, 0x7A3D, 0x7CFB, 0x7D4C,
- 0x7D99, 0x7E4B, 0x7F6B, 0x830E,
- 0x834A, 0x86CD, 0x8A08, 0x8A63,
- 0x8B66, 0x8EFD, 0x981A, 0x9D8F,
- 0x82B8, 0x8FCE, 0x9BE8, 0x0000,
- 0x5287, 0x621F, 0x6483, 0x6FC0, /* 8C80 */
- 0x9699, 0x6841, 0x5091, 0x6B20,
- 0x6C7A, 0x6F54, 0x7A74, 0x7D50,
- 0x8840, 0x8A23, 0x6708, 0x4EF6,
- 0x5039, 0x5026, 0x5065, 0x517C,
- 0x5238, 0x5263, 0x55A7, 0x570F,
- 0x5805, 0x5ACC, 0x5EFA, 0x61B2,
- 0x61F8, 0x62F3, 0x6372, 0x691C,
- 0x6A29, 0x727D, 0x72AC, 0x732E, /* 8CA0 */
- 0x7814, 0x786F, 0x7D79, 0x770C,
- 0x80A9, 0x898B, 0x8B19, 0x8CE2,
- 0x8ED2, 0x9063, 0x9375, 0x967A,
- 0x9855, 0x9A13, 0x9E78, 0x5143,
- 0x539F, 0x53B3, 0x5E7B, 0x5F26,
- 0x6E1B, 0x6E90, 0x7384, 0x73FE,
- 0x7D43, 0x8237, 0x8A00, 0x8AFA,
- 0x9650, 0x4E4E, 0x500B, 0x53E4, /* 8CC0 */
- 0x547C, 0x56FA, 0x59D1, 0x5B64,
- 0x5DF1, 0x5EAB, 0x5F27, 0x6238,
- 0x6545, 0x67AF, 0x6E56, 0x72D0,
- 0x7CCA, 0x88B4, 0x80A1, 0x80E1,
- 0x83F0, 0x864E, 0x8A87, 0x8DE8,
- 0x9237, 0x96C7, 0x9867, 0x9F13,
- 0x4E94, 0x4E92, 0x4F0D, 0x5348,
- 0x5449, 0x543E, 0x5A2F, 0x5F8C, /* 8CE0 */
- 0x5FA1, 0x609F, 0x68A7, 0x6A8E,
- 0x745A, 0x7881, 0x8A9E, 0x8AA4,
- 0x8B77, 0x9190, 0x4E5E, 0x9BC9,
- 0x4EA4, 0x4F7C, 0x4FAF, 0x5019,
- 0x5016, 0x5149, 0x516C, 0x529F,
- 0x52B9, 0x52FE, 0x539A, 0x53E3,
- 0x5411, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x540E, 0x5589, 0x5751, 0x57A2, /* 8D40 */
- 0x597D, 0x5B54, 0x5B5D, 0x5B8F,
- 0x5DE5, 0x5DE7, 0x5DF7, 0x5E78,
- 0x5E83, 0x5E9A, 0x5EB7, 0x5F18,
- 0x6052, 0x614C, 0x6297, 0x62D8,
- 0x63A7, 0x653B, 0x6602, 0x6643,
- 0x66F4, 0x676D, 0x6821, 0x6897,
- 0x69CB, 0x6C5F, 0x6D2A, 0x6D69,
- 0x6E2F, 0x6E9D, 0x7532, 0x7687, /* 8D60 */
- 0x786C, 0x7A3F, 0x7CE0, 0x7D05,
- 0x7D18, 0x7D5E, 0x7DB1, 0x8015,
- 0x8003, 0x80AF, 0x80B1, 0x8154,
- 0x818F, 0x822A, 0x8352, 0x884C,
- 0x8861, 0x8B1B, 0x8CA2, 0x8CFC,
- 0x90CA, 0x9175, 0x9271, 0x783F,
- 0x92FC, 0x95A4, 0x964D, 0x0000,
- 0x9805, 0x9999, 0x9AD8, 0x9D3B, /* 8D80 */
- 0x525B, 0x52AB, 0x53F7, 0x5408,
- 0x58D5, 0x62F7, 0x6FE0, 0x8C6A,
- 0x8F5F, 0x9EB9, 0x514B, 0x523B,
- 0x544A, 0x56FD, 0x7A40, 0x9177,
- 0x9D60, 0x9ED2, 0x7344, 0x6F09,
- 0x8170, 0x7511, 0x5FFD, 0x60DA,
- 0x9AA8, 0x72DB, 0x8FBC, 0x6B64,
- 0x9803, 0x4ECA, 0x56F0, 0x5764, /* 8DA0 */
- 0x58BE, 0x5A5A, 0x6068, 0x61C7,
- 0x660F, 0x6606, 0x6839, 0x68B1,
- 0x6DF7, 0x75D5, 0x7D3A, 0x826E,
- 0x9B42, 0x4E9B, 0x4F50, 0x53C9,
- 0x5506, 0x5D6F, 0x5DE6, 0x5DEE,
- 0x67FB, 0x6C99, 0x7473, 0x7802,
- 0x8A50, 0x9396, 0x88DF, 0x5750,
- 0x5EA7, 0x632B, 0x50B5, 0x50AC, /* 8DC0 */
- 0x518D, 0x6700, 0x54C9, 0x585E,
- 0x59BB, 0x5BB0, 0x5F69, 0x624D,
- 0x63A1, 0x683D, 0x6B73, 0x6E08,
- 0x707D, 0x91C7, 0x7280, 0x7815,
- 0x7826, 0x796D, 0x658E, 0x7D30,
- 0x83DC, 0x88C1, 0x8F09, 0x969B,
- 0x5264, 0x5728, 0x6750, 0x7F6A,
- 0x8CA1, 0x51B4, 0x5742, 0x962A, /* 8DE0 */
- 0x583A, 0x698A, 0x80B4, 0x54B2,
- 0x5D0E, 0x57FC, 0x7895, 0x9DFA,
- 0x4F5C, 0x524A, 0x548B, 0x643E,
- 0x6628, 0x6714, 0x67F5, 0x7A84,
- 0x7B56, 0x7D22, 0x932F, 0x685C,
- 0x9BAD, 0x7B39, 0x5319, 0x518A,
- 0x5237, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x5BDF, 0x62F6, 0x64AE, 0x64E6, /* 8E40 */
- 0x672D, 0x6BBA, 0x85A9, 0x96D1,
- 0x7690, 0x9BD6, 0x634C, 0x9306,
- 0x9BAB, 0x76BF, 0x6652, 0x4E09,
- 0x5098, 0x53C2, 0x5C71, 0x60E8,
- 0x6492, 0x6563, 0x685F, 0x71E6,
- 0x73CA, 0x7523, 0x7B97, 0x7E82,
- 0x8695, 0x8B83, 0x8CDB, 0x9178,
- 0x9910, 0x65AC, 0x66AB, 0x6B8B, /* 8E60 */
- 0x4ED5, 0x4ED4, 0x4F3A, 0x4F7F,
- 0x523A, 0x53F8, 0x53F2, 0x55E3,
- 0x56DB, 0x58EB, 0x59CB, 0x59C9,
- 0x59FF, 0x5B50, 0x5C4D, 0x5E02,
- 0x5E2B, 0x5FD7, 0x601D, 0x6307,
- 0x652F, 0x5B5C, 0x65AF, 0x65BD,
- 0x65E8, 0x679D, 0x6B62, 0x0000,
- 0x6B7B, 0x6C0F, 0x7345, 0x7949, /* 8E80 */
- 0x79C1, 0x7CF8, 0x7D19, 0x7D2B,
- 0x80A2, 0x8102, 0x81F3, 0x8996,
- 0x8A5E, 0x8A69, 0x8A66, 0x8A8C,
- 0x8AEE, 0x8CC7, 0x8CDC, 0x96CC,
- 0x98FC, 0x6B6F, 0x4E8B, 0x4F3C,
- 0x4F8D, 0x5150, 0x5B57, 0x5BFA,
- 0x6148, 0x6301, 0x6642, 0x6B21,
- 0x6ECB, 0x6CBB, 0x723E, 0x74BD, /* 8EA0 */
- 0x75D4, 0x78C1, 0x793A, 0x800C,
- 0x8033, 0x81EA, 0x8494, 0x8F9E,
- 0x6C50, 0x9E7F, 0x5F0F, 0x8B58,
- 0x9D2B, 0x7AFA, 0x8EF8, 0x5B8D,
- 0x96EB, 0x4E03, 0x53F1, 0x57F7,
- 0x5931, 0x5AC9, 0x5BA4, 0x6089,
- 0x6E7F, 0x6F06, 0x75BE, 0x8CEA,
- 0x5B9F, 0x8500, 0x7BE0, 0x5072, /* 8EC0 */
- 0x67F4, 0x829D, 0x5C61, 0x854A,
- 0x7E1E, 0x820E, 0x5199, 0x5C04,
- 0x6368, 0x8D66, 0x659C, 0x716E,
- 0x793E, 0x7D17, 0x8005, 0x8B1D,
- 0x8ECA, 0x906E, 0x86C7, 0x90AA,
- 0x501F, 0x52FA, 0x5C3A, 0x6753,
- 0x707C, 0x7235, 0x914C, 0x91C8,
- 0x932B, 0x82E5, 0x5BC2, 0x5F31, /* 8EE0 */
- 0x60F9, 0x4E3B, 0x53D6, 0x5B88,
- 0x624B, 0x6731, 0x6B8A, 0x72E9,
- 0x73E0, 0x7A2E, 0x816B, 0x8DA3,
- 0x9152, 0x9996, 0x5112, 0x53D7,
- 0x546A, 0x5BFF, 0x6388, 0x6A39,
- 0x7DAC, 0x9700, 0x56DA, 0x53CE,
- 0x5468, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x5B97, 0x5C31, 0x5DDE, 0x4FEE, /* 8F40 */
- 0x6101, 0x62FE, 0x6D32, 0x79C0,
- 0x79CB, 0x7D42, 0x7E4D, 0x7FD2,
- 0x81ED, 0x821F, 0x8490, 0x8846,
- 0x8972, 0x8B90, 0x8E74, 0x8F2F,
- 0x9031, 0x914B, 0x916C, 0x96C6,
- 0x919C, 0x4EC0, 0x4F4F, 0x5145,
- 0x5341, 0x5F93, 0x620E, 0x67D4,
- 0x6C41, 0x6E0B, 0x7363, 0x7E26, /* 8F60 */
- 0x91CD, 0x9283, 0x53D4, 0x5919,
- 0x5BBF, 0x6DD1, 0x795D, 0x7E2E,
- 0x7C9B, 0x587E, 0x719F, 0x51FA,
- 0x8853, 0x8FF0, 0x4FCA, 0x5CFB,
- 0x6625, 0x77AC, 0x7AE3, 0x821C,
- 0x99FF, 0x51C6, 0x5FAA, 0x65EC,
- 0x696F, 0x6B89, 0x6DF3, 0x0000,
- 0x6E96, 0x6F64, 0x76FE, 0x7D14, /* 8F80 */
- 0x5DE1, 0x9075, 0x9187, 0x9806,
- 0x51E6, 0x521D, 0x6240, 0x6691,
- 0x66D9, 0x6E1A, 0x5EB6, 0x7DD2,
- 0x7F72, 0x66F8, 0x85AF, 0x85F7,
- 0x8AF8, 0x52A9, 0x53D9, 0x5973,
- 0x5E8F, 0x5F90, 0x6055, 0x92E4,
- 0x9664, 0x50B7, 0x511F, 0x52DD,
- 0x5320, 0x5347, 0x53EC, 0x54E8, /* 8FA0 */
- 0x5546, 0x5531, 0x5617, 0x5968,
- 0x59BE, 0x5A3C, 0x5BB5, 0x5C06,
- 0x5C0F, 0x5C11, 0x5C1A, 0x5E84,
- 0x5E8A, 0x5EE0, 0x5F70, 0x627F,
- 0x6284, 0x62DB, 0x638C, 0x6377,
- 0x6607, 0x660C, 0x662D, 0x6676,
- 0x677E, 0x68A2, 0x6A1F, 0x6A35,
- 0x6CBC, 0x6D88, 0x6E09, 0x6E58, /* 8FC0 */
- 0x713C, 0x7126, 0x7167, 0x75C7,
- 0x7701, 0x785D, 0x7901, 0x7965,
- 0x79F0, 0x7AE0, 0x7B11, 0x7CA7,
- 0x7D39, 0x8096, 0x83D6, 0x848B,
- 0x8549, 0x885D, 0x88F3, 0x8A1F,
- 0x8A3C, 0x8A54, 0x8A73, 0x8C61,
- 0x8CDE, 0x91A4, 0x9266, 0x937E,
- 0x9418, 0x969C, 0x9798, 0x4E0A, /* 8FE0 */
- 0x4E08, 0x4E1E, 0x4E57, 0x5197,
- 0x5270, 0x57CE, 0x5834, 0x58CC,
- 0x5B22, 0x5E38, 0x60C5, 0x64FE,
- 0x6761, 0x6756, 0x6D44, 0x72B6,
- 0x7573, 0x7A63, 0x84B8, 0x8B72,
- 0x91B8, 0x9320, 0x5631, 0x57F4,
- 0x98FE, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x62ED, 0x690D, 0x6B96, 0x71ED, /* 9040 */
- 0x7E54, 0x8077, 0x8272, 0x89E6,
- 0x98DF, 0x8755, 0x8FB1, 0x5C3B,
- 0x4F38, 0x4FE1, 0x4FB5, 0x5507,
- 0x5A20, 0x5BDD, 0x5BE9, 0x5FC3,
- 0x614E, 0x632F, 0x65B0, 0x664B,
- 0x68EE, 0x699B, 0x6D78, 0x6DF1,
- 0x7533, 0x75B9, 0x771F, 0x795E,
- 0x79E6, 0x7D33, 0x81E3, 0x82AF, /* 9060 */
- 0x85AA, 0x89AA, 0x8A3A, 0x8EAB,
- 0x8F9B, 0x9032, 0x91DD, 0x9707,
- 0x4EBA, 0x4EC1, 0x5203, 0x5875,
- 0x58EC, 0x5C0B, 0x751A, 0x5C3D,
- 0x814E, 0x8A0A, 0x8FC5, 0x9663,
- 0x976D, 0x7B25, 0x8ACF, 0x9808,
- 0x9162, 0x56F3, 0x53A8, 0x0000,
- 0x9017, 0x5439, 0x5782, 0x5E25, /* 9080 */
- 0x63A8, 0x6C34, 0x708A, 0x7761,
- 0x7C8B, 0x7FE0, 0x8870, 0x9042,
- 0x9154, 0x9310, 0x9318, 0x968F,
- 0x745E, 0x9AC4, 0x5D07, 0x5D69,
- 0x6570, 0x67A2, 0x8DA8, 0x96DB,
- 0x636E, 0x6749, 0x6919, 0x83C5,
- 0x9817, 0x96C0, 0x88FE, 0x6F84,
- 0x647A, 0x5BF8, 0x4E16, 0x702C, /* 90A0 */
- 0x755D, 0x662F, 0x51C4, 0x5236,
- 0x52E2, 0x59D3, 0x5F81, 0x6027,
- 0x6210, 0x653F, 0x6574, 0x661F,
- 0x6674, 0x68F2, 0x6816, 0x6B63,
- 0x6E05, 0x7272, 0x751F, 0x76DB,
- 0x7CBE, 0x8056, 0x58F0, 0x88FD,
- 0x897F, 0x8AA0, 0x8A93, 0x8ACB,
- 0x901D, 0x9192, 0x9752, 0x9759, /* 90C0 */
- 0x6589, 0x7A0E, 0x8106, 0x96BB,
- 0x5E2D, 0x60DC, 0x621A, 0x65A5,
- 0x6614, 0x6790, 0x77F3, 0x7A4D,
- 0x7C4D, 0x7E3E, 0x810A, 0x8CAC,
- 0x8D64, 0x8DE1, 0x8E5F, 0x78A9,
- 0x5207, 0x62D9, 0x63A5, 0x6442,
- 0x6298, 0x8A2D, 0x7A83, 0x7BC0,
- 0x8AAC, 0x96EA, 0x7D76, 0x820C, /* 90E0 */
- 0x8749, 0x4ED9, 0x5148, 0x5343,
- 0x5360, 0x5BA3, 0x5C02, 0x5C16,
- 0x5DDD, 0x6226, 0x6247, 0x64B0,
- 0x6813, 0x6834, 0x6CC9, 0x6D45,
- 0x6D17, 0x67D3, 0x6F5C, 0x714E,
- 0x717D, 0x65CB, 0x7A7F, 0x7BAD,
- 0x7DDA, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x7E4A, 0x7FA8, 0x817A, 0x821B, /* 9140 */
- 0x8239, 0x85A6, 0x8A6E, 0x8CCE,
- 0x8DF5, 0x9078, 0x9077, 0x92AD,
- 0x9291, 0x9583, 0x9BAE, 0x524D,
- 0x5584, 0x6F38, 0x7136, 0x5168,
- 0x7985, 0x7E55, 0x81B3, 0x7CCE,
- 0x564C, 0x5851, 0x5CA8, 0x63AA,
- 0x66FE, 0x66FD, 0x695A, 0x72D9,
- 0x758F, 0x758E, 0x790E, 0x7956, /* 9160 */
- 0x79DF, 0x7C97, 0x7D20, 0x7D44,
- 0x8607, 0x8A34, 0x963B, 0x9061,
- 0x9F20, 0x50E7, 0x5275, 0x53CC,
- 0x53E2, 0x5009, 0x55AA, 0x58EE,
- 0x594F, 0x723D, 0x5B8B, 0x5C64,
- 0x531D, 0x60E3, 0x60F3, 0x635C,
- 0x6383, 0x633F, 0x63BB, 0x0000,
- 0x64CD, 0x65E9, 0x66F9, 0x5DE3, /* 9180 */
- 0x69CD, 0x69FD, 0x6F15, 0x71E5,
- 0x4E89, 0x75E9, 0x76F8, 0x7A93,
- 0x7CDF, 0x7DCF, 0x7D9C, 0x8061,
- 0x8349, 0x8358, 0x846C, 0x84BC,
- 0x85FB, 0x88C5, 0x8D70, 0x9001,
- 0x906D, 0x9397, 0x971C, 0x9A12,
- 0x50CF, 0x5897, 0x618E, 0x81D3,
- 0x8535, 0x8D08, 0x9020, 0x4FC3, /* 91A0 */
- 0x5074, 0x5247, 0x5373, 0x606F,
- 0x6349, 0x675F, 0x6E2C, 0x8DB3,
- 0x901F, 0x4FD7, 0x5C5E, 0x8CCA,
- 0x65CF, 0x7D9A, 0x5352, 0x8896,
- 0x5176, 0x63C3, 0x5B58, 0x5B6B,
- 0x5C0A, 0x640D, 0x6751, 0x905C,
- 0x4ED6, 0x591A, 0x592A, 0x6C70,
- 0x8A51, 0x553E, 0x5815, 0x59A5, /* 91C0 */
- 0x60F0, 0x6253, 0x67C1, 0x8235,
- 0x6955, 0x9640, 0x99C4, 0x9A28,
- 0x4F53, 0x5806, 0x5BFE, 0x8010,
- 0x5CB1, 0x5E2F, 0x5F85, 0x6020,
- 0x614B, 0x6234, 0x66FF, 0x6CF0,
- 0x6EDE, 0x80CE, 0x817F, 0x82D4,
- 0x888B, 0x8CB8, 0x9000, 0x902E,
- 0x968A, 0x9EDB, 0x9BDB, 0x4EE3, /* 91E0 */
- 0x53F0, 0x5927, 0x7B2C, 0x918D,
- 0x984C, 0x9DF9, 0x6EDD, 0x7027,
- 0x5353, 0x5544, 0x5B85, 0x6258,
- 0x629E, 0x62D3, 0x6CA2, 0x6FEF,
- 0x7422, 0x8A17, 0x9438, 0x6FC1,
- 0x8AFE, 0x8338, 0x51E7, 0x86F8,
- 0x53EA, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x53E9, 0x4F46, 0x9054, 0x8FB0, /* 9240 */
- 0x596A, 0x8131, 0x5DFD, 0x7AEA,
- 0x8FBF, 0x68DA, 0x8C37, 0x72F8,
- 0x9C48, 0x6A3D, 0x8AB0, 0x4E39,
- 0x5358, 0x5606, 0x5766, 0x62C5,
- 0x63A2, 0x65E6, 0x6B4E, 0x6DE1,
- 0x6E5B, 0x70AD, 0x77ED, 0x7AEF,
- 0x7BAA, 0x7DBB, 0x803D, 0x80C6,
- 0x86CB, 0x8A95, 0x935B, 0x56E3, /* 9260 */
- 0x58C7, 0x5F3E, 0x65AD, 0x6696,
- 0x6A80, 0x6BB5, 0x7537, 0x8AC7,
- 0x5024, 0x77E5, 0x5730, 0x5F1B,
- 0x6065, 0x667A, 0x6C60, 0x75F4,
- 0x7A1A, 0x7F6E, 0x81F4, 0x8718,
- 0x9045, 0x99B3, 0x7BC9, 0x755C,
- 0x7AF9, 0x7B51, 0x84C4, 0x0000,
- 0x9010, 0x79E9, 0x7A92, 0x8336, /* 9280 */
- 0x5AE1, 0x7740, 0x4E2D, 0x4EF2,
- 0x5B99, 0x5FE0, 0x62BD, 0x663C,
- 0x67F1, 0x6CE8, 0x866B, 0x8877,
- 0x8A3B, 0x914E, 0x92F3, 0x99D0,
- 0x6A17, 0x7026, 0x732A, 0x82E7,
- 0x8457, 0x8CAF, 0x4E01, 0x5146,
- 0x51CB, 0x558B, 0x5BF5, 0x5E16,
- 0x5E33, 0x5E81, 0x5F14, 0x5F35, /* 92A0 */
- 0x5F6B, 0x5FB4, 0x61F2, 0x6311,
- 0x66A2, 0x671D, 0x6F6E, 0x7252,
- 0x753A, 0x773A, 0x8074, 0x8139,
- 0x8178, 0x8776, 0x8ABF, 0x8ADC,
- 0x8D85, 0x8DF3, 0x929A, 0x9577,
- 0x9802, 0x9CE5, 0x52C5, 0x6357,
- 0x76F4, 0x6715, 0x6C88, 0x73CD,
- 0x8CC3, 0x93AE, 0x9673, 0x6D25, /* 92C0 */
- 0x589C, 0x690E, 0x69CC, 0x8FFD,
- 0x939A, 0x75DB, 0x901A, 0x585A,
- 0x6802, 0x63B4, 0x69FB, 0x4F43,
- 0x6F2C, 0x67D8, 0x8FBB, 0x8526,
- 0x7DB4, 0x9354, 0x693F, 0x6F70,
- 0x576A, 0x58F7, 0x5B2C, 0x7D2C,
- 0x722A, 0x540A, 0x91E3, 0x9DB4,
- 0x4EAD, 0x4F4E, 0x505C, 0x5075, /* 92E0 */
- 0x5243, 0x8C9E, 0x5448, 0x5824,
- 0x5B9A, 0x5E1D, 0x5E95, 0x5EAD,
- 0x5EF7, 0x5F1F, 0x608C, 0x62B5,
- 0x633A, 0x63D0, 0x68AF, 0x6C40,
- 0x7887, 0x798E, 0x7A0B, 0x7DE0,
- 0x8247, 0x8A02, 0x8AE6, 0x8E44,
- 0x9013, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x90B8, 0x912D, 0x91D8, 0x9F0E, /* 9340 */
- 0x6CE5, 0x6458, 0x64E2, 0x6575,
- 0x6EF4, 0x7684, 0x7B1B, 0x9069,
- 0x93D1, 0x6EBA, 0x54F2, 0x5FB9,
- 0x64A4, 0x8F4D, 0x8FED, 0x9244,
- 0x5178, 0x586B, 0x5929, 0x5C55,
- 0x5E97, 0x6DFB, 0x7E8F, 0x751C,
- 0x8CBC, 0x8EE2, 0x985B, 0x70B9,
- 0x4F1D, 0x6BBF, 0x6FB1, 0x7530, /* 9360 */
- 0x96FB, 0x514E, 0x5410, 0x5835,
- 0x5857, 0x59AC, 0x5C60, 0x5F92,
- 0x6597, 0x675C, 0x6E21, 0x767B,
- 0x83DF, 0x8CED, 0x9014, 0x90FD,
- 0x934D, 0x7825, 0x783A, 0x52AA,
- 0x5EA6, 0x571F, 0x5974, 0x6012,
- 0x5012, 0x515A, 0x51AC, 0x0000,
- 0x51CD, 0x5200, 0x5510, 0x5854, /* 9380 */
- 0x5858, 0x5957, 0x5B95, 0x5CF6,
- 0x5D8B, 0x60BC, 0x6295, 0x642D,
- 0x6771, 0x6843, 0x68BC, 0x68DF,
- 0x76D7, 0x6DD8, 0x6E6F, 0x6D9B,
- 0x706F, 0x71C8, 0x5F53, 0x75D8,
- 0x7977, 0x7B49, 0x7B54, 0x7B52,
- 0x7CD6, 0x7D71, 0x5230, 0x8463,
- 0x8569, 0x85E4, 0x8A0E, 0x8B04, /* 93A0 */
- 0x8C46, 0x8E0F, 0x9003, 0x900F,
- 0x9419, 0x9676, 0x982D, 0x9A30,
- 0x95D8, 0x50CD, 0x52D5, 0x540C,
- 0x5802, 0x5C0E, 0x61A7, 0x649E,
- 0x6D1E, 0x77B3, 0x7AE5, 0x80F4,
- 0x8404, 0x9053, 0x9285, 0x5CE0,
- 0x9D07, 0x533F, 0x5F97, 0x5FB3,
- 0x6D9C, 0x7279, 0x7763, 0x79BF, /* 93C0 */
- 0x7BE4, 0x6BD2, 0x72EC, 0x8AAD,
- 0x6803, 0x6A61, 0x51F8, 0x7A81,
- 0x6934, 0x5C4A, 0x9CF6, 0x82EB,
- 0x5BC5, 0x9149, 0x701E, 0x5678,
- 0x5C6F, 0x60C7, 0x6566, 0x6C8C,
- 0x8C5A, 0x9041, 0x9813, 0x5451,
- 0x66C7, 0x920D, 0x5948, 0x90A3,
- 0x5185, 0x4E4D, 0x51EA, 0x8599, /* 93E0 */
- 0x8B0E, 0x7058, 0x637A, 0x934B,
- 0x6962, 0x99B4, 0x7E04, 0x7577,
- 0x5357, 0x6960, 0x8EDF, 0x96E3,
- 0x6C5D, 0x4E8C, 0x5C3C, 0x5F10,
- 0x8FE9, 0x5302, 0x8CD1, 0x8089,
- 0x8679, 0x5EFF, 0x65E5, 0x4E73,
- 0x5165, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x5982, 0x5C3F, 0x97EE, 0x4EFB, /* 9440 */
- 0x598A, 0x5FCD, 0x8A8D, 0x6FE1,
- 0x79B0, 0x7962, 0x5BE7, 0x8471,
- 0x732B, 0x71B1, 0x5E74, 0x5FF5,
- 0x637B, 0x649A, 0x71C3, 0x7C98,
- 0x4E43, 0x5EFC, 0x4E4B, 0x57DC,
- 0x56A2, 0x60A9, 0x6FC3, 0x7D0D,
- 0x80FD, 0x8133, 0x81BF, 0x8FB2,
- 0x8997, 0x86A4, 0x5DF4, 0x628A, /* 9460 */
- 0x64AD, 0x8987, 0x6777, 0x6CE2,
- 0x6D3E, 0x7436, 0x7834, 0x5A46,
- 0x7F75, 0x82AD, 0x99AC, 0x4FF3,
- 0x5EC3, 0x62DD, 0x6392, 0x6557,
- 0x676F, 0x76C3, 0x724C, 0x80CC,
- 0x80BA, 0x8F29, 0x914D, 0x500D,
- 0x57F9, 0x5A92, 0x6885, 0x0000,
- 0x6973, 0x7164, 0x72FD, 0x8CB7, /* 9480 */
- 0x58F2, 0x8CE0, 0x966A, 0x9019,
- 0x877F, 0x79E4, 0x77E7, 0x8429,
- 0x4F2F, 0x5265, 0x535A, 0x62CD,
- 0x67CF, 0x6CCA, 0x767D, 0x7B94,
- 0x7C95, 0x8236, 0x8584, 0x8FEB,
- 0x66DD, 0x6F20, 0x7206, 0x7E1B,
- 0x83AB, 0x99C1, 0x9EA6, 0x51FD,
- 0x7BB1, 0x7872, 0x7BB8, 0x8087, /* 94A0 */
- 0x7B48, 0x6AE8, 0x5E61, 0x808C,
- 0x7551, 0x7560, 0x516B, 0x9262,
- 0x6E8C, 0x767A, 0x9197, 0x9AEA,
- 0x4F10, 0x7F70, 0x629C, 0x7B4F,
- 0x95A5, 0x9CE9, 0x567A, 0x5859,
- 0x86E4, 0x96BC, 0x4F34, 0x5224,
- 0x534A, 0x53CD, 0x53DB, 0x5E06,
- 0x642C, 0x6591, 0x677F, 0x6C3E, /* 94C0 */
- 0x6C4E, 0x7248, 0x72AF, 0x73ED,
- 0x7554, 0x7E41, 0x822C, 0x85E9,
- 0x8CA9, 0x7BC4, 0x91C6, 0x7169,
- 0x9812, 0x98EF, 0x633D, 0x6669,
- 0x756A, 0x76E4, 0x78D0, 0x8543,
- 0x86EE, 0x532A, 0x5351, 0x5426,
- 0x5983, 0x5E87, 0x5F7C, 0x60B2,
- 0x6249, 0x6279, 0x62AB, 0x6590, /* 94E0 */
- 0x6BD4, 0x6CCC, 0x75B2, 0x76AE,
- 0x7891, 0x79D8, 0x7DCB, 0x7F77,
- 0x80A5, 0x88AB, 0x8AB9, 0x8CBB,
- 0x907F, 0x975E, 0x98DB, 0x6A0B,
- 0x7C38, 0x5099, 0x5C3E, 0x5FAE,
- 0x6787, 0x6BD8, 0x7435, 0x7709,
- 0x7F8E, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9F3B, 0x67CA, 0x7A17, 0x5339, /* 9540 */
- 0x758B, 0x9AED, 0x5F66, 0x819D,
- 0x83F1, 0x8098, 0x5F3C, 0x5FC5,
- 0x7562, 0x7B46, 0x903C, 0x6867,
- 0x59EB, 0x5A9B, 0x7D10, 0x767E,
- 0x8B2C, 0x4FF5, 0x5F6A, 0x6A19,
- 0x6C37, 0x6F02, 0x74E2, 0x7968,
- 0x8868, 0x8A55, 0x8C79, 0x5EDF,
- 0x63CF, 0x75C5, 0x79D2, 0x82D7, /* 9560 */
- 0x9328, 0x92F2, 0x849C, 0x86ED,
- 0x9C2D, 0x54C1, 0x5F6C, 0x658C,
- 0x6D5C, 0x7015, 0x8CA7, 0x8CD3,
- 0x983B, 0x654F, 0x74F6, 0x4E0D,
- 0x4ED8, 0x57E0, 0x592B, 0x5A66,
- 0x5BCC, 0x51A8, 0x5E03, 0x5E9C,
- 0x6016, 0x6276, 0x6577, 0x0000,
- 0x65A7, 0x666E, 0x6D6E, 0x7236, /* 9580 */
- 0x7B26, 0x8150, 0x819A, 0x8299,
- 0x8B5C, 0x8CA0, 0x8CE6, 0x8D74,
- 0x961C, 0x9644, 0x4FAE, 0x64AB,
- 0x6B66, 0x821E, 0x8461, 0x856A,
- 0x90E8, 0x5C01, 0x6953, 0x98A8,
- 0x847A, 0x8557, 0x4F0F, 0x526F,
- 0x5FA9, 0x5E45, 0x670D, 0x798F,
- 0x8179, 0x8907, 0x8986, 0x6DF5, /* 95A0 */
- 0x5F17, 0x6255, 0x6CB8, 0x4ECF,
- 0x7269, 0x9B92, 0x5206, 0x543B,
- 0x5674, 0x58B3, 0x61A4, 0x626E,
- 0x711A, 0x596E, 0x7C89, 0x7CDE,
- 0x7D1B, 0x96F0, 0x6587, 0x805E,
- 0x4E19, 0x4F75, 0x5175, 0x5840,
- 0x5E63, 0x5E73, 0x5F0A, 0x67C4,
- 0x4E26, 0x853D, 0x9589, 0x965B, /* 95C0 */
- 0x7C73, 0x9801, 0x50FB, 0x58C1,
- 0x7656, 0x78A7, 0x5225, 0x77A5,
- 0x8511, 0x7B86, 0x504F, 0x5909,
- 0x7247, 0x7BC7, 0x7DE8, 0x8FBA,
- 0x8FD4, 0x904D, 0x4FBF, 0x52C9,
- 0x5A29, 0x5F01, 0x97AD, 0x4FDD,
- 0x8217, 0x92EA, 0x5703, 0x6355,
- 0x6B69, 0x752B, 0x88DC, 0x8F14, /* 95E0 */
- 0x7A42, 0x52DF, 0x5893, 0x6155,
- 0x620A, 0x66AE, 0x6BCD, 0x7C3F,
- 0x83E9, 0x5023, 0x4FF8, 0x5305,
- 0x5446, 0x5831, 0x5949, 0x5B9D,
- 0x5CF0, 0x5CEF, 0x5D29, 0x5E96,
- 0x62B1, 0x6367, 0x653E, 0x65B9,
- 0x670B, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6CD5, 0x6CE1, 0x70F9, 0x7832, /* 9640 */
- 0x7E2B, 0x80DE, 0x82B3, 0x840C,
- 0x84EC, 0x8702, 0x8912, 0x8A2A,
- 0x8C4A, 0x90A6, 0x92D2, 0x98FD,
- 0x9CF3, 0x9D6C, 0x4E4F, 0x4EA1,
- 0x508D, 0x5256, 0x574A, 0x59A8,
- 0x5E3D, 0x5FD8, 0x5FD9, 0x623F,
- 0x66B4, 0x671B, 0x67D0, 0x68D2,
- 0x5192, 0x7D21, 0x80AA, 0x81A8, /* 9660 */
- 0x8B00, 0x8C8C, 0x8CBF, 0x927E,
- 0x9632, 0x5420, 0x982C, 0x5317,
- 0x50D5, 0x535C, 0x58A8, 0x64B2,
- 0x6734, 0x7267, 0x7766, 0x7A46,
- 0x91E6, 0x52C3, 0x6CA1, 0x6B86,
- 0x5800, 0x5E4C, 0x5954, 0x672C,
- 0x7FFB, 0x51E1, 0x76C6, 0x0000,
- 0x6469, 0x78E8, 0x9B54, 0x9EBB, /* 9680 */
- 0x57CB, 0x59B9, 0x6627, 0x679A,
- 0x6BCE, 0x54E9, 0x69D9, 0x5E55,
- 0x819C, 0x6795, 0x9BAA, 0x67FE,
- 0x9C52, 0x685D, 0x4EA6, 0x4FE3,
- 0x53C8, 0x62B9, 0x672B, 0x6CAB,
- 0x8FC4, 0x4FAD, 0x7E6D, 0x9EBF,
- 0x4E07, 0x6162, 0x6E80, 0x6F2B,
- 0x8513, 0x5473, 0x672A, 0x9B45, /* 96A0 */
- 0x5DF3, 0x7B95, 0x5CAC, 0x5BC6,
- 0x871C, 0x6E4A, 0x84D1, 0x7A14,
- 0x8108, 0x5999, 0x7C8D, 0x6C11,
- 0x7720, 0x52D9, 0x5922, 0x7121,
- 0x725F, 0x77DB, 0x9727, 0x9D61,
- 0x690B, 0x5A7F, 0x5A18, 0x51A5,
- 0x540D, 0x547D, 0x660E, 0x76DF,
- 0x8FF7, 0x9298, 0x9CF4, 0x59EA, /* 96C0 */
- 0x725D, 0x6EC5, 0x514D, 0x68C9,
- 0x7DBF, 0x7DEC, 0x9762, 0x9EBA,
- 0x6478, 0x6A21, 0x8302, 0x5984,
- 0x5B5F, 0x6BDB, 0x731B, 0x76F2,
- 0x7DB2, 0x8017, 0x8499, 0x5132,
- 0x6728, 0x9ED9, 0x76EE, 0x6762,
- 0x52FF, 0x9905, 0x5C24, 0x623B,
- 0x7C7E, 0x8CB0, 0x554F, 0x60B6, /* 96E0 */
- 0x7D0B, 0x9580, 0x5301, 0x4E5F,
- 0x51B6, 0x591C, 0x723A, 0x8036,
- 0x91CE, 0x5F25, 0x77E2, 0x5384,
- 0x5F79, 0x7D04, 0x85AC, 0x8A33,
- 0x8E8D, 0x9756, 0x67F3, 0x85AE,
- 0x9453, 0x6109, 0x6108, 0x6CB9,
- 0x7652, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x8AED, 0x8F38, 0x552F, 0x4F51, /* 9740 */
- 0x512A, 0x52C7, 0x53CB, 0x5BA5,
- 0x5E7D, 0x60A0, 0x6182, 0x63D6,
- 0x6709, 0x67DA, 0x6E67, 0x6D8C,
- 0x7336, 0x7337, 0x7531, 0x7950,
- 0x88D5, 0x8A98, 0x904A, 0x9091,
- 0x90F5, 0x96C4, 0x878D, 0x5915,
- 0x4E88, 0x4F59, 0x4E0E, 0x8A89,
- 0x8F3F, 0x9810, 0x50AD, 0x5E7C, /* 9760 */
- 0x5996, 0x5BB9, 0x5EB8, 0x63DA,
- 0x63FA, 0x64C1, 0x66DC, 0x694A,
- 0x69D8, 0x6D0B, 0x6EB6, 0x7194,
- 0x7528, 0x7AAF, 0x7F8A, 0x8000,
- 0x8449, 0x84C9, 0x8981, 0x8B21,
- 0x8E0A, 0x9065, 0x967D, 0x990A,
- 0x617E, 0x6291, 0x6B32, 0x0000,
- 0x6C83, 0x6D74, 0x7FCC, 0x7FFC, /* 9780 */
- 0x6DC0, 0x7F85, 0x87BA, 0x88F8,
- 0x6765, 0x83B1, 0x983C, 0x96F7,
- 0x6D1B, 0x7D61, 0x843D, 0x916A,
- 0x4E71, 0x5375, 0x5D50, 0x6B04,
- 0x6FEB, 0x85CD, 0x862D, 0x89A7,
- 0x5229, 0x540F, 0x5C65, 0x674E,
- 0x68A8, 0x7406, 0x7483, 0x75E2,
- 0x88CF, 0x88E1, 0x91CC, 0x96E2, /* 97A0 */
- 0x9678, 0x5F8B, 0x7387, 0x7ACB,
- 0x844E, 0x63A0, 0x7565, 0x5289,
- 0x6D41, 0x6E9C, 0x7409, 0x7559,
- 0x786B, 0x7C92, 0x9686, 0x7ADC,
- 0x9F8D, 0x4FB6, 0x616E, 0x65C5,
- 0x865C, 0x4E86, 0x4EAE, 0x50DA,
- 0x4E21, 0x51CC, 0x5BEE, 0x6599,
- 0x6881, 0x6DBC, 0x731F, 0x7642, /* 97C0 */
- 0x77AD, 0x7A1C, 0x7CE7, 0x826F,
- 0x8AD2, 0x907C, 0x91CF, 0x9675,
- 0x9818, 0x529B, 0x7DD1, 0x502B,
- 0x5398, 0x6797, 0x6DCB, 0x71D0,
- 0x7433, 0x81E8, 0x8F2A, 0x96A3,
- 0x9C57, 0x9E9F, 0x7460, 0x5841,
- 0x6D99, 0x7D2F, 0x985E, 0x4EE4,
- 0x4F36, 0x4F8B, 0x51B7, 0x52B1, /* 97E0 */
- 0x5DBA, 0x601C, 0x73B2, 0x793C,
- 0x82D3, 0x9234, 0x96B7, 0x96F6,
- 0x970A, 0x9E97, 0x9F62, 0x66A6,
- 0x6B74, 0x5217, 0x52A3, 0x70C8,
- 0x88C2, 0x5EC9, 0x604B, 0x6190,
- 0x6F23, 0x7149, 0x7C3E, 0x7DF4,
- 0x806F, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x84EE, 0x9023, 0x932C, 0x5442, /* 9840 */
- 0x9B6F, 0x6AD3, 0x7089, 0x8CC2,
- 0x8DEF, 0x9732, 0x52B4, 0x5A41,
- 0x5ECA, 0x5F04, 0x6717, 0x697C,
- 0x6994, 0x6D6A, 0x6F0F, 0x7262,
- 0x72FC, 0x7BED, 0x8001, 0x807E,
- 0x874B, 0x90CE, 0x516D, 0x9E93,
- 0x7984, 0x808B, 0x9332, 0x8AD6,
- 0x502D, 0x548C, 0x8A71, 0x6B6A, /* 9860 */
- 0x8CC4, 0x8107, 0x60D1, 0x67A0,
- 0x9DF2, 0x4E99, 0x4E98, 0x9C10,
- 0x8A6B, 0x85C1, 0x8568, 0x6900,
- 0x6E7E, 0x7897, 0x8155, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x5F0C,
- 0x4E10, 0x4E15, 0x4E2A, 0x4E31, /* 98A0 */
- 0x4E36, 0x4E3C, 0x4E3F, 0x4E42,
- 0x4E56, 0x4E58, 0x4E82, 0x4E85,
- 0x8C6B, 0x4E8A, 0x8212, 0x5F0D,
- 0x4E8E, 0x4E9E, 0x4E9F, 0x4EA0,
- 0x4EA2, 0x4EB0, 0x4EB3, 0x4EB6,
- 0x4ECE, 0x4ECD, 0x4EC4, 0x4EC6,
- 0x4EC2, 0x4ED7, 0x4EDE, 0x4EED,
- 0x4EDF, 0x4EF7, 0x4F09, 0x4F5A, /* 98C0 */
- 0x4F30, 0x4F5B, 0x4F5D, 0x4F57,
- 0x4F47, 0x4F76, 0x4F88, 0x4F8F,
- 0x4F98, 0x4F7B, 0x4F69, 0x4F70,
- 0x4F91, 0x4F6F, 0x4F86, 0x4F96,
- 0x5118, 0x4FD4, 0x4FDF, 0x4FCE,
- 0x4FD8, 0x4FDB, 0x4FD1, 0x4FDA,
- 0x4FD0, 0x4FE4, 0x4FE5, 0x501A,
- 0x5028, 0x5014, 0x502A, 0x5025, /* 98E0 */
- 0x5005, 0x4F1C, 0x4FF6, 0x5021,
- 0x5029, 0x502C, 0x4FFE, 0x4FEF,
- 0x5011, 0x5006, 0x5043, 0x5047,
- 0x6703, 0x5055, 0x5050, 0x5048,
- 0x505A, 0x5056, 0x506C, 0x5078,
- 0x5080, 0x509A, 0x5085, 0x50B4,
- 0x50B2, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x50C9, 0x50CA, 0x50B3, 0x50C2, /* 9940 */
- 0x50D6, 0x50DE, 0x50E5, 0x50ED,
- 0x50E3, 0x50EE, 0x50F9, 0x50F5,
- 0x5109, 0x5101, 0x5102, 0x5116,
- 0x5115, 0x5114, 0x511A, 0x5121,
- 0x513A, 0x5137, 0x513C, 0x513B,
- 0x513F, 0x5140, 0x5152, 0x514C,
- 0x5154, 0x5162, 0x7AF8, 0x5169,
- 0x516A, 0x516E, 0x5180, 0x5182, /* 9960 */
- 0x56D8, 0x518C, 0x5189, 0x518F,
- 0x5191, 0x5193, 0x5195, 0x5196,
- 0x51A4, 0x51A6, 0x51A2, 0x51A9,
- 0x51AA, 0x51AB, 0x51B3, 0x51B1,
- 0x51B2, 0x51B0, 0x51B5, 0x51BD,
- 0x51C5, 0x51C9, 0x51DB, 0x51E0,
- 0x8655, 0x51E9, 0x51ED, 0x0000,
- 0x51F0, 0x51F5, 0x51FE, 0x5204, /* 9980 */
- 0x520B, 0x5214, 0x520E, 0x5227,
- 0x522A, 0x522E, 0x5233, 0x5239,
- 0x524F, 0x5244, 0x524B, 0x524C,
- 0x525E, 0x5254, 0x526A, 0x5274,
- 0x5269, 0x5273, 0x527F, 0x527D,
- 0x528D, 0x5294, 0x5292, 0x5271,
- 0x5288, 0x5291, 0x8FA8, 0x8FA7,
- 0x52AC, 0x52AD, 0x52BC, 0x52B5, /* 99A0 */
- 0x52C1, 0x52CD, 0x52D7, 0x52DE,
- 0x52E3, 0x52E6, 0x98ED, 0x52E0,
- 0x52F3, 0x52F5, 0x52F8, 0x52F9,
- 0x5306, 0x5308, 0x7538, 0x530D,
- 0x5310, 0x530F, 0x5315, 0x531A,
- 0x5323, 0x532F, 0x5331, 0x5333,
- 0x5338, 0x5340, 0x5346, 0x5345,
- 0x4E17, 0x5349, 0x534D, 0x51D6, /* 99C0 */
- 0x535E, 0x5369, 0x536E, 0x5918,
- 0x537B, 0x5377, 0x5382, 0x5396,
- 0x53A0, 0x53A6, 0x53A5, 0x53AE,
- 0x53B0, 0x53B6, 0x53C3, 0x7C12,
- 0x96D9, 0x53DF, 0x66FC, 0x71EE,
- 0x53EE, 0x53E8, 0x53ED, 0x53FA,
- 0x5401, 0x543D, 0x5440, 0x542C,
- 0x542D, 0x543C, 0x542E, 0x5436, /* 99E0 */
- 0x5429, 0x541D, 0x544E, 0x548F,
- 0x5475, 0x548E, 0x545F, 0x5471,
- 0x5477, 0x5470, 0x5492, 0x547B,
- 0x5480, 0x5476, 0x5484, 0x5490,
- 0x5486, 0x54C7, 0x54A2, 0x54B8,
- 0x54A5, 0x54AC, 0x54C4, 0x54C8,
- 0x54A8, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x54AB, 0x54C2, 0x54A4, 0x54BE, /* 9A40 */
- 0x54BC, 0x54D8, 0x54E5, 0x54E6,
- 0x550F, 0x5514, 0x54FD, 0x54EE,
- 0x54ED, 0x54FA, 0x54E2, 0x5539,
- 0x5540, 0x5563, 0x554C, 0x552E,
- 0x555C, 0x5545, 0x5556, 0x5557,
- 0x5538, 0x5533, 0x555D, 0x5599,
- 0x5580, 0x54AF, 0x558A, 0x559F,
- 0x557B, 0x557E, 0x5598, 0x559E, /* 9A60 */
- 0x55AE, 0x557C, 0x5583, 0x55A9,
- 0x5587, 0x55A8, 0x55DA, 0x55C5,
- 0x55DF, 0x55C4, 0x55DC, 0x55E4,
- 0x55D4, 0x5614, 0x55F7, 0x5616,
- 0x55FE, 0x55FD, 0x561B, 0x55F9,
- 0x564E, 0x5650, 0x71DF, 0x5634,
- 0x5636, 0x5632, 0x5638, 0x0000,
- 0x566B, 0x5664, 0x562F, 0x566C, /* 9A80 */
- 0x566A, 0x5686, 0x5680, 0x568A,
- 0x56A0, 0x5694, 0x568F, 0x56A5,
- 0x56AE, 0x56B6, 0x56B4, 0x56C2,
- 0x56BC, 0x56C1, 0x56C3, 0x56C0,
- 0x56C8, 0x56CE, 0x56D1, 0x56D3,
- 0x56D7, 0x56EE, 0x56F9, 0x5700,
- 0x56FF, 0x5704, 0x5709, 0x5708,
- 0x570B, 0x570D, 0x5713, 0x5718, /* 9AA0 */
- 0x5716, 0x55C7, 0x571C, 0x5726,
- 0x5737, 0x5738, 0x574E, 0x573B,
- 0x5740, 0x574F, 0x5769, 0x57C0,
- 0x5788, 0x5761, 0x577F, 0x5789,
- 0x5793, 0x57A0, 0x57B3, 0x57A4,
- 0x57AA, 0x57B0, 0x57C3, 0x57C6,
- 0x57D4, 0x57D2, 0x57D3, 0x580A,
- 0x57D6, 0x57E3, 0x580B, 0x5819, /* 9AC0 */
- 0x581D, 0x5872, 0x5821, 0x5862,
- 0x584B, 0x5870, 0x6BC0, 0x5852,
- 0x583D, 0x5879, 0x5885, 0x58B9,
- 0x589F, 0x58AB, 0x58BA, 0x58DE,
- 0x58BB, 0x58B8, 0x58AE, 0x58C5,
- 0x58D3, 0x58D1, 0x58D7, 0x58D9,
- 0x58D8, 0x58E5, 0x58DC, 0x58E4,
- 0x58DF, 0x58EF, 0x58FA, 0x58F9, /* 9AE0 */
- 0x58FB, 0x58FC, 0x58FD, 0x5902,
- 0x590A, 0x5910, 0x591B, 0x68A6,
- 0x5925, 0x592C, 0x592D, 0x5932,
- 0x5938, 0x593E, 0x7AD2, 0x5955,
- 0x5950, 0x594E, 0x595A, 0x5958,
- 0x5962, 0x5960, 0x5967, 0x596C,
- 0x5969, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x5978, 0x5981, 0x599D, 0x4F5E, /* 9B40 */
- 0x4FAB, 0x59A3, 0x59B2, 0x59C6,
- 0x59E8, 0x59DC, 0x598D, 0x59D9,
- 0x59DA, 0x5A25, 0x5A1F, 0x5A11,
- 0x5A1C, 0x5A09, 0x5A1A, 0x5A40,
- 0x5A6C, 0x5A49, 0x5A35, 0x5A36,
- 0x5A62, 0x5A6A, 0x5A9A, 0x5ABC,
- 0x5ABE, 0x5ACB, 0x5AC2, 0x5ABD,
- 0x5AE3, 0x5AD7, 0x5AE6, 0x5AE9, /* 9B60 */
- 0x5AD6, 0x5AFA, 0x5AFB, 0x5B0C,
- 0x5B0B, 0x5B16, 0x5B32, 0x5AD0,
- 0x5B2A, 0x5B36, 0x5B3E, 0x5B43,
- 0x5B45, 0x5B40, 0x5B51, 0x5B55,
- 0x5B5A, 0x5B5B, 0x5B65, 0x5B69,
- 0x5B70, 0x5B73, 0x5B75, 0x5B78,
- 0x6588, 0x5B7A, 0x5B80, 0x0000,
- 0x5B83, 0x5BA6, 0x5BB8, 0x5BC3, /* 9B80 */
- 0x5BC7, 0x5BC9, 0x5BD4, 0x5BD0,
- 0x5BE4, 0x5BE6, 0x5BE2, 0x5BDE,
- 0x5BE5, 0x5BEB, 0x5BF0, 0x5BF6,
- 0x5BF3, 0x5C05, 0x5C07, 0x5C08,
- 0x5C0D, 0x5C13, 0x5C20, 0x5C22,
- 0x5C28, 0x5C38, 0x5C39, 0x5C41,
- 0x5C46, 0x5C4E, 0x5C53, 0x5C50,
- 0x5C4F, 0x5B71, 0x5C6C, 0x5C6E, /* 9BA0 */
- 0x4E62, 0x5C76, 0x5C79, 0x5C8C,
- 0x5C91, 0x5C94, 0x599B, 0x5CAB,
- 0x5CBB, 0x5CB6, 0x5CBC, 0x5CB7,
- 0x5CC5, 0x5CBE, 0x5CC7, 0x5CD9,
- 0x5CE9, 0x5CFD, 0x5CFA, 0x5CED,
- 0x5D8C, 0x5CEA, 0x5D0B, 0x5D15,
- 0x5D17, 0x5D5C, 0x5D1F, 0x5D1B,
- 0x5D11, 0x5D14, 0x5D22, 0x5D1A, /* 9BC0 */
- 0x5D19, 0x5D18, 0x5D4C, 0x5D52,
- 0x5D4E, 0x5D4B, 0x5D6C, 0x5D73,
- 0x5D76, 0x5D87, 0x5D84, 0x5D82,
- 0x5DA2, 0x5D9D, 0x5DAC, 0x5DAE,
- 0x5DBD, 0x5D90, 0x5DB7, 0x5DBC,
- 0x5DC9, 0x5DCD, 0x5DD3, 0x5DD2,
- 0x5DD6, 0x5DDB, 0x5DEB, 0x5DF2,
- 0x5DF5, 0x5E0B, 0x5E1A, 0x5E19, /* 9BE0 */
- 0x5E11, 0x5E1B, 0x5E36, 0x5E37,
- 0x5E44, 0x5E43, 0x5E40, 0x5E4E,
- 0x5E57, 0x5E54, 0x5E5F, 0x5E62,
- 0x5E64, 0x5E47, 0x5E75, 0x5E76,
- 0x5E7A, 0x9EBC, 0x5E7F, 0x5EA0,
- 0x5EC1, 0x5EC2, 0x5EC8, 0x5ED0,
- 0x5ECF, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x5ED6, 0x5EE3, 0x5EDD, 0x5EDA, /* 9C40 */
- 0x5EDB, 0x5EE2, 0x5EE1, 0x5EE8,
- 0x5EE9, 0x5EEC, 0x5EF1, 0x5EF3,
- 0x5EF0, 0x5EF4, 0x5EF8, 0x5EFE,
- 0x5F03, 0x5F09, 0x5F5D, 0x5F5C,
- 0x5F0B, 0x5F11, 0x5F16, 0x5F29,
- 0x5F2D, 0x5F38, 0x5F41, 0x5F48,
- 0x5F4C, 0x5F4E, 0x5F2F, 0x5F51,
- 0x5F56, 0x5F57, 0x5F59, 0x5F61, /* 9C60 */
- 0x5F6D, 0x5F73, 0x5F77, 0x5F83,
- 0x5F82, 0x5F7F, 0x5F8A, 0x5F88,
- 0x5F91, 0x5F87, 0x5F9E, 0x5F99,
- 0x5F98, 0x5FA0, 0x5FA8, 0x5FAD,
- 0x5FBC, 0x5FD6, 0x5FFB, 0x5FE4,
- 0x5FF8, 0x5FF1, 0x5FDD, 0x60B3,
- 0x5FFF, 0x6021, 0x6060, 0x0000,
- 0x6019, 0x6010, 0x6029, 0x600E, /* 9C80 */
- 0x6031, 0x601B, 0x6015, 0x602B,
- 0x6026, 0x600F, 0x603A, 0x605A,
- 0x6041, 0x606A, 0x6077, 0x605F,
- 0x604A, 0x6046, 0x604D, 0x6063,
- 0x6043, 0x6064, 0x6042, 0x606C,
- 0x606B, 0x6059, 0x6081, 0x608D,
- 0x60E7, 0x6083, 0x609A, 0x6084,
- 0x609B, 0x6096, 0x6097, 0x6092, /* 9CA0 */
- 0x60A7, 0x608B, 0x60E1, 0x60B8,
- 0x60E0, 0x60D3, 0x60B4, 0x5FF0,
- 0x60BD, 0x60C6, 0x60B5, 0x60D8,
- 0x614D, 0x6115, 0x6106, 0x60F6,
- 0x60F7, 0x6100, 0x60F4, 0x60FA,
- 0x6103, 0x6121, 0x60FB, 0x60F1,
- 0x610D, 0x610E, 0x6147, 0x613E,
- 0x6128, 0x6127, 0x614A, 0x613F, /* 9CC0 */
- 0x613C, 0x612C, 0x6134, 0x613D,
- 0x6142, 0x6144, 0x6173, 0x6177,
- 0x6158, 0x6159, 0x615A, 0x616B,
- 0x6174, 0x616F, 0x6165, 0x6171,
- 0x615F, 0x615D, 0x6153, 0x6175,
- 0x6199, 0x6196, 0x6187, 0x61AC,
- 0x6194, 0x619A, 0x618A, 0x6191,
- 0x61AB, 0x61AE, 0x61CC, 0x61CA, /* 9CE0 */
- 0x61C9, 0x61F7, 0x61C8, 0x61C3,
- 0x61C6, 0x61BA, 0x61CB, 0x7F79,
- 0x61CD, 0x61E6, 0x61E3, 0x61F6,
- 0x61FA, 0x61F4, 0x61FF, 0x61FD,
- 0x61FC, 0x61FE, 0x6200, 0x6208,
- 0x6209, 0x620D, 0x620C, 0x6214,
- 0x621B, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x621E, 0x6221, 0x622A, 0x622E, /* 9D40 */
- 0x6230, 0x6232, 0x6233, 0x6241,
- 0x624E, 0x625E, 0x6263, 0x625B,
- 0x6260, 0x6268, 0x627C, 0x6282,
- 0x6289, 0x627E, 0x6292, 0x6293,
- 0x6296, 0x62D4, 0x6283, 0x6294,
- 0x62D7, 0x62D1, 0x62BB, 0x62CF,
- 0x62FF, 0x62C6, 0x64D4, 0x62C8,
- 0x62DC, 0x62CC, 0x62CA, 0x62C2, /* 9D60 */
- 0x62C7, 0x629B, 0x62C9, 0x630C,
- 0x62EE, 0x62F1, 0x6327, 0x6302,
- 0x6308, 0x62EF, 0x62F5, 0x6350,
- 0x633E, 0x634D, 0x641C, 0x634F,
- 0x6396, 0x638E, 0x6380, 0x63AB,
- 0x6376, 0x63A3, 0x638F, 0x6389,
- 0x639F, 0x63B5, 0x636B, 0x0000,
- 0x6369, 0x63BE, 0x63E9, 0x63C0, /* 9D80 */
- 0x63C6, 0x63E3, 0x63C9, 0x63D2,
- 0x63F6, 0x63C4, 0x6416, 0x6434,
- 0x6406, 0x6413, 0x6426, 0x6436,
- 0x651D, 0x6417, 0x6428, 0x640F,
- 0x6467, 0x646F, 0x6476, 0x644E,
- 0x652A, 0x6495, 0x6493, 0x64A5,
- 0x64A9, 0x6488, 0x64BC, 0x64DA,
- 0x64D2, 0x64C5, 0x64C7, 0x64BB, /* 9DA0 */
- 0x64D8, 0x64C2, 0x64F1, 0x64E7,
- 0x8209, 0x64E0, 0x64E1, 0x62AC,
- 0x64E3, 0x64EF, 0x652C, 0x64F6,
- 0x64F4, 0x64F2, 0x64FA, 0x6500,
- 0x64FD, 0x6518, 0x651C, 0x6505,
- 0x6524, 0x6523, 0x652B, 0x6534,
- 0x6535, 0x6537, 0x6536, 0x6538,
- 0x754B, 0x6548, 0x6556, 0x6555, /* 9DC0 */
- 0x654D, 0x6558, 0x655E, 0x655D,
- 0x6572, 0x6578, 0x6582, 0x6583,
- 0x8B8A, 0x659B, 0x659F, 0x65AB,
- 0x65B7, 0x65C3, 0x65C6, 0x65C1,
- 0x65C4, 0x65CC, 0x65D2, 0x65DB,
- 0x65D9, 0x65E0, 0x65E1, 0x65F1,
- 0x6772, 0x660A, 0x6603, 0x65FB,
- 0x6773, 0x6635, 0x6636, 0x6634, /* 9DE0 */
- 0x661C, 0x664F, 0x6644, 0x6649,
- 0x6641, 0x665E, 0x665D, 0x6664,
- 0x6667, 0x6668, 0x665F, 0x6662,
- 0x6670, 0x6683, 0x6688, 0x668E,
- 0x6689, 0x6684, 0x6698, 0x669D,
- 0x66C1, 0x66B9, 0x66C9, 0x66BE,
- 0x66BC, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x66C4, 0x66B8, 0x66D6, 0x66DA, /* 9E40 */
- 0x66E0, 0x663F, 0x66E6, 0x66E9,
- 0x66F0, 0x66F5, 0x66F7, 0x670F,
- 0x6716, 0x671E, 0x6726, 0x6727,
- 0x9738, 0x672E, 0x673F, 0x6736,
- 0x6741, 0x6738, 0x6737, 0x6746,
- 0x675E, 0x6760, 0x6759, 0x6763,
- 0x6764, 0x6789, 0x6770, 0x67A9,
- 0x677C, 0x676A, 0x678C, 0x678B, /* 9E60 */
- 0x67A6, 0x67A1, 0x6785, 0x67B7,
- 0x67EF, 0x67B4, 0x67EC, 0x67B3,
- 0x67E9, 0x67B8, 0x67E4, 0x67DE,
- 0x67DD, 0x67E2, 0x67EE, 0x67B9,
- 0x67CE, 0x67C6, 0x67E7, 0x6A9C,
- 0x681E, 0x6846, 0x6829, 0x6840,
- 0x684D, 0x6832, 0x684E, 0x0000,
- 0x68B3, 0x682B, 0x6859, 0x6863, /* 9E80 */
- 0x6877, 0x687F, 0x689F, 0x688F,
- 0x68AD, 0x6894, 0x689D, 0x689B,
- 0x6883, 0x6AAE, 0x68B9, 0x6874,
- 0x68B5, 0x68A0, 0x68BA, 0x690F,
- 0x688D, 0x687E, 0x6901, 0x68CA,
- 0x6908, 0x68D8, 0x6922, 0x6926,
- 0x68E1, 0x690C, 0x68CD, 0x68D4,
- 0x68E7, 0x68D5, 0x6936, 0x6912, /* 9EA0 */
- 0x6904, 0x68D7, 0x68E3, 0x6925,
- 0x68F9, 0x68E0, 0x68EF, 0x6928,
- 0x692A, 0x691A, 0x6923, 0x6921,
- 0x68C6, 0x6979, 0x6977, 0x695C,
- 0x6978, 0x696B, 0x6954, 0x697E,
- 0x696E, 0x6939, 0x6974, 0x693D,
- 0x6959, 0x6930, 0x6961, 0x695E,
- 0x695D, 0x6981, 0x696A, 0x69B2, /* 9EC0 */
- 0x69AE, 0x69D0, 0x69BF, 0x69C1,
- 0x69D3, 0x69BE, 0x69CE, 0x5BE8,
- 0x69CA, 0x69DD, 0x69BB, 0x69C3,
- 0x69A7, 0x6A2E, 0x6991, 0x69A0,
- 0x699C, 0x6995, 0x69B4, 0x69DE,
- 0x69E8, 0x6A02, 0x6A1B, 0x69FF,
- 0x6B0A, 0x69F9, 0x69F2, 0x69E7,
- 0x6A05, 0x69B1, 0x6A1E, 0x69ED, /* 9EE0 */
- 0x6A14, 0x69EB, 0x6A0A, 0x6A12,
- 0x6AC1, 0x6A23, 0x6A13, 0x6A44,
- 0x6A0C, 0x6A72, 0x6A36, 0x6A78,
- 0x6A47, 0x6A62, 0x6A59, 0x6A66,
- 0x6A48, 0x6A38, 0x6A22, 0x6A90,
- 0x6A8D, 0x6AA0, 0x6A84, 0x6AA2,
- 0x6AA3, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6A97, 0x8617, 0x6ABB, 0x6AC3, /* 9F40 */
- 0x6AC2, 0x6AB8, 0x6AB3, 0x6AAC,
- 0x6ADE, 0x6AD1, 0x6ADF, 0x6AAA,
- 0x6ADA, 0x6AEA, 0x6AFB, 0x6B05,
- 0x8616, 0x6AFA, 0x6B12, 0x6B16,
- 0x9B31, 0x6B1F, 0x6B38, 0x6B37,
- 0x76DC, 0x6B39, 0x98EE, 0x6B47,
- 0x6B43, 0x6B49, 0x6B50, 0x6B59,
- 0x6B54, 0x6B5B, 0x6B5F, 0x6B61, /* 9F60 */
- 0x6B78, 0x6B79, 0x6B7F, 0x6B80,
- 0x6B84, 0x6B83, 0x6B8D, 0x6B98,
- 0x6B95, 0x6B9E, 0x6BA4, 0x6BAA,
- 0x6BAB, 0x6BAF, 0x6BB2, 0x6BB1,
- 0x6BB3, 0x6BB7, 0x6BBC, 0x6BC6,
- 0x6BCB, 0x6BD3, 0x6BDF, 0x6BEC,
- 0x6BEB, 0x6BF3, 0x6BEF, 0x0000,
- 0x9EBE, 0x6C08, 0x6C13, 0x6C14, /* 9F80 */
- 0x6C1B, 0x6C24, 0x6C23, 0x6C5E,
- 0x6C55, 0x6C62, 0x6C6A, 0x6C82,
- 0x6C8D, 0x6C9A, 0x6C81, 0x6C9B,
- 0x6C7E, 0x6C68, 0x6C73, 0x6C92,
- 0x6C90, 0x6CC4, 0x6CF1, 0x6CD3,
- 0x6CBD, 0x6CD7, 0x6CC5, 0x6CDD,
- 0x6CAE, 0x6CB1, 0x6CBE, 0x6CBA,
- 0x6CDB, 0x6CEF, 0x6CD9, 0x6CEA, /* 9FA0 */
- 0x6D1F, 0x884D, 0x6D36, 0x6D2B,
- 0x6D3D, 0x6D38, 0x6D19, 0x6D35,
- 0x6D33, 0x6D12, 0x6D0C, 0x6D63,
- 0x6D93, 0x6D64, 0x6D5A, 0x6D79,
- 0x6D59, 0x6D8E, 0x6D95, 0x6FE4,
- 0x6D85, 0x6DF9, 0x6E15, 0x6E0A,
- 0x6DB5, 0x6DC7, 0x6DE6, 0x6DB8,
- 0x6DC6, 0x6DEC, 0x6DDE, 0x6DCC, /* 9FC0 */
- 0x6DE8, 0x6DD2, 0x6DC5, 0x6DFA,
- 0x6DD9, 0x6DE4, 0x6DD5, 0x6DEA,
- 0x6DEE, 0x6E2D, 0x6E6E, 0x6E2E,
- 0x6E19, 0x6E72, 0x6E5F, 0x6E3E,
- 0x6E23, 0x6E6B, 0x6E2B, 0x6E76,
- 0x6E4D, 0x6E1F, 0x6E43, 0x6E3A,
- 0x6E4E, 0x6E24, 0x6EFF, 0x6E1D,
- 0x6E38, 0x6E82, 0x6EAA, 0x6E98, /* 9FE0 */
- 0x6EC9, 0x6EB7, 0x6ED3, 0x6EBD,
- 0x6EAF, 0x6EC4, 0x6EB2, 0x6ED4,
- 0x6ED5, 0x6E8F, 0x6EA5, 0x6EC2,
- 0x6E9F, 0x6F41, 0x6F11, 0x704C,
- 0x6EEC, 0x6EF8, 0x6EFE, 0x6F3F,
- 0x6EF2, 0x6F31, 0x6EEF, 0x6F32,
- 0x6ECC, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6F3E, 0x6F13, 0x6EF7, 0x6F86, /* E040 */
- 0x6F7A, 0x6F78, 0x6F81, 0x6F80,
- 0x6F6F, 0x6F5B, 0x6FF3, 0x6F6D,
- 0x6F82, 0x6F7C, 0x6F58, 0x6F8E,
- 0x6F91, 0x6FC2, 0x6F66, 0x6FB3,
- 0x6FA3, 0x6FA1, 0x6FA4, 0x6FB9,
- 0x6FC6, 0x6FAA, 0x6FDF, 0x6FD5,
- 0x6FEC, 0x6FD4, 0x6FD8, 0x6FF1,
- 0x6FEE, 0x6FDB, 0x7009, 0x700B, /* E060 */
- 0x6FFA, 0x7011, 0x7001, 0x700F,
- 0x6FFE, 0x701B, 0x701A, 0x6F74,
- 0x701D, 0x7018, 0x701F, 0x7030,
- 0x703E, 0x7032, 0x7051, 0x7063,
- 0x7099, 0x7092, 0x70AF, 0x70F1,
- 0x70AC, 0x70B8, 0x70B3, 0x70AE,
- 0x70DF, 0x70CB, 0x70DD, 0x0000,
- 0x70D9, 0x7109, 0x70FD, 0x711C, /* E080 */
- 0x7119, 0x7165, 0x7155, 0x7188,
- 0x7166, 0x7162, 0x714C, 0x7156,
- 0x716C, 0x718F, 0x71FB, 0x7184,
- 0x7195, 0x71A8, 0x71AC, 0x71D7,
- 0x71B9, 0x71BE, 0x71D2, 0x71C9,
- 0x71D4, 0x71CE, 0x71E0, 0x71EC,
- 0x71E7, 0x71F5, 0x71FC, 0x71F9,
- 0x71FF, 0x720D, 0x7210, 0x721B, /* E0A0 */
- 0x7228, 0x722D, 0x722C, 0x7230,
- 0x7232, 0x723B, 0x723C, 0x723F,
- 0x7240, 0x7246, 0x724B, 0x7258,
- 0x7274, 0x727E, 0x7282, 0x7281,
- 0x7287, 0x7292, 0x7296, 0x72A2,
- 0x72A7, 0x72B9, 0x72B2, 0x72C3,
- 0x72C6, 0x72C4, 0x72CE, 0x72D2,
- 0x72E2, 0x72E0, 0x72E1, 0x72F9, /* E0C0 */
- 0x72F7, 0x500F, 0x7317, 0x730A,
- 0x731C, 0x7316, 0x731D, 0x7334,
- 0x732F, 0x7329, 0x7325, 0x733E,
- 0x734E, 0x734F, 0x9ED8, 0x7357,
- 0x736A, 0x7368, 0x7370, 0x7378,
- 0x7375, 0x737B, 0x737A, 0x73C8,
- 0x73B3, 0x73CE, 0x73BB, 0x73C0,
- 0x73E5, 0x73EE, 0x73DE, 0x74A2, /* E0E0 */
- 0x7405, 0x746F, 0x7425, 0x73F8,
- 0x7432, 0x743A, 0x7455, 0x743F,
- 0x745F, 0x7459, 0x7441, 0x745C,
- 0x7469, 0x7470, 0x7463, 0x746A,
- 0x7476, 0x747E, 0x748B, 0x749E,
- 0x74A7, 0x74CA, 0x74CF, 0x74D4,
- 0x73F1, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x74E0, 0x74E3, 0x74E7, 0x74E9, /* E140 */
- 0x74EE, 0x74F2, 0x74F0, 0x74F1,
- 0x74F8, 0x74F7, 0x7504, 0x7503,
- 0x7505, 0x750C, 0x750E, 0x750D,
- 0x7515, 0x7513, 0x751E, 0x7526,
- 0x752C, 0x753C, 0x7544, 0x754D,
- 0x754A, 0x7549, 0x755B, 0x7546,
- 0x755A, 0x7569, 0x7564, 0x7567,
- 0x756B, 0x756D, 0x7578, 0x7576, /* E160 */
- 0x7586, 0x7587, 0x7574, 0x758A,
- 0x7589, 0x7582, 0x7594, 0x759A,
- 0x759D, 0x75A5, 0x75A3, 0x75C2,
- 0x75B3, 0x75C3, 0x75B5, 0x75BD,
- 0x75B8, 0x75BC, 0x75B1, 0x75CD,
- 0x75CA, 0x75D2, 0x75D9, 0x75E3,
- 0x75DE, 0x75FE, 0x75FF, 0x0000,
- 0x75FC, 0x7601, 0x75F0, 0x75FA, /* E180 */
- 0x75F2, 0x75F3, 0x760B, 0x760D,
- 0x7609, 0x761F, 0x7627, 0x7620,
- 0x7621, 0x7622, 0x7624, 0x7634,
- 0x7630, 0x763B, 0x7647, 0x7648,
- 0x7646, 0x765C, 0x7658, 0x7661,
- 0x7662, 0x7668, 0x7669, 0x766A,
- 0x7667, 0x766C, 0x7670, 0x7672,
- 0x7676, 0x7678, 0x767C, 0x7680, /* E1A0 */
- 0x7683, 0x7688, 0x768B, 0x768E,
- 0x7696, 0x7693, 0x7699, 0x769A,
- 0x76B0, 0x76B4, 0x76B8, 0x76B9,
- 0x76BA, 0x76C2, 0x76CD, 0x76D6,
- 0x76D2, 0x76DE, 0x76E1, 0x76E5,
- 0x76E7, 0x76EA, 0x862F, 0x76FB,
- 0x7708, 0x7707, 0x7704, 0x7729,
- 0x7724, 0x771E, 0x7725, 0x7726, /* E1C0 */
- 0x771B, 0x7737, 0x7738, 0x7747,
- 0x775A, 0x7768, 0x776B, 0x775B,
- 0x7765, 0x777F, 0x777E, 0x7779,
- 0x778E, 0x778B, 0x7791, 0x77A0,
- 0x779E, 0x77B0, 0x77B6, 0x77B9,
- 0x77BF, 0x77BC, 0x77BD, 0x77BB,
- 0x77C7, 0x77CD, 0x77D7, 0x77DA,
- 0x77DC, 0x77E3, 0x77EE, 0x77FC, /* E1E0 */
- 0x780C, 0x7812, 0x7926, 0x7820,
- 0x792A, 0x7845, 0x788E, 0x7874,
- 0x7886, 0x787C, 0x789A, 0x788C,
- 0x78A3, 0x78B5, 0x78AA, 0x78AF,
- 0x78D1, 0x78C6, 0x78CB, 0x78D4,
- 0x78BE, 0x78BC, 0x78C5, 0x78CA,
- 0x78EC, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x78E7, 0x78DA, 0x78FD, 0x78F4, /* E240 */
- 0x7907, 0x7912, 0x7911, 0x7919,
- 0x792C, 0x792B, 0x7940, 0x7960,
- 0x7957, 0x795F, 0x795A, 0x7955,
- 0x7953, 0x797A, 0x797F, 0x798A,
- 0x799D, 0x79A7, 0x9F4B, 0x79AA,
- 0x79AE, 0x79B3, 0x79B9, 0x79BA,
- 0x79C9, 0x79D5, 0x79E7, 0x79EC,
- 0x79E1, 0x79E3, 0x7A08, 0x7A0D, /* E260 */
- 0x7A18, 0x7A19, 0x7A20, 0x7A1F,
- 0x7980, 0x7A31, 0x7A3B, 0x7A3E,
- 0x7A37, 0x7A43, 0x7A57, 0x7A49,
- 0x7A61, 0x7A62, 0x7A69, 0x9F9D,
- 0x7A70, 0x7A79, 0x7A7D, 0x7A88,
- 0x7A97, 0x7A95, 0x7A98, 0x7A96,
- 0x7AA9, 0x7AC8, 0x7AB0, 0x0000,
- 0x7AB6, 0x7AC5, 0x7AC4, 0x7ABF, /* E280 */
- 0x9083, 0x7AC7, 0x7ACA, 0x7ACD,
- 0x7ACF, 0x7AD5, 0x7AD3, 0x7AD9,
- 0x7ADA, 0x7ADD, 0x7AE1, 0x7AE2,
- 0x7AE6, 0x7AED, 0x7AF0, 0x7B02,
- 0x7B0F, 0x7B0A, 0x7B06, 0x7B33,
- 0x7B18, 0x7B19, 0x7B1E, 0x7B35,
- 0x7B28, 0x7B36, 0x7B50, 0x7B7A,
- 0x7B04, 0x7B4D, 0x7B0B, 0x7B4C, /* E2A0 */
- 0x7B45, 0x7B75, 0x7B65, 0x7B74,
- 0x7B67, 0x7B70, 0x7B71, 0x7B6C,
- 0x7B6E, 0x7B9D, 0x7B98, 0x7B9F,
- 0x7B8D, 0x7B9C, 0x7B9A, 0x7B8B,
- 0x7B92, 0x7B8F, 0x7B5D, 0x7B99,
- 0x7BCB, 0x7BC1, 0x7BCC, 0x7BCF,
- 0x7BB4, 0x7BC6, 0x7BDD, 0x7BE9,
- 0x7C11, 0x7C14, 0x7BE6, 0x7BE5, /* E2C0 */
- 0x7C60, 0x7C00, 0x7C07, 0x7C13,
- 0x7BF3, 0x7BF7, 0x7C17, 0x7C0D,
- 0x7BF6, 0x7C23, 0x7C27, 0x7C2A,
- 0x7C1F, 0x7C37, 0x7C2B, 0x7C3D,
- 0x7C4C, 0x7C43, 0x7C54, 0x7C4F,
- 0x7C40, 0x7C50, 0x7C58, 0x7C5F,
- 0x7C64, 0x7C56, 0x7C65, 0x7C6C,
- 0x7C75, 0x7C83, 0x7C90, 0x7CA4, /* E2E0 */
- 0x7CAD, 0x7CA2, 0x7CAB, 0x7CA1,
- 0x7CA8, 0x7CB3, 0x7CB2, 0x7CB1,
- 0x7CAE, 0x7CB9, 0x7CBD, 0x7CC0,
- 0x7CC5, 0x7CC2, 0x7CD8, 0x7CD2,
- 0x7CDC, 0x7CE2, 0x9B3B, 0x7CEF,
- 0x7CF2, 0x7CF4, 0x7CF6, 0x7CFA,
- 0x7D06, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x7D02, 0x7D1C, 0x7D15, 0x7D0A, /* E340 */
- 0x7D45, 0x7D4B, 0x7D2E, 0x7D32,
- 0x7D3F, 0x7D35, 0x7D46, 0x7D73,
- 0x7D56, 0x7D4E, 0x7D72, 0x7D68,
- 0x7D6E, 0x7D4F, 0x7D63, 0x7D93,
- 0x7D89, 0x7D5B, 0x7D8F, 0x7D7D,
- 0x7D9B, 0x7DBA, 0x7DAE, 0x7DA3,
- 0x7DB5, 0x7DC7, 0x7DBD, 0x7DAB,
- 0x7E3D, 0x7DA2, 0x7DAF, 0x7DDC, /* E360 */
- 0x7DB8, 0x7D9F, 0x7DB0, 0x7DD8,
- 0x7DDD, 0x7DE4, 0x7DDE, 0x7DFB,
- 0x7DF2, 0x7DE1, 0x7E05, 0x7E0A,
- 0x7E23, 0x7E21, 0x7E12, 0x7E31,
- 0x7E1F, 0x7E09, 0x7E0B, 0x7E22,
- 0x7E46, 0x7E66, 0x7E3B, 0x7E35,
- 0x7E39, 0x7E43, 0x7E37, 0x0000,
- 0x7E32, 0x7E3A, 0x7E67, 0x7E5D, /* E380 */
- 0x7E56, 0x7E5E, 0x7E59, 0x7E5A,
- 0x7E79, 0x7E6A, 0x7E69, 0x7E7C,
- 0x7E7B, 0x7E83, 0x7DD5, 0x7E7D,
- 0x8FAE, 0x7E7F, 0x7E88, 0x7E89,
- 0x7E8C, 0x7E92, 0x7E90, 0x7E93,
- 0x7E94, 0x7E96, 0x7E8E, 0x7E9B,
- 0x7E9C, 0x7F38, 0x7F3A, 0x7F45,
- 0x7F4C, 0x7F4D, 0x7F4E, 0x7F50, /* E3A0 */
- 0x7F51, 0x7F55, 0x7F54, 0x7F58,
- 0x7F5F, 0x7F60, 0x7F68, 0x7F69,
- 0x7F67, 0x7F78, 0x7F82, 0x7F86,
- 0x7F83, 0x7F88, 0x7F87, 0x7F8C,
- 0x7F94, 0x7F9E, 0x7F9D, 0x7F9A,
- 0x7FA3, 0x7FAF, 0x7FB2, 0x7FB9,
- 0x7FAE, 0x7FB6, 0x7FB8, 0x8B71,
- 0x7FC5, 0x7FC6, 0x7FCA, 0x7FD5, /* E3C0 */
- 0x7FD4, 0x7FE1, 0x7FE6, 0x7FE9,
- 0x7FF3, 0x7FF9, 0x98DC, 0x8006,
- 0x8004, 0x800B, 0x8012, 0x8018,
- 0x8019, 0x801C, 0x8021, 0x8028,
- 0x803F, 0x803B, 0x804A, 0x8046,
- 0x8052, 0x8058, 0x805A, 0x805F,
- 0x8062, 0x8068, 0x8073, 0x8072,
- 0x8070, 0x8076, 0x8079, 0x807D, /* E3E0 */
- 0x807F, 0x8084, 0x8086, 0x8085,
- 0x809B, 0x8093, 0x809A, 0x80AD,
- 0x5190, 0x80AC, 0x80DB, 0x80E5,
- 0x80D9, 0x80DD, 0x80C4, 0x80DA,
- 0x80D6, 0x8109, 0x80EF, 0x80F1,
- 0x811B, 0x8129, 0x8123, 0x812F,
- 0x814B, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x968B, 0x8146, 0x813E, 0x8153, /* E440 */
- 0x8151, 0x80FC, 0x8171, 0x816E,
- 0x8165, 0x8166, 0x8174, 0x8183,
- 0x8188, 0x818A, 0x8180, 0x8182,
- 0x81A0, 0x8195, 0x81A4, 0x81A3,
- 0x815F, 0x8193, 0x81A9, 0x81B0,
- 0x81B5, 0x81BE, 0x81B8, 0x81BD,
- 0x81C0, 0x81C2, 0x81BA, 0x81C9,
- 0x81CD, 0x81D1, 0x81D9, 0x81D8, /* E460 */
- 0x81C8, 0x81DA, 0x81DF, 0x81E0,
- 0x81E7, 0x81FA, 0x81FB, 0x81FE,
- 0x8201, 0x8202, 0x8205, 0x8207,
- 0x820A, 0x820D, 0x8210, 0x8216,
- 0x8229, 0x822B, 0x8238, 0x8233,
- 0x8240, 0x8259, 0x8258, 0x825D,
- 0x825A, 0x825F, 0x8264, 0x0000,
- 0x8262, 0x8268, 0x826A, 0x826B, /* E480 */
- 0x822E, 0x8271, 0x8277, 0x8278,
- 0x827E, 0x828D, 0x8292, 0x82AB,
- 0x829F, 0x82BB, 0x82AC, 0x82E1,
- 0x82E3, 0x82DF, 0x82D2, 0x82F4,
- 0x82F3, 0x82FA, 0x8393, 0x8303,
- 0x82FB, 0x82F9, 0x82DE, 0x8306,
- 0x82DC, 0x8309, 0x82D9, 0x8335,
- 0x8334, 0x8316, 0x8332, 0x8331, /* E4A0 */
- 0x8340, 0x8339, 0x8350, 0x8345,
- 0x832F, 0x832B, 0x8317, 0x8318,
- 0x8385, 0x839A, 0x83AA, 0x839F,
- 0x83A2, 0x8396, 0x8323, 0x838E,
- 0x8387, 0x838A, 0x837C, 0x83B5,
- 0x8373, 0x8375, 0x83A0, 0x8389,
- 0x83A8, 0x83F4, 0x8413, 0x83EB,
- 0x83CE, 0x83FD, 0x8403, 0x83D8, /* E4C0 */
- 0x840B, 0x83C1, 0x83F7, 0x8407,
- 0x83E0, 0x83F2, 0x840D, 0x8422,
- 0x8420, 0x83BD, 0x8438, 0x8506,
- 0x83FB, 0x846D, 0x842A, 0x843C,
- 0x855A, 0x8484, 0x8477, 0x846B,
- 0x84AD, 0x846E, 0x8482, 0x8469,
- 0x8446, 0x842C, 0x846F, 0x8479,
- 0x8435, 0x84CA, 0x8462, 0x84B9, /* E4E0 */
- 0x84BF, 0x849F, 0x84D9, 0x84CD,
- 0x84BB, 0x84DA, 0x84D0, 0x84C1,
- 0x84C6, 0x84D6, 0x84A1, 0x8521,
- 0x84FF, 0x84F4, 0x8517, 0x8518,
- 0x852C, 0x851F, 0x8515, 0x8514,
- 0x84FC, 0x8540, 0x8563, 0x8558,
- 0x8548, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x8541, 0x8602, 0x854B, 0x8555, /* E540 */
- 0x8580, 0x85A4, 0x8588, 0x8591,
- 0x858A, 0x85A8, 0x856D, 0x8594,
- 0x859B, 0x85EA, 0x8587, 0x859C,
- 0x8577, 0x857E, 0x8590, 0x85C9,
- 0x85BA, 0x85CF, 0x85B9, 0x85D0,
- 0x85D5, 0x85DD, 0x85E5, 0x85DC,
- 0x85F9, 0x860A, 0x8613, 0x860B,
- 0x85FE, 0x85FA, 0x8606, 0x8622, /* E560 */
- 0x861A, 0x8630, 0x863F, 0x864D,
- 0x4E55, 0x8654, 0x865F, 0x8667,
- 0x8671, 0x8693, 0x86A3, 0x86A9,
- 0x86AA, 0x868B, 0x868C, 0x86B6,
- 0x86AF, 0x86C4, 0x86C6, 0x86B0,
- 0x86C9, 0x8823, 0x86AB, 0x86D4,
- 0x86DE, 0x86E9, 0x86EC, 0x0000,
- 0x86DF, 0x86DB, 0x86EF, 0x8712, /* E580 */
- 0x8706, 0x8708, 0x8700, 0x8703,
- 0x86FB, 0x8711, 0x8709, 0x870D,
- 0x86F9, 0x870A, 0x8734, 0x873F,
- 0x8737, 0x873B, 0x8725, 0x8729,
- 0x871A, 0x8760, 0x875F, 0x8778,
- 0x874C, 0x874E, 0x8774, 0x8757,
- 0x8768, 0x876E, 0x8759, 0x8753,
- 0x8763, 0x876A, 0x8805, 0x87A2, /* E5A0 */
- 0x879F, 0x8782, 0x87AF, 0x87CB,
- 0x87BD, 0x87C0, 0x87D0, 0x96D6,
- 0x87AB, 0x87C4, 0x87B3, 0x87C7,
- 0x87C6, 0x87BB, 0x87EF, 0x87F2,
- 0x87E0, 0x880F, 0x880D, 0x87FE,
- 0x87F6, 0x87F7, 0x880E, 0x87D2,
- 0x8811, 0x8816, 0x8815, 0x8822,
- 0x8821, 0x8831, 0x8836, 0x8839, /* E5C0 */
- 0x8827, 0x883B, 0x8844, 0x8842,
- 0x8852, 0x8859, 0x885E, 0x8862,
- 0x886B, 0x8881, 0x887E, 0x889E,
- 0x8875, 0x887D, 0x88B5, 0x8872,
- 0x8882, 0x8897, 0x8892, 0x88AE,
- 0x8899, 0x88A2, 0x888D, 0x88A4,
- 0x88B0, 0x88BF, 0x88B1, 0x88C3,
- 0x88C4, 0x88D4, 0x88D8, 0x88D9, /* E5E0 */
- 0x88DD, 0x88F9, 0x8902, 0x88FC,
- 0x88F4, 0x88E8, 0x88F2, 0x8904,
- 0x890C, 0x890A, 0x8913, 0x8943,
- 0x891E, 0x8925, 0x892A, 0x892B,
- 0x8941, 0x8944, 0x893B, 0x8936,
- 0x8938, 0x894C, 0x891D, 0x8960,
- 0x895E, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x8966, 0x8964, 0x896D, 0x896A, /* E640 */
- 0x896F, 0x8974, 0x8977, 0x897E,
- 0x8983, 0x8988, 0x898A, 0x8993,
- 0x8998, 0x89A1, 0x89A9, 0x89A6,
- 0x89AC, 0x89AF, 0x89B2, 0x89BA,
- 0x89BD, 0x89BF, 0x89C0, 0x89DA,
- 0x89DC, 0x89DD, 0x89E7, 0x89F4,
- 0x89F8, 0x8A03, 0x8A16, 0x8A10,
- 0x8A0C, 0x8A1B, 0x8A1D, 0x8A25, /* E660 */
- 0x8A36, 0x8A41, 0x8A5B, 0x8A52,
- 0x8A46, 0x8A48, 0x8A7C, 0x8A6D,
- 0x8A6C, 0x8A62, 0x8A85, 0x8A82,
- 0x8A84, 0x8AA8, 0x8AA1, 0x8A91,
- 0x8AA5, 0x8AA6, 0x8A9A, 0x8AA3,
- 0x8AC4, 0x8ACD, 0x8AC2, 0x8ADA,
- 0x8AEB, 0x8AF3, 0x8AE7, 0x0000,
- 0x8AE4, 0x8AF1, 0x8B14, 0x8AE0, /* E680 */
- 0x8AE2, 0x8AF7, 0x8ADE, 0x8ADB,
- 0x8B0C, 0x8B07, 0x8B1A, 0x8AE1,
- 0x8B16, 0x8B10, 0x8B17, 0x8B20,
- 0x8B33, 0x97AB, 0x8B26, 0x8B2B,
- 0x8B3E, 0x8B28, 0x8B41, 0x8B4C,
- 0x8B4F, 0x8B4E, 0x8B49, 0x8B56,
- 0x8B5B, 0x8B5A, 0x8B6B, 0x8B5F,
- 0x8B6C, 0x8B6F, 0x8B74, 0x8B7D, /* E6A0 */
- 0x8B80, 0x8B8C, 0x8B8E, 0x8B92,
- 0x8B93, 0x8B96, 0x8B99, 0x8B9A,
- 0x8C3A, 0x8C41, 0x8C3F, 0x8C48,
- 0x8C4C, 0x8C4E, 0x8C50, 0x8C55,
- 0x8C62, 0x8C6C, 0x8C78, 0x8C7A,
- 0x8C82, 0x8C89, 0x8C85, 0x8C8A,
- 0x8C8D, 0x8C8E, 0x8C94, 0x8C7C,
- 0x8C98, 0x621D, 0x8CAD, 0x8CAA, /* E6C0 */
- 0x8CBD, 0x8CB2, 0x8CB3, 0x8CAE,
- 0x8CB6, 0x8CC8, 0x8CC1, 0x8CE4,
- 0x8CE3, 0x8CDA, 0x8CFD, 0x8CFA,
- 0x8CFB, 0x8D04, 0x8D05, 0x8D0A,
- 0x8D07, 0x8D0F, 0x8D0D, 0x8D10,
- 0x9F4E, 0x8D13, 0x8CCD, 0x8D14,
- 0x8D16, 0x8D67, 0x8D6D, 0x8D71,
- 0x8D73, 0x8D81, 0x8D99, 0x8DC2, /* E6E0 */
- 0x8DBE, 0x8DBA, 0x8DCF, 0x8DDA,
- 0x8DD6, 0x8DCC, 0x8DDB, 0x8DCB,
- 0x8DEA, 0x8DEB, 0x8DDF, 0x8DE3,
- 0x8DFC, 0x8E08, 0x8E09, 0x8DFF,
- 0x8E1D, 0x8E1E, 0x8E10, 0x8E1F,
- 0x8E42, 0x8E35, 0x8E30, 0x8E34,
- 0x8E4A, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x8E47, 0x8E49, 0x8E4C, 0x8E50, /* E740 */
- 0x8E48, 0x8E59, 0x8E64, 0x8E60,
- 0x8E2A, 0x8E63, 0x8E55, 0x8E76,
- 0x8E72, 0x8E7C, 0x8E81, 0x8E87,
- 0x8E85, 0x8E84, 0x8E8B, 0x8E8A,
- 0x8E93, 0x8E91, 0x8E94, 0x8E99,
- 0x8EAA, 0x8EA1, 0x8EAC, 0x8EB0,
- 0x8EC6, 0x8EB1, 0x8EBE, 0x8EC5,
- 0x8EC8, 0x8ECB, 0x8EDB, 0x8EE3, /* E760 */
- 0x8EFC, 0x8EFB, 0x8EEB, 0x8EFE,
- 0x8F0A, 0x8F05, 0x8F15, 0x8F12,
- 0x8F19, 0x8F13, 0x8F1C, 0x8F1F,
- 0x8F1B, 0x8F0C, 0x8F26, 0x8F33,
- 0x8F3B, 0x8F39, 0x8F45, 0x8F42,
- 0x8F3E, 0x8F4C, 0x8F49, 0x8F46,
- 0x8F4E, 0x8F57, 0x8F5C, 0x0000,
- 0x8F62, 0x8F63, 0x8F64, 0x8F9C, /* E780 */
- 0x8F9F, 0x8FA3, 0x8FAD, 0x8FAF,
- 0x8FB7, 0x8FDA, 0x8FE5, 0x8FE2,
- 0x8FEA, 0x8FEF, 0x9087, 0x8FF4,
- 0x9005, 0x8FF9, 0x8FFA, 0x9011,
- 0x9015, 0x9021, 0x900D, 0x901E,
- 0x9016, 0x900B, 0x9027, 0x9036,
- 0x9035, 0x9039, 0x8FF8, 0x904F,
- 0x9050, 0x9051, 0x9052, 0x900E, /* E7A0 */
- 0x9049, 0x903E, 0x9056, 0x9058,
- 0x905E, 0x9068, 0x906F, 0x9076,
- 0x96A8, 0x9072, 0x9082, 0x907D,
- 0x9081, 0x9080, 0x908A, 0x9089,
- 0x908F, 0x90A8, 0x90AF, 0x90B1,
- 0x90B5, 0x90E2, 0x90E4, 0x6248,
- 0x90DB, 0x9102, 0x9112, 0x9119,
- 0x9132, 0x9130, 0x914A, 0x9156, /* E7C0 */
- 0x9158, 0x9163, 0x9165, 0x9169,
- 0x9173, 0x9172, 0x918B, 0x9189,
- 0x9182, 0x91A2, 0x91AB, 0x91AF,
- 0x91AA, 0x91B5, 0x91B4, 0x91BA,
- 0x91C0, 0x91C1, 0x91C9, 0x91CB,
- 0x91D0, 0x91D6, 0x91DF, 0x91E1,
- 0x91DB, 0x91FC, 0x91F5, 0x91F6,
- 0x921E, 0x91FF, 0x9214, 0x922C, /* E7E0 */
- 0x9215, 0x9211, 0x925E, 0x9257,
- 0x9245, 0x9249, 0x9264, 0x9248,
- 0x9295, 0x923F, 0x924B, 0x9250,
- 0x929C, 0x9296, 0x9293, 0x929B,
- 0x925A, 0x92CF, 0x92B9, 0x92B7,
- 0x92E9, 0x930F, 0x92FA, 0x9344,
- 0x932E, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9319, 0x9322, 0x931A, 0x9323, /* E840 */
- 0x933A, 0x9335, 0x933B, 0x935C,
- 0x9360, 0x937C, 0x936E, 0x9356,
- 0x93B0, 0x93AC, 0x93AD, 0x9394,
- 0x93B9, 0x93D6, 0x93D7, 0x93E8,
- 0x93E5, 0x93D8, 0x93C3, 0x93DD,
- 0x93D0, 0x93C8, 0x93E4, 0x941A,
- 0x9414, 0x9413, 0x9403, 0x9407,
- 0x9410, 0x9436, 0x942B, 0x9435, /* E860 */
- 0x9421, 0x943A, 0x9441, 0x9452,
- 0x9444, 0x945B, 0x9460, 0x9462,
- 0x945E, 0x946A, 0x9229, 0x9470,
- 0x9475, 0x9477, 0x947D, 0x945A,
- 0x947C, 0x947E, 0x9481, 0x947F,
- 0x9582, 0x9587, 0x958A, 0x9594,
- 0x9596, 0x9598, 0x9599, 0x0000,
- 0x95A0, 0x95A8, 0x95A7, 0x95AD, /* E880 */
- 0x95BC, 0x95BB, 0x95B9, 0x95BE,
- 0x95CA, 0x6FF6, 0x95C3, 0x95CD,
- 0x95CC, 0x95D5, 0x95D4, 0x95D6,
- 0x95DC, 0x95E1, 0x95E5, 0x95E2,
- 0x9621, 0x9628, 0x962E, 0x962F,
- 0x9642, 0x964C, 0x964F, 0x964B,
- 0x9677, 0x965C, 0x965E, 0x965D,
- 0x965F, 0x9666, 0x9672, 0x966C, /* E8A0 */
- 0x968D, 0x9698, 0x9695, 0x9697,
- 0x96AA, 0x96A7, 0x96B1, 0x96B2,
- 0x96B0, 0x96B4, 0x96B6, 0x96B8,
- 0x96B9, 0x96CE, 0x96CB, 0x96C9,
- 0x96CD, 0x894D, 0x96DC, 0x970D,
- 0x96D5, 0x96F9, 0x9704, 0x9706,
- 0x9708, 0x9713, 0x970E, 0x9711,
- 0x970F, 0x9716, 0x9719, 0x9724, /* E8C0 */
- 0x972A, 0x9730, 0x9739, 0x973D,
- 0x973E, 0x9744, 0x9746, 0x9748,
- 0x9742, 0x9749, 0x975C, 0x9760,
- 0x9764, 0x9766, 0x9768, 0x52D2,
- 0x976B, 0x9771, 0x9779, 0x9785,
- 0x977C, 0x9781, 0x977A, 0x9786,
- 0x978B, 0x978F, 0x9790, 0x979C,
- 0x97A8, 0x97A6, 0x97A3, 0x97B3, /* E8E0 */
- 0x97B4, 0x97C3, 0x97C6, 0x97C8,
- 0x97CB, 0x97DC, 0x97ED, 0x9F4F,
- 0x97F2, 0x7ADF, 0x97F6, 0x97F5,
- 0x980F, 0x980C, 0x9838, 0x9824,
- 0x9821, 0x9837, 0x983D, 0x9846,
- 0x984F, 0x984B, 0x986B, 0x986F,
- 0x9870, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9871, 0x9874, 0x9873, 0x98AA, /* E940 */
- 0x98AF, 0x98B1, 0x98B6, 0x98C4,
- 0x98C3, 0x98C6, 0x98E9, 0x98EB,
- 0x9903, 0x9909, 0x9912, 0x9914,
- 0x9918, 0x9921, 0x991D, 0x991E,
- 0x9924, 0x9920, 0x992C, 0x992E,
- 0x993D, 0x993E, 0x9942, 0x9949,
- 0x9945, 0x9950, 0x994B, 0x9951,
- 0x9952, 0x994C, 0x9955, 0x9997, /* E960 */
- 0x9998, 0x99A5, 0x99AD, 0x99AE,
- 0x99BC, 0x99DF, 0x99DB, 0x99DD,
- 0x99D8, 0x99D1, 0x99ED, 0x99EE,
- 0x99F1, 0x99F2, 0x99FB, 0x99F8,
- 0x9A01, 0x9A0F, 0x9A05, 0x99E2,
- 0x9A19, 0x9A2B, 0x9A37, 0x9A45,
- 0x9A42, 0x9A40, 0x9A43, 0x0000,
- 0x9A3E, 0x9A55, 0x9A4D, 0x9A5B, /* E980 */
- 0x9A57, 0x9A5F, 0x9A62, 0x9A65,
- 0x9A64, 0x9A69, 0x9A6B, 0x9A6A,
- 0x9AAD, 0x9AB0, 0x9ABC, 0x9AC0,
- 0x9ACF, 0x9AD1, 0x9AD3, 0x9AD4,
- 0x9ADE, 0x9ADF, 0x9AE2, 0x9AE3,
- 0x9AE6, 0x9AEF, 0x9AEB, 0x9AEE,
- 0x9AF4, 0x9AF1, 0x9AF7, 0x9AFB,
- 0x9B06, 0x9B18, 0x9B1A, 0x9B1F, /* E9A0 */
- 0x9B22, 0x9B23, 0x9B25, 0x9B27,
- 0x9B28, 0x9B29, 0x9B2A, 0x9B2E,
- 0x9B2F, 0x9B32, 0x9B44, 0x9B43,
- 0x9B4F, 0x9B4D, 0x9B4E, 0x9B51,
- 0x9B58, 0x9B74, 0x9B93, 0x9B83,
- 0x9B91, 0x9B96, 0x9B97, 0x9B9F,
- 0x9BA0, 0x9BA8, 0x9BB4, 0x9BC0,
- 0x9BCA, 0x9BB9, 0x9BC6, 0x9BCF, /* E9C0 */
- 0x9BD1, 0x9BD2, 0x9BE3, 0x9BE2,
- 0x9BE4, 0x9BD4, 0x9BE1, 0x9C3A,
- 0x9BF2, 0x9BF1, 0x9BF0, 0x9C15,
- 0x9C14, 0x9C09, 0x9C13, 0x9C0C,
- 0x9C06, 0x9C08, 0x9C12, 0x9C0A,
- 0x9C04, 0x9C2E, 0x9C1B, 0x9C25,
- 0x9C24, 0x9C21, 0x9C30, 0x9C47,
- 0x9C32, 0x9C46, 0x9C3E, 0x9C5A, /* E9E0 */
- 0x9C60, 0x9C67, 0x9C76, 0x9C78,
- 0x9CE7, 0x9CEC, 0x9CF0, 0x9D09,
- 0x9D08, 0x9CEB, 0x9D03, 0x9D06,
- 0x9D2A, 0x9D26, 0x9DAF, 0x9D23,
- 0x9D1F, 0x9D44, 0x9D15, 0x9D12,
- 0x9D41, 0x9D3F, 0x9D3E, 0x9D46,
- 0x9D48, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9D5D, 0x9D5E, 0x9D64, 0x9D51, /* EA40 */
- 0x9D50, 0x9D59, 0x9D72, 0x9D89,
- 0x9D87, 0x9DAB, 0x9D6F, 0x9D7A,
- 0x9D9A, 0x9DA4, 0x9DA9, 0x9DB2,
- 0x9DC4, 0x9DC1, 0x9DBB, 0x9DB8,
- 0x9DBA, 0x9DC6, 0x9DCF, 0x9DC2,
- 0x9DD9, 0x9DD3, 0x9DF8, 0x9DE6,
- 0x9DED, 0x9DEF, 0x9DFD, 0x9E1A,
- 0x9E1B, 0x9E1E, 0x9E75, 0x9E79, /* EA60 */
- 0x9E7D, 0x9E81, 0x9E88, 0x9E8B,
- 0x9E8C, 0x9E92, 0x9E95, 0x9E91,
- 0x9E9D, 0x9EA5, 0x9EA9, 0x9EB8,
- 0x9EAA, 0x9EAD, 0x9761, 0x9ECC,
- 0x9ECE, 0x9ECF, 0x9ED0, 0x9ED4,
- 0x9EDC, 0x9EDE, 0x9EDD, 0x9EE0,
- 0x9EE5, 0x9EE8, 0x9EEF, 0x0000,
- 0x9EF4, 0x9EF6, 0x9EF7, 0x9EF9, /* EA80 */
- 0x9EFB, 0x9EFC, 0x9EFD, 0x9F07,
- 0x9F08, 0x76B7, 0x9F15, 0x9F21,
- 0x9F2C, 0x9F3E, 0x9F4A, 0x9F52,
- 0x9F54, 0x9F63, 0x9F5F, 0x9F60,
- 0x9F61, 0x9F66, 0x9F67, 0x9F6C,
- 0x9F6A, 0x9F77, 0x9F72, 0x9F76,
- 0x9F95, 0x9F9C, 0x9FA0, 0x582F,
- 0x69C7, 0x9059, 0x7464, 0x51DC, /* EAA0 */
- 0x7199, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x7E8A, 0x891C, 0x9348, 0x9288, /* ED40 */
- 0x84DC, 0x4FC9, 0x70BB, 0x6631,
- 0x68C8, 0x92F9, 0x66FB, 0x5F45,
- 0x4E28, 0x4EE1, 0x4EFC, 0x4F00,
- 0x4F03, 0x4F39, 0x4F56, 0x4F92,
- 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD,
- 0x5040, 0x5022, 0x4FFF, 0x501E,
- 0x5046, 0x5070, 0x5042, 0x5094,
- 0x50F4, 0x50D8, 0x514A, 0x5164, /* ED60 */
- 0x519D, 0x51BE, 0x51EC, 0x5215,
- 0x529C, 0x52A6, 0x52C0, 0x52DB,
- 0x5300, 0x5307, 0x5324, 0x5372,
- 0x5393, 0x53B2, 0x53DD, 0xFA0E,
- 0x549C, 0x548A, 0x54A9, 0x54FF,
- 0x5586, 0x5759, 0x5765, 0x57AC,
- 0x57C8, 0x57C7, 0xFA0F, 0x0000,
- 0xFA10, 0x589E, 0x58B2, 0x590B, /* ED80 */
- 0x5953, 0x595B, 0x595D, 0x5963,
- 0x59A4, 0x59BA, 0x5B56, 0x5BC0,
- 0x752F, 0x5BD8, 0x5BEC, 0x5C1E,
- 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27,
- 0x5D53, 0xFA11, 0x5D42, 0x5D6D,
- 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21,
- 0x5F34, 0x5F67, 0x5FB7, 0x5FDE,
- 0x605D, 0x6085, 0x608A, 0x60DE, /* EDA0 */
- 0x60D5, 0x6120, 0x60F2, 0x6111,
- 0x6137, 0x6130, 0x6198, 0x6213,
- 0x62A6, 0x63F5, 0x6460, 0x649D,
- 0x64CE, 0x654E, 0x6600, 0x6615,
- 0x663B, 0x6609, 0x662E, 0x661E,
- 0x6624, 0x6665, 0x6657, 0x6659,
- 0xFA12, 0x6673, 0x6699, 0x66A0,
- 0x66B2, 0x66BF, 0x66FA, 0x670E, /* EDC0 */
- 0xF929, 0x6766, 0x67BB, 0x6852,
- 0x67C0, 0x6801, 0x6844, 0x68CF,
- 0xFA13, 0x6968, 0xFA14, 0x6998,
- 0x69E2, 0x6A30, 0x6A6B, 0x6A46,
- 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4,
- 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86,
- 0x6C6F, 0x6CDA, 0x6D04, 0x6D87,
- 0x6D6F, 0x6D96, 0x6DAC, 0x6DCF, /* EDE0 */
- 0x6DF8, 0x6DF2, 0x6DFC, 0x6E39,
- 0x6E5C, 0x6E27, 0x6E3C, 0x6EBF,
- 0x6F88, 0x6FB5, 0x6FF5, 0x7005,
- 0x7007, 0x7028, 0x7085, 0x70AB,
- 0x710F, 0x7104, 0x715C, 0x7146,
- 0x7147, 0xFA15, 0x71C1, 0x71FE,
- 0x72B1, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x72BE, 0x7324, 0xFA16, 0x7377, /* EE40 */
- 0x73BD, 0x73C9, 0x73D6, 0x73E3,
- 0x73D2, 0x7407, 0x73F5, 0x7426,
- 0x742A, 0x7429, 0x742E, 0x7462,
- 0x7489, 0x749F, 0x7501, 0x756F,
- 0x7682, 0x769C, 0x769E, 0x769B,
- 0x76A6, 0xFA17, 0x7746, 0x52AF,
- 0x7821, 0x784E, 0x7864, 0x787A,
- 0x7930, 0xFA18, 0xFA19, 0xFA1A, /* EE60 */
- 0x7994, 0xFA1B, 0x799B, 0x7AD1,
- 0x7AE7, 0xFA1C, 0x7AEB, 0x7B9E,
- 0xFA1D, 0x7D48, 0x7D5C, 0x7DB7,
- 0x7DA0, 0x7DD6, 0x7E52, 0x7F47,
- 0x7FA1, 0xFA1E, 0x8301, 0x8362,
- 0x837F, 0x83C7, 0x83F6, 0x8448,
- 0x84B4, 0x8553, 0x8559, 0x0000,
- 0x856B, 0xFA1F, 0x85B0, 0xFA20, /* EE80 */
- 0xFA21, 0x8807, 0x88F5, 0x8A12,
- 0x8A37, 0x8A79, 0x8AA7, 0x8ABE,
- 0x8ADF, 0xFA22, 0x8AF6, 0x8B53,
- 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12,
- 0x8D76, 0xFA23, 0x8ECF, 0xFA24,
- 0xFA25, 0x9067, 0x90DE, 0xFA26,
- 0x9115, 0x9127, 0x91DA, 0x91D7,
- 0x91DE, 0x91ED, 0x91EE, 0x91E4, /* EEA0 */
- 0x91E5, 0x9206, 0x9210, 0x920A,
- 0x923A, 0x9240, 0x923C, 0x924E,
- 0x9259, 0x9251, 0x9239, 0x9267,
- 0x92A7, 0x9277, 0x9278, 0x92E7,
- 0x92D7, 0x92D9, 0x92D0, 0xFA27,
- 0x92D5, 0x92E0, 0x92D3, 0x9325,
- 0x9321, 0x92FB, 0xFA28, 0x931E,
- 0x92FF, 0x931D, 0x9302, 0x9370, /* EEC0 */
- 0x9357, 0x93A4, 0x93C6, 0x93DE,
- 0x93F8, 0x9431, 0x9445, 0x9448,
- 0x9592, 0xF9DC, 0xFA29, 0x969D,
- 0x96AF, 0x9733, 0x973B, 0x9743,
- 0x974D, 0x974F, 0x9751, 0x9755,
- 0x9857, 0x9865, 0xFA2A, 0xFA2B,
- 0x9927, 0xFA2C, 0x999E, 0x9A4E,
- 0x9AD9, 0x9ADC, 0x9B75, 0x9B72, /* EEE0 */
- 0x9B8F, 0x9BB1, 0x9BBB, 0x9C00,
- 0x9D70, 0x9D6B, 0xFA2D, 0x9E19,
- 0x9ED1, 0x0000, 0x0000, 0x2170,
- 0x2171, 0x2172, 0x2173, 0x2174,
- 0x2175, 0x2176, 0x2177, 0x2178,
- 0x2179, 0xFFE2, 0xFFE4, 0xFF07,
- 0xFF02, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE000, 0xE001, 0xE002, 0xE003, /* F040 */
- 0xE004, 0xE005, 0xE006, 0xE007,
- 0xE008, 0xE009, 0xE00A, 0xE00B,
- 0xE00C, 0xE00D, 0xE00E, 0xE00F,
- 0xE010, 0xE011, 0xE012, 0xE013,
- 0xE014, 0xE015, 0xE016, 0xE017,
- 0xE018, 0xE019, 0xE01A, 0xE01B,
- 0xE01C, 0xE01D, 0xE01E, 0xE01F,
- 0xE020, 0xE021, 0xE022, 0xE023, /* F060 */
- 0xE024, 0xE025, 0xE026, 0xE027,
- 0xE028, 0xE029, 0xE02A, 0xE02B,
- 0xE02C, 0xE02D, 0xE02E, 0xE02F,
- 0xE030, 0xE031, 0xE032, 0xE033,
- 0xE034, 0xE035, 0xE036, 0xE037,
- 0xE038, 0xE039, 0xE03A, 0xE03B,
- 0xE03C, 0xE03D, 0xE03E, 0x0000,
- 0xE03F, 0xE040, 0xE041, 0xE042, /* F080 */
- 0xE043, 0xE044, 0xE045, 0xE046,
- 0xE047, 0xE048, 0xE049, 0xE04A,
- 0xE04B, 0xE04C, 0xE04D, 0xE04E,
- 0xE04F, 0xE050, 0xE051, 0xE052,
- 0xE053, 0xE054, 0xE055, 0xE056,
- 0xE057, 0xE058, 0xE059, 0xE05A,
- 0xE05B, 0xE05C, 0xE05D, 0xE05E,
- 0xE05F, 0xE060, 0xE061, 0xE062, /* F0A0 */
- 0xE063, 0xE064, 0xE065, 0xE066,
- 0xE067, 0xE068, 0xE069, 0xE06A,
- 0xE06B, 0xE06C, 0xE06D, 0xE06E,
- 0xE06F, 0xE070, 0xE071, 0xE072,
- 0xE073, 0xE074, 0xE075, 0xE076,
- 0xE077, 0xE078, 0xE079, 0xE07A,
- 0xE07B, 0xE07C, 0xE07D, 0xE07E,
- 0xE07F, 0xE080, 0xE081, 0xE082, /* F0C0 */
- 0xE083, 0xE084, 0xE085, 0xE086,
- 0xE087, 0xE088, 0xE089, 0xE08A,
- 0xE08B, 0xE08C, 0xE08D, 0xE08E,
- 0xE08F, 0xE090, 0xE091, 0xE092,
- 0xE093, 0xE094, 0xE095, 0xE096,
- 0xE097, 0xE098, 0xE099, 0xE09A,
- 0xE09B, 0xE09C, 0xE09D, 0xE09E,
- 0xE09F, 0xE0A0, 0xE0A1, 0xE0A2, /* F0E0 */
- 0xE0A3, 0xE0A4, 0xE0A5, 0xE0A6,
- 0xE0A7, 0xE0A8, 0xE0A9, 0xE0AA,
- 0xE0AB, 0xE0AC, 0xE0AD, 0xE0AE,
- 0xE0AF, 0xE0B0, 0xE0B1, 0xE0B2,
- 0xE0B3, 0xE0B4, 0xE0B5, 0xE0B6,
- 0xE0B7, 0xE0B8, 0xE0B9, 0xE0BA,
- 0xE0BB, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE0BC, 0xE0BD, 0xE0BE, 0xE0BF, /* F140 */
- 0xE0C0, 0xE0C1, 0xE0C2, 0xE0C3,
- 0xE0C4, 0xE0C5, 0xE0C6, 0xE0C7,
- 0xE0C8, 0xE0C9, 0xE0CA, 0xE0CB,
- 0xE0CC, 0xE0CD, 0xE0CE, 0xE0CF,
- 0xE0D0, 0xE0D1, 0xE0D2, 0xE0D3,
- 0xE0D4, 0xE0D5, 0xE0D6, 0xE0D7,
- 0xE0D8, 0xE0D9, 0xE0DA, 0xE0DB,
- 0xE0DC, 0xE0DD, 0xE0DE, 0xE0DF, /* F160 */
- 0xE0E0, 0xE0E1, 0xE0E2, 0xE0E3,
- 0xE0E4, 0xE0E5, 0xE0E6, 0xE0E7,
- 0xE0E8, 0xE0E9, 0xE0EA, 0xE0EB,
- 0xE0EC, 0xE0ED, 0xE0EE, 0xE0EF,
- 0xE0F0, 0xE0F1, 0xE0F2, 0xE0F3,
- 0xE0F4, 0xE0F5, 0xE0F6, 0xE0F7,
- 0xE0F8, 0xE0F9, 0xE0FA, 0x0000,
- 0xE0FB, 0xE0FC, 0xE0FD, 0xE0FE, /* F180 */
- 0xE0FF, 0xE100, 0xE101, 0xE102,
- 0xE103, 0xE104, 0xE105, 0xE106,
- 0xE107, 0xE108, 0xE109, 0xE10A,
- 0xE10B, 0xE10C, 0xE10D, 0xE10E,
- 0xE10F, 0xE110, 0xE111, 0xE112,
- 0xE113, 0xE114, 0xE115, 0xE116,
- 0xE117, 0xE118, 0xE119, 0xE11A,
- 0xE11B, 0xE11C, 0xE11D, 0xE11E, /* F1A0 */
- 0xE11F, 0xE120, 0xE121, 0xE122,
- 0xE123, 0xE124, 0xE125, 0xE126,
- 0xE127, 0xE128, 0xE129, 0xE12A,
- 0xE12B, 0xE12C, 0xE12D, 0xE12E,
- 0xE12F, 0xE130, 0xE131, 0xE132,
- 0xE133, 0xE134, 0xE135, 0xE136,
- 0xE137, 0xE138, 0xE139, 0xE13A,
- 0xE13B, 0xE13C, 0xE13D, 0xE13E, /* F1C0 */
- 0xE13F, 0xE140, 0xE141, 0xE142,
- 0xE143, 0xE144, 0xE145, 0xE146,
- 0xE147, 0xE148, 0xE149, 0xE14A,
- 0xE14B, 0xE14C, 0xE14D, 0xE14E,
- 0xE14F, 0xE150, 0xE151, 0xE152,
- 0xE153, 0xE154, 0xE155, 0xE156,
- 0xE157, 0xE158, 0xE159, 0xE15A,
- 0xE15B, 0xE15C, 0xE15D, 0xE15E, /* F1E0 */
- 0xE15F, 0xE160, 0xE161, 0xE162,
- 0xE163, 0xE164, 0xE165, 0xE166,
- 0xE167, 0xE168, 0xE169, 0xE16A,
- 0xE16B, 0xE16C, 0xE16D, 0xE16E,
- 0xE16F, 0xE170, 0xE171, 0xE172,
- 0xE173, 0xE174, 0xE175, 0xE176,
- 0xE177, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE178, 0xE179, 0xE17A, 0xE17B, /* F240 */
- 0xE17C, 0xE17D, 0xE17E, 0xE17F,
- 0xE180, 0xE181, 0xE182, 0xE183,
- 0xE184, 0xE185, 0xE186, 0xE187,
- 0xE188, 0xE189, 0xE18A, 0xE18B,
- 0xE18C, 0xE18D, 0xE18E, 0xE18F,
- 0xE190, 0xE191, 0xE192, 0xE193,
- 0xE194, 0xE195, 0xE196, 0xE197,
- 0xE198, 0xE199, 0xE19A, 0xE19B, /* F260 */
- 0xE19C, 0xE19D, 0xE19E, 0xE19F,
- 0xE1A0, 0xE1A1, 0xE1A2, 0xE1A3,
- 0xE1A4, 0xE1A5, 0xE1A6, 0xE1A7,
- 0xE1A8, 0xE1A9, 0xE1AA, 0xE1AB,
- 0xE1AC, 0xE1AD, 0xE1AE, 0xE1AF,
- 0xE1B0, 0xE1B1, 0xE1B2, 0xE1B3,
- 0xE1B4, 0xE1B5, 0xE1B6, 0x0000,
- 0xE1B7, 0xE1B8, 0xE1B9, 0xE1BA, /* F280 */
- 0xE1BB, 0xE1BC, 0xE1BD, 0xE1BE,
- 0xE1BF, 0xE1C0, 0xE1C1, 0xE1C2,
- 0xE1C3, 0xE1C4, 0xE1C5, 0xE1C6,
- 0xE1C7, 0xE1C8, 0xE1C9, 0xE1CA,
- 0xE1CB, 0xE1CC, 0xE1CD, 0xE1CE,
- 0xE1CF, 0xE1D0, 0xE1D1, 0xE1D2,
- 0xE1D3, 0xE1D4, 0xE1D5, 0xE1D6,
- 0xE1D7, 0xE1D8, 0xE1D9, 0xE1DA, /* F2A0 */
- 0xE1DB, 0xE1DC, 0xE1DD, 0xE1DE,
- 0xE1DF, 0xE1E0, 0xE1E1, 0xE1E2,
- 0xE1E3, 0xE1E4, 0xE1E5, 0xE1E6,
- 0xE1E7, 0xE1E8, 0xE1E9, 0xE1EA,
- 0xE1EB, 0xE1EC, 0xE1ED, 0xE1EE,
- 0xE1EF, 0xE1F0, 0xE1F1, 0xE1F2,
- 0xE1F3, 0xE1F4, 0xE1F5, 0xE1F6,
- 0xE1F7, 0xE1F8, 0xE1F9, 0xE1FA, /* F2C0 */
- 0xE1FB, 0xE1FC, 0xE1FD, 0xE1FE,
- 0xE1FF, 0xE200, 0xE201, 0xE202,
- 0xE203, 0xE204, 0xE205, 0xE206,
- 0xE207, 0xE208, 0xE209, 0xE20A,
- 0xE20B, 0xE20C, 0xE20D, 0xE20E,
- 0xE20F, 0xE210, 0xE211, 0xE212,
- 0xE213, 0xE214, 0xE215, 0xE216,
- 0xE217, 0xE218, 0xE219, 0xE21A, /* F2E0 */
- 0xE21B, 0xE21C, 0xE21D, 0xE21E,
- 0xE21F, 0xE220, 0xE221, 0xE222,
- 0xE223, 0xE224, 0xE225, 0xE226,
- 0xE227, 0xE228, 0xE229, 0xE22A,
- 0xE22B, 0xE22C, 0xE22D, 0xE22E,
- 0xE22F, 0xE230, 0xE231, 0xE232,
- 0xE233, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE234, 0xE235, 0xE236, 0xE237, /* F340 */
- 0xE238, 0xE239, 0xE23A, 0xE23B,
- 0xE23C, 0xE23D, 0xE23E, 0xE23F,
- 0xE240, 0xE241, 0xE242, 0xE243,
- 0xE244, 0xE245, 0xE246, 0xE247,
- 0xE248, 0xE249, 0xE24A, 0xE24B,
- 0xE24C, 0xE24D, 0xE24E, 0xE24F,
- 0xE250, 0xE251, 0xE252, 0xE253,
- 0xE254, 0xE255, 0xE256, 0xE257, /* F360 */
- 0xE258, 0xE259, 0xE25A, 0xE25B,
- 0xE25C, 0xE25D, 0xE25E, 0xE25F,
- 0xE260, 0xE261, 0xE262, 0xE263,
- 0xE264, 0xE265, 0xE266, 0xE267,
- 0xE268, 0xE269, 0xE26A, 0xE26B,
- 0xE26C, 0xE26D, 0xE26E, 0xE26F,
- 0xE270, 0xE271, 0xE272, 0x0000,
- 0xE273, 0xE274, 0xE275, 0xE276, /* F380 */
- 0xE277, 0xE278, 0xE279, 0xE27A,
- 0xE27B, 0xE27C, 0xE27D, 0xE27E,
- 0xE27F, 0xE280, 0xE281, 0xE282,
- 0xE283, 0xE284, 0xE285, 0xE286,
- 0xE287, 0xE288, 0xE289, 0xE28A,
- 0xE28B, 0xE28C, 0xE28D, 0xE28E,
- 0xE28F, 0xE290, 0xE291, 0xE292,
- 0xE293, 0xE294, 0xE295, 0xE296, /* F3A0 */
- 0xE297, 0xE298, 0xE299, 0xE29A,
- 0xE29B, 0xE29C, 0xE29D, 0xE29E,
- 0xE29F, 0xE2A0, 0xE2A1, 0xE2A2,
- 0xE2A3, 0xE2A4, 0xE2A5, 0xE2A6,
- 0xE2A7, 0xE2A8, 0xE2A9, 0xE2AA,
- 0xE2AB, 0xE2AC, 0xE2AD, 0xE2AE,
- 0xE2AF, 0xE2B0, 0xE2B1, 0xE2B2,
- 0xE2B3, 0xE2B4, 0xE2B5, 0xE2B6, /* F3C0 */
- 0xE2B7, 0xE2B8, 0xE2B9, 0xE2BA,
- 0xE2BB, 0xE2BC, 0xE2BD, 0xE2BE,
- 0xE2BF, 0xE2C0, 0xE2C1, 0xE2C2,
- 0xE2C3, 0xE2C4, 0xE2C5, 0xE2C6,
- 0xE2C7, 0xE2C8, 0xE2C9, 0xE2CA,
- 0xE2CB, 0xE2CC, 0xE2CD, 0xE2CE,
- 0xE2CF, 0xE2D0, 0xE2D1, 0xE2D2,
- 0xE2D3, 0xE2D4, 0xE2D5, 0xE2D6, /* F3E0 */
- 0xE2D7, 0xE2D8, 0xE2D9, 0xE2DA,
- 0xE2DB, 0xE2DC, 0xE2DD, 0xE2DE,
- 0xE2DF, 0xE2E0, 0xE2E1, 0xE2E2,
- 0xE2E3, 0xE2E4, 0xE2E5, 0xE2E6,
- 0xE2E7, 0xE2E8, 0xE2E9, 0xE2EA,
- 0xE2EB, 0xE2EC, 0xE2ED, 0xE2EE,
- 0xE2EF, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE2F0, 0xE2F1, 0xE2F2, 0xE2F3, /* F440 */
- 0xE2F4, 0xE2F5, 0xE2F6, 0xE2F7,
- 0xE2F8, 0xE2F9, 0xE2FA, 0xE2FB,
- 0xE2FC, 0xE2FD, 0xE2FE, 0xE2FF,
- 0xE300, 0xE301, 0xE302, 0xE303,
- 0xE304, 0xE305, 0xE306, 0xE307,
- 0xE308, 0xE309, 0xE30A, 0xE30B,
- 0xE30C, 0xE30D, 0xE30E, 0xE30F,
- 0xE310, 0xE311, 0xE312, 0xE313, /* F460 */
- 0xE314, 0xE315, 0xE316, 0xE317,
- 0xE318, 0xE319, 0xE31A, 0xE31B,
- 0xE31C, 0xE31D, 0xE31E, 0xE31F,
- 0xE320, 0xE321, 0xE322, 0xE323,
- 0xE324, 0xE325, 0xE326, 0xE327,
- 0xE328, 0xE329, 0xE32A, 0xE32B,
- 0xE32C, 0xE32D, 0xE32E, 0x0000,
- 0xE32F, 0xE330, 0xE331, 0xE332, /* F480 */
- 0xE333, 0xE334, 0xE335, 0xE336,
- 0xE337, 0xE338, 0xE339, 0xE33A,
- 0xE33B, 0xE33C, 0xE33D, 0xE33E,
- 0xE33F, 0xE340, 0xE341, 0xE342,
- 0xE343, 0xE344, 0xE345, 0xE346,
- 0xE347, 0xE348, 0xE349, 0xE34A,
- 0xE34B, 0xE34C, 0xE34D, 0xE34E,
- 0xE34F, 0xE350, 0xE351, 0xE352, /* F4A0 */
- 0xE353, 0xE354, 0xE355, 0xE356,
- 0xE357, 0xE358, 0xE359, 0xE35A,
- 0xE35B, 0xE35C, 0xE35D, 0xE35E,
- 0xE35F, 0xE360, 0xE361, 0xE362,
- 0xE363, 0xE364, 0xE365, 0xE366,
- 0xE367, 0xE368, 0xE369, 0xE36A,
- 0xE36B, 0xE36C, 0xE36D, 0xE36E,
- 0xE36F, 0xE370, 0xE371, 0xE372, /* F4C0 */
- 0xE373, 0xE374, 0xE375, 0xE376,
- 0xE377, 0xE378, 0xE379, 0xE37A,
- 0xE37B, 0xE37C, 0xE37D, 0xE37E,
- 0xE37F, 0xE380, 0xE381, 0xE382,
- 0xE383, 0xE384, 0xE385, 0xE386,
- 0xE387, 0xE388, 0xE389, 0xE38A,
- 0xE38B, 0xE38C, 0xE38D, 0xE38E,
- 0xE38F, 0xE390, 0xE391, 0xE392, /* F4E0 */
- 0xE393, 0xE394, 0xE395, 0xE396,
- 0xE397, 0xE398, 0xE399, 0xE39A,
- 0xE39B, 0xE39C, 0xE39D, 0xE39E,
- 0xE39F, 0xE3A0, 0xE3A1, 0xE3A2,
- 0xE3A3, 0xE3A4, 0xE3A5, 0xE3A6,
- 0xE3A7, 0xE3A8, 0xE3A9, 0xE3AA,
- 0xE3AB, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE3AC, 0xE3AD, 0xE3AE, 0xE3AF, /* F540 */
- 0xE3B0, 0xE3B1, 0xE3B2, 0xE3B3,
- 0xE3B4, 0xE3B5, 0xE3B6, 0xE3B7,
- 0xE3B8, 0xE3B9, 0xE3BA, 0xE3BB,
- 0xE3BC, 0xE3BD, 0xE3BE, 0xE3BF,
- 0xE3C0, 0xE3C1, 0xE3C2, 0xE3C3,
- 0xE3C4, 0xE3C5, 0xE3C6, 0xE3C7,
- 0xE3C8, 0xE3C9, 0xE3CA, 0xE3CB,
- 0xE3CC, 0xE3CD, 0xE3CE, 0xE3CF, /* F560 */
- 0xE3D0, 0xE3D1, 0xE3D2, 0xE3D3,
- 0xE3D4, 0xE3D5, 0xE3D6, 0xE3D7,
- 0xE3D8, 0xE3D9, 0xE3DA, 0xE3DB,
- 0xE3DC, 0xE3DD, 0xE3DE, 0xE3DF,
- 0xE3E0, 0xE3E1, 0xE3E2, 0xE3E3,
- 0xE3E4, 0xE3E5, 0xE3E6, 0xE3E7,
- 0xE3E8, 0xE3E9, 0xE3EA, 0x0000,
- 0xE3EB, 0xE3EC, 0xE3ED, 0xE3EE, /* F580 */
- 0xE3EF, 0xE3F0, 0xE3F1, 0xE3F2,
- 0xE3F3, 0xE3F4, 0xE3F5, 0xE3F6,
- 0xE3F7, 0xE3F8, 0xE3F9, 0xE3FA,
- 0xE3FB, 0xE3FC, 0xE3FD, 0xE3FE,
- 0xE3FF, 0xE400, 0xE401, 0xE402,
- 0xE403, 0xE404, 0xE405, 0xE406,
- 0xE407, 0xE408, 0xE409, 0xE40A,
- 0xE40B, 0xE40C, 0xE40D, 0xE40E, /* F5A0 */
- 0xE40F, 0xE410, 0xE411, 0xE412,
- 0xE413, 0xE414, 0xE415, 0xE416,
- 0xE417, 0xE418, 0xE419, 0xE41A,
- 0xE41B, 0xE41C, 0xE41D, 0xE41E,
- 0xE41F, 0xE420, 0xE421, 0xE422,
- 0xE423, 0xE424, 0xE425, 0xE426,
- 0xE427, 0xE428, 0xE429, 0xE42A,
- 0xE42B, 0xE42C, 0xE42D, 0xE42E, /* F5C0 */
- 0xE42F, 0xE430, 0xE431, 0xE432,
- 0xE433, 0xE434, 0xE435, 0xE436,
- 0xE437, 0xE438, 0xE439, 0xE43A,
- 0xE43B, 0xE43C, 0xE43D, 0xE43E,
- 0xE43F, 0xE440, 0xE441, 0xE442,
- 0xE443, 0xE444, 0xE445, 0xE446,
- 0xE447, 0xE448, 0xE449, 0xE44A,
- 0xE44B, 0xE44C, 0xE44D, 0xE44E, /* F5E0 */
- 0xE44F, 0xE450, 0xE451, 0xE452,
- 0xE453, 0xE454, 0xE455, 0xE456,
- 0xE457, 0xE458, 0xE459, 0xE45A,
- 0xE45B, 0xE45C, 0xE45D, 0xE45E,
- 0xE45F, 0xE460, 0xE461, 0xE462,
- 0xE463, 0xE464, 0xE465, 0xE466,
- 0xE467, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE468, 0xE469, 0xE46A, 0xE46B, /* F640 */
- 0xE46C, 0xE46D, 0xE46E, 0xE46F,
- 0xE470, 0xE471, 0xE472, 0xE473,
- 0xE474, 0xE475, 0xE476, 0xE477,
- 0xE478, 0xE479, 0xE47A, 0xE47B,
- 0xE47C, 0xE47D, 0xE47E, 0xE47F,
- 0xE480, 0xE481, 0xE482, 0xE483,
- 0xE484, 0xE485, 0xE486, 0xE487,
- 0xE488, 0xE489, 0xE48A, 0xE48B, /* F660 */
- 0xE48C, 0xE48D, 0xE48E, 0xE48F,
- 0xE490, 0xE491, 0xE492, 0xE493,
- 0xE494, 0xE495, 0xE496, 0xE497,
- 0xE498, 0xE499, 0xE49A, 0xE49B,
- 0xE49C, 0xE49D, 0xE49E, 0xE49F,
- 0xE4A0, 0xE4A1, 0xE4A2, 0xE4A3,
- 0xE4A4, 0xE4A5, 0xE4A6, 0x0000,
- 0xE4A7, 0xE4A8, 0xE4A9, 0xE4AA, /* F680 */
- 0xE4AB, 0xE4AC, 0xE4AD, 0xE4AE,
- 0xE4AF, 0xE4B0, 0xE4B1, 0xE4B2,
- 0xE4B3, 0xE4B4, 0xE4B5, 0xE4B6,
- 0xE4B7, 0xE4B8, 0xE4B9, 0xE4BA,
- 0xE4BB, 0xE4BC, 0xE4BD, 0xE4BE,
- 0xE4BF, 0xE4C0, 0xE4C1, 0xE4C2,
- 0xE4C3, 0xE4C4, 0xE4C5, 0xE4C6,
- 0xE4C7, 0xE4C8, 0xE4C9, 0xE4CA, /* F6A0 */
- 0xE4CB, 0xE4CC, 0xE4CD, 0xE4CE,
- 0xE4CF, 0xE4D0, 0xE4D1, 0xE4D2,
- 0xE4D3, 0xE4D4, 0xE4D5, 0xE4D6,
- 0xE4D7, 0xE4D8, 0xE4D9, 0xE4DA,
- 0xE4DB, 0xE4DC, 0xE4DD, 0xE4DE,
- 0xE4DF, 0xE4E0, 0xE4E1, 0xE4E2,
- 0xE4E3, 0xE4E4, 0xE4E5, 0xE4E6,
- 0xE4E7, 0xE4E8, 0xE4E9, 0xE4EA, /* F6C0 */
- 0xE4EB, 0xE4EC, 0xE4ED, 0xE4EE,
- 0xE4EF, 0xE4F0, 0xE4F1, 0xE4F2,
- 0xE4F3, 0xE4F4, 0xE4F5, 0xE4F6,
- 0xE4F7, 0xE4F8, 0xE4F9, 0xE4FA,
- 0xE4FB, 0xE4FC, 0xE4FD, 0xE4FE,
- 0xE4FF, 0xE500, 0xE501, 0xE502,
- 0xE503, 0xE504, 0xE505, 0xE506,
- 0xE507, 0xE508, 0xE509, 0xE50A, /* F6E0 */
- 0xE50B, 0xE50C, 0xE50D, 0xE50E,
- 0xE50F, 0xE510, 0xE511, 0xE512,
- 0xE513, 0xE514, 0xE515, 0xE516,
- 0xE517, 0xE518, 0xE519, 0xE51A,
- 0xE51B, 0xE51C, 0xE51D, 0xE51E,
- 0xE51F, 0xE520, 0xE521, 0xE522,
- 0xE523, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE524, 0xE525, 0xE526, 0xE527, /* F740 */
- 0xE528, 0xE529, 0xE52A, 0xE52B,
- 0xE52C, 0xE52D, 0xE52E, 0xE52F,
- 0xE530, 0xE531, 0xE532, 0xE533,
- 0xE534, 0xE535, 0xE536, 0xE537,
- 0xE538, 0xE539, 0xE53A, 0xE53B,
- 0xE53C, 0xE53D, 0xE53E, 0xE53F,
- 0xE540, 0xE541, 0xE542, 0xE543,
- 0xE544, 0xE545, 0xE546, 0xE547, /* F760 */
- 0xE548, 0xE549, 0xE54A, 0xE54B,
- 0xE54C, 0xE54D, 0xE54E, 0xE54F,
- 0xE550, 0xE551, 0xE552, 0xE553,
- 0xE554, 0xE555, 0xE556, 0xE557,
- 0xE558, 0xE559, 0xE55A, 0xE55B,
- 0xE55C, 0xE55D, 0xE55E, 0xE55F,
- 0xE560, 0xE561, 0xE562, 0x0000,
- 0xE563, 0xE564, 0xE565, 0xE566, /* F780 */
- 0xE567, 0xE568, 0xE569, 0xE56A,
- 0xE56B, 0xE56C, 0xE56D, 0xE56E,
- 0xE56F, 0xE570, 0xE571, 0xE572,
- 0xE573, 0xE574, 0xE575, 0xE576,
- 0xE577, 0xE578, 0xE579, 0xE57A,
- 0xE57B, 0xE57C, 0xE57D, 0xE57E,
- 0xE57F, 0xE580, 0xE581, 0xE582,
- 0xE583, 0xE584, 0xE585, 0xE586, /* F7A0 */
- 0xE587, 0xE588, 0xE589, 0xE58A,
- 0xE58B, 0xE58C, 0xE58D, 0xE58E,
- 0xE58F, 0xE590, 0xE591, 0xE592,
- 0xE593, 0xE594, 0xE595, 0xE596,
- 0xE597, 0xE598, 0xE599, 0xE59A,
- 0xE59B, 0xE59C, 0xE59D, 0xE59E,
- 0xE59F, 0xE5A0, 0xE5A1, 0xE5A2,
- 0xE5A3, 0xE5A4, 0xE5A5, 0xE5A6, /* F7C0 */
- 0xE5A7, 0xE5A8, 0xE5A9, 0xE5AA,
- 0xE5AB, 0xE5AC, 0xE5AD, 0xE5AE,
- 0xE5AF, 0xE5B0, 0xE5B1, 0xE5B2,
- 0xE5B3, 0xE5B4, 0xE5B5, 0xE5B6,
- 0xE5B7, 0xE5B8, 0xE5B9, 0xE5BA,
- 0xE5BB, 0xE5BC, 0xE5BD, 0xE5BE,
- 0xE5BF, 0xE5C0, 0xE5C1, 0xE5C2,
- 0xE5C3, 0xE5C4, 0xE5C5, 0xE5C6, /* F7E0 */
- 0xE5C7, 0xE5C8, 0xE5C9, 0xE5CA,
- 0xE5CB, 0xE5CC, 0xE5CD, 0xE5CE,
- 0xE5CF, 0xE5D0, 0xE5D1, 0xE5D2,
- 0xE5D3, 0xE5D4, 0xE5D5, 0xE5D6,
- 0xE5D7, 0xE5D8, 0xE5D9, 0xE5DA,
- 0xE5DB, 0xE5DC, 0xE5DD, 0xE5DE,
- 0xE5DF, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE5E0, 0xE5E1, 0xE5E2, 0xE5E3, /* F840 */
- 0xE5E4, 0xE5E5, 0xE5E6, 0xE5E7,
- 0xE5E8, 0xE5E9, 0xE5EA, 0xE5EB,
- 0xE5EC, 0xE5ED, 0xE5EE, 0xE5EF,
- 0xE5F0, 0xE5F1, 0xE5F2, 0xE5F3,
- 0xE5F4, 0xE5F5, 0xE5F6, 0xE5F7,
- 0xE5F8, 0xE5F9, 0xE5FA, 0xE5FB,
- 0xE5FC, 0xE5FD, 0xE5FE, 0xE5FF,
- 0xE600, 0xE601, 0xE602, 0xE603, /* F860 */
- 0xE604, 0xE605, 0xE606, 0xE607,
- 0xE608, 0xE609, 0xE60A, 0xE60B,
- 0xE60C, 0xE60D, 0xE60E, 0xE60F,
- 0xE610, 0xE611, 0xE612, 0xE613,
- 0xE614, 0xE615, 0xE616, 0xE617,
- 0xE618, 0xE619, 0xE61A, 0xE61B,
- 0xE61C, 0xE61D, 0xE61E, 0x0000,
- 0xE61F, 0xE620, 0xE621, 0xE622, /* F880 */
- 0xE623, 0xE624, 0xE625, 0xE626,
- 0xE627, 0xE628, 0xE629, 0xE62A,
- 0xE62B, 0xE62C, 0xE62D, 0xE62E,
- 0xE62F, 0xE630, 0xE631, 0xE632,
- 0xE633, 0xE634, 0xE635, 0xE636,
- 0xE637, 0xE638, 0xE639, 0xE63A,
- 0xE63B, 0xE63C, 0xE63D, 0xE63E,
- 0xE63F, 0xE640, 0xE641, 0xE642, /* F8A0 */
- 0xE643, 0xE644, 0xE645, 0xE646,
- 0xE647, 0xE648, 0xE649, 0xE64A,
- 0xE64B, 0xE64C, 0xE64D, 0xE64E,
- 0xE64F, 0xE650, 0xE651, 0xE652,
- 0xE653, 0xE654, 0xE655, 0xE656,
- 0xE657, 0xE658, 0xE659, 0xE65A,
- 0xE65B, 0xE65C, 0xE65D, 0xE65E,
- 0xE65F, 0xE660, 0xE661, 0xE662, /* F8C0 */
- 0xE663, 0xE664, 0xE665, 0xE666,
- 0xE667, 0xE668, 0xE669, 0xE66A,
- 0xE66B, 0xE66C, 0xE66D, 0xE66E,
- 0xE66F, 0xE670, 0xE671, 0xE672,
- 0xE673, 0xE674, 0xE675, 0xE676,
- 0xE677, 0xE678, 0xE679, 0xE67A,
- 0xE67B, 0xE67C, 0xE67D, 0xE67E,
- 0xE67F, 0xE680, 0xE681, 0xE682, /* F8E0 */
- 0xE683, 0xE684, 0xE685, 0xE686,
- 0xE687, 0xE688, 0xE689, 0xE68A,
- 0xE68B, 0xE68C, 0xE68D, 0xE68E,
- 0xE68F, 0xE690, 0xE691, 0xE692,
- 0xE693, 0xE694, 0xE695, 0xE696,
- 0xE697, 0xE698, 0xE699, 0xE69A,
- 0xE69B, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0xE69C, 0xE69D, 0xE69E, 0xE69F, /* F940 */
- 0xE6A0, 0xE6A1, 0xE6A2, 0xE6A3,
- 0xE6A4, 0xE6A5, 0xE6A6, 0xE6A7,
- 0xE6A8, 0xE6A9, 0xE6AA, 0xE6AB,
- 0xE6AC, 0xE6AD, 0xE6AE, 0xE6AF,
- 0xE6B0, 0xE6B1, 0xE6B2, 0xE6B3,
- 0xE6B4, 0xE6B5, 0xE6B6, 0xE6B7,
- 0xE6B8, 0xE6B9, 0xE6BA, 0xE6BB,
- 0xE6BC, 0xE6BD, 0xE6BE, 0xE6BF, /* F960 */
- 0xE6C0, 0xE6C1, 0xE6C2, 0xE6C3,
- 0xE6C4, 0xE6C5, 0xE6C6, 0xE6C7,
- 0xE6C8, 0xE6C9, 0xE6CA, 0xE6CB,
- 0xE6CC, 0xE6CD, 0xE6CE, 0xE6CF,
- 0xE6D0, 0xE6D1, 0xE6D2, 0xE6D3,
- 0xE6D4, 0xE6D5, 0xE6D6, 0xE6D7,
- 0xE6D8, 0xE6D9, 0xE6DA, 0x0000,
- 0xE6DB, 0xE6DC, 0xE6DD, 0xE6DE, /* F980 */
- 0xE6DF, 0xE6E0, 0xE6E1, 0xE6E2,
- 0xE6E3, 0xE6E4, 0xE6E5, 0xE6E6,
- 0xE6E7, 0xE6E8, 0xE6E9, 0xE6EA,
- 0xE6EB, 0xE6EC, 0xE6ED, 0xE6EE,
- 0xE6EF, 0xE6F0, 0xE6F1, 0xE6F2,
- 0xE6F3, 0xE6F4, 0xE6F5, 0xE6F6,
- 0xE6F7, 0xE6F8, 0xE6F9, 0xE6FA,
- 0xE6FB, 0xE6FC, 0xE6FD, 0xE6FE, /* F9A0 */
- 0xE6FF, 0xE700, 0xE701, 0xE702,
- 0xE703, 0xE704, 0xE705, 0xE706,
- 0xE707, 0xE708, 0xE709, 0xE70A,
- 0xE70B, 0xE70C, 0xE70D, 0xE70E,
- 0xE70F, 0xE710, 0xE711, 0xE712,
- 0xE713, 0xE714, 0xE715, 0xE716,
- 0xE717, 0xE718, 0xE719, 0xE71A,
- 0xE71B, 0xE71C, 0xE71D, 0xE71E, /* F9C0 */
- 0xE71F, 0xE720, 0xE721, 0xE722,
- 0xE723, 0xE724, 0xE725, 0xE726,
- 0xE727, 0xE728, 0xE729, 0xE72A,
- 0xE72B, 0xE72C, 0xE72D, 0xE72E,
- 0xE72F, 0xE730, 0xE731, 0xE732,
- 0xE733, 0xE734, 0xE735, 0xE736,
- 0xE737, 0xE738, 0xE739, 0xE73A,
- 0xE73B, 0xE73C, 0xE73D, 0xE73E, /* F9E0 */
- 0xE73F, 0xE740, 0xE741, 0xE742,
- 0xE743, 0xE744, 0xE745, 0xE746,
- 0xE747, 0xE748, 0xE749, 0xE74A,
- 0xE74B, 0xE74C, 0xE74D, 0xE74E,
- 0xE74F, 0xE750, 0xE751, 0xE752,
- 0xE753, 0xE754, 0xE755, 0xE756,
- 0xE757, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x2170, 0x2171, 0x2172, 0x2173, /* FA40 */
- 0x2174, 0x2175, 0x2176, 0x2177,
- 0x2178, 0x2179, 0x2160, 0x2161,
- 0x2162, 0x2163, 0x2164, 0x2165,
- 0x2166, 0x2167, 0x2168, 0x2169,
- 0xFFE2, 0xFFE4, 0xFF07, 0xFF02,
- 0x3231, 0x2116, 0x2121, 0x2235,
- 0x7E8A, 0x891C, 0x9348, 0x9288,
- 0x84DC, 0x4FC9, 0x70BB, 0x6631, /* FA60 */
- 0x68C8, 0x92F9, 0x66FB, 0x5F45,
- 0x4E28, 0x4EE1, 0x4EFC, 0x4F00,
- 0x4F03, 0x4F39, 0x4F56, 0x4F92,
- 0x4F8A, 0x4F9A, 0x4F94, 0x4FCD,
- 0x5040, 0x5022, 0x4FFF, 0x501E,
- 0x5046, 0x5070, 0x5042, 0x5094,
- 0x50F4, 0x50D8, 0x514A, 0x0000,
- 0x5164, 0x519D, 0x51BE, 0x51EC, /* FA80 */
- 0x5215, 0x529C, 0x52A6, 0x52C0,
- 0x52DB, 0x5300, 0x5307, 0x5324,
- 0x5372, 0x5393, 0x53B2, 0x53DD,
- 0xFA0E, 0x549C, 0x548A, 0x54A9,
- 0x54FF, 0x5586, 0x5759, 0x5765,
- 0x57AC, 0x57C8, 0x57C7, 0xFA0F,
- 0xFA10, 0x589E, 0x58B2, 0x590B,
- 0x5953, 0x595B, 0x595D, 0x5963, /* FAA0 */
- 0x59A4, 0x59BA, 0x5B56, 0x5BC0,
- 0x752F, 0x5BD8, 0x5BEC, 0x5C1E,
- 0x5CA6, 0x5CBA, 0x5CF5, 0x5D27,
- 0x5D53, 0xFA11, 0x5D42, 0x5D6D,
- 0x5DB8, 0x5DB9, 0x5DD0, 0x5F21,
- 0x5F34, 0x5F67, 0x5FB7, 0x5FDE,
- 0x605D, 0x6085, 0x608A, 0x60DE,
- 0x60D5, 0x6120, 0x60F2, 0x6111, /* FAC0 */
- 0x6137, 0x6130, 0x6198, 0x6213,
- 0x62A6, 0x63F5, 0x6460, 0x649D,
- 0x64CE, 0x654E, 0x6600, 0x6615,
- 0x663B, 0x6609, 0x662E, 0x661E,
- 0x6624, 0x6665, 0x6657, 0x6659,
- 0xFA12, 0x6673, 0x6699, 0x66A0,
- 0x66B2, 0x66BF, 0x66FA, 0x670E,
- 0xF929, 0x6766, 0x67BB, 0x6852, /* FAE0 */
- 0x67C0, 0x6801, 0x6844, 0x68CF,
- 0xFA13, 0x6968, 0xFA14, 0x6998,
- 0x69E2, 0x6A30, 0x6A6B, 0x6A46,
- 0x6A73, 0x6A7E, 0x6AE2, 0x6AE4,
- 0x6BD6, 0x6C3F, 0x6C5C, 0x6C86,
- 0x6C6F, 0x6CDA, 0x6D04, 0x6D87,
- 0x6D6F, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x6D96, 0x6DAC, 0x6DCF, 0x6DF8, /* FB40 */
- 0x6DF2, 0x6DFC, 0x6E39, 0x6E5C,
- 0x6E27, 0x6E3C, 0x6EBF, 0x6F88,
- 0x6FB5, 0x6FF5, 0x7005, 0x7007,
- 0x7028, 0x7085, 0x70AB, 0x710F,
- 0x7104, 0x715C, 0x7146, 0x7147,
- 0xFA15, 0x71C1, 0x71FE, 0x72B1,
- 0x72BE, 0x7324, 0xFA16, 0x7377,
- 0x73BD, 0x73C9, 0x73D6, 0x73E3, /* FB60 */
- 0x73D2, 0x7407, 0x73F5, 0x7426,
- 0x742A, 0x7429, 0x742E, 0x7462,
- 0x7489, 0x749F, 0x7501, 0x756F,
- 0x7682, 0x769C, 0x769E, 0x769B,
- 0x76A6, 0xFA17, 0x7746, 0x52AF,
- 0x7821, 0x784E, 0x7864, 0x787A,
- 0x7930, 0xFA18, 0xFA19, 0x0000,
- 0xFA1A, 0x7994, 0xFA1B, 0x799B, /* FB80 */
- 0x7AD1, 0x7AE7, 0xFA1C, 0x7AEB,
- 0x7B9E, 0xFA1D, 0x7D48, 0x7D5C,
- 0x7DB7, 0x7DA0, 0x7DD6, 0x7E52,
- 0x7F47, 0x7FA1, 0xFA1E, 0x8301,
- 0x8362, 0x837F, 0x83C7, 0x83F6,
- 0x8448, 0x84B4, 0x8553, 0x8559,
- 0x856B, 0xFA1F, 0x85B0, 0xFA20,
- 0xFA21, 0x8807, 0x88F5, 0x8A12, /* FBA0 */
- 0x8A37, 0x8A79, 0x8AA7, 0x8ABE,
- 0x8ADF, 0xFA22, 0x8AF6, 0x8B53,
- 0x8B7F, 0x8CF0, 0x8CF4, 0x8D12,
- 0x8D76, 0xFA23, 0x8ECF, 0xFA24,
- 0xFA25, 0x9067, 0x90DE, 0xFA26,
- 0x9115, 0x9127, 0x91DA, 0x91D7,
- 0x91DE, 0x91ED, 0x91EE, 0x91E4,
- 0x91E5, 0x9206, 0x9210, 0x920A, /* FBC0 */
- 0x923A, 0x9240, 0x923C, 0x924E,
- 0x9259, 0x9251, 0x9239, 0x9267,
- 0x92A7, 0x9277, 0x9278, 0x92E7,
- 0x92D7, 0x92D9, 0x92D0, 0xFA27,
- 0x92D5, 0x92E0, 0x92D3, 0x9325,
- 0x9321, 0x92FB, 0xFA28, 0x931E,
- 0x92FF, 0x931D, 0x9302, 0x9370,
- 0x9357, 0x93A4, 0x93C6, 0x93DE, /* FBE0 */
- 0x93F8, 0x9431, 0x9445, 0x9448,
- 0x9592, 0xF9DC, 0xFA29, 0x969D,
- 0x96AF, 0x9733, 0x973B, 0x9743,
- 0x974D, 0x974F, 0x9751, 0x9755,
- 0x9857, 0x9865, 0xFA2A, 0xFA2B,
- 0x9927, 0xFA2C, 0x999E, 0x9A4E,
- 0x9AD9, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x9ADC, 0x9B75, 0x9B72, 0x9B8F, /* FC40 */
- 0x9BB1, 0x9BBB, 0x9C00, 0x9D70,
- 0x9D6B, 0xFA2D, 0x9E19, 0x9ED1,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
-};
-
-
-static uint16 unicode_to_cp932[65536]=
-{
- 0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */
- 0x0004, 0x0005, 0x0006, 0x0007,
- 0x0008, 0x0009, 0x000A, 0x000B,
- 0x000C, 0x000D, 0x000E, 0x000F,
- 0x0010, 0x0011, 0x0012, 0x0013,
- 0x0014, 0x0015, 0x0016, 0x0017,
- 0x0018, 0x0019, 0x001A, 0x001B,
- 0x001C, 0x001D, 0x001E, 0x001F,
- 0x0020, 0x0021, 0x0022, 0x0023, /* 0020 */
- 0x0024, 0x0025, 0x0026, 0x0027,
- 0x0028, 0x0029, 0x002A, 0x002B,
- 0x002C, 0x002D, 0x002E, 0x002F,
- 0x0030, 0x0031, 0x0032, 0x0033,
- 0x0034, 0x0035, 0x0036, 0x0037,
- 0x0038, 0x0039, 0x003A, 0x003B,
- 0x003C, 0x003D, 0x003E, 0x003F,
- 0x0040, 0x0041, 0x0042, 0x0043, /* 0040 */
- 0x0044, 0x0045, 0x0046, 0x0047,
- 0x0048, 0x0049, 0x004A, 0x004B,
- 0x004C, 0x004D, 0x004E, 0x004F,
- 0x0050, 0x0051, 0x0052, 0x0053,
- 0x0054, 0x0055, 0x0056, 0x0057,
- 0x0058, 0x0059, 0x005A, 0x005B,
- 0x005C, 0x005D, 0x005E, 0x005F,
- 0x0060, 0x0061, 0x0062, 0x0063, /* 0060 */
- 0x0064, 0x0065, 0x0066, 0x0067,
- 0x0068, 0x0069, 0x006A, 0x006B,
- 0x006C, 0x006D, 0x006E, 0x006F,
- 0x0070, 0x0071, 0x0072, 0x0073,
- 0x0074, 0x0075, 0x0076, 0x0077,
- 0x0078, 0x0079, 0x007A, 0x007B,
- 0x007C, 0x007D, 0x007E, 0x007F,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 00A0 */
- 0x0000, 0x0000, 0x0000, MB2(0x8198),
- MB2(0x814E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x818B), MB2(0x817D), 0x0000, 0x0000,
- MB2(0x814C), 0x0000, MB2(0x81F7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 00C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x817E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 00E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8180),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 01E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 02E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x839F), MB2(0x83A0), MB2(0x83A1),
- MB2(0x83A2), MB2(0x83A3), MB2(0x83A4), MB2(0x83A5),
- MB2(0x83A6), MB2(0x83A7), MB2(0x83A8), MB2(0x83A9),
- MB2(0x83AA), MB2(0x83AB), MB2(0x83AC), MB2(0x83AD),
- MB2(0x83AE), MB2(0x83AF), 0x0000, MB2(0x83B0), /* 03A0 */
- MB2(0x83B1), MB2(0x83B2), MB2(0x83B3), MB2(0x83B4),
- MB2(0x83B5), MB2(0x83B6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x83BF), MB2(0x83C0), MB2(0x83C1),
- MB2(0x83C2), MB2(0x83C3), MB2(0x83C4), MB2(0x83C5),
- MB2(0x83C6), MB2(0x83C7), MB2(0x83C8), MB2(0x83C9),
- MB2(0x83CA), MB2(0x83CB), MB2(0x83CC), MB2(0x83CD),
- MB2(0x83CE), MB2(0x83CF), 0x0000, MB2(0x83D0), /* 03C0 */
- MB2(0x83D1), MB2(0x83D2), MB2(0x83D3), MB2(0x83D4),
- MB2(0x83D5), MB2(0x83D6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 03E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8446), 0x0000, 0x0000, /* 0400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8440), MB2(0x8441), MB2(0x8442), MB2(0x8443),
- MB2(0x8444), MB2(0x8445), MB2(0x8447), MB2(0x8448),
- MB2(0x8449), MB2(0x844A), MB2(0x844B), MB2(0x844C),
- MB2(0x844D), MB2(0x844E), MB2(0x844F), MB2(0x8450),
- MB2(0x8451), MB2(0x8452), MB2(0x8453), MB2(0x8454), /* 0420 */
- MB2(0x8455), MB2(0x8456), MB2(0x8457), MB2(0x8458),
- MB2(0x8459), MB2(0x845A), MB2(0x845B), MB2(0x845C),
- MB2(0x845D), MB2(0x845E), MB2(0x845F), MB2(0x8460),
- MB2(0x8470), MB2(0x8471), MB2(0x8472), MB2(0x8473),
- MB2(0x8474), MB2(0x8475), MB2(0x8477), MB2(0x8478),
- MB2(0x8479), MB2(0x847A), MB2(0x847B), MB2(0x847C),
- MB2(0x847D), MB2(0x847E), MB2(0x8480), MB2(0x8481),
- MB2(0x8482), MB2(0x8483), MB2(0x8484), MB2(0x8485), /* 0440 */
- MB2(0x8486), MB2(0x8487), MB2(0x8488), MB2(0x8489),
- MB2(0x848A), MB2(0x848B), MB2(0x848C), MB2(0x848D),
- MB2(0x848E), MB2(0x848F), MB2(0x8490), MB2(0x8491),
- 0x0000, MB2(0x8476), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 04E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 05E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 06E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 07E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 08E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 09E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 0FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 10E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 11E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 12E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 13E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 14E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 15E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 16E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 17E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 18E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 19E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 1FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x815D), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x815C), 0x0000, 0x0000,
- MB2(0x8165), MB2(0x8166), 0x0000, 0x0000,
- MB2(0x8167), MB2(0x8168), 0x0000, 0x0000,
- MB2(0x81F5), MB2(0x81F6), 0x0000, 0x0000, /* 2020 */
- 0x0000, MB2(0x8164), MB2(0x8163), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x81F1), 0x0000, MB2(0x818C), MB2(0x818D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x81A6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 20E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x818E), /* 2100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8782), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8784), 0x0000, 0x0000, /* 2120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x81F0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8754), MB2(0x8755), MB2(0x8756), MB2(0x8757), /* 2160 */
- MB2(0x8758), MB2(0x8759), MB2(0x875A), MB2(0x875B),
- MB2(0x875C), MB2(0x875D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFA40), MB2(0xFA41), MB2(0xFA42), MB2(0xFA43),
- MB2(0xFA44), MB2(0xFA45), MB2(0xFA46), MB2(0xFA47),
- MB2(0xFA48), MB2(0xFA49), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x81A9), MB2(0x81AA), MB2(0x81A8), MB2(0x81AB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81CB), 0x0000,
- MB2(0x81CC), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 21E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x81CD), 0x0000, MB2(0x81DD), MB2(0x81CE), /* 2200 */
- 0x0000, 0x0000, 0x0000, MB2(0x81DE),
- MB2(0x81B8), 0x0000, 0x0000, MB2(0x81B9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8794), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81E3), 0x0000,
- 0x0000, MB2(0x81E5), MB2(0x8187), MB2(0x8798),
- MB2(0x81DA), 0x0000, 0x0000, 0x0000, /* 2220 */
- 0x0000, MB2(0x8161), 0x0000, MB2(0x81C8),
- MB2(0x81C9), MB2(0x81BF), MB2(0x81BE), MB2(0x81E7),
- MB2(0x81E8), 0x0000, MB2(0x8793), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8188), MB2(0x81E6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x81E4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81E0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8182), MB2(0x81DF), 0x0000, 0x0000, /* 2260 */
- 0x0000, 0x0000, MB2(0x8185), MB2(0x8186),
- 0x0000, 0x0000, MB2(0x81E1), MB2(0x81E2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81BC), MB2(0x81BD), /* 2280 */
- 0x0000, 0x0000, MB2(0x81BA), MB2(0x81BB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22A0 */
- 0x0000, MB2(0x81DB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8799),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 22E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81DC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 23E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8740), MB2(0x8741), MB2(0x8742), MB2(0x8743), /* 2460 */
- MB2(0x8744), MB2(0x8745), MB2(0x8746), MB2(0x8747),
- MB2(0x8748), MB2(0x8749), MB2(0x874A), MB2(0x874B),
- MB2(0x874C), MB2(0x874D), MB2(0x874E), MB2(0x874F),
- MB2(0x8750), MB2(0x8751), MB2(0x8752), MB2(0x8753),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 24E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x849F), MB2(0x84AA), MB2(0x84A0), MB2(0x84AB), /* 2500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x84A1), 0x0000, 0x0000, MB2(0x84AC),
- MB2(0x84A2), 0x0000, 0x0000, MB2(0x84AD),
- MB2(0x84A4), 0x0000, 0x0000, MB2(0x84AF),
- MB2(0x84A3), 0x0000, 0x0000, MB2(0x84AE),
- MB2(0x84A5), MB2(0x84BA), 0x0000, 0x0000,
- MB2(0x84B5), 0x0000, 0x0000, MB2(0x84B0), /* 2520 */
- MB2(0x84A7), MB2(0x84BC), 0x0000, 0x0000,
- MB2(0x84B7), 0x0000, 0x0000, MB2(0x84B2),
- MB2(0x84A6), 0x0000, 0x0000, MB2(0x84B6),
- MB2(0x84BB), 0x0000, 0x0000, MB2(0x84B1),
- MB2(0x84A8), 0x0000, 0x0000, MB2(0x84B8),
- MB2(0x84BD), 0x0000, 0x0000, MB2(0x84B3),
- MB2(0x84A9), 0x0000, 0x0000, MB2(0x84B9),
- 0x0000, 0x0000, MB2(0x84BE), 0x0000, /* 2540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x84B4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x81A1), MB2(0x81A0), 0x0000, 0x0000, /* 25A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81A3), MB2(0x81A2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x81A5), MB2(0x81A4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 25C0 */
- 0x0000, 0x0000, MB2(0x819F), MB2(0x819E),
- 0x0000, 0x0000, 0x0000, MB2(0x819B),
- 0x0000, 0x0000, MB2(0x819D), MB2(0x819C),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 25E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x81FC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2600 */
- 0x0000, MB2(0x819A), MB2(0x8199), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x818A), 0x0000, MB2(0x8189), 0x0000, /* 2640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x81F4), 0x0000,
- 0x0000, MB2(0x81F3), 0x0000, MB2(0x81F2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 26E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 27E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 28E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 29E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 2FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8140), MB2(0x8141), MB2(0x8142), MB2(0x8156), /* 3000 */
- 0x0000, MB2(0x8158), MB2(0x8159), MB2(0x815A),
- MB2(0x8171), MB2(0x8172), MB2(0x8173), MB2(0x8174),
- MB2(0x8175), MB2(0x8176), MB2(0x8177), MB2(0x8178),
- MB2(0x8179), MB2(0x817A), MB2(0x81A7), MB2(0x81AC),
- MB2(0x816B), MB2(0x816C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8780), 0x0000, MB2(0x8781),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x829F), MB2(0x82A0), MB2(0x82A1), /* 3040 */
- MB2(0x82A2), MB2(0x82A3), MB2(0x82A4), MB2(0x82A5),
- MB2(0x82A6), MB2(0x82A7), MB2(0x82A8), MB2(0x82A9),
- MB2(0x82AA), MB2(0x82AB), MB2(0x82AC), MB2(0x82AD),
- MB2(0x82AE), MB2(0x82AF), MB2(0x82B0), MB2(0x82B1),
- MB2(0x82B2), MB2(0x82B3), MB2(0x82B4), MB2(0x82B5),
- MB2(0x82B6), MB2(0x82B7), MB2(0x82B8), MB2(0x82B9),
- MB2(0x82BA), MB2(0x82BB), MB2(0x82BC), MB2(0x82BD),
- MB2(0x82BE), MB2(0x82BF), MB2(0x82C0), MB2(0x82C1), /* 3060 */
- MB2(0x82C2), MB2(0x82C3), MB2(0x82C4), MB2(0x82C5),
- MB2(0x82C6), MB2(0x82C7), MB2(0x82C8), MB2(0x82C9),
- MB2(0x82CA), MB2(0x82CB), MB2(0x82CC), MB2(0x82CD),
- MB2(0x82CE), MB2(0x82CF), MB2(0x82D0), MB2(0x82D1),
- MB2(0x82D2), MB2(0x82D3), MB2(0x82D4), MB2(0x82D5),
- MB2(0x82D6), MB2(0x82D7), MB2(0x82D8), MB2(0x82D9),
- MB2(0x82DA), MB2(0x82DB), MB2(0x82DC), MB2(0x82DD),
- MB2(0x82DE), MB2(0x82DF), MB2(0x82E0), MB2(0x82E1), /* 3080 */
- MB2(0x82E2), MB2(0x82E3), MB2(0x82E4), MB2(0x82E5),
- MB2(0x82E6), MB2(0x82E7), MB2(0x82E8), MB2(0x82E9),
- MB2(0x82EA), MB2(0x82EB), MB2(0x82EC), MB2(0x82ED),
- MB2(0x82EE), MB2(0x82EF), MB2(0x82F0), MB2(0x82F1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x814A),
- MB2(0x814B), MB2(0x8154), MB2(0x8155), 0x0000,
- 0x0000, MB2(0x8340), MB2(0x8341), MB2(0x8342), /* 30A0 */
- MB2(0x8343), MB2(0x8344), MB2(0x8345), MB2(0x8346),
- MB2(0x8347), MB2(0x8348), MB2(0x8349), MB2(0x834A),
- MB2(0x834B), MB2(0x834C), MB2(0x834D), MB2(0x834E),
- MB2(0x834F), MB2(0x8350), MB2(0x8351), MB2(0x8352),
- MB2(0x8353), MB2(0x8354), MB2(0x8355), MB2(0x8356),
- MB2(0x8357), MB2(0x8358), MB2(0x8359), MB2(0x835A),
- MB2(0x835B), MB2(0x835C), MB2(0x835D), MB2(0x835E),
- MB2(0x835F), MB2(0x8360), MB2(0x8361), MB2(0x8362), /* 30C0 */
- MB2(0x8363), MB2(0x8364), MB2(0x8365), MB2(0x8366),
- MB2(0x8367), MB2(0x8368), MB2(0x8369), MB2(0x836A),
- MB2(0x836B), MB2(0x836C), MB2(0x836D), MB2(0x836E),
- MB2(0x836F), MB2(0x8370), MB2(0x8371), MB2(0x8372),
- MB2(0x8373), MB2(0x8374), MB2(0x8375), MB2(0x8376),
- MB2(0x8377), MB2(0x8378), MB2(0x8379), MB2(0x837A),
- MB2(0x837B), MB2(0x837C), MB2(0x837D), MB2(0x837E),
- MB2(0x8380), MB2(0x8381), MB2(0x8382), MB2(0x8383), /* 30E0 */
- MB2(0x8384), MB2(0x8385), MB2(0x8386), MB2(0x8387),
- MB2(0x8388), MB2(0x8389), MB2(0x838A), MB2(0x838B),
- MB2(0x838C), MB2(0x838D), MB2(0x838E), MB2(0x838F),
- MB2(0x8390), MB2(0x8391), MB2(0x8392), MB2(0x8393),
- MB2(0x8394), MB2(0x8395), MB2(0x8396), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8145),
- MB2(0x815B), MB2(0x8152), MB2(0x8153), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 31E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x878A), MB2(0x878B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x878C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32A0 */
- MB2(0x8785), MB2(0x8786), MB2(0x8787), MB2(0x8788),
- MB2(0x8789), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 32E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8765), /* 3300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8769), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8760), 0x0000, 0x0000, 0x0000,
- MB2(0x8763), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8761), MB2(0x876B), /* 3320 */
- 0x0000, 0x0000, MB2(0x876A), MB2(0x8764),
- 0x0000, 0x0000, 0x0000, MB2(0x876C),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8766), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x876E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x875F), MB2(0x876D), 0x0000,
- 0x0000, MB2(0x8762), 0x0000, 0x0000,
- 0x0000, MB2(0x8767), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8768),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x877E),
- MB2(0x878F), MB2(0x878E), MB2(0x878D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8772), MB2(0x8773),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x876F), MB2(0x8770), MB2(0x8771), 0x0000,
- 0x0000, MB2(0x8775), 0x0000, 0x0000, /* 33A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 33C0 */
- MB2(0x8774), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8783), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 33E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 34E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 35E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 36E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 37E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 38E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 39E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 3FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 40E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 41E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 42E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 43E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 44E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 45E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 46E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 47E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 48E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 49E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4AE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x88EA), MB2(0x929A), 0x0000, MB2(0x8EB5), /* 4E00 */
- 0x0000, 0x0000, 0x0000, MB2(0x969C),
- MB2(0x8FE4), MB2(0x8E4F), MB2(0x8FE3), MB2(0x89BA),
- 0x0000, MB2(0x9573), MB2(0x975E), 0x0000,
- MB2(0x98A0), MB2(0x894E), 0x0000, 0x0000,
- MB2(0x8A8E), MB2(0x98A1), MB2(0x90A2), MB2(0x99C0),
- MB2(0x8B75), MB2(0x95B8), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8FE5), 0x0000,
- 0x0000, MB2(0x97BC), 0x0000, 0x0000, /* 4E20 */
- 0x0000, 0x0000, MB2(0x95C0), 0x0000,
- MB2(0xFA68), 0x0000, MB2(0x98A2), 0x0000,
- 0x0000, MB2(0x9286), 0x0000, 0x0000,
- 0x0000, MB2(0x98A3), MB2(0x8BF8), 0x0000,
- 0x0000, 0x0000, MB2(0x98A4), 0x0000,
- MB2(0x8ADB), MB2(0x924F), 0x0000, MB2(0x8EE5),
- MB2(0x98A5), 0x0000, 0x0000, MB2(0x98A6),
- 0x0000, 0x0000, MB2(0x98A7), MB2(0x9454), /* 4E40 */
- 0x0000, MB2(0x8B76), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9456),
- 0x0000, MB2(0x93E1), MB2(0x8CC1), MB2(0x9652),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE568), MB2(0x98A8), MB2(0x8FE6),
- MB2(0x98A9), MB2(0x89B3), 0x0000, 0x0000,
- 0x0000, MB2(0x8BE3), MB2(0x8CEE), MB2(0x96E7),
- 0x0000, 0x0000, MB2(0x9BA4), 0x0000, /* 4E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9790), 0x0000, MB2(0x93FB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8AA3), 0x0000,
- MB2(0x8B54), 0x0000, MB2(0x98AA), 0x0000, /* 4E80 */
- 0x0000, MB2(0x98AB), MB2(0x97B9), 0x0000,
- MB2(0x975C), MB2(0x9188), MB2(0x98AD), MB2(0x8E96),
- MB2(0x93F1), 0x0000, MB2(0x98B0), 0x0000,
- 0x0000, MB2(0x895D), MB2(0x8CDD), 0x0000,
- MB2(0x8CDC), MB2(0x88E4), 0x0000, 0x0000,
- MB2(0x986A), MB2(0x9869), 0x0000, MB2(0x8DB1),
- MB2(0x889F), 0x0000, MB2(0x98B1), MB2(0x98B2),
- MB2(0x98B3), MB2(0x9653), MB2(0x98B4), 0x0000, /* 4EA0 */
- MB2(0x8CF0), MB2(0x88E5), MB2(0x9692), 0x0000,
- MB2(0x8B9C), 0x0000, 0x0000, MB2(0x8B9D),
- MB2(0x8B9E), MB2(0x92E0), MB2(0x97BA), 0x0000,
- MB2(0x98B5), 0x0000, 0x0000, MB2(0x98B6),
- 0x0000, 0x0000, MB2(0x98B7), 0x0000,
- 0x0000, 0x0000, MB2(0x906C), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8F59), MB2(0x906D), MB2(0x98BC), 0x0000, /* 4EC0 */
- MB2(0x98BA), 0x0000, MB2(0x98BB), MB2(0x8B77),
- 0x0000, 0x0000, MB2(0x8DA1), MB2(0x89EE),
- 0x0000, MB2(0x98B9), MB2(0x98B8), MB2(0x95A7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8E65), MB2(0x8E64), MB2(0x91BC), MB2(0x98BD),
- MB2(0x9574), MB2(0x90E5), 0x0000, 0x0000,
- 0x0000, MB2(0x8157), MB2(0x98BE), MB2(0x98C0),
- 0x0000, MB2(0xFA69), 0x0000, MB2(0x91E3), /* 4EE0 */
- MB2(0x97DF), MB2(0x88C8), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x98BF), MB2(0x89BC), 0x0000,
- MB2(0x8BC2), 0x0000, MB2(0x9287), 0x0000,
- 0x0000, 0x0000, MB2(0x8C8F), MB2(0x98C1),
- 0x0000, 0x0000, 0x0000, MB2(0x9443),
- MB2(0xFA6A), 0x0000, 0x0000, 0x0000,
- MB2(0xFA6B), MB2(0x8AE9), 0x0000, MB2(0xFA6C), /* 4F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x98C2), MB2(0x88C9), 0x0000,
- 0x0000, MB2(0x8CDE), MB2(0x8AEA), MB2(0x959A),
- MB2(0x94B0), MB2(0x8B78), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89EF), 0x0000,
- MB2(0x98E5), MB2(0x9360), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x948C),
- MB2(0x98C4), 0x0000, 0x0000, 0x0000,
- MB2(0x94BA), 0x0000, MB2(0x97E0), 0x0000,
- MB2(0x904C), MB2(0xFA6D), MB2(0x8E66), 0x0000,
- MB2(0x8E97), MB2(0x89BE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x92CF), /* 4F40 */
- 0x0000, 0x0000, MB2(0x9241), MB2(0x98C8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x88CA), MB2(0x92E1), MB2(0x8F5A),
- MB2(0x8DB2), MB2(0x9743), 0x0000, MB2(0x91CC),
- 0x0000, MB2(0x89BD), MB2(0xFA6E), MB2(0x98C7),
- 0x0000, MB2(0x975D), MB2(0x98C3), MB2(0x98C5),
- MB2(0x8DEC), MB2(0x98C6), MB2(0x9B43), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 4F60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x98CE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x98D1),
- MB2(0x98CF), 0x0000, 0x0000, MB2(0x89C0),
- 0x0000, MB2(0x95B9), MB2(0x98C9), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x98CD),
- MB2(0x8CF1), 0x0000, 0x0000, MB2(0x8E67),
- 0x0000, 0x0000, 0x0000, MB2(0x8AA4), /* 4F80 */
- 0x0000, 0x0000, MB2(0x98D2), 0x0000,
- MB2(0x98CA), 0x0000, MB2(0xFA70), MB2(0x97E1),
- 0x0000, MB2(0x8E98), 0x0000, MB2(0x98CB),
- 0x0000, MB2(0x98D0), MB2(0xFA6F), 0x0000,
- MB2(0xFA72), 0x0000, MB2(0x98D3), 0x0000,
- MB2(0x98CC), 0x0000, MB2(0xFA71), MB2(0x8B9F),
- 0x0000, MB2(0x88CB), 0x0000, 0x0000,
- MB2(0x8BA0), MB2(0x89BF), 0x0000, 0x0000, /* 4FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9B44),
- 0x0000, MB2(0x9699), MB2(0x958E), MB2(0x8CF2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x904E), MB2(0x97B5), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x95D6),
- 0x0000, 0x0000, MB2(0x8C57), MB2(0x91A3), /* 4FC0 */
- MB2(0x89E2), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFA61), MB2(0x8F72), 0x0000,
- 0x0000, MB2(0xFA73), MB2(0x98D7), 0x0000,
- MB2(0x98DC), MB2(0x98DA), 0x0000, 0x0000,
- MB2(0x98D5), 0x0000, 0x0000, MB2(0x91AD),
- MB2(0x98D8), 0x0000, MB2(0x98DB), MB2(0x98D9),
- 0x0000, MB2(0x95DB), 0x0000, MB2(0x98D6),
- 0x0000, MB2(0x904D), 0x0000, MB2(0x9693), /* 4FE0 */
- MB2(0x98DD), MB2(0x98DE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F43), MB2(0x98EB),
- 0x0000, 0x0000, 0x0000, MB2(0x946F),
- 0x0000, MB2(0x9555), MB2(0x98E6), 0x0000,
- MB2(0x95EE), 0x0000, MB2(0x89B4), 0x0000,
- 0x0000, 0x0000, MB2(0x98EA), MB2(0xFA76),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5000 */
- 0x0000, MB2(0x98E4), MB2(0x98ED), 0x0000,
- 0x0000, MB2(0x9171), 0x0000, MB2(0x8CC2),
- 0x0000, MB2(0x947B), 0x0000, MB2(0xE0C5),
- 0x0000, MB2(0x98EC), MB2(0x937C), 0x0000,
- MB2(0x98E1), 0x0000, MB2(0x8CF4), 0x0000,
- 0x0000, MB2(0x8CF3), MB2(0x98DF), 0x0000,
- 0x0000, 0x0000, MB2(0xFA77), MB2(0x8ED8),
- 0x0000, MB2(0x98E7), MB2(0xFA75), MB2(0x95ED), /* 5020 */
- MB2(0x926C), MB2(0x98E3), MB2(0x8C91), 0x0000,
- MB2(0x98E0), MB2(0x98E8), MB2(0x98E2), MB2(0x97CF),
- MB2(0x98E9), MB2(0x9860), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8BE4), 0x0000,
- 0x0000, MB2(0x8C90), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFA74), 0x0000, MB2(0xFA7A), MB2(0x98EE), /* 5040 */
- 0x0000, 0x0000, MB2(0xFA78), MB2(0x98EF),
- MB2(0x98F3), MB2(0x88CC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x95CE),
- MB2(0x98F2), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x98F1), MB2(0x98F5), 0x0000,
- 0x0000, 0x0000, MB2(0x98F4), 0x0000,
- MB2(0x92E2), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5060 */
- 0x0000, MB2(0x8C92), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x98F6), 0x0000, 0x0000, 0x0000,
- MB2(0xFA79), 0x0000, MB2(0x8EC3), 0x0000,
- MB2(0x91A4), MB2(0x92E3), MB2(0x8BF4), 0x0000,
- MB2(0x98F7), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8B55), 0x0000, 0x0000,
- MB2(0x98F8), 0x0000, 0x0000, 0x0000, /* 5080 */
- 0x0000, MB2(0x98FA), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9654), 0x0000, 0x0000,
- 0x0000, MB2(0x8C86), 0x0000, 0x0000,
- MB2(0xFA7B), 0x0000, 0x0000, 0x0000,
- MB2(0x8E50), MB2(0x94F5), MB2(0x98F9), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 50A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8DC3), MB2(0x9762), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x98FC), MB2(0x9942),
- MB2(0x98FB), MB2(0x8DC2), 0x0000, MB2(0x8F9D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C58), 0x0000,
- 0x0000, 0x0000, MB2(0x9943), 0x0000, /* 50C0 */
- 0x0000, MB2(0x8BCD), 0x0000, 0x0000,
- 0x0000, MB2(0x9940), MB2(0x9941), 0x0000,
- 0x0000, MB2(0x93AD), 0x0000, MB2(0x919C),
- 0x0000, MB2(0x8BA1), 0x0000, 0x0000,
- 0x0000, MB2(0x966C), MB2(0x9944), 0x0000,
- MB2(0xFA7D), 0x0000, MB2(0x97BB), 0x0000,
- 0x0000, 0x0000, MB2(0x9945), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9948), /* 50E0 */
- 0x0000, MB2(0x9946), 0x0000, MB2(0x916D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9947), MB2(0x9949), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFA7C), MB2(0x994B), 0x0000, 0x0000,
- 0x0000, MB2(0x994A), 0x0000, MB2(0x95C6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B56), MB2(0x994D), MB2(0x994E), 0x0000, /* 5100 */
- MB2(0x89AD), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x994C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8EF2), 0x0000,
- MB2(0x9951), MB2(0x9950), MB2(0x994F), 0x0000,
- MB2(0x98D4), 0x0000, MB2(0x9952), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F9E),
- 0x0000, MB2(0x9953), 0x0000, 0x0000, /* 5120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9744), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96D7), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9955),
- 0x0000, 0x0000, MB2(0x9954), MB2(0x9957),
- MB2(0x9956), 0x0000, 0x0000, MB2(0x9958),
- MB2(0x9959), MB2(0x88F2), 0x0000, MB2(0x8CB3), /* 5140 */
- MB2(0x8C5A), MB2(0x8F5B), MB2(0x929B), MB2(0x8BA2),
- MB2(0x90E6), MB2(0x8CF5), MB2(0xFA7E), MB2(0x8D8E),
- MB2(0x995B), MB2(0x96C6), MB2(0x9365), 0x0000,
- MB2(0x8E99), 0x0000, MB2(0x995A), 0x0000,
- MB2(0x995C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x937D), 0x0000,
- MB2(0x8A95), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x995D), 0x0000, /* 5160 */
- MB2(0xFA80), MB2(0x93FC), 0x0000, 0x0000,
- MB2(0x9153), MB2(0x995F), MB2(0x9960), MB2(0x94AA),
- MB2(0x8CF6), MB2(0x985A), MB2(0x9961), 0x0000,
- 0x0000, MB2(0x8BA4), 0x0000, 0x0000,
- 0x0000, MB2(0x95BA), MB2(0x91B4), MB2(0x8BEF),
- MB2(0x9354), 0x0000, 0x0000, 0x0000,
- MB2(0x8C93), 0x0000, 0x0000, 0x0000,
- MB2(0x9962), 0x0000, MB2(0x9963), 0x0000, /* 5180 */
- 0x0000, MB2(0x93E0), MB2(0x897E), 0x0000,
- 0x0000, MB2(0x9966), MB2(0x8DFB), 0x0000,
- MB2(0x9965), MB2(0x8DC4), 0x0000, MB2(0x9967),
- MB2(0xE3EC), MB2(0x9968), MB2(0x9660), MB2(0x9969),
- 0x0000, MB2(0x996A), MB2(0x996B), MB2(0x8FE7),
- 0x0000, MB2(0x8ECA), 0x0000, 0x0000,
- 0x0000, MB2(0xFA81), 0x0000, 0x0000,
- MB2(0x8AA5), 0x0000, MB2(0x996E), 0x0000, /* 51A0 */
- MB2(0x996C), MB2(0x96BB), MB2(0x996D), 0x0000,
- MB2(0x9579), MB2(0x996F), MB2(0x9970), MB2(0x9971),
- MB2(0x937E), 0x0000, 0x0000, 0x0000,
- MB2(0x9975), MB2(0x9973), MB2(0x9974), MB2(0x9972),
- MB2(0x8DE1), MB2(0x9976), MB2(0x96E8), MB2(0x97E2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9977), MB2(0xFA82), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 51C0 */
- MB2(0x90A6), MB2(0x9978), MB2(0x8F79), 0x0000,
- 0x0000, MB2(0x9979), 0x0000, MB2(0x929C),
- MB2(0x97BD), MB2(0x9380), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x99C3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x997A),
- MB2(0xEAA3), MB2(0x8BC3), 0x0000, 0x0000,
- MB2(0x997B), MB2(0x967D), 0x0000, 0x0000, /* 51E0 */
- 0x0000, 0x0000, MB2(0x8F88), MB2(0x91FA),
- 0x0000, MB2(0x997D), MB2(0x93E2), 0x0000,
- MB2(0xFA83), MB2(0x997E), 0x0000, 0x0000,
- MB2(0x9980), MB2(0x8A4D), 0x0000, 0x0000,
- 0x0000, MB2(0x9981), MB2(0x8BA5), 0x0000,
- MB2(0x93CA), MB2(0x899A), MB2(0x8F6F), 0x0000,
- 0x0000, MB2(0x949F), MB2(0x9982), 0x0000,
- MB2(0x9381), 0x0000, 0x0000, MB2(0x906E), /* 5200 */
- MB2(0x9983), 0x0000, MB2(0x95AA), MB2(0x90D8),
- MB2(0x8AA0), 0x0000, MB2(0x8AA7), MB2(0x9984),
- 0x0000, 0x0000, MB2(0x9986), 0x0000,
- 0x0000, MB2(0x8C59), 0x0000, 0x0000,
- MB2(0x9985), MB2(0xFA84), 0x0000, MB2(0x97F1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8F89), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5220 */
- MB2(0x94BB), MB2(0x95CA), 0x0000, MB2(0x9987),
- 0x0000, MB2(0x9798), MB2(0x9988), 0x0000,
- 0x0000, 0x0000, MB2(0x9989), 0x0000,
- MB2(0x939E), 0x0000, 0x0000, MB2(0x998A),
- 0x0000, 0x0000, MB2(0x90A7), MB2(0x8DFC),
- MB2(0x8C94), MB2(0x998B), MB2(0x8E68), MB2(0x8D8F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x92E4), /* 5240 */
- MB2(0x998D), 0x0000, 0x0000, MB2(0x91A5),
- 0x0000, 0x0000, MB2(0x8DED), MB2(0x998E),
- MB2(0x998F), MB2(0x914F), 0x0000, MB2(0x998C),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9991), 0x0000, MB2(0x9655), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8D84),
- 0x0000, 0x0000, MB2(0x9990), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C95), /* 5260 */
- MB2(0x8DDC), MB2(0x948D), 0x0000, 0x0000,
- 0x0000, MB2(0x9994), MB2(0x9992), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x959B),
- MB2(0x8FE8), MB2(0x999B), MB2(0x8A84), MB2(0x9995),
- MB2(0x9993), MB2(0x916E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9997), 0x0000, MB2(0x9996),
- 0x0000, 0x0000, 0x0000, MB2(0x8A63), /* 5280 */
- 0x0000, 0x0000, 0x0000, MB2(0x8C80),
- MB2(0x999C), MB2(0x97AB), 0x0000, 0x0000,
- 0x0000, MB2(0x9998), 0x0000, 0x0000,
- 0x0000, MB2(0x999D), MB2(0x999A), 0x0000,
- MB2(0x9999), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x97CD),
- MB2(0xFA85), 0x0000, 0x0000, MB2(0x8CF7),
- MB2(0x89C1), 0x0000, 0x0000, MB2(0x97F2), /* 52A0 */
- 0x0000, 0x0000, MB2(0xFA86), 0x0000,
- 0x0000, MB2(0x8F95), MB2(0x9377), MB2(0x8D85),
- MB2(0x99A0), MB2(0x99A1), 0x0000, MB2(0xFB77),
- 0x0000, MB2(0x97E3), 0x0000, 0x0000,
- MB2(0x984A), MB2(0x99A3), 0x0000, 0x0000,
- 0x0000, MB2(0x8CF8), 0x0000, 0x0000,
- MB2(0x99A2), 0x0000, MB2(0x8A4E), 0x0000,
- MB2(0xFA87), MB2(0x99A4), 0x0000, MB2(0x9675), /* 52C0 */
- 0x0000, MB2(0x92BA), 0x0000, MB2(0x9745),
- 0x0000, MB2(0x95D7), 0x0000, 0x0000,
- 0x0000, MB2(0x99A5), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE8D3), 0x0000,
- 0x0000, MB2(0x93AE), 0x0000, MB2(0x99A6),
- MB2(0x8AA8), MB2(0x96B1), 0x0000, MB2(0xFA88),
- 0x0000, MB2(0x8F9F), MB2(0x99A7), MB2(0x95E5),
- MB2(0x99AB), 0x0000, MB2(0x90A8), MB2(0x99A8), /* 52E0 */
- MB2(0x8BCE), 0x0000, MB2(0x99A9), MB2(0x8AA9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C4D), MB2(0x99AC),
- 0x0000, MB2(0x99AD), 0x0000, 0x0000,
- MB2(0x99AE), MB2(0x99AF), MB2(0x8ED9), 0x0000,
- 0x0000, 0x0000, MB2(0x8CF9), MB2(0x96DC),
- MB2(0xFA89), MB2(0x96E6), MB2(0x93F5), 0x0000, /* 5300 */
- 0x0000, MB2(0x95EF), MB2(0x99B0), MB2(0xFA8A),
- MB2(0x99B1), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x99B3), 0x0000, MB2(0x99B5),
- MB2(0x99B4), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x99B6), MB2(0x89BB), MB2(0x966B),
- 0x0000, MB2(0x8DFA), MB2(0x99B7), 0x0000,
- 0x0000, MB2(0x9178), 0x0000, 0x0000,
- MB2(0x8FA0), MB2(0x8BA7), 0x0000, MB2(0x99B8), /* 5320 */
- MB2(0xFA8B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x94D9), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x99B9),
- 0x0000, MB2(0x99BA), 0x0000, MB2(0x99BB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x99BC), MB2(0x9543), MB2(0x8BE6), MB2(0x88E3),
- 0x0000, 0x0000, 0x0000, MB2(0x93BD),
- MB2(0x99BD), MB2(0x8F5C), 0x0000, MB2(0x90E7), /* 5340 */
- 0x0000, MB2(0x99BF), MB2(0x99BE), MB2(0x8FA1),
- MB2(0x8CDF), MB2(0x99C1), MB2(0x94BC), 0x0000,
- 0x0000, MB2(0x99C2), 0x0000, 0x0000,
- 0x0000, MB2(0x94DA), MB2(0x91B2), MB2(0x91EC),
- MB2(0x8BA6), 0x0000, 0x0000, MB2(0x93EC),
- MB2(0x9250), 0x0000, MB2(0x948E), 0x0000,
- MB2(0x966D), 0x0000, MB2(0x99C4), 0x0000,
- MB2(0x90E8), 0x0000, 0x0000, 0x0000, /* 5360 */
- 0x0000, 0x0000, MB2(0x8C54), 0x0000,
- 0x0000, MB2(0x99C5), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x99C6), MB2(0x894B),
- MB2(0x88F3), MB2(0x8AEB), MB2(0xFA8C), MB2(0x91A6),
- MB2(0x8B70), MB2(0x9791), 0x0000, MB2(0x99C9),
- MB2(0x89B5), 0x0000, 0x0000, MB2(0x99C8),
- 0x0000, 0x0000, 0x0000, MB2(0x8BA8),
- 0x0000, 0x0000, MB2(0x99CA), 0x0000, /* 5380 */
- MB2(0x96EF), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFA8D),
- 0x0000, 0x0000, MB2(0x99CB), 0x0000,
- MB2(0x97D0), 0x0000, MB2(0x8CFA), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8CB4),
- MB2(0x99CC), 0x0000, 0x0000, 0x0000, /* 53A0 */
- 0x0000, MB2(0x99CE), MB2(0x99CD), 0x0000,
- MB2(0x907E), MB2(0x8958), 0x0000, 0x0000,
- 0x0000, MB2(0x897D), MB2(0x99CF), 0x0000,
- MB2(0x99D0), 0x0000, MB2(0xFA8E), MB2(0x8CB5),
- 0x0000, 0x0000, MB2(0x99D1), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8B8E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8E51), MB2(0x99D2), /* 53C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9694), MB2(0x8DB3), MB2(0x8B79), MB2(0x9746),
- MB2(0x916F), MB2(0x94BD), MB2(0x8EFB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8F66), 0x0000, MB2(0x8EE6), MB2(0x8EF3),
- 0x0000, MB2(0x8F96), 0x0000, MB2(0x94BE),
- 0x0000, MB2(0xFA8F), 0x0000, MB2(0x99D5),
- 0x0000, MB2(0x8962), MB2(0x9170), MB2(0x8CFB), /* 53E0 */
- MB2(0x8CC3), MB2(0x8BE5), 0x0000, 0x0000,
- MB2(0x99D9), MB2(0x9240), MB2(0x91FC), MB2(0x8BA9),
- MB2(0x8FA2), MB2(0x99DA), MB2(0x99D8), MB2(0x89C2),
- MB2(0x91E4), MB2(0x8EB6), MB2(0x8E6A), MB2(0x8945),
- 0x0000, 0x0000, MB2(0x8A90), MB2(0x8D86),
- MB2(0x8E69), 0x0000, MB2(0x99DB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x99DC), 0x0000, MB2(0x8B68), /* 5400 */
- MB2(0x8A65), 0x0000, 0x0000, 0x0000,
- MB2(0x8D87), MB2(0x8B67), MB2(0x92DD), MB2(0x8944),
- MB2(0x93AF), MB2(0x96BC), MB2(0x8D40), MB2(0x9799),
- MB2(0x9366), MB2(0x8CFC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C4E),
- 0x0000, MB2(0x99E5), 0x0000, MB2(0x8BE1),
- MB2(0x9669), 0x0000, 0x0000, 0x0000, /* 5420 */
- 0x0000, 0x0000, MB2(0x94DB), 0x0000,
- 0x0000, MB2(0x99E4), 0x0000, MB2(0x8ADC),
- MB2(0x99DF), MB2(0x99E0), MB2(0x99E2), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x99E3), 0x0000,
- MB2(0x8B7A), MB2(0x9081), 0x0000, MB2(0x95AB),
- MB2(0x99E1), MB2(0x99DD), MB2(0x8CE1), 0x0000,
- MB2(0x99DE), 0x0000, MB2(0x9843), 0x0000, /* 5440 */
- 0x0000, 0x0000, MB2(0x95F0), 0x0000,
- MB2(0x92E6), MB2(0x8CE0), MB2(0x8D90), 0x0000,
- 0x0000, 0x0000, MB2(0x99E6), 0x0000,
- 0x0000, MB2(0x93DB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x99EA),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8EFC), 0x0000, MB2(0x8EF4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x99ED), MB2(0x99EB), 0x0000, MB2(0x96A1),
- 0x0000, MB2(0x99E8), MB2(0x99F1), MB2(0x99EC),
- 0x0000, 0x0000, 0x0000, MB2(0x99EF),
- MB2(0x8CC4), MB2(0x96BD), 0x0000, 0x0000,
- MB2(0x99F0), 0x0000, 0x0000, 0x0000, /* 5480 */
- MB2(0x99F2), 0x0000, MB2(0x99F4), 0x0000,
- 0x0000, 0x0000, MB2(0xFA92), MB2(0x8DEE),
- MB2(0x9861), 0x0000, MB2(0x99E9), MB2(0x99E7),
- MB2(0x99F3), 0x0000, MB2(0x99EE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFA91), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x99F6), 0x0000, /* 54A0 */
- MB2(0x9A42), MB2(0x99F8), 0x0000, 0x0000,
- MB2(0x99FC), MB2(0xFA93), 0x0000, MB2(0x9A40),
- MB2(0x99F9), 0x0000, 0x0000, MB2(0x9A5D),
- 0x0000, 0x0000, MB2(0x8DE7), MB2(0x8A50),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x99F7), 0x0000, 0x0000, 0x0000,
- MB2(0x9A44), MB2(0x88F4), MB2(0x9A43), 0x0000,
- MB2(0x88A3), MB2(0x9569), MB2(0x9A41), 0x0000, /* 54C0 */
- MB2(0x99FA), 0x0000, 0x0000, MB2(0x99F5),
- MB2(0x99FB), MB2(0x8DC6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A45), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x88F5), MB2(0x9A4E), 0x0000, /* 54E0 */
- 0x0000, MB2(0x9A46), MB2(0x9A47), 0x0000,
- MB2(0x8FA3), MB2(0x9689), 0x0000, 0x0000,
- 0x0000, MB2(0x9A4C), MB2(0x9A4B), 0x0000,
- 0x0000, 0x0000, MB2(0x934E), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A4D), 0x0000,
- 0x0000, MB2(0x9A4A), 0x0000, MB2(0xFA94),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5500 */
- MB2(0x8953), 0x0000, MB2(0x8DB4), MB2(0x904F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A48),
- MB2(0x9382), 0x0000, 0x0000, 0x0000,
- MB2(0x9A49), 0x0000, MB2(0x88A0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A53), MB2(0x9742),
- 0x0000, MB2(0x8FA5), 0x0000, MB2(0x9A59),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A58), MB2(0x9A4F), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x91C1), 0x0000,
- MB2(0x9A50), 0x0000, 0x0000, 0x0000, /* 5540 */
- MB2(0x91ED), MB2(0x9A55), MB2(0x8FA4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A52), 0x0000, 0x0000, MB2(0x96E2),
- 0x0000, 0x0000, 0x0000, MB2(0x8C5B),
- 0x0000, 0x0000, MB2(0x9A56), MB2(0x9A57),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A54), MB2(0x9A5A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A51), /* 5560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A60),
- MB2(0x9A65), 0x0000, MB2(0x9A61), 0x0000,
- MB2(0x9A5C), 0x0000, 0x0000, MB2(0x9A66), /* 5580 */
- MB2(0x9150), 0x0000, MB2(0xFA95), MB2(0x9A68),
- 0x0000, MB2(0x8D41), MB2(0x9A5E), MB2(0x929D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A62), MB2(0x9A5B), MB2(0x8AAB), 0x0000,
- MB2(0x8AEC), MB2(0x8A85), MB2(0x9A63), MB2(0x9A5F),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 55A0 */
- 0x0000, 0x0000, 0x0000, MB2(0x8C96),
- MB2(0x9A69), MB2(0x9A67), MB2(0x9172), MB2(0x8B69),
- MB2(0x8BAA), 0x0000, MB2(0x9A64), 0x0000,
- MB2(0x8BF2), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8963), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 55C0 */
- MB2(0x9A6D), MB2(0x9A6B), 0x0000, MB2(0x9AA5),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A70), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A6A), 0x0000,
- MB2(0x9A6E), 0x0000, 0x0000, MB2(0x9A6C),
- 0x0000, 0x0000, 0x0000, MB2(0x8E6B), /* 55E0 */
- MB2(0x9A6F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A72),
- 0x0000, MB2(0x9A77), 0x0000, 0x0000,
- 0x0000, MB2(0x9A75), MB2(0x9A74), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5600 */
- 0x0000, 0x0000, MB2(0x9251), 0x0000,
- 0x0000, MB2(0x89C3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A71), 0x0000, MB2(0x9A73), MB2(0x8FA6),
- MB2(0x8952), 0x0000, 0x0000, MB2(0x9A76),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x89DC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A82),
- 0x0000, MB2(0x8FFA), MB2(0x9A7D), 0x0000,
- MB2(0x9A7B), 0x0000, MB2(0x9A7C), 0x0000,
- MB2(0x9A7E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x895C), 0x0000, /* 5640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9158), 0x0000, MB2(0x9A78), 0x0000,
- MB2(0x9A79), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8A9A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5660 */
- MB2(0x9A81), 0x0000, 0x0000, 0x0000,
- MB2(0x8AED), 0x0000, MB2(0x9A84), MB2(0x9A80),
- MB2(0x9A83), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x95AC), 0x0000, 0x0000, 0x0000,
- MB2(0x93D3), 0x0000, MB2(0x94B6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A86), 0x0000, 0x0000, 0x0000, /* 5680 */
- 0x0000, 0x0000, MB2(0x9A85), MB2(0x8A64),
- 0x0000, 0x0000, MB2(0x9A87), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A8A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A89), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A88), 0x0000, MB2(0x9458), 0x0000, /* 56A0 */
- 0x0000, MB2(0x9A8B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A8C), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A8E), 0x0000, MB2(0x9A8D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A90), 0x0000, 0x0000, 0x0000,
- MB2(0x9A93), MB2(0x9A91), MB2(0x9A8F), MB2(0x9A92), /* 56C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9A94), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A95), 0x0000,
- 0x0000, MB2(0x9A96), 0x0000, MB2(0x9A97),
- 0x0000, 0x0000, 0x0000, MB2(0x9A98),
- MB2(0x9964), 0x0000, MB2(0x8EFA), MB2(0x8E6C),
- 0x0000, 0x0000, MB2(0x89F1), 0x0000,
- MB2(0x88F6), 0x0000, 0x0000, MB2(0x9263), /* 56E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9A99), 0x0000,
- MB2(0x8DA2), 0x0000, MB2(0x88CD), MB2(0x907D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9A9A), MB2(0x8CC5), 0x0000,
- 0x0000, MB2(0x8D91), 0x0000, MB2(0x9A9C),
- MB2(0x9A9B), 0x0000, 0x0000, MB2(0x95DE), /* 5700 */
- MB2(0x9A9D), 0x0000, 0x0000, 0x0000,
- MB2(0x9A9F), MB2(0x9A9E), 0x0000, MB2(0x9AA0),
- 0x0000, MB2(0x9AA1), 0x0000, MB2(0x8C97),
- 0x0000, 0x0000, MB2(0x8980), MB2(0x9AA2),
- 0x0000, 0x0000, MB2(0x9AA4), 0x0000,
- MB2(0x9AA3), 0x0000, 0x0000, 0x0000,
- MB2(0x9AA6), 0x0000, 0x0000, MB2(0x9379),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5720 */
- 0x0000, 0x0000, MB2(0x9AA7), MB2(0x88B3),
- MB2(0x8DDD), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8C5C), 0x0000, 0x0000,
- MB2(0x926E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9AA8),
- MB2(0x9AA9), 0x0000, 0x0000, MB2(0x9AAB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AAC), 0x0000, MB2(0x8DE2), 0x0000, /* 5740 */
- 0x0000, 0x0000, 0x0000, MB2(0x8BCF),
- 0x0000, 0x0000, MB2(0x9656), 0x0000,
- 0x0000, 0x0000, MB2(0x9AAA), MB2(0x9AAD),
- MB2(0x8DBF), MB2(0x8D42), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFA96), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9AB1), 0x0000, 0x0000, /* 5760 */
- MB2(0x8DA3), MB2(0xFA97), MB2(0x9252), 0x0000,
- 0x0000, MB2(0x9AAE), MB2(0x92D8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9AB2),
- 0x0000, 0x0000, MB2(0x9082), 0x0000, /* 5780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AB0), MB2(0x9AB3), 0x0000, MB2(0x8C5E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9AB4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AB5), 0x0000, MB2(0x8D43), MB2(0x8A5F), /* 57A0 */
- MB2(0x9AB7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9AB8), 0x0000,
- MB2(0xFA98), 0x0000, 0x0000, 0x0000,
- MB2(0x9AB9), 0x0000, 0x0000, MB2(0x9AB6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AAF), 0x0000, 0x0000, MB2(0x9ABA), /* 57C0 */
- 0x0000, 0x0000, MB2(0x9ABB), MB2(0xFA9A),
- MB2(0xFA99), 0x0000, 0x0000, MB2(0x9684),
- 0x0000, 0x0000, MB2(0x8FE9), 0x0000,
- 0x0000, 0x0000, MB2(0x9ABD), MB2(0x9ABE),
- MB2(0x9ABC), 0x0000, MB2(0x9AC0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9457), 0x0000, 0x0000, MB2(0x88E6),
- MB2(0x9575), 0x0000, 0x0000, MB2(0x9AC1), /* 57E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8FFB), 0x0000, 0x0000, MB2(0x8EB7),
- 0x0000, MB2(0x947C), MB2(0x8AEE), 0x0000,
- MB2(0x8DE9), 0x0000, 0x0000, 0x0000,
- MB2(0x9678), 0x0000, MB2(0x93B0), 0x0000, /* 5800 */
- 0x0000, MB2(0x8C98), MB2(0x91CD), 0x0000,
- 0x0000, 0x0000, MB2(0x9ABF), MB2(0x9AC2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91C2), 0x0000, 0x0000,
- 0x0000, MB2(0x9AC3), 0x0000, 0x0000,
- 0x0000, MB2(0x9AC4), 0x0000, 0x0000,
- 0x0000, MB2(0x9AC6), 0x0000, 0x0000, /* 5820 */
- MB2(0x92E7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8AAC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xEA9F),
- MB2(0x8981), MB2(0x95F1), 0x0000, 0x0000,
- MB2(0x8FEA), MB2(0x9367), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8DE4), 0x0000,
- 0x0000, MB2(0x9ACC), 0x0000, 0x0000,
- MB2(0x95BB), MB2(0x97DB), 0x0000, 0x0000, /* 5840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89F2), MB2(0x9AC8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9159), MB2(0x9ACB), 0x0000,
- MB2(0x9383), 0x0000, 0x0000, MB2(0x9368),
- MB2(0x9384), MB2(0x94B7), MB2(0x92CB), 0x0000,
- 0x0000, 0x0000, MB2(0x8DC7), 0x0000,
- 0x0000, 0x0000, MB2(0x9AC7), 0x0000, /* 5860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8996), 0x0000, MB2(0x9355),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AC9), 0x0000, MB2(0x9AC5), 0x0000,
- 0x0000, MB2(0x906F), 0x0000, 0x0000,
- 0x0000, MB2(0x9ACD), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F6D), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8BAB), /* 5880 */
- 0x0000, MB2(0x9ACE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x95E6),
- 0x0000, 0x0000, 0x0000, MB2(0x919D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x92C4), 0x0000, MB2(0xFA9D), MB2(0x9AD0),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 58A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x966E), 0x0000, 0x0000, MB2(0x9AD1),
- 0x0000, 0x0000, MB2(0x9AD6), 0x0000,
- 0x0000, 0x0000, MB2(0xFA9E), MB2(0x95AD),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9AD5), MB2(0x9ACF), MB2(0x9AD2), MB2(0x9AD4),
- 0x0000, 0x0000, MB2(0x8DA4), 0x0000,
- 0x0000, MB2(0x95C7), 0x0000, 0x0000, /* 58C0 */
- 0x0000, MB2(0x9AD7), 0x0000, MB2(0x9264),
- 0x0000, 0x0000, MB2(0x89F3), 0x0000,
- MB2(0x8FEB), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9AD9), 0x0000, MB2(0x9AD8),
- 0x0000, MB2(0x8D88), 0x0000, MB2(0x9ADA),
- MB2(0x9ADC), MB2(0x9ADB), 0x0000, 0x0000,
- MB2(0x9ADE), 0x0000, MB2(0x9AD3), MB2(0x9AE0),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 58E0 */
- MB2(0x9ADF), MB2(0x9ADD), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E6D),
- MB2(0x9070), 0x0000, MB2(0x9173), MB2(0x9AE1),
- MB2(0x90BA), MB2(0x88EB), MB2(0x9484), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x92D9),
- 0x0000, MB2(0x9AE3), MB2(0x9AE2), MB2(0x9AE4),
- MB2(0x9AE5), MB2(0x9AE6), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9AE7), 0x0000, /* 5900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95CF), MB2(0x9AE8), MB2(0xFA9F),
- 0x0000, 0x0000, 0x0000, MB2(0x89C4),
- MB2(0x9AE9), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x975B), MB2(0x8A4F), 0x0000,
- MB2(0x99C7), MB2(0x8F67), MB2(0x91BD), MB2(0x9AEA),
- MB2(0x96E9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96B2), 0x0000, /* 5920 */
- 0x0000, MB2(0x9AEC), 0x0000, MB2(0x91E5),
- 0x0000, MB2(0x9356), MB2(0x91BE), MB2(0x9576),
- MB2(0x9AED), MB2(0x9AEE), MB2(0x899B), 0x0000,
- 0x0000, MB2(0x8EB8), MB2(0x9AEF), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x88CE),
- MB2(0x9AF0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9AF1), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5940 */
- MB2(0x8982), 0x0000, 0x0000, MB2(0x8AEF),
- MB2(0x93DE), MB2(0x95F2), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9AF5), MB2(0x9174),
- MB2(0x9AF4), MB2(0x8C5F), 0x0000, MB2(0xFAA0),
- MB2(0x967A), MB2(0x9AF3), 0x0000, MB2(0x9385),
- MB2(0x9AF7), 0x0000, MB2(0x9AF6), MB2(0xFAA1),
- 0x0000, MB2(0xFAA2), 0x0000, 0x0000,
- MB2(0x9AF9), 0x0000, MB2(0x9AF8), MB2(0xFAA3), /* 5960 */
- 0x0000, MB2(0x899C), 0x0000, MB2(0x9AFA),
- MB2(0x8FA7), MB2(0x9AFC), MB2(0x9244), 0x0000,
- MB2(0x9AFB), 0x0000, MB2(0x95B1), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F97),
- MB2(0x937A), 0x0000, 0x0000, 0x0000,
- MB2(0x9B40), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8D44), 0x0000, 0x0000,
- 0x0000, MB2(0x9B41), MB2(0x9440), MB2(0x94DC), /* 5980 */
- MB2(0x96CF), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9444), 0x0000,
- 0x0000, MB2(0x9B4A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8B57),
- 0x0000, 0x0000, MB2(0x9764), 0x0000,
- 0x0000, MB2(0x96AD), 0x0000, MB2(0x9BAA),
- 0x0000, MB2(0x9B42), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9B45), /* 59A0 */
- MB2(0xFAA4), MB2(0x91C3), 0x0000, 0x0000,
- MB2(0x9657), 0x0000, 0x0000, 0x0000,
- MB2(0x9369), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B46), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9685), MB2(0xFAA5), MB2(0x8DC8),
- 0x0000, 0x0000, MB2(0x8FA8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 59C0 */
- 0x0000, 0x0000, MB2(0x9B47), 0x0000,
- 0x0000, MB2(0x8E6F), 0x0000, MB2(0x8E6E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x88B7), MB2(0x8CC6), 0x0000, MB2(0x90A9),
- MB2(0x88CF), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9B4B), MB2(0x9B4C), 0x0000,
- MB2(0x9B49), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 59E0 */
- 0x0000, MB2(0x8957), MB2(0x8AAD), 0x0000,
- MB2(0x9B48), 0x0000, MB2(0x96C3), MB2(0x9550),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x88A6), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x88F7),
- 0x0000, 0x0000, 0x0000, MB2(0x8E70),
- 0x0000, MB2(0x88D0), 0x0000, MB2(0x88A1), /* 5A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9B51), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9B4F), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x96BA), 0x0000, MB2(0x9B52), 0x0000,
- MB2(0x9B50), 0x0000, 0x0000, MB2(0x9B4E),
- MB2(0x9050), 0x0000, 0x0000, 0x0000, /* 5A20 */
- 0x0000, MB2(0x9B4D), 0x0000, 0x0000,
- 0x0000, MB2(0x95D8), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8CE2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9B56), MB2(0x9B57), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8FA9), 0x0000, 0x0000, 0x0000,
- MB2(0x9B53), MB2(0x984B), 0x0000, 0x0000, /* 5A40 */
- 0x0000, 0x0000, MB2(0x946B), 0x0000,
- 0x0000, MB2(0x9B55), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8DA5), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B58), 0x0000, /* 5A60 */
- 0x0000, 0x0000, MB2(0x9577), 0x0000,
- 0x0000, 0x0000, MB2(0x9B59), 0x0000,
- MB2(0x9B54), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x96B9),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x947D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B5A), MB2(0x9551),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9B5B), MB2(0x9B5F), MB2(0x9B5C), 0x0000,
- 0x0000, MB2(0x89C5), MB2(0x9B5E), 0x0000, /* 5AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8EB9), 0x0000, MB2(0x9B5D),
- MB2(0x8C99), 0x0000, 0x0000, 0x0000,
- MB2(0x9B6B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B64), MB2(0x9B61),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9284), 0x0000, MB2(0x9B60), /* 5AE0 */
- 0x0000, 0x0000, MB2(0x9B62), 0x0000,
- 0x0000, MB2(0x9B63), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B65), MB2(0x9B66),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5B00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8AF0), 0x0000, MB2(0x9B68),
- MB2(0x9B67), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B69), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8FEC), 0x0000, /* 5B20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B6C), 0x0000,
- MB2(0x92DA), 0x0000, 0x0000, 0x0000,
- MB2(0x8964), 0x0000, MB2(0x9B6A), 0x0000,
- 0x0000, 0x0000, MB2(0x9B6D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9B6E), 0x0000,
- MB2(0x9B71), 0x0000, 0x0000, MB2(0x9B6F), /* 5B40 */
- 0x0000, MB2(0x9B70), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8E71), MB2(0x9B72), 0x0000, 0x0000,
- MB2(0x8D45), MB2(0x9B73), MB2(0xFAA6), MB2(0x8E9A),
- MB2(0x91B6), 0x0000, MB2(0x9B74), MB2(0x9B75),
- MB2(0x8E79), MB2(0x8D46), 0x0000, MB2(0x96D0),
- 0x0000, 0x0000, 0x0000, MB2(0x8B47), /* 5B60 */
- MB2(0x8CC7), MB2(0x9B76), MB2(0x8A77), 0x0000,
- 0x0000, MB2(0x9B77), 0x0000, MB2(0x91B7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9B78), MB2(0x9BA1), 0x0000, MB2(0x9B79),
- 0x0000, MB2(0x9B7A), 0x0000, 0x0000,
- MB2(0x9B7B), 0x0000, MB2(0x9B7D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9B7E), 0x0000, 0x0000, MB2(0x9B80), /* 5B80 */
- 0x0000, MB2(0x91EE), 0x0000, MB2(0x8946),
- MB2(0x8EE7), MB2(0x88C0), 0x0000, MB2(0x9176),
- MB2(0x8AAE), MB2(0x8EB3), 0x0000, MB2(0x8D47),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9386), 0x0000, MB2(0x8F40),
- MB2(0x8AAF), MB2(0x9288), MB2(0x92E8), MB2(0x88B6),
- MB2(0x8B58), MB2(0x95F3), 0x0000, MB2(0x8EC0),
- 0x0000, 0x0000, MB2(0x8B71), MB2(0x90E9), /* 5BA0 */
- MB2(0x8EBA), MB2(0x9747), MB2(0x9B81), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8B7B), 0x0000,
- MB2(0x8DC9), 0x0000, 0x0000, MB2(0x8A51),
- MB2(0x8983), MB2(0x8FAA), MB2(0x89C6), 0x0000,
- MB2(0x9B82), MB2(0x9765), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F68),
- MB2(0xFAA7), 0x0000, MB2(0x8EE2), MB2(0x9B83), /* 5BC0 */
- MB2(0x8AF1), MB2(0x93D0), MB2(0x96A7), MB2(0x9B84),
- 0x0000, MB2(0x9B85), 0x0000, 0x0000,
- MB2(0x9578), 0x0000, 0x0000, 0x0000,
- MB2(0x9B87), 0x0000, MB2(0x8AA6), MB2(0x8BF5),
- MB2(0x9B86), 0x0000, 0x0000, 0x0000,
- MB2(0xFAA9), 0x0000, 0x0000, MB2(0x8AB0),
- 0x0000, MB2(0x9051), MB2(0x9B8B), MB2(0x8E40),
- 0x0000, MB2(0x89C7), MB2(0x9B8A), 0x0000, /* 5BE0 */
- MB2(0x9B88), MB2(0x9B8C), MB2(0x9B89), MB2(0x944A),
- MB2(0x9ECB), MB2(0x9052), 0x0000, MB2(0x9B8D),
- MB2(0xFAAA), 0x0000, MB2(0x97BE), 0x0000,
- MB2(0x9B8E), 0x0000, 0x0000, MB2(0x9B90),
- 0x0000, MB2(0x929E), MB2(0x9B8F), 0x0000,
- MB2(0x90A1), 0x0000, MB2(0x8E9B), 0x0000,
- 0x0000, 0x0000, MB2(0x91CE), MB2(0x8EF5),
- 0x0000, MB2(0x9595), MB2(0x90EA), 0x0000, /* 5C00 */
- MB2(0x8ECB), MB2(0x9B91), MB2(0x8FAB), MB2(0x9B92),
- MB2(0x9B93), MB2(0x88D1), MB2(0x91B8), MB2(0x9071),
- 0x0000, MB2(0x9B94), MB2(0x93B1), MB2(0x8FAC),
- 0x0000, MB2(0x8FAD), 0x0000, MB2(0x9B95),
- 0x0000, 0x0000, MB2(0x90EB), 0x0000,
- 0x0000, 0x0000, MB2(0x8FAE), 0x0000,
- 0x0000, 0x0000, MB2(0xFAAB), 0x0000,
- MB2(0x9B96), 0x0000, MB2(0x9B97), 0x0000, /* 5C20 */
- MB2(0x96DE), 0x0000, 0x0000, 0x0000,
- MB2(0x9B98), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8BC4), 0x0000, 0x0000,
- 0x0000, MB2(0x8F41), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9B99), MB2(0x9B9A), MB2(0x8EDA), MB2(0x904B),
- MB2(0x93F2), MB2(0x9073), MB2(0x94F6), MB2(0x9441),
- MB2(0x8BC7), MB2(0x9B9B), 0x0000, 0x0000, /* 5C40 */
- 0x0000, MB2(0x8B8F), MB2(0x9B9C), 0x0000,
- MB2(0x8BFC), 0x0000, MB2(0x93CD), MB2(0x89AE),
- 0x0000, MB2(0x8E72), MB2(0x9B9D), MB2(0x9BA0),
- MB2(0x9B9F), MB2(0x8BFB), 0x0000, MB2(0x9B9E),
- 0x0000, MB2(0x9357), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x91AE), 0x0000,
- MB2(0x936A), MB2(0x8EC6), 0x0000, 0x0000, /* 5C60 */
- MB2(0x9177), MB2(0x979A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BA2), 0x0000, MB2(0x9BA3), MB2(0x93D4),
- 0x0000, MB2(0x8E52), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9BA5), 0x0000,
- 0x0000, MB2(0x9BA6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BA7), 0x0000, 0x0000, 0x0000,
- MB2(0x8AF2), MB2(0x9BA8), 0x0000, 0x0000,
- MB2(0x9BA9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x89AA), 0x0000, 0x0000, /* 5CA0 */
- 0x0000, 0x0000, MB2(0xFAAC), 0x0000,
- MB2(0x915A), MB2(0x8AE2), 0x0000, MB2(0x9BAB),
- MB2(0x96A6), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91D0), 0x0000, MB2(0x8A78),
- 0x0000, 0x0000, MB2(0x9BAD), MB2(0x9BAF),
- MB2(0x8ADD), 0x0000, MB2(0xFAAD), MB2(0x9BAC),
- MB2(0x9BAE), 0x0000, MB2(0x9BB1), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5CC0 */
- 0x0000, MB2(0x9BB0), 0x0000, MB2(0x9BB2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9BB3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x93BB), MB2(0x8BAC), 0x0000, 0x0000, /* 5CE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x89E3), MB2(0x9BB4), MB2(0x9BB9), 0x0000,
- 0x0000, MB2(0x9BB7), 0x0000, MB2(0x95F5),
- MB2(0x95F4), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFAAE), MB2(0x9387), 0x0000,
- 0x0000, 0x0000, MB2(0x9BB6), MB2(0x8F73),
- 0x0000, MB2(0x9BB5), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D00 */
- 0x0000, 0x0000, 0x0000, MB2(0x9092),
- 0x0000, 0x0000, 0x0000, MB2(0x9BBA),
- 0x0000, 0x0000, MB2(0x8DE8), 0x0000,
- 0x0000, MB2(0x9BC0), 0x0000, 0x0000,
- MB2(0x9BC1), MB2(0x9BBB), MB2(0x8A52), MB2(0x9BBC),
- MB2(0x9BC5), MB2(0x9BC4), MB2(0x9BC3), MB2(0x9BBF),
- 0x0000, 0x0000, 0x0000, MB2(0x9BBE),
- 0x0000, 0x0000, MB2(0x9BC2), 0x0000, /* 5D20 */
- 0x0000, 0x0000, 0x0000, MB2(0xFAAF),
- 0x0000, MB2(0x95F6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFAB2), 0x0000, /* 5D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BC9),
- MB2(0x9BC6), 0x0000, MB2(0x9BC8), 0x0000,
- MB2(0x9792), 0x0000, MB2(0x9BC7), MB2(0xFAB0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BBD), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5D60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9093), 0x0000, 0x0000,
- MB2(0x9BCA), MB2(0xFAB3), 0x0000, MB2(0x8DB5),
- 0x0000, 0x0000, 0x0000, MB2(0x9BCB),
- 0x0000, 0x0000, MB2(0x9BCC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9BCF), 0x0000, /* 5D80 */
- MB2(0x9BCE), 0x0000, 0x0000, MB2(0x9BCD),
- 0x0000, 0x0000, 0x0000, MB2(0x9388),
- MB2(0x9BB8), 0x0000, 0x0000, 0x0000,
- MB2(0x9BD5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9BD1), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9BD0), 0x0000, /* 5DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BD2), 0x0000, MB2(0x9BD3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BD6),
- MB2(0xFAB4), MB2(0xFAB5), MB2(0x97E4), 0x0000,
- MB2(0x9BD7), MB2(0x9BD4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9BD8), 0x0000, 0x0000,
- MB2(0x8ADE), MB2(0x9BD9), 0x0000, 0x0000,
- MB2(0xFAB6), 0x0000, MB2(0x9BDB), MB2(0x9BDA),
- 0x0000, 0x0000, MB2(0x9BDC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BDD),
- 0x0000, MB2(0x90EC), MB2(0x8F42), 0x0000,
- 0x0000, MB2(0x8F84), 0x0000, MB2(0x9183), /* 5DE0 */
- 0x0000, MB2(0x8D48), MB2(0x8DB6), MB2(0x8D49),
- MB2(0x8B90), 0x0000, 0x0000, MB2(0x9BDE),
- 0x0000, 0x0000, MB2(0x8DB7), 0x0000,
- 0x0000, MB2(0x8CC8), MB2(0x9BDF), MB2(0x96A4),
- MB2(0x9462), MB2(0x9BE0), 0x0000, MB2(0x8D4A),
- 0x0000, 0x0000, 0x0000, MB2(0x8AAA),
- 0x0000, MB2(0x9246), MB2(0x8BD0), 0x0000,
- 0x0000, 0x0000, MB2(0x8E73), MB2(0x957A), /* 5E00 */
- 0x0000, 0x0000, MB2(0x94BF), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BE1),
- MB2(0x8AF3), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9BE4), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x929F), 0x0000,
- 0x0000, MB2(0x9BE3), MB2(0x9BE2), MB2(0x9BE5),
- 0x0000, MB2(0x92E9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 5E20 */
- 0x0000, MB2(0x9083), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E74),
- 0x0000, MB2(0x90C8), 0x0000, MB2(0x91D1),
- MB2(0x8B41), 0x0000, 0x0000, MB2(0x92A0),
- 0x0000, 0x0000, MB2(0x9BE6), MB2(0x9BE7),
- MB2(0x8FED), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9658), 0x0000, 0x0000,
- MB2(0x9BEA), 0x0000, 0x0000, MB2(0x9BE9), /* 5E40 */
- MB2(0x9BE8), MB2(0x959D), 0x0000, MB2(0x9BF1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9679), 0x0000, MB2(0x9BEB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BED), MB2(0x968B), 0x0000, MB2(0x9BEC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BEE),
- 0x0000, MB2(0x94A6), MB2(0x9BEF), MB2(0x95BC), /* 5E60 */
- MB2(0x9BF0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8AB1), MB2(0x95BD),
- MB2(0x944E), MB2(0x9BF2), MB2(0x9BF3), 0x0000,
- MB2(0x8D4B), MB2(0x8AB2), MB2(0x9BF4), MB2(0x8CB6),
- MB2(0x9763), MB2(0x9748), MB2(0x8AF4), MB2(0x9BF6),
- 0x0000, MB2(0x92A1), 0x0000, MB2(0x8D4C), /* 5E80 */
- MB2(0x8FAF), 0x0000, 0x0000, MB2(0x94DD),
- 0x0000, 0x0000, MB2(0x8FB0), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F98),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x92EA), MB2(0x95F7), MB2(0x9358),
- 0x0000, 0x0000, MB2(0x8D4D), 0x0000,
- MB2(0x957B), 0x0000, 0x0000, 0x0000,
- MB2(0x9BF7), 0x0000, 0x0000, 0x0000, /* 5EA0 */
- 0x0000, 0x0000, MB2(0x9378), MB2(0x8DC0),
- 0x0000, 0x0000, 0x0000, MB2(0x8CC9),
- 0x0000, MB2(0x92EB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x88C1), MB2(0x8F8E), MB2(0x8D4E),
- MB2(0x9766), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9BF8), MB2(0x9BF9), MB2(0x9470), /* 5EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9BFA), MB2(0x97F5), MB2(0x984C), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9BFC),
- MB2(0x9BFB), 0x0000, 0x0000, MB2(0x8A66),
- 0x0000, 0x0000, MB2(0x9C40), 0x0000,
- 0x0000, 0x0000, MB2(0x9C43), MB2(0x9C44),
- 0x0000, MB2(0x9C42), 0x0000, MB2(0x955F),
- MB2(0x8FB1), MB2(0x9C46), MB2(0x9C45), MB2(0x9C41), /* 5EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9C47), MB2(0x9C48), 0x0000, 0x0000,
- MB2(0x9C49), 0x0000, 0x0000, 0x0000,
- MB2(0x9C4C), MB2(0x9C4A), 0x0000, MB2(0x9C4B),
- MB2(0x9C4D), 0x0000, MB2(0x8984), MB2(0x92EC),
- MB2(0x9C4E), 0x0000, MB2(0x8C9A), MB2(0x89F4),
- MB2(0x9455), 0x0000, MB2(0x9C4F), MB2(0x93F9),
- 0x0000, MB2(0x95D9), 0x0000, MB2(0x9C50), /* 5F00 */
- MB2(0x984D), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9C51), MB2(0x95BE), MB2(0x9C54),
- MB2(0x989F), MB2(0x98AF), 0x0000, MB2(0x8EAE),
- MB2(0x93F3), MB2(0x9C55), 0x0000, MB2(0x8B7C),
- MB2(0x92A2), MB2(0x88F8), MB2(0x9C56), MB2(0x95A4),
- MB2(0x8D4F), 0x0000, 0x0000, MB2(0x926F),
- 0x0000, 0x0000, 0x0000, MB2(0x92ED),
- 0x0000, MB2(0xFAB7), 0x0000, 0x0000, /* 5F20 */
- 0x0000, MB2(0x96ED), MB2(0x8CB7), MB2(0x8CCA),
- 0x0000, MB2(0x9C57), 0x0000, 0x0000,
- 0x0000, MB2(0x9C58), 0x0000, MB2(0x9C5E),
- 0x0000, MB2(0x8EE3), 0x0000, 0x0000,
- MB2(0xFAB8), MB2(0x92A3), 0x0000, MB2(0x8BAD),
- MB2(0x9C59), 0x0000, 0x0000, 0x0000,
- MB2(0x954A), 0x0000, MB2(0x9265), 0x0000,
- 0x0000, MB2(0x9C5A), 0x0000, 0x0000, /* 5F40 */
- 0x0000, MB2(0xFA67), 0x0000, 0x0000,
- MB2(0x9C5B), 0x0000, MB2(0x8BAE), 0x0000,
- MB2(0x9C5C), 0x0000, MB2(0x9C5D), 0x0000,
- 0x0000, MB2(0x9C5F), 0x0000, MB2(0x9396),
- 0x0000, 0x0000, MB2(0x9C60), MB2(0x9C61),
- 0x0000, MB2(0x9C62), 0x0000, 0x0000,
- MB2(0x9C53), MB2(0x9C52), 0x0000, 0x0000,
- 0x0000, MB2(0x9C63), MB2(0x8C60), 0x0000, /* 5F60 */
- 0x0000, 0x0000, MB2(0x9546), MB2(0xFAB9),
- 0x0000, MB2(0x8DCA), MB2(0x9556), MB2(0x92A4),
- MB2(0x956A), MB2(0x9C64), 0x0000, 0x0000,
- MB2(0x8FB2), MB2(0x8965), 0x0000, MB2(0x9C65),
- 0x0000, 0x0000, 0x0000, MB2(0x9C66),
- 0x0000, MB2(0x96F0), 0x0000, 0x0000,
- MB2(0x94DE), 0x0000, 0x0000, MB2(0x9C69),
- MB2(0x899D), MB2(0x90AA), MB2(0x9C68), MB2(0x9C67), /* 5F80 */
- MB2(0x8C61), MB2(0x91D2), 0x0000, MB2(0x9C6D),
- MB2(0x9C6B), 0x0000, MB2(0x9C6A), MB2(0x97A5),
- MB2(0x8CE3), 0x0000, 0x0000, 0x0000,
- MB2(0x8F99), MB2(0x9C6C), MB2(0x936B), MB2(0x8F5D),
- 0x0000, 0x0000, 0x0000, MB2(0x93BE),
- MB2(0x9C70), MB2(0x9C6F), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9C6E), 0x0000,
- MB2(0x9C71), MB2(0x8CE4), 0x0000, 0x0000, /* 5FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9C72), MB2(0x959C), MB2(0x8F7A), 0x0000,
- 0x0000, MB2(0x9C73), MB2(0x94F7), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x93BF),
- MB2(0x92A5), 0x0000, 0x0000, MB2(0xFABA),
- 0x0000, MB2(0x934F), 0x0000, 0x0000,
- MB2(0x9C74), MB2(0x8B4A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9053), /* 5FC0 */
- 0x0000, MB2(0x954B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8AF5), MB2(0x9445), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9C75), MB2(0x8E75),
- MB2(0x9659), MB2(0x965A), 0x0000, 0x0000,
- MB2(0x899E), MB2(0x9C7A), MB2(0xFABB), 0x0000,
- MB2(0x9289), 0x0000, 0x0000, 0x0000, /* 5FE0 */
- MB2(0x9C77), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x89F5),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9CAB), MB2(0x9C79), 0x0000, 0x0000,
- 0x0000, MB2(0x944F), 0x0000, 0x0000,
- MB2(0x9C78), 0x0000, 0x0000, MB2(0x9C76),
- 0x0000, MB2(0x8D9A), 0x0000, MB2(0x9C7C),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9C83), MB2(0x9C89),
- MB2(0x9C81), 0x0000, MB2(0x937B), 0x0000,
- 0x0000, MB2(0x9C86), MB2(0x957C), 0x0000,
- 0x0000, MB2(0x9C80), 0x0000, MB2(0x9C85),
- MB2(0x97E5), MB2(0x8E76), 0x0000, 0x0000,
- MB2(0x91D3), MB2(0x9C7D), 0x0000, 0x0000, /* 6020 */
- 0x0000, MB2(0x8B7D), MB2(0x9C88), MB2(0x90AB),
- MB2(0x8985), MB2(0x9C82), MB2(0x89F6), MB2(0x9C87),
- 0x0000, 0x0000, 0x0000, MB2(0x8BAF),
- 0x0000, MB2(0x9C84), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9C8A), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9C8C), MB2(0x9C96), MB2(0x9C94), /* 6040 */
- 0x0000, 0x0000, MB2(0x9C91), 0x0000,
- 0x0000, 0x0000, MB2(0x9C90), MB2(0x97F6),
- 0x0000, MB2(0x9C92), 0x0000, 0x0000,
- MB2(0x8BB0), 0x0000, MB2(0x8D50), 0x0000,
- 0x0000, MB2(0x8F9A), 0x0000, 0x0000,
- 0x0000, MB2(0x9C99), MB2(0x9C8B), 0x0000,
- 0x0000, MB2(0xFABC), 0x0000, MB2(0x9C8F),
- MB2(0x9C7E), 0x0000, MB2(0x89F8), MB2(0x9C93), /* 6060 */
- MB2(0x9C95), MB2(0x9270), 0x0000, 0x0000,
- MB2(0x8DA6), MB2(0x89B6), MB2(0x9C8D), MB2(0x9C98),
- MB2(0x9C97), MB2(0x8BB1), 0x0000, MB2(0x91A7),
- MB2(0x8A86), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8C62), 0x0000, MB2(0x9C8E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9C9A), 0x0000, MB2(0x9C9D), /* 6080 */
- MB2(0x9C9F), MB2(0xFABD), 0x0000, 0x0000,
- 0x0000, MB2(0x8EBB), MB2(0xFABE), MB2(0x9CA5),
- MB2(0x92EE), MB2(0x9C9B), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9CA3), 0x0000,
- MB2(0x89F7), 0x0000, MB2(0x9CA1), MB2(0x9CA2),
- 0x0000, 0x0000, MB2(0x9C9E), MB2(0x9CA0),
- 0x0000, 0x0000, 0x0000, MB2(0x8CE5),
- MB2(0x9749), 0x0000, 0x0000, MB2(0x8AB3), /* 60A0 */
- 0x0000, 0x0000, MB2(0x8978), MB2(0x9CA4),
- 0x0000, MB2(0x9459), MB2(0x88AB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x94DF), MB2(0x9C7B),
- MB2(0x9CAA), MB2(0x9CAE), MB2(0x96E3), 0x0000,
- MB2(0x9CA7), 0x0000, 0x0000, 0x0000,
- MB2(0x9389), MB2(0x9CAC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 60C0 */
- 0x0000, MB2(0x8FEE), MB2(0x9CAD), MB2(0x93D5),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9866), 0x0000, MB2(0x9CA9),
- 0x0000, MB2(0xFAC0), 0x0000, 0x0000,
- MB2(0x9CAF), 0x0000, MB2(0x8D9B), 0x0000,
- MB2(0x90C9), 0x0000, MB2(0xFABF), MB2(0x88D2),
- MB2(0x9CA8), MB2(0x9CA6), 0x0000, MB2(0x9179), /* 60E0 */
- 0x0000, 0x0000, 0x0000, MB2(0x9C9C),
- MB2(0x8E53), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x91C4), MB2(0x9CBB), MB2(0xFAC2), MB2(0x917A),
- MB2(0x9CB6), 0x0000, MB2(0x9CB3), MB2(0x9CB4),
- 0x0000, MB2(0x8EE4), MB2(0x9CB7), MB2(0x9CBA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9CB5), MB2(0x8F44), 0x0000, MB2(0x9CB8), /* 6100 */
- 0x0000, 0x0000, MB2(0x9CB2), 0x0000,
- MB2(0x96FA), MB2(0x96F9), 0x0000, 0x0000,
- 0x0000, MB2(0x9CBC), MB2(0x9CBD), MB2(0x88D3),
- 0x0000, MB2(0xFAC3), 0x0000, 0x0000,
- 0x0000, MB2(0x9CB1), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8BF0), MB2(0x88A4),
- 0x0000, 0x0000, 0x0000, MB2(0x8AB4),
- MB2(0xFAC1), MB2(0x9CB9), 0x0000, 0x0000, /* 6120 */
- 0x0000, 0x0000, 0x0000, MB2(0x9CC1),
- MB2(0x9CC0), 0x0000, 0x0000, 0x0000,
- MB2(0x9CC5), 0x0000, 0x0000, 0x0000,
- MB2(0xFAC5), 0x0000, 0x0000, 0x0000,
- MB2(0x9CC6), 0x0000, 0x0000, MB2(0xFAC4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9CC4), MB2(0x9CC7), MB2(0x9CBF), MB2(0x9CC3),
- 0x0000, 0x0000, MB2(0x9CC8), 0x0000, /* 6140 */
- MB2(0x9CC9), 0x0000, 0x0000, MB2(0x9CBE),
- MB2(0x8E9C), 0x0000, MB2(0x9CC2), MB2(0x91D4),
- MB2(0x8D51), MB2(0x9CB0), MB2(0x9054), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9CD6),
- 0x0000, MB2(0x95E7), 0x0000, 0x0000,
- MB2(0x9CCC), MB2(0x9CCD), MB2(0x9CCE), 0x0000,
- 0x0000, MB2(0x9CD5), 0x0000, MB2(0x9CD4),
- 0x0000, 0x0000, MB2(0x969D), MB2(0x8AB5), /* 6160 */
- 0x0000, MB2(0x9CD2), 0x0000, MB2(0x8C64),
- MB2(0x8A53), 0x0000, 0x0000, MB2(0x9CCF),
- 0x0000, 0x0000, MB2(0x97B6), MB2(0x9CD1),
- MB2(0x88D4), MB2(0x9CD3), 0x0000, MB2(0x9CCA),
- MB2(0x9CD0), MB2(0x9CD7), MB2(0x8C63), MB2(0x9CCB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x977C), 0x0000,
- 0x0000, 0x0000, MB2(0x974A), 0x0000, /* 6180 */
- 0x0000, 0x0000, 0x0000, MB2(0x9CDA),
- 0x0000, 0x0000, MB2(0x9CDE), 0x0000,
- 0x0000, 0x0000, MB2(0x919E), 0x0000,
- MB2(0x97F7), MB2(0x9CDF), 0x0000, 0x0000,
- MB2(0x9CDC), 0x0000, MB2(0x9CD9), 0x0000,
- MB2(0xFAC6), MB2(0x9CD8), MB2(0x9CDD), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 61A0 */
- MB2(0x95AE), 0x0000, 0x0000, MB2(0x93B2),
- 0x0000, MB2(0x8C65), 0x0000, MB2(0x9CE0),
- MB2(0x9CDB), 0x0000, MB2(0x9CE1), 0x0000,
- 0x0000, 0x0000, MB2(0x8C9B), 0x0000,
- 0x0000, 0x0000, MB2(0x89AF), 0x0000,
- 0x0000, 0x0000, MB2(0x9CE9), 0x0000,
- 0x0000, 0x0000, MB2(0x8AB6), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9CE7), /* 61C0 */
- 0x0000, 0x0000, MB2(0x9CE8), MB2(0x8DA7),
- MB2(0x9CE6), MB2(0x9CE4), MB2(0x9CE3), MB2(0x9CEA),
- MB2(0x9CE2), MB2(0x9CEC), 0x0000, 0x0000,
- MB2(0x89F9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9CEE), /* 61E0 */
- 0x0000, 0x0000, MB2(0x9CED), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x92A6), 0x0000,
- MB2(0x9CF1), 0x0000, MB2(0x9CEF), MB2(0x9CE5),
- MB2(0x8C9C), 0x0000, MB2(0x9CF0), 0x0000,
- MB2(0x9CF4), MB2(0x9CF3), MB2(0x9CF5), MB2(0x9CF2),
- MB2(0x9CF6), 0x0000, 0x0000, 0x0000, /* 6200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9CF7), MB2(0x9CF8), MB2(0x95E8), 0x0000,
- MB2(0x9CFA), MB2(0x9CF9), MB2(0x8F5E), 0x0000,
- MB2(0x90AC), MB2(0x89E4), MB2(0x89FA), MB2(0xFAC7),
- MB2(0x9CFB), 0x0000, MB2(0x88BD), 0x0000,
- 0x0000, 0x0000, MB2(0x90CA), MB2(0x9CFC),
- 0x0000, MB2(0xE6C1), MB2(0x9D40), MB2(0x8C81),
- 0x0000, MB2(0x9D41), 0x0000, 0x0000, /* 6220 */
- 0x0000, 0x0000, MB2(0x90ED), 0x0000,
- 0x0000, 0x0000, MB2(0x9D42), 0x0000,
- 0x0000, 0x0000, MB2(0x9D43), MB2(0x8B59),
- MB2(0x9D44), 0x0000, MB2(0x9D45), MB2(0x9D46),
- MB2(0x91D5), 0x0000, 0x0000, 0x0000,
- MB2(0x8CCB), 0x0000, 0x0000, MB2(0x96DF),
- 0x0000, 0x0000, 0x0000, MB2(0x965B),
- MB2(0x8F8A), MB2(0x9D47), 0x0000, 0x0000, /* 6240 */
- 0x0000, 0x0000, 0x0000, MB2(0x90EE),
- MB2(0xE7BB), MB2(0x94E0), 0x0000, MB2(0x8EE8),
- 0x0000, MB2(0x8DCB), MB2(0x9D48), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x91C5),
- 0x0000, MB2(0x95A5), 0x0000, 0x0000,
- MB2(0x91EF), 0x0000, 0x0000, MB2(0x9D4B),
- 0x0000, 0x0000, MB2(0x9D49), 0x0000,
- MB2(0x9D4C), 0x0000, 0x0000, MB2(0x9D4A), /* 6260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9D4D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x95AF), 0x0000,
- 0x0000, MB2(0x88B5), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x957D), 0x0000,
- 0x0000, MB2(0x94E1), 0x0000, 0x0000,
- MB2(0x9D4E), 0x0000, MB2(0x9D51), MB2(0x8FB3),
- MB2(0x8B5A), 0x0000, MB2(0x9D4F), MB2(0x9D56), /* 6280 */
- MB2(0x8FB4), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9D50), MB2(0x9463), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x977D), MB2(0x9D52), MB2(0x9D53),
- MB2(0x9D57), MB2(0x938A), MB2(0x9D54), MB2(0x8D52),
- MB2(0x90DC), 0x0000, 0x0000, MB2(0x9D65),
- MB2(0x94B2), 0x0000, MB2(0x91F0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 62A0 */
- 0x0000, 0x0000, MB2(0xFAC8), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x94E2),
- MB2(0x9DAB), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95F8), 0x0000, 0x0000,
- 0x0000, MB2(0x92EF), 0x0000, 0x0000,
- 0x0000, MB2(0x9695), 0x0000, MB2(0x9D5A),
- MB2(0x899F), MB2(0x928A), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9D63), 0x0000, /* 62C0 */
- 0x0000, MB2(0x9253), MB2(0x9D5D), MB2(0x9D64),
- MB2(0x9D5F), MB2(0x9D66), MB2(0x9D62), 0x0000,
- MB2(0x9D61), MB2(0x948F), 0x0000, MB2(0x9D5B),
- MB2(0x89FB), MB2(0x9D59), MB2(0x8B91), MB2(0x91F1),
- MB2(0x9D55), 0x0000, 0x0000, MB2(0x9D58),
- MB2(0x8D53), MB2(0x90D9), 0x0000, MB2(0x8FB5),
- MB2(0x9D60), MB2(0x9471), 0x0000, 0x0000,
- MB2(0x8B92), MB2(0x8A67), 0x0000, 0x0000, /* 62E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8A87), MB2(0x9040), MB2(0x9D68), MB2(0x9D6D),
- 0x0000, MB2(0x9D69), 0x0000, MB2(0x8C9D),
- 0x0000, MB2(0x9D6E), MB2(0x8E41), MB2(0x8D89),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F45), MB2(0x9D5C),
- 0x0000, MB2(0x8E9D), MB2(0x9D6B), 0x0000, /* 6300 */
- 0x0000, 0x0000, 0x0000, MB2(0x8E77),
- MB2(0x9D6C), MB2(0x88C2), 0x0000, 0x0000,
- MB2(0x9D67), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x92A7), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8B93), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8BB2),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6320 */
- 0x0000, 0x0000, 0x0000, MB2(0x9D6A),
- MB2(0x88A5), 0x0000, 0x0000, MB2(0x8DC1),
- 0x0000, 0x0000, 0x0000, MB2(0x9055),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x92F0), 0x0000,
- 0x0000, MB2(0x94D2), MB2(0x9D70), MB2(0x917D),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91A8), 0x0000, 0x0000,
- MB2(0x8E4A), MB2(0x9D71), 0x0000, MB2(0x9D73),
- MB2(0x9D6F), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95DF), 0x0000, MB2(0x92BB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x917B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6360 */
- 0x0000, 0x0000, 0x0000, MB2(0x95F9),
- MB2(0x8ECC), MB2(0x9D80), 0x0000, MB2(0x9D7E),
- 0x0000, 0x0000, MB2(0x9098), 0x0000,
- 0x0000, 0x0000, MB2(0x8C9E), 0x0000,
- 0x0000, 0x0000, MB2(0x9D78), MB2(0x8FB7),
- 0x0000, 0x0000, MB2(0x93E6), MB2(0x9450),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9D76), 0x0000, 0x0000, MB2(0x917C), /* 6380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8EF6), MB2(0x9D7B), 0x0000, 0x0000,
- MB2(0x8FB6), 0x0000, MB2(0x9D75), MB2(0x9D7A),
- 0x0000, 0x0000, MB2(0x9472), 0x0000,
- 0x0000, 0x0000, MB2(0x9D74), 0x0000,
- MB2(0x8C40), 0x0000, 0x0000, MB2(0x8A7C),
- 0x0000, 0x0000, 0x0000, MB2(0x9D7C),
- MB2(0x97A9), MB2(0x8DCC), MB2(0x9254), MB2(0x9D79), /* 63A0 */
- 0x0000, MB2(0x90DA), 0x0000, MB2(0x8D54),
- MB2(0x9084), MB2(0x8986), MB2(0x915B), MB2(0x9D77),
- MB2(0x8B64), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C66), 0x0000,
- MB2(0x92CD), MB2(0x9D7D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x917E),
- 0x0000, 0x0000, MB2(0x9D81), 0x0000,
- MB2(0x9D83), 0x0000, 0x0000, MB2(0x91B5), /* 63C0 */
- MB2(0x9D89), 0x0000, MB2(0x9D84), 0x0000,
- 0x0000, MB2(0x9D86), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9560),
- MB2(0x92F1), 0x0000, MB2(0x9D87), 0x0000,
- 0x0000, 0x0000, MB2(0x974B), 0x0000,
- 0x0000, 0x0000, MB2(0x9767), MB2(0x8AB7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x88AC), 0x0000, MB2(0x9D85), /* 63E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9D82), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8AF6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8987), MB2(0xFAC9), MB2(0x9D88), 0x0000,
- 0x0000, 0x0000, MB2(0x9768), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6400 */
- 0x0000, 0x0000, MB2(0x9D8C), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91B9), 0x0000, MB2(0x9D93),
- 0x0000, 0x0000, 0x0000, MB2(0x9D8D),
- 0x0000, 0x0000, MB2(0x9D8A), MB2(0x9D91),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9D72), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6420 */
- 0x0000, 0x0000, MB2(0x9D8E), 0x0000,
- MB2(0x9D92), 0x0000, 0x0000, 0x0000,
- MB2(0x94C0), MB2(0x938B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9D8B), 0x0000, MB2(0x9D8F), 0x0000,
- 0x0000, 0x0000, MB2(0x8C67), 0x0000,
- 0x0000, 0x0000, MB2(0x8DEF), 0x0000,
- 0x0000, 0x0000, MB2(0x90DB), 0x0000, /* 6440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9D97), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9345), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFACA), 0x0000, 0x0000, 0x0000, /* 6460 */
- 0x0000, 0x0000, 0x0000, MB2(0x9D94),
- 0x0000, MB2(0x9680), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9D95),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9D96), 0x0000,
- MB2(0x96CC), 0x0000, MB2(0x90A0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C82), /* 6480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9D9D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8E54), MB2(0x9D9A),
- 0x0000, MB2(0x9D99), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9451), 0x0000,
- 0x0000, MB2(0xFACB), MB2(0x93B3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 64A0 */
- MB2(0x9350), MB2(0x9D9B), 0x0000, 0x0000,
- 0x0000, MB2(0x9D9C), 0x0000, MB2(0x958F),
- 0x0000, MB2(0x9464), MB2(0x8E42), 0x0000,
- MB2(0x90EF), 0x0000, MB2(0x966F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A68), 0x0000, MB2(0x9DA3),
- MB2(0x9D9E), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9769), MB2(0x9DA5), 0x0000, /* 64C0 */
- 0x0000, MB2(0x9DA1), 0x0000, MB2(0x9DA2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9180), MB2(0xFACC), 0x0000,
- 0x0000, 0x0000, MB2(0x9DA0), 0x0000,
- MB2(0x9D5E), 0x0000, 0x0000, 0x0000,
- MB2(0x9DA4), 0x0000, MB2(0x9D9F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9DA9), MB2(0x9DAA), MB2(0x9346), MB2(0x9DAC), /* 64E0 */
- 0x0000, 0x0000, MB2(0x8E43), MB2(0x9DA7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B5B), 0x0000, 0x0000, MB2(0x9DAD),
- 0x0000, MB2(0x9DA6), MB2(0x9DB1), 0x0000,
- MB2(0x9DB0), 0x0000, MB2(0x9DAF), 0x0000,
- 0x0000, 0x0000, MB2(0x9DB2), 0x0000,
- 0x0000, MB2(0x9DB4), MB2(0x8FEF), 0x0000,
- MB2(0x9DB3), 0x0000, 0x0000, 0x0000, /* 6500 */
- 0x0000, MB2(0x9DB7), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9DB5), 0x0000, 0x0000, 0x0000,
- MB2(0x9DB6), MB2(0x9D90), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9DB9), /* 6520 */
- MB2(0x9DB8), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9D98), MB2(0x9DBA),
- MB2(0x9DAE), 0x0000, 0x0000, MB2(0x8E78),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9DBB), MB2(0x9DBC), MB2(0x9DBE), MB2(0x9DBD),
- MB2(0x9DBF), MB2(0x89FC), 0x0000, MB2(0x8D55),
- 0x0000, 0x0000, MB2(0x95FA), MB2(0x90AD),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6540 */
- 0x0000, MB2(0x8CCC), 0x0000, 0x0000,
- MB2(0x9DC1), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9DC4), MB2(0xFACD), MB2(0x9571),
- 0x0000, MB2(0x8B7E), 0x0000, 0x0000,
- 0x0000, MB2(0x9DC3), MB2(0x9DC2), MB2(0x9473),
- MB2(0x9DC5), MB2(0x8BB3), 0x0000, 0x0000,
- 0x0000, MB2(0x9DC7), MB2(0x9DC6), 0x0000,
- 0x0000, 0x0000, MB2(0x8AB8), MB2(0x8E55), /* 6560 */
- 0x0000, 0x0000, MB2(0x93D6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C68), 0x0000, 0x0000, 0x0000,
- MB2(0x9094), 0x0000, MB2(0x9DC8), 0x0000,
- MB2(0x90AE), MB2(0x9347), 0x0000, MB2(0x957E),
- MB2(0x9DC9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9DCA), MB2(0x9DCB), /* 6580 */
- 0x0000, 0x0000, 0x0000, MB2(0x95B6),
- MB2(0x9B7C), MB2(0x90C4), 0x0000, 0x0000,
- MB2(0x956B), 0x0000, MB2(0x8DD6), 0x0000,
- MB2(0x94E3), MB2(0x94C1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x936C),
- 0x0000, MB2(0x97BF), 0x0000, MB2(0x9DCD),
- MB2(0x8ECE), 0x0000, 0x0000, MB2(0x9DCE),
- 0x0000, MB2(0x88B4), 0x0000, 0x0000, /* 65A0 */
- MB2(0x8BD2), MB2(0x90CB), 0x0000, MB2(0x9580),
- 0x0000, 0x0000, 0x0000, MB2(0x9DCF),
- MB2(0x8E61), MB2(0x9266), 0x0000, MB2(0x8E7A),
- MB2(0x9056), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9DD0),
- 0x0000, MB2(0x95FB), 0x0000, 0x0000,
- MB2(0x8997), MB2(0x8E7B), 0x0000, 0x0000,
- 0x0000, MB2(0x9DD3), 0x0000, MB2(0x9DD1), /* 65C0 */
- MB2(0x9DD4), MB2(0x97B7), MB2(0x9DD2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x90F9),
- MB2(0x9DD5), 0x0000, 0x0000, MB2(0x91B0),
- 0x0000, 0x0000, MB2(0x9DD6), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8AF8),
- 0x0000, MB2(0x9DD8), 0x0000, MB2(0x9DD7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9DD9), MB2(0x9DDA), MB2(0x8AF9), 0x0000, /* 65E0 */
- 0x0000, MB2(0x93FA), MB2(0x9255), MB2(0x8B8C),
- MB2(0x8E7C), MB2(0x9181), 0x0000, 0x0000,
- MB2(0x8F7B), MB2(0x88AE), 0x0000, 0x0000,
- 0x0000, MB2(0x9DDB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89A0), MB2(0x9DDF),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFACE), 0x0000, MB2(0x8D56), MB2(0x9DDE), /* 6600 */
- 0x0000, 0x0000, MB2(0x8DA9), MB2(0x8FB8),
- 0x0000, MB2(0xFAD1), MB2(0x9DDD), 0x0000,
- MB2(0x8FB9), 0x0000, MB2(0x96BE), MB2(0x8DA8),
- 0x0000, 0x0000, 0x0000, MB2(0x88D5),
- MB2(0x90CC), MB2(0xFACF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9DE4), 0x0000, MB2(0xFAD3), MB2(0x90AF),
- MB2(0x8966), 0x0000, 0x0000, 0x0000, /* 6620 */
- MB2(0xFAD4), MB2(0x8F74), 0x0000, MB2(0x9686),
- MB2(0x8DF0), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8FBA), MB2(0xFAD2), MB2(0x90A5),
- 0x0000, MB2(0xFA63), 0x0000, 0x0000,
- MB2(0x9DE3), MB2(0x9DE1), MB2(0x9DE2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFAD0),
- MB2(0x928B), 0x0000, 0x0000, MB2(0x9E45),
- 0x0000, MB2(0x9DE8), MB2(0x8E9E), MB2(0x8D57), /* 6640 */
- MB2(0x9DE6), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9DE7), 0x0000, MB2(0x9057),
- 0x0000, 0x0000, 0x0000, MB2(0x9DE5),
- 0x0000, 0x0000, MB2(0x8E4E), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFAD6),
- 0x0000, MB2(0xFAD7), 0x0000, 0x0000,
- 0x0000, MB2(0x9DEA), MB2(0x9DE9), MB2(0x9DEE),
- 0x0000, MB2(0xFAD7), MB2(0x9DEF), 0x0000, /* 6660 */
- MB2(0x9DEB), MB2(0xFAD5), MB2(0x8A41), MB2(0x9DEC),
- MB2(0x9DED), MB2(0x94D3), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9581), MB2(0x8C69),
- MB2(0x9DF0), 0x0000, 0x0000, MB2(0xFAD9),
- MB2(0x90B0), 0x0000, MB2(0x8FBB), 0x0000,
- 0x0000, 0x0000, MB2(0x9271), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8BC5), 0x0000, MB2(0x9DF1), /* 6680 */
- MB2(0x9DF5), 0x0000, 0x0000, MB2(0x89C9),
- MB2(0x9DF2), MB2(0x9DF4), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9DF3), 0x0000,
- 0x0000, MB2(0x8F8B), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9267), MB2(0x88C3),
- MB2(0x9DF6), MB2(0xFADA), 0x0000, 0x0000,
- 0x0000, MB2(0x9DF7), 0x0000, 0x0000,
- MB2(0xFADB), 0x0000, MB2(0x92A8), 0x0000, /* 66A0 */
- 0x0000, 0x0000, MB2(0x97EF), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E62),
- 0x0000, 0x0000, MB2(0x95E9), 0x0000,
- 0x0000, 0x0000, MB2(0xFADC), 0x0000,
- MB2(0x965C), 0x0000, 0x0000, 0x0000,
- MB2(0x9E41), MB2(0x9DF9), 0x0000, 0x0000,
- MB2(0x9DFC), 0x0000, MB2(0x9DFB), MB2(0xFADD),
- 0x0000, MB2(0x9DF8), 0x0000, 0x0000, /* 66C0 */
- MB2(0x9E40), 0x0000, 0x0000, MB2(0x93DC),
- 0x0000, MB2(0x9DFA), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9E42), 0x0000,
- 0x0000, MB2(0x8F8C), MB2(0x9E43), 0x0000,
- MB2(0x976A), MB2(0x9498), 0x0000, 0x0000,
- MB2(0x9E44), 0x0000, 0x0000, 0x0000, /* 66E0 */
- 0x0000, 0x0000, MB2(0x9E46), 0x0000,
- 0x0000, MB2(0x9E47), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9E48), 0x0000, MB2(0x8BC8), MB2(0x8967),
- MB2(0x8D58), MB2(0x9E49), 0x0000, MB2(0x9E4A),
- MB2(0x8F91), MB2(0x9182), MB2(0xFADE), MB2(0xFA66),
- MB2(0x99D6), MB2(0x915D), MB2(0x915C), MB2(0x91D6),
- MB2(0x8DC5), 0x0000, 0x0000, MB2(0x98F0), /* 6700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C8E), MB2(0x974C), 0x0000, MB2(0x95FC),
- 0x0000, MB2(0x959E), MB2(0xFADF), MB2(0x9E4B),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8DF1), MB2(0x92BD), MB2(0x9E4C), MB2(0x984E),
- 0x0000, 0x0000, 0x0000, MB2(0x965D),
- 0x0000, MB2(0x92A9), MB2(0x9E4D), MB2(0x8AFA),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6720 */
- 0x0000, 0x0000, MB2(0x9E4E), MB2(0x9E4F),
- MB2(0x96D8), 0x0000, MB2(0x96A2), MB2(0x9696),
- MB2(0x967B), MB2(0x8E44), MB2(0x9E51), 0x0000,
- 0x0000, MB2(0x8EE9), 0x0000, 0x0000,
- MB2(0x9670), 0x0000, MB2(0x9E53), MB2(0x9E56),
- MB2(0x9E55), 0x0000, MB2(0x8AF7), 0x0000,
- 0x0000, MB2(0x8B80), 0x0000, MB2(0x9E52),
- 0x0000, MB2(0x9E54), 0x0000, 0x0000, /* 6740 */
- 0x0000, 0x0000, MB2(0x9E57), 0x0000,
- 0x0000, MB2(0x9099), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x979B), MB2(0x88C7),
- MB2(0x8DDE), MB2(0x91BA), 0x0000, MB2(0x8EDB),
- 0x0000, 0x0000, MB2(0x8FF1), 0x0000,
- 0x0000, MB2(0x9E5A), 0x0000, 0x0000,
- MB2(0x936D), 0x0000, MB2(0x9E58), MB2(0x91A9),
- MB2(0x9E59), MB2(0x8FF0), MB2(0x96DB), MB2(0x9E5B), /* 6760 */
- MB2(0x9E5C), MB2(0x9788), MB2(0xFAE1), 0x0000,
- 0x0000, 0x0000, MB2(0x9E61), 0x0000,
- 0x0000, MB2(0x8D59), 0x0000, MB2(0x9474),
- MB2(0x9E5E), MB2(0x938C), MB2(0x9DDC), MB2(0x9DE0),
- 0x0000, MB2(0x8B6E), 0x0000, MB2(0x9466),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9E60), 0x0000, MB2(0x8FBC), MB2(0x94C2),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6780 */
- 0x0000, MB2(0x9E66), 0x0000, MB2(0x94F8),
- 0x0000, MB2(0x9E5D), 0x0000, MB2(0x9E63),
- MB2(0x9E62), 0x0000, 0x0000, 0x0000,
- MB2(0x90CD), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x968D), 0x0000, MB2(0x97D1),
- 0x0000, 0x0000, MB2(0x9687), 0x0000,
- MB2(0x89CA), MB2(0x8E7D), 0x0000, 0x0000,
- MB2(0x9867), MB2(0x9E65), MB2(0x9095), 0x0000, /* 67A0 */
- 0x0000, 0x0000, MB2(0x9E64), 0x0000,
- 0x0000, MB2(0x9E5F), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8CCD),
- 0x0000, 0x0000, 0x0000, MB2(0x9E6B),
- MB2(0x9E69), 0x0000, MB2(0x89CB), MB2(0x9E67),
- MB2(0x9E6D), MB2(0x9E73), 0x0000, MB2(0xFAE2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFAE4), MB2(0x91C6), 0x0000, 0x0000, /* 67C0 */
- MB2(0x95BF), 0x0000, MB2(0x9E75), 0x0000,
- 0x0000, 0x0000, MB2(0x9541), 0x0000,
- 0x0000, 0x0000, MB2(0x9E74), MB2(0x9490),
- MB2(0x965E), MB2(0x8AB9), 0x0000, MB2(0x90F5),
- MB2(0x8F5F), 0x0000, 0x0000, 0x0000,
- MB2(0x92D1), 0x0000, MB2(0x974D), 0x0000,
- 0x0000, MB2(0x9E70), MB2(0x9E6F), 0x0000,
- 0x0000, 0x0000, MB2(0x9E71), 0x0000, /* 67E0 */
- MB2(0x9E6E), 0x0000, 0x0000, MB2(0x9E76),
- 0x0000, MB2(0x9E6C), 0x0000, 0x0000,
- MB2(0x9E6A), 0x0000, MB2(0x9E72), MB2(0x9E68),
- 0x0000, MB2(0x928C), 0x0000, MB2(0x96F6),
- MB2(0x8EC4), MB2(0x8DF2), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8DB8),
- 0x0000, 0x0000, MB2(0x968F), MB2(0x8A60),
- 0x0000, MB2(0xFAE5), MB2(0x92CC), MB2(0x93C8), /* 6800 */
- MB2(0x8968), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x90F0),
- 0x0000, 0x0000, MB2(0x90B2), MB2(0x8C49),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9E78), 0x0000,
- 0x0000, MB2(0x8D5A), MB2(0x8A9C), 0x0000, /* 6820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9E7A), MB2(0x8A94), MB2(0x9E81),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9E7D), 0x0000,
- MB2(0x90F1), 0x0000, 0x0000, 0x0000,
- MB2(0x8A6A), MB2(0x8DAA), 0x0000, 0x0000,
- MB2(0x8A69), MB2(0x8DCD), 0x0000, 0x0000,
- MB2(0x9E7B), MB2(0x8C85), MB2(0x8C6A), MB2(0x938D), /* 6840 */
- MB2(0xFAE6), 0x0000, MB2(0x9E79), 0x0000,
- MB2(0x88C4), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9E7C), MB2(0x9E7E), 0x0000,
- MB2(0x8BCB), MB2(0x8C4B), MB2(0xFAE3), MB2(0x8ABA),
- MB2(0x8B6A), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9E82), 0x0000, 0x0000,
- MB2(0x8DF7), MB2(0x9691), 0x0000, MB2(0x8E56),
- 0x0000, 0x0000, 0x0000, MB2(0x9E83), /* 6860 */
- 0x0000, 0x0000, 0x0000, MB2(0x954F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9E8F), 0x0000, MB2(0x89B1), MB2(0x9E84),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9E95), MB2(0x9E85),
- 0x0000, MB2(0x97C0), 0x0000, MB2(0x9E8C), /* 6880 */
- 0x0000, MB2(0x947E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9E94), 0x0000, MB2(0x9E87),
- 0x0000, 0x0000, 0x0000, MB2(0x88B2),
- MB2(0x9E89), 0x0000, 0x0000, MB2(0x8D5B),
- 0x0000, 0x0000, 0x0000, MB2(0x9E8B),
- 0x0000, MB2(0x9E8A), 0x0000, MB2(0x9E86),
- MB2(0x9E91), 0x0000, MB2(0x8FBD), 0x0000, /* 68A0 */
- 0x0000, 0x0000, MB2(0x9AEB), MB2(0x8CE6),
- MB2(0x979C), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9E88), 0x0000, MB2(0x92F2),
- MB2(0x8A42), MB2(0x8DAB), 0x0000, MB2(0x9E80),
- 0x0000, MB2(0x9E90), MB2(0x8A81), 0x0000,
- 0x0000, MB2(0x9E8E), MB2(0x9E92), 0x0000,
- MB2(0x938E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 68C0 */
- MB2(0x8AFC), 0x0000, MB2(0x9EB0), 0x0000,
- MB2(0xFA64), MB2(0x96C7), MB2(0x9E97), MB2(0x8AFB),
- 0x0000, MB2(0x9E9E), 0x0000, MB2(0xFAE7),
- 0x0000, 0x0000, MB2(0x965F), 0x0000,
- MB2(0x9E9F), MB2(0x9EA1), 0x0000, MB2(0x9EA5),
- MB2(0x9E99), 0x0000, MB2(0x9249), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x938F),
- MB2(0x9EA9), MB2(0x9E9C), 0x0000, MB2(0x9EA6), /* 68E0 */
- 0x0000, 0x0000, 0x0000, MB2(0x9EA0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9058), MB2(0x9EAA),
- 0x0000, 0x0000, MB2(0x90B1), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9EA8), MB2(0x8ABB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x986F), MB2(0x9E96), 0x0000, 0x0000, /* 6900 */
- MB2(0x9EA4), MB2(0x88D6), 0x0000, 0x0000,
- MB2(0x9E98), 0x0000, 0x0000, MB2(0x96B8),
- MB2(0x9E9D), MB2(0x9041), MB2(0x92C5), MB2(0x9E93),
- 0x0000, 0x0000, MB2(0x9EA3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x909A), MB2(0x9EAD), MB2(0x8A91),
- MB2(0x8C9F), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9EAF), MB2(0x9E9A), MB2(0x9EAE), /* 6920 */
- 0x0000, MB2(0x9EA7), MB2(0x9E9B), 0x0000,
- MB2(0x9EAB), 0x0000, MB2(0x9EAC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9EBD), 0x0000, 0x0000, 0x0000,
- MB2(0x93CC), 0x0000, MB2(0x9EA2), 0x0000,
- 0x0000, MB2(0x9EB9), 0x0000, 0x0000,
- 0x0000, MB2(0x9EBB), 0x0000, MB2(0x92D6),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x976B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9596),
- MB2(0x9EB6), MB2(0x91C8), 0x0000, 0x0000,
- 0x0000, MB2(0x9EBC), MB2(0x915E), 0x0000,
- MB2(0x9EB3), MB2(0x9EC0), MB2(0x9EBF), 0x0000,
- MB2(0x93ED), MB2(0x9EBE), MB2(0x93E8), 0x0000, /* 6960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFAE9), 0x0000, MB2(0x9EC2), MB2(0x9EB5),
- 0x0000, MB2(0x8BC6), MB2(0x9EB8), MB2(0x8F7C),
- 0x0000, 0x0000, 0x0000, MB2(0x9480),
- MB2(0x9EBA), MB2(0x8BC9), 0x0000, MB2(0x9EB2),
- MB2(0x9EB4), MB2(0x9EB1), 0x0000, 0x0000,
- MB2(0x984F), MB2(0x8A79), MB2(0x9EB7), 0x0000,
- 0x0000, MB2(0x9EC1), MB2(0x8A54), 0x0000, /* 6980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8DE5), 0x0000,
- 0x0000, 0x0000, MB2(0x897C), 0x0000,
- 0x0000, MB2(0x9ED2), 0x0000, 0x0000,
- MB2(0x9850), MB2(0x9ED5), 0x0000, 0x0000,
- MB2(0xFAEB), 0x0000, 0x0000, MB2(0x9059),
- MB2(0x9ED4), 0x0000, 0x0000, 0x0000,
- MB2(0x9ED3), 0x0000, 0x0000, 0x0000, /* 69A0 */
- 0x0000, 0x0000, 0x0000, MB2(0x9ED0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EC4), 0x0000,
- 0x0000, MB2(0x9EE1), MB2(0x9EC3), 0x0000,
- MB2(0x9ED6), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9ECE),
- 0x0000, 0x0000, MB2(0x9EC9), MB2(0x9EC6),
- 0x0000, MB2(0x9EC7), 0x0000, MB2(0x9ECF), /* 69C0 */
- 0x0000, 0x0000, 0x0000, MB2(0xEAA0),
- 0x0000, 0x0000, MB2(0x9ECC), MB2(0x8D5C),
- MB2(0x92C6), MB2(0x9184), MB2(0x9ECA), 0x0000,
- MB2(0x9EC5), 0x0000, 0x0000, MB2(0x9EC8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x976C), MB2(0x968A), 0x0000, 0x0000,
- 0x0000, MB2(0x9ECD), MB2(0x9ED7), 0x0000,
- 0x0000, 0x0000, MB2(0xFAEC), 0x0000, /* 69E0 */
- 0x0000, 0x0000, 0x0000, MB2(0x9EDF),
- MB2(0x9ED8), 0x0000, 0x0000, MB2(0x9EE5),
- 0x0000, MB2(0x9EE3), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EDE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9EDD), 0x0000, MB2(0x92CE),
- 0x0000, MB2(0x9185), 0x0000, MB2(0x9EDB),
- 0x0000, 0x0000, MB2(0x9ED9), 0x0000, /* 6A00 */
- 0x0000, MB2(0x9EE0), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EE6), MB2(0x94F3),
- MB2(0x9EEC), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EE7), MB2(0x9EEA),
- MB2(0x9EE4), 0x0000, 0x0000, MB2(0x9294),
- 0x0000, MB2(0x9557), 0x0000, MB2(0x9EDA),
- 0x0000, 0x0000, MB2(0x9EE2), MB2(0x8FBE),
- 0x0000, MB2(0x96CD), MB2(0x9EF6), MB2(0x9EE9), /* 6A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8CA0), MB2(0x89A1), MB2(0x8A7E),
- 0x0000, 0x0000, MB2(0x9ED1), 0x0000,
- MB2(0xFAED), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8FBF), MB2(0x9EEE), 0x0000,
- MB2(0x9EF5), MB2(0x8EF7), MB2(0x8A92), 0x0000,
- 0x0000, MB2(0x924D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6A40 */
- MB2(0x9EEB), 0x0000, MB2(0xFAEF), MB2(0x9EF0),
- MB2(0x9EF4), 0x0000, 0x0000, MB2(0x8BB4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B6B), MB2(0x9EF2), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8B40),
- 0x0000, MB2(0x93C9), MB2(0x9EF1), 0x0000, /* 6A60 */
- 0x0000, 0x0000, MB2(0x9EF3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFAEE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EED), MB2(0xFAF0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9EEF), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFAF1), MB2(0x8A80),
- MB2(0x9268), 0x0000, 0x0000, 0x0000, /* 6A80 */
- MB2(0x9EFA), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9EF8), MB2(0x8CE7), 0x0000,
- MB2(0x9EF7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F40),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9E77), 0x0000, 0x0000, 0x0000,
- MB2(0x9EF9), 0x0000, MB2(0x9EFB), MB2(0x9EFC), /* 6AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F4B), 0x0000,
- MB2(0x9F47), 0x0000, MB2(0x9E8D), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F46),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9F45), 0x0000, 0x0000, MB2(0x9F42),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9EE8), MB2(0x9F44), MB2(0x9F43), /* 6AC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9F49), 0x0000, MB2(0x9845),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F4C), MB2(0x8BF9),
- 0x0000, 0x0000, MB2(0x9F48), MB2(0x9F4A),
- 0x0000, 0x0000, MB2(0xFAF2), 0x0000, /* 6AE0 */
- MB2(0xFAF3), 0x0000, 0x0000, 0x0000,
- MB2(0x94A5), 0x0000, MB2(0x9F4D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F51), MB2(0x9F4E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6B00 */
- MB2(0x9793), MB2(0x9F4F), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9EDC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F52), 0x0000,
- 0x0000, 0x0000, MB2(0x9F53), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8954), 0x0000, MB2(0x9F55),
- MB2(0x8C87), MB2(0x8E9F), 0x0000, MB2(0x8BD3), /* 6B20 */
- 0x0000, 0x0000, 0x0000, MB2(0x89A2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x977E), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F57),
- MB2(0x9F56), MB2(0x9F59), MB2(0x8B5C), 0x0000,
- 0x0000, MB2(0x8BD4), MB2(0x8ABC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F5C), /* 6B40 */
- 0x0000, 0x0000, 0x0000, MB2(0x9F5B),
- 0x0000, MB2(0x9F5D), 0x0000, 0x0000,
- MB2(0x89CC), 0x0000, MB2(0x9256), 0x0000,
- MB2(0x9F5E), 0x0000, 0x0000, MB2(0x8ABD),
- MB2(0x9F60), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9F5F), 0x0000, MB2(0x9F61),
- 0x0000, 0x0000, 0x0000, MB2(0x9F62),
- 0x0000, MB2(0x9F63), MB2(0x8E7E), MB2(0x90B3), /* 6B60 */
- MB2(0x8D9F), 0x0000, MB2(0x9590), 0x0000,
- 0x0000, MB2(0x95E0), MB2(0x9863), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E95),
- 0x0000, 0x0000, 0x0000, MB2(0x8DCE),
- MB2(0x97F0), 0x0000, 0x0000, 0x0000,
- MB2(0x9F64), MB2(0x9F65), 0x0000, MB2(0x8E80),
- 0x0000, 0x0000, 0x0000, MB2(0x9F66),
- MB2(0x9F67), 0x0000, 0x0000, MB2(0x9F69), /* 6B80 */
- MB2(0x9F68), 0x0000, MB2(0x9677), 0x0000,
- 0x0000, MB2(0x8F7D), MB2(0x8EEA), MB2(0x8E63),
- 0x0000, MB2(0x9F6A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9F6C), MB2(0x9042), 0x0000,
- MB2(0x9F6B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F6D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6BA0 */
- MB2(0x9F6E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9F6F), MB2(0x9F70),
- 0x0000, 0x0000, 0x0000, MB2(0x9F71),
- 0x0000, MB2(0x9F73), MB2(0x9F72), MB2(0x9F74),
- MB2(0x89A3), MB2(0x9269), 0x0000, MB2(0x9F75),
- 0x0000, 0x0000, MB2(0x8E45), MB2(0x8A6B),
- MB2(0x9F76), 0x0000, 0x0000, MB2(0x9361),
- MB2(0x9ACA), 0x0000, 0x0000, 0x0000, /* 6BC0 */
- 0x0000, MB2(0x8B42), MB2(0x9F77), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F78),
- 0x0000, MB2(0x95EA), MB2(0x9688), 0x0000,
- 0x0000, 0x0000, MB2(0x93C5), MB2(0x9F79),
- MB2(0x94E4), 0x0000, MB2(0xFAF4), 0x0000,
- MB2(0x94F9), 0x0000, 0x0000, MB2(0x96D1),
- 0x0000, 0x0000, 0x0000, MB2(0x9F7A),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F7C),
- MB2(0x9F7B), 0x0000, 0x0000, MB2(0x9F7E),
- 0x0000, 0x0000, 0x0000, MB2(0x9F7D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9F81), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E81),
- 0x0000, MB2(0x96AF), 0x0000, MB2(0x9F82),
- MB2(0x9F83), 0x0000, 0x0000, MB2(0x8B43),
- 0x0000, 0x0000, 0x0000, MB2(0x9F84),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F86), /* 6C20 */
- MB2(0x9F85), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9085), 0x0000, 0x0000, MB2(0x9558),
- MB2(0x8969), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x94C3), MB2(0xFAF5),
- MB2(0x92F3), MB2(0x8F60), MB2(0x8B81), 0x0000, /* 6C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x94C4), 0x0000,
- MB2(0x8EAC), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9F88), 0x0000, MB2(0x8ABE),
- 0x0000, 0x0000, MB2(0x8998), 0x0000,
- MB2(0xFAF6), MB2(0x93F0), MB2(0x9F87), MB2(0x8D5D),
- MB2(0x9272), 0x0000, MB2(0x9F89), 0x0000, /* 6C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9F91), 0x0000, MB2(0x9F8A), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFAF8),
- MB2(0x91BF), 0x0000, MB2(0x8B82), MB2(0x9F92),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C88), 0x0000,
- 0x0000, MB2(0x8B44), MB2(0x9F90), 0x0000,
- 0x0000, MB2(0x9F8E), MB2(0x9F8B), MB2(0x9780), /* 6C80 */
- 0x0000, 0x0000, MB2(0xFAF7), 0x0000,
- MB2(0x92BE), 0x0000, 0x0000, 0x0000,
- MB2(0x93D7), MB2(0x9F8C), 0x0000, 0x0000,
- MB2(0x9F94), 0x0000, MB2(0x9F93), MB2(0x8C42),
- 0x0000, 0x0000, MB2(0x89AB), 0x0000,
- 0x0000, MB2(0x8DB9), MB2(0x9F8D), MB2(0x9F8F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9676), MB2(0x91F2), 0x0000, /* 6CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9697),
- 0x0000, 0x0000, MB2(0x9F9C), 0x0000,
- 0x0000, MB2(0x9F9D), 0x0000, MB2(0x89CD),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x95A6), MB2(0x96FB), MB2(0x9F9F), MB2(0x8EA1),
- MB2(0x8FC0), MB2(0x9F98), MB2(0x9F9E), MB2(0x8988),
- 0x0000, MB2(0x8BB5), 0x0000, 0x0000, /* 6CC0 */
- MB2(0x9F95), MB2(0x9F9A), 0x0000, 0x0000,
- 0x0000, MB2(0x90F2), MB2(0x9491), 0x0000,
- MB2(0x94E5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9F97),
- 0x0000, MB2(0x9640), 0x0000, MB2(0x9F99),
- 0x0000, MB2(0x9FA2), MB2(0xFAF9), MB2(0x9FA0),
- 0x0000, MB2(0x9F9B), 0x0000, 0x0000,
- 0x0000, MB2(0x9641), MB2(0x9467), MB2(0x8B83), /* 6CE0 */
- 0x0000, MB2(0x9344), 0x0000, 0x0000,
- MB2(0x928D), 0x0000, MB2(0x9FA3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9FA1),
- MB2(0x91D7), MB2(0x9F96), 0x0000, MB2(0x896A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D00 */
- MB2(0xFAFA), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x976D),
- MB2(0x9FAE), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9FAD), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x90F4),
- 0x0000, MB2(0x9FAA), 0x0000, MB2(0x978C),
- 0x0000, 0x0000, MB2(0x93B4), MB2(0x9FA4),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D20 */
- 0x0000, MB2(0x92C3), 0x0000, 0x0000,
- 0x0000, MB2(0x896B), MB2(0x8D5E), MB2(0x9FA7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F46), MB2(0x9FAC),
- 0x0000, MB2(0x9FAB), MB2(0x9FA6), 0x0000,
- MB2(0x9FA9), 0x0000, 0x0000, MB2(0x8A88),
- 0x0000, MB2(0x9FA8), MB2(0x9468), 0x0000,
- 0x0000, MB2(0x97AC), 0x0000, 0x0000, /* 6D40 */
- MB2(0x8FF2), MB2(0x90F3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9FB4), MB2(0x9FB2), 0x0000,
- MB2(0x956C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9FAF), /* 6D60 */
- MB2(0x9FB1), 0x0000, MB2(0x8959), 0x0000,
- 0x0000, MB2(0x8D5F), MB2(0x9851), 0x0000,
- MB2(0x8A5C), 0x0000, MB2(0x9582), MB2(0xFAFC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9781), 0x0000, 0x0000, MB2(0x8A43),
- MB2(0x905A), MB2(0x9FB3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6D80 */
- 0x0000, MB2(0x9FB8), 0x0000, MB2(0xFAFB),
- MB2(0x8FC1), 0x0000, 0x0000, 0x0000,
- MB2(0x974F), 0x0000, MB2(0x9FB5), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9FB0),
- 0x0000, MB2(0x9FB6), MB2(0xFB40), 0x0000,
- 0x0000, MB2(0x97DC), 0x0000, MB2(0x9393),
- MB2(0x93C0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFB41), 0x0000, 0x0000, MB2(0x8A55),
- 0x0000, 0x0000, MB2(0x8974), 0x0000,
- 0x0000, MB2(0x9FBC), 0x0000, 0x0000,
- MB2(0x9FBF), 0x0000, 0x0000, 0x0000,
- MB2(0x97C1), 0x0000, 0x0000, 0x0000,
- MB2(0x9784), 0x0000, 0x0000, 0x0000, /* 6DC0 */
- 0x0000, MB2(0x9FC6), MB2(0x9FC0), MB2(0x9FBD),
- 0x0000, 0x0000, 0x0000, MB2(0x97D2),
- MB2(0x9FC3), 0x0000, 0x0000, MB2(0xFB42),
- 0x0000, MB2(0x8F69), MB2(0x9FC5), 0x0000,
- 0x0000, MB2(0x9FCA), 0x0000, 0x0000,
- MB2(0x9391), MB2(0x9FC8), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9FC2), 0x0000,
- 0x0000, MB2(0x9257), 0x0000, 0x0000, /* 6DE0 */
- MB2(0x9FC9), 0x0000, MB2(0x9FBE), 0x0000,
- MB2(0x9FC4), 0x0000, MB2(0x9FCB), MB2(0x88FA),
- MB2(0x9FC1), 0x0000, MB2(0x9FCC), 0x0000,
- 0x0000, MB2(0x905B), MB2(0xFB44), MB2(0x8F7E),
- 0x0000, MB2(0x95A3), 0x0000, MB2(0x8DAC),
- MB2(0xFB43), MB2(0x9FB9), MB2(0x9FC7), MB2(0x9359),
- MB2(0xFB45), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E00 */
- 0x0000, MB2(0x90B4), 0x0000, MB2(0x8A89),
- MB2(0x8DCF), MB2(0x8FC2), MB2(0x9FBB), MB2(0x8F61),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C6B),
- 0x0000, MB2(0x9FBA), 0x0000, 0x0000,
- 0x0000, MB2(0x9FD0), MB2(0x8F8D), MB2(0x8CB8),
- 0x0000, MB2(0x9FDF), 0x0000, MB2(0x9FD9),
- MB2(0x8B94), MB2(0x936E), 0x0000, MB2(0x9FD4), /* 6E20 */
- MB2(0x9FDD), MB2(0x88AD), MB2(0x8951), MB2(0xFB48),
- 0x0000, MB2(0x89B7), 0x0000, MB2(0x9FD6),
- MB2(0x91AA), MB2(0x9FCD), MB2(0x9FCF), MB2(0x8D60),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9FE0), MB2(0xFB46), MB2(0x9FDB), 0x0000,
- MB2(0xFB49), 0x0000, MB2(0x9FD3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9FDA), /* 6E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96A9), 0x0000,
- 0x0000, MB2(0x9FD8), MB2(0x9FDC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8CCE), 0x0000,
- MB2(0x8FC3), 0x0000, 0x0000, MB2(0x9258),
- MB2(0xFB47), 0x0000, 0x0000, MB2(0x9FD2),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6E60 */
- 0x0000, 0x0000, 0x0000, MB2(0x974E),
- 0x0000, 0x0000, 0x0000, MB2(0x9FD5),
- 0x0000, 0x0000, MB2(0x9FCE), MB2(0x9392),
- 0x0000, 0x0000, MB2(0x9FD1), 0x0000,
- 0x0000, 0x0000, MB2(0x9FD7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9870), MB2(0x8EBC),
- MB2(0x969E), 0x0000, MB2(0x9FE1), 0x0000, /* 6E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x94AC), 0x0000, 0x0000, MB2(0x9FED),
- MB2(0x8CB9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F80), 0x0000,
- MB2(0x9FE3), 0x0000, 0x0000, 0x0000,
- MB2(0x97AD), MB2(0x8D61), 0x0000, MB2(0x9FF0),
- 0x0000, 0x0000, MB2(0x88EC), 0x0000, /* 6EA0 */
- 0x0000, MB2(0x9FEE), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9FE2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9FE8),
- 0x0000, 0x0000, MB2(0x9FEA), 0x0000,
- 0x0000, 0x0000, MB2(0x976E), MB2(0x9FE5),
- 0x0000, 0x0000, MB2(0x934D), 0x0000,
- 0x0000, MB2(0x9FE7), 0x0000, MB2(0xFB4A),
- 0x0000, 0x0000, MB2(0x9FEF), 0x0000, /* 6EC0 */
- MB2(0x9FE9), MB2(0x96C5), 0x0000, 0x0000,
- 0x0000, MB2(0x9FE4), 0x0000, MB2(0x8EA0),
- MB2(0x9FFC), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A8A), 0x0000, MB2(0x9FE6),
- MB2(0x9FEB), MB2(0x9FEC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91EA), MB2(0x91D8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9FF4), 0x0000, 0x0000, MB2(0x9FFA),
- 0x0000, 0x0000, MB2(0x9FF8), 0x0000,
- MB2(0x9348), 0x0000, 0x0000, MB2(0xE042),
- MB2(0x9FF5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9FF6), MB2(0x9FDE),
- 0x0000, MB2(0x8B99), MB2(0x9559), 0x0000, /* 6F00 */
- 0x0000, 0x0000, MB2(0x8EBD), 0x0000,
- 0x0000, MB2(0x8D97), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9852),
- 0x0000, MB2(0x9FF2), 0x0000, MB2(0xE041),
- MB2(0x8989), MB2(0x9186), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9499), 0x0000, MB2(0x8ABF), MB2(0x97F8), /* 6F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x969F),
- MB2(0x92D0), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9FF9), MB2(0x9FFB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9151), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE040), MB2(0x9FF7),
- 0x0000, MB2(0x9FF1), 0x0000, 0x0000, /* 6F40 */
- 0x0000, MB2(0x8AC1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C89), 0x0000, 0x0000, 0x0000,
- MB2(0xE04E), 0x0000, 0x0000, MB2(0xE049),
- MB2(0x90F6), 0x0000, 0x0000, MB2(0x8A83),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 6F60 */
- MB2(0x8F81), 0x0000, MB2(0xE052), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE04B), MB2(0x92AA), MB2(0xE048),
- MB2(0x92D7), 0x0000, 0x0000, 0x0000,
- MB2(0xE06B), 0x0000, 0x0000, 0x0000,
- MB2(0xE045), 0x0000, MB2(0xE044), 0x0000,
- MB2(0xE04D), 0x0000, 0x0000, 0x0000,
- MB2(0xE047), MB2(0xE046), MB2(0xE04C), 0x0000, /* 6F80 */
- MB2(0x909F), 0x0000, MB2(0xE043), 0x0000,
- MB2(0xFB4B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE04F), 0x0000,
- 0x0000, MB2(0xE050), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8AC0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE055), 0x0000, MB2(0xE054), /* 6FA0 */
- MB2(0xE056), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE059), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9362), 0x0000, MB2(0xE053),
- 0x0000, MB2(0xFB4C), 0x0000, 0x0000,
- 0x0000, MB2(0xE057), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C83), MB2(0x91F7), MB2(0xE051), MB2(0x945A), /* 6FC0 */
- 0x0000, 0x0000, MB2(0xE058), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE05D), MB2(0xE05B), 0x0000, 0x0000,
- MB2(0xE05E), 0x0000, 0x0000, MB2(0xE061),
- 0x0000, 0x0000, 0x0000, MB2(0xE05A),
- MB2(0x8D8A), MB2(0x9447), 0x0000, 0x0000, /* 6FE0 */
- MB2(0x9FB7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9794),
- MB2(0xE05C), 0x0000, MB2(0xE060), MB2(0x91F3),
- 0x0000, MB2(0xE05F), 0x0000, MB2(0xE04A),
- 0x0000, MB2(0xFB4D), MB2(0xE889), 0x0000,
- 0x0000, 0x0000, MB2(0xE064), 0x0000,
- 0x0000, 0x0000, MB2(0xE068), 0x0000,
- 0x0000, MB2(0xE066), 0x0000, 0x0000, /* 7000 */
- 0x0000, MB2(0xFB4E), 0x0000, MB2(0xFB4F),
- 0x0000, MB2(0xE062), 0x0000, MB2(0xE063),
- 0x0000, 0x0000, 0x0000, MB2(0xE067),
- 0x0000, MB2(0xE065), 0x0000, 0x0000,
- 0x0000, MB2(0x956D), 0x0000, 0x0000,
- MB2(0xE06D), 0x0000, MB2(0xE06A), MB2(0xE069),
- 0x0000, MB2(0xE06C), MB2(0x93D2), MB2(0xE06E),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7020 */
- 0x0000, 0x0000, MB2(0x9295), MB2(0x91EB),
- MB2(0xFB50), 0x0000, 0x0000, 0x0000,
- MB2(0x90A3), 0x0000, 0x0000, 0x0000,
- MB2(0xE06F), 0x0000, MB2(0xE071), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE070), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9FF3), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE072), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x93E5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE073), /* 7060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x89CE),
- 0x0000, 0x0000, 0x0000, MB2(0x9394),
- MB2(0x8A44), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B84), 0x0000, 0x0000, 0x0000,
- MB2(0x8EDC), MB2(0x8DD0), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7080 */
- 0x0000, MB2(0xFB51), 0x0000, 0x0000,
- 0x0000, MB2(0x9846), MB2(0x9086), 0x0000,
- 0x0000, 0x0000, MB2(0x898A), 0x0000,
- 0x0000, 0x0000, MB2(0xE075), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE074), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFB52),
- MB2(0xE078), MB2(0x9259), MB2(0xE07B), MB2(0xE076),
- 0x0000, 0x0000, 0x0000, MB2(0xE07A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE079), MB2(0x935F), MB2(0x88D7), MB2(0xFA62),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x97F3), 0x0000, 0x0000, MB2(0xE07D),
- 0x0000, 0x0000, 0x0000, MB2(0x8947),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE080), 0x0000, 0x0000,
- 0x0000, MB2(0xE07E), 0x0000, MB2(0xE07C),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 70E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE077), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9642), 0x0000, 0x0000,
- 0x0000, MB2(0xE082), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7100 */
- MB2(0xFB54), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE081), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFB53),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x898B), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE084), MB2(0x95B0), 0x0000,
- MB2(0xE083), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x96B3), 0x0000, 0x0000, /* 7120 */
- 0x0000, 0x0000, MB2(0x8FC5), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9152), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8FC4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7140 */
- 0x0000, 0x0000, MB2(0xFB56), MB2(0xFB57),
- 0x0000, MB2(0x97F9), 0x0000, 0x0000,
- MB2(0xE08A), 0x0000, MB2(0x90F7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE086), MB2(0xE08B), 0x0000,
- 0x0000, MB2(0x898C), 0x0000, 0x0000,
- MB2(0xFB55), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE089), 0x0000, /* 7160 */
- MB2(0x9481), MB2(0xE085), MB2(0xE088), MB2(0x8FC6),
- 0x0000, MB2(0x94CF), 0x0000, 0x0000,
- MB2(0xE08C), 0x0000, MB2(0x8ECF), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x90F8), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7180 */
- MB2(0xE08F), 0x0000, 0x0000, 0x0000,
- MB2(0xE087), 0x0000, MB2(0x8C46), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE08D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x976F), MB2(0xE090), 0x0000, 0x0000,
- 0x0000, MB2(0xEAA4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F6E),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 71A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE091), 0x0000, 0x0000, 0x0000,
- MB2(0xE092), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x944D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE094), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE095), 0x0000,
- 0x0000, MB2(0xFB59), 0x0000, MB2(0x9452), /* 71C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9395), MB2(0xE097), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE099), 0x0000,
- MB2(0x97D3), 0x0000, MB2(0xE096), 0x0000,
- MB2(0xE098), MB2(0x898D), 0x0000, MB2(0xE093),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9A7A),
- MB2(0xE09A), 0x0000, 0x0000, 0x0000, /* 71E0 */
- 0x0000, MB2(0x9187), MB2(0x8E57), MB2(0xE09C),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE09B), MB2(0x9043), MB2(0x99D7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE09D), 0x0000, 0x0000,
- 0x0000, MB2(0xE09F), 0x0000, MB2(0xE08E),
- MB2(0xE09E), 0x0000, MB2(0xFB5A), MB2(0xE0A0),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7200 */
- 0x0000, 0x0000, MB2(0x949A), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE0A1), 0x0000, 0x0000,
- MB2(0xE0A2), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0A3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0A4), 0x0000, MB2(0x92DC), 0x0000,
- MB2(0xE0A6), MB2(0xE0A5), 0x0000, 0x0000,
- MB2(0xE0A7), 0x0000, MB2(0xE0A8), 0x0000,
- 0x0000, MB2(0x8EDD), MB2(0x9583), 0x0000,
- 0x0000, 0x0000, MB2(0x96EA), MB2(0xE0A9),
- MB2(0xE0AA), MB2(0x9175), MB2(0x8EA2), MB2(0xE0AB),
- MB2(0xE0AC), 0x0000, 0x0000, 0x0000, /* 7240 */
- 0x0000, 0x0000, MB2(0xE0AD), MB2(0x95D0),
- MB2(0x94C5), 0x0000, 0x0000, MB2(0xE0AE),
- MB2(0x9476), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x92AB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0AF), MB2(0x89E5), 0x0000, MB2(0x8B8D),
- 0x0000, MB2(0x96C4), 0x0000, MB2(0x96B4),
- 0x0000, MB2(0x89B2), MB2(0x9853), 0x0000, /* 7260 */
- 0x0000, 0x0000, 0x0000, MB2(0x9671),
- 0x0000, MB2(0x95A8), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x90B5), 0x0000,
- MB2(0xE0B0), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x93C1), 0x0000, 0x0000,
- 0x0000, MB2(0x8CA1), MB2(0xE0B1), 0x0000,
- MB2(0x8DD2), MB2(0xE0B3), MB2(0xE0B2), 0x0000, /* 7280 */
- 0x0000, 0x0000, 0x0000, MB2(0xE0B4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0B5), 0x0000,
- 0x0000, 0x0000, MB2(0xE0B6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B5D), 0x0000, MB2(0xE0B7), 0x0000, /* 72A0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE0B8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8CA2), 0x0000, 0x0000, MB2(0x94C6),
- 0x0000, MB2(0xFB5B), MB2(0xE0BA), 0x0000,
- 0x0000, 0x0000, MB2(0x8FF3), 0x0000,
- 0x0000, MB2(0xE0B9), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFB5C), 0x0000,
- 0x0000, 0x0000, MB2(0x8BB6), MB2(0xE0BB), /* 72C0 */
- MB2(0xE0BD), 0x0000, MB2(0xE0BC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0BE), 0x0000,
- MB2(0x8CCF), 0x0000, MB2(0xE0BF), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8BE7),
- 0x0000, MB2(0x915F), 0x0000, MB2(0x8D9D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0C1), MB2(0xE0C2), MB2(0xE0C0), 0x0000, /* 72E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8EEB), 0x0000, 0x0000,
- MB2(0x93C6), MB2(0x8BB7), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0C4),
- MB2(0x924B), MB2(0xE0C3), 0x0000, 0x0000,
- MB2(0x9854), MB2(0x9482), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0C7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0C9), MB2(0xE0C6),
- 0x0000, 0x0000, 0x0000, MB2(0x96D2),
- MB2(0xE0C8), MB2(0xE0CA), 0x0000, MB2(0x97C2),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7320 */
- MB2(0xFB5D), MB2(0xE0CE), 0x0000, 0x0000,
- 0x0000, MB2(0xE0CD), MB2(0x9296), MB2(0x944C),
- 0x0000, 0x0000, MB2(0x8CA3), MB2(0xE0CC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0CB), 0x0000, MB2(0x9750), MB2(0x9751),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0CF), MB2(0x898E),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7340 */
- MB2(0x8D96), MB2(0x8E82), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0D0), MB2(0xE0D1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0D3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F62), /* 7360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0D5), 0x0000, MB2(0xE0D4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0D6), 0x0000, MB2(0x8A6C), 0x0000,
- 0x0000, MB2(0xE0D8), 0x0000, MB2(0xFB5F),
- MB2(0xE0D7), 0x0000, MB2(0xE0DA), MB2(0xE0D9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7380 */
- MB2(0x8CBA), 0x0000, 0x0000, MB2(0x97A6),
- 0x0000, MB2(0x8BCA), 0x0000, MB2(0x89A4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8BE8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 73A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8ADF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x97E6), MB2(0xE0DC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0DE),
- 0x0000, MB2(0xFB60), 0x0000, 0x0000,
- MB2(0xE0DF), 0x0000, MB2(0x89CF), 0x0000, /* 73C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0DB), MB2(0xFB61), MB2(0x8E58), 0x0000,
- 0x0000, MB2(0x92BF), MB2(0xE0DD), 0x0000,
- 0x0000, 0x0000, MB2(0xFB64), 0x0000,
- 0x0000, 0x0000, MB2(0xFB62), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0E2), 0x0000,
- MB2(0x8EEC), 0x0000, 0x0000, MB2(0xFB63), /* 73E0 */
- 0x0000, MB2(0xE0E0), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C5D), 0x0000,
- 0x0000, MB2(0x94C7), MB2(0xE0E1), 0x0000,
- 0x0000, MB2(0xE0FC), 0x0000, 0x0000,
- 0x0000, MB2(0xFB66), 0x0000, 0x0000,
- MB2(0xE0E7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8CBB), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8B85), /* 7400 */
- 0x0000, MB2(0xE0E4), MB2(0x979D), MB2(0xFB65),
- 0x0000, MB2(0x97AE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x91F4), 0x0000, /* 7420 */
- 0x0000, MB2(0xE0E6), MB2(0xFB67), 0x0000,
- 0x0000, MB2(0xFB69), MB2(0xFB68), 0x0000,
- 0x0000, 0x0000, MB2(0xFB6A), 0x0000,
- 0x0000, 0x0000, MB2(0xE0E8), MB2(0x97D4),
- MB2(0x8BD5), MB2(0x94FA), MB2(0x9469), 0x0000,
- 0x0000, 0x0000, MB2(0xE0E9), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0EB),
- 0x0000, MB2(0xE0EE), 0x0000, 0x0000, /* 7440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE0EA), 0x0000, 0x0000,
- 0x0000, MB2(0xE0ED), MB2(0x8CE8), MB2(0x896C),
- MB2(0xE0EF), 0x0000, MB2(0x9090), MB2(0xE0EC),
- MB2(0x97DA), 0x0000, MB2(0xFB6B), MB2(0xE0F2), /* 7460 */
- MB2(0xEAA2), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE0F0), MB2(0xE0F3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0E5),
- MB2(0xE0F1), 0x0000, 0x0000, MB2(0x8DBA),
- 0x0000, 0x0000, MB2(0xE0F4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0F5), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x979E), /* 7480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFB6C), 0x0000, MB2(0xE0F6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0F7), MB2(0xFB6D),
- 0x0000, 0x0000, MB2(0xE0E3), 0x0000, /* 74A0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE0F8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8AC2), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8EA3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 74C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE0F9), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE0FA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE0FB), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x895A), 0x0000, 0x0000, 0x0000,
- MB2(0xE140), 0x0000, MB2(0x955A), MB2(0xE141), /* 74E0 */
- 0x0000, 0x0000, MB2(0x8AA2), MB2(0xE142),
- 0x0000, MB2(0xE143), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE144), 0x0000,
- MB2(0xE146), MB2(0xE147), MB2(0xE145), 0x0000,
- 0x0000, 0x0000, MB2(0x9572), MB2(0xE149),
- MB2(0xE148), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFB6E), 0x0000, MB2(0xE14B), /* 7500 */
- MB2(0xE14A), MB2(0xE14C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE14D), MB2(0xE14F), MB2(0xE14E), 0x0000,
- 0x0000, MB2(0x8D99), 0x0000, MB2(0xE151),
- 0x0000, MB2(0xE150), 0x0000, 0x0000,
- MB2(0x8AC3), 0x0000, MB2(0x9072), 0x0000,
- MB2(0x935B), 0x0000, MB2(0xE152), MB2(0x90B6),
- 0x0000, 0x0000, 0x0000, MB2(0x8E59), /* 7520 */
- 0x0000, MB2(0x8999), MB2(0xE153), 0x0000,
- MB2(0x9770), 0x0000, 0x0000, MB2(0x95E1),
- MB2(0xE154), 0x0000, 0x0000, MB2(0xFAA8),
- MB2(0x9363), MB2(0x9752), MB2(0x8D62), MB2(0x905C),
- 0x0000, 0x0000, 0x0000, MB2(0x926A),
- MB2(0x99B2), 0x0000, MB2(0x92AC), MB2(0x89E6),
- MB2(0xE155), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7540 */
- MB2(0xE156), 0x0000, MB2(0xE15B), 0x0000,
- 0x0000, MB2(0xE159), MB2(0xE158), MB2(0x9DC0),
- MB2(0x8A45), MB2(0xE157), 0x0000, MB2(0x88D8),
- 0x0000, MB2(0x94A8), 0x0000, 0x0000,
- MB2(0x94C8), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x97AF), MB2(0xE15C), MB2(0xE15A),
- MB2(0x927B), MB2(0x90A4), 0x0000, 0x0000,
- MB2(0x94A9), 0x0000, MB2(0x954C), 0x0000, /* 7560 */
- MB2(0xE15E), MB2(0x97AA), MB2(0x8C6C), MB2(0xE15F),
- 0x0000, MB2(0xE15D), MB2(0x94D4), MB2(0xE160),
- 0x0000, MB2(0xE161), 0x0000, MB2(0xFB6F),
- MB2(0x88D9), 0x0000, 0x0000, MB2(0x8FF4),
- MB2(0xE166), 0x0000, MB2(0xE163), MB2(0x93EB),
- MB2(0xE162), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8B45),
- 0x0000, 0x0000, MB2(0xE169), 0x0000, /* 7580 */
- 0x0000, 0x0000, MB2(0xE164), MB2(0xE165),
- 0x0000, MB2(0xE168), MB2(0xE167), MB2(0x9544),
- 0x0000, 0x0000, MB2(0x9161), MB2(0x9160),
- 0x0000, MB2(0x8B5E), 0x0000, 0x0000,
- MB2(0xE16A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE16B), 0x0000,
- 0x0000, MB2(0xE16C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE16E), /* 75A0 */
- 0x0000, MB2(0xE16D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8975),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE176), MB2(0x94E6), MB2(0xE170),
- 0x0000, MB2(0xE172), 0x0000, 0x0000,
- MB2(0xE174), MB2(0x905D), 0x0000, 0x0000,
- MB2(0xE175), MB2(0xE173), MB2(0x8EBE), 0x0000,
- 0x0000, 0x0000, MB2(0xE16F), MB2(0xE171), /* 75C0 */
- 0x0000, MB2(0x9561), 0x0000, MB2(0x8FC7),
- 0x0000, 0x0000, MB2(0xE178), 0x0000,
- 0x0000, MB2(0xE177), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE179), 0x0000,
- MB2(0x8EA4), MB2(0x8DAD), 0x0000, 0x0000,
- MB2(0x9397), MB2(0xE17A), 0x0000, MB2(0x92C9),
- 0x0000, 0x0000, MB2(0xE17C), 0x0000,
- 0x0000, 0x0000, MB2(0x979F), MB2(0xE17B), /* 75E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9189), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE182), 0x0000, MB2(0xE184), MB2(0xE185),
- MB2(0x9273), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE183), 0x0000,
- MB2(0xE180), 0x0000, MB2(0xE17D), MB2(0xE17E),
- 0x0000, MB2(0xE181), 0x0000, 0x0000, /* 7600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE188), 0x0000, MB2(0xE186),
- 0x0000, MB2(0xE187), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE189),
- MB2(0xE18B), MB2(0xE18C), MB2(0xE18D), 0x0000, /* 7620 */
- MB2(0xE18E), 0x0000, 0x0000, MB2(0xE18A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE190), 0x0000, 0x0000, 0x0000,
- MB2(0xE18F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE191),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x97C3), 0x0000, /* 7640 */
- 0x0000, 0x0000, MB2(0xE194), MB2(0xE192),
- MB2(0xE193), 0x0000, 0x0000, 0x0000,
- MB2(0x8AE0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96FC), 0x0000,
- 0x0000, 0x0000, MB2(0x95C8), 0x0000,
- MB2(0xE196), 0x0000, 0x0000, 0x0000,
- MB2(0xE195), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE197), MB2(0xE198), 0x0000, /* 7660 */
- 0x0000, 0x0000, 0x0000, MB2(0xE19C),
- MB2(0xE199), MB2(0xE19A), MB2(0xE19B), 0x0000,
- MB2(0xE19D), 0x0000, 0x0000, 0x0000,
- MB2(0xE19E), 0x0000, MB2(0xE19F), 0x0000,
- 0x0000, 0x0000, MB2(0xE1A0), 0x0000,
- MB2(0xE1A1), 0x0000, MB2(0x94AD), MB2(0x936F),
- MB2(0xE1A2), MB2(0x9492), MB2(0x9553), 0x0000,
- MB2(0xE1A3), 0x0000, MB2(0xFB70), MB2(0xE1A4), /* 7680 */
- MB2(0x9349), 0x0000, MB2(0x8A46), MB2(0x8D63),
- MB2(0xE1A5), 0x0000, 0x0000, MB2(0xE1A6),
- 0x0000, 0x0000, MB2(0xE1A7), 0x0000,
- MB2(0x8E48), 0x0000, 0x0000, MB2(0xE1A9),
- 0x0000, 0x0000, MB2(0xE1A8), 0x0000,
- 0x0000, MB2(0xE1AA), MB2(0xE1AB), MB2(0xFB73),
- MB2(0xFB71), 0x0000, MB2(0xFB72), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 76A0 */
- 0x0000, 0x0000, MB2(0xFB74), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x94E7), 0x0000,
- MB2(0xE1AC), 0x0000, 0x0000, 0x0000,
- MB2(0xE1AD), 0x0000, 0x0000, MB2(0xEA89),
- MB2(0xE1AE), MB2(0xE1AF), MB2(0xE1B0), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E4D),
- 0x0000, 0x0000, MB2(0xE1B1), MB2(0x9475), /* 76C0 */
- 0x0000, 0x0000, MB2(0x967E), 0x0000,
- MB2(0x896D), 0x0000, MB2(0x8976), 0x0000,
- 0x0000, MB2(0xE1B2), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE1B4), 0x0000,
- 0x0000, 0x0000, MB2(0xE1B3), MB2(0x9390),
- 0x0000, 0x0000, 0x0000, MB2(0x90B7),
- MB2(0x9F58), 0x0000, MB2(0xE1B5), MB2(0x96BF),
- 0x0000, MB2(0xE1B6), 0x0000, MB2(0x8AC4), /* 76E0 */
- MB2(0x94D5), MB2(0xE1B7), 0x0000, MB2(0xE1B8),
- 0x0000, 0x0000, MB2(0xE1B9), 0x0000,
- 0x0000, 0x0000, MB2(0x96DA), 0x0000,
- 0x0000, 0x0000, MB2(0x96D3), 0x0000,
- MB2(0x92BC), 0x0000, 0x0000, 0x0000,
- MB2(0x918A), 0x0000, 0x0000, MB2(0xE1BB),
- 0x0000, 0x0000, MB2(0x8F82), 0x0000,
- 0x0000, MB2(0x8FC8), 0x0000, 0x0000, /* 7700 */
- MB2(0xE1BE), 0x0000, 0x0000, MB2(0xE1BD),
- MB2(0xE1BC), MB2(0x94FB), 0x0000, MB2(0x8AC5),
- MB2(0x8CA7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1C4),
- 0x0000, 0x0000, MB2(0xE1C1), MB2(0x905E),
- MB2(0x96B0), 0x0000, 0x0000, 0x0000, /* 7720 */
- MB2(0xE1C0), MB2(0xE1C2), MB2(0xE1C3), 0x0000,
- 0x0000, MB2(0xE1BF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1C5),
- MB2(0xE1C6), 0x0000, MB2(0x92AD), 0x0000,
- MB2(0x8AE1), 0x0000, 0x0000, 0x0000,
- MB2(0x9285), 0x0000, 0x0000, 0x0000, /* 7740 */
- 0x0000, 0x0000, MB2(0xFB76), MB2(0xE1C7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE1C8), MB2(0xE1CB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9087), 0x0000, MB2(0x93C2), /* 7760 */
- 0x0000, MB2(0xE1CC), MB2(0x9672), 0x0000,
- MB2(0xE1C9), 0x0000, 0x0000, MB2(0xE1CA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE1CF), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE1CE), MB2(0xE1CD),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1D1),
- 0x0000, 0x0000, MB2(0xE1D0), 0x0000,
- 0x0000, MB2(0xE1D2), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE1D4), 0x0000,
- MB2(0xE1D3), 0x0000, 0x0000, 0x0000, /* 77A0 */
- 0x0000, MB2(0x95CB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8F75), MB2(0x97C4), 0x0000, 0x0000,
- MB2(0xE1D5), 0x0000, 0x0000, MB2(0x93B5),
- 0x0000, 0x0000, MB2(0xE1D6), 0x0000,
- 0x0000, MB2(0xE1D7), 0x0000, MB2(0xE1DB),
- MB2(0xE1D9), MB2(0xE1DA), 0x0000, MB2(0xE1D8),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 77C0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE1DC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE1DD), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1DE),
- 0x0000, 0x0000, MB2(0xE1DF), MB2(0x96B5),
- MB2(0xE1E0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96EE), MB2(0xE1E1), /* 77E0 */
- 0x0000, MB2(0x926D), 0x0000, MB2(0x948A),
- 0x0000, MB2(0x8BE9), 0x0000, 0x0000,
- 0x0000, MB2(0x925A), MB2(0xE1E2), MB2(0x8BB8),
- 0x0000, 0x0000, 0x0000, MB2(0x90CE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE1E3), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8DBB), 0x0000, /* 7800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE1E4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE1E5), 0x0000,
- MB2(0x8CA4), MB2(0x8DD3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE1E7), MB2(0xFB78), 0x0000, 0x0000, /* 7820 */
- 0x0000, MB2(0x9375), MB2(0x8DD4), MB2(0x8B6D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9643), 0x0000,
- MB2(0x946A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9376), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8D7B),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7840 */
- 0x0000, MB2(0xE1E9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFB79), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8FC9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7860 */
- MB2(0xFB7A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x97B0),
- MB2(0x8D64), 0x0000, 0x0000, MB2(0x8CA5),
- 0x0000, 0x0000, MB2(0x94A1), 0x0000,
- MB2(0xE1EB), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFB7B), 0x0000,
- MB2(0xE1ED), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8CE9), 0x0000, 0x0000, /* 7880 */
- 0x0000, 0x0000, MB2(0xE1EC), MB2(0x92F4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE1EF), MB2(0x8A56), MB2(0xE1EA), 0x0000,
- 0x0000, MB2(0x94E8), 0x0000, MB2(0x894F),
- 0x0000, MB2(0x8DEA), 0x0000, MB2(0x9871),
- 0x0000, 0x0000, MB2(0xE1EE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1F0), /* 78A0 */
- 0x0000, 0x0000, 0x0000, MB2(0x95C9),
- 0x0000, MB2(0x90D7), MB2(0xE1F2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE1F3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE1F1), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8A6D), 0x0000,
- MB2(0xE1F9), 0x0000, MB2(0xE1F8), 0x0000,
- 0x0000, MB2(0x8EA5), 0x0000, 0x0000, /* 78C0 */
- 0x0000, MB2(0xE1FA), MB2(0xE1F5), 0x0000,
- 0x0000, 0x0000, MB2(0xE1FB), MB2(0xE1F6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x94D6), MB2(0xE1F4), 0x0000, 0x0000,
- MB2(0xE1F7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE241), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 78E0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE240),
- MB2(0x9681), 0x0000, 0x0000, 0x0000,
- MB2(0xE1FC), 0x0000, 0x0000, MB2(0x88E9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE243), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE242), 0x0000, 0x0000,
- 0x0000, MB2(0x8FCA), 0x0000, 0x0000, /* 7900 */
- 0x0000, 0x0000, 0x0000, MB2(0xE244),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9162), 0x0000,
- 0x0000, MB2(0xE246), MB2(0xE245), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE247), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7920 */
- 0x0000, 0x0000, MB2(0xE1E6), 0x0000,
- 0x0000, 0x0000, MB2(0xE1E8), MB2(0xE249),
- MB2(0xE248), 0x0000, 0x0000, 0x0000,
- MB2(0xFB7C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8EA6), 0x0000,
- MB2(0x97E7), 0x0000, MB2(0x8ED0), 0x0000,
- MB2(0xE24A), MB2(0x8C56), 0x0000, 0x0000, /* 7940 */
- 0x0000, 0x0000, 0x0000, MB2(0x8B5F),
- MB2(0x8B46), MB2(0x8E83), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9753), 0x0000, 0x0000, MB2(0xE250),
- 0x0000, MB2(0xE24F), MB2(0x9163), MB2(0xE24C),
- 0x0000, 0x0000, MB2(0xE24E), 0x0000,
- 0x0000, MB2(0x8F6A), MB2(0x905F), MB2(0xE24D),
- MB2(0xE24B), 0x0000, MB2(0x9449), 0x0000, /* 7960 */
- 0x0000, MB2(0x8FCB), 0x0000, 0x0000,
- MB2(0x955B), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8DD5), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9398),
- 0x0000, 0x0000, MB2(0xE251), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE252),
- MB2(0xE268), MB2(0x8BD6), 0x0000, 0x0000, /* 7980 */
- MB2(0x985C), MB2(0x9154), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE253), 0x0000,
- 0x0000, MB2(0x89D0), MB2(0x92F5), MB2(0x959F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFB81), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFB83),
- 0x0000, MB2(0xE254), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 79A0 */
- 0x0000, 0x0000, MB2(0x8B9A), MB2(0xE255),
- 0x0000, 0x0000, MB2(0xE257), 0x0000,
- 0x0000, 0x0000, MB2(0xE258), 0x0000,
- MB2(0x9448), 0x0000, 0x0000, MB2(0xE259),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE25A), MB2(0xE25B), 0x0000,
- 0x0000, MB2(0x8BD7), MB2(0x89D1), MB2(0x93C3),
- MB2(0x8F47), MB2(0x8E84), 0x0000, 0x0000, /* 79C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE25C), 0x0000, MB2(0x8F48),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x89C8), MB2(0x9562), 0x0000,
- 0x0000, MB2(0xE25D), 0x0000, 0x0000,
- MB2(0x94E9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9164),
- 0x0000, MB2(0xE260), 0x0000, MB2(0xE261), /* 79E0 */
- MB2(0x9489), 0x0000, MB2(0x9060), MB2(0xE25E),
- 0x0000, MB2(0x9281), 0x0000, 0x0000,
- MB2(0xE25F), 0x0000, 0x0000, 0x0000,
- MB2(0x8FCC), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x88DA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B48), 0x0000, 0x0000, 0x0000, /* 7A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE262), 0x0000, 0x0000, MB2(0x92F6),
- 0x0000, MB2(0xE263), MB2(0x90C5), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x96AB), 0x0000, 0x0000, MB2(0x9542),
- MB2(0xE264), MB2(0xE265), MB2(0x9274), 0x0000,
- MB2(0x97C5), 0x0000, 0x0000, MB2(0xE267),
- MB2(0xE266), 0x0000, 0x0000, 0x0000, /* 7A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8EED), 0x0000,
- 0x0000, MB2(0xE269), MB2(0x88EE), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE26C),
- 0x0000, 0x0000, 0x0000, MB2(0xE26A),
- MB2(0x89D2), MB2(0x8C6D), MB2(0xE26B), MB2(0x8D65),
- MB2(0x8D92), 0x0000, MB2(0x95E4), MB2(0xE26D), /* 7A40 */
- 0x0000, 0x0000, MB2(0x9673), 0x0000,
- 0x0000, MB2(0xE26F), 0x0000, 0x0000,
- 0x0000, MB2(0x90CF), MB2(0x896E), MB2(0x89B8),
- MB2(0x88AA), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE26E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE270), MB2(0xE271), MB2(0x8FF5), /* 7A60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE272), 0x0000, MB2(0x8A6E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE274), 0x0000, 0x0000, 0x0000,
- MB2(0x8C8A), 0x0000, MB2(0x8B86), 0x0000,
- 0x0000, MB2(0xE275), MB2(0x8BF3), 0x0000,
- 0x0000, MB2(0xE276), 0x0000, MB2(0x90FA),
- 0x0000, MB2(0x93CB), 0x0000, MB2(0x90DE), /* 7A80 */
- MB2(0x8DF3), 0x0000, 0x0000, 0x0000,
- MB2(0xE277), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9282), MB2(0x918B),
- 0x0000, MB2(0xE279), MB2(0xE27B), MB2(0xE278),
- MB2(0xE27A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C41),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE27C), MB2(0x8C45), 0x0000,
- 0x0000, 0x0000, MB2(0x8B87), MB2(0x9771),
- MB2(0xE27E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE280), 0x0000,
- 0x0000, 0x0000, MB2(0x894D), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE283),
- 0x0000, 0x0000, 0x0000, MB2(0x8A96), /* 7AC0 */
- MB2(0xE282), MB2(0xE281), 0x0000, MB2(0xE285),
- MB2(0xE27D), 0x0000, MB2(0xE286), MB2(0x97A7),
- 0x0000, MB2(0xE287), 0x0000, MB2(0xE288),
- 0x0000, MB2(0xFB84), MB2(0x9AF2), MB2(0xE28A),
- 0x0000, MB2(0xE289), 0x0000, 0x0000,
- 0x0000, MB2(0xE28B), MB2(0xE28C), 0x0000,
- MB2(0x97B3), MB2(0xE28D), 0x0000, MB2(0xE8ED),
- MB2(0x8FCD), MB2(0xE28E), MB2(0xE28F), MB2(0x8F76), /* 7AE0 */
- 0x0000, MB2(0x93B6), MB2(0xE290), MB2(0xFB85),
- 0x0000, 0x0000, MB2(0x9247), MB2(0xFB87),
- 0x0000, MB2(0xE291), 0x0000, MB2(0x925B),
- MB2(0xE292), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8BA3), 0x0000,
- MB2(0x995E), MB2(0x927C), MB2(0x8EB1), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8AC6),
- 0x0000, 0x0000, MB2(0xE293), 0x0000, /* 7B00 */
- MB2(0xE2A0), 0x0000, MB2(0xE296), 0x0000,
- MB2(0x8B88), 0x0000, MB2(0xE295), MB2(0xE2A2),
- 0x0000, 0x0000, 0x0000, MB2(0xE294),
- 0x0000, MB2(0x8FCE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE298), MB2(0xE299), 0x0000, MB2(0x934A),
- 0x0000, 0x0000, MB2(0xE29A), 0x0000,
- MB2(0x8A7D), 0x0000, 0x0000, 0x0000, /* 7B20 */
- 0x0000, MB2(0x9079), MB2(0x9584), 0x0000,
- MB2(0xE29C), 0x0000, 0x0000, 0x0000,
- MB2(0x91E6), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE297),
- 0x0000, MB2(0xE29B), MB2(0xE29D), 0x0000,
- 0x0000, MB2(0x8DF9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B40 */
- 0x0000, MB2(0xE2A4), MB2(0x954D), 0x0000,
- MB2(0x94A4), MB2(0x9399), 0x0000, MB2(0x8BD8),
- MB2(0xE2A3), MB2(0xE2A1), 0x0000, MB2(0x94B3),
- MB2(0xE29E), MB2(0x927D), MB2(0x939B), 0x0000,
- MB2(0x939A), 0x0000, MB2(0x8DF4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE2B6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B60 */
- 0x0000, MB2(0xE2A6), 0x0000, MB2(0xE2A8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE2AB), 0x0000, MB2(0xE2AC), 0x0000,
- MB2(0xE2A9), MB2(0xE2AA), 0x0000, 0x0000,
- MB2(0xE2A7), MB2(0xE2A5), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE29F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7B80 */
- 0x0000, 0x0000, MB2(0x95CD), MB2(0x89D3),
- 0x0000, 0x0000, 0x0000, MB2(0xE2B3),
- 0x0000, MB2(0xE2B0), 0x0000, MB2(0xE2B5),
- 0x0000, 0x0000, MB2(0xE2B4), 0x0000,
- MB2(0x9493), MB2(0x96A5), 0x0000, MB2(0x8E5A),
- MB2(0xE2AE), MB2(0xE2B7), MB2(0xE2B2), 0x0000,
- MB2(0xE2B1), MB2(0xE2AD), MB2(0xFB88), MB2(0xE2AF),
- 0x0000, MB2(0x8AC7), 0x0000, 0x0000, /* 7BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x925C), 0x0000,
- 0x0000, MB2(0x90FB), 0x0000, 0x0000,
- 0x0000, MB2(0x94A0), 0x0000, 0x0000,
- MB2(0xE2BC), 0x0000, 0x0000, 0x0000,
- MB2(0x94A2), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x90DF), MB2(0xE2B9), 0x0000, 0x0000, /* 7BC0 */
- MB2(0x94CD), 0x0000, MB2(0xE2BD), MB2(0x95D1),
- 0x0000, MB2(0x927A), 0x0000, MB2(0xE2B8),
- MB2(0xE2BA), 0x0000, 0x0000, MB2(0xE2BB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE2BE), 0x0000, 0x0000,
- MB2(0x8EC2), 0x0000, 0x0000, 0x0000, /* 7BE0 */
- MB2(0x93C4), MB2(0xE2C3), MB2(0xE2C2), 0x0000,
- 0x0000, MB2(0xE2BF), 0x0000, 0x0000,
- 0x0000, MB2(0x9855), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2C8),
- 0x0000, 0x0000, MB2(0xE2CC), MB2(0xE2C9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE2C5), 0x0000, 0x0000, 0x0000, /* 7C00 */
- 0x0000, 0x0000, 0x0000, MB2(0xE2C6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE2CB), 0x0000, 0x0000,
- 0x0000, MB2(0xE2C0), MB2(0x99D3), MB2(0xE2C7),
- MB2(0xE2C1), 0x0000, 0x0000, MB2(0xE2CA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2D0),
- 0x0000, MB2(0x8AC8), 0x0000, MB2(0xE2CD), /* 7C20 */
- 0x0000, 0x0000, 0x0000, MB2(0xE2CE),
- 0x0000, 0x0000, MB2(0xE2CF), MB2(0xE2D2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2D1),
- MB2(0x94F4), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE2D3), MB2(0x97FA), MB2(0x95EB),
- MB2(0xE2D8), 0x0000, 0x0000, MB2(0xE2D5), /* 7C40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE2D4), MB2(0x90D0), 0x0000, MB2(0xE2D7),
- MB2(0xE2D9), 0x0000, 0x0000, 0x0000,
- MB2(0xE2D6), 0x0000, MB2(0xE2DD), 0x0000,
- MB2(0xE2DA), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2DB),
- MB2(0xE2C4), 0x0000, 0x0000, 0x0000, /* 7C60 */
- MB2(0xE2DC), MB2(0xE2DE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE2DF), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x95C4),
- 0x0000, MB2(0xE2E0), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x96E0), 0x0000,
- 0x0000, MB2(0x8BCC), MB2(0x8C48), MB2(0xE2E1), /* 7C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95B2), 0x0000, MB2(0x9088),
- 0x0000, MB2(0x96AE), 0x0000, 0x0000,
- MB2(0xE2E2), 0x0000, MB2(0x97B1), 0x0000,
- 0x0000, MB2(0x9494), 0x0000, MB2(0x9165),
- MB2(0x9453), 0x0000, 0x0000, MB2(0x8F6C),
- 0x0000, 0x0000, 0x0000, MB2(0x88BE),
- 0x0000, MB2(0xE2E7), MB2(0xE2E5), 0x0000, /* 7CA0 */
- MB2(0xE2E3), MB2(0x8A9F), 0x0000, MB2(0x8FCF),
- MB2(0xE2E8), 0x0000, 0x0000, MB2(0xE2E6),
- 0x0000, MB2(0xE2E4), MB2(0xE2EC), 0x0000,
- 0x0000, MB2(0xE2EB), MB2(0xE2EA), MB2(0xE2E9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE2ED), 0x0000, 0x0000,
- 0x0000, MB2(0xE2EE), MB2(0x90B8), 0x0000,
- MB2(0xE2EF), 0x0000, MB2(0xE2F1), 0x0000, /* 7CC0 */
- 0x0000, MB2(0xE2F0), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8CD0), 0x0000,
- 0x0000, 0x0000, MB2(0x9157), 0x0000,
- 0x0000, 0x0000, MB2(0xE2F3), 0x0000,
- 0x0000, 0x0000, MB2(0x939C), 0x0000,
- MB2(0xE2F2), 0x0000, 0x0000, 0x0000,
- MB2(0xE2F4), 0x0000, MB2(0x95B3), MB2(0x918C),
- MB2(0x8D66), 0x0000, MB2(0xE2F5), 0x0000, /* 7CE0 */
- 0x0000, 0x0000, 0x0000, MB2(0x97C6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2F7),
- 0x0000, 0x0000, MB2(0xE2F8), 0x0000,
- MB2(0xE2F9), 0x0000, MB2(0xE2FA), 0x0000,
- MB2(0x8E85), 0x0000, MB2(0xE2FB), MB2(0x8C6E),
- 0x0000, 0x0000, MB2(0x8B8A), 0x0000,
- MB2(0x8B49), 0x0000, MB2(0xE340), 0x0000, /* 7D00 */
- MB2(0x96F1), MB2(0x8D67), MB2(0xE2FC), 0x0000,
- 0x0000, 0x0000, MB2(0xE343), MB2(0x96E4),
- 0x0000, MB2(0x945B), 0x0000, 0x0000,
- MB2(0x9552), 0x0000, 0x0000, 0x0000,
- MB2(0x8F83), MB2(0xE342), 0x0000, MB2(0x8ED1),
- MB2(0x8D68), MB2(0x8E86), MB2(0x8B89), MB2(0x95B4),
- MB2(0xE341), 0x0000, 0x0000, 0x0000,
- MB2(0x9166), MB2(0x9661), MB2(0x8DF5), 0x0000, /* 7D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E87),
- MB2(0x92DB), 0x0000, MB2(0xE346), MB2(0x97DD),
- MB2(0x8DD7), 0x0000, MB2(0xE347), MB2(0x9061),
- 0x0000, MB2(0xE349), 0x0000, 0x0000,
- 0x0000, MB2(0x8FD0), MB2(0x8DAE), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE348),
- 0x0000, 0x0000, MB2(0x8F49), MB2(0x8CBC), /* 7D40 */
- MB2(0x9167), MB2(0xE344), MB2(0xE34A), 0x0000,
- MB2(0xFB8A), 0x0000, 0x0000, MB2(0xE345),
- MB2(0x8C6F), 0x0000, MB2(0xE34D), MB2(0xE351),
- MB2(0x8C8B), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE34C), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE355),
- MB2(0xFB8B), 0x0000, MB2(0x8D69), 0x0000,
- 0x0000, MB2(0x978D), MB2(0x88BA), MB2(0xE352), /* 7D60 */
- 0x0000, 0x0000, MB2(0x8B8B), 0x0000,
- MB2(0xE34F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE350), 0x0000,
- 0x0000, MB2(0x939D), MB2(0xE34E), MB2(0xE34B),
- 0x0000, MB2(0x8A47), MB2(0x90E2), 0x0000,
- 0x0000, MB2(0x8CA6), 0x0000, 0x0000,
- 0x0000, MB2(0xE357), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7D80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE354), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE356),
- 0x0000, 0x0000, 0x0000, MB2(0xE353),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8C70), MB2(0x91B1), MB2(0xE358),
- MB2(0x918E), 0x0000, 0x0000, MB2(0xE365),
- MB2(0xFB8D), 0x0000, MB2(0xE361), MB2(0xE35B), /* 7DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE35F),
- MB2(0x8EF8), MB2(0x88DB), MB2(0xE35A), MB2(0xE362),
- MB2(0xE366), MB2(0x8D6A), MB2(0x96D4), 0x0000,
- MB2(0x92D4), MB2(0xE35C), 0x0000, MB2(0xFB8C),
- MB2(0xE364), 0x0000, MB2(0xE359), MB2(0x925D),
- 0x0000, MB2(0xE35E), MB2(0x88BB), MB2(0x96C8),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7DC0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE35D),
- 0x0000, 0x0000, MB2(0x8BD9), MB2(0x94EA),
- 0x0000, 0x0000, 0x0000, MB2(0x918D),
- 0x0000, MB2(0x97CE), MB2(0x8F8F), 0x0000,
- 0x0000, MB2(0xE38E), MB2(0xFB8E), 0x0000,
- MB2(0xE367), 0x0000, MB2(0x90FC), 0x0000,
- MB2(0xE363), MB2(0xE368), MB2(0xE36A), 0x0000,
- MB2(0x92F7), MB2(0xE36D), 0x0000, 0x0000, /* 7DE0 */
- MB2(0xE369), 0x0000, 0x0000, 0x0000,
- MB2(0x95D2), MB2(0x8AC9), 0x0000, 0x0000,
- MB2(0x96C9), 0x0000, 0x0000, MB2(0x88DC),
- 0x0000, 0x0000, MB2(0xE36C), 0x0000,
- MB2(0x97FB), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE36B),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x898F), 0x0000, 0x0000, /* 7E00 */
- MB2(0x93EA), MB2(0xE36E), 0x0000, 0x0000,
- 0x0000, MB2(0xE375), MB2(0xE36F), MB2(0xE376),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE372), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x949B),
- 0x0000, 0x0000, MB2(0x8EC8), MB2(0xE374),
- 0x0000, MB2(0xE371), MB2(0xE377), MB2(0xE370), /* 7E20 */
- 0x0000, 0x0000, MB2(0x8F63), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9644),
- 0x0000, 0x0000, MB2(0x8F6B), 0x0000,
- 0x0000, MB2(0xE373), MB2(0xE380), 0x0000,
- 0x0000, MB2(0xE37B), 0x0000, MB2(0xE37E),
- 0x0000, MB2(0xE37C), MB2(0xE381), MB2(0xE37A),
- 0x0000, MB2(0xE360), MB2(0x90D1), 0x0000,
- 0x0000, MB2(0x94C9), 0x0000, MB2(0xE37D), /* 7E40 */
- 0x0000, 0x0000, MB2(0xE378), 0x0000,
- 0x0000, 0x0000, MB2(0x9140), MB2(0x8C71),
- 0x0000, MB2(0x8F4A), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFB8F), 0x0000,
- MB2(0x9044), MB2(0x9155), MB2(0xE384), 0x0000,
- 0x0000, MB2(0xE386), MB2(0xE387), 0x0000,
- 0x0000, MB2(0xE383), MB2(0xE385), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7E60 */
- 0x0000, 0x0000, MB2(0xE379), MB2(0xE382),
- 0x0000, MB2(0xE38A), MB2(0xE389), 0x0000,
- 0x0000, MB2(0x969A), 0x0000, 0x0000,
- MB2(0x8C4A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE388), 0x0000, MB2(0xE38C),
- MB2(0xE38B), MB2(0xE38F), 0x0000, MB2(0xE391),
- 0x0000, 0x0000, MB2(0x8E5B), MB2(0xE38D), /* 7E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE392), MB2(0xE393), MB2(0xFA5C), 0x0000,
- MB2(0xE394), 0x0000, MB2(0xE39A), MB2(0x935A),
- MB2(0xE396), 0x0000, MB2(0xE395), MB2(0xE397),
- MB2(0xE398), 0x0000, MB2(0xE399), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE39B),
- MB2(0xE39C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8ACA), 0x0000,
- MB2(0xE39D), 0x0000, MB2(0xE39E), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 7F40 */
- 0x0000, MB2(0xE39F), 0x0000, MB2(0xFB90),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE3A0), MB2(0xE3A1), MB2(0xE3A2), 0x0000,
- MB2(0xE3A3), MB2(0xE3A4), 0x0000, 0x0000,
- MB2(0xE3A6), MB2(0xE3A5), 0x0000, 0x0000,
- MB2(0xE3A7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3A8),
- MB2(0xE3A9), 0x0000, 0x0000, 0x0000, /* 7F60 */
- 0x0000, 0x0000, 0x0000, MB2(0xE3AC),
- MB2(0xE3AA), MB2(0xE3AB), MB2(0x8DDF), MB2(0x8C72),
- 0x0000, 0x0000, MB2(0x9275), 0x0000,
- MB2(0x94B1), 0x0000, MB2(0x8F90), 0x0000,
- 0x0000, MB2(0x946C), 0x0000, MB2(0x94EB),
- MB2(0xE3AD), MB2(0x9CEB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE3AE), MB2(0xE3B0), /* 7F80 */
- 0x0000, MB2(0x9785), MB2(0xE3AF), MB2(0xE3B2),
- MB2(0xE3B1), 0x0000, MB2(0x9772), 0x0000,
- MB2(0xE3B3), 0x0000, MB2(0x94FC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE3B4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE3B7), 0x0000,
- 0x0000, MB2(0xE3B6), MB2(0xE3B5), 0x0000,
- 0x0000, MB2(0xFB91), 0x0000, MB2(0xE3B8), /* 7FA0 */
- MB2(0x8C51), 0x0000, 0x0000, 0x0000,
- MB2(0x9141), MB2(0x8B60), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE3BC), MB2(0xE3B9),
- 0x0000, 0x0000, MB2(0xE3BA), 0x0000,
- 0x0000, 0x0000, MB2(0xE3BD), 0x0000,
- MB2(0xE3BE), MB2(0xE3BB), 0x0000, 0x0000,
- 0x0000, MB2(0x8948), 0x0000, 0x0000,
- 0x0000, MB2(0x89A5), 0x0000, 0x0000, /* 7FC0 */
- 0x0000, MB2(0xE3C0), MB2(0xE3C1), 0x0000,
- 0x0000, 0x0000, MB2(0xE3C2), 0x0000,
- MB2(0x9782), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8F4B), 0x0000,
- MB2(0xE3C4), MB2(0xE3C3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9089), MB2(0xE3C5), 0x0000, 0x0000, /* 7FE0 */
- 0x0000, 0x0000, MB2(0xE3C6), 0x0000,
- 0x0000, MB2(0xE3C7), 0x0000, MB2(0x8AE3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8ACB), 0x0000, 0x0000, MB2(0xE3C8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE3C9), 0x0000, MB2(0x967C),
- MB2(0x9783), 0x0000, 0x0000, 0x0000,
- MB2(0x9773), MB2(0x9856), 0x0000, MB2(0x8D6C), /* 8000 */
- MB2(0xE3CC), MB2(0x8ED2), MB2(0xE3CB), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3CD),
- MB2(0x8EA7), 0x0000, 0x0000, 0x0000,
- MB2(0x91CF), 0x0000, MB2(0xE3CE), 0x0000,
- 0x0000, MB2(0x8D6B), 0x0000, MB2(0x96D5),
- MB2(0xE3CF), MB2(0xE3D0), 0x0000, 0x0000,
- MB2(0xE3D1), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE3D2), 0x0000, 0x0000, /* 8020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE3D3), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8EA8),
- 0x0000, 0x0000, MB2(0x96EB), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3D5),
- 0x0000, MB2(0x925E), 0x0000, MB2(0xE3D4),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8040 */
- 0x0000, 0x0000, MB2(0xE3D7), 0x0000,
- 0x0000, 0x0000, MB2(0xE3D6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE3D8), 0x0000,
- 0x0000, 0x0000, MB2(0x90B9), 0x0000,
- MB2(0xE3D9), 0x0000, MB2(0xE3DA), 0x0000,
- 0x0000, 0x0000, MB2(0x95B7), MB2(0xE3DB),
- 0x0000, MB2(0x918F), MB2(0xE3DC), 0x0000, /* 8060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE3DD), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x97FC),
- MB2(0xE3E0), 0x0000, MB2(0xE3DF), MB2(0xE3DE),
- MB2(0x92AE), 0x0000, MB2(0xE3E1), MB2(0x9045),
- 0x0000, MB2(0xE3E2), 0x0000, 0x0000,
- 0x0000, MB2(0xE3E3), MB2(0x9857), MB2(0xE3E4),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8080 */
- MB2(0xE3E5), MB2(0xE3E7), MB2(0xE3E6), MB2(0x94A3),
- 0x0000, MB2(0x93F7), 0x0000, MB2(0x985D),
- MB2(0x94A7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3E9),
- 0x0000, 0x0000, MB2(0x8FD1), 0x0000,
- MB2(0x9549), 0x0000, MB2(0xE3EA), MB2(0xE3E8),
- 0x0000, MB2(0x8ACC), 0x0000, 0x0000,
- 0x0000, MB2(0x8CD2), MB2(0x8E88), 0x0000, /* 80A0 */
- 0x0000, MB2(0x94EC), 0x0000, 0x0000,
- 0x0000, MB2(0x8CA8), MB2(0x9662), 0x0000,
- MB2(0xE3ED), MB2(0xE3EB), 0x0000, MB2(0x8D6D),
- 0x0000, MB2(0x8D6E), MB2(0x88E7), 0x0000,
- MB2(0x8DE6), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9478), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x88DD), /* 80C0 */
- MB2(0xE3F2), 0x0000, MB2(0x925F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9477), 0x0000, MB2(0x91D9), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE3F4), 0x0000,
- 0x0000, MB2(0xE3F0), MB2(0xE3F3), MB2(0xE3EE),
- 0x0000, MB2(0xE3F1), MB2(0x9645), 0x0000,
- 0x0000, MB2(0x8CD3), 0x0000, 0x0000, /* 80E0 */
- MB2(0x88FB), MB2(0xE3EF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3F6),
- 0x0000, MB2(0xE3F7), 0x0000, 0x0000,
- MB2(0x93B7), 0x0000, 0x0000, 0x0000,
- MB2(0x8BB9), 0x0000, 0x0000, 0x0000,
- MB2(0xE445), MB2(0x945C), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8E89), 0x0000, /* 8100 */
- 0x0000, MB2(0x8BBA), MB2(0x90C6), MB2(0x9865),
- MB2(0x96AC), MB2(0xE3F5), MB2(0x90D2), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8B72), MB2(0xE3F8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3FA), /* 8120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE3F9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3FB),
- 0x0000, MB2(0x9245), 0x0000, MB2(0x945D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x92AF), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE442), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8140 */
- 0x0000, 0x0000, MB2(0xE441), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE3FC),
- 0x0000, 0x0000, MB2(0x9074), 0x0000,
- MB2(0x9585), MB2(0xE444), 0x0000, MB2(0xE443),
- MB2(0x8D6F), MB2(0x9872), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE454),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8160 */
- 0x0000, MB2(0xE448), MB2(0xE449), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8EEE),
- 0x0000, 0x0000, MB2(0xE447), 0x0000,
- MB2(0x8D98), MB2(0xE446), 0x0000, 0x0000,
- MB2(0xE44A), 0x0000, 0x0000, 0x0000,
- MB2(0x92B0), MB2(0x95A0), MB2(0x9142), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x91DA),
- MB2(0xE44E), 0x0000, MB2(0xE44F), MB2(0xE44B), /* 8180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE44C), 0x0000, MB2(0xE44D), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8D70),
- 0x0000, 0x0000, 0x0000, MB2(0xE455),
- 0x0000, MB2(0xE451), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9586), 0x0000,
- MB2(0x968C), MB2(0x9547), 0x0000, 0x0000,
- MB2(0xE450), 0x0000, 0x0000, MB2(0xE453), /* 81A0 */
- MB2(0xE452), 0x0000, 0x0000, 0x0000,
- MB2(0x9663), MB2(0xE456), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE457), 0x0000, 0x0000, MB2(0x9156),
- 0x0000, MB2(0xE458), 0x0000, 0x0000,
- MB2(0xE45A), 0x0000, MB2(0xE45E), 0x0000,
- 0x0000, MB2(0xE45B), MB2(0xE459), MB2(0x945E),
- MB2(0xE45C), 0x0000, MB2(0xE45D), 0x0000, /* 81C0 */
- 0x0000, 0x0000, MB2(0x89B0), 0x0000,
- MB2(0xE464), MB2(0xE45F), 0x0000, 0x0000,
- 0x0000, MB2(0xE460), 0x0000, 0x0000,
- 0x0000, MB2(0xE461), 0x0000, MB2(0x919F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE463), MB2(0xE462), MB2(0xE465), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE466),
- MB2(0xE467), 0x0000, 0x0000, MB2(0x9062), /* 81E0 */
- 0x0000, MB2(0x89E7), 0x0000, MB2(0xE468),
- MB2(0x97D5), 0x0000, MB2(0x8EA9), 0x0000,
- 0x0000, MB2(0x8F4C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8E8A),
- MB2(0x9276), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE469), MB2(0xE46A),
- MB2(0x8950), 0x0000, MB2(0xE46B), 0x0000,
- 0x0000, MB2(0xE46C), MB2(0xE46D), 0x0000, /* 8200 */
- 0x0000, MB2(0xE46E), 0x0000, MB2(0xE46F),
- MB2(0x8BBB), MB2(0x9DA8), MB2(0xE470), 0x0000,
- MB2(0x90E3), MB2(0xE471), MB2(0x8EC9), 0x0000,
- MB2(0xE472), 0x0000, MB2(0x98AE), 0x0000,
- 0x0000, 0x0000, MB2(0xE473), MB2(0x95DC),
- MB2(0x8ADA), 0x0000, 0x0000, MB2(0x9143),
- MB2(0x8F77), 0x0000, MB2(0x9591), MB2(0x8F4D),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE474), MB2(0x8D71), MB2(0xE475),
- MB2(0x94CA), 0x0000, MB2(0xE484), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE477),
- 0x0000, MB2(0x91C7), MB2(0x9495), MB2(0x8CBD),
- MB2(0xE476), MB2(0x9144), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE478), 0x0000, 0x0000, 0x0000, /* 8240 */
- 0x0000, 0x0000, 0x0000, MB2(0x92F8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE47A), MB2(0xE479), MB2(0xE47C), 0x0000,
- 0x0000, MB2(0xE47B), 0x0000, MB2(0xE47D),
- 0x0000, 0x0000, MB2(0xE480), 0x0000, /* 8260 */
- MB2(0xE47E), 0x0000, MB2(0x8ACD), 0x0000,
- MB2(0xE481), 0x0000, MB2(0xE482), MB2(0xE483),
- 0x0000, 0x0000, MB2(0x8DAF), MB2(0x97C7),
- 0x0000, MB2(0xE485), MB2(0x9046), 0x0000,
- 0x0000, 0x0000, MB2(0x8990), MB2(0xE486),
- MB2(0xE487), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE488), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x88F0),
- 0x0000, MB2(0xE489), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE48A), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9587), 0x0000, 0x0000,
- 0x0000, MB2(0x8EC5), 0x0000, MB2(0xE48C),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 82A0 */
- 0x0000, MB2(0x8A48), MB2(0x88B0), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE48B),
- MB2(0xE48E), MB2(0x946D), 0x0000, MB2(0x9063),
- 0x0000, MB2(0x89D4), 0x0000, MB2(0x9646),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C7C), MB2(0x8BDA), 0x0000, MB2(0xE48D),
- 0x0000, MB2(0x89E8), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 82C0 */
- 0x0000, MB2(0x8AA1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8991), MB2(0xE492), MB2(0x97E8),
- MB2(0x91DB), 0x0000, 0x0000, MB2(0x9563),
- 0x0000, MB2(0xE49E), 0x0000, MB2(0x89D5),
- MB2(0xE49C), 0x0000, MB2(0xE49A), MB2(0xE491),
- 0x0000, MB2(0xE48F), 0x0000, MB2(0xE490), /* 82E0 */
- 0x0000, MB2(0x8EE1), MB2(0x8BEA), MB2(0x9297),
- 0x0000, 0x0000, 0x0000, MB2(0x93CF),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8970), 0x0000, MB2(0xE494),
- MB2(0xE493), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE499), MB2(0xE495), MB2(0xE498),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFB93), MB2(0x96CE), MB2(0xE497), /* 8300 */
- MB2(0x89D6), MB2(0x8A9D), MB2(0xE49B), 0x0000,
- 0x0000, MB2(0xE49D), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C73), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE4A1), MB2(0xE4AA),
- MB2(0xE4AB), 0x0000, 0x0000, 0x0000,
- MB2(0x88A9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4B2), /* 8320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x88EF), 0x0000, 0x0000, MB2(0xE4A9),
- 0x0000, 0x0000, 0x0000, MB2(0xE4A8),
- 0x0000, MB2(0xE4A3), MB2(0xE4A2), 0x0000,
- MB2(0xE4A0), MB2(0xE49F), MB2(0x9283), 0x0000,
- MB2(0x91F9), MB2(0xE4A5), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4A4), 0x0000, 0x0000, 0x0000, /* 8340 */
- 0x0000, MB2(0xE4A7), 0x0000, 0x0000,
- 0x0000, MB2(0x9190), MB2(0x8C74), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8960),
- MB2(0xE4A6), 0x0000, MB2(0x8D72), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9191), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFB94), 0x0000, /* 8360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4B8),
- 0x0000, MB2(0xE4B9), 0x0000, MB2(0x89D7),
- 0x0000, 0x0000, 0x0000, MB2(0x89AC),
- MB2(0xE4B6), 0x0000, 0x0000, MB2(0xFB95),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8380 */
- 0x0000, MB2(0xE4AC), 0x0000, MB2(0xE4B4),
- 0x0000, MB2(0xE4BB), MB2(0xE4B5), 0x0000,
- 0x0000, 0x0000, MB2(0xE4B3), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE496),
- 0x0000, 0x0000, MB2(0xE4B1), 0x0000,
- 0x0000, 0x0000, MB2(0xE4AD), 0x0000,
- 0x0000, 0x0000, MB2(0x8ACE), MB2(0xE4AF),
- MB2(0xE4BA), 0x0000, MB2(0xE4B0), 0x0000, /* 83A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4BC), 0x0000, MB2(0xE4AE), MB2(0x949C),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9789), 0x0000, 0x0000,
- 0x0000, MB2(0xE4B7), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE4CD), 0x0000, 0x0000,
- 0x0000, MB2(0xE4C5), 0x0000, 0x0000, /* 83C0 */
- 0x0000, MB2(0x909B), 0x0000, MB2(0xFB96),
- 0x0000, 0x0000, MB2(0x8B65), 0x0000,
- MB2(0x8BDB), 0x0000, MB2(0xE4C0), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x89D9),
- 0x0000, 0x0000, MB2(0x8FD2), 0x0000,
- MB2(0xE4C3), 0x0000, 0x0000, 0x0000,
- MB2(0x8DD8), 0x0000, 0x0000, MB2(0x9370),
- MB2(0xE4C8), 0x0000, 0x0000, 0x0000, /* 83E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95EC), 0x0000, MB2(0xE4BF),
- 0x0000, 0x0000, 0x0000, MB2(0x89D8),
- MB2(0x8CD4), MB2(0x9548), MB2(0xE4C9), 0x0000,
- MB2(0xE4BD), 0x0000, MB2(0xFB97), MB2(0xE4C6),
- 0x0000, 0x0000, 0x0000, MB2(0xE4D0),
- 0x0000, MB2(0xE4C1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4C2), /* 8400 */
- MB2(0x93B8), 0x0000, 0x0000, MB2(0xE4C7),
- 0x0000, 0x0000, 0x0000, MB2(0xE4C4),
- MB2(0x9647), MB2(0xE4CA), MB2(0x88DE), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4BE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4CC), 0x0000, MB2(0xE4CB), 0x0000, /* 8420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x948B), MB2(0xE4D2), 0x0000,
- MB2(0xE4DD), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A9E), 0x0000, 0x0000,
- 0x0000, MB2(0xE4E0), 0x0000, 0x0000,
- MB2(0xE4CE), 0x0000, 0x0000, 0x0000,
- MB2(0xE4D3), MB2(0x978E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8440 */
- 0x0000, 0x0000, MB2(0xE4DC), 0x0000,
- MB2(0xFB98), MB2(0x9774), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x97A8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9298),
- 0x0000, 0x0000, 0x0000, MB2(0x8A8B),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9592), MB2(0xE4E2), MB2(0x939F), /* 8460 */
- 0x0000, 0x0000, MB2(0x88AF), 0x0000,
- 0x0000, MB2(0xE4DB), 0x0000, MB2(0xE4D7),
- MB2(0x9192), MB2(0xE4D1), MB2(0xE4D9), MB2(0xE4DE),
- 0x0000, MB2(0x944B), 0x0000, 0x0000,
- 0x0000, MB2(0x88A8), 0x0000, MB2(0xE4D6),
- 0x0000, MB2(0xE4DF), MB2(0x9598), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE4DA), 0x0000, /* 8480 */
- MB2(0xE4D5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8FD3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8F4E), 0x0000, 0x0000, 0x0000,
- MB2(0x8EAA), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x96D6), 0x0000, 0x0000,
- MB2(0x9566), 0x0000, 0x0000, MB2(0xE4E5),
- 0x0000, MB2(0xE4EE), 0x0000, 0x0000, /* 84A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE4D8), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8A97), 0x0000,
- MB2(0xFB99), 0x0000, 0x0000, 0x0000,
- MB2(0x8FF6), MB2(0xE4E3), 0x0000, MB2(0xE4E8),
- MB2(0x9193), 0x0000, 0x0000, MB2(0xE4E4),
- 0x0000, MB2(0xE4EB), 0x0000, 0x0000, /* 84C0 */
- MB2(0x927E), 0x0000, MB2(0xE4EC), 0x0000,
- 0x0000, MB2(0x9775), MB2(0xE4E1), MB2(0x8A57),
- 0x0000, MB2(0xE4E7), 0x0000, 0x0000,
- MB2(0xE4EA), MB2(0x96AA), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE4ED), 0x0000,
- 0x0000, MB2(0xE4E6), MB2(0xE4E9), 0x0000,
- MB2(0xFA60), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 84E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9648), 0x0000, MB2(0x9840), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4F1), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4F8), 0x0000, 0x0000, MB2(0xE4F0),
- MB2(0x8EC1), 0x0000, 0x0000, 0x0000, /* 8500 */
- 0x0000, 0x0000, MB2(0xE4CF), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95CC), 0x0000, MB2(0x96A0),
- MB2(0xE4F7), MB2(0xE4F6), 0x0000, MB2(0xE4F2),
- MB2(0xE4F3), 0x0000, MB2(0x8955), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4F5),
- 0x0000, MB2(0xE4EF), 0x0000, 0x0000, /* 8520 */
- 0x0000, 0x0000, MB2(0x92D3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4F4), MB2(0x88FC), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x91A0), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x95C1), 0x0000, 0x0000,
- MB2(0xE4F9), MB2(0xE540), 0x0000, MB2(0x94D7), /* 8540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE4FC), MB2(0x8FD4), MB2(0x8EC7), MB2(0xE542),
- 0x0000, 0x0000, MB2(0x8BBC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFB9A),
- 0x0000, MB2(0xE543), 0x0000, MB2(0x9599),
- MB2(0xE4FB), MB2(0xFB9B), MB2(0xE4D4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE4FA), /* 8560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x986E), MB2(0x93A0), MB2(0x9593), MB2(0xFB9C),
- 0x0000, MB2(0xE54A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE550),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE551), 0x0000,
- MB2(0xE544), 0x0000, 0x0000, 0x0000, /* 8580 */
- MB2(0x9496), 0x0000, 0x0000, MB2(0xE54E),
- MB2(0xE546), 0x0000, MB2(0xE548), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE552), MB2(0xE547), 0x0000, 0x0000,
- MB2(0xE54B), 0x0000, 0x0000, MB2(0x8992),
- 0x0000, MB2(0x93E3), 0x0000, MB2(0xE54C),
- MB2(0xE54F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 85A0 */
- MB2(0xE545), 0x0000, MB2(0x9145), 0x0000,
- MB2(0xE549), MB2(0x8E46), MB2(0x9064), MB2(0x8C4F),
- MB2(0x96F2), 0x0000, MB2(0x96F7), MB2(0x8F92),
- MB2(0xFB9E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE556), MB2(0xE554), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x986D), 0x0000, 0x0000, /* 85C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE553), 0x0000, 0x0000,
- 0x0000, MB2(0x9795), 0x0000, MB2(0xE555),
- MB2(0xE557), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE558), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE55B), MB2(0xE559), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 85E0 */
- MB2(0x93A1), MB2(0xE55A), 0x0000, 0x0000,
- 0x0000, MB2(0x94CB), MB2(0xE54D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F93),
- 0x0000, MB2(0xE55C), MB2(0xE561), MB2(0x9194),
- 0x0000, 0x0000, MB2(0xE560), 0x0000,
- 0x0000, 0x0000, MB2(0xE541), 0x0000, /* 8600 */
- 0x0000, 0x0000, MB2(0xE562), MB2(0x9168),
- 0x0000, 0x0000, MB2(0xE55D), MB2(0xE55F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE55E),
- 0x0000, 0x0000, MB2(0x9F50), MB2(0x9F41),
- 0x0000, 0x0000, MB2(0xE564), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE563), 0x0000, /* 8620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9796), 0x0000, MB2(0xE1BA),
- MB2(0xE565), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE566),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE567), MB2(0x8CD5), 0x0000,
- MB2(0x8B73), 0x0000, 0x0000, 0x0000,
- MB2(0xE569), MB2(0x997C), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8B95), 0x0000,
- MB2(0x97B8), 0x0000, MB2(0x8BF1), MB2(0xE56A),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8660 */
- 0x0000, 0x0000, 0x0000, MB2(0xE56B),
- 0x0000, 0x0000, 0x0000, MB2(0x928E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE56C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x93F8), 0x0000, MB2(0x88B8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89E1), MB2(0xE571),
- MB2(0xE572), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE56D),
- 0x0000, MB2(0x8E5C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE56E), /* 86A0 */
- MB2(0x9461), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE56F), MB2(0xE570), MB2(0xE57A),
- 0x0000, 0x0000, 0x0000, MB2(0xE574),
- MB2(0xE577), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE573), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 86C0 */
- MB2(0xE575), 0x0000, MB2(0xE576), MB2(0x8ED6),
- 0x0000, MB2(0xE578), 0x0000, MB2(0x9260),
- 0x0000, MB2(0x8C75), MB2(0x8A61), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE57B), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A5E), 0x0000, MB2(0xE581),
- 0x0000, 0x0000, MB2(0xE57C), MB2(0xE580),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 86E0 */
- MB2(0x94B8), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE57D), 0x0000, 0x0000,
- MB2(0xE57E), MB2(0x9567), MB2(0x94D8), MB2(0xE582),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x91FB), MB2(0xE58C), 0x0000, MB2(0xE588),
- 0x0000, 0x0000, MB2(0x89E9), 0x0000,
- MB2(0xE586), 0x0000, MB2(0x9649), MB2(0xE587), /* 8700 */
- 0x0000, 0x0000, MB2(0xE584), 0x0000,
- MB2(0xE585), MB2(0xE58A), MB2(0xE58D), 0x0000,
- 0x0000, MB2(0xE58B), 0x0000, 0x0000,
- 0x0000, MB2(0xE589), MB2(0xE583), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9277), 0x0000, MB2(0xE594), 0x0000,
- MB2(0x96A8), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8720 */
- 0x0000, MB2(0xE592), 0x0000, 0x0000,
- 0x0000, MB2(0xE593), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE58E), 0x0000, 0x0000, MB2(0xE590),
- 0x0000, 0x0000, 0x0000, MB2(0xE591),
- 0x0000, 0x0000, 0x0000, MB2(0xE58F),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x90E4), 0x0000, MB2(0x9858),
- MB2(0xE598), 0x0000, MB2(0xE599), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE59F),
- 0x0000, MB2(0x9049), 0x0000, MB2(0xE59B),
- 0x0000, MB2(0xE59E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE596),
- MB2(0xE595), 0x0000, 0x0000, MB2(0xE5A0), /* 8760 */
- 0x0000, 0x0000, MB2(0x89DA), 0x0000,
- MB2(0xE59C), 0x0000, MB2(0xE5A1), 0x0000,
- 0x0000, 0x0000, MB2(0xE59D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE59A), 0x0000, MB2(0x92B1), 0x0000,
- MB2(0xE597), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9488),
- 0x0000, 0x0000, MB2(0xE5A5), 0x0000, /* 8780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x975A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE5A4),
- 0x0000, 0x0000, MB2(0xE5A3), 0x0000, /* 87A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE5AC),
- 0x0000, 0x0000, 0x0000, MB2(0xE5A6),
- 0x0000, 0x0000, 0x0000, MB2(0xE5AE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9786), MB2(0xE5B1),
- 0x0000, MB2(0xE5A8), 0x0000, 0x0000,
- MB2(0xE5A9), 0x0000, 0x0000, 0x0000, /* 87C0 */
- MB2(0xE5AD), 0x0000, MB2(0xE5B0), MB2(0xE5AF),
- 0x0000, 0x0000, 0x0000, MB2(0xE5A7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE5AA), 0x0000, MB2(0xE5BB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE5B4), 0x0000, 0x0000, 0x0000, /* 87E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE5B2),
- 0x0000, 0x0000, MB2(0xE5B3), 0x0000,
- 0x0000, 0x0000, MB2(0xE5B8), MB2(0xE5B9),
- 0x0000, MB2(0x8A49), 0x0000, MB2(0x8B61),
- 0x0000, 0x0000, MB2(0xE5B7), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8800 */
- 0x0000, MB2(0xE5A2), 0x0000, MB2(0xFBA1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE5B6), MB2(0xE5BA), MB2(0xE5B5),
- 0x0000, MB2(0xE5BC), 0x0000, 0x0000,
- 0x0000, MB2(0xE5BE), MB2(0xE5BD), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE5C0), MB2(0xE5BF), MB2(0xE579), /* 8820 */
- 0x0000, 0x0000, 0x0000, MB2(0xE5C4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE5C1), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5C2), 0x0000,
- 0x0000, MB2(0xE5C3), 0x0000, MB2(0xE5C5),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C8C), 0x0000, MB2(0xE5C7), 0x0000, /* 8840 */
- MB2(0xE5C6), 0x0000, MB2(0x8F4F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8D73), MB2(0x9FA5), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5C8), MB2(0x8F70),
- 0x0000, 0x0000, 0x0000, MB2(0x8A58),
- 0x0000, MB2(0xE5C9), 0x0000, MB2(0x8971),
- 0x0000, MB2(0x8FD5), MB2(0xE5CA), 0x0000,
- 0x0000, MB2(0x8D74), MB2(0xE5CB), MB2(0x88DF), /* 8860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x955C), 0x0000, 0x0000, MB2(0xE5CC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x908A), 0x0000, MB2(0xE5D3), 0x0000,
- 0x0000, MB2(0xE5D0), 0x0000, MB2(0x928F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE5D1), MB2(0xE5CE), MB2(0x8BDC),
- 0x0000, MB2(0xE5CD), MB2(0xE5D4), 0x0000, /* 8880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C55), 0x0000, 0x0000, MB2(0x91DC),
- 0x0000, MB2(0xE5DA), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5D6), 0x0000,
- 0x0000, 0x0000, MB2(0x91B3), MB2(0xE5D5),
- 0x0000, MB2(0xE5D8), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5CF), 0x0000,
- 0x0000, 0x0000, MB2(0xE5D9), 0x0000, /* 88A0 */
- MB2(0xE5DB), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x94ED),
- 0x0000, 0x0000, MB2(0xE5D7), 0x0000,
- MB2(0xE5DC), MB2(0xE5DE), 0x0000, 0x0000,
- MB2(0x8CD1), MB2(0xE5D2), 0x0000, MB2(0x88BF),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE5DD),
- 0x0000, MB2(0x8DD9), MB2(0x97F4), MB2(0xE5DF), /* 88C0 */
- MB2(0xE5E0), MB2(0x9195), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x97A0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE5E1), MB2(0x9754), 0x0000, 0x0000,
- MB2(0xE5E2), MB2(0xE5E3), 0x0000, 0x0000,
- MB2(0x95E2), MB2(0xE5E4), 0x0000, MB2(0x8DBE),
- 0x0000, MB2(0x97A1), 0x0000, 0x0000, /* 88E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE5E9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5EA), MB2(0x8FD6),
- MB2(0xE5E8), MB2(0xFBA2), 0x0000, 0x0000,
- MB2(0x9787), MB2(0xE5E5), 0x0000, 0x0000,
- MB2(0xE5E7), MB2(0x90BB), MB2(0x909E), 0x0000,
- 0x0000, 0x0000, MB2(0xE5E6), 0x0000, /* 8900 */
- MB2(0xE5EB), 0x0000, 0x0000, MB2(0x95A1),
- 0x0000, 0x0000, MB2(0xE5ED), 0x0000,
- MB2(0xE5EC), 0x0000, 0x0000, 0x0000,
- MB2(0x8A8C), 0x0000, MB2(0x964A), MB2(0xE5EE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFA5D), MB2(0xE5FA), MB2(0xE5F0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8920 */
- 0x0000, MB2(0xE5F1), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5F2), MB2(0xE5F3),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5F7), 0x0000,
- MB2(0xE5F8), 0x0000, 0x0000, MB2(0xE5F6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE5F4), 0x0000, MB2(0xE5EF), /* 8940 */
- MB2(0xE5F5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE5F9), MB2(0xE8B5), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89A6), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE5FC), MB2(0x8BDD),
- MB2(0xE5FB), 0x0000, 0x0000, 0x0000, /* 8960 */
- MB2(0xE641), 0x0000, MB2(0xE640), 0x0000,
- 0x0000, 0x0000, MB2(0xE643), 0x0000,
- 0x0000, MB2(0xE642), 0x0000, MB2(0xE644),
- 0x0000, 0x0000, MB2(0x8F50), 0x0000,
- MB2(0xE645), 0x0000, 0x0000, MB2(0xE646),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE647), MB2(0x90BC),
- 0x0000, MB2(0x9776), 0x0000, MB2(0xE648), /* 8980 */
- 0x0000, 0x0000, MB2(0x95A2), MB2(0x9465),
- MB2(0xE649), 0x0000, MB2(0xE64A), MB2(0x8CA9),
- 0x0000, 0x0000, 0x0000, MB2(0x8B4B),
- 0x0000, 0x0000, 0x0000, MB2(0xE64B),
- 0x0000, 0x0000, MB2(0x8E8B), MB2(0x9460),
- MB2(0xE64C), 0x0000, MB2(0x8A6F), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE64D), 0x0000, 0x0000, /* 89A0 */
- 0x0000, 0x0000, MB2(0xE64F), MB2(0x9797),
- 0x0000, MB2(0xE64E), MB2(0x9065), 0x0000,
- MB2(0xE650), 0x0000, 0x0000, MB2(0xE651),
- 0x0000, 0x0000, MB2(0xE652), MB2(0x8ACF),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE653), 0x0000,
- 0x0000, MB2(0xE654), 0x0000, MB2(0xE655),
- MB2(0xE656), 0x0000, 0x0000, 0x0000, /* 89C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8A70), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE657), 0x0000,
- MB2(0xE658), MB2(0xE659), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x89F0), /* 89E0 */
- 0x0000, 0x0000, MB2(0x9047), MB2(0xE65A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE65B), 0x0000, 0x0000, 0x0000,
- MB2(0xE65C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8CBE), 0x0000, MB2(0x92F9), MB2(0xE65D), /* 8A00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C76), 0x0000, MB2(0x9075), 0x0000,
- MB2(0xE660), 0x0000, MB2(0x93A2), 0x0000,
- MB2(0xE65F), 0x0000, MB2(0xFBA3), MB2(0x8C50),
- 0x0000, 0x0000, MB2(0xE65E), MB2(0x91F5),
- MB2(0x8B4C), 0x0000, 0x0000, MB2(0xE661),
- 0x0000, MB2(0xE662), 0x0000, MB2(0x8FD7),
- 0x0000, 0x0000, 0x0000, MB2(0x8C8D), /* 8A20 */
- 0x0000, MB2(0xE663), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x964B), 0x0000,
- 0x0000, MB2(0x90DD), 0x0000, 0x0000,
- 0x0000, MB2(0x8B96), 0x0000, MB2(0x96F3),
- MB2(0x9169), 0x0000, MB2(0xE664), MB2(0xFBA4),
- 0x0000, 0x0000, MB2(0x9066), MB2(0x9290),
- MB2(0x8FD8), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE665), 0x0000, 0x0000, /* 8A40 */
- 0x0000, 0x0000, MB2(0xE668), 0x0000,
- MB2(0xE669), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8DBC), MB2(0x91C0), MB2(0xE667), 0x0000,
- MB2(0x8FD9), MB2(0x955D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE666),
- 0x0000, 0x0000, MB2(0x8E8C), 0x0000,
- MB2(0x8972), 0x0000, MB2(0xE66D), MB2(0x8C77), /* 8A60 */
- 0x0000, 0x0000, MB2(0x8E8E), 0x0000,
- 0x0000, MB2(0x8E8D), 0x0000, MB2(0x986C),
- MB2(0xE66C), MB2(0xE66B), MB2(0x9146), 0x0000,
- MB2(0x8B6C), MB2(0x9862), MB2(0x8A59), MB2(0x8FDA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFBA5), 0x0000, 0x0000,
- MB2(0xE66A), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE66F), 0x0000, /* 8A80 */
- MB2(0xE670), MB2(0xE66E), 0x0000, MB2(0x8CD6),
- 0x0000, MB2(0x975F), 0x0000, 0x0000,
- MB2(0x8E8F), MB2(0x9446), 0x0000, 0x0000,
- 0x0000, MB2(0xE673), 0x0000, MB2(0x90BE),
- 0x0000, MB2(0x9261), 0x0000, 0x0000,
- MB2(0x9755), 0x0000, MB2(0xE676), 0x0000,
- 0x0000, 0x0000, MB2(0x8CEA), 0x0000,
- MB2(0x90BD), MB2(0xE672), 0x0000, MB2(0xE677), /* 8AA0 */
- MB2(0x8CEB), MB2(0xE674), MB2(0xE675), MB2(0xFBA6),
- MB2(0xE671), 0x0000, 0x0000, 0x0000,
- MB2(0x90E0), MB2(0x93C7), 0x0000, 0x0000,
- MB2(0x924E), 0x0000, MB2(0x89DB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x94EE), 0x0000, 0x0000,
- MB2(0x8B62), 0x0000, MB2(0xFBA7), MB2(0x92B2),
- 0x0000, 0x0000, MB2(0xE67A), 0x0000, /* 8AC0 */
- MB2(0xE678), 0x0000, 0x0000, MB2(0x926B),
- 0x0000, 0x0000, 0x0000, MB2(0x90BF),
- MB2(0x8AD0), MB2(0xE679), 0x0000, MB2(0x907A),
- 0x0000, 0x0000, MB2(0x97C8), 0x0000,
- 0x0000, 0x0000, MB2(0x985F), 0x0000,
- 0x0000, 0x0000, MB2(0xE67B), MB2(0xE687),
- MB2(0x92B3), 0x0000, MB2(0xE686), MB2(0xFBA8),
- MB2(0xE683), MB2(0xE68B), MB2(0xE684), 0x0000, /* 8AE0 */
- MB2(0xE680), 0x0000, MB2(0x92FA), MB2(0xE67E),
- 0x0000, 0x0000, 0x0000, MB2(0xE67C),
- 0x0000, MB2(0x9740), MB2(0x8E90), 0x0000,
- 0x0000, MB2(0xE681), 0x0000, MB2(0xE67D),
- 0x0000, 0x0000, MB2(0xFBAA), MB2(0xE685),
- MB2(0x8F94), 0x0000, MB2(0x8CBF), 0x0000,
- 0x0000, 0x0000, MB2(0x91F8), 0x0000,
- MB2(0x9664), MB2(0x8979), MB2(0x88E0), 0x0000, /* 8B00 */
- MB2(0x93A3), 0x0000, 0x0000, MB2(0xE689),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE688), 0x0000, MB2(0x93E4), 0x0000,
- MB2(0xE68D), 0x0000, 0x0000, 0x0000,
- MB2(0xE682), 0x0000, MB2(0xE68C), MB2(0xE68E),
- 0x0000, MB2(0x8CAA), MB2(0xE68A), MB2(0x8D75),
- 0x0000, MB2(0x8ED3), 0x0000, 0x0000,
- MB2(0xE68F), MB2(0x9777), 0x0000, 0x0000, /* 8B20 */
- 0x0000, 0x0000, MB2(0xE692), 0x0000,
- MB2(0xE695), 0x0000, 0x0000, MB2(0xE693),
- MB2(0x9554), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE690),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8BDE), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE694), 0x0000,
- 0x0000, MB2(0xE696), 0x0000, 0x0000, /* 8B40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE69A), 0x0000, 0x0000,
- MB2(0xE697), 0x0000, MB2(0xE699), MB2(0xE698),
- 0x0000, 0x0000, 0x0000, MB2(0xFBAB),
- 0x0000, 0x0000, MB2(0xE69B), 0x0000,
- MB2(0x8EAF), 0x0000, MB2(0xE69D), MB2(0xE69C),
- MB2(0x9588), 0x0000, 0x0000, MB2(0xE69F),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8B60 */
- 0x0000, 0x0000, MB2(0x8C78), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE69E),
- MB2(0xE6A0), 0x0000, 0x0000, MB2(0xE6A1),
- MB2(0x8B63), MB2(0xE3BF), MB2(0x8FF7), 0x0000,
- MB2(0xE6A2), 0x0000, 0x0000, MB2(0x8CEC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE6A3), 0x0000, MB2(0xFBAC),
- MB2(0xE6A4), 0x0000, 0x0000, MB2(0x8E5D), /* 8B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9DCC), 0x0000,
- MB2(0xE6A5), 0x0000, MB2(0xE6A6), 0x0000,
- MB2(0x8F51), 0x0000, MB2(0xE6A7), MB2(0xE6A8),
- 0x0000, 0x0000, MB2(0xE6A9), 0x0000,
- 0x0000, MB2(0xE6AA), MB2(0xE6AB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8BC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8BE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8C00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8C20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x924A),
- 0x0000, 0x0000, MB2(0xE6AC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE6AE),
- 0x0000, MB2(0xE6AD), 0x0000, 0x0000, /* 8C40 */
- 0x0000, 0x0000, MB2(0x93A4), 0x0000,
- MB2(0xE6AF), 0x0000, MB2(0x964C), 0x0000,
- MB2(0xE6B0), 0x0000, MB2(0xE6B1), 0x0000,
- MB2(0xE6B2), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE6B3), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x93D8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8FDB), MB2(0xE6B4), 0x0000, /* 8C60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8D8B), MB2(0x98AC),
- MB2(0xE6B5), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE6B6), MB2(0x955E), MB2(0xE6B7), 0x0000,
- MB2(0xE6BF), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6B8), 0x0000, /* 8C80 */
- 0x0000, MB2(0xE6BA), 0x0000, 0x0000,
- 0x0000, MB2(0xE6B9), MB2(0xE6BB), 0x0000,
- MB2(0x9665), MB2(0xE6BC), MB2(0xE6BD), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE6BE), 0x0000, 0x0000, 0x0000,
- MB2(0xE6C0), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A4C), MB2(0x92E5), 0x0000,
- MB2(0x9589), MB2(0x8DE0), MB2(0x8D76), 0x0000, /* 8CA0 */
- 0x0000, 0x0000, 0x0000, MB2(0x956E),
- MB2(0x89DD), MB2(0x94CC), MB2(0xE6C3), MB2(0x8AD1),
- MB2(0x90D3), MB2(0xE6C2), MB2(0xE6C7), MB2(0x9299),
- MB2(0x96E1), 0x0000, MB2(0xE6C5), MB2(0xE6C6),
- MB2(0x8B4D), 0x0000, MB2(0xE6C8), MB2(0x9483),
- MB2(0x91DD), 0x0000, 0x0000, MB2(0x94EF),
- MB2(0x935C), MB2(0xE6C4), 0x0000, MB2(0x9666),
- MB2(0x89EA), MB2(0xE6CA), MB2(0x9847), MB2(0x92C0), /* 8CC0 */
- MB2(0x9864), 0x0000, 0x0000, MB2(0x8E91),
- MB2(0xE6C9), 0x0000, MB2(0x91AF), 0x0000,
- 0x0000, MB2(0xE6DA), MB2(0x9147), 0x0000,
- 0x0000, MB2(0x93F6), 0x0000, MB2(0x956F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6CD), MB2(0x8E5E),
- MB2(0x8E92), 0x0000, MB2(0x8FDC), 0x0000,
- MB2(0x9485), 0x0000, MB2(0x8CAB), MB2(0xE6CC), /* 8CE0 */
- MB2(0xE6CB), 0x0000, MB2(0x958A), 0x0000,
- 0x0000, 0x0000, MB2(0x8EBF), 0x0000,
- 0x0000, MB2(0x9371), 0x0000, 0x0000,
- MB2(0xFBAD), 0x0000, 0x0000, 0x0000,
- MB2(0xFBAE), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6CF), MB2(0xE6D0),
- MB2(0x8D77), MB2(0xE6CE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D00 */
- MB2(0xE6D1), MB2(0xE6D2), 0x0000, MB2(0xE6D4),
- MB2(0x91A1), 0x0000, MB2(0xE6D3), MB2(0x8AE4),
- 0x0000, MB2(0xE6D6), 0x0000, MB2(0xE6D5),
- MB2(0xE6D7), 0x0000, MB2(0xFBAF), MB2(0xE6D9),
- MB2(0xE6DB), 0x0000, MB2(0xE6DC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8D60 */
- MB2(0x90D4), 0x0000, MB2(0x8ECD), MB2(0xE6DD),
- 0x0000, 0x0000, 0x0000, MB2(0x8A71),
- 0x0000, MB2(0xE6DE), 0x0000, 0x0000,
- MB2(0x9196), MB2(0xE6DF), 0x0000, MB2(0xE6E0),
- MB2(0x958B), 0x0000, MB2(0xFBB0), MB2(0x8B4E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE6E1), 0x0000, 0x0000, /* 8D80 */
- 0x0000, MB2(0x92B4), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x897A), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE6E2), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8EEF), /* 8DA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9096), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x91AB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6E5), 0x0000,
- 0x0000, 0x0000, MB2(0xE6E4), 0x0000,
- 0x0000, 0x0000, MB2(0xE6E3), 0x0000, /* 8DC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE6EB),
- MB2(0xE6E9), 0x0000, 0x0000, MB2(0xE6E6),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6E8), 0x0000,
- 0x0000, 0x0000, MB2(0xE6E7), MB2(0xE6EA),
- 0x0000, MB2(0x8B97), 0x0000, MB2(0xE6EE),
- 0x0000, MB2(0x90D5), 0x0000, MB2(0xE6EF), /* 8DE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8CD7), 0x0000, MB2(0xE6EC), MB2(0xE6ED),
- 0x0000, 0x0000, 0x0000, MB2(0x9848),
- 0x0000, 0x0000, 0x0000, MB2(0x92B5),
- 0x0000, MB2(0x9148), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE6F0), 0x0000, 0x0000, MB2(0xE6F3),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE6F1), MB2(0xE6F2), MB2(0x9778), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x93A5),
- MB2(0xE6F6), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE6F4), MB2(0xE6F5), MB2(0xE6F7),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE748), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE6FA), 0x0000, 0x0000, 0x0000,
- MB2(0xE6FB), MB2(0xE6F9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE6F8), 0x0000, /* 8E40 */
- MB2(0x92FB), 0x0000, 0x0000, MB2(0xE740),
- MB2(0xE744), MB2(0xE741), MB2(0xE6FC), 0x0000,
- MB2(0xE742), 0x0000, 0x0000, 0x0000,
- MB2(0xE743), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE74A), 0x0000, 0x0000,
- 0x0000, MB2(0xE745), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x90D6),
- MB2(0xE747), 0x0000, 0x0000, MB2(0xE749), /* 8E60 */
- MB2(0xE746), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE74C), 0x0000,
- MB2(0x8F52), 0x0000, MB2(0xE74B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE74D), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE74E), 0x0000, 0x0000, /* 8E80 */
- MB2(0xE751), MB2(0xE750), 0x0000, MB2(0xE74F),
- 0x0000, 0x0000, MB2(0xE753), MB2(0xE752),
- 0x0000, MB2(0x96F4), 0x0000, 0x0000,
- 0x0000, MB2(0xE755), 0x0000, MB2(0xE754),
- MB2(0xE756), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE757), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE759), 0x0000, 0x0000, /* 8EA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE758), MB2(0x9067),
- MB2(0xE75A), 0x0000, 0x0000, MB2(0x8BEB),
- MB2(0xE75B), MB2(0xE75D), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE75E), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8EC0 */
- 0x0000, MB2(0xE75F), MB2(0xE75C), 0x0000,
- MB2(0xE760), 0x0000, MB2(0x8ED4), MB2(0xE761),
- MB2(0x8B4F), MB2(0x8C52), 0x0000, MB2(0xFBB2),
- 0x0000, 0x0000, MB2(0x8CAC), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE762),
- 0x0000, 0x0000, 0x0000, MB2(0x93EE),
- 0x0000, 0x0000, MB2(0x935D), MB2(0xE763), /* 8EE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE766),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8EB2), 0x0000, 0x0000, MB2(0xE765),
- MB2(0xE764), MB2(0x8C79), MB2(0xE767), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8A72), /* 8F00 */
- 0x0000, MB2(0xE769), 0x0000, 0x0000,
- 0x0000, MB2(0x8DDA), MB2(0xE768), 0x0000,
- MB2(0xE771), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE76B), MB2(0xE76D),
- MB2(0x95E3), MB2(0xE76A), 0x0000, 0x0000,
- 0x0000, MB2(0xE76C), 0x0000, MB2(0xE770),
- MB2(0xE76E), MB2(0x8B50), 0x0000, MB2(0xE76F),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8F20 */
- 0x0000, 0x0000, MB2(0xE772), 0x0000,
- 0x0000, MB2(0x9479), MB2(0x97D6), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8F53),
- 0x0000, 0x0000, 0x0000, MB2(0xE773),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9741), MB2(0xE775), 0x0000, MB2(0xE774),
- 0x0000, 0x0000, MB2(0xE778), MB2(0x9760),
- 0x0000, 0x0000, MB2(0xE777), 0x0000, /* 8F40 */
- MB2(0x8A8D), MB2(0xE776), MB2(0xE77B), 0x0000,
- 0x0000, MB2(0xE77A), 0x0000, 0x0000,
- MB2(0xE779), MB2(0x9351), MB2(0xE77C), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE77D),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE77E), 0x0000, 0x0000, MB2(0x8D8C),
- 0x0000, MB2(0x8C44), MB2(0xE780), MB2(0xE781), /* 8F60 */
- MB2(0xE782), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 8F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9068),
- MB2(0xE783), 0x0000, MB2(0x8EAB), MB2(0xE784),
- 0x0000, 0x0000, 0x0000, MB2(0xE785), /* 8FA0 */
- 0x0000, 0x0000, 0x0000, MB2(0x999F),
- MB2(0x999E), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE786), MB2(0xE390), MB2(0xE787),
- MB2(0x9243), MB2(0x904A), MB2(0x945F), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE788),
- 0x0000, 0x0000, MB2(0x95D3), MB2(0x92D2),
- MB2(0x8D9E), 0x0000, 0x0000, MB2(0x9248),
- 0x0000, 0x0000, MB2(0x8949), 0x0000, /* 8FC0 */
- MB2(0x9698), MB2(0x9076), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8C7D), 0x0000,
- 0x0000, MB2(0x8BDF), 0x0000, 0x0000,
- MB2(0x95D4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE789), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE78B), 0x0000, /* 8FE0 */
- 0x0000, MB2(0xE78A), MB2(0x89DE), 0x0000,
- 0x0000, MB2(0x93F4), MB2(0xE78C), MB2(0x9497),
- 0x0000, MB2(0x9352), 0x0000, MB2(0xE78D),
- MB2(0x8F71), 0x0000, 0x0000, 0x0000,
- MB2(0xE78F), 0x0000, 0x0000, MB2(0x96C0),
- MB2(0xE79E), MB2(0xE791), MB2(0xE792), 0x0000,
- 0x0000, MB2(0x92C7), 0x0000, 0x0000,
- MB2(0x91DE), MB2(0x9197), 0x0000, MB2(0x93A6), /* 9000 */
- 0x0000, MB2(0xE790), MB2(0x8B74), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE799),
- 0x0000, MB2(0xE796), MB2(0xE7A3), MB2(0x93A7),
- MB2(0x9280), MB2(0xE793), 0x0000, MB2(0x92FC),
- MB2(0x9372), MB2(0xE794), MB2(0xE798), MB2(0x9080),
- 0x0000, MB2(0x9487), MB2(0x92CA), 0x0000,
- 0x0000, MB2(0x90C0), MB2(0xE797), MB2(0x91AC),
- MB2(0x91A2), MB2(0xE795), MB2(0x88A7), MB2(0x9841), /* 9020 */
- 0x0000, 0x0000, 0x0000, MB2(0xE79A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x91DF), 0x0000,
- 0x0000, MB2(0x8F54), MB2(0x9069), 0x0000,
- 0x0000, MB2(0xE79C), MB2(0xE79B), 0x0000,
- MB2(0x88ED), MB2(0xE79D), 0x0000, 0x0000,
- MB2(0x954E), 0x0000, MB2(0xE7A5), 0x0000,
- 0x0000, MB2(0x93D9), MB2(0x908B), 0x0000, /* 9040 */
- 0x0000, MB2(0x9278), 0x0000, MB2(0x8BF6),
- 0x0000, MB2(0xE7A4), MB2(0x9756), MB2(0x895E),
- 0x0000, MB2(0x95D5), MB2(0x89DF), MB2(0xE79F),
- MB2(0xE7A0), MB2(0xE7A1), MB2(0xE7A2), MB2(0x93B9),
- MB2(0x9242), MB2(0x88E1), MB2(0xE7A6), 0x0000,
- MB2(0xE7A7), MB2(0xEAA1), 0x0000, 0x0000,
- MB2(0x91BB), 0x0000, MB2(0xE7A8), 0x0000,
- MB2(0x8993), MB2(0x916B), 0x0000, MB2(0x8CAD), /* 9060 */
- 0x0000, MB2(0x9779), 0x0000, MB2(0xFBB5),
- MB2(0xE7A9), MB2(0x934B), 0x0000, 0x0000,
- 0x0000, MB2(0x9198), MB2(0x8ED5), MB2(0xE7AA),
- 0x0000, 0x0000, MB2(0xE7AD), 0x0000,
- 0x0000, MB2(0x8F85), MB2(0xE7AB), MB2(0x914A),
- MB2(0x9149), 0x0000, MB2(0x88E2), 0x0000,
- MB2(0x97C9), MB2(0xE7AF), 0x0000, MB2(0x94F0),
- MB2(0xE7B1), MB2(0xE7B0), MB2(0xE7AE), MB2(0xE284), /* 9080 */
- MB2(0x8AD2), 0x0000, 0x0000, MB2(0xE78E),
- 0x0000, MB2(0xE7B3), MB2(0xE7B2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7B4),
- 0x0000, MB2(0x9757), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x93DF), /* 90A0 */
- 0x0000, 0x0000, MB2(0x964D), 0x0000,
- MB2(0xE7B5), 0x0000, MB2(0x8ED7), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7B6),
- 0x0000, MB2(0xE7B7), 0x0000, 0x0000,
- 0x0000, MB2(0xE7B8), 0x0000, 0x0000,
- MB2(0x9340), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x88E8), 0x0000, 0x0000, /* 90C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8D78), 0x0000,
- 0x0000, 0x0000, MB2(0x9859), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7BC),
- 0x0000, 0x0000, MB2(0xFBB6), 0x0000,
- 0x0000, MB2(0x8C53), MB2(0xE7B9), 0x0000, /* 90E0 */
- MB2(0xE7BA), 0x0000, 0x0000, 0x0000,
- MB2(0x9594), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A73), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9758), 0x0000, MB2(0x8BBD),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9373), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7BD), 0x0000, /* 9100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7BE), 0x0000,
- 0x0000, MB2(0xFBB8), 0x0000, 0x0000,
- 0x0000, MB2(0xE7BF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9120 */
- 0x0000, 0x0000, 0x0000, MB2(0xFBB9),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9341), 0x0000, 0x0000,
- MB2(0xE7C1), 0x0000, MB2(0xE7C0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x93D1), MB2(0xE7C2), MB2(0x8F55),
- MB2(0x8EDE), MB2(0x947A), MB2(0x9291), 0x0000,
- 0x0000, 0x0000, MB2(0x8EF0), 0x0000,
- MB2(0x908C), 0x0000, MB2(0xE7C3), 0x0000,
- MB2(0xE7C4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x907C), MB2(0xE7C5), /* 9160 */
- 0x0000, MB2(0xE7C6), 0x0000, 0x0000,
- 0x0000, MB2(0xE7C7), MB2(0x978F), 0x0000,
- MB2(0x8F56), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7C9), MB2(0xE7C8),
- 0x0000, MB2(0x8D79), 0x0000, MB2(0x8D93),
- MB2(0x8E5F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7CC), 0x0000, /* 9180 */
- 0x0000, 0x0000, 0x0000, MB2(0x8F86),
- 0x0000, MB2(0xE7CB), 0x0000, MB2(0xE7CA),
- 0x0000, MB2(0x91E7), 0x0000, 0x0000,
- MB2(0x8CED), 0x0000, MB2(0x90C1), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x94AE),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8F58), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7CD), 0x0000, /* 91A0 */
- MB2(0x8FDD), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7D0), MB2(0xE7CE),
- 0x0000, 0x0000, 0x0000, MB2(0xE7CF),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE7D2), MB2(0xE7D1), 0x0000, 0x0000,
- MB2(0x8FF8), 0x0000, MB2(0xE7D3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE7D4), MB2(0xE7D5), 0x0000, 0x0000, /* 91C0 */
- 0x0000, 0x0000, MB2(0x94CE), MB2(0x8DD1),
- MB2(0x8EDF), MB2(0xE7D6), 0x0000, MB2(0xE7D7),
- MB2(0x97A2), MB2(0x8F64), MB2(0x96EC), MB2(0x97CA),
- MB2(0xE7D8), MB2(0x8BE0), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7D9), MB2(0xFBBB),
- MB2(0x9342), 0x0000, MB2(0xFBBA), MB2(0xE7DC),
- MB2(0x8A98), MB2(0x906A), MB2(0xFBBC), MB2(0xE7DA),
- 0x0000, MB2(0xE7DB), 0x0000, MB2(0x92DE), /* 91E0 */
- MB2(0xFBBF), MB2(0xFBC0), MB2(0x9674), MB2(0x8BFA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFBBD), MB2(0xFBBE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE7DE), MB2(0xE7DF), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE7DD), 0x0000, 0x0000, MB2(0xE7E1),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9200 */
- 0x0000, 0x0000, MB2(0xFBC1), 0x0000,
- 0x0000, 0x0000, MB2(0xFBC3), 0x0000,
- 0x0000, MB2(0x93DD), MB2(0x8A62), 0x0000,
- MB2(0xFBC2), MB2(0xE7E5), 0x0000, 0x0000,
- MB2(0xE7E2), MB2(0xE7E4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE7E0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE86E), 0x0000, 0x0000,
- MB2(0xE7E3), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x97E9), 0x0000, 0x0000, MB2(0x8CD8),
- 0x0000, MB2(0xFBCA), MB2(0xFBC4), 0x0000,
- MB2(0xFBC6), 0x0000, 0x0000, MB2(0xE7ED),
- MB2(0xFBC5), 0x0000, 0x0000, 0x0000, /* 9240 */
- MB2(0x9353), MB2(0xE7E8), 0x0000, 0x0000,
- MB2(0xE7EB), MB2(0xE7E9), 0x0000, MB2(0xE7EE),
- 0x0000, 0x0000, MB2(0xFBC7), 0x0000,
- MB2(0xE7EF), MB2(0xFBC9), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7E7),
- 0x0000, MB2(0xFBC8), MB2(0xE7F4), MB2(0x8994),
- 0x0000, 0x0000, MB2(0xE7E6), 0x0000,
- 0x0000, 0x0000, MB2(0x94AB), 0x0000, /* 9260 */
- MB2(0xE7EA), 0x0000, MB2(0x8FDE), MB2(0xFBCB),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8D7A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFBCD),
- MB2(0xFBCE), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9667), 0x0000,
- MB2(0x8BE2), 0x0000, 0x0000, MB2(0x8F65), /* 9280 */
- 0x0000, MB2(0x93BA), 0x0000, 0x0000,
- MB2(0xFA5F), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x914C), 0x0000, MB2(0xE7F2),
- 0x0000, MB2(0xE7EC), MB2(0xE7F1), 0x0000,
- MB2(0x96C1), 0x0000, MB2(0x92B6), MB2(0xE7F3),
- MB2(0xE7F0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 92A0 */
- 0x0000, 0x0000, 0x0000, MB2(0xFBCC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x914B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7F7),
- 0x0000, MB2(0xE7F6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 92C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7F5),
- MB2(0xFBD2), 0x0000, MB2(0x964E), MB2(0xFBD6),
- 0x0000, MB2(0xFBD4), 0x0000, MB2(0xFBD0),
- 0x0000, MB2(0xFBD1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFBD5), 0x0000, 0x0000, 0x0000, /* 92E0 */
- MB2(0x8F9B), 0x0000, 0x0000, MB2(0xFBCF),
- 0x0000, MB2(0xE7F8), MB2(0x95DD), 0x0000,
- 0x0000, MB2(0x8973), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9565), MB2(0x9292),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8B98), MB2(0xFA65), MB2(0xE7FA), MB2(0xFBD9),
- MB2(0x8D7C), 0x0000, 0x0000, MB2(0xFBDC),
- 0x0000, 0x0000, MB2(0xFBDE), 0x0000, /* 9300 */
- 0x0000, 0x0000, MB2(0x8E4B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE7F9),
- MB2(0x908D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x908E), MB2(0xE840), MB2(0xE842), 0x0000,
- 0x0000, MB2(0xFBDD), MB2(0xFBDB), 0x0000,
- MB2(0x8FF9), MB2(0xFBD8), MB2(0xE841), MB2(0xE843), /* 9320 */
- 0x0000, MB2(0xFBD7), MB2(0x8BD1), 0x0000,
- MB2(0x9564), 0x0000, 0x0000, MB2(0x8EE0),
- MB2(0x9842), 0x0000, MB2(0xE7FC), MB2(0x8DF6),
- 0x0000, 0x0000, MB2(0x985E), 0x0000,
- 0x0000, MB2(0xE845), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE844), MB2(0xE846),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9340 */
- MB2(0xE7FB), 0x0000, 0x0000, 0x0000,
- MB2(0xFA5E), 0x0000, 0x0000, MB2(0x93E7),
- 0x0000, MB2(0x9374), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x92D5), 0x0000, MB2(0xE84B), MB2(0xFBE0),
- 0x0000, 0x0000, 0x0000, MB2(0x9262),
- MB2(0xE847), 0x0000, 0x0000, 0x0000,
- MB2(0xE848), 0x0000, 0x0000, 0x0000, /* 9360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8C4C), 0x0000, MB2(0xE84A), 0x0000,
- MB2(0xFBDF), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8CAE), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE849), 0x0000, MB2(0x8FDF), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8A99), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE84F), 0x0000, MB2(0x8DBD), MB2(0x9199),
- 0x0000, 0x0000, MB2(0x92C8), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 93A0 */
- MB2(0xFBE1), 0x0000, 0x0000, MB2(0x8A5A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE84D), MB2(0xE84E), MB2(0x92C1), 0x0000,
- MB2(0xE84C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE850), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE856), /* 93C0 */
- 0x0000, 0x0000, MB2(0xFBE2), 0x0000,
- MB2(0xE859), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE858), MB2(0x934C), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE851), MB2(0xE852),
- MB2(0xE855), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE857), MB2(0xFBE3), 0x0000,
- 0x0000, MB2(0x8BBE), 0x0000, 0x0000, /* 93E0 */
- MB2(0xE85A), MB2(0xE854), 0x0000, 0x0000,
- MB2(0xE853), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFBE4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE85E), /* 9400 */
- 0x0000, 0x0000, 0x0000, MB2(0xE85F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE860), 0x0000, 0x0000, MB2(0xE85D),
- MB2(0xE85C), 0x0000, 0x0000, 0x0000,
- MB2(0x8FE0), MB2(0x93A8), MB2(0xE85B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE864), 0x0000, 0x0000, /* 9420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE862),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFBE5), 0x0000, 0x0000,
- 0x0000, MB2(0xE863), MB2(0xE861), 0x0000,
- MB2(0x91F6), 0x0000, MB2(0xE865), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE866), 0x0000, 0x0000, /* 9440 */
- MB2(0xE868), MB2(0xFBE6), 0x0000, 0x0000,
- MB2(0xFBE7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8AD3), MB2(0xE867), MB2(0x96F8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE873), MB2(0xE869),
- 0x0000, 0x0000, MB2(0xE86C), 0x0000,
- MB2(0xE86A), 0x0000, MB2(0xE86B), 0x0000, /* 9460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE86D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE86F), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE870), 0x0000, MB2(0xE871),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE874), MB2(0xE872), MB2(0xE875), MB2(0xE877),
- 0x0000, MB2(0xE876), 0x0000, 0x0000, /* 9480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 94A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 94C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 94E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x92B7),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x96E5), 0x0000, MB2(0xE878), MB2(0x914D), /* 9580 */
- 0x0000, 0x0000, 0x0000, MB2(0xE879),
- 0x0000, MB2(0x95C2), MB2(0xE87A), MB2(0x8A4A),
- 0x0000, 0x0000, 0x0000, MB2(0x895B),
- 0x0000, MB2(0x8AD5), MB2(0xFBE8), MB2(0x8AD4),
- MB2(0xE87B), 0x0000, MB2(0xE87C), 0x0000,
- MB2(0xE87D), MB2(0xE87E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE880), 0x0000, MB2(0x8AD6), MB2(0x8A74), /* 95A0 */
- MB2(0x8D7D), MB2(0x94B4), 0x0000, MB2(0xE882),
- MB2(0xE881), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE883), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x897B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE886), 0x0000, MB2(0xE885),
- MB2(0xE884), 0x0000, MB2(0xE887), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE88A), /* 95C0 */
- 0x0000, 0x0000, 0x0000, MB2(0x88C5),
- 0x0000, 0x0000, MB2(0xE888), 0x0000,
- MB2(0xE88C), MB2(0xE88B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE88E), MB2(0xE88D), MB2(0xE88F), 0x0000,
- MB2(0x93AC), 0x0000, 0x0000, 0x0000,
- MB2(0xE890), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE891), MB2(0xE893), 0x0000, /* 95E0 */
- 0x0000, MB2(0xE892), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x958C), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE894), 0x0000, 0x0000, /* 9620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE895), 0x0000, MB2(0x8DE3), 0x0000,
- 0x0000, 0x0000, MB2(0xE896), MB2(0xE897),
- 0x0000, 0x0000, MB2(0x9668), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x916A),
- 0x0000, 0x0000, 0x0000, MB2(0x88A2),
- MB2(0x91C9), 0x0000, MB2(0xE898), 0x0000, /* 9640 */
- MB2(0x958D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE89B),
- MB2(0xE899), MB2(0x8D7E), 0x0000, MB2(0xE89A),
- MB2(0x8CC0), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x95C3),
- MB2(0xE89D), MB2(0xE89F), MB2(0xE89E), MB2(0xE8A0),
- 0x0000, 0x0000, MB2(0x8940), MB2(0x9077), /* 9660 */
- MB2(0x8F9C), MB2(0x8AD7), MB2(0xE8A1), 0x0000,
- 0x0000, 0x0000, MB2(0x9486), 0x0000,
- MB2(0xE8A3), 0x0000, 0x0000, 0x0000,
- MB2(0x8941), 0x0000, MB2(0xE8A2), MB2(0x92C2),
- 0x0000, MB2(0x97CB), MB2(0x93A9), MB2(0xE89C),
- MB2(0x97A4), 0x0000, MB2(0x8CAF), 0x0000,
- 0x0000, MB2(0x977A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9680 */
- 0x0000, MB2(0x8BF7), MB2(0x97B2), 0x0000,
- MB2(0x8C47), 0x0000, MB2(0x91E0), MB2(0xE440),
- 0x0000, MB2(0xE8A4), MB2(0x8A4B), MB2(0x908F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8A75), MB2(0xE8A6), 0x0000, MB2(0xE8A7),
- MB2(0xE8A5), MB2(0x8C84), 0x0000, MB2(0x8DDB),
- MB2(0x8FE1), MB2(0xFBEB), 0x0000, 0x0000,
- MB2(0x8942), 0x0000, 0x0000, MB2(0x97D7), /* 96A0 */
- 0x0000, 0x0000, 0x0000, MB2(0xE8A9),
- MB2(0xE7AC), 0x0000, MB2(0xE8A8), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFBEC),
- MB2(0xE8AC), MB2(0xE8AA), MB2(0xE8AB), 0x0000,
- MB2(0xE8AD), 0x0000, MB2(0xE8AE), MB2(0x97EA),
- MB2(0xE8AF), MB2(0xE8B0), 0x0000, MB2(0x90C7),
- MB2(0x94B9), 0x0000, 0x0000, 0x0000,
- MB2(0x909D), MB2(0x8AE5), 0x0000, 0x0000, /* 96C0 */
- MB2(0x9759), MB2(0x89EB), MB2(0x8F57), MB2(0x8CD9),
- 0x0000, MB2(0xE8B3), 0x0000, MB2(0xE8B2),
- MB2(0x8E93), MB2(0xE8B4), MB2(0xE8B1), 0x0000,
- 0x0000, MB2(0x8E47), 0x0000, 0x0000,
- 0x0000, MB2(0xE8B8), MB2(0xE5AB), 0x0000,
- 0x0000, MB2(0x99D4), 0x0000, MB2(0x9097),
- MB2(0xE8B6), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x97A3), MB2(0x93EF), /* 96E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x894A), 0x0000, MB2(0x90E1), MB2(0x8EB4),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x95B5), 0x0000, MB2(0x895F), 0x0000,
- 0x0000, 0x0000, MB2(0x97EB), MB2(0x978B),
- 0x0000, MB2(0xE8B9), 0x0000, MB2(0x9364),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8EF9), 0x0000, 0x0000, 0x0000, /* 9700 */
- MB2(0xE8BA), 0x0000, MB2(0xE8BB), MB2(0x906B),
- MB2(0xE8BC), 0x0000, MB2(0x97EC), 0x0000,
- 0x0000, MB2(0xE8B7), MB2(0xE8BE), MB2(0xE8C0),
- 0x0000, MB2(0xE8BF), 0x0000, MB2(0xE8BD),
- 0x0000, 0x0000, MB2(0xE8C1), 0x0000,
- 0x0000, MB2(0xE8C2), 0x0000, 0x0000,
- MB2(0x919A), 0x0000, MB2(0x89E0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9720 */
- MB2(0xE8C3), 0x0000, 0x0000, MB2(0x96B6),
- 0x0000, 0x0000, MB2(0xE8C4), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE8C5), 0x0000, MB2(0x9849), MB2(0xFBED),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9E50), MB2(0xE8C6), 0x0000, MB2(0xFBEE),
- 0x0000, MB2(0xE8C7), MB2(0xE8C8), 0x0000,
- 0x0000, 0x0000, MB2(0xE8CC), MB2(0xFBEF), /* 9740 */
- MB2(0xE8C9), 0x0000, MB2(0xE8CA), 0x0000,
- MB2(0xE8CB), MB2(0xE8CD), 0x0000, 0x0000,
- 0x0000, MB2(0xFBF0), 0x0000, MB2(0xFBF1),
- 0x0000, MB2(0xFBF2), MB2(0x90C2), 0x0000,
- 0x0000, MB2(0xFBF3), MB2(0x96F5), 0x0000,
- 0x0000, MB2(0x90C3), 0x0000, 0x0000,
- MB2(0xE8CE), 0x0000, MB2(0x94F1), 0x0000,
- MB2(0xE8CF), MB2(0xEA72), MB2(0x96CA), 0x0000, /* 9760 */
- MB2(0xE8D0), 0x0000, MB2(0xE8D1), 0x0000,
- MB2(0xE8D2), MB2(0x8A76), 0x0000, MB2(0xE8D4),
- 0x0000, MB2(0x9078), 0x0000, 0x0000,
- 0x0000, MB2(0xE8D5), 0x0000, 0x0000,
- MB2(0x8C43), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE8D6), MB2(0xE8DA), 0x0000,
- MB2(0xE8D8), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE8D9), 0x0000, 0x0000, /* 9780 */
- MB2(0x8A93), MB2(0xE8D7), MB2(0xE8DB), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE8DC),
- 0x0000, MB2(0x88C6), 0x0000, MB2(0xE8DD),
- MB2(0xE8DE), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8FE2), 0x0000, 0x0000, 0x0000,
- MB2(0xE8DF), 0x0000, 0x0000, 0x0000,
- MB2(0x8B66), 0x0000, 0x0000, MB2(0xE8E2), /* 97A0 */
- 0x0000, 0x0000, MB2(0xE8E1), 0x0000,
- MB2(0xE8E0), 0x0000, 0x0000, MB2(0xE691),
- 0x0000, MB2(0x95DA), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE8E3),
- MB2(0xE8E4), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE8E5), /* 97C0 */
- 0x0000, 0x0000, MB2(0xE8E6), 0x0000,
- MB2(0xE8E7), 0x0000, 0x0000, MB2(0xE8E8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8AD8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE8E9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 97E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE8EA), MB2(0x9442), 0x0000,
- 0x0000, 0x0000, MB2(0xE8EC), MB2(0x89B9),
- 0x0000, MB2(0xE8EF), MB2(0xE8EE), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8943),
- 0x0000, 0x0000, 0x0000, MB2(0x8BBF),
- 0x0000, MB2(0x95C5), MB2(0x92B8), MB2(0x8DA0), /* 9800 */
- 0x0000, MB2(0x8D80), MB2(0x8F87), 0x0000,
- MB2(0x907B), 0x0000, 0x0000, 0x0000,
- MB2(0xE8F1), 0x0000, 0x0000, MB2(0xE8F0),
- MB2(0x9761), MB2(0x8AE6), MB2(0x94D0), MB2(0x93DA),
- 0x0000, 0x0000, 0x0000, MB2(0x909C),
- MB2(0x97CC), 0x0000, MB2(0x8C7A), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE8F4), 0x0000, 0x0000, /* 9820 */
- MB2(0xE8F3), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x966A), MB2(0x93AA), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x896F), 0x0000, 0x0000, MB2(0xE8F5),
- MB2(0xE8F2), 0x0000, 0x0000, MB2(0x9570),
- MB2(0x978A), MB2(0xE8F6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9840 */
- 0x0000, 0x0000, MB2(0xE8F7), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE8F9),
- MB2(0x91E8), MB2(0x8A7A), MB2(0x8A7B), MB2(0xE8F8),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8AE7), MB2(0x8CB0), 0x0000, MB2(0xFBF4),
- MB2(0x8AE8), 0x0000, 0x0000, MB2(0x935E),
- 0x0000, 0x0000, MB2(0x97DE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9860 */
- 0x0000, MB2(0xFBF5), 0x0000, MB2(0x8CDA),
- 0x0000, 0x0000, 0x0000, MB2(0xE8FA),
- 0x0000, 0x0000, 0x0000, MB2(0xE8FB),
- MB2(0xE8FC), MB2(0xE940), 0x0000, MB2(0xE942),
- MB2(0xE941), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 98A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9597), 0x0000, MB2(0xE943), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE944),
- 0x0000, MB2(0xE945), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE946), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE948), /* 98C0 */
- MB2(0xE947), 0x0000, MB2(0xE949), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x94F2),
- MB2(0xE3CA), 0x0000, 0x0000, MB2(0x9048),
- 0x0000, 0x0000, MB2(0x8B51), 0x0000, /* 98E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE94A), 0x0000, MB2(0xE94B),
- 0x0000, MB2(0x99AA), MB2(0x9F5A), MB2(0x94D1),
- 0x0000, 0x0000, MB2(0x88F9), 0x0000,
- MB2(0x88B9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8E94), MB2(0x964F), MB2(0x8FFC), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE94C), /* 9900 */
- 0x0000, MB2(0x96DD), 0x0000, 0x0000,
- 0x0000, MB2(0xE94D), MB2(0x977B), 0x0000,
- MB2(0x8961), 0x0000, 0x0000, 0x0000,
- MB2(0x8E60), 0x0000, MB2(0xE94E), MB2(0x89EC),
- MB2(0xE94F), 0x0000, 0x0000, 0x0000,
- MB2(0xE950), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE952), MB2(0xE953), 0x0000,
- MB2(0xE955), MB2(0xE951), 0x0000, 0x0000, /* 9920 */
- MB2(0xE954), 0x0000, 0x0000, MB2(0xFBF8),
- MB2(0x8AD9), 0x0000, 0x0000, 0x0000,
- MB2(0xE956), 0x0000, MB2(0xE957), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE958), MB2(0xE959), 0x0000,
- 0x0000, 0x0000, MB2(0xE95A), 0x0000, /* 9940 */
- 0x0000, MB2(0xE95C), 0x0000, 0x0000,
- 0x0000, MB2(0xE95B), 0x0000, MB2(0xE95E),
- MB2(0xE961), 0x0000, 0x0000, 0x0000,
- MB2(0xE95D), MB2(0xE95F), MB2(0xE960), 0x0000,
- 0x0000, MB2(0xE962), 0x0000, MB2(0x8BC0),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8EF1), MB2(0xE963),
- MB2(0xE964), MB2(0x8D81), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFBFA), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 99A0 */
- 0x0000, MB2(0xE965), 0x0000, 0x0000,
- MB2(0x8A5D), 0x0000, 0x0000, 0x0000,
- MB2(0x946E), MB2(0xE966), MB2(0xE967), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9279),
- MB2(0x93E9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE968), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x949D), 0x0000, 0x0000, /* 99C0 */
- MB2(0x91CA), MB2(0x8977), MB2(0x8BEC), 0x0000,
- MB2(0x8BED), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x9293), MB2(0xE96D), MB2(0x8BEE), 0x0000,
- 0x0000, MB2(0x89ED), 0x0000, 0x0000,
- MB2(0xE96C), 0x0000, 0x0000, MB2(0xE96A),
- 0x0000, MB2(0xE96B), 0x0000, MB2(0xE969),
- 0x0000, 0x0000, MB2(0xE977), 0x0000, /* 99E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE96E), MB2(0xE96F), 0x0000,
- 0x0000, MB2(0xE970), MB2(0xE971), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE973), 0x0000, 0x0000, MB2(0xE972),
- 0x0000, 0x0000, 0x0000, MB2(0x8F78),
- 0x0000, MB2(0xE974), 0x0000, 0x0000, /* 9A00 */
- 0x0000, MB2(0xE976), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x8B52), MB2(0xE975),
- 0x0000, 0x0000, MB2(0x919B), MB2(0x8CB1),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE978), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9A20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x91CB), 0x0000, 0x0000, MB2(0xE979),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x93AB), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE97A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE980), 0x0000,
- MB2(0xE97D), 0x0000, MB2(0xE97C), MB2(0xE97E), /* 9A40 */
- 0x0000, MB2(0xE97B), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE982), MB2(0xFBFB), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE981), 0x0000, MB2(0xE984),
- 0x0000, 0x0000, MB2(0x8BC1), MB2(0xE983),
- 0x0000, 0x0000, 0x0000, MB2(0xE985),
- 0x0000, 0x0000, MB2(0xE986), 0x0000, /* 9A60 */
- MB2(0xE988), MB2(0xE987), 0x0000, 0x0000,
- 0x0000, MB2(0xE989), MB2(0xE98B), MB2(0xE98A),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9A80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9AA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8D9C), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE98C), 0x0000, 0x0000,
- MB2(0xE98D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8A5B), 0x0000, 0x0000, 0x0000,
- MB2(0xE98E), 0x0000, 0x0000, 0x0000,
- MB2(0xE98F), 0x0000, 0x0000, 0x0000, /* 9AC0 */
- MB2(0x9091), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE990),
- 0x0000, MB2(0xE991), 0x0000, MB2(0xE992),
- MB2(0xE993), 0x0000, 0x0000, 0x0000,
- MB2(0x8D82), MB2(0xFBFC), 0x0000, 0x0000,
- MB2(0xFC40), 0x0000, MB2(0xE994), MB2(0xE995),
- 0x0000, 0x0000, MB2(0xE996), MB2(0xE997), /* 9AE0 */
- 0x0000, 0x0000, MB2(0xE998), 0x0000,
- 0x0000, 0x0000, MB2(0x94AF), MB2(0xE99A),
- 0x0000, MB2(0x9545), MB2(0xE99B), MB2(0xE999),
- 0x0000, MB2(0xE99D), 0x0000, 0x0000,
- MB2(0xE99C), 0x0000, 0x0000, MB2(0xE99E),
- 0x0000, 0x0000, 0x0000, MB2(0xE99F),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9B00 */
- 0x0000, 0x0000, MB2(0xE9A0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE9A1), 0x0000, MB2(0xE9A2), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9A3),
- 0x0000, 0x0000, MB2(0xE9A4), MB2(0xE9A5), /* 9B20 */
- 0x0000, MB2(0xE9A6), 0x0000, MB2(0xE9A7),
- MB2(0xE9A8), MB2(0xE9A9), MB2(0xE9AA), 0x0000,
- 0x0000, 0x0000, MB2(0xE9AB), MB2(0xE9AC),
- 0x0000, MB2(0x9F54), MB2(0xE9AD), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE2F6),
- MB2(0x8B53), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A40), MB2(0x8DB0), MB2(0xE9AF), /* 9B40 */
- MB2(0xE9AE), MB2(0x96A3), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE9B1), MB2(0xE9B2), MB2(0xE9B0),
- 0x0000, MB2(0xE9B3), 0x0000, 0x0000,
- MB2(0x9682), 0x0000, 0x0000, 0x0000,
- MB2(0xE9B4), 0x0000, MB2(0x8B9B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9B60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9844),
- 0x0000, 0x0000, MB2(0xFC42), 0x0000,
- MB2(0xE9B5), MB2(0xFC41), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9B7), /* 9B80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x88BC), MB2(0xFC43),
- 0x0000, MB2(0xE9B8), MB2(0x95A9), MB2(0xE9B6),
- 0x0000, 0x0000, MB2(0xE9B9), MB2(0xE9BA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9BB),
- MB2(0xE9BC), 0x0000, 0x0000, 0x0000, /* 9BA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE9BD), 0x0000, MB2(0x968E), MB2(0x8E4C),
- 0x0000, MB2(0x8DF8), MB2(0x914E), 0x0000,
- 0x0000, MB2(0xFC44), 0x0000, 0x0000,
- MB2(0xE9BE), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE9C1), 0x0000, MB2(0xFC45),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE9BF), 0x0000, 0x0000, 0x0000, /* 9BC0 */
- 0x0000, 0x0000, MB2(0xE9C2), 0x0000,
- 0x0000, MB2(0x8CEF), MB2(0xE9C0), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9C3),
- 0x0000, MB2(0xE9C4), MB2(0xE9C5), 0x0000,
- MB2(0xE9C9), 0x0000, MB2(0x8E49), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x91E2),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE9CA), MB2(0xE9C7), MB2(0xE9C6), /* 9BE0 */
- MB2(0xE9C8), 0x0000, 0x0000, 0x0000,
- MB2(0x8C7E), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE9CE), MB2(0xE9CD), MB2(0xE9CC), 0x0000,
- 0x0000, MB2(0x88B1), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFC46), 0x0000, 0x0000, 0x0000, /* 9C00 */
- MB2(0xE9D8), 0x0000, MB2(0xE9D4), 0x0000,
- MB2(0xE9D5), MB2(0xE9D1), MB2(0xE9D7), 0x0000,
- MB2(0xE9D3), MB2(0x8A82), 0x0000, 0x0000,
- MB2(0x986B), 0x0000, MB2(0xE9D6), MB2(0xE9D2),
- MB2(0xE9D0), MB2(0xE9CF), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9DA),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xE9DD), 0x0000, 0x0000, /* 9C20 */
- MB2(0xE9DC), MB2(0xE9DB), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x9568), MB2(0xE9D9), MB2(0x88F1),
- MB2(0xE9DE), 0x0000, MB2(0xE9E0), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8A8F), MB2(0xE9CB), MB2(0x8956),
- 0x0000, 0x0000, MB2(0xE9E2), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9C40 */
- 0x0000, 0x0000, MB2(0xE9E1), MB2(0xE9DF),
- MB2(0x924C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9690), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x97D8),
- 0x0000, 0x0000, MB2(0xE9E3), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xE9E4), 0x0000, 0x0000, 0x0000, /* 9C60 */
- 0x0000, 0x0000, 0x0000, MB2(0xE9E5),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xE9E6), 0x0000,
- MB2(0xE9E7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9C80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9CA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9CC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9CE0 */
- 0x0000, MB2(0x92B9), 0x0000, MB2(0xE9E8),
- 0x0000, MB2(0x94B5), 0x0000, MB2(0xE9ED),
- MB2(0xE9E9), 0x0000, 0x0000, 0x0000,
- MB2(0xE9EA), 0x0000, 0x0000, MB2(0x9650),
- MB2(0x96C2), 0x0000, MB2(0x93CE), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xE9EE), /* 9D00 */
- 0x0000, 0x0000, MB2(0xE9EF), MB2(0x93BC),
- MB2(0xE9EC), MB2(0xE9EB), 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x89A8), 0x0000,
- 0x0000, 0x0000, MB2(0xE9F7), 0x0000,
- 0x0000, MB2(0xE9F6), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8995),
- 0x0000, 0x0000, 0x0000, MB2(0xE9F4),
- 0x0000, 0x0000, 0x0000, MB2(0xE9F3), /* 9D20 */
- 0x0000, 0x0000, MB2(0xE9F1), 0x0000,
- MB2(0x8A9B), 0x0000, MB2(0xE9F0), MB2(0x8EB0),
- MB2(0x89A7), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8D83),
- 0x0000, 0x0000, MB2(0xE9FA), MB2(0xE9F9),
- 0x0000, MB2(0xE9F8), 0x0000, 0x0000, /* 9D40 */
- MB2(0xE9F5), 0x0000, MB2(0xE9FB), 0x0000,
- MB2(0xE9FC), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA44), MB2(0xEA43), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA45), 0x0000, 0x0000,
- MB2(0x894C), MB2(0xEA40), MB2(0xEA41), 0x0000,
- MB2(0x8D94), MB2(0x96B7), 0x0000, 0x0000, /* 9D60 */
- MB2(0xEA42), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xFC48),
- MB2(0x9651), 0x0000, 0x0000, MB2(0xEA4A),
- MB2(0xFC47), 0x0000, MB2(0xEA46), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xEA4B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9D80 */
- 0x0000, 0x0000, 0x0000, MB2(0xEA48),
- 0x0000, MB2(0xEA47), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8C7B),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xEA4C), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9DA0 */
- MB2(0xEA4D), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA4E), 0x0000, MB2(0xEA49),
- 0x0000, 0x0000, 0x0000, MB2(0xE9F2),
- 0x0000, 0x0000, MB2(0xEA4F), 0x0000,
- MB2(0x92DF), 0x0000, 0x0000, 0x0000,
- MB2(0xEA53), 0x0000, MB2(0xEA54), MB2(0xEA52),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA51), MB2(0xEA57), 0x0000, /* 9DC0 */
- MB2(0xEA50), 0x0000, MB2(0xEA55), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xEA56),
- 0x0000, 0x0000, 0x0000, MB2(0xEA59),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA58), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9DE0 */
- 0x0000, 0x0000, MB2(0xEA5B), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA5C), 0x0000, MB2(0xEA5D),
- 0x0000, 0x0000, MB2(0x9868), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA5A), MB2(0x91E9), MB2(0x8DEB), 0x0000,
- 0x0000, MB2(0xEA5E), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFC4A), MB2(0xEA5F), MB2(0xEA60),
- 0x0000, 0x0000, MB2(0xEA61), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9E60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA62), 0x0000, 0x0000,
- MB2(0x8CB2), MB2(0xEA63), 0x0000, 0x0000,
- 0x0000, MB2(0xEA64), 0x0000, MB2(0x8EAD),
- 0x0000, MB2(0xEA65), 0x0000, 0x0000, /* 9E80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA66), 0x0000, 0x0000, MB2(0xEA67),
- MB2(0xEA68), 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA6B), MB2(0xEA69), MB2(0x985B),
- 0x0000, MB2(0xEA6A), 0x0000, MB2(0x97ED),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA6C), 0x0000, MB2(0x97D9),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9EA0 */
- 0x0000, MB2(0xEA6D), MB2(0x949E), 0x0000,
- 0x0000, MB2(0xEA6E), MB2(0xEA70), 0x0000,
- 0x0000, MB2(0xEA71), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA6F), MB2(0x8D8D), MB2(0x96CB), MB2(0x9683),
- MB2(0x9BF5), 0x0000, MB2(0x9F80), MB2(0x969B),
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9EC0 */
- MB2(0x89A9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA73), MB2(0x8B6F), MB2(0xEA74), MB2(0xEA75),
- MB2(0xEA76), MB2(0xFC4B), MB2(0x8D95), 0x0000,
- MB2(0xEA77), 0x0000, 0x0000, 0x0000,
- MB2(0xE0D2), MB2(0x96D9), 0x0000, MB2(0x91E1),
- MB2(0xEA78), MB2(0xEA7A), MB2(0xEA79), 0x0000,
- MB2(0xEA7B), 0x0000, 0x0000, 0x0000, /* 9EE0 */
- 0x0000, MB2(0xEA7C), 0x0000, 0x0000,
- MB2(0xEA7D), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xEA7E),
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA80), 0x0000, MB2(0xEA81), MB2(0xEA82),
- 0x0000, MB2(0xEA83), 0x0000, MB2(0xEA84),
- MB2(0xEA85), MB2(0xEA86), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9F00 */
- 0x0000, 0x0000, 0x0000, MB2(0xEA87),
- MB2(0xEA88), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0x9343), 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x8CDB),
- 0x0000, MB2(0xEA8A), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x916C), MB2(0xEA8B), 0x0000, 0x0000, /* 9F20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA8C), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0x9540),
- 0x0000, 0x0000, MB2(0xEA8D), 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9F40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xEA8E), MB2(0xE256),
- 0x0000, 0x0000, MB2(0xE6D8), MB2(0xE8EB),
- 0x0000, 0x0000, MB2(0xEA8F), 0x0000,
- MB2(0xEA90), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, MB2(0xEA92),
- MB2(0xEA93), MB2(0xEA94), MB2(0x97EE), MB2(0xEA91), /* 9F60 */
- 0x0000, 0x0000, MB2(0xEA95), MB2(0xEA96),
- 0x0000, 0x0000, MB2(0xEA98), 0x0000,
- MB2(0xEA97), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xEA9A), 0x0000,
- 0x0000, 0x0000, MB2(0xEA9B), MB2(0xEA99),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9F80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x97B4), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xEA9C), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xEA9D), MB2(0xE273), 0x0000, 0x0000,
- MB2(0xEA9E), 0x0000, 0x0000, 0x0000, /* 9FA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9FC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* 9FE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* A9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ABE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ACE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ADE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* AFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* B9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* BFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* C9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* CFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* D9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* DFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xF040), MB2(0xF041), MB2(0xF042), MB2(0xF043), /* E000 */
- MB2(0xF044), MB2(0xF045), MB2(0xF046), MB2(0xF047),
- MB2(0xF048), MB2(0xF049), MB2(0xF04A), MB2(0xF04B),
- MB2(0xF04C), MB2(0xF04D), MB2(0xF04E), MB2(0xF04F),
- MB2(0xF050), MB2(0xF051), MB2(0xF052), MB2(0xF053),
- MB2(0xF054), MB2(0xF055), MB2(0xF056), MB2(0xF057),
- MB2(0xF058), MB2(0xF059), MB2(0xF05A), MB2(0xF05B),
- MB2(0xF05C), MB2(0xF05D), MB2(0xF05E), MB2(0xF05F),
- MB2(0xF060), MB2(0xF061), MB2(0xF062), MB2(0xF063), /* E020 */
- MB2(0xF064), MB2(0xF065), MB2(0xF066), MB2(0xF067),
- MB2(0xF068), MB2(0xF069), MB2(0xF06A), MB2(0xF06B),
- MB2(0xF06C), MB2(0xF06D), MB2(0xF06E), MB2(0xF06F),
- MB2(0xF070), MB2(0xF071), MB2(0xF072), MB2(0xF073),
- MB2(0xF074), MB2(0xF075), MB2(0xF076), MB2(0xF077),
- MB2(0xF078), MB2(0xF079), MB2(0xF07A), MB2(0xF07B),
- MB2(0xF07C), MB2(0xF07D), MB2(0xF07E), MB2(0xF080),
- MB2(0xF081), MB2(0xF082), MB2(0xF083), MB2(0xF084), /* E040 */
- MB2(0xF085), MB2(0xF086), MB2(0xF087), MB2(0xF088),
- MB2(0xF089), MB2(0xF08A), MB2(0xF08B), MB2(0xF08C),
- MB2(0xF08D), MB2(0xF08E), MB2(0xF08F), MB2(0xF090),
- MB2(0xF091), MB2(0xF092), MB2(0xF093), MB2(0xF094),
- MB2(0xF095), MB2(0xF096), MB2(0xF097), MB2(0xF098),
- MB2(0xF099), MB2(0xF09A), MB2(0xF09B), MB2(0xF09C),
- MB2(0xF09D), MB2(0xF09E), MB2(0xF09F), MB2(0xF0A0),
- MB2(0xF0A1), MB2(0xF0A2), MB2(0xF0A3), MB2(0xF0A4), /* E060 */
- MB2(0xF0A5), MB2(0xF0A6), MB2(0xF0A7), MB2(0xF0A8),
- MB2(0xF0A9), MB2(0xF0AA), MB2(0xF0AB), MB2(0xF0AC),
- MB2(0xF0AD), MB2(0xF0AE), MB2(0xF0AF), MB2(0xF0B0),
- MB2(0xF0B1), MB2(0xF0B2), MB2(0xF0B3), MB2(0xF0B4),
- MB2(0xF0B5), MB2(0xF0B6), MB2(0xF0B7), MB2(0xF0B8),
- MB2(0xF0B9), MB2(0xF0BA), MB2(0xF0BB), MB2(0xF0BC),
- MB2(0xF0BD), MB2(0xF0BE), MB2(0xF0BF), MB2(0xF0C0),
- MB2(0xF0C1), MB2(0xF0C2), MB2(0xF0C3), MB2(0xF0C4), /* E080 */
- MB2(0xF0C5), MB2(0xF0C6), MB2(0xF0C7), MB2(0xF0C8),
- MB2(0xF0C9), MB2(0xF0CA), MB2(0xF0CB), MB2(0xF0CC),
- MB2(0xF0CD), MB2(0xF0CE), MB2(0xF0CF), MB2(0xF0D0),
- MB2(0xF0D1), MB2(0xF0D2), MB2(0xF0D3), MB2(0xF0D4),
- MB2(0xF0D5), MB2(0xF0D6), MB2(0xF0D7), MB2(0xF0D8),
- MB2(0xF0D9), MB2(0xF0DA), MB2(0xF0DB), MB2(0xF0DC),
- MB2(0xF0DD), MB2(0xF0DE), MB2(0xF0DF), MB2(0xF0E0),
- MB2(0xF0E1), MB2(0xF0E2), MB2(0xF0E3), MB2(0xF0E4), /* E0A0 */
- MB2(0xF0E5), MB2(0xF0E6), MB2(0xF0E7), MB2(0xF0E8),
- MB2(0xF0E9), MB2(0xF0EA), MB2(0xF0EB), MB2(0xF0EC),
- MB2(0xF0ED), MB2(0xF0EE), MB2(0xF0EF), MB2(0xF0F0),
- MB2(0xF0F1), MB2(0xF0F2), MB2(0xF0F3), MB2(0xF0F4),
- MB2(0xF0F5), MB2(0xF0F6), MB2(0xF0F7), MB2(0xF0F8),
- MB2(0xF0F9), MB2(0xF0FA), MB2(0xF0FB), MB2(0xF0FC),
- MB2(0xF140), MB2(0xF141), MB2(0xF142), MB2(0xF143),
- MB2(0xF144), MB2(0xF145), MB2(0xF146), MB2(0xF147), /* E0C0 */
- MB2(0xF148), MB2(0xF149), MB2(0xF14A), MB2(0xF14B),
- MB2(0xF14C), MB2(0xF14D), MB2(0xF14E), MB2(0xF14F),
- MB2(0xF150), MB2(0xF151), MB2(0xF152), MB2(0xF153),
- MB2(0xF154), MB2(0xF155), MB2(0xF156), MB2(0xF157),
- MB2(0xF158), MB2(0xF159), MB2(0xF15A), MB2(0xF15B),
- MB2(0xF15C), MB2(0xF15D), MB2(0xF15E), MB2(0xF15F),
- MB2(0xF160), MB2(0xF161), MB2(0xF162), MB2(0xF163),
- MB2(0xF164), MB2(0xF165), MB2(0xF166), MB2(0xF167), /* E0E0 */
- MB2(0xF168), MB2(0xF169), MB2(0xF16A), MB2(0xF16B),
- MB2(0xF16C), MB2(0xF16D), MB2(0xF16E), MB2(0xF16F),
- MB2(0xF170), MB2(0xF171), MB2(0xF172), MB2(0xF173),
- MB2(0xF174), MB2(0xF175), MB2(0xF176), MB2(0xF177),
- MB2(0xF178), MB2(0xF179), MB2(0xF17A), MB2(0xF17B),
- MB2(0xF17C), MB2(0xF17D), MB2(0xF17E), MB2(0xF180),
- MB2(0xF181), MB2(0xF182), MB2(0xF183), MB2(0xF184),
- MB2(0xF185), MB2(0xF186), MB2(0xF187), MB2(0xF188), /* E100 */
- MB2(0xF189), MB2(0xF18A), MB2(0xF18B), MB2(0xF18C),
- MB2(0xF18D), MB2(0xF18E), MB2(0xF18F), MB2(0xF190),
- MB2(0xF191), MB2(0xF192), MB2(0xF193), MB2(0xF194),
- MB2(0xF195), MB2(0xF196), MB2(0xF197), MB2(0xF198),
- MB2(0xF199), MB2(0xF19A), MB2(0xF19B), MB2(0xF19C),
- MB2(0xF19D), MB2(0xF19E), MB2(0xF19F), MB2(0xF1A0),
- MB2(0xF1A1), MB2(0xF1A2), MB2(0xF1A3), MB2(0xF1A4),
- MB2(0xF1A5), MB2(0xF1A6), MB2(0xF1A7), MB2(0xF1A8), /* E120 */
- MB2(0xF1A9), MB2(0xF1AA), MB2(0xF1AB), MB2(0xF1AC),
- MB2(0xF1AD), MB2(0xF1AE), MB2(0xF1AF), MB2(0xF1B0),
- MB2(0xF1B1), MB2(0xF1B2), MB2(0xF1B3), MB2(0xF1B4),
- MB2(0xF1B5), MB2(0xF1B6), MB2(0xF1B7), MB2(0xF1B8),
- MB2(0xF1B9), MB2(0xF1BA), MB2(0xF1BB), MB2(0xF1BC),
- MB2(0xF1BD), MB2(0xF1BE), MB2(0xF1BF), MB2(0xF1C0),
- MB2(0xF1C1), MB2(0xF1C2), MB2(0xF1C3), MB2(0xF1C4),
- MB2(0xF1C5), MB2(0xF1C6), MB2(0xF1C7), MB2(0xF1C8), /* E140 */
- MB2(0xF1C9), MB2(0xF1CA), MB2(0xF1CB), MB2(0xF1CC),
- MB2(0xF1CD), MB2(0xF1CE), MB2(0xF1CF), MB2(0xF1D0),
- MB2(0xF1D1), MB2(0xF1D2), MB2(0xF1D3), MB2(0xF1D4),
- MB2(0xF1D5), MB2(0xF1D6), MB2(0xF1D7), MB2(0xF1D8),
- MB2(0xF1D9), MB2(0xF1DA), MB2(0xF1DB), MB2(0xF1DC),
- MB2(0xF1DD), MB2(0xF1DE), MB2(0xF1DF), MB2(0xF1E0),
- MB2(0xF1E1), MB2(0xF1E2), MB2(0xF1E3), MB2(0xF1E4),
- MB2(0xF1E5), MB2(0xF1E6), MB2(0xF1E7), MB2(0xF1E8), /* E160 */
- MB2(0xF1E9), MB2(0xF1EA), MB2(0xF1EB), MB2(0xF1EC),
- MB2(0xF1ED), MB2(0xF1EE), MB2(0xF1EF), MB2(0xF1F0),
- MB2(0xF1F1), MB2(0xF1F2), MB2(0xF1F3), MB2(0xF1F4),
- MB2(0xF1F5), MB2(0xF1F6), MB2(0xF1F7), MB2(0xF1F8),
- MB2(0xF1F9), MB2(0xF1FA), MB2(0xF1FB), MB2(0xF1FC),
- MB2(0xF240), MB2(0xF241), MB2(0xF242), MB2(0xF243),
- MB2(0xF244), MB2(0xF245), MB2(0xF246), MB2(0xF247),
- MB2(0xF248), MB2(0xF249), MB2(0xF24A), MB2(0xF24B), /* E180 */
- MB2(0xF24C), MB2(0xF24D), MB2(0xF24E), MB2(0xF24F),
- MB2(0xF250), MB2(0xF251), MB2(0xF252), MB2(0xF253),
- MB2(0xF254), MB2(0xF255), MB2(0xF256), MB2(0xF257),
- MB2(0xF258), MB2(0xF259), MB2(0xF25A), MB2(0xF25B),
- MB2(0xF25C), MB2(0xF25D), MB2(0xF25E), MB2(0xF25F),
- MB2(0xF260), MB2(0xF261), MB2(0xF262), MB2(0xF263),
- MB2(0xF264), MB2(0xF265), MB2(0xF266), MB2(0xF267),
- MB2(0xF268), MB2(0xF269), MB2(0xF26A), MB2(0xF26B), /* E1A0 */
- MB2(0xF26C), MB2(0xF26D), MB2(0xF26E), MB2(0xF26F),
- MB2(0xF270), MB2(0xF271), MB2(0xF272), MB2(0xF273),
- MB2(0xF274), MB2(0xF275), MB2(0xF276), MB2(0xF277),
- MB2(0xF278), MB2(0xF279), MB2(0xF27A), MB2(0xF27B),
- MB2(0xF27C), MB2(0xF27D), MB2(0xF27E), MB2(0xF280),
- MB2(0xF281), MB2(0xF282), MB2(0xF283), MB2(0xF284),
- MB2(0xF285), MB2(0xF286), MB2(0xF287), MB2(0xF288),
- MB2(0xF289), MB2(0xF28A), MB2(0xF28B), MB2(0xF28C), /* E1C0 */
- MB2(0xF28D), MB2(0xF28E), MB2(0xF28F), MB2(0xF290),
- MB2(0xF291), MB2(0xF292), MB2(0xF293), MB2(0xF294),
- MB2(0xF295), MB2(0xF296), MB2(0xF297), MB2(0xF298),
- MB2(0xF299), MB2(0xF29A), MB2(0xF29B), MB2(0xF29C),
- MB2(0xF29D), MB2(0xF29E), MB2(0xF29F), MB2(0xF2A0),
- MB2(0xF2A1), MB2(0xF2A2), MB2(0xF2A3), MB2(0xF2A4),
- MB2(0xF2A5), MB2(0xF2A6), MB2(0xF2A7), MB2(0xF2A8),
- MB2(0xF2A9), MB2(0xF2AA), MB2(0xF2AB), MB2(0xF2AC), /* E1E0 */
- MB2(0xF2AD), MB2(0xF2AE), MB2(0xF2AF), MB2(0xF2B0),
- MB2(0xF2B1), MB2(0xF2B2), MB2(0xF2B3), MB2(0xF2B4),
- MB2(0xF2B5), MB2(0xF2B6), MB2(0xF2B7), MB2(0xF2B8),
- MB2(0xF2B9), MB2(0xF2BA), MB2(0xF2BB), MB2(0xF2BC),
- MB2(0xF2BD), MB2(0xF2BE), MB2(0xF2BF), MB2(0xF2C0),
- MB2(0xF2C1), MB2(0xF2C2), MB2(0xF2C3), MB2(0xF2C4),
- MB2(0xF2C5), MB2(0xF2C6), MB2(0xF2C7), MB2(0xF2C8),
- MB2(0xF2C9), MB2(0xF2CA), MB2(0xF2CB), MB2(0xF2CC), /* E200 */
- MB2(0xF2CD), MB2(0xF2CE), MB2(0xF2CF), MB2(0xF2D0),
- MB2(0xF2D1), MB2(0xF2D2), MB2(0xF2D3), MB2(0xF2D4),
- MB2(0xF2D5), MB2(0xF2D6), MB2(0xF2D7), MB2(0xF2D8),
- MB2(0xF2D9), MB2(0xF2DA), MB2(0xF2DB), MB2(0xF2DC),
- MB2(0xF2DD), MB2(0xF2DE), MB2(0xF2DF), MB2(0xF2E0),
- MB2(0xF2E1), MB2(0xF2E2), MB2(0xF2E3), MB2(0xF2E4),
- MB2(0xF2E5), MB2(0xF2E6), MB2(0xF2E7), MB2(0xF2E8),
- MB2(0xF2E9), MB2(0xF2EA), MB2(0xF2EB), MB2(0xF2EC), /* E220 */
- MB2(0xF2ED), MB2(0xF2EE), MB2(0xF2EF), MB2(0xF2F0),
- MB2(0xF2F1), MB2(0xF2F2), MB2(0xF2F3), MB2(0xF2F4),
- MB2(0xF2F5), MB2(0xF2F6), MB2(0xF2F7), MB2(0xF2F8),
- MB2(0xF2F9), MB2(0xF2FA), MB2(0xF2FB), MB2(0xF2FC),
- MB2(0xF340), MB2(0xF341), MB2(0xF342), MB2(0xF343),
- MB2(0xF344), MB2(0xF345), MB2(0xF346), MB2(0xF347),
- MB2(0xF348), MB2(0xF349), MB2(0xF34A), MB2(0xF34B),
- MB2(0xF34C), MB2(0xF34D), MB2(0xF34E), MB2(0xF34F), /* E240 */
- MB2(0xF350), MB2(0xF351), MB2(0xF352), MB2(0xF353),
- MB2(0xF354), MB2(0xF355), MB2(0xF356), MB2(0xF357),
- MB2(0xF358), MB2(0xF359), MB2(0xF35A), MB2(0xF35B),
- MB2(0xF35C), MB2(0xF35D), MB2(0xF35E), MB2(0xF35F),
- MB2(0xF360), MB2(0xF361), MB2(0xF362), MB2(0xF363),
- MB2(0xF364), MB2(0xF365), MB2(0xF366), MB2(0xF367),
- MB2(0xF368), MB2(0xF369), MB2(0xF36A), MB2(0xF36B),
- MB2(0xF36C), MB2(0xF36D), MB2(0xF36E), MB2(0xF36F), /* E260 */
- MB2(0xF370), MB2(0xF371), MB2(0xF372), MB2(0xF373),
- MB2(0xF374), MB2(0xF375), MB2(0xF376), MB2(0xF377),
- MB2(0xF378), MB2(0xF379), MB2(0xF37A), MB2(0xF37B),
- MB2(0xF37C), MB2(0xF37D), MB2(0xF37E), MB2(0xF380),
- MB2(0xF381), MB2(0xF382), MB2(0xF383), MB2(0xF384),
- MB2(0xF385), MB2(0xF386), MB2(0xF387), MB2(0xF388),
- MB2(0xF389), MB2(0xF38A), MB2(0xF38B), MB2(0xF38C),
- MB2(0xF38D), MB2(0xF38E), MB2(0xF38F), MB2(0xF390), /* E280 */
- MB2(0xF391), MB2(0xF392), MB2(0xF393), MB2(0xF394),
- MB2(0xF395), MB2(0xF396), MB2(0xF397), MB2(0xF398),
- MB2(0xF399), MB2(0xF39A), MB2(0xF39B), MB2(0xF39C),
- MB2(0xF39D), MB2(0xF39E), MB2(0xF39F), MB2(0xF3A0),
- MB2(0xF3A1), MB2(0xF3A2), MB2(0xF3A3), MB2(0xF3A4),
- MB2(0xF3A5), MB2(0xF3A6), MB2(0xF3A7), MB2(0xF3A8),
- MB2(0xF3A9), MB2(0xF3AA), MB2(0xF3AB), MB2(0xF3AC),
- MB2(0xF3AD), MB2(0xF3AE), MB2(0xF3AF), MB2(0xF3B0), /* E2A0 */
- MB2(0xF3B1), MB2(0xF3B2), MB2(0xF3B3), MB2(0xF3B4),
- MB2(0xF3B5), MB2(0xF3B6), MB2(0xF3B7), MB2(0xF3B8),
- MB2(0xF3B9), MB2(0xF3BA), MB2(0xF3BB), MB2(0xF3BC),
- MB2(0xF3BD), MB2(0xF3BE), MB2(0xF3BF), MB2(0xF3C0),
- MB2(0xF3C1), MB2(0xF3C2), MB2(0xF3C3), MB2(0xF3C4),
- MB2(0xF3C5), MB2(0xF3C6), MB2(0xF3C7), MB2(0xF3C8),
- MB2(0xF3C9), MB2(0xF3CA), MB2(0xF3CB), MB2(0xF3CC),
- MB2(0xF3CD), MB2(0xF3CE), MB2(0xF3CF), MB2(0xF3D0), /* E2C0 */
- MB2(0xF3D1), MB2(0xF3D2), MB2(0xF3D3), MB2(0xF3D4),
- MB2(0xF3D5), MB2(0xF3D6), MB2(0xF3D7), MB2(0xF3D8),
- MB2(0xF3D9), MB2(0xF3DA), MB2(0xF3DB), MB2(0xF3DC),
- MB2(0xF3DD), MB2(0xF3DE), MB2(0xF3DF), MB2(0xF3E0),
- MB2(0xF3E1), MB2(0xF3E2), MB2(0xF3E3), MB2(0xF3E4),
- MB2(0xF3E5), MB2(0xF3E6), MB2(0xF3E7), MB2(0xF3E8),
- MB2(0xF3E9), MB2(0xF3EA), MB2(0xF3EB), MB2(0xF3EC),
- MB2(0xF3ED), MB2(0xF3EE), MB2(0xF3EF), MB2(0xF3F0), /* E2E0 */
- MB2(0xF3F1), MB2(0xF3F2), MB2(0xF3F3), MB2(0xF3F4),
- MB2(0xF3F5), MB2(0xF3F6), MB2(0xF3F7), MB2(0xF3F8),
- MB2(0xF3F9), MB2(0xF3FA), MB2(0xF3FB), MB2(0xF3FC),
- MB2(0xF440), MB2(0xF441), MB2(0xF442), MB2(0xF443),
- MB2(0xF444), MB2(0xF445), MB2(0xF446), MB2(0xF447),
- MB2(0xF448), MB2(0xF449), MB2(0xF44A), MB2(0xF44B),
- MB2(0xF44C), MB2(0xF44D), MB2(0xF44E), MB2(0xF44F),
- MB2(0xF450), MB2(0xF451), MB2(0xF452), MB2(0xF453), /* E300 */
- MB2(0xF454), MB2(0xF455), MB2(0xF456), MB2(0xF457),
- MB2(0xF458), MB2(0xF459), MB2(0xF45A), MB2(0xF45B),
- MB2(0xF45C), MB2(0xF45D), MB2(0xF45E), MB2(0xF45F),
- MB2(0xF460), MB2(0xF461), MB2(0xF462), MB2(0xF463),
- MB2(0xF464), MB2(0xF465), MB2(0xF466), MB2(0xF467),
- MB2(0xF468), MB2(0xF469), MB2(0xF46A), MB2(0xF46B),
- MB2(0xF46C), MB2(0xF46D), MB2(0xF46E), MB2(0xF46F),
- MB2(0xF470), MB2(0xF471), MB2(0xF472), MB2(0xF473), /* E320 */
- MB2(0xF474), MB2(0xF475), MB2(0xF476), MB2(0xF477),
- MB2(0xF478), MB2(0xF479), MB2(0xF47A), MB2(0xF47B),
- MB2(0xF47C), MB2(0xF47D), MB2(0xF47E), MB2(0xF480),
- MB2(0xF481), MB2(0xF482), MB2(0xF483), MB2(0xF484),
- MB2(0xF485), MB2(0xF486), MB2(0xF487), MB2(0xF488),
- MB2(0xF489), MB2(0xF48A), MB2(0xF48B), MB2(0xF48C),
- MB2(0xF48D), MB2(0xF48E), MB2(0xF48F), MB2(0xF490),
- MB2(0xF491), MB2(0xF492), MB2(0xF493), MB2(0xF494), /* E340 */
- MB2(0xF495), MB2(0xF496), MB2(0xF497), MB2(0xF498),
- MB2(0xF499), MB2(0xF49A), MB2(0xF49B), MB2(0xF49C),
- MB2(0xF49D), MB2(0xF49E), MB2(0xF49F), MB2(0xF4A0),
- MB2(0xF4A1), MB2(0xF4A2), MB2(0xF4A3), MB2(0xF4A4),
- MB2(0xF4A5), MB2(0xF4A6), MB2(0xF4A7), MB2(0xF4A8),
- MB2(0xF4A9), MB2(0xF4AA), MB2(0xF4AB), MB2(0xF4AC),
- MB2(0xF4AD), MB2(0xF4AE), MB2(0xF4AF), MB2(0xF4B0),
- MB2(0xF4B1), MB2(0xF4B2), MB2(0xF4B3), MB2(0xF4B4), /* E360 */
- MB2(0xF4B5), MB2(0xF4B6), MB2(0xF4B7), MB2(0xF4B8),
- MB2(0xF4B9), MB2(0xF4BA), MB2(0xF4BB), MB2(0xF4BC),
- MB2(0xF4BD), MB2(0xF4BE), MB2(0xF4BF), MB2(0xF4C0),
- MB2(0xF4C1), MB2(0xF4C2), MB2(0xF4C3), MB2(0xF4C4),
- MB2(0xF4C5), MB2(0xF4C6), MB2(0xF4C7), MB2(0xF4C8),
- MB2(0xF4C9), MB2(0xF4CA), MB2(0xF4CB), MB2(0xF4CC),
- MB2(0xF4CD), MB2(0xF4CE), MB2(0xF4CF), MB2(0xF4D0),
- MB2(0xF4D1), MB2(0xF4D2), MB2(0xF4D3), MB2(0xF4D4), /* E380 */
- MB2(0xF4D5), MB2(0xF4D6), MB2(0xF4D7), MB2(0xF4D8),
- MB2(0xF4D9), MB2(0xF4DA), MB2(0xF4DB), MB2(0xF4DC),
- MB2(0xF4DD), MB2(0xF4DE), MB2(0xF4DF), MB2(0xF4E0),
- MB2(0xF4E1), MB2(0xF4E2), MB2(0xF4E3), MB2(0xF4E4),
- MB2(0xF4E5), MB2(0xF4E6), MB2(0xF4E7), MB2(0xF4E8),
- MB2(0xF4E9), MB2(0xF4EA), MB2(0xF4EB), MB2(0xF4EC),
- MB2(0xF4ED), MB2(0xF4EE), MB2(0xF4EF), MB2(0xF4F0),
- MB2(0xF4F1), MB2(0xF4F2), MB2(0xF4F3), MB2(0xF4F4), /* E3A0 */
- MB2(0xF4F5), MB2(0xF4F6), MB2(0xF4F7), MB2(0xF4F8),
- MB2(0xF4F9), MB2(0xF4FA), MB2(0xF4FB), MB2(0xF4FC),
- MB2(0xF540), MB2(0xF541), MB2(0xF542), MB2(0xF543),
- MB2(0xF544), MB2(0xF545), MB2(0xF546), MB2(0xF547),
- MB2(0xF548), MB2(0xF549), MB2(0xF54A), MB2(0xF54B),
- MB2(0xF54C), MB2(0xF54D), MB2(0xF54E), MB2(0xF54F),
- MB2(0xF550), MB2(0xF551), MB2(0xF552), MB2(0xF553),
- MB2(0xF554), MB2(0xF555), MB2(0xF556), MB2(0xF557), /* E3C0 */
- MB2(0xF558), MB2(0xF559), MB2(0xF55A), MB2(0xF55B),
- MB2(0xF55C), MB2(0xF55D), MB2(0xF55E), MB2(0xF55F),
- MB2(0xF560), MB2(0xF561), MB2(0xF562), MB2(0xF563),
- MB2(0xF564), MB2(0xF565), MB2(0xF566), MB2(0xF567),
- MB2(0xF568), MB2(0xF569), MB2(0xF56A), MB2(0xF56B),
- MB2(0xF56C), MB2(0xF56D), MB2(0xF56E), MB2(0xF56F),
- MB2(0xF570), MB2(0xF571), MB2(0xF572), MB2(0xF573),
- MB2(0xF574), MB2(0xF575), MB2(0xF576), MB2(0xF577), /* E3E0 */
- MB2(0xF578), MB2(0xF579), MB2(0xF57A), MB2(0xF57B),
- MB2(0xF57C), MB2(0xF57D), MB2(0xF57E), MB2(0xF580),
- MB2(0xF581), MB2(0xF582), MB2(0xF583), MB2(0xF584),
- MB2(0xF585), MB2(0xF586), MB2(0xF587), MB2(0xF588),
- MB2(0xF589), MB2(0xF58A), MB2(0xF58B), MB2(0xF58C),
- MB2(0xF58D), MB2(0xF58E), MB2(0xF58F), MB2(0xF590),
- MB2(0xF591), MB2(0xF592), MB2(0xF593), MB2(0xF594),
- MB2(0xF595), MB2(0xF596), MB2(0xF597), MB2(0xF598), /* E400 */
- MB2(0xF599), MB2(0xF59A), MB2(0xF59B), MB2(0xF59C),
- MB2(0xF59D), MB2(0xF59E), MB2(0xF59F), MB2(0xF5A0),
- MB2(0xF5A1), MB2(0xF5A2), MB2(0xF5A3), MB2(0xF5A4),
- MB2(0xF5A5), MB2(0xF5A6), MB2(0xF5A7), MB2(0xF5A8),
- MB2(0xF5A9), MB2(0xF5AA), MB2(0xF5AB), MB2(0xF5AC),
- MB2(0xF5AD), MB2(0xF5AE), MB2(0xF5AF), MB2(0xF5B0),
- MB2(0xF5B1), MB2(0xF5B2), MB2(0xF5B3), MB2(0xF5B4),
- MB2(0xF5B5), MB2(0xF5B6), MB2(0xF5B7), MB2(0xF5B8), /* E420 */
- MB2(0xF5B9), MB2(0xF5BA), MB2(0xF5BB), MB2(0xF5BC),
- MB2(0xF5BD), MB2(0xF5BE), MB2(0xF5BF), MB2(0xF5C0),
- MB2(0xF5C1), MB2(0xF5C2), MB2(0xF5C3), MB2(0xF5C4),
- MB2(0xF5C5), MB2(0xF5C6), MB2(0xF5C7), MB2(0xF5C8),
- MB2(0xF5C9), MB2(0xF5CA), MB2(0xF5CB), MB2(0xF5CC),
- MB2(0xF5CD), MB2(0xF5CE), MB2(0xF5CF), MB2(0xF5D0),
- MB2(0xF5D1), MB2(0xF5D2), MB2(0xF5D3), MB2(0xF5D4),
- MB2(0xF5D5), MB2(0xF5D6), MB2(0xF5D7), MB2(0xF5D8), /* E440 */
- MB2(0xF5D9), MB2(0xF5DA), MB2(0xF5DB), MB2(0xF5DC),
- MB2(0xF5DD), MB2(0xF5DE), MB2(0xF5DF), MB2(0xF5E0),
- MB2(0xF5E1), MB2(0xF5E2), MB2(0xF5E3), MB2(0xF5E4),
- MB2(0xF5E5), MB2(0xF5E6), MB2(0xF5E7), MB2(0xF5E8),
- MB2(0xF5E9), MB2(0xF5EA), MB2(0xF5EB), MB2(0xF5EC),
- MB2(0xF5ED), MB2(0xF5EE), MB2(0xF5EF), MB2(0xF5F0),
- MB2(0xF5F1), MB2(0xF5F2), MB2(0xF5F3), MB2(0xF5F4),
- MB2(0xF5F5), MB2(0xF5F6), MB2(0xF5F7), MB2(0xF5F8), /* E460 */
- MB2(0xF5F9), MB2(0xF5FA), MB2(0xF5FB), MB2(0xF5FC),
- MB2(0xF640), MB2(0xF641), MB2(0xF642), MB2(0xF643),
- MB2(0xF644), MB2(0xF645), MB2(0xF646), MB2(0xF647),
- MB2(0xF648), MB2(0xF649), MB2(0xF64A), MB2(0xF64B),
- MB2(0xF64C), MB2(0xF64D), MB2(0xF64E), MB2(0xF64F),
- MB2(0xF650), MB2(0xF651), MB2(0xF652), MB2(0xF653),
- MB2(0xF654), MB2(0xF655), MB2(0xF656), MB2(0xF657),
- MB2(0xF658), MB2(0xF659), MB2(0xF65A), MB2(0xF65B), /* E480 */
- MB2(0xF65C), MB2(0xF65D), MB2(0xF65E), MB2(0xF65F),
- MB2(0xF660), MB2(0xF661), MB2(0xF662), MB2(0xF663),
- MB2(0xF664), MB2(0xF665), MB2(0xF666), MB2(0xF667),
- MB2(0xF668), MB2(0xF669), MB2(0xF66A), MB2(0xF66B),
- MB2(0xF66C), MB2(0xF66D), MB2(0xF66E), MB2(0xF66F),
- MB2(0xF670), MB2(0xF671), MB2(0xF672), MB2(0xF673),
- MB2(0xF674), MB2(0xF675), MB2(0xF676), MB2(0xF677),
- MB2(0xF678), MB2(0xF679), MB2(0xF67A), MB2(0xF67B), /* E4A0 */
- MB2(0xF67C), MB2(0xF67D), MB2(0xF67E), MB2(0xF680),
- MB2(0xF681), MB2(0xF682), MB2(0xF683), MB2(0xF684),
- MB2(0xF685), MB2(0xF686), MB2(0xF687), MB2(0xF688),
- MB2(0xF689), MB2(0xF68A), MB2(0xF68B), MB2(0xF68C),
- MB2(0xF68D), MB2(0xF68E), MB2(0xF68F), MB2(0xF690),
- MB2(0xF691), MB2(0xF692), MB2(0xF693), MB2(0xF694),
- MB2(0xF695), MB2(0xF696), MB2(0xF697), MB2(0xF698),
- MB2(0xF699), MB2(0xF69A), MB2(0xF69B), MB2(0xF69C), /* E4C0 */
- MB2(0xF69D), MB2(0xF69E), MB2(0xF69F), MB2(0xF6A0),
- MB2(0xF6A1), MB2(0xF6A2), MB2(0xF6A3), MB2(0xF6A4),
- MB2(0xF6A5), MB2(0xF6A6), MB2(0xF6A7), MB2(0xF6A8),
- MB2(0xF6A9), MB2(0xF6AA), MB2(0xF6AB), MB2(0xF6AC),
- MB2(0xF6AD), MB2(0xF6AE), MB2(0xF6AF), MB2(0xF6B0),
- MB2(0xF6B1), MB2(0xF6B2), MB2(0xF6B3), MB2(0xF6B4),
- MB2(0xF6B5), MB2(0xF6B6), MB2(0xF6B7), MB2(0xF6B8),
- MB2(0xF6B9), MB2(0xF6BA), MB2(0xF6BB), MB2(0xF6BC), /* E4E0 */
- MB2(0xF6BD), MB2(0xF6BE), MB2(0xF6BF), MB2(0xF6C0),
- MB2(0xF6C1), MB2(0xF6C2), MB2(0xF6C3), MB2(0xF6C4),
- MB2(0xF6C5), MB2(0xF6C6), MB2(0xF6C7), MB2(0xF6C8),
- MB2(0xF6C9), MB2(0xF6CA), MB2(0xF6CB), MB2(0xF6CC),
- MB2(0xF6CD), MB2(0xF6CE), MB2(0xF6CF), MB2(0xF6D0),
- MB2(0xF6D1), MB2(0xF6D2), MB2(0xF6D3), MB2(0xF6D4),
- MB2(0xF6D5), MB2(0xF6D6), MB2(0xF6D7), MB2(0xF6D8),
- MB2(0xF6D9), MB2(0xF6DA), MB2(0xF6DB), MB2(0xF6DC), /* E500 */
- MB2(0xF6DD), MB2(0xF6DE), MB2(0xF6DF), MB2(0xF6E0),
- MB2(0xF6E1), MB2(0xF6E2), MB2(0xF6E3), MB2(0xF6E4),
- MB2(0xF6E5), MB2(0xF6E6), MB2(0xF6E7), MB2(0xF6E8),
- MB2(0xF6E9), MB2(0xF6EA), MB2(0xF6EB), MB2(0xF6EC),
- MB2(0xF6ED), MB2(0xF6EE), MB2(0xF6EF), MB2(0xF6F0),
- MB2(0xF6F1), MB2(0xF6F2), MB2(0xF6F3), MB2(0xF6F4),
- MB2(0xF6F5), MB2(0xF6F6), MB2(0xF6F7), MB2(0xF6F8),
- MB2(0xF6F9), MB2(0xF6FA), MB2(0xF6FB), MB2(0xF6FC), /* E520 */
- MB2(0xF740), MB2(0xF741), MB2(0xF742), MB2(0xF743),
- MB2(0xF744), MB2(0xF745), MB2(0xF746), MB2(0xF747),
- MB2(0xF748), MB2(0xF749), MB2(0xF74A), MB2(0xF74B),
- MB2(0xF74C), MB2(0xF74D), MB2(0xF74E), MB2(0xF74F),
- MB2(0xF750), MB2(0xF751), MB2(0xF752), MB2(0xF753),
- MB2(0xF754), MB2(0xF755), MB2(0xF756), MB2(0xF757),
- MB2(0xF758), MB2(0xF759), MB2(0xF75A), MB2(0xF75B),
- MB2(0xF75C), MB2(0xF75D), MB2(0xF75E), MB2(0xF75F), /* E540 */
- MB2(0xF760), MB2(0xF761), MB2(0xF762), MB2(0xF763),
- MB2(0xF764), MB2(0xF765), MB2(0xF766), MB2(0xF767),
- MB2(0xF768), MB2(0xF769), MB2(0xF76A), MB2(0xF76B),
- MB2(0xF76C), MB2(0xF76D), MB2(0xF76E), MB2(0xF76F),
- MB2(0xF770), MB2(0xF771), MB2(0xF772), MB2(0xF773),
- MB2(0xF774), MB2(0xF775), MB2(0xF776), MB2(0xF777),
- MB2(0xF778), MB2(0xF779), MB2(0xF77A), MB2(0xF77B),
- MB2(0xF77C), MB2(0xF77D), MB2(0xF77E), MB2(0xF780), /* E560 */
- MB2(0xF781), MB2(0xF782), MB2(0xF783), MB2(0xF784),
- MB2(0xF785), MB2(0xF786), MB2(0xF787), MB2(0xF788),
- MB2(0xF789), MB2(0xF78A), MB2(0xF78B), MB2(0xF78C),
- MB2(0xF78D), MB2(0xF78E), MB2(0xF78F), MB2(0xF790),
- MB2(0xF791), MB2(0xF792), MB2(0xF793), MB2(0xF794),
- MB2(0xF795), MB2(0xF796), MB2(0xF797), MB2(0xF798),
- MB2(0xF799), MB2(0xF79A), MB2(0xF79B), MB2(0xF79C),
- MB2(0xF79D), MB2(0xF79E), MB2(0xF79F), MB2(0xF7A0), /* E580 */
- MB2(0xF7A1), MB2(0xF7A2), MB2(0xF7A3), MB2(0xF7A4),
- MB2(0xF7A5), MB2(0xF7A6), MB2(0xF7A7), MB2(0xF7A8),
- MB2(0xF7A9), MB2(0xF7AA), MB2(0xF7AB), MB2(0xF7AC),
- MB2(0xF7AD), MB2(0xF7AE), MB2(0xF7AF), MB2(0xF7B0),
- MB2(0xF7B1), MB2(0xF7B2), MB2(0xF7B3), MB2(0xF7B4),
- MB2(0xF7B5), MB2(0xF7B6), MB2(0xF7B7), MB2(0xF7B8),
- MB2(0xF7B9), MB2(0xF7BA), MB2(0xF7BB), MB2(0xF7BC),
- MB2(0xF7BD), MB2(0xF7BE), MB2(0xF7BF), MB2(0xF7C0), /* E5A0 */
- MB2(0xF7C1), MB2(0xF7C2), MB2(0xF7C3), MB2(0xF7C4),
- MB2(0xF7C5), MB2(0xF7C6), MB2(0xF7C7), MB2(0xF7C8),
- MB2(0xF7C9), MB2(0xF7CA), MB2(0xF7CB), MB2(0xF7CC),
- MB2(0xF7CD), MB2(0xF7CE), MB2(0xF7CF), MB2(0xF7D0),
- MB2(0xF7D1), MB2(0xF7D2), MB2(0xF7D3), MB2(0xF7D4),
- MB2(0xF7D5), MB2(0xF7D6), MB2(0xF7D7), MB2(0xF7D8),
- MB2(0xF7D9), MB2(0xF7DA), MB2(0xF7DB), MB2(0xF7DC),
- MB2(0xF7DD), MB2(0xF7DE), MB2(0xF7DF), MB2(0xF7E0), /* E5C0 */
- MB2(0xF7E1), MB2(0xF7E2), MB2(0xF7E3), MB2(0xF7E4),
- MB2(0xF7E5), MB2(0xF7E6), MB2(0xF7E7), MB2(0xF7E8),
- MB2(0xF7E9), MB2(0xF7EA), MB2(0xF7EB), MB2(0xF7EC),
- MB2(0xF7ED), MB2(0xF7EE), MB2(0xF7EF), MB2(0xF7F0),
- MB2(0xF7F1), MB2(0xF7F2), MB2(0xF7F3), MB2(0xF7F4),
- MB2(0xF7F5), MB2(0xF7F6), MB2(0xF7F7), MB2(0xF7F8),
- MB2(0xF7F9), MB2(0xF7FA), MB2(0xF7FB), MB2(0xF7FC),
- MB2(0xF840), MB2(0xF841), MB2(0xF842), MB2(0xF843), /* E5E0 */
- MB2(0xF844), MB2(0xF845), MB2(0xF846), MB2(0xF847),
- MB2(0xF848), MB2(0xF849), MB2(0xF84A), MB2(0xF84B),
- MB2(0xF84C), MB2(0xF84D), MB2(0xF84E), MB2(0xF84F),
- MB2(0xF850), MB2(0xF851), MB2(0xF852), MB2(0xF853),
- MB2(0xF854), MB2(0xF855), MB2(0xF856), MB2(0xF857),
- MB2(0xF858), MB2(0xF859), MB2(0xF85A), MB2(0xF85B),
- MB2(0xF85C), MB2(0xF85D), MB2(0xF85E), MB2(0xF85F),
- MB2(0xF860), MB2(0xF861), MB2(0xF862), MB2(0xF863), /* E600 */
- MB2(0xF864), MB2(0xF865), MB2(0xF866), MB2(0xF867),
- MB2(0xF868), MB2(0xF869), MB2(0xF86A), MB2(0xF86B),
- MB2(0xF86C), MB2(0xF86D), MB2(0xF86E), MB2(0xF86F),
- MB2(0xF870), MB2(0xF871), MB2(0xF872), MB2(0xF873),
- MB2(0xF874), MB2(0xF875), MB2(0xF876), MB2(0xF877),
- MB2(0xF878), MB2(0xF879), MB2(0xF87A), MB2(0xF87B),
- MB2(0xF87C), MB2(0xF87D), MB2(0xF87E), MB2(0xF880),
- MB2(0xF881), MB2(0xF882), MB2(0xF883), MB2(0xF884), /* E620 */
- MB2(0xF885), MB2(0xF886), MB2(0xF887), MB2(0xF888),
- MB2(0xF889), MB2(0xF88A), MB2(0xF88B), MB2(0xF88C),
- MB2(0xF88D), MB2(0xF88E), MB2(0xF88F), MB2(0xF890),
- MB2(0xF891), MB2(0xF892), MB2(0xF893), MB2(0xF894),
- MB2(0xF895), MB2(0xF896), MB2(0xF897), MB2(0xF898),
- MB2(0xF899), MB2(0xF89A), MB2(0xF89B), MB2(0xF89C),
- MB2(0xF89D), MB2(0xF89E), MB2(0xF89F), MB2(0xF8A0),
- MB2(0xF8A1), MB2(0xF8A2), MB2(0xF8A3), MB2(0xF8A4), /* E640 */
- MB2(0xF8A5), MB2(0xF8A6), MB2(0xF8A7), MB2(0xF8A8),
- MB2(0xF8A9), MB2(0xF8AA), MB2(0xF8AB), MB2(0xF8AC),
- MB2(0xF8AD), MB2(0xF8AE), MB2(0xF8AF), MB2(0xF8B0),
- MB2(0xF8B1), MB2(0xF8B2), MB2(0xF8B3), MB2(0xF8B4),
- MB2(0xF8B5), MB2(0xF8B6), MB2(0xF8B7), MB2(0xF8B8),
- MB2(0xF8B9), MB2(0xF8BA), MB2(0xF8BB), MB2(0xF8BC),
- MB2(0xF8BD), MB2(0xF8BE), MB2(0xF8BF), MB2(0xF8C0),
- MB2(0xF8C1), MB2(0xF8C2), MB2(0xF8C3), MB2(0xF8C4), /* E660 */
- MB2(0xF8C5), MB2(0xF8C6), MB2(0xF8C7), MB2(0xF8C8),
- MB2(0xF8C9), MB2(0xF8CA), MB2(0xF8CB), MB2(0xF8CC),
- MB2(0xF8CD), MB2(0xF8CE), MB2(0xF8CF), MB2(0xF8D0),
- MB2(0xF8D1), MB2(0xF8D2), MB2(0xF8D3), MB2(0xF8D4),
- MB2(0xF8D5), MB2(0xF8D6), MB2(0xF8D7), MB2(0xF8D8),
- MB2(0xF8D9), MB2(0xF8DA), MB2(0xF8DB), MB2(0xF8DC),
- MB2(0xF8DD), MB2(0xF8DE), MB2(0xF8DF), MB2(0xF8E0),
- MB2(0xF8E1), MB2(0xF8E2), MB2(0xF8E3), MB2(0xF8E4), /* E680 */
- MB2(0xF8E5), MB2(0xF8E6), MB2(0xF8E7), MB2(0xF8E8),
- MB2(0xF8E9), MB2(0xF8EA), MB2(0xF8EB), MB2(0xF8EC),
- MB2(0xF8ED), MB2(0xF8EE), MB2(0xF8EF), MB2(0xF8F0),
- MB2(0xF8F1), MB2(0xF8F2), MB2(0xF8F3), MB2(0xF8F4),
- MB2(0xF8F5), MB2(0xF8F6), MB2(0xF8F7), MB2(0xF8F8),
- MB2(0xF8F9), MB2(0xF8FA), MB2(0xF8FB), MB2(0xF8FC),
- MB2(0xF940), MB2(0xF941), MB2(0xF942), MB2(0xF943),
- MB2(0xF944), MB2(0xF945), MB2(0xF946), MB2(0xF947), /* E6A0 */
- MB2(0xF948), MB2(0xF949), MB2(0xF94A), MB2(0xF94B),
- MB2(0xF94C), MB2(0xF94D), MB2(0xF94E), MB2(0xF94F),
- MB2(0xF950), MB2(0xF951), MB2(0xF952), MB2(0xF953),
- MB2(0xF954), MB2(0xF955), MB2(0xF956), MB2(0xF957),
- MB2(0xF958), MB2(0xF959), MB2(0xF95A), MB2(0xF95B),
- MB2(0xF95C), MB2(0xF95D), MB2(0xF95E), MB2(0xF95F),
- MB2(0xF960), MB2(0xF961), MB2(0xF962), MB2(0xF963),
- MB2(0xF964), MB2(0xF965), MB2(0xF966), MB2(0xF967), /* E6C0 */
- MB2(0xF968), MB2(0xF969), MB2(0xF96A), MB2(0xF96B),
- MB2(0xF96C), MB2(0xF96D), MB2(0xF96E), MB2(0xF96F),
- MB2(0xF970), MB2(0xF971), MB2(0xF972), MB2(0xF973),
- MB2(0xF974), MB2(0xF975), MB2(0xF976), MB2(0xF977),
- MB2(0xF978), MB2(0xF979), MB2(0xF97A), MB2(0xF97B),
- MB2(0xF97C), MB2(0xF97D), MB2(0xF97E), MB2(0xF980),
- MB2(0xF981), MB2(0xF982), MB2(0xF983), MB2(0xF984),
- MB2(0xF985), MB2(0xF986), MB2(0xF987), MB2(0xF988), /* E6E0 */
- MB2(0xF989), MB2(0xF98A), MB2(0xF98B), MB2(0xF98C),
- MB2(0xF98D), MB2(0xF98E), MB2(0xF98F), MB2(0xF990),
- MB2(0xF991), MB2(0xF992), MB2(0xF993), MB2(0xF994),
- MB2(0xF995), MB2(0xF996), MB2(0xF997), MB2(0xF998),
- MB2(0xF999), MB2(0xF99A), MB2(0xF99B), MB2(0xF99C),
- MB2(0xF99D), MB2(0xF99E), MB2(0xF99F), MB2(0xF9A0),
- MB2(0xF9A1), MB2(0xF9A2), MB2(0xF9A3), MB2(0xF9A4),
- MB2(0xF9A5), MB2(0xF9A6), MB2(0xF9A7), MB2(0xF9A8), /* E700 */
- MB2(0xF9A9), MB2(0xF9AA), MB2(0xF9AB), MB2(0xF9AC),
- MB2(0xF9AD), MB2(0xF9AE), MB2(0xF9AF), MB2(0xF9B0),
- MB2(0xF9B1), MB2(0xF9B2), MB2(0xF9B3), MB2(0xF9B4),
- MB2(0xF9B5), MB2(0xF9B6), MB2(0xF9B7), MB2(0xF9B8),
- MB2(0xF9B9), MB2(0xF9BA), MB2(0xF9BB), MB2(0xF9BC),
- MB2(0xF9BD), MB2(0xF9BE), MB2(0xF9BF), MB2(0xF9C0),
- MB2(0xF9C1), MB2(0xF9C2), MB2(0xF9C3), MB2(0xF9C4),
- MB2(0xF9C5), MB2(0xF9C6), MB2(0xF9C7), MB2(0xF9C8), /* E720 */
- MB2(0xF9C9), MB2(0xF9CA), MB2(0xF9CB), MB2(0xF9CC),
- MB2(0xF9CD), MB2(0xF9CE), MB2(0xF9CF), MB2(0xF9D0),
- MB2(0xF9D1), MB2(0xF9D2), MB2(0xF9D3), MB2(0xF9D4),
- MB2(0xF9D5), MB2(0xF9D6), MB2(0xF9D7), MB2(0xF9D8),
- MB2(0xF9D9), MB2(0xF9DA), MB2(0xF9DB), MB2(0xF9DC),
- MB2(0xF9DD), MB2(0xF9DE), MB2(0xF9DF), MB2(0xF9E0),
- MB2(0xF9E1), MB2(0xF9E2), MB2(0xF9E3), MB2(0xF9E4),
- MB2(0xF9E5), MB2(0xF9E6), MB2(0xF9E7), MB2(0xF9E8), /* E740 */
- MB2(0xF9E9), MB2(0xF9EA), MB2(0xF9EB), MB2(0xF9EC),
- MB2(0xF9ED), MB2(0xF9EE), MB2(0xF9EF), MB2(0xF9F0),
- MB2(0xF9F1), MB2(0xF9F2), MB2(0xF9F3), MB2(0xF9F4),
- MB2(0xF9F5), MB2(0xF9F6), MB2(0xF9F7), MB2(0xF9F8),
- MB2(0xF9F9), MB2(0xF9FA), MB2(0xF9FB), MB2(0xF9FC),
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* E9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ECE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* ED80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EF80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* EFE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F000 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F020 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F040 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F060 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F080 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F0A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F0C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F0E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F100 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F120 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F140 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F160 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F180 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F1A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F1C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F1E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F200 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F220 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F240 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F260 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F280 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F2A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F2C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F2E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F300 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F320 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F340 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F360 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F380 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F3A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F3C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F3E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F400 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F420 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F440 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F460 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F480 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F4A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F4C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F4E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F500 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F520 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F540 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F560 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F580 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F5A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F5C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F5E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F600 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F620 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F640 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F660 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F680 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F6A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F6C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F6E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F700 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F720 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F740 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F760 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F780 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F7A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F7C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F7E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F800 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F820 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F840 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F860 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F880 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F8A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F8C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F8E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F900 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F920 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0xFAE0), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F940 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F960 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F980 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F9A0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F9C0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0xFBE9), 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* F9E0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, MB2(0xFA90), MB2(0xFA9B),
- MB2(0xFA9C), MB2(0xFAB1), MB2(0xFAD8), MB2(0xFAE8),
- MB2(0xFAEA), MB2(0xFB58), MB2(0xFB5E), MB2(0xFB75),
- MB2(0xFB7D), MB2(0xFB7E), MB2(0xFB80), MB2(0xFB82),
- MB2(0xFB86), MB2(0xFB89), MB2(0xFB92), MB2(0xFB9D),
- MB2(0xFB9F), MB2(0xFBA0), MB2(0xFBA9), MB2(0xFBB1), /* FA20 */
- MB2(0xFBB3), MB2(0xFBB4), MB2(0xFBB7), MB2(0xFBD3),
- MB2(0xFBDA), MB2(0xFBEA), MB2(0xFBF6), MB2(0xFBF7),
- MB2(0xFBF9), MB2(0xFC49), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FA80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FAA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FAC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FAE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FB80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FBA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FBC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FBE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FC80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FCE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FD80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FDE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE00 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE20 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE40 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE60 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FE80 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FEE0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, MB2(0x8149), MB2(0xFA57), MB2(0x8194), /* FF00 */
- MB2(0x8190), MB2(0x8193), MB2(0x8195), MB2(0xFA56),
- MB2(0x8169), MB2(0x816A), MB2(0x8196), MB2(0x817B),
- MB2(0x8143), MB2(0x817C), MB2(0x8144), MB2(0x815E),
- MB2(0x824F), MB2(0x8250), MB2(0x8251), MB2(0x8252),
- MB2(0x8253), MB2(0x8254), MB2(0x8255), MB2(0x8256),
- MB2(0x8257), MB2(0x8258), MB2(0x8146), MB2(0x8147),
- MB2(0x8183), MB2(0x8181), MB2(0x8184), MB2(0x8148),
- MB2(0x8197), MB2(0x8260), MB2(0x8261), MB2(0x8262), /* FF20 */
- MB2(0x8263), MB2(0x8264), MB2(0x8265), MB2(0x8266),
- MB2(0x8267), MB2(0x8268), MB2(0x8269), MB2(0x826A),
- MB2(0x826B), MB2(0x826C), MB2(0x826D), MB2(0x826E),
- MB2(0x826F), MB2(0x8270), MB2(0x8271), MB2(0x8272),
- MB2(0x8273), MB2(0x8274), MB2(0x8275), MB2(0x8276),
- MB2(0x8277), MB2(0x8278), MB2(0x8279), MB2(0x816D),
- MB2(0x815F), MB2(0x816E), MB2(0x814F), MB2(0x8151),
- MB2(0x814D), MB2(0x8281), MB2(0x8282), MB2(0x8283), /* FF40 */
- MB2(0x8284), MB2(0x8285), MB2(0x8286), MB2(0x8287),
- MB2(0x8288), MB2(0x8289), MB2(0x828A), MB2(0x828B),
- MB2(0x828C), MB2(0x828D), MB2(0x828E), MB2(0x828F),
- MB2(0x8290), MB2(0x8291), MB2(0x8292), MB2(0x8293),
- MB2(0x8294), MB2(0x8295), MB2(0x8296), MB2(0x8297),
- MB2(0x8298), MB2(0x8299), MB2(0x829A), MB2(0x816F),
- MB2(0x8162), MB2(0x8170), MB2(0x8160), 0x0000,
- 0x0000, 0x00A1, 0x00A2, 0x00A3, /* FF60 */
- 0x00A4, 0x00A5, 0x00A6, 0x00A7,
- 0x00A8, 0x00A9, 0x00AA, 0x00AB,
- 0x00AC, 0x00AD, 0x00AE, 0x00AF,
- 0x00B0, 0x00B1, 0x00B2, 0x00B3,
- 0x00B4, 0x00B5, 0x00B6, 0x00B7,
- 0x00B8, 0x00B9, 0x00BA, 0x00BB,
- 0x00BC, 0x00BD, 0x00BE, 0x00BF,
- 0x00C0, 0x00C1, 0x00C2, 0x00C3, /* FF80 */
- 0x00C4, 0x00C5, 0x00C6, 0x00C7,
- 0x00C8, 0x00C9, 0x00CA, 0x00CB,
- 0x00CC, 0x00CD, 0x00CE, 0x00CF,
- 0x00D0, 0x00D1, 0x00D2, 0x00D3,
- 0x00D4, 0x00D5, 0x00D6, 0x00D7,
- 0x00D8, 0x00D9, 0x00DA, 0x00DB,
- 0x00DC, 0x00DD, 0x00DE, 0x00DF,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FFA0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, /* FFC0 */
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- MB2(0x8191), MB2(0x8192), MB2(0x81CA), MB2(0x8150), /* FFE0 */
- MB2(0xFA55), MB2(0x818F), 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
-};
-
-
-/*
- CP932 encoding components:
-
- [00..7F] = ASCII [U+0000..U+007F]
- [A1..DF] = JIS-X-0201 Katakana [U+FF61..U+FF9F]
- [81..9F,E0..FC][40..7E,80..FC] = JIS-X-0208 (MS version)
-
- [80,A0,FD,FE,FF] = Invalid leading byte
-*/
-
-
-/**
- Scans a CP932 character from the input string
- and converts to Unicode code point.
-
- @param[out] pwc Unicode code point
- @param[in] s Beginning of the input string
- @param[in[ e End of the input string
-
- @retval MY_CS_TOOSMALL If the string was too short to scan a character
- @retval 1 If a 1-byte character was scanned
- @retval 2 If a 2-byte character was scanned
- @retval -2 If a 2-byte unassigned character was scanned
- @retval MY_CS_ILSEQ If a wrong byte sequence was found
-*/
-
-static int
-my_mb_wc_cp932(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e){
- int hi;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((hi= s[0]) < 0x80) /* ASCII: [00-7F] -> [U+0000..U+007F] */
- {
- *pwc= hi;
- return 1;
- }
-
- /* JIS-X-0201 Half width Katakana: [A1..DF] -> [U+FF61..U+FF9F] */
- if (hi >= 0xA1 && hi <= 0xDF)
- {
- *pwc= cp932_to_unicode[hi];
- return 1;
- }
-
- if (s + 2 > e)
- return MY_CS_TOOSMALL2;
-
- /* JIS-X-0208-MS [81..9F,E0..FC][40..7E,80..FC] */
- if (!(pwc[0]= cp932_to_unicode[(hi << 8) + s[1]]))
- return (iscp932head(hi) && iscp932tail(s[1])) ? -2 : MY_CS_ILSEQ;
-
- return 2;
-}
-
-
-/**
- Puts the given Unicode character into a CP932 string.
-
- @param[in] wc Unicode code point
- @param[in] s Beginning of the out string
- @param[in] e End of the out string
-
- @retval MY_CS_TOOSMALL If the string was too short to put a character
- @retval 1 If a 1-byte character was put
- @retval 2 If a 2-byte character was put
- @retval MY_CS_ILUNI If the Unicode character does not exist in CP932
-*/
-static int
-my_wc_mb_cp932(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- int code;
-
- if ((int) wc < 0x80) /* ASCII: [U+0000..U+007F] -> [00-7F] */
- {
- /*
- This branch is for performance purposes on ASCII range,
- to avoid using unicode_to_cp932[]: about 10% improvement.
- */
- if (s >= e)
- return MY_CS_TOOSMALL;
- s[0]= (uchar) wc;
- return 1;
- }
-
- if (wc > 0xFFFF ||
- !(code= unicode_to_cp932[wc])) /* Bad Unicode code point */
- return MY_CS_ILUNI;
-
- if (code <= 0xFF)
- {
- /* JIS-X-0201 HALF WIDTH KATAKANA [U+FF61..U+FF9F] -> [A1..DF] */
- if (s >= e)
- return MY_CS_TOOSMALL;
- s[0]= code;
- return 1;
- }
-
- if (s + 2 > e)
- return MY_CS_TOOSMALL2;
-
- MY_PUT_MB2(s, code); /* JIS-X-0208(MS) */
- return 2;
-}
-
-
-
-static
-size_t my_numcells_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const char *str, const char *str_end)
-{
- size_t clen= 0;
- const uchar *b= (const uchar *) str;
- const uchar *e= (const uchar *) str_end;
-
- for (clen= 0; b < e; )
- {
- if (*b >= 0xA1 && *b <= 0xDF)
- {
- clen++;
- b++;
- }
- else if (*b > 0x7F)
- {
- clen+= 2;
- b+= 2;
- }
- else
- {
- clen++;
- b++;
- }
- }
- return clen;
-}
-
-/*
- Returns a well formed length of a cp932 string.
- cp932 additional characters are also accepted.
-*/
-
-static
-size_t my_well_formed_len_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- *error= 0;
- while (pos-- && b < e)
- {
- /*
- Cast to int8 for extra safety.
- "char" can be unsigned by default
- on some platforms.
- */
- if (((int8)b[0]) >= 0)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (iscp932head((uchar)*b) && (e-b)>1 && iscp932tail((uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF)
- {
- /* Half width kana */
- b++;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_cp932,
- my_strnncollsp_cp932,
- my_strnxfrm_cp932,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_mb, /* wildcmp */
- my_strcasecmp_8bit,
- my_instr_mb,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- ismbchar_cp932,
- mbcharlen_cp932,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_cp932,
- my_lengthsp_8bit,
- my_numcells_cp932,
- my_mb_wc_cp932, /* mb_wc */
- my_wc_mb_cp932, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb,
- my_casedn_str_mb,
- my_caseup_mb,
- my_casedn_mb,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_cp932_japanese_ci=
-{
- 95,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
- "cp932", /* cs name */
- "cp932_japanese_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp932,
- to_lower_cp932,
- to_upper_cp932,
- sort_order_cp932,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_cp932, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFCFC, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_ci_handler
-};
-
-CHARSET_INFO my_charset_cp932_bin=
-{
- 96,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "cp932", /* cs name */
- "cp932_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp932,
- to_lower_cp932,
- to_upper_cp932,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_cp932, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFCFC, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_mb_bin_handler
-};
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-czech.c b/dep/mysqllite/strings/ctype-czech.c
deleted file mode 100644
index 0095fe7f995..00000000000
--- a/dep/mysqllite/strings/ctype-czech.c
+++ /dev/null
@@ -1,639 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File strings/ctype-czech.c for MySQL.
-
- This file implements the Czech sorting for the MySQL database
- server (www.mysql.com). Due to some complicated rules the
- Czech language has for sorting strings, a more complex
- solution was needed than the one-to-one conversion table. To
- note a few, here is an example of a Czech sorting sequence:
-
- co < hlaska < hláska < hlava < chlapec < krtek
-
- It because some of the rules are: double char 'ch' is sorted
- between 'h' and 'i'. Accented character 'á' (a with acute) is
- sorted after 'a' and before 'b', but only if the word is
- otherwise the same. However, because 's' is sorted before 'v'
- in hlava, the accentness of 'á' is overridden. There are many
- more rules.
-
- This file defines functions my_strxfrm and my_strcoll for
- C-like zero terminated strings and my_strnxfrm and my_strnncoll
- for strings where the length comes as an parameter. Also
- defined here you will find function my_like_range that returns
- index range strings for LIKE expression and the
- MY_STRXFRM_MULTIPLY set to value 4 -- this is the ratio the
- strings grows during my_strxfrm. The algorithm has four
- passes, that's why we need four times more space for expanded
- string.
-
- This file also contains the ISO-Latin-2 definitions of
- characters.
-
- Author: (c) 1997--1998 Jan Pazdziora, adelton@fi.muni.cz
- Jan Pazdziora has a shared copyright for this code
-
- The original of this file can also be found at
- http://www.fi.muni.cz/~adelton/l10n/
-
- Bug reports and suggestions are always welcome.
-*/
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_czech=4
- */
-
-#define SKIP_TRAILING_SPACES 1
-
-#define REAL_MYSQL
-
-#ifdef REAL_MYSQL
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#else
-
-#include <stdio.h>
-#define uchar unsigned char
-
-#endif
-
-#ifdef HAVE_CHARSET_latin2
-
-/*
- These are four tables for four passes of the algorithm. Please see
- below for what are the "special values"
-*/
-
-static uchar *CZ_SORT_TABLE[] = {
- (uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\043\044\045\046\047\050\051\052\053\054\000\000\000\000\000\000\000\003\004\377\007\010\011\012\013\015\016\017\020\022\023\024\025\026\027\031\033\034\035\036\037\040\041\000\000\000\000\000\000\003\004\377\007\010\011\012\013\015\016\017\020\022\023\024\025\026\027\031\033\034\035\036\037\040\041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\021\000\020\032\000\000\032\032\033\042\000\042\042\000\003\000\021\000\020\032\000\000\032\032\033\042\000\042\042\027\003\003\003\003\020\006\006\006\010\010\010\010\015\015\007\007\023\023\024\024\024\024\000\030\034\034\034\034\040\033\000\027\003\003\003\003\020\006\006\006\010\010\010\010\015\015\007\007\023\023\024\024\024\024\000\030\034\034\034\034\040\033\000",
- (uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\106\107\110\111\112\113\114\115\116\117\000\000\000\000\000\000\000\003\011\377\016\021\026\027\030\032\035\036\037\043\044\047\054\055\056\061\065\070\075\076\077\100\102\000\000\000\000\000\000\003\011\377\016\021\026\027\030\032\035\036\037\043\044\047\054\055\056\061\065\070\075\076\077\100\102\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\010\000\042\000\041\063\000\000\062\064\066\104\000\103\105\000\010\000\042\000\041\063\000\000\062\064\066\104\000\103\105\057\004\005\007\006\040\014\015\013\022\025\024\023\033\034\017\020\046\045\050\051\053\052\000\060\072\071\074\073\101\067\000\057\004\005\007\006\040\014\015\013\022\025\024\023\033\034\017\020\046\045\050\051\053\052\000\060\072\071\074\073\101\067\000",
-(uchar*) "\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\213\214\215\216\217\220\221\222\223\000\000\000\000\000\000\000\004\020\377\032\040\052\054\056\063\071\073\075\105\107\115\127\131\133\141\151\157\171\173\175\177\203\000\000\000\000\000\000\003\017\377\031\037\051\053\055\062\070\072\074\104\106\114\126\130\132\140\150\156\170\172\174\176\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\103\000\101\145\000\000\143\147\153\207\000\205\211\000\015\000\102\000\100\144\000\000\142\146\152\206\000\204\210\135\006\010\014\012\077\026\030\024\042\050\046\044\065\067\034\036\113\111\117\121\125\123\000\137\163\161\167\165\201\155\000\134\005\007\013\011\076\025\027\023\041\047\045\043\064\066\033\035\112\110\116\120\124\122\000\136\162\160\166\164\200\154\000",
-(uchar*) "\264\265\266\267\270\271\272\273\274\002\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\002\230\232\253\324\252\251\234\240\241\261\260\225\262\224\235\212\213\214\215\216\217\220\221\222\223\231\226\244\257\245\227\250\004\020\377\032\040\052\054\056\063\071\073\075\105\107\115\127\131\133\141\151\157\171\173\175\177\203\242\237\243\254\255\233\003\017\377\031\037\051\053\055\062\070\072\074\104\106\114\126\130\132\140\150\156\170\172\174\176\202\246\236\247\256\325\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\326\016\327\103\330\101\145\331\332\143\147\153\207\333\205\211\334\015\335\102\336\100\144\337\340\142\146\152\206\341\204\210\135\006\010\014\012\077\026\030\024\042\050\046\044\065\067\034\036\113\111\117\121\125\123\263\137\163\161\167\165\201\155\342\134\005\007\013\011\076\025\027\023\041\047\045\043\064\066\033\035\112\110\116\120\124\122\343\136\162\160\166\164\200\154\344",
-};
-
-/*
- These define the valuse for the double chars that need to be
- sorted as they were single characters -- in Czech these are
- 'ch', 'Ch' and 'CH'.
-*/
-
-struct wordvalue
- {
- const char * word;
- uchar *outvalue;
- };
-static struct wordvalue doubles[] = {
- { "ch", (uchar*) "\014\031\057\057" },
- { "Ch", (uchar*) "\014\031\060\060" },
- { "CH", (uchar*) "\014\031\061\061" },
- { "c", (uchar*) "\005\012\021\021" },
- { "C", (uchar*) "\005\012\022\022" },
- };
-
-/*
- Unformal description of the algorithm:
-
- We walk the string left to right.
-
- The end of the string is either passed as parameter, or is
- *p == 0. This is hidden in the IS_END macro.
-
- In the first two passes, we compare word by word. So we make
- first and second pass on the first word, first and second pass
- on the second word, etc. If we come to the end of the string
- during the first pass, we need to jump to the last word of the
- second pass.
-
- End of pass is marked with value 1 on the output.
-
- For each character, we read it's value from the table.
-
- If the value is ignore (0), we go straight to the next character.
-
- If the value is space/end of word (2) and we are in the first
- or second pass, we skip all characters having value 0 -- 2 and
- switch the passwd.
-
- If it's the compose character (255), we check if the double
- exists behind it, find its value.
-
- We append 0 to the end.
----
- Neformální popis algoritmu:
-
- Procházíme øetìzec zleva doprava.
-
- Konec øetìzce je pøedán buï jako parametr, nebo je to *p == 0.
- Toto je o¹etøeno makrem IS_END.
-
- Pokud jsme do¹li na konec øetìzce pøi prùchodu 0, nejdeme na
- zaèátek, ale na ulo¾enou pozici, proto¾e první a druhý prùchod
- bì¾í souèasnì.
-
- Konec vstupu (prùchodu) oznaèíme na výstupu hodnotou 1.
-
- Pro ka¾dý znak øetìzce naèteme hodnotu z tøídící tabulky.
-
- Jde-li o hodnotu ignorovat (0), skoèíme ihned na dal¹í znak..
-
- Jde-li o hodnotu konec slova (2) a je to prùchod 0 nebo 1,
- pøeskoèíme v¹echny dal¹í 0 -- 2 a prohodíme prùchody.
-
- Jde-li o kompozitní znak (255), otestujeme, zda následuje
- správný do dvojice, dohledáme správnou hodnotu.
-
- Na konci pøipojíme znak 0
- */
-
-#define ADD_TO_RESULT(dest, len, totlen, value) \
-if ((totlen) < (len)) { dest[totlen] = value; } (totlen++);
-#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len))
-
-#define NEXT_CMP_VALUE(src, p, store, pass, value, len) \
-while (1) \
-{ \
- if (IS_END(p, src, len)) \
- { \
- /* when we are at the end of string */ \
- /* return either 0 for end of string */ \
- /* or 1 for end of pass */ \
- value= 0; \
- if (pass != 3) \
- { \
- p= (pass++ == 0) ? store : src; \
- value = 1; \
- } \
- break; \
- } \
- /* not at end of string */ \
- value = CZ_SORT_TABLE[pass][*p]; \
- if (value == 0) \
- { p++; continue; } /* ignore value */ \
- if (value == 2) /* space */ \
- { \
- const uchar *tmp; \
- const uchar *runner = ++p; \
- while (!(IS_END(runner, src, len)) && (CZ_SORT_TABLE[pass][*runner] == 2)) \
- runner++; /* skip all spaces */ \
- if (IS_END(runner, src, len) && SKIP_TRAILING_SPACES) \
- p = runner; \
- if ((pass <= 2) && !(IS_END(runner, src, len))) \
- p = runner; \
- if (IS_END(p, src, len)) \
- continue; \
- /* we switch passes */ \
- if (pass > 1) \
- break; \
- tmp = p; \
- pass= 1-pass; \
- p = store; store = tmp; \
- break; \
- } \
- if (value == 255) \
- { \
- int i; \
- for (i = 0; i < (int) sizeof(doubles); i++) \
- { \
- const char * pattern = doubles[i].word; \
- const char * q = (const char *) p; \
- int j = 0; \
- while (pattern[j]) \
- { \
- if (IS_END(q, src, len) || (*q != pattern[j])) \
- break; \
- j++; q++; \
- } \
- if (!(pattern[j])) \
- { \
- value = (int)(doubles[i].outvalue[pass]); \
- p= (const uchar *) q - 1; \
- break; \
- } \
- } \
- } \
- p++; \
- break; \
-}
-
-/*
- Function strnncoll, actually strcoll, with Czech sorting, which expect
- the length of the strings being specified
-*/
-
-static int my_strnncoll_czech(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s1, size_t len1,
- const uchar *s2, size_t len2,
- my_bool s2_is_prefix)
-{
- int v1, v2;
- const uchar *p1, * p2, * store1, * store2;
- int pass1 = 0, pass2 = 0;
-
- if (s2_is_prefix && len1 > len2)
- len1=len2;
-
- p1 = s1; p2 = s2;
- store1 = s1; store2 = s2;
-
- do
- {
- int diff;
- NEXT_CMP_VALUE(s1, p1, store1, pass1, v1, (int)len1);
- NEXT_CMP_VALUE(s2, p2, store2, pass2, v2, (int)len2);
- if ((diff = v1 - v2))
- return diff;
- }
- while (v1);
- return 0;
-}
-
-
-
-/*
- TODO: Fix this one to compare strings as they are done in ctype-simple1
-*/
-
-static
-int my_strnncollsp_czech(CHARSET_INFO * cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- for ( ; slen && s[slen-1] == ' ' ; slen--);
- for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
- return my_strnncoll_czech(cs,s,slen,t,tlen,0);
-}
-
-
-/*
- Function strnxfrm, actually strxfrm, with Czech sorting, which expect
- the length of the strings being specified
-*/
-
-static size_t my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- int value;
- const uchar *p, * store;
- int pass = 0;
- size_t totlen = 0;
- p = src; store = src;
-
- do
- {
- NEXT_CMP_VALUE(src, p, store, pass, value, (int)srclen);
- ADD_TO_RESULT(dest, len, totlen, value);
- }
- while (value);
- if (len > totlen)
- bfill(dest + totlen, len - totlen, ' ');
- return len;
-}
-
-#undef IS_END
-
-
-/*
- Neformální popis algoritmu:
-
- procházíme øetìzec zleva doprava
- konec øetìzce poznáme podle *p == 0
- pokud jsme do¹li na konec øetìzce pøi prùchodu 0, nejdeme na
- zaèátek, ale na ulo¾enou pozici, proto¾e první a druhý
- prùchod bì¾í souèasnì
- konec vstupu (prùchodu) oznaèíme na výstupu hodnotou 1
-
- naèteme hodnotu z tøídící tabulky
- jde-li o hodnotu ignorovat (0), skoèíme na dal¹í prùchod
- jde-li o hodnotu konec slova (2) a je to prùchod 0 nebo 1,
- pøeskoèíme v¹echny dal¹í 0 -- 2 a prohodíme
- prùchody
- jde-li o kompozitní znak (255), otestujeme, zda následuje
- správný do dvojice, dohledáme správnou hodnotu
-
- na konci pøipojíme znak 0
- */
-
-
-/*
-** Calculate min_str and max_str that ranges a LIKE string.
-** Arguments:
-** ptr Pointer to LIKE string.
-** ptr_length Length of LIKE string.
-** escape Escape character in LIKE. (Normally '\').
-** All escape characters should be removed from min_str and max_str
-** res_length Length of min_str and max_str.
-** min_str Smallest case sensitive string that ranges LIKE.
-** Should be space padded to res_length.
-** max_str Largest case sensitive string that ranges LIKE.
-** Normally padded with the biggest character sort value.
-**
-** The function should return 0 if ok and 1 if the LIKE string can't be
-** optimized !
-*/
-
-#ifdef REAL_MYSQL
-
-#define min_sort_char ' '
-#define max_sort_char '9'
-
-#define EXAMPLE
-
-static my_bool my_like_range_czech(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr,size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length, char *min_str,
- char *max_str,
- size_t *min_length,size_t *max_length)
-{
-#ifdef EXAMPLE
- uchar value;
- const char *end=ptr+ptr_length;
- char *min_org=min_str;
- char *min_end=min_str+res_length;
-
- for (; ptr != end && min_str != min_end ; ptr++)
- {
- if (*ptr == w_one) /* '_' in SQL */
- { break; }
- if (*ptr == w_many) /* '%' in SQL */
- { break; }
-
- if (*ptr == escape && ptr+1 != end)
- { ptr++; } /* Skip escape */
-
- value = CZ_SORT_TABLE[0][(int) (uchar) *ptr];
-
- if (value == 0) /* Ignore in the first pass */
- { continue; }
- if (value <= 2) /* End of pass or end of string */
- { break; }
- if (value == 255) /* Double char too compicated */
- { break; }
-
- *min_str++= *max_str++ = *ptr;
- }
-
- if (cs->state & MY_CS_BINSORT)
- *min_length= (size_t) (min_str - min_org);
- else
- {
- /* 'a\0\0... is the smallest possible string */
- *min_length= res_length;
- }
- /* a\ff\ff... is the biggest possible string */
- *max_length= res_length;
-
- while (min_str != min_end)
- {
- *min_str++ = min_sort_char; /* Because of key compression */
- *max_str++ = max_sort_char;
- }
- return 0;
-#else
- return 1;
-#endif
-}
-
-#endif
-
-#ifdef REAL_MYSQL
-/* This is a latin2 file */
-
-/*
- * File generated by cset
- * (C) Abandoned 1997 Zarko Mocnik <zarko.mocnik@dem.si>
- *
- * definition table reworked by Jaromir Dolecek <dolecek@ics.muni.cz>
- */
-#include <my_global.h>
-#include "m_string.h"
-
-static uchar ctype_czech[257] = {
-0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 72,
- 1, 16, 1, 16, 1, 1, 16, 0, 0, 1, 1, 1, 1, 16, 1, 1,
- 16, 2, 16, 2, 16, 2, 2, 16, 16, 2, 2, 2, 2, 16, 2, 2,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 16, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 16,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 16,
-};
-
-static uchar to_lower_czech[] = {
- 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, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
-112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
-112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
-128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
-144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
-177,161,179,163,181,182,166,167,168,185,186,187,188,173,190,191,
-176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
-224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
-208,241,242,243,244,245,246,215,248,249,250,251,252,253,254,223,
-224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
-240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,
-};
-
-static uchar to_upper_czech[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
-128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
-144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
-160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
-176,160,178,162,180,164,165,183,184,169,170,171,172,189,174,175,
-192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
-208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
-192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
-240,209,210,211,212,213,214,247,216,217,218,219,220,221,222,255,
-};
-
-static uchar sort_order_czech[] = {
- 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, 65, 71, 72, 76, 78, 83, 84, 85, 86, 90, 91, 92, 96, 97,100,
-105,106,107,110,114,117,122,123,124,125,127,131,132,133,134,135,
-136, 65, 71, 72, 76, 78, 83, 84, 85, 86, 90, 91, 92, 96, 97,100,
-105,106,107,110,114,117,122,123,124,125,127,137,138,139,140, 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,255,
- 66,255, 93,255, 94,111,255,255,255,112,113,115,128,255,129,130,
-255, 66,255, 93,255, 94,111,255,255,112,113,115,128,255,129,130,
-108, 67, 68, 69, 70, 95, 73, 75, 74, 79, 81, 82, 80, 89, 87, 77,
-255, 98, 99,101,102,103,104,255,109,119,118,120,121,126,116,255,
-108, 67, 68, 69, 70, 95, 73, 75, 74, 79, 81, 82, 80, 89, 88, 77,
-255, 98, 99,101,102,103,104,255,109,119,118,120,121,126,116,255,
-};
-
-static uint16 tab_8859_2_uni[256]={
- 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
-0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
-0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
-0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-
-/* 0000-00FD , 254 chars */
-static uchar tab_uni_8859_2_plane00[]={
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0xA0,0x00,0x00,0x00,0xA4,0x00,0x00,0xA7,0xA8,0x00,0x00,0x00,0x00,0xAD,0x00,0x00,
-0xB0,0x00,0x00,0x00,0xB4,0x00,0x00,0x00,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00,
-0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF,
-0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00,
-0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD};
-
-/* 0102-017E , 125 chars */
-static uchar tab_uni_8859_2_plane01[]={
-0xC3,0xE3,0xA1,0xB1,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0,
-0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xA5,0xB5,0x00,0x00,0xA3,
-0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5,
-0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0xA6,0xB6,0x00,0x00,0xAA,0xBA,0xA9,0xB9,
-0xDE,0xFE,0xAB,0xBB,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAC,0xBC,0xAF,0xBF,0xAE,0xBE};
-
-/* 02C7-02DD , 23 chars */
-static uchar tab_uni_8859_2_plane02[]={
-0xB7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD};
-
-static MY_UNI_IDX idx_uni_8859_2[]={
- {0x0000,0x00FD,tab_uni_8859_2_plane00},
- {0x0102,0x017E,tab_uni_8859_2_plane01},
- {0x02C7,0x02DD,tab_uni_8859_2_plane02},
- {0,0,NULL}
-};
-
-
-static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_czech,
- my_strnncollsp_czech,
- my_strnxfrm_czech,
- my_strnxfrmlen_simple,
- my_like_range_czech,
- my_wildcmp_bin,
- my_strcasecmp_8bit,
- my_instr_simple,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-CHARSET_INFO my_charset_latin2_czech_ci =
-{
- 2,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */
- "latin2", /* cs name */
- "latin2_czech_cs", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_czech,
- to_lower_czech,
- to_upper_czech,
- sort_order_czech,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- tab_8859_2_uni, /* tab_to_uni */
- idx_uni_8859_2, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 4, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 0, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_latin2_czech_ci_handler
-};
-
-
-#endif
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-euc_kr.c b/dep/mysqllite/strings/ctype-euc_kr.c
deleted file mode 100644
index 7329f9ec09a..00000000000
--- a/dep/mysqllite/strings/ctype-euc_kr.c
+++ /dev/null
@@ -1,10072 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- * This file is for Korean EUC charset, and created by powerm90@tinc.co.kr.
- * and updated by mrpark@tinc.co.kr.
- */
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. mbmaxlen_euc_kr=2
- */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_CHARSET_euckr
-
-
-static uchar ctype_euc_kr[257] =
-{
- 0, /* For standard library */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* NUL ^A - ^G */
- 0040, 0050, 0050, 0050, 0050, 0050, 0040, 0040, /* ^H - ^O */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^P - ^W */
- 0040, 0040, 0040, 0040, 0040, 0040, 0040, 0040, /* ^X - ^Z ^[ ^\ ^] ^^ ^_ */
- 0110, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* SPC ! " # $ % ^ ' */
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020, /* ( ) * + , - . / */
- 0204, 0204, 0204, 0204, 0204, 0204, 0204, 0204, /* 0 1 2 3 4 5 6 7 */
- 0204, 0204, 0020, 0020, 0020, 0020, 0020, 0020, /* 8 9 : ; < = > ? */
- 0020, 0201, 0201, 0201, 0201, 0201, 0201, 0001, /* @ A B C D E F G */
- 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* H I J K L M N O */
- 0001, 0001, 0001, 0001, 0001, 0001, 0001, 0001, /* P Q R S T U V W */
- 0001, 0001, 0001, 0020, 0020, 0020, 0020, 0020, /* X Y Z [ \ ] ^ _ */
- 0020, 0202, 0202, 0202, 0202, 0202, 0202, 0002, /* ` a b c d e f g */
- 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* h i j k l m n o */
- 0002, 0002, 0002, 0002, 0002, 0002, 0002, 0002, /* p q r s t u v w */
- 0002, 0002, 0002, 0020, 0020, 0020, 0020, 0040, /* x y z { | } + DEL */
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0020,
- 0020, 0020, 0020, 0020, 0020, 0020, 0020, 0000,
-};
-
-static uchar to_lower_euc_kr[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar to_upper_euc_kr[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar sort_order_euc_kr[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-/* Support for Korean(EUC_KR) characters, by powerm90@tinc.co.kr and mrpark@tinc.co.kr */
-
-/*
- Unicode mapping is done according to:
- ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/KSC/KSC5601.TXT
-
- Valid multi-byte characters:
-
- [81..FE][41..5A,61..7A,81..FE]
-
- Note, 0x5C is not a valid MB tail,
- so escape_with_backslash_is_dangerous is not set.
-*/
-
-#define iseuc_kr_head(c) ((0x81<=(uchar)(c) && (uchar)(c)<=0xfe))
-
-#define iseuc_kr_tail1(c) ((uchar) (c) >= 0x41 && (uchar) (c) <= 0x5A)
-#define iseuc_kr_tail2(c) ((uchar) (c) >= 0x61 && (uchar) (c) <= 0x7A)
-#define iseuc_kr_tail3(c) ((uchar) (c) >= 0x81 && (uchar) (c) <= 0xFE)
-
-#define iseuc_kr_tail(c) (iseuc_kr_tail1(c) || \
- iseuc_kr_tail2(c) || \
- iseuc_kr_tail3(c))
-
-
-static uint ismbchar_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
- const char* p, const char *e)
-{
- return ((*(uchar*)(p)<0x80)? 0:\
- iseuc_kr_head(*(p)) && (e)-(p)>1 && iseuc_kr_tail(*((p)+1))? 2:\
- 0);
-}
-
-static uint mbcharlen_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c)
-{
- return (iseuc_kr_head(c) ? 2 : 1);
-}
-
-
-static MY_UNICASE_INFO cA3[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA340,0xA340,0x003F}, /* A340 */
- {0xA341,0xA341,0xC971},
- {0xA342,0xA342,0xC972},
- {0xA343,0xA343,0xC973},
- {0xA344,0xA344,0xC975},
- {0xA345,0xA345,0xC976},
- {0xA346,0xA346,0xC977},
- {0xA347,0xA347,0xC978},
- {0xA348,0xA348,0xC979},
- {0xA349,0xA349,0xC97A},
- {0xA34A,0xA34A,0xC97B},
- {0xA34B,0xA34B,0xC97D},
- {0xA34C,0xA34C,0xC97E},
- {0xA34D,0xA34D,0xC97F},
- {0xA34E,0xA34E,0xC980},
- {0xA34F,0xA34F,0xC981},
- {0xA350,0xA350,0xC982}, /* A350 */
- {0xA351,0xA351,0xC983},
- {0xA352,0xA352,0xC984},
- {0xA353,0xA353,0xC985},
- {0xA354,0xA354,0xC986},
- {0xA355,0xA355,0xC987},
- {0xA356,0xA356,0xC98A},
- {0xA357,0xA357,0xC98B},
- {0xA358,0xA358,0xC98D},
- {0xA359,0xA359,0xC98E},
- {0xA35A,0xA35A,0xC98F},
- {0xA35B,0xA35B,0x003F},
- {0xA35C,0xA35C,0x003F},
- {0xA35D,0xA35D,0x003F},
- {0xA35E,0xA35E,0x003F},
- {0xA35F,0xA35F,0x003F},
- {0xA360,0xA360,0x003F}, /* A360 */
- {0xA361,0xA361,0xC991},
- {0xA362,0xA362,0xC992},
- {0xA363,0xA363,0xC993},
- {0xA364,0xA364,0xC994},
- {0xA365,0xA365,0xC995},
- {0xA366,0xA366,0xC996},
- {0xA367,0xA367,0xC997},
- {0xA368,0xA368,0xC99A},
- {0xA369,0xA369,0xC99C},
- {0xA36A,0xA36A,0xC99E},
- {0xA36B,0xA36B,0xC99F},
- {0xA36C,0xA36C,0xC9A0},
- {0xA36D,0xA36D,0xC9A1},
- {0xA36E,0xA36E,0xC9A2},
- {0xA36F,0xA36F,0xC9A3},
- {0xA370,0xA370,0xC9A4}, /* A370 */
- {0xA371,0xA371,0xC9A5},
- {0xA372,0xA372,0xC9A6},
- {0xA373,0xA373,0xC9A7},
- {0xA374,0xA374,0xC9A8},
- {0xA375,0xA375,0xC9A9},
- {0xA376,0xA376,0xC9AA},
- {0xA377,0xA377,0xC9AB},
- {0xA378,0xA378,0xC9AC},
- {0xA379,0xA379,0xC9AD},
- {0xA37A,0xA37A,0xC9AE},
- {0xA37B,0xA37B,0x003F},
- {0xA37C,0xA37C,0x003F},
- {0xA37D,0xA37D,0x003F},
- {0xA37E,0xA37E,0x003F},
- {0xA37F,0xA37F,0x003F},
- {0xA380,0xA380,0x003F}, /* A380 */
- {0xA381,0xA381,0xC9AF},
- {0xA382,0xA382,0xC9B0},
- {0xA383,0xA383,0xC9B1},
- {0xA384,0xA384,0xC9B2},
- {0xA385,0xA385,0xC9B3},
- {0xA386,0xA386,0xC9B4},
- {0xA387,0xA387,0xC9B5},
- {0xA388,0xA388,0xC9B6},
- {0xA389,0xA389,0xC9B7},
- {0xA38A,0xA38A,0xC9B8},
- {0xA38B,0xA38B,0xC9B9},
- {0xA38C,0xA38C,0xC9BA},
- {0xA38D,0xA38D,0xC9BB},
- {0xA38E,0xA38E,0xC9BC},
- {0xA38F,0xA38F,0xC9BD},
- {0xA390,0xA390,0xC9BE}, /* A390 */
- {0xA391,0xA391,0xC9BF},
- {0xA392,0xA392,0xC9C2},
- {0xA393,0xA393,0xC9C3},
- {0xA394,0xA394,0xC9C5},
- {0xA395,0xA395,0xC9C6},
- {0xA396,0xA396,0xC9C9},
- {0xA397,0xA397,0xC9CB},
- {0xA398,0xA398,0xC9CC},
- {0xA399,0xA399,0xC9CD},
- {0xA39A,0xA39A,0xC9CE},
- {0xA39B,0xA39B,0xC9CF},
- {0xA39C,0xA39C,0xC9D2},
- {0xA39D,0xA39D,0xC9D4},
- {0xA39E,0xA39E,0xC9D7},
- {0xA39F,0xA39F,0xC9D8},
- {0xA3A0,0xA3A0,0xC9DB}, /* A3A0 */
- {0xA3A1,0xA3A1,0xFF01},
- {0xA3A2,0xA3A2,0xFF02},
- {0xA3A3,0xA3A3,0xFF03},
- {0xA3A4,0xA3A4,0xFF04},
- {0xA3A5,0xA3A5,0xFF05},
- {0xA3A6,0xA3A6,0xFF06},
- {0xA3A7,0xA3A7,0xFF07},
- {0xA3A8,0xA3A8,0xFF08},
- {0xA3A9,0xA3A9,0xFF09},
- {0xA3AA,0xA3AA,0xFF0A},
- {0xA3AB,0xA3AB,0xFF0B},
- {0xA3AC,0xA3AC,0xFF0C},
- {0xA3AD,0xA3AD,0xFF0D},
- {0xA3AE,0xA3AE,0xFF0E},
- {0xA3AF,0xA3AF,0xFF0F},
- {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
- {0xA3B1,0xA3B1,0xFF11},
- {0xA3B2,0xA3B2,0xFF12},
- {0xA3B3,0xA3B3,0xFF13},
- {0xA3B4,0xA3B4,0xFF14},
- {0xA3B5,0xA3B5,0xFF15},
- {0xA3B6,0xA3B6,0xFF16},
- {0xA3B7,0xA3B7,0xFF17},
- {0xA3B8,0xA3B8,0xFF18},
- {0xA3B9,0xA3B9,0xFF19},
- {0xA3BA,0xA3BA,0xFF1A},
- {0xA3BB,0xA3BB,0xFF1B},
- {0xA3BC,0xA3BC,0xFF1C},
- {0xA3BD,0xA3BD,0xFF1D},
- {0xA3BE,0xA3BE,0xFF1E},
- {0xA3BF,0xA3BF,0xFF1F},
- {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */
- {0xA3C1,0xA3E1,0xFF21},
- {0xA3C2,0xA3E2,0xFF22},
- {0xA3C3,0xA3E3,0xFF23},
- {0xA3C4,0xA3E4,0xFF24},
- {0xA3C5,0xA3E5,0xFF25},
- {0xA3C6,0xA3E6,0xFF26},
- {0xA3C7,0xA3E7,0xFF27},
- {0xA3C8,0xA3E8,0xFF28},
- {0xA3C9,0xA3E9,0xFF29},
- {0xA3CA,0xA3EA,0xFF2A},
- {0xA3CB,0xA3EB,0xFF2B},
- {0xA3CC,0xA3EC,0xFF2C},
- {0xA3CD,0xA3ED,0xFF2D},
- {0xA3CE,0xA3EE,0xFF2E},
- {0xA3CF,0xA3EF,0xFF2F},
- {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
- {0xA3D1,0xA3F1,0xFF31},
- {0xA3D2,0xA3F2,0xFF32},
- {0xA3D3,0xA3F3,0xFF33},
- {0xA3D4,0xA3F4,0xFF34},
- {0xA3D5,0xA3F5,0xFF35},
- {0xA3D6,0xA3F6,0xFF36},
- {0xA3D7,0xA3F7,0xFF37},
- {0xA3D8,0xA3F8,0xFF38},
- {0xA3D9,0xA3F9,0xFF39},
- {0xA3DA,0xA3FA,0xFF3A},
- {0xA3DB,0xA3DB,0xFF3B},
- {0xA3DC,0xA3DC,0xFFE6},
- {0xA3DD,0xA3DD,0xFF3D},
- {0xA3DE,0xA3DE,0xFF3E},
- {0xA3DF,0xA3DF,0xFF3F},
- {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */
- {0xA3C1,0xA3E1,0xFF41},
- {0xA3C2,0xA3E2,0xFF42},
- {0xA3C3,0xA3E3,0xFF43},
- {0xA3C4,0xA3E4,0xFF44},
- {0xA3C5,0xA3E5,0xFF45},
- {0xA3C6,0xA3E6,0xFF46},
- {0xA3C7,0xA3E7,0xFF47},
- {0xA3C8,0xA3E8,0xFF48},
- {0xA3C9,0xA3E9,0xFF49},
- {0xA3CA,0xA3EA,0xFF4A},
- {0xA3CB,0xA3EB,0xFF4B},
- {0xA3CC,0xA3EC,0xFF4C},
- {0xA3CD,0xA3ED,0xFF4D},
- {0xA3CE,0xA3EE,0xFF4E},
- {0xA3CF,0xA3EF,0xFF4F},
- {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
- {0xA3D1,0xA3F1,0xFF51},
- {0xA3D2,0xA3F2,0xFF52},
- {0xA3D3,0xA3F3,0xFF53},
- {0xA3D4,0xA3F4,0xFF54},
- {0xA3D5,0xA3F5,0xFF55},
- {0xA3D6,0xA3F6,0xFF56},
- {0xA3D7,0xA3F7,0xFF57},
- {0xA3D8,0xA3F8,0xFF58},
- {0xA3D9,0xA3F9,0xFF59},
- {0xA3DA,0xA3FA,0xFF5A},
- {0xA3FB,0xA3FB,0xFF5B},
- {0xA3FC,0xA3FC,0xFF5C},
- {0xA3FD,0xA3FD,0xFF5D},
- {0xA3FE,0xA3FE,0xFFE3},
- {0xA3FF,0xA3FF,0x003F}
-};
-
-
-static MY_UNICASE_INFO cA5[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA540,0xA540,0x003F}, /* A540 */
- {0xA541,0xA541,0xCA47},
- {0xA542,0xA542,0xCA48},
- {0xA543,0xA543,0xCA49},
- {0xA544,0xA544,0xCA4A},
- {0xA545,0xA545,0xCA4B},
- {0xA546,0xA546,0xCA4E},
- {0xA547,0xA547,0xCA4F},
- {0xA548,0xA548,0xCA51},
- {0xA549,0xA549,0xCA52},
- {0xA54A,0xA54A,0xCA53},
- {0xA54B,0xA54B,0xCA55},
- {0xA54C,0xA54C,0xCA56},
- {0xA54D,0xA54D,0xCA57},
- {0xA54E,0xA54E,0xCA58},
- {0xA54F,0xA54F,0xCA59},
- {0xA550,0xA550,0xCA5A}, /* A550 */
- {0xA551,0xA551,0xCA5B},
- {0xA552,0xA552,0xCA5E},
- {0xA553,0xA553,0xCA62},
- {0xA554,0xA554,0xCA63},
- {0xA555,0xA555,0xCA64},
- {0xA556,0xA556,0xCA65},
- {0xA557,0xA557,0xCA66},
- {0xA558,0xA558,0xCA67},
- {0xA559,0xA559,0xCA69},
- {0xA55A,0xA55A,0xCA6A},
- {0xA55B,0xA55B,0x003F},
- {0xA55C,0xA55C,0x003F},
- {0xA55D,0xA55D,0x003F},
- {0xA55E,0xA55E,0x003F},
- {0xA55F,0xA55F,0x003F},
- {0xA560,0xA560,0x003F}, /* A560 */
- {0xA561,0xA561,0xCA6B},
- {0xA562,0xA562,0xCA6C},
- {0xA563,0xA563,0xCA6D},
- {0xA564,0xA564,0xCA6E},
- {0xA565,0xA565,0xCA6F},
- {0xA566,0xA566,0xCA70},
- {0xA567,0xA567,0xCA71},
- {0xA568,0xA568,0xCA72},
- {0xA569,0xA569,0xCA73},
- {0xA56A,0xA56A,0xCA74},
- {0xA56B,0xA56B,0xCA75},
- {0xA56C,0xA56C,0xCA76},
- {0xA56D,0xA56D,0xCA77},
- {0xA56E,0xA56E,0xCA78},
- {0xA56F,0xA56F,0xCA79},
- {0xA570,0xA570,0xCA7A}, /* A570 */
- {0xA571,0xA571,0xCA7B},
- {0xA572,0xA572,0xCA7C},
- {0xA573,0xA573,0xCA7E},
- {0xA574,0xA574,0xCA7F},
- {0xA575,0xA575,0xCA80},
- {0xA576,0xA576,0xCA81},
- {0xA577,0xA577,0xCA82},
- {0xA578,0xA578,0xCA83},
- {0xA579,0xA579,0xCA85},
- {0xA57A,0xA57A,0xCA86},
- {0xA57B,0xA57B,0x003F},
- {0xA57C,0xA57C,0x003F},
- {0xA57D,0xA57D,0x003F},
- {0xA57E,0xA57E,0x003F},
- {0xA57F,0xA57F,0x003F},
- {0xA580,0xA580,0x003F}, /* A580 */
- {0xA581,0xA581,0xCA87},
- {0xA582,0xA582,0xCA88},
- {0xA583,0xA583,0xCA89},
- {0xA584,0xA584,0xCA8A},
- {0xA585,0xA585,0xCA8B},
- {0xA586,0xA586,0xCA8C},
- {0xA587,0xA587,0xCA8D},
- {0xA588,0xA588,0xCA8E},
- {0xA589,0xA589,0xCA8F},
- {0xA58A,0xA58A,0xCA90},
- {0xA58B,0xA58B,0xCA91},
- {0xA58C,0xA58C,0xCA92},
- {0xA58D,0xA58D,0xCA93},
- {0xA58E,0xA58E,0xCA94},
- {0xA58F,0xA58F,0xCA95},
- {0xA590,0xA590,0xCA96}, /* A590 */
- {0xA591,0xA591,0xCA97},
- {0xA592,0xA592,0xCA99},
- {0xA593,0xA593,0xCA9A},
- {0xA594,0xA594,0xCA9B},
- {0xA595,0xA595,0xCA9C},
- {0xA596,0xA596,0xCA9D},
- {0xA597,0xA597,0xCA9E},
- {0xA598,0xA598,0xCA9F},
- {0xA599,0xA599,0xCAA0},
- {0xA59A,0xA59A,0xCAA1},
- {0xA59B,0xA59B,0xCAA2},
- {0xA59C,0xA59C,0xCAA3},
- {0xA59D,0xA59D,0xCAA4},
- {0xA59E,0xA59E,0xCAA5},
- {0xA59F,0xA59F,0xCAA6},
- {0xA5A0,0xA5A0,0xCAA7}, /* A5A0 */
- {0xA5B0,0xA5A1,0x2170},
- {0xA5B1,0xA5A2,0x2171},
- {0xA5B2,0xA5A3,0x2172},
- {0xA5B3,0xA5A4,0x2173},
- {0xA5B4,0xA5A5,0x2174},
- {0xA5B5,0xA5A6,0x2175},
- {0xA5B6,0xA5A7,0x2176},
- {0xA5B7,0xA5A8,0x2177},
- {0xA5B8,0xA5A9,0x2178},
- {0xA5B9,0xA5AA,0x2179},
- {0xA5AB,0xA5AB,0x003F},
- {0xA5AC,0xA5AC,0x003F},
- {0xA5AD,0xA5AD,0x003F},
- {0xA5AE,0xA5AE,0x003F},
- {0xA5AF,0xA5AF,0x003F},
- {0xA5B0,0xA5A1,0x2160}, /* A5B0 */
- {0xA5B1,0xA5A2,0x2161},
- {0xA5B2,0xA5A3,0x2162},
- {0xA5B3,0xA5A4,0x2163},
- {0xA5B4,0xA5A5,0x2164},
- {0xA5B5,0xA5A6,0x2165},
- {0xA5B6,0xA5A7,0x2166},
- {0xA5B7,0xA5A8,0x2167},
- {0xA5B8,0xA5A9,0x2168},
- {0xA5B9,0xA5AA,0x2169},
- {0xA5BA,0xA5BA,0x003F},
- {0xA5BB,0xA5BB,0x003F},
- {0xA5BC,0xA5BC,0x003F},
- {0xA5BD,0xA5BD,0x003F},
- {0xA5BE,0xA5BE,0x003F},
- {0xA5BF,0xA5BF,0x003F},
- {0xA5C0,0xA5C0,0x003F}, /* A5C0 */
- {0xA5C1,0xA5E1,0x0391},
- {0xA5C2,0xA5E2,0x0392},
- {0xA5C3,0xA5E3,0x0393},
- {0xA5C4,0xA5E4,0x0394},
- {0xA5C5,0xA5E5,0x0395},
- {0xA5C6,0xA5E6,0x0396},
- {0xA5C7,0xA5E7,0x0397},
- {0xA5C8,0xA5E8,0x0398},
- {0xA5C9,0xA5E9,0x0399},
- {0xA5CA,0xA5EA,0x039A},
- {0xA5CB,0xA5EB,0x039B},
- {0xA5CC,0xA5EC,0x039C},
- {0xA5CD,0xA5ED,0x039D},
- {0xA5CE,0xA5EE,0x039E},
- {0xA5CF,0xA5EF,0x039F},
- {0xA5D0,0xA5F0,0x03A0}, /* A5D0 */
- {0xA5D1,0xA5F1,0x03A1},
- {0xA5D2,0xA5F2,0x03A3},
- {0xA5D3,0xA5F3,0x03A4},
- {0xA5D4,0xA5F4,0x03A5},
- {0xA5D5,0xA5F5,0x03A6},
- {0xA5D6,0xA5F6,0x03A7},
- {0xA5D7,0xA5F7,0x03A8},
- {0xA5D8,0xA5F8,0x03A9},
- {0xA5D9,0xA5D9,0x003F},
- {0xA5DA,0xA5DA,0x003F},
- {0xA5DB,0xA5DB,0x003F},
- {0xA5DC,0xA5DC,0x003F},
- {0xA5DD,0xA5DD,0x003F},
- {0xA5DE,0xA5DE,0x003F},
- {0xA5DF,0xA5DF,0x003F},
- {0xA5E0,0xA5E0,0x003F}, /* A5E0 */
- {0xA5C1,0xA5E1,0x03B1},
- {0xA5C2,0xA5E2,0x03B2},
- {0xA5C3,0xA5E3,0x03B3},
- {0xA5C4,0xA5E4,0x03B4},
- {0xA5C5,0xA5E5,0x03B5},
- {0xA5C6,0xA5E6,0x03B6},
- {0xA5C7,0xA5E7,0x03B7},
- {0xA5C8,0xA5E8,0x03B8},
- {0xA5C9,0xA5E9,0x03B9},
- {0xA5CA,0xA5EA,0x03BA},
- {0xA5CB,0xA5EB,0x03BB},
- {0xA5CC,0xA5EC,0x03BC},
- {0xA5CD,0xA5ED,0x03BD},
- {0xA5CE,0xA5EE,0x03BE},
- {0xA5CF,0xA5EF,0x03BF},
- {0xA5D0,0xA5F0,0x03C0}, /* A5F0 */
- {0xA5D1,0xA5F1,0x03C1},
- {0xA5D2,0xA5F2,0x03C3},
- {0xA5D3,0xA5F3,0x03C4},
- {0xA5D4,0xA5F4,0x03C5},
- {0xA5D5,0xA5F5,0x03C6},
- {0xA5D6,0xA5F6,0x03C7},
- {0xA5D7,0xA5F7,0x03C8},
- {0xA5D8,0xA5F8,0x03C9},
- {0xA5F9,0xA5F9,0x003F},
- {0xA5FA,0xA5FA,0x003F},
- {0xA5FB,0xA5FB,0x003F},
- {0xA5FC,0xA5FC,0x003F},
- {0xA5FD,0xA5FD,0x003F},
- {0xA5FE,0xA5FE,0x003F},
- {0xA5FF,0xA5FF,0x003F}
-};
-
-
-static MY_UNICASE_INFO cA7[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA740,0xA740,0x003F}, /* A740 */
- {0xA741,0xA741,0xCB0B},
- {0xA742,0xA742,0xCB0C},
- {0xA743,0xA743,0xCB0D},
- {0xA744,0xA744,0xCB0E},
- {0xA745,0xA745,0xCB0F},
- {0xA746,0xA746,0xCB11},
- {0xA747,0xA747,0xCB12},
- {0xA748,0xA748,0xCB13},
- {0xA749,0xA749,0xCB15},
- {0xA74A,0xA74A,0xCB16},
- {0xA74B,0xA74B,0xCB17},
- {0xA74C,0xA74C,0xCB19},
- {0xA74D,0xA74D,0xCB1A},
- {0xA74E,0xA74E,0xCB1B},
- {0xA74F,0xA74F,0xCB1C},
- {0xA750,0xA750,0xCB1D}, /* A750 */
- {0xA751,0xA751,0xCB1E},
- {0xA752,0xA752,0xCB1F},
- {0xA753,0xA753,0xCB22},
- {0xA754,0xA754,0xCB23},
- {0xA755,0xA755,0xCB24},
- {0xA756,0xA756,0xCB25},
- {0xA757,0xA757,0xCB26},
- {0xA758,0xA758,0xCB27},
- {0xA759,0xA759,0xCB28},
- {0xA75A,0xA75A,0xCB29},
- {0xA75B,0xA75B,0x003F},
- {0xA75C,0xA75C,0x003F},
- {0xA75D,0xA75D,0x003F},
- {0xA75E,0xA75E,0x003F},
- {0xA75F,0xA75F,0x003F},
- {0xA760,0xA760,0x003F}, /* A760 */
- {0xA761,0xA761,0xCB2A},
- {0xA762,0xA762,0xCB2B},
- {0xA763,0xA763,0xCB2C},
- {0xA764,0xA764,0xCB2D},
- {0xA765,0xA765,0xCB2E},
- {0xA766,0xA766,0xCB2F},
- {0xA767,0xA767,0xCB30},
- {0xA768,0xA768,0xCB31},
- {0xA769,0xA769,0xCB32},
- {0xA76A,0xA76A,0xCB33},
- {0xA76B,0xA76B,0xCB34},
- {0xA76C,0xA76C,0xCB35},
- {0xA76D,0xA76D,0xCB36},
- {0xA76E,0xA76E,0xCB37},
- {0xA76F,0xA76F,0xCB38},
- {0xA770,0xA770,0xCB39}, /* A770 */
- {0xA771,0xA771,0xCB3A},
- {0xA772,0xA772,0xCB3B},
- {0xA773,0xA773,0xCB3C},
- {0xA774,0xA774,0xCB3D},
- {0xA775,0xA775,0xCB3E},
- {0xA776,0xA776,0xCB3F},
- {0xA777,0xA777,0xCB40},
- {0xA778,0xA778,0xCB42},
- {0xA779,0xA779,0xCB43},
- {0xA77A,0xA77A,0xCB44},
- {0xA77B,0xA77B,0x003F},
- {0xA77C,0xA77C,0x003F},
- {0xA77D,0xA77D,0x003F},
- {0xA77E,0xA77E,0x003F},
- {0xA77F,0xA77F,0x003F},
- {0xA780,0xA780,0x003F}, /* A780 */
- {0xA781,0xA781,0xCB45},
- {0xA782,0xA782,0xCB46},
- {0xA783,0xA783,0xCB47},
- {0xA784,0xA784,0xCB4A},
- {0xA785,0xA785,0xCB4B},
- {0xA786,0xA786,0xCB4D},
- {0xA787,0xA787,0xCB4E},
- {0xA788,0xA788,0xCB4F},
- {0xA789,0xA789,0xCB51},
- {0xA78A,0xA78A,0xCB52},
- {0xA78B,0xA78B,0xCB53},
- {0xA78C,0xA78C,0xCB54},
- {0xA78D,0xA78D,0xCB55},
- {0xA78E,0xA78E,0xCB56},
- {0xA78F,0xA78F,0xCB57},
- {0xA790,0xA790,0xCB5A}, /* A790 */
- {0xA791,0xA791,0xCB5B},
- {0xA792,0xA792,0xCB5C},
- {0xA793,0xA793,0xCB5E},
- {0xA794,0xA794,0xCB5F},
- {0xA795,0xA795,0xCB60},
- {0xA796,0xA796,0xCB61},
- {0xA797,0xA797,0xCB62},
- {0xA798,0xA798,0xCB63},
- {0xA799,0xA799,0xCB65},
- {0xA79A,0xA79A,0xCB66},
- {0xA79B,0xA79B,0xCB67},
- {0xA79C,0xA79C,0xCB68},
- {0xA79D,0xA79D,0xCB69},
- {0xA79E,0xA79E,0xCB6A},
- {0xA79F,0xA79F,0xCB6B},
- {0xA7A0,0xA7A0,0xCB6C}, /* A7A0 */
- {0xA7A1,0xA7A1,0x3395},
- {0xA7A2,0xA7A2,0x3396},
- {0xA7A3,0xA7A3,0x3397},
- {0xA7A4,0xA7A4,0x2113},
- {0xA7A5,0xA7A5,0x3398},
- {0xA7A6,0xA7A6,0x33C4},
- {0xA7A7,0xA7A7,0x33A3},
- {0xA7A8,0xA7A8,0x33A4},
- {0xA7A9,0xA7A9,0x33A5},
- {0xA7AA,0xA7AA,0x33A6},
- {0xA7AB,0xA7AB,0x3399},
- {0xA7AC,0xA7AC,0x339A},
- {0xA7AD,0xA7AD,0x339B},
- {0xA7AE,0xA7AE,0x339C},
- {0xA7AF,0xA7AF,0x339D},
- {0xA7B0,0xA7B0,0x339E}, /* A7B0 */
- {0xA7B1,0xA7B1,0x339F},
- {0xA7B2,0xA7B2,0x33A0},
- {0xA7B3,0xA7B3,0x33A1},
- {0xA7B4,0xA7B4,0x33A2},
- {0xA7B5,0xA7B5,0x33CA},
- {0xA7B6,0xA7B6,0x338D},
- {0xA7B7,0xA7B7,0x338E},
- {0xA7B8,0xA7B8,0x338F},
- {0xA7B9,0xA7B9,0x33CF},
- {0xA7BA,0xA7BA,0x3388},
- {0xA7BB,0xA7BB,0x3389},
- {0xA7BC,0xA7BC,0x33C8},
- {0xA7BD,0xA7BD,0x33A7},
- {0xA7BE,0xA7BE,0x33A8},
- {0xA7BF,0xA7BF,0x33B0},
- {0xA7C0,0xA7C0,0x33B1}, /* A7C0 */
- {0xA7C1,0xA7C1,0x33B2},
- {0xA7C2,0xA7C2,0x33B3},
- {0xA7C3,0xA7C3,0x33B4},
- {0xA7C4,0xA7C4,0x33B5},
- {0xA7C5,0xA7C5,0x33B6},
- {0xA7C6,0xA7C6,0x33B7},
- {0xA7C7,0xA7C7,0x33B8},
- {0xA7C8,0xA7C8,0x33B9},
- {0xA7C9,0xA7C9,0x3380},
- {0xA7CA,0xA7CA,0x3381},
- {0xA7CB,0xA7CB,0x3382},
- {0xA7CC,0xA7CC,0x3383},
- {0xA7CD,0xA7CD,0x3384},
- {0xA7CE,0xA7CE,0x33BA},
- {0xA7CF,0xA7CF,0x33BB},
- {0xA7D0,0xA7D0,0x33BC}, /* A7D0 */
- {0xA7D1,0xA7D1,0x33BD},
- {0xA7D2,0xA7D2,0x33BE},
- {0xA7D3,0xA7D3,0x33BF},
- {0xA7D4,0xA7D4,0x3390},
- {0xA7D5,0xA7D5,0x3391},
- {0xA7D6,0xA7D6,0x3392},
- {0xA7D7,0xA7D7,0x3393},
- {0xA7D8,0xA7D8,0x3394},
- {0xA7D9,0xA5F8,0x2126},
- {0xA7DA,0xA7DA,0x33C0},
- {0xA7DB,0xA7DB,0x33C1},
- {0xA7DC,0xA7DC,0x338A},
- {0xA7DD,0xA7DD,0x338B},
- {0xA7DE,0xA7DE,0x338C},
- {0xA7DF,0xA7DF,0x33D6},
- {0xA7E0,0xA7E0,0x33C5}, /* A7E0 */
- {0xA7E1,0xA7E1,0x33AD},
- {0xA7E2,0xA7E2,0x33AE},
- {0xA7E3,0xA7E3,0x33AF},
- {0xA7E4,0xA7E4,0x33DB},
- {0xA7E5,0xA7E5,0x33A9},
- {0xA7E6,0xA7E6,0x33AA},
- {0xA7E7,0xA7E7,0x33AB},
- {0xA7E8,0xA7E8,0x33AC},
- {0xA7E9,0xA7E9,0x33DD},
- {0xA7EA,0xA7EA,0x33D0},
- {0xA7EB,0xA7EB,0x33D3},
- {0xA7EC,0xA7EC,0x33C3},
- {0xA7ED,0xA7ED,0x33C9},
- {0xA7EE,0xA7EE,0x33DC},
- {0xA7EF,0xA7EF,0x33C6},
- {0xA7F0,0xA7F0,0x003F}, /* A7F0 */
- {0xA7F1,0xA7F1,0x003F},
- {0xA7F2,0xA7F2,0x003F},
- {0xA7F3,0xA7F3,0x003F},
- {0xA7F4,0xA7F4,0x003F},
- {0xA7F5,0xA7F5,0x003F},
- {0xA7F6,0xA7F6,0x003F},
- {0xA7F7,0xA7F7,0x003F},
- {0xA7F8,0xA7F8,0x003F},
- {0xA7F9,0xA7F9,0x003F},
- {0xA7FA,0xA7FA,0x003F},
- {0xA7FB,0xA7FB,0x003F},
- {0xA7FC,0xA7FC,0x003F},
- {0xA7FD,0xA7FD,0x003F},
- {0xA7FE,0xA7FE,0x003F},
- {0xA7FF,0xA7FF,0x003F}
-};
-
-
-static MY_UNICASE_INFO cA8[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA840,0xA840,0x003F}, /* A840 */
- {0xA841,0xA841,0xCB6D},
- {0xA842,0xA842,0xCB6E},
- {0xA843,0xA843,0xCB6F},
- {0xA844,0xA844,0xCB70},
- {0xA845,0xA845,0xCB71},
- {0xA846,0xA846,0xCB72},
- {0xA847,0xA847,0xCB73},
- {0xA848,0xA848,0xCB74},
- {0xA849,0xA849,0xCB75},
- {0xA84A,0xA84A,0xCB76},
- {0xA84B,0xA84B,0xCB77},
- {0xA84C,0xA84C,0xCB7A},
- {0xA84D,0xA84D,0xCB7B},
- {0xA84E,0xA84E,0xCB7C},
- {0xA84F,0xA84F,0xCB7D},
- {0xA850,0xA850,0xCB7E}, /* A850 */
- {0xA851,0xA851,0xCB7F},
- {0xA852,0xA852,0xCB80},
- {0xA853,0xA853,0xCB81},
- {0xA854,0xA854,0xCB82},
- {0xA855,0xA855,0xCB83},
- {0xA856,0xA856,0xCB84},
- {0xA857,0xA857,0xCB85},
- {0xA858,0xA858,0xCB86},
- {0xA859,0xA859,0xCB87},
- {0xA85A,0xA85A,0xCB88},
- {0xA85B,0xA85B,0x003F},
- {0xA85C,0xA85C,0x003F},
- {0xA85D,0xA85D,0x003F},
- {0xA85E,0xA85E,0x003F},
- {0xA85F,0xA85F,0x003F},
- {0xA860,0xA860,0x003F}, /* A860 */
- {0xA861,0xA861,0xCB89},
- {0xA862,0xA862,0xCB8A},
- {0xA863,0xA863,0xCB8B},
- {0xA864,0xA864,0xCB8C},
- {0xA865,0xA865,0xCB8D},
- {0xA866,0xA866,0xCB8E},
- {0xA867,0xA867,0xCB8F},
- {0xA868,0xA868,0xCB90},
- {0xA869,0xA869,0xCB91},
- {0xA86A,0xA86A,0xCB92},
- {0xA86B,0xA86B,0xCB93},
- {0xA86C,0xA86C,0xCB94},
- {0xA86D,0xA86D,0xCB95},
- {0xA86E,0xA86E,0xCB96},
- {0xA86F,0xA86F,0xCB97},
- {0xA870,0xA870,0xCB98}, /* A870 */
- {0xA871,0xA871,0xCB99},
- {0xA872,0xA872,0xCB9A},
- {0xA873,0xA873,0xCB9B},
- {0xA874,0xA874,0xCB9D},
- {0xA875,0xA875,0xCB9E},
- {0xA876,0xA876,0xCB9F},
- {0xA877,0xA877,0xCBA0},
- {0xA878,0xA878,0xCBA1},
- {0xA879,0xA879,0xCBA2},
- {0xA87A,0xA87A,0xCBA3},
- {0xA87B,0xA87B,0x003F},
- {0xA87C,0xA87C,0x003F},
- {0xA87D,0xA87D,0x003F},
- {0xA87E,0xA87E,0x003F},
- {0xA87F,0xA87F,0x003F},
- {0xA880,0xA880,0x003F}, /* A880 */
- {0xA881,0xA881,0xCBA4},
- {0xA882,0xA882,0xCBA5},
- {0xA883,0xA883,0xCBA6},
- {0xA884,0xA884,0xCBA7},
- {0xA885,0xA885,0xCBA8},
- {0xA886,0xA886,0xCBA9},
- {0xA887,0xA887,0xCBAA},
- {0xA888,0xA888,0xCBAB},
- {0xA889,0xA889,0xCBAC},
- {0xA88A,0xA88A,0xCBAD},
- {0xA88B,0xA88B,0xCBAE},
- {0xA88C,0xA88C,0xCBAF},
- {0xA88D,0xA88D,0xCBB0},
- {0xA88E,0xA88E,0xCBB1},
- {0xA88F,0xA88F,0xCBB2},
- {0xA890,0xA890,0xCBB3}, /* A890 */
- {0xA891,0xA891,0xCBB4},
- {0xA892,0xA892,0xCBB5},
- {0xA893,0xA893,0xCBB6},
- {0xA894,0xA894,0xCBB7},
- {0xA895,0xA895,0xCBB9},
- {0xA896,0xA896,0xCBBA},
- {0xA897,0xA897,0xCBBB},
- {0xA898,0xA898,0xCBBC},
- {0xA899,0xA899,0xCBBD},
- {0xA89A,0xA89A,0xCBBE},
- {0xA89B,0xA89B,0xCBBF},
- {0xA89C,0xA89C,0xCBC0},
- {0xA89D,0xA89D,0xCBC1},
- {0xA89E,0xA89E,0xCBC2},
- {0xA89F,0xA89F,0xCBC3},
- {0xA8A0,0xA8A0,0xCBC4}, /* A8A0 */
- {0xA8A1,0xA9A1,0x00C6},
- {0xA8A2,0xA9A3,0x00D0},
- {0xA8A3,0xA8A3,0x00AA},
- {0xA8A4,0xA9A4,0x0126},
- {0xA8A5,0xA8A5,0x003F},
- {0xA8A6,0xA9A6,0x0132},
- {0xA8A7,0xA8A7,0x003F},
- {0xA8A8,0xA9A8,0x013F},
- {0xA8A9,0xA9A9,0x0141},
- {0xA8AA,0xA9AA,0x00D8},
- {0xA8AB,0xA9AB,0x0152},
- {0xA8AC,0xA8AC,0x00BA},
- {0xA8AD,0xA9AD,0x00DE},
- {0xA8AE,0xA9AE,0x0166},
- {0xA8AF,0xA9AF,0x014A},
- {0xA8B0,0xA8B0,0x003F}, /* A8B0 */
- {0xA8B1,0xA8B1,0x3260},
- {0xA8B2,0xA8B2,0x3261},
- {0xA8B3,0xA8B3,0x3262},
- {0xA8B4,0xA8B4,0x3263},
- {0xA8B5,0xA8B5,0x3264},
- {0xA8B6,0xA8B6,0x3265},
- {0xA8B7,0xA8B7,0x3266},
- {0xA8B8,0xA8B8,0x3267},
- {0xA8B9,0xA8B9,0x3268},
- {0xA8BA,0xA8BA,0x3269},
- {0xA8BB,0xA8BB,0x326A},
- {0xA8BC,0xA8BC,0x326B},
- {0xA8BD,0xA8BD,0x326C},
- {0xA8BE,0xA8BE,0x326D},
- {0xA8BF,0xA8BF,0x326E},
- {0xA8C0,0xA8C0,0x326F}, /* A8C0 */
- {0xA8C1,0xA8C1,0x3270},
- {0xA8C2,0xA8C2,0x3271},
- {0xA8C3,0xA8C3,0x3272},
- {0xA8C4,0xA8C4,0x3273},
- {0xA8C5,0xA8C5,0x3274},
- {0xA8C6,0xA8C6,0x3275},
- {0xA8C7,0xA8C7,0x3276},
- {0xA8C8,0xA8C8,0x3277},
- {0xA8C9,0xA8C9,0x3278},
- {0xA8CA,0xA8CA,0x3279},
- {0xA8CB,0xA8CB,0x327A},
- {0xA8CC,0xA8CC,0x327B},
- {0xA8CD,0xA8CD,0x24D0},
- {0xA8CE,0xA8CE,0x24D1},
- {0xA8CF,0xA8CF,0x24D2},
- {0xA8D0,0xA8D0,0x24D3}, /* A8D0 */
- {0xA8D1,0xA8D1,0x24D4},
- {0xA8D2,0xA8D2,0x24D5},
- {0xA8D3,0xA8D3,0x24D6},
- {0xA8D4,0xA8D4,0x24D7},
- {0xA8D5,0xA8D5,0x24D8},
- {0xA8D6,0xA8D6,0x24D9},
- {0xA8D7,0xA8D7,0x24DA},
- {0xA8D8,0xA8D8,0x24DB},
- {0xA8D9,0xA8D9,0x24DC},
- {0xA8DA,0xA8DA,0x24DD},
- {0xA8DB,0xA8DB,0x24DE},
- {0xA8DC,0xA8DC,0x24DF},
- {0xA8DD,0xA8DD,0x24E0},
- {0xA8DE,0xA8DE,0x24E1},
- {0xA8DF,0xA8DF,0x24E2},
- {0xA8E0,0xA8E0,0x24E3}, /* A8E0 */
- {0xA8E1,0xA8E1,0x24E4},
- {0xA8E2,0xA8E2,0x24E5},
- {0xA8E3,0xA8E3,0x24E6},
- {0xA8E4,0xA8E4,0x24E7},
- {0xA8E5,0xA8E5,0x24E8},
- {0xA8E6,0xA8E6,0x24E9},
- {0xA8E7,0xA8E7,0x2460},
- {0xA8E8,0xA8E8,0x2461},
- {0xA8E9,0xA8E9,0x2462},
- {0xA8EA,0xA8EA,0x2463},
- {0xA8EB,0xA8EB,0x2464},
- {0xA8EC,0xA8EC,0x2465},
- {0xA8ED,0xA8ED,0x2466},
- {0xA8EE,0xA8EE,0x2467},
- {0xA8EF,0xA8EF,0x2468},
- {0xA8F0,0xA8F0,0x2469}, /* A8F0 */
- {0xA8F1,0xA8F1,0x246A},
- {0xA8F2,0xA8F2,0x246B},
- {0xA8F3,0xA8F3,0x246C},
- {0xA8F4,0xA8F4,0x246D},
- {0xA8F5,0xA8F5,0x246E},
- {0xA8F6,0xA8F6,0x00BD},
- {0xA8F7,0xA8F7,0x2153},
- {0xA8F8,0xA8F8,0x2154},
- {0xA8F9,0xA8F9,0x00BC},
- {0xA8FA,0xA8FA,0x00BE},
- {0xA8FB,0xA8FB,0x215B},
- {0xA8FC,0xA8FC,0x215C},
- {0xA8FD,0xA8FD,0x215D},
- {0xA8FE,0xA8FE,0x215E},
- {0xA8FF,0xA8FF,0x003F}
-};
-
-
-static MY_UNICASE_INFO cA9[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA940,0xA940,0x003F}, /* A940 */
- {0xA941,0xA941,0xCBC5},
- {0xA942,0xA942,0xCBC6},
- {0xA943,0xA943,0xCBC7},
- {0xA944,0xA944,0xCBC8},
- {0xA945,0xA945,0xCBC9},
- {0xA946,0xA946,0xCBCA},
- {0xA947,0xA947,0xCBCB},
- {0xA948,0xA948,0xCBCC},
- {0xA949,0xA949,0xCBCD},
- {0xA94A,0xA94A,0xCBCE},
- {0xA94B,0xA94B,0xCBCF},
- {0xA94C,0xA94C,0xCBD0},
- {0xA94D,0xA94D,0xCBD1},
- {0xA94E,0xA94E,0xCBD2},
- {0xA94F,0xA94F,0xCBD3},
- {0xA950,0xA950,0xCBD5}, /* A950 */
- {0xA951,0xA951,0xCBD6},
- {0xA952,0xA952,0xCBD7},
- {0xA953,0xA953,0xCBD8},
- {0xA954,0xA954,0xCBD9},
- {0xA955,0xA955,0xCBDA},
- {0xA956,0xA956,0xCBDB},
- {0xA957,0xA957,0xCBDC},
- {0xA958,0xA958,0xCBDD},
- {0xA959,0xA959,0xCBDE},
- {0xA95A,0xA95A,0xCBDF},
- {0xA95B,0xA95B,0x003F},
- {0xA95C,0xA95C,0x003F},
- {0xA95D,0xA95D,0x003F},
- {0xA95E,0xA95E,0x003F},
- {0xA95F,0xA95F,0x003F},
- {0xA960,0xA960,0x003F}, /* A960 */
- {0xA961,0xA961,0xCBE0},
- {0xA962,0xA962,0xCBE1},
- {0xA963,0xA963,0xCBE2},
- {0xA964,0xA964,0xCBE3},
- {0xA965,0xA965,0xCBE5},
- {0xA966,0xA966,0xCBE6},
- {0xA967,0xA967,0xCBE8},
- {0xA968,0xA968,0xCBEA},
- {0xA969,0xA969,0xCBEB},
- {0xA96A,0xA96A,0xCBEC},
- {0xA96B,0xA96B,0xCBED},
- {0xA96C,0xA96C,0xCBEE},
- {0xA96D,0xA96D,0xCBEF},
- {0xA96E,0xA96E,0xCBF0},
- {0xA96F,0xA96F,0xCBF1},
- {0xA970,0xA970,0xCBF2}, /* A970 */
- {0xA971,0xA971,0xCBF3},
- {0xA972,0xA972,0xCBF4},
- {0xA973,0xA973,0xCBF5},
- {0xA974,0xA974,0xCBF6},
- {0xA975,0xA975,0xCBF7},
- {0xA976,0xA976,0xCBF8},
- {0xA977,0xA977,0xCBF9},
- {0xA978,0xA978,0xCBFA},
- {0xA979,0xA979,0xCBFB},
- {0xA97A,0xA97A,0xCBFC},
- {0xA97B,0xA97B,0x003F},
- {0xA97C,0xA97C,0x003F},
- {0xA97D,0xA97D,0x003F},
- {0xA97E,0xA97E,0x003F},
- {0xA97F,0xA97F,0x003F},
- {0xA980,0xA980,0x003F}, /* A980 */
- {0xA981,0xA981,0xCBFD},
- {0xA982,0xA982,0xCBFE},
- {0xA983,0xA983,0xCBFF},
- {0xA984,0xA984,0xCC00},
- {0xA985,0xA985,0xCC01},
- {0xA986,0xA986,0xCC02},
- {0xA987,0xA987,0xCC03},
- {0xA988,0xA988,0xCC04},
- {0xA989,0xA989,0xCC05},
- {0xA98A,0xA98A,0xCC06},
- {0xA98B,0xA98B,0xCC07},
- {0xA98C,0xA98C,0xCC08},
- {0xA98D,0xA98D,0xCC09},
- {0xA98E,0xA98E,0xCC0A},
- {0xA98F,0xA98F,0xCC0B},
- {0xA990,0xA990,0xCC0E}, /* A990 */
- {0xA991,0xA991,0xCC0F},
- {0xA992,0xA992,0xCC11},
- {0xA993,0xA993,0xCC12},
- {0xA994,0xA994,0xCC13},
- {0xA995,0xA995,0xCC15},
- {0xA996,0xA996,0xCC16},
- {0xA997,0xA997,0xCC17},
- {0xA998,0xA998,0xCC18},
- {0xA999,0xA999,0xCC19},
- {0xA99A,0xA99A,0xCC1A},
- {0xA99B,0xA99B,0xCC1B},
- {0xA99C,0xA99C,0xCC1E},
- {0xA99D,0xA99D,0xCC1F},
- {0xA99E,0xA99E,0xCC20},
- {0xA99F,0xA99F,0xCC23},
- {0xA9A0,0xA9A0,0xCC24}, /* A9A0 */
- {0xA8A1,0xA9A1,0x00E6},
- {0xA9A2,0xA9A2,0x0111},
- {0xA8A2,0xA9A3,0x00F0},
- {0xA8A4,0xA9A4,0x0127},
- { 0x49,0xA9A5,0x0131}, /* Turkish i */
- {0xA8A6,0xA9A6,0x0133},
- {0xA9A7,0xA9A7,0x0138},
- {0xA8A8,0xA9A8,0x0140},
- {0xA8A9,0xA9A9,0x0142},
- {0xA8AA,0xA9AA,0x00F8},
- {0xA8AB,0xA9AB,0x0153},
- {0xA9AC,0xA9AC,0x00DF},
- {0xA8AD,0xA9AD,0x00FE},
- {0xA8AE,0xA9AE,0x0167},
- {0xA8AF,0xA9AF,0x014B},
- {0xA9B0,0xA9B0,0x0149}, /* A9B0 */
- {0xA9B1,0xA9B1,0x3200},
- {0xA9B2,0xA9B2,0x3201},
- {0xA9B3,0xA9B3,0x3202},
- {0xA9B4,0xA9B4,0x3203},
- {0xA9B5,0xA9B5,0x3204},
- {0xA9B6,0xA9B6,0x3205},
- {0xA9B7,0xA9B7,0x3206},
- {0xA9B8,0xA9B8,0x3207},
- {0xA9B9,0xA9B9,0x3208},
- {0xA9BA,0xA9BA,0x3209},
- {0xA9BB,0xA9BB,0x320A},
- {0xA9BC,0xA9BC,0x320B},
- {0xA9BD,0xA9BD,0x320C},
- {0xA9BE,0xA9BE,0x320D},
- {0xA9BF,0xA9BF,0x320E},
- {0xA9C0,0xA9C0,0x320F}, /* A9C0 */
- {0xA9C1,0xA9C1,0x3210},
- {0xA9C2,0xA9C2,0x3211},
- {0xA9C3,0xA9C3,0x3212},
- {0xA9C4,0xA9C4,0x3213},
- {0xA9C5,0xA9C5,0x3214},
- {0xA9C6,0xA9C6,0x3215},
- {0xA9C7,0xA9C7,0x3216},
- {0xA9C8,0xA9C8,0x3217},
- {0xA9C9,0xA9C9,0x3218},
- {0xA9CA,0xA9CA,0x3219},
- {0xA9CB,0xA9CB,0x321A},
- {0xA9CC,0xA9CC,0x321B},
- {0xA9CD,0xA9CD,0x249C},
- {0xA9CE,0xA9CE,0x249D},
- {0xA9CF,0xA9CF,0x249E},
- {0xA9D0,0xA9D0,0x249F}, /* A9D0 */
- {0xA9D1,0xA9D1,0x24A0},
- {0xA9D2,0xA9D2,0x24A1},
- {0xA9D3,0xA9D3,0x24A2},
- {0xA9D4,0xA9D4,0x24A3},
- {0xA9D5,0xA9D5,0x24A4},
- {0xA9D6,0xA9D6,0x24A5},
- {0xA9D7,0xA9D7,0x24A6},
- {0xA9D8,0xA9D8,0x24A7},
- {0xA9D9,0xA9D9,0x24A8},
- {0xA9DA,0xA9DA,0x24A9},
- {0xA9DB,0xA9DB,0x24AA},
- {0xA9DC,0xA9DC,0x24AB},
- {0xA9DD,0xA9DD,0x24AC},
- {0xA9DE,0xA9DE,0x24AD},
- {0xA9DF,0xA9DF,0x24AE},
- {0xA9E0,0xA9E0,0x24AF}, /* A9E0 */
- {0xA9E1,0xA9E1,0x24B0},
- {0xA9E2,0xA9E2,0x24B1},
- {0xA9E3,0xA9E3,0x24B2},
- {0xA9E4,0xA9E4,0x24B3},
- {0xA9E5,0xA9E5,0x24B4},
- {0xA9E6,0xA9E6,0x24B5},
- {0xA9E7,0xA9E7,0x2474},
- {0xA9E8,0xA9E8,0x2475},
- {0xA9E9,0xA9E9,0x2476},
- {0xA9EA,0xA9EA,0x2477},
- {0xA9EB,0xA9EB,0x2478},
- {0xA9EC,0xA9EC,0x2479},
- {0xA9ED,0xA9ED,0x247A},
- {0xA9EE,0xA9EE,0x247B},
- {0xA9EF,0xA9EF,0x247C},
- {0xA9F0,0xA9F0,0x247D}, /* A9F0 */
- {0xA9F1,0xA9F1,0x247E},
- {0xA9F2,0xA9F2,0x247F},
- {0xA9F3,0xA9F3,0x2480},
- {0xA9F4,0xA9F4,0x2481},
- {0xA9F5,0xA9F5,0x2482},
- {0xA9F6,0xA9F6,0x00B9},
- {0xA9F7,0xA9F7,0x00B2},
- {0xA9F8,0xA9F8,0x00B3},
- {0xA9F9,0xA9F9,0x2074},
- {0xA9FA,0xA9FA,0x207F},
- {0xA9FB,0xA9FB,0x2081},
- {0xA9FC,0xA9FC,0x2082},
- {0xA9FD,0xA9FD,0x2083},
- {0xA9FE,0xA9FE,0x2084},
- {0xA9FF,0xA9FF,0x003F}
-};
-
-
-static MY_UNICASE_INFO cAC[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xAC40,0xAC40,0x003F}, /* AC40 */
- {0xAC41,0xAC41,0xCCFE},
- {0xAC42,0xAC42,0xCCFF},
- {0xAC43,0xAC43,0xCD00},
- {0xAC44,0xAC44,0xCD02},
- {0xAC45,0xAC45,0xCD03},
- {0xAC46,0xAC46,0xCD04},
- {0xAC47,0xAC47,0xCD05},
- {0xAC48,0xAC48,0xCD06},
- {0xAC49,0xAC49,0xCD07},
- {0xAC4A,0xAC4A,0xCD0A},
- {0xAC4B,0xAC4B,0xCD0B},
- {0xAC4C,0xAC4C,0xCD0D},
- {0xAC4D,0xAC4D,0xCD0E},
- {0xAC4E,0xAC4E,0xCD0F},
- {0xAC4F,0xAC4F,0xCD11},
- {0xAC50,0xAC50,0xCD12}, /* AC50 */
- {0xAC51,0xAC51,0xCD13},
- {0xAC52,0xAC52,0xCD14},
- {0xAC53,0xAC53,0xCD15},
- {0xAC54,0xAC54,0xCD16},
- {0xAC55,0xAC55,0xCD17},
- {0xAC56,0xAC56,0xCD1A},
- {0xAC57,0xAC57,0xCD1C},
- {0xAC58,0xAC58,0xCD1E},
- {0xAC59,0xAC59,0xCD1F},
- {0xAC5A,0xAC5A,0xCD20},
- {0xAC5B,0xAC5B,0x003F},
- {0xAC5C,0xAC5C,0x003F},
- {0xAC5D,0xAC5D,0x003F},
- {0xAC5E,0xAC5E,0x003F},
- {0xAC5F,0xAC5F,0x003F},
- {0xAC60,0xAC60,0x003F}, /* AC60 */
- {0xAC61,0xAC61,0xCD21},
- {0xAC62,0xAC62,0xCD22},
- {0xAC63,0xAC63,0xCD23},
- {0xAC64,0xAC64,0xCD25},
- {0xAC65,0xAC65,0xCD26},
- {0xAC66,0xAC66,0xCD27},
- {0xAC67,0xAC67,0xCD29},
- {0xAC68,0xAC68,0xCD2A},
- {0xAC69,0xAC69,0xCD2B},
- {0xAC6A,0xAC6A,0xCD2D},
- {0xAC6B,0xAC6B,0xCD2E},
- {0xAC6C,0xAC6C,0xCD2F},
- {0xAC6D,0xAC6D,0xCD30},
- {0xAC6E,0xAC6E,0xCD31},
- {0xAC6F,0xAC6F,0xCD32},
- {0xAC70,0xAC70,0xCD33}, /* AC70 */
- {0xAC71,0xAC71,0xCD34},
- {0xAC72,0xAC72,0xCD35},
- {0xAC73,0xAC73,0xCD36},
- {0xAC74,0xAC74,0xCD37},
- {0xAC75,0xAC75,0xCD38},
- {0xAC76,0xAC76,0xCD3A},
- {0xAC77,0xAC77,0xCD3B},
- {0xAC78,0xAC78,0xCD3C},
- {0xAC79,0xAC79,0xCD3D},
- {0xAC7A,0xAC7A,0xCD3E},
- {0xAC7B,0xAC7B,0x003F},
- {0xAC7C,0xAC7C,0x003F},
- {0xAC7D,0xAC7D,0x003F},
- {0xAC7E,0xAC7E,0x003F},
- {0xAC7F,0xAC7F,0x003F},
- {0xAC80,0xAC80,0x003F}, /* AC80 */
- {0xAC81,0xAC81,0xCD3F},
- {0xAC82,0xAC82,0xCD40},
- {0xAC83,0xAC83,0xCD41},
- {0xAC84,0xAC84,0xCD42},
- {0xAC85,0xAC85,0xCD43},
- {0xAC86,0xAC86,0xCD44},
- {0xAC87,0xAC87,0xCD45},
- {0xAC88,0xAC88,0xCD46},
- {0xAC89,0xAC89,0xCD47},
- {0xAC8A,0xAC8A,0xCD48},
- {0xAC8B,0xAC8B,0xCD49},
- {0xAC8C,0xAC8C,0xCD4A},
- {0xAC8D,0xAC8D,0xCD4B},
- {0xAC8E,0xAC8E,0xCD4C},
- {0xAC8F,0xAC8F,0xCD4D},
- {0xAC90,0xAC90,0xCD4E}, /* AC90 */
- {0xAC91,0xAC91,0xCD4F},
- {0xAC92,0xAC92,0xCD50},
- {0xAC93,0xAC93,0xCD51},
- {0xAC94,0xAC94,0xCD52},
- {0xAC95,0xAC95,0xCD53},
- {0xAC96,0xAC96,0xCD54},
- {0xAC97,0xAC97,0xCD55},
- {0xAC98,0xAC98,0xCD56},
- {0xAC99,0xAC99,0xCD57},
- {0xAC9A,0xAC9A,0xCD58},
- {0xAC9B,0xAC9B,0xCD59},
- {0xAC9C,0xAC9C,0xCD5A},
- {0xAC9D,0xAC9D,0xCD5B},
- {0xAC9E,0xAC9E,0xCD5D},
- {0xAC9F,0xAC9F,0xCD5E},
- {0xACA0,0xACA0,0xCD5F}, /* ACA0 */
- {0xACA1,0xACD1,0x0410},
- {0xACA2,0xACD2,0x0411},
- {0xACA3,0xACD3,0x0412},
- {0xACA4,0xACD4,0x0413},
- {0xACA5,0xACD5,0x0414},
- {0xACA6,0xACD6,0x0415},
- {0xACA7,0xACD7,0x0401},
- {0xACA8,0xACD8,0x0416},
- {0xACA9,0xACD9,0x0417},
- {0xACAA,0xACDA,0x0418},
- {0xACAB,0xACDB,0x0419},
- {0xACAC,0xACDC,0x041A},
- {0xACAD,0xACDD,0x041B},
- {0xACAE,0xACDE,0x041C},
- {0xACAF,0xACDF,0x041D},
- {0xACB0,0xACE0,0x041E}, /* ACB0 */
- {0xACB1,0xACE1,0x041F},
- {0xACB2,0xACE2,0x0420},
- {0xACB3,0xACE3,0x0421},
- {0xACB4,0xACE4,0x0422},
- {0xACB5,0xACE5,0x0423},
- {0xACB6,0xACE6,0x0424},
- {0xACB7,0xACE7,0x0425},
- {0xACB8,0xACE8,0x0426},
- {0xACB9,0xACE9,0x0427},
- {0xACBA,0xACEA,0x0428},
- {0xACBB,0xACEB,0x0429},
- {0xACBC,0xACEC,0x042A},
- {0xACBD,0xACED,0x042B},
- {0xACBE,0xACEE,0x042C},
- {0xACBF,0xACEF,0x042D},
- {0xACC0,0xACF0,0x042E}, /* ACC0 */
- {0xACC1,0xACF1,0x042F},
- {0xACC2,0xACC2,0x003F},
- {0xACC3,0xACC3,0x003F},
- {0xACC4,0xACC4,0x003F},
- {0xACC5,0xACC5,0x003F},
- {0xACC6,0xACC6,0x003F},
- {0xACC7,0xACC7,0x003F},
- {0xACC8,0xACC8,0x003F},
- {0xACC9,0xACC9,0x003F},
- {0xACCA,0xACCA,0x003F},
- {0xACCB,0xACCB,0x003F},
- {0xACCC,0xACCC,0x003F},
- {0xACCD,0xACCD,0x003F},
- {0xACCE,0xACCE,0x003F},
- {0xACCF,0xACCF,0x003F},
- {0xACD0,0xACD0,0x003F}, /* ACD0 */
- {0xACA1,0xACD1,0x0430},
- {0xACA2,0xACD2,0x0431},
- {0xACA3,0xACD3,0x0432},
- {0xACA4,0xACD4,0x0433},
- {0xACA5,0xACD5,0x0434},
- {0xACA6,0xACD6,0x0435},
- {0xACA7,0xACD7,0x0451},
- {0xACA8,0xACD8,0x0436},
- {0xACA9,0xACD9,0x0437},
- {0xACAA,0xACDA,0x0438},
- {0xACAB,0xACDB,0x0439},
- {0xACAC,0xACDC,0x043A},
- {0xACAD,0xACDD,0x043B},
- {0xACAE,0xACDE,0x043C},
- {0xACAF,0xACDF,0x043D},
- {0xACB0,0xACE0,0x043E}, /* ACE0 */
- {0xACB1,0xACE1,0x043F},
- {0xACB2,0xACE2,0x0440},
- {0xACB3,0xACE3,0x0441},
- {0xACB4,0xACE4,0x0442},
- {0xACB5,0xACE5,0x0443},
- {0xACB6,0xACE6,0x0444},
- {0xACB7,0xACE7,0x0445},
- {0xACB8,0xACE8,0x0446},
- {0xACB9,0xACE9,0x0447},
- {0xACBA,0xACEA,0x0448},
- {0xACBB,0xACEB,0x0449},
- {0xACBC,0xACEC,0x044A},
- {0xACBD,0xACED,0x044B},
- {0xACBE,0xACEE,0x044C},
- {0xACBF,0xACEF,0x044D},
- {0xACC0,0xACF0,0x044E}, /* ACF0 */
- {0xACC1,0xACF1,0x044F},
- {0xACF2,0xACF2,0x003F},
- {0xACF3,0xACF3,0x003F},
- {0xACF4,0xACF4,0x003F},
- {0xACF5,0xACF5,0x003F},
- {0xACF6,0xACF6,0x003F},
- {0xACF7,0xACF7,0x003F},
- {0xACF8,0xACF8,0x003F},
- {0xACF9,0xACF9,0x003F},
- {0xACFA,0xACFA,0x003F},
- {0xACFB,0xACFB,0x003F},
- {0xACFC,0xACFC,0x003F},
- {0xACFD,0xACFD,0x003F},
- {0xACFE,0xACFE,0x003F},
- {0xACFF,0xACFF,0x003F}
-};
-
-
-static MY_UNICASE_INFO *my_caseinfo_euckr[256]=
-{
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, cA3, NULL, cA5, NULL, cA7, /* A */
- cA8, cA9, NULL, NULL, cAC, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-
-/* page 0 0x8141-0xC8FE */
-static uint16 tab_ksc5601_uni0[]={
-0xAC02,0xAC03,0xAC05,0xAC06,0xAC0B,0xAC0C,0xAC0D,0xAC0E,
-0xAC0F,0xAC18,0xAC1E,0xAC1F,0xAC21,0xAC22,0xAC23,0xAC25,
-0xAC26,0xAC27,0xAC28,0xAC29,0xAC2A,0xAC2B,0xAC2E,0xAC32,
-0xAC33,0xAC34, 0, 0, 0, 0, 0, 0,
-0xAC35,0xAC36,0xAC37,0xAC3A,0xAC3B,0xAC3D,0xAC3E,0xAC3F,
-0xAC41,0xAC42,0xAC43,0xAC44,0xAC45,0xAC46,0xAC47,0xAC48,
-0xAC49,0xAC4A,0xAC4C,0xAC4E,0xAC4F,0xAC50,0xAC51,0xAC52,
-0xAC53,0xAC55, 0, 0, 0, 0, 0, 0,
-0xAC56,0xAC57,0xAC59,0xAC5A,0xAC5B,0xAC5D,0xAC5E,0xAC5F,
-0xAC60,0xAC61,0xAC62,0xAC63,0xAC64,0xAC65,0xAC66,0xAC67,
-0xAC68,0xAC69,0xAC6A,0xAC6B,0xAC6C,0xAC6D,0xAC6E,0xAC6F,
-0xAC72,0xAC73,0xAC75,0xAC76,0xAC79,0xAC7B,0xAC7C,0xAC7D,
-0xAC7E,0xAC7F,0xAC82,0xAC87,0xAC88,0xAC8D,0xAC8E,0xAC8F,
-0xAC91,0xAC92,0xAC93,0xAC95,0xAC96,0xAC97,0xAC98,0xAC99,
-0xAC9A,0xAC9B,0xAC9E,0xACA2,0xACA3,0xACA4,0xACA5,0xACA6,
-0xACA7,0xACAB,0xACAD,0xACAE,0xACB1,0xACB2,0xACB3,0xACB4,
-0xACB5,0xACB6,0xACB7,0xACBA,0xACBE,0xACBF,0xACC0,0xACC2,
-0xACC3,0xACC5,0xACC6,0xACC7,0xACC9,0xACCA,0xACCB,0xACCD,
-0xACCE,0xACCF,0xACD0,0xACD1,0xACD2,0xACD3,0xACD4,0xACD6,
-0xACD8,0xACD9,0xACDA,0xACDB,0xACDC,0xACDD,0xACDE,0xACDF,
-0xACE2,0xACE3,0xACE5,0xACE6,0xACE9,0xACEB,0xACED,0xACEE,
-0xACF2,0xACF4,0xACF7,0xACF8,0xACF9,0xACFA,0xACFB,0xACFE,
-0xACFF,0xAD01,0xAD02,0xAD03,0xAD05,0xAD07,0xAD08,0xAD09,
-0xAD0A,0xAD0B,0xAD0E,0xAD10,0xAD12,0xAD13, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xAD14,0xAD15,0xAD16,0xAD17,0xAD19,0xAD1A,0xAD1B,0xAD1D,
-0xAD1E,0xAD1F,0xAD21,0xAD22,0xAD23,0xAD24,0xAD25,0xAD26,
-0xAD27,0xAD28,0xAD2A,0xAD2B,0xAD2E,0xAD2F,0xAD30,0xAD31,
-0xAD32,0xAD33, 0, 0, 0, 0, 0, 0,
-0xAD36,0xAD37,0xAD39,0xAD3A,0xAD3B,0xAD3D,0xAD3E,0xAD3F,
-0xAD40,0xAD41,0xAD42,0xAD43,0xAD46,0xAD48,0xAD4A,0xAD4B,
-0xAD4C,0xAD4D,0xAD4E,0xAD4F,0xAD51,0xAD52,0xAD53,0xAD55,
-0xAD56,0xAD57, 0, 0, 0, 0, 0, 0,
-0xAD59,0xAD5A,0xAD5B,0xAD5C,0xAD5D,0xAD5E,0xAD5F,0xAD60,
-0xAD62,0xAD64,0xAD65,0xAD66,0xAD67,0xAD68,0xAD69,0xAD6A,
-0xAD6B,0xAD6E,0xAD6F,0xAD71,0xAD72,0xAD77,0xAD78,0xAD79,
-0xAD7A,0xAD7E,0xAD80,0xAD83,0xAD84,0xAD85,0xAD86,0xAD87,
-0xAD8A,0xAD8B,0xAD8D,0xAD8E,0xAD8F,0xAD91,0xAD92,0xAD93,
-0xAD94,0xAD95,0xAD96,0xAD97,0xAD98,0xAD99,0xAD9A,0xAD9B,
-0xAD9E,0xAD9F,0xADA0,0xADA1,0xADA2,0xADA3,0xADA5,0xADA6,
-0xADA7,0xADA8,0xADA9,0xADAA,0xADAB,0xADAC,0xADAD,0xADAE,
-0xADAF,0xADB0,0xADB1,0xADB2,0xADB3,0xADB4,0xADB5,0xADB6,
-0xADB8,0xADB9,0xADBA,0xADBB,0xADBC,0xADBD,0xADBE,0xADBF,
-0xADC2,0xADC3,0xADC5,0xADC6,0xADC7,0xADC9,0xADCA,0xADCB,
-0xADCC,0xADCD,0xADCE,0xADCF,0xADD2,0xADD4,0xADD5,0xADD6,
-0xADD7,0xADD8,0xADD9,0xADDA,0xADDB,0xADDD,0xADDE,0xADDF,
-0xADE1,0xADE2,0xADE3,0xADE5,0xADE6,0xADE7,0xADE8,0xADE9,
-0xADEA,0xADEB,0xADEC,0xADED,0xADEE,0xADEF,0xADF0,0xADF1,
-0xADF2,0xADF3,0xADF4,0xADF5,0xADF6,0xADF7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xADFA,0xADFB,0xADFD,0xADFE,0xAE02,0xAE03,0xAE04,0xAE05,
-0xAE06,0xAE07,0xAE0A,0xAE0C,0xAE0E,0xAE0F,0xAE10,0xAE11,
-0xAE12,0xAE13,0xAE15,0xAE16,0xAE17,0xAE18,0xAE19,0xAE1A,
-0xAE1B,0xAE1C, 0, 0, 0, 0, 0, 0,
-0xAE1D,0xAE1E,0xAE1F,0xAE20,0xAE21,0xAE22,0xAE23,0xAE24,
-0xAE25,0xAE26,0xAE27,0xAE28,0xAE29,0xAE2A,0xAE2B,0xAE2C,
-0xAE2D,0xAE2E,0xAE2F,0xAE32,0xAE33,0xAE35,0xAE36,0xAE39,
-0xAE3B,0xAE3C, 0, 0, 0, 0, 0, 0,
-0xAE3D,0xAE3E,0xAE3F,0xAE42,0xAE44,0xAE47,0xAE48,0xAE49,
-0xAE4B,0xAE4F,0xAE51,0xAE52,0xAE53,0xAE55,0xAE57,0xAE58,
-0xAE59,0xAE5A,0xAE5B,0xAE5E,0xAE62,0xAE63,0xAE64,0xAE66,
-0xAE67,0xAE6A,0xAE6B,0xAE6D,0xAE6E,0xAE6F,0xAE71,0xAE72,
-0xAE73,0xAE74,0xAE75,0xAE76,0xAE77,0xAE7A,0xAE7E,0xAE7F,
-0xAE80,0xAE81,0xAE82,0xAE83,0xAE86,0xAE87,0xAE88,0xAE89,
-0xAE8A,0xAE8B,0xAE8D,0xAE8E,0xAE8F,0xAE90,0xAE91,0xAE92,
-0xAE93,0xAE94,0xAE95,0xAE96,0xAE97,0xAE98,0xAE99,0xAE9A,
-0xAE9B,0xAE9C,0xAE9D,0xAE9E,0xAE9F,0xAEA0,0xAEA1,0xAEA2,
-0xAEA3,0xAEA4,0xAEA5,0xAEA6,0xAEA7,0xAEA8,0xAEA9,0xAEAA,
-0xAEAB,0xAEAC,0xAEAD,0xAEAE,0xAEAF,0xAEB0,0xAEB1,0xAEB2,
-0xAEB3,0xAEB4,0xAEB5,0xAEB6,0xAEB7,0xAEB8,0xAEB9,0xAEBA,
-0xAEBB,0xAEBF,0xAEC1,0xAEC2,0xAEC3,0xAEC5,0xAEC6,0xAEC7,
-0xAEC8,0xAEC9,0xAECA,0xAECB,0xAECE,0xAED2,0xAED3,0xAED4,
-0xAED5,0xAED6,0xAED7,0xAEDA,0xAEDB,0xAEDD,0xAEDE,0xAEDF,
-0xAEE0,0xAEE1,0xAEE2,0xAEE3,0xAEE4,0xAEE5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xAEE6,0xAEE7,0xAEE9,0xAEEA,0xAEEC,0xAEEE,0xAEEF,0xAEF0,
-0xAEF1,0xAEF2,0xAEF3,0xAEF5,0xAEF6,0xAEF7,0xAEF9,0xAEFA,
-0xAEFB,0xAEFD,0xAEFE,0xAEFF,0xAF00,0xAF01,0xAF02,0xAF03,
-0xAF04,0xAF05, 0, 0, 0, 0, 0, 0,
-0xAF06,0xAF09,0xAF0A,0xAF0B,0xAF0C,0xAF0E,0xAF0F,0xAF11,
-0xAF12,0xAF13,0xAF14,0xAF15,0xAF16,0xAF17,0xAF18,0xAF19,
-0xAF1A,0xAF1B,0xAF1C,0xAF1D,0xAF1E,0xAF1F,0xAF20,0xAF21,
-0xAF22,0xAF23, 0, 0, 0, 0, 0, 0,
-0xAF24,0xAF25,0xAF26,0xAF27,0xAF28,0xAF29,0xAF2A,0xAF2B,
-0xAF2E,0xAF2F,0xAF31,0xAF33,0xAF35,0xAF36,0xAF37,0xAF38,
-0xAF39,0xAF3A,0xAF3B,0xAF3E,0xAF40,0xAF44,0xAF45,0xAF46,
-0xAF47,0xAF4A,0xAF4B,0xAF4C,0xAF4D,0xAF4E,0xAF4F,0xAF51,
-0xAF52,0xAF53,0xAF54,0xAF55,0xAF56,0xAF57,0xAF58,0xAF59,
-0xAF5A,0xAF5B,0xAF5E,0xAF5F,0xAF60,0xAF61,0xAF62,0xAF63,
-0xAF66,0xAF67,0xAF68,0xAF69,0xAF6A,0xAF6B,0xAF6C,0xAF6D,
-0xAF6E,0xAF6F,0xAF70,0xAF71,0xAF72,0xAF73,0xAF74,0xAF75,
-0xAF76,0xAF77,0xAF78,0xAF7A,0xAF7B,0xAF7C,0xAF7D,0xAF7E,
-0xAF7F,0xAF81,0xAF82,0xAF83,0xAF85,0xAF86,0xAF87,0xAF89,
-0xAF8A,0xAF8B,0xAF8C,0xAF8D,0xAF8E,0xAF8F,0xAF92,0xAF93,
-0xAF94,0xAF96,0xAF97,0xAF98,0xAF99,0xAF9A,0xAF9B,0xAF9D,
-0xAF9E,0xAF9F,0xAFA0,0xAFA1,0xAFA2,0xAFA3,0xAFA4,0xAFA5,
-0xAFA6,0xAFA7,0xAFA8,0xAFA9,0xAFAA,0xAFAB,0xAFAC,0xAFAD,
-0xAFAE,0xAFAF,0xAFB0,0xAFB1,0xAFB2,0xAFB3,0xAFB4,0xAFB5,
-0xAFB6,0xAFB7,0xAFBA,0xAFBB,0xAFBD,0xAFBE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xAFBF,0xAFC1,0xAFC2,0xAFC3,0xAFC4,0xAFC5,0xAFC6,0xAFCA,
-0xAFCC,0xAFCF,0xAFD0,0xAFD1,0xAFD2,0xAFD3,0xAFD5,0xAFD6,
-0xAFD7,0xAFD8,0xAFD9,0xAFDA,0xAFDB,0xAFDD,0xAFDE,0xAFDF,
-0xAFE0,0xAFE1, 0, 0, 0, 0, 0, 0,
-0xAFE2,0xAFE3,0xAFE4,0xAFE5,0xAFE6,0xAFE7,0xAFEA,0xAFEB,
-0xAFEC,0xAFED,0xAFEE,0xAFEF,0xAFF2,0xAFF3,0xAFF5,0xAFF6,
-0xAFF7,0xAFF9,0xAFFA,0xAFFB,0xAFFC,0xAFFD,0xAFFE,0xAFFF,
-0xB002,0xB003, 0, 0, 0, 0, 0, 0,
-0xB005,0xB006,0xB007,0xB008,0xB009,0xB00A,0xB00B,0xB00D,
-0xB00E,0xB00F,0xB011,0xB012,0xB013,0xB015,0xB016,0xB017,
-0xB018,0xB019,0xB01A,0xB01B,0xB01E,0xB01F,0xB020,0xB021,
-0xB022,0xB023,0xB024,0xB025,0xB026,0xB027,0xB029,0xB02A,
-0xB02B,0xB02C,0xB02D,0xB02E,0xB02F,0xB030,0xB031,0xB032,
-0xB033,0xB034,0xB035,0xB036,0xB037,0xB038,0xB039,0xB03A,
-0xB03B,0xB03C,0xB03D,0xB03E,0xB03F,0xB040,0xB041,0xB042,
-0xB043,0xB046,0xB047,0xB049,0xB04B,0xB04D,0xB04F,0xB050,
-0xB051,0xB052,0xB056,0xB058,0xB05A,0xB05B,0xB05C,0xB05E,
-0xB05F,0xB060,0xB061,0xB062,0xB063,0xB064,0xB065,0xB066,
-0xB067,0xB068,0xB069,0xB06A,0xB06B,0xB06C,0xB06D,0xB06E,
-0xB06F,0xB070,0xB071,0xB072,0xB073,0xB074,0xB075,0xB076,
-0xB077,0xB078,0xB079,0xB07A,0xB07B,0xB07E,0xB07F,0xB081,
-0xB082,0xB083,0xB085,0xB086,0xB087,0xB088,0xB089,0xB08A,
-0xB08B,0xB08E,0xB090,0xB092,0xB093,0xB094,0xB095,0xB096,
-0xB097,0xB09B,0xB09D,0xB09E,0xB0A3,0xB0A4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB0A5,0xB0A6,0xB0A7,0xB0AA,0xB0B0,0xB0B2,0xB0B6,0xB0B7,
-0xB0B9,0xB0BA,0xB0BB,0xB0BD,0xB0BE,0xB0BF,0xB0C0,0xB0C1,
-0xB0C2,0xB0C3,0xB0C6,0xB0CA,0xB0CB,0xB0CC,0xB0CD,0xB0CE,
-0xB0CF,0xB0D2, 0, 0, 0, 0, 0, 0,
-0xB0D3,0xB0D5,0xB0D6,0xB0D7,0xB0D9,0xB0DA,0xB0DB,0xB0DC,
-0xB0DD,0xB0DE,0xB0DF,0xB0E1,0xB0E2,0xB0E3,0xB0E4,0xB0E6,
-0xB0E7,0xB0E8,0xB0E9,0xB0EA,0xB0EB,0xB0EC,0xB0ED,0xB0EE,
-0xB0EF,0xB0F0, 0, 0, 0, 0, 0, 0,
-0xB0F1,0xB0F2,0xB0F3,0xB0F4,0xB0F5,0xB0F6,0xB0F7,0xB0F8,
-0xB0F9,0xB0FA,0xB0FB,0xB0FC,0xB0FD,0xB0FE,0xB0FF,0xB100,
-0xB101,0xB102,0xB103,0xB104,0xB105,0xB106,0xB107,0xB10A,
-0xB10D,0xB10E,0xB10F,0xB111,0xB114,0xB115,0xB116,0xB117,
-0xB11A,0xB11E,0xB11F,0xB120,0xB121,0xB122,0xB126,0xB127,
-0xB129,0xB12A,0xB12B,0xB12D,0xB12E,0xB12F,0xB130,0xB131,
-0xB132,0xB133,0xB136,0xB13A,0xB13B,0xB13C,0xB13D,0xB13E,
-0xB13F,0xB142,0xB143,0xB145,0xB146,0xB147,0xB149,0xB14A,
-0xB14B,0xB14C,0xB14D,0xB14E,0xB14F,0xB152,0xB153,0xB156,
-0xB157,0xB159,0xB15A,0xB15B,0xB15D,0xB15E,0xB15F,0xB161,
-0xB162,0xB163,0xB164,0xB165,0xB166,0xB167,0xB168,0xB169,
-0xB16A,0xB16B,0xB16C,0xB16D,0xB16E,0xB16F,0xB170,0xB171,
-0xB172,0xB173,0xB174,0xB175,0xB176,0xB177,0xB17A,0xB17B,
-0xB17D,0xB17E,0xB17F,0xB181,0xB183,0xB184,0xB185,0xB186,
-0xB187,0xB18A,0xB18C,0xB18E,0xB18F,0xB190,0xB191,0xB195,
-0xB196,0xB197,0xB199,0xB19A,0xB19B,0xB19D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB19E,0xB19F,0xB1A0,0xB1A1,0xB1A2,0xB1A3,0xB1A4,0xB1A5,
-0xB1A6,0xB1A7,0xB1A9,0xB1AA,0xB1AB,0xB1AC,0xB1AD,0xB1AE,
-0xB1AF,0xB1B0,0xB1B1,0xB1B2,0xB1B3,0xB1B4,0xB1B5,0xB1B6,
-0xB1B7,0xB1B8, 0, 0, 0, 0, 0, 0,
-0xB1B9,0xB1BA,0xB1BB,0xB1BC,0xB1BD,0xB1BE,0xB1BF,0xB1C0,
-0xB1C1,0xB1C2,0xB1C3,0xB1C4,0xB1C5,0xB1C6,0xB1C7,0xB1C8,
-0xB1C9,0xB1CA,0xB1CB,0xB1CD,0xB1CE,0xB1CF,0xB1D1,0xB1D2,
-0xB1D3,0xB1D5, 0, 0, 0, 0, 0, 0,
-0xB1D6,0xB1D7,0xB1D8,0xB1D9,0xB1DA,0xB1DB,0xB1DE,0xB1E0,
-0xB1E1,0xB1E2,0xB1E3,0xB1E4,0xB1E5,0xB1E6,0xB1E7,0xB1EA,
-0xB1EB,0xB1ED,0xB1EE,0xB1EF,0xB1F1,0xB1F2,0xB1F3,0xB1F4,
-0xB1F5,0xB1F6,0xB1F7,0xB1F8,0xB1FA,0xB1FC,0xB1FE,0xB1FF,
-0xB200,0xB201,0xB202,0xB203,0xB206,0xB207,0xB209,0xB20A,
-0xB20D,0xB20E,0xB20F,0xB210,0xB211,0xB212,0xB213,0xB216,
-0xB218,0xB21A,0xB21B,0xB21C,0xB21D,0xB21E,0xB21F,0xB221,
-0xB222,0xB223,0xB224,0xB225,0xB226,0xB227,0xB228,0xB229,
-0xB22A,0xB22B,0xB22C,0xB22D,0xB22E,0xB22F,0xB230,0xB231,
-0xB232,0xB233,0xB235,0xB236,0xB237,0xB238,0xB239,0xB23A,
-0xB23B,0xB23D,0xB23E,0xB23F,0xB240,0xB241,0xB242,0xB243,
-0xB244,0xB245,0xB246,0xB247,0xB248,0xB249,0xB24A,0xB24B,
-0xB24C,0xB24D,0xB24E,0xB24F,0xB250,0xB251,0xB252,0xB253,
-0xB254,0xB255,0xB256,0xB257,0xB259,0xB25A,0xB25B,0xB25D,
-0xB25E,0xB25F,0xB261,0xB262,0xB263,0xB264,0xB265,0xB266,
-0xB267,0xB26A,0xB26B,0xB26C,0xB26D,0xB26E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB26F,0xB270,0xB271,0xB272,0xB273,0xB276,0xB277,0xB278,
-0xB279,0xB27A,0xB27B,0xB27D,0xB27E,0xB27F,0xB280,0xB281,
-0xB282,0xB283,0xB286,0xB287,0xB288,0xB28A,0xB28B,0xB28C,
-0xB28D,0xB28E, 0, 0, 0, 0, 0, 0,
-0xB28F,0xB292,0xB293,0xB295,0xB296,0xB297,0xB29B,0xB29C,
-0xB29D,0xB29E,0xB29F,0xB2A2,0xB2A4,0xB2A7,0xB2A8,0xB2A9,
-0xB2AB,0xB2AD,0xB2AE,0xB2AF,0xB2B1,0xB2B2,0xB2B3,0xB2B5,
-0xB2B6,0xB2B7, 0, 0, 0, 0, 0, 0,
-0xB2B8,0xB2B9,0xB2BA,0xB2BB,0xB2BC,0xB2BD,0xB2BE,0xB2BF,
-0xB2C0,0xB2C1,0xB2C2,0xB2C3,0xB2C4,0xB2C5,0xB2C6,0xB2C7,
-0xB2CA,0xB2CB,0xB2CD,0xB2CE,0xB2CF,0xB2D1,0xB2D3,0xB2D4,
-0xB2D5,0xB2D6,0xB2D7,0xB2DA,0xB2DC,0xB2DE,0xB2DF,0xB2E0,
-0xB2E1,0xB2E3,0xB2E7,0xB2E9,0xB2EA,0xB2F0,0xB2F1,0xB2F2,
-0xB2F6,0xB2FC,0xB2FD,0xB2FE,0xB302,0xB303,0xB305,0xB306,
-0xB307,0xB309,0xB30A,0xB30B,0xB30C,0xB30D,0xB30E,0xB30F,
-0xB312,0xB316,0xB317,0xB318,0xB319,0xB31A,0xB31B,0xB31D,
-0xB31E,0xB31F,0xB320,0xB321,0xB322,0xB323,0xB324,0xB325,
-0xB326,0xB327,0xB328,0xB329,0xB32A,0xB32B,0xB32C,0xB32D,
-0xB32E,0xB32F,0xB330,0xB331,0xB332,0xB333,0xB334,0xB335,
-0xB336,0xB337,0xB338,0xB339,0xB33A,0xB33B,0xB33C,0xB33D,
-0xB33E,0xB33F,0xB340,0xB341,0xB342,0xB343,0xB344,0xB345,
-0xB346,0xB347,0xB348,0xB349,0xB34A,0xB34B,0xB34C,0xB34D,
-0xB34E,0xB34F,0xB350,0xB351,0xB352,0xB353,0xB357,0xB359,
-0xB35A,0xB35D,0xB360,0xB361,0xB362,0xB363, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB366,0xB368,0xB36A,0xB36C,0xB36D,0xB36F,0xB372,0xB373,
-0xB375,0xB376,0xB377,0xB379,0xB37A,0xB37B,0xB37C,0xB37D,
-0xB37E,0xB37F,0xB382,0xB386,0xB387,0xB388,0xB389,0xB38A,
-0xB38B,0xB38D, 0, 0, 0, 0, 0, 0,
-0xB38E,0xB38F,0xB391,0xB392,0xB393,0xB395,0xB396,0xB397,
-0xB398,0xB399,0xB39A,0xB39B,0xB39C,0xB39D,0xB39E,0xB39F,
-0xB3A2,0xB3A3,0xB3A4,0xB3A5,0xB3A6,0xB3A7,0xB3A9,0xB3AA,
-0xB3AB,0xB3AD, 0, 0, 0, 0, 0, 0,
-0xB3AE,0xB3AF,0xB3B0,0xB3B1,0xB3B2,0xB3B3,0xB3B4,0xB3B5,
-0xB3B6,0xB3B7,0xB3B8,0xB3B9,0xB3BA,0xB3BB,0xB3BC,0xB3BD,
-0xB3BE,0xB3BF,0xB3C0,0xB3C1,0xB3C2,0xB3C3,0xB3C6,0xB3C7,
-0xB3C9,0xB3CA,0xB3CD,0xB3CF,0xB3D1,0xB3D2,0xB3D3,0xB3D6,
-0xB3D8,0xB3DA,0xB3DC,0xB3DE,0xB3DF,0xB3E1,0xB3E2,0xB3E3,
-0xB3E5,0xB3E6,0xB3E7,0xB3E9,0xB3EA,0xB3EB,0xB3EC,0xB3ED,
-0xB3EE,0xB3EF,0xB3F0,0xB3F1,0xB3F2,0xB3F3,0xB3F4,0xB3F5,
-0xB3F6,0xB3F7,0xB3F8,0xB3F9,0xB3FA,0xB3FB,0xB3FD,0xB3FE,
-0xB3FF,0xB400,0xB401,0xB402,0xB403,0xB404,0xB405,0xB406,
-0xB407,0xB408,0xB409,0xB40A,0xB40B,0xB40C,0xB40D,0xB40E,
-0xB40F,0xB411,0xB412,0xB413,0xB414,0xB415,0xB416,0xB417,
-0xB419,0xB41A,0xB41B,0xB41D,0xB41E,0xB41F,0xB421,0xB422,
-0xB423,0xB424,0xB425,0xB426,0xB427,0xB42A,0xB42C,0xB42D,
-0xB42E,0xB42F,0xB430,0xB431,0xB432,0xB433,0xB435,0xB436,
-0xB437,0xB438,0xB439,0xB43A,0xB43B,0xB43C,0xB43D,0xB43E,
-0xB43F,0xB440,0xB441,0xB442,0xB443,0xB444, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB445,0xB446,0xB447,0xB448,0xB449,0xB44A,0xB44B,0xB44C,
-0xB44D,0xB44E,0xB44F,0xB452,0xB453,0xB455,0xB456,0xB457,
-0xB459,0xB45A,0xB45B,0xB45C,0xB45D,0xB45E,0xB45F,0xB462,
-0xB464,0xB466, 0, 0, 0, 0, 0, 0,
-0xB467,0xB468,0xB469,0xB46A,0xB46B,0xB46D,0xB46E,0xB46F,
-0xB470,0xB471,0xB472,0xB473,0xB474,0xB475,0xB476,0xB477,
-0xB478,0xB479,0xB47A,0xB47B,0xB47C,0xB47D,0xB47E,0xB47F,
-0xB481,0xB482, 0, 0, 0, 0, 0, 0,
-0xB483,0xB484,0xB485,0xB486,0xB487,0xB489,0xB48A,0xB48B,
-0xB48C,0xB48D,0xB48E,0xB48F,0xB490,0xB491,0xB492,0xB493,
-0xB494,0xB495,0xB496,0xB497,0xB498,0xB499,0xB49A,0xB49B,
-0xB49C,0xB49E,0xB49F,0xB4A0,0xB4A1,0xB4A2,0xB4A3,0xB4A5,
-0xB4A6,0xB4A7,0xB4A9,0xB4AA,0xB4AB,0xB4AD,0xB4AE,0xB4AF,
-0xB4B0,0xB4B1,0xB4B2,0xB4B3,0xB4B4,0xB4B6,0xB4B8,0xB4BA,
-0xB4BB,0xB4BC,0xB4BD,0xB4BE,0xB4BF,0xB4C1,0xB4C2,0xB4C3,
-0xB4C5,0xB4C6,0xB4C7,0xB4C9,0xB4CA,0xB4CB,0xB4CC,0xB4CD,
-0xB4CE,0xB4CF,0xB4D1,0xB4D2,0xB4D3,0xB4D4,0xB4D6,0xB4D7,
-0xB4D8,0xB4D9,0xB4DA,0xB4DB,0xB4DE,0xB4DF,0xB4E1,0xB4E2,
-0xB4E5,0xB4E7,0xB4E8,0xB4E9,0xB4EA,0xB4EB,0xB4EE,0xB4F0,
-0xB4F2,0xB4F3,0xB4F4,0xB4F5,0xB4F6,0xB4F7,0xB4F9,0xB4FA,
-0xB4FB,0xB4FC,0xB4FD,0xB4FE,0xB4FF,0xB500,0xB501,0xB502,
-0xB503,0xB504,0xB505,0xB506,0xB507,0xB508,0xB509,0xB50A,
-0xB50B,0xB50C,0xB50D,0xB50E,0xB50F,0xB510,0xB511,0xB512,
-0xB513,0xB516,0xB517,0xB519,0xB51A,0xB51D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB51E,0xB51F,0xB520,0xB521,0xB522,0xB523,0xB526,0xB52B,
-0xB52C,0xB52D,0xB52E,0xB52F,0xB532,0xB533,0xB535,0xB536,
-0xB537,0xB539,0xB53A,0xB53B,0xB53C,0xB53D,0xB53E,0xB53F,
-0xB542,0xB546, 0, 0, 0, 0, 0, 0,
-0xB547,0xB548,0xB549,0xB54A,0xB54E,0xB54F,0xB551,0xB552,
-0xB553,0xB555,0xB556,0xB557,0xB558,0xB559,0xB55A,0xB55B,
-0xB55E,0xB562,0xB563,0xB564,0xB565,0xB566,0xB567,0xB568,
-0xB569,0xB56A, 0, 0, 0, 0, 0, 0,
-0xB56B,0xB56C,0xB56D,0xB56E,0xB56F,0xB570,0xB571,0xB572,
-0xB573,0xB574,0xB575,0xB576,0xB577,0xB578,0xB579,0xB57A,
-0xB57B,0xB57C,0xB57D,0xB57E,0xB57F,0xB580,0xB581,0xB582,
-0xB583,0xB584,0xB585,0xB586,0xB587,0xB588,0xB589,0xB58A,
-0xB58B,0xB58C,0xB58D,0xB58E,0xB58F,0xB590,0xB591,0xB592,
-0xB593,0xB594,0xB595,0xB596,0xB597,0xB598,0xB599,0xB59A,
-0xB59B,0xB59C,0xB59D,0xB59E,0xB59F,0xB5A2,0xB5A3,0xB5A5,
-0xB5A6,0xB5A7,0xB5A9,0xB5AC,0xB5AD,0xB5AE,0xB5AF,0xB5B2,
-0xB5B6,0xB5B7,0xB5B8,0xB5B9,0xB5BA,0xB5BE,0xB5BF,0xB5C1,
-0xB5C2,0xB5C3,0xB5C5,0xB5C6,0xB5C7,0xB5C8,0xB5C9,0xB5CA,
-0xB5CB,0xB5CE,0xB5D2,0xB5D3,0xB5D4,0xB5D5,0xB5D6,0xB5D7,
-0xB5D9,0xB5DA,0xB5DB,0xB5DC,0xB5DD,0xB5DE,0xB5DF,0xB5E0,
-0xB5E1,0xB5E2,0xB5E3,0xB5E4,0xB5E5,0xB5E6,0xB5E7,0xB5E8,
-0xB5E9,0xB5EA,0xB5EB,0xB5ED,0xB5EE,0xB5EF,0xB5F0,0xB5F1,
-0xB5F2,0xB5F3,0xB5F4,0xB5F5,0xB5F6,0xB5F7,0xB5F8,0xB5F9,
-0xB5FA,0xB5FB,0xB5FC,0xB5FD,0xB5FE,0xB5FF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB600,0xB601,0xB602,0xB603,0xB604,0xB605,0xB606,0xB607,
-0xB608,0xB609,0xB60A,0xB60B,0xB60C,0xB60D,0xB60E,0xB60F,
-0xB612,0xB613,0xB615,0xB616,0xB617,0xB619,0xB61A,0xB61B,
-0xB61C,0xB61D, 0, 0, 0, 0, 0, 0,
-0xB61E,0xB61F,0xB620,0xB621,0xB622,0xB623,0xB624,0xB626,
-0xB627,0xB628,0xB629,0xB62A,0xB62B,0xB62D,0xB62E,0xB62F,
-0xB630,0xB631,0xB632,0xB633,0xB635,0xB636,0xB637,0xB638,
-0xB639,0xB63A, 0, 0, 0, 0, 0, 0,
-0xB63B,0xB63C,0xB63D,0xB63E,0xB63F,0xB640,0xB641,0xB642,
-0xB643,0xB644,0xB645,0xB646,0xB647,0xB649,0xB64A,0xB64B,
-0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652,0xB653,
-0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A,0xB65B,
-0xB65C,0xB65D,0xB65E,0xB65F,0xB660,0xB661,0xB662,0xB663,
-0xB665,0xB666,0xB667,0xB669,0xB66A,0xB66B,0xB66C,0xB66D,
-0xB66E,0xB66F,0xB670,0xB671,0xB672,0xB673,0xB674,0xB675,
-0xB676,0xB677,0xB678,0xB679,0xB67A,0xB67B,0xB67C,0xB67D,
-0xB67E,0xB67F,0xB680,0xB681,0xB682,0xB683,0xB684,0xB685,
-0xB686,0xB687,0xB688,0xB689,0xB68A,0xB68B,0xB68C,0xB68D,
-0xB68E,0xB68F,0xB690,0xB691,0xB692,0xB693,0xB694,0xB695,
-0xB696,0xB697,0xB698,0xB699,0xB69A,0xB69B,0xB69E,0xB69F,
-0xB6A1,0xB6A2,0xB6A3,0xB6A5,0xB6A6,0xB6A7,0xB6A8,0xB6A9,
-0xB6AA,0xB6AD,0xB6AE,0xB6AF,0xB6B0,0xB6B2,0xB6B3,0xB6B4,
-0xB6B5,0xB6B6,0xB6B7,0xB6B8,0xB6B9,0xB6BA,0xB6BB,0xB6BC,
-0xB6BD,0xB6BE,0xB6BF,0xB6C0,0xB6C1,0xB6C2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB6C3,0xB6C4,0xB6C5,0xB6C6,0xB6C7,0xB6C8,0xB6C9,0xB6CA,
-0xB6CB,0xB6CC,0xB6CD,0xB6CE,0xB6CF,0xB6D0,0xB6D1,0xB6D2,
-0xB6D3,0xB6D5,0xB6D6,0xB6D7,0xB6D8,0xB6D9,0xB6DA,0xB6DB,
-0xB6DC,0xB6DD, 0, 0, 0, 0, 0, 0,
-0xB6DE,0xB6DF,0xB6E0,0xB6E1,0xB6E2,0xB6E3,0xB6E4,0xB6E5,
-0xB6E6,0xB6E7,0xB6E8,0xB6E9,0xB6EA,0xB6EB,0xB6EC,0xB6ED,
-0xB6EE,0xB6EF,0xB6F1,0xB6F2,0xB6F3,0xB6F5,0xB6F6,0xB6F7,
-0xB6F9,0xB6FA, 0, 0, 0, 0, 0, 0,
-0xB6FB,0xB6FC,0xB6FD,0xB6FE,0xB6FF,0xB702,0xB703,0xB704,
-0xB706,0xB707,0xB708,0xB709,0xB70A,0xB70B,0xB70C,0xB70D,
-0xB70E,0xB70F,0xB710,0xB711,0xB712,0xB713,0xB714,0xB715,
-0xB716,0xB717,0xB718,0xB719,0xB71A,0xB71B,0xB71C,0xB71D,
-0xB71E,0xB71F,0xB720,0xB721,0xB722,0xB723,0xB724,0xB725,
-0xB726,0xB727,0xB72A,0xB72B,0xB72D,0xB72E,0xB731,0xB732,
-0xB733,0xB734,0xB735,0xB736,0xB737,0xB73A,0xB73C,0xB73D,
-0xB73E,0xB73F,0xB740,0xB741,0xB742,0xB743,0xB745,0xB746,
-0xB747,0xB749,0xB74A,0xB74B,0xB74D,0xB74E,0xB74F,0xB750,
-0xB751,0xB752,0xB753,0xB756,0xB757,0xB758,0xB759,0xB75A,
-0xB75B,0xB75C,0xB75D,0xB75E,0xB75F,0xB761,0xB762,0xB763,
-0xB765,0xB766,0xB767,0xB769,0xB76A,0xB76B,0xB76C,0xB76D,
-0xB76E,0xB76F,0xB772,0xB774,0xB776,0xB777,0xB778,0xB779,
-0xB77A,0xB77B,0xB77E,0xB77F,0xB781,0xB782,0xB783,0xB785,
-0xB786,0xB787,0xB788,0xB789,0xB78A,0xB78B,0xB78E,0xB793,
-0xB794,0xB795,0xB79A,0xB79B,0xB79D,0xB79E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB79F,0xB7A1,0xB7A2,0xB7A3,0xB7A4,0xB7A5,0xB7A6,0xB7A7,
-0xB7AA,0xB7AE,0xB7AF,0xB7B0,0xB7B1,0xB7B2,0xB7B3,0xB7B6,
-0xB7B7,0xB7B9,0xB7BA,0xB7BB,0xB7BC,0xB7BD,0xB7BE,0xB7BF,
-0xB7C0,0xB7C1, 0, 0, 0, 0, 0, 0,
-0xB7C2,0xB7C3,0xB7C4,0xB7C5,0xB7C6,0xB7C8,0xB7CA,0xB7CB,
-0xB7CC,0xB7CD,0xB7CE,0xB7CF,0xB7D0,0xB7D1,0xB7D2,0xB7D3,
-0xB7D4,0xB7D5,0xB7D6,0xB7D7,0xB7D8,0xB7D9,0xB7DA,0xB7DB,
-0xB7DC,0xB7DD, 0, 0, 0, 0, 0, 0,
-0xB7DE,0xB7DF,0xB7E0,0xB7E1,0xB7E2,0xB7E3,0xB7E4,0xB7E5,
-0xB7E6,0xB7E7,0xB7E8,0xB7E9,0xB7EA,0xB7EB,0xB7EE,0xB7EF,
-0xB7F1,0xB7F2,0xB7F3,0xB7F5,0xB7F6,0xB7F7,0xB7F8,0xB7F9,
-0xB7FA,0xB7FB,0xB7FE,0xB802,0xB803,0xB804,0xB805,0xB806,
-0xB80A,0xB80B,0xB80D,0xB80E,0xB80F,0xB811,0xB812,0xB813,
-0xB814,0xB815,0xB816,0xB817,0xB81A,0xB81C,0xB81E,0xB81F,
-0xB820,0xB821,0xB822,0xB823,0xB826,0xB827,0xB829,0xB82A,
-0xB82B,0xB82D,0xB82E,0xB82F,0xB830,0xB831,0xB832,0xB833,
-0xB836,0xB83A,0xB83B,0xB83C,0xB83D,0xB83E,0xB83F,0xB841,
-0xB842,0xB843,0xB845,0xB846,0xB847,0xB848,0xB849,0xB84A,
-0xB84B,0xB84C,0xB84D,0xB84E,0xB84F,0xB850,0xB852,0xB854,
-0xB855,0xB856,0xB857,0xB858,0xB859,0xB85A,0xB85B,0xB85E,
-0xB85F,0xB861,0xB862,0xB863,0xB865,0xB866,0xB867,0xB868,
-0xB869,0xB86A,0xB86B,0xB86E,0xB870,0xB872,0xB873,0xB874,
-0xB875,0xB876,0xB877,0xB879,0xB87A,0xB87B,0xB87D,0xB87E,
-0xB87F,0xB880,0xB881,0xB882,0xB883,0xB884, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB885,0xB886,0xB887,0xB888,0xB889,0xB88A,0xB88B,0xB88C,
-0xB88E,0xB88F,0xB890,0xB891,0xB892,0xB893,0xB894,0xB895,
-0xB896,0xB897,0xB898,0xB899,0xB89A,0xB89B,0xB89C,0xB89D,
-0xB89E,0xB89F, 0, 0, 0, 0, 0, 0,
-0xB8A0,0xB8A1,0xB8A2,0xB8A3,0xB8A4,0xB8A5,0xB8A6,0xB8A7,
-0xB8A9,0xB8AA,0xB8AB,0xB8AC,0xB8AD,0xB8AE,0xB8AF,0xB8B1,
-0xB8B2,0xB8B3,0xB8B5,0xB8B6,0xB8B7,0xB8B9,0xB8BA,0xB8BB,
-0xB8BC,0xB8BD, 0, 0, 0, 0, 0, 0,
-0xB8BE,0xB8BF,0xB8C2,0xB8C4,0xB8C6,0xB8C7,0xB8C8,0xB8C9,
-0xB8CA,0xB8CB,0xB8CD,0xB8CE,0xB8CF,0xB8D1,0xB8D2,0xB8D3,
-0xB8D5,0xB8D6,0xB8D7,0xB8D8,0xB8D9,0xB8DA,0xB8DB,0xB8DC,
-0xB8DE,0xB8E0,0xB8E2,0xB8E3,0xB8E4,0xB8E5,0xB8E6,0xB8E7,
-0xB8EA,0xB8EB,0xB8ED,0xB8EE,0xB8EF,0xB8F1,0xB8F2,0xB8F3,
-0xB8F4,0xB8F5,0xB8F6,0xB8F7,0xB8FA,0xB8FC,0xB8FE,0xB8FF,
-0xB900,0xB901,0xB902,0xB903,0xB905,0xB906,0xB907,0xB908,
-0xB909,0xB90A,0xB90B,0xB90C,0xB90D,0xB90E,0xB90F,0xB910,
-0xB911,0xB912,0xB913,0xB914,0xB915,0xB916,0xB917,0xB919,
-0xB91A,0xB91B,0xB91C,0xB91D,0xB91E,0xB91F,0xB921,0xB922,
-0xB923,0xB924,0xB925,0xB926,0xB927,0xB928,0xB929,0xB92A,
-0xB92B,0xB92C,0xB92D,0xB92E,0xB92F,0xB930,0xB931,0xB932,
-0xB933,0xB934,0xB935,0xB936,0xB937,0xB938,0xB939,0xB93A,
-0xB93B,0xB93E,0xB93F,0xB941,0xB942,0xB943,0xB945,0xB946,
-0xB947,0xB948,0xB949,0xB94A,0xB94B,0xB94D,0xB94E,0xB950,
-0xB952,0xB953,0xB954,0xB955,0xB956,0xB957, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xB95A,0xB95B,0xB95D,0xB95E,0xB95F,0xB961,0xB962,0xB963,
-0xB964,0xB965,0xB966,0xB967,0xB96A,0xB96C,0xB96E,0xB96F,
-0xB970,0xB971,0xB972,0xB973,0xB976,0xB977,0xB979,0xB97A,
-0xB97B,0xB97D, 0, 0, 0, 0, 0, 0,
-0xB97E,0xB97F,0xB980,0xB981,0xB982,0xB983,0xB986,0xB988,
-0xB98B,0xB98C,0xB98F,0xB990,0xB991,0xB992,0xB993,0xB994,
-0xB995,0xB996,0xB997,0xB998,0xB999,0xB99A,0xB99B,0xB99C,
-0xB99D,0xB99E, 0, 0, 0, 0, 0, 0,
-0xB99F,0xB9A0,0xB9A1,0xB9A2,0xB9A3,0xB9A4,0xB9A5,0xB9A6,
-0xB9A7,0xB9A8,0xB9A9,0xB9AA,0xB9AB,0xB9AE,0xB9AF,0xB9B1,
-0xB9B2,0xB9B3,0xB9B5,0xB9B6,0xB9B7,0xB9B8,0xB9B9,0xB9BA,
-0xB9BB,0xB9BE,0xB9C0,0xB9C2,0xB9C3,0xB9C4,0xB9C5,0xB9C6,
-0xB9C7,0xB9CA,0xB9CB,0xB9CD,0xB9D3,0xB9D4,0xB9D5,0xB9D6,
-0xB9D7,0xB9DA,0xB9DC,0xB9DF,0xB9E0,0xB9E2,0xB9E6,0xB9E7,
-0xB9E9,0xB9EA,0xB9EB,0xB9ED,0xB9EE,0xB9EF,0xB9F0,0xB9F1,
-0xB9F2,0xB9F3,0xB9F6,0xB9FB,0xB9FC,0xB9FD,0xB9FE,0xB9FF,
-0xBA02,0xBA03,0xBA04,0xBA05,0xBA06,0xBA07,0xBA09,0xBA0A,
-0xBA0B,0xBA0C,0xBA0D,0xBA0E,0xBA0F,0xBA10,0xBA11,0xBA12,
-0xBA13,0xBA14,0xBA16,0xBA17,0xBA18,0xBA19,0xBA1A,0xBA1B,
-0xBA1C,0xBA1D,0xBA1E,0xBA1F,0xBA20,0xBA21,0xBA22,0xBA23,
-0xBA24,0xBA25,0xBA26,0xBA27,0xBA28,0xBA29,0xBA2A,0xBA2B,
-0xBA2C,0xBA2D,0xBA2E,0xBA2F,0xBA30,0xBA31,0xBA32,0xBA33,
-0xBA34,0xBA35,0xBA36,0xBA37,0xBA3A,0xBA3B,0xBA3D,0xBA3E,
-0xBA3F,0xBA41,0xBA43,0xBA44,0xBA45,0xBA46, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBA47,0xBA4A,0xBA4C,0xBA4F,0xBA50,0xBA51,0xBA52,0xBA56,
-0xBA57,0xBA59,0xBA5A,0xBA5B,0xBA5D,0xBA5E,0xBA5F,0xBA60,
-0xBA61,0xBA62,0xBA63,0xBA66,0xBA6A,0xBA6B,0xBA6C,0xBA6D,
-0xBA6E,0xBA6F, 0, 0, 0, 0, 0, 0,
-0xBA72,0xBA73,0xBA75,0xBA76,0xBA77,0xBA79,0xBA7A,0xBA7B,
-0xBA7C,0xBA7D,0xBA7E,0xBA7F,0xBA80,0xBA81,0xBA82,0xBA86,
-0xBA88,0xBA89,0xBA8A,0xBA8B,0xBA8D,0xBA8E,0xBA8F,0xBA90,
-0xBA91,0xBA92, 0, 0, 0, 0, 0, 0,
-0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99,0xBA9A,
-0xBA9B,0xBA9C,0xBA9D,0xBA9E,0xBA9F,0xBAA0,0xBAA1,0xBAA2,
-0xBAA3,0xBAA4,0xBAA5,0xBAA6,0xBAA7,0xBAAA,0xBAAD,0xBAAE,
-0xBAAF,0xBAB1,0xBAB3,0xBAB4,0xBAB5,0xBAB6,0xBAB7,0xBABA,
-0xBABC,0xBABE,0xBABF,0xBAC0,0xBAC1,0xBAC2,0xBAC3,0xBAC5,
-0xBAC6,0xBAC7,0xBAC9,0xBACA,0xBACB,0xBACC,0xBACD,0xBACE,
-0xBACF,0xBAD0,0xBAD1,0xBAD2,0xBAD3,0xBAD4,0xBAD5,0xBAD6,
-0xBAD7,0xBADA,0xBADB,0xBADC,0xBADD,0xBADE,0xBADF,0xBAE0,
-0xBAE1,0xBAE2,0xBAE3,0xBAE4,0xBAE5,0xBAE6,0xBAE7,0xBAE8,
-0xBAE9,0xBAEA,0xBAEB,0xBAEC,0xBAED,0xBAEE,0xBAEF,0xBAF0,
-0xBAF1,0xBAF2,0xBAF3,0xBAF4,0xBAF5,0xBAF6,0xBAF7,0xBAF8,
-0xBAF9,0xBAFA,0xBAFB,0xBAFD,0xBAFE,0xBAFF,0xBB01,0xBB02,
-0xBB03,0xBB05,0xBB06,0xBB07,0xBB08,0xBB09,0xBB0A,0xBB0B,
-0xBB0C,0xBB0E,0xBB10,0xBB12,0xBB13,0xBB14,0xBB15,0xBB16,
-0xBB17,0xBB19,0xBB1A,0xBB1B,0xBB1D,0xBB1E,0xBB1F,0xBB21,
-0xBB22,0xBB23,0xBB24,0xBB25,0xBB26,0xBB27, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBB28,0xBB2A,0xBB2C,0xBB2D,0xBB2E,0xBB2F,0xBB30,0xBB31,
-0xBB32,0xBB33,0xBB37,0xBB39,0xBB3A,0xBB3F,0xBB40,0xBB41,
-0xBB42,0xBB43,0xBB46,0xBB48,0xBB4A,0xBB4B,0xBB4C,0xBB4E,
-0xBB51,0xBB52, 0, 0, 0, 0, 0, 0,
-0xBB53,0xBB55,0xBB56,0xBB57,0xBB59,0xBB5A,0xBB5B,0xBB5C,
-0xBB5D,0xBB5E,0xBB5F,0xBB60,0xBB62,0xBB64,0xBB65,0xBB66,
-0xBB67,0xBB68,0xBB69,0xBB6A,0xBB6B,0xBB6D,0xBB6E,0xBB6F,
-0xBB70,0xBB71, 0, 0, 0, 0, 0, 0,
-0xBB72,0xBB73,0xBB74,0xBB75,0xBB76,0xBB77,0xBB78,0xBB79,
-0xBB7A,0xBB7B,0xBB7C,0xBB7D,0xBB7E,0xBB7F,0xBB80,0xBB81,
-0xBB82,0xBB83,0xBB84,0xBB85,0xBB86,0xBB87,0xBB89,0xBB8A,
-0xBB8B,0xBB8D,0xBB8E,0xBB8F,0xBB91,0xBB92,0xBB93,0xBB94,
-0xBB95,0xBB96,0xBB97,0xBB98,0xBB99,0xBB9A,0xBB9B,0xBB9C,
-0xBB9D,0xBB9E,0xBB9F,0xBBA0,0xBBA1,0xBBA2,0xBBA3,0xBBA5,
-0xBBA6,0xBBA7,0xBBA9,0xBBAA,0xBBAB,0xBBAD,0xBBAE,0xBBAF,
-0xBBB0,0xBBB1,0xBBB2,0xBBB3,0xBBB5,0xBBB6,0xBBB8,0xBBB9,
-0xBBBA,0xBBBB,0xBBBC,0xBBBD,0xBBBE,0xBBBF,0xBBC1,0xBBC2,
-0xBBC3,0xBBC5,0xBBC6,0xBBC7,0xBBC9,0xBBCA,0xBBCB,0xBBCC,
-0xBBCD,0xBBCE,0xBBCF,0xBBD1,0xBBD2,0xBBD4,0xBBD5,0xBBD6,
-0xBBD7,0xBBD8,0xBBD9,0xBBDA,0xBBDB,0xBBDC,0xBBDD,0xBBDE,
-0xBBDF,0xBBE0,0xBBE1,0xBBE2,0xBBE3,0xBBE4,0xBBE5,0xBBE6,
-0xBBE7,0xBBE8,0xBBE9,0xBBEA,0xBBEB,0xBBEC,0xBBED,0xBBEE,
-0xBBEF,0xBBF0,0xBBF1,0xBBF2,0xBBF3,0xBBF4,0xBBF5,0xBBF6,
-0xBBF7,0xBBFA,0xBBFB,0xBBFD,0xBBFE,0xBC01, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBC03,0xBC04,0xBC05,0xBC06,0xBC07,0xBC0A,0xBC0E,0xBC10,
-0xBC12,0xBC13,0xBC19,0xBC1A,0xBC20,0xBC21,0xBC22,0xBC23,
-0xBC26,0xBC28,0xBC2A,0xBC2B,0xBC2C,0xBC2E,0xBC2F,0xBC32,
-0xBC33,0xBC35, 0, 0, 0, 0, 0, 0,
-0xBC36,0xBC37,0xBC39,0xBC3A,0xBC3B,0xBC3C,0xBC3D,0xBC3E,
-0xBC3F,0xBC42,0xBC46,0xBC47,0xBC48,0xBC4A,0xBC4B,0xBC4E,
-0xBC4F,0xBC51,0xBC52,0xBC53,0xBC54,0xBC55,0xBC56,0xBC57,
-0xBC58,0xBC59, 0, 0, 0, 0, 0, 0,
-0xBC5A,0xBC5B,0xBC5C,0xBC5E,0xBC5F,0xBC60,0xBC61,0xBC62,
-0xBC63,0xBC64,0xBC65,0xBC66,0xBC67,0xBC68,0xBC69,0xBC6A,
-0xBC6B,0xBC6C,0xBC6D,0xBC6E,0xBC6F,0xBC70,0xBC71,0xBC72,
-0xBC73,0xBC74,0xBC75,0xBC76,0xBC77,0xBC78,0xBC79,0xBC7A,
-0xBC7B,0xBC7C,0xBC7D,0xBC7E,0xBC7F,0xBC80,0xBC81,0xBC82,
-0xBC83,0xBC86,0xBC87,0xBC89,0xBC8A,0xBC8D,0xBC8F,0xBC90,
-0xBC91,0xBC92,0xBC93,0xBC96,0xBC98,0xBC9B,0xBC9C,0xBC9D,
-0xBC9E,0xBC9F,0xBCA2,0xBCA3,0xBCA5,0xBCA6,0xBCA9,0xBCAA,
-0xBCAB,0xBCAC,0xBCAD,0xBCAE,0xBCAF,0xBCB2,0xBCB6,0xBCB7,
-0xBCB8,0xBCB9,0xBCBA,0xBCBB,0xBCBE,0xBCBF,0xBCC1,0xBCC2,
-0xBCC3,0xBCC5,0xBCC6,0xBCC7,0xBCC8,0xBCC9,0xBCCA,0xBCCB,
-0xBCCC,0xBCCE,0xBCD2,0xBCD3,0xBCD4,0xBCD6,0xBCD7,0xBCD9,
-0xBCDA,0xBCDB,0xBCDD,0xBCDE,0xBCDF,0xBCE0,0xBCE1,0xBCE2,
-0xBCE3,0xBCE4,0xBCE5,0xBCE6,0xBCE7,0xBCE8,0xBCE9,0xBCEA,
-0xBCEB,0xBCEC,0xBCED,0xBCEE,0xBCEF,0xBCF0,0xBCF1,0xBCF2,
-0xBCF3,0xBCF7,0xBCF9,0xBCFA,0xBCFB,0xBCFD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBCFE,0xBCFF,0xBD00,0xBD01,0xBD02,0xBD03,0xBD06,0xBD08,
-0xBD0A,0xBD0B,0xBD0C,0xBD0D,0xBD0E,0xBD0F,0xBD11,0xBD12,
-0xBD13,0xBD15,0xBD16,0xBD17,0xBD18,0xBD19,0xBD1A,0xBD1B,
-0xBD1C,0xBD1D, 0, 0, 0, 0, 0, 0,
-0xBD1E,0xBD1F,0xBD20,0xBD21,0xBD22,0xBD23,0xBD25,0xBD26,
-0xBD27,0xBD28,0xBD29,0xBD2A,0xBD2B,0xBD2D,0xBD2E,0xBD2F,
-0xBD30,0xBD31,0xBD32,0xBD33,0xBD34,0xBD35,0xBD36,0xBD37,
-0xBD38,0xBD39, 0, 0, 0, 0, 0, 0,
-0xBD3A,0xBD3B,0xBD3C,0xBD3D,0xBD3E,0xBD3F,0xBD41,0xBD42,
-0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD4A,0xBD4B,0xBD4D,
-0xBD4E,0xBD4F,0xBD51,0xBD52,0xBD53,0xBD54,0xBD55,0xBD56,
-0xBD57,0xBD5A,0xBD5B,0xBD5C,0xBD5D,0xBD5E,0xBD5F,0xBD60,
-0xBD61,0xBD62,0xBD63,0xBD65,0xBD66,0xBD67,0xBD69,0xBD6A,
-0xBD6B,0xBD6C,0xBD6D,0xBD6E,0xBD6F,0xBD70,0xBD71,0xBD72,
-0xBD73,0xBD74,0xBD75,0xBD76,0xBD77,0xBD78,0xBD79,0xBD7A,
-0xBD7B,0xBD7C,0xBD7D,0xBD7E,0xBD7F,0xBD82,0xBD83,0xBD85,
-0xBD86,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F,0xBD92,0xBD94,
-0xBD96,0xBD97,0xBD98,0xBD9B,0xBD9D,0xBD9E,0xBD9F,0xBDA0,
-0xBDA1,0xBDA2,0xBDA3,0xBDA5,0xBDA6,0xBDA7,0xBDA8,0xBDA9,
-0xBDAA,0xBDAB,0xBDAC,0xBDAD,0xBDAE,0xBDAF,0xBDB1,0xBDB2,
-0xBDB3,0xBDB4,0xBDB5,0xBDB6,0xBDB7,0xBDB9,0xBDBA,0xBDBB,
-0xBDBC,0xBDBD,0xBDBE,0xBDBF,0xBDC0,0xBDC1,0xBDC2,0xBDC3,
-0xBDC4,0xBDC5,0xBDC6,0xBDC7,0xBDC8,0xBDC9,0xBDCA,0xBDCB,
-0xBDCC,0xBDCD,0xBDCE,0xBDCF,0xBDD0,0xBDD1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBDD2,0xBDD3,0xBDD6,0xBDD7,0xBDD9,0xBDDA,0xBDDB,0xBDDD,
-0xBDDE,0xBDDF,0xBDE0,0xBDE1,0xBDE2,0xBDE3,0xBDE4,0xBDE5,
-0xBDE6,0xBDE7,0xBDE8,0xBDEA,0xBDEB,0xBDEC,0xBDED,0xBDEE,
-0xBDEF,0xBDF1, 0, 0, 0, 0, 0, 0,
-0xBDF2,0xBDF3,0xBDF5,0xBDF6,0xBDF7,0xBDF9,0xBDFA,0xBDFB,
-0xBDFC,0xBDFD,0xBDFE,0xBDFF,0xBE01,0xBE02,0xBE04,0xBE06,
-0xBE07,0xBE08,0xBE09,0xBE0A,0xBE0B,0xBE0E,0xBE0F,0xBE11,
-0xBE12,0xBE13, 0, 0, 0, 0, 0, 0,
-0xBE15,0xBE16,0xBE17,0xBE18,0xBE19,0xBE1A,0xBE1B,0xBE1E,
-0xBE20,0xBE21,0xBE22,0xBE23,0xBE24,0xBE25,0xBE26,0xBE27,
-0xBE28,0xBE29,0xBE2A,0xBE2B,0xBE2C,0xBE2D,0xBE2E,0xBE2F,
-0xBE30,0xBE31,0xBE32,0xBE33,0xBE34,0xBE35,0xBE36,0xBE37,
-0xBE38,0xBE39,0xBE3A,0xBE3B,0xBE3C,0xBE3D,0xBE3E,0xBE3F,
-0xBE40,0xBE41,0xBE42,0xBE43,0xBE46,0xBE47,0xBE49,0xBE4A,
-0xBE4B,0xBE4D,0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xBE56,
-0xBE58,0xBE5C,0xBE5D,0xBE5E,0xBE5F,0xBE62,0xBE63,0xBE65,
-0xBE66,0xBE67,0xBE69,0xBE6B,0xBE6C,0xBE6D,0xBE6E,0xBE6F,
-0xBE72,0xBE76,0xBE77,0xBE78,0xBE79,0xBE7A,0xBE7E,0xBE7F,
-0xBE81,0xBE82,0xBE83,0xBE85,0xBE86,0xBE87,0xBE88,0xBE89,
-0xBE8A,0xBE8B,0xBE8E,0xBE92,0xBE93,0xBE94,0xBE95,0xBE96,
-0xBE97,0xBE9A,0xBE9B,0xBE9C,0xBE9D,0xBE9E,0xBE9F,0xBEA0,
-0xBEA1,0xBEA2,0xBEA3,0xBEA4,0xBEA5,0xBEA6,0xBEA7,0xBEA9,
-0xBEAA,0xBEAB,0xBEAC,0xBEAD,0xBEAE,0xBEAF,0xBEB0,0xBEB1,
-0xBEB2,0xBEB3,0xBEB4,0xBEB5,0xBEB6,0xBEB7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBEB8,0xBEB9,0xBEBA,0xBEBB,0xBEBC,0xBEBD,0xBEBE,0xBEBF,
-0xBEC0,0xBEC1,0xBEC2,0xBEC3,0xBEC4,0xBEC5,0xBEC6,0xBEC7,
-0xBEC8,0xBEC9,0xBECA,0xBECB,0xBECC,0xBECD,0xBECE,0xBECF,
-0xBED2,0xBED3, 0, 0, 0, 0, 0, 0,
-0xBED5,0xBED6,0xBED9,0xBEDA,0xBEDB,0xBEDC,0xBEDD,0xBEDE,
-0xBEDF,0xBEE1,0xBEE2,0xBEE6,0xBEE7,0xBEE8,0xBEE9,0xBEEA,
-0xBEEB,0xBEED,0xBEEE,0xBEEF,0xBEF0,0xBEF1,0xBEF2,0xBEF3,
-0xBEF4,0xBEF5, 0, 0, 0, 0, 0, 0,
-0xBEF6,0xBEF7,0xBEF8,0xBEF9,0xBEFA,0xBEFB,0xBEFC,0xBEFD,
-0xBEFE,0xBEFF,0xBF00,0xBF02,0xBF03,0xBF04,0xBF05,0xBF06,
-0xBF07,0xBF0A,0xBF0B,0xBF0C,0xBF0D,0xBF0E,0xBF0F,0xBF10,
-0xBF11,0xBF12,0xBF13,0xBF14,0xBF15,0xBF16,0xBF17,0xBF1A,
-0xBF1E,0xBF1F,0xBF20,0xBF21,0xBF22,0xBF23,0xBF24,0xBF25,
-0xBF26,0xBF27,0xBF28,0xBF29,0xBF2A,0xBF2B,0xBF2C,0xBF2D,
-0xBF2E,0xBF2F,0xBF30,0xBF31,0xBF32,0xBF33,0xBF34,0xBF35,
-0xBF36,0xBF37,0xBF38,0xBF39,0xBF3A,0xBF3B,0xBF3C,0xBF3D,
-0xBF3E,0xBF3F,0xBF42,0xBF43,0xBF45,0xBF46,0xBF47,0xBF49,
-0xBF4A,0xBF4B,0xBF4C,0xBF4D,0xBF4E,0xBF4F,0xBF52,0xBF53,
-0xBF54,0xBF56,0xBF57,0xBF58,0xBF59,0xBF5A,0xBF5B,0xBF5C,
-0xBF5D,0xBF5E,0xBF5F,0xBF60,0xBF61,0xBF62,0xBF63,0xBF64,
-0xBF65,0xBF66,0xBF67,0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C,
-0xBF6D,0xBF6E,0xBF6F,0xBF70,0xBF71,0xBF72,0xBF73,0xBF74,
-0xBF75,0xBF76,0xBF77,0xBF78,0xBF79,0xBF7A,0xBF7B,0xBF7C,
-0xBF7D,0xBF7E,0xBF7F,0xBF80,0xBF81,0xBF82, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xBF83,0xBF84,0xBF85,0xBF86,0xBF87,0xBF88,0xBF89,0xBF8A,
-0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90,0xBF91,0xBF92,
-0xBF93,0xBF95,0xBF96,0xBF97,0xBF98,0xBF99,0xBF9A,0xBF9B,
-0xBF9C,0xBF9D, 0, 0, 0, 0, 0, 0,
-0xBF9E,0xBF9F,0xBFA0,0xBFA1,0xBFA2,0xBFA3,0xBFA4,0xBFA5,
-0xBFA6,0xBFA7,0xBFA8,0xBFA9,0xBFAA,0xBFAB,0xBFAC,0xBFAD,
-0xBFAE,0xBFAF,0xBFB1,0xBFB2,0xBFB3,0xBFB4,0xBFB5,0xBFB6,
-0xBFB7,0xBFB8, 0, 0, 0, 0, 0, 0,
-0xBFB9,0xBFBA,0xBFBB,0xBFBC,0xBFBD,0xBFBE,0xBFBF,0xBFC0,
-0xBFC1,0xBFC2,0xBFC3,0xBFC4,0xBFC6,0xBFC7,0xBFC8,0xBFC9,
-0xBFCA,0xBFCB,0xBFCE,0xBFCF,0xBFD1,0xBFD2,0xBFD3,0xBFD5,
-0xBFD6,0xBFD7,0xBFD8,0xBFD9,0xBFDA,0xBFDB,0xBFDD,0xBFDE,
-0xBFE0,0xBFE2,0xBFE3,0xBFE4,0xBFE5,0xBFE6,0xBFE7,0xBFE8,
-0xBFE9,0xBFEA,0xBFEB,0xBFEC,0xBFED,0xBFEE,0xBFEF,0xBFF0,
-0xBFF1,0xBFF2,0xBFF3,0xBFF4,0xBFF5,0xBFF6,0xBFF7,0xBFF8,
-0xBFF9,0xBFFA,0xBFFB,0xBFFC,0xBFFD,0xBFFE,0xBFFF,0xC000,
-0xC001,0xC002,0xC003,0xC004,0xC005,0xC006,0xC007,0xC008,
-0xC009,0xC00A,0xC00B,0xC00C,0xC00D,0xC00E,0xC00F,0xC010,
-0xC011,0xC012,0xC013,0xC014,0xC015,0xC016,0xC017,0xC018,
-0xC019,0xC01A,0xC01B,0xC01C,0xC01D,0xC01E,0xC01F,0xC020,
-0xC021,0xC022,0xC023,0xC024,0xC025,0xC026,0xC027,0xC028,
-0xC029,0xC02A,0xC02B,0xC02C,0xC02D,0xC02E,0xC02F,0xC030,
-0xC031,0xC032,0xC033,0xC034,0xC035,0xC036,0xC037,0xC038,
-0xC039,0xC03A,0xC03B,0xC03D,0xC03E,0xC03F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC040,0xC041,0xC042,0xC043,0xC044,0xC045,0xC046,0xC047,
-0xC048,0xC049,0xC04A,0xC04B,0xC04C,0xC04D,0xC04E,0xC04F,
-0xC050,0xC052,0xC053,0xC054,0xC055,0xC056,0xC057,0xC059,
-0xC05A,0xC05B, 0, 0, 0, 0, 0, 0,
-0xC05D,0xC05E,0xC05F,0xC061,0xC062,0xC063,0xC064,0xC065,
-0xC066,0xC067,0xC06A,0xC06B,0xC06C,0xC06D,0xC06E,0xC06F,
-0xC070,0xC071,0xC072,0xC073,0xC074,0xC075,0xC076,0xC077,
-0xC078,0xC079, 0, 0, 0, 0, 0, 0,
-0xC07A,0xC07B,0xC07C,0xC07D,0xC07E,0xC07F,0xC080,0xC081,
-0xC082,0xC083,0xC084,0xC085,0xC086,0xC087,0xC088,0xC089,
-0xC08A,0xC08B,0xC08C,0xC08D,0xC08E,0xC08F,0xC092,0xC093,
-0xC095,0xC096,0xC097,0xC099,0xC09A,0xC09B,0xC09C,0xC09D,
-0xC09E,0xC09F,0xC0A2,0xC0A4,0xC0A6,0xC0A7,0xC0A8,0xC0A9,
-0xC0AA,0xC0AB,0xC0AE,0xC0B1,0xC0B2,0xC0B7,0xC0B8,0xC0B9,
-0xC0BA,0xC0BB,0xC0BE,0xC0C2,0xC0C3,0xC0C4,0xC0C6,0xC0C7,
-0xC0CA,0xC0CB,0xC0CD,0xC0CE,0xC0CF,0xC0D1,0xC0D2,0xC0D3,
-0xC0D4,0xC0D5,0xC0D6,0xC0D7,0xC0DA,0xC0DE,0xC0DF,0xC0E0,
-0xC0E1,0xC0E2,0xC0E3,0xC0E6,0xC0E7,0xC0E9,0xC0EA,0xC0EB,
-0xC0ED,0xC0EE,0xC0EF,0xC0F0,0xC0F1,0xC0F2,0xC0F3,0xC0F6,
-0xC0F8,0xC0FA,0xC0FB,0xC0FC,0xC0FD,0xC0FE,0xC0FF,0xC101,
-0xC102,0xC103,0xC105,0xC106,0xC107,0xC109,0xC10A,0xC10B,
-0xC10C,0xC10D,0xC10E,0xC10F,0xC111,0xC112,0xC113,0xC114,
-0xC116,0xC117,0xC118,0xC119,0xC11A,0xC11B,0xC121,0xC122,
-0xC125,0xC128,0xC129,0xC12A,0xC12B,0xC12E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC132,0xC133,0xC134,0xC135,0xC137,0xC13A,0xC13B,0xC13D,
-0xC13E,0xC13F,0xC141,0xC142,0xC143,0xC144,0xC145,0xC146,
-0xC147,0xC14A,0xC14E,0xC14F,0xC150,0xC151,0xC152,0xC153,
-0xC156,0xC157, 0, 0, 0, 0, 0, 0,
-0xC159,0xC15A,0xC15B,0xC15D,0xC15E,0xC15F,0xC160,0xC161,
-0xC162,0xC163,0xC166,0xC16A,0xC16B,0xC16C,0xC16D,0xC16E,
-0xC16F,0xC171,0xC172,0xC173,0xC175,0xC176,0xC177,0xC179,
-0xC17A,0xC17B, 0, 0, 0, 0, 0, 0,
-0xC17C,0xC17D,0xC17E,0xC17F,0xC180,0xC181,0xC182,0xC183,
-0xC184,0xC186,0xC187,0xC188,0xC189,0xC18A,0xC18B,0xC18F,
-0xC191,0xC192,0xC193,0xC195,0xC197,0xC198,0xC199,0xC19A,
-0xC19B,0xC19E,0xC1A0,0xC1A2,0xC1A3,0xC1A4,0xC1A6,0xC1A7,
-0xC1AA,0xC1AB,0xC1AD,0xC1AE,0xC1AF,0xC1B1,0xC1B2,0xC1B3,
-0xC1B4,0xC1B5,0xC1B6,0xC1B7,0xC1B8,0xC1B9,0xC1BA,0xC1BB,
-0xC1BC,0xC1BE,0xC1BF,0xC1C0,0xC1C1,0xC1C2,0xC1C3,0xC1C5,
-0xC1C6,0xC1C7,0xC1C9,0xC1CA,0xC1CB,0xC1CD,0xC1CE,0xC1CF,
-0xC1D0,0xC1D1,0xC1D2,0xC1D3,0xC1D5,0xC1D6,0xC1D9,0xC1DA,
-0xC1DB,0xC1DC,0xC1DD,0xC1DE,0xC1DF,0xC1E1,0xC1E2,0xC1E3,
-0xC1E5,0xC1E6,0xC1E7,0xC1E9,0xC1EA,0xC1EB,0xC1EC,0xC1ED,
-0xC1EE,0xC1EF,0xC1F2,0xC1F4,0xC1F5,0xC1F6,0xC1F7,0xC1F8,
-0xC1F9,0xC1FA,0xC1FB,0xC1FE,0xC1FF,0xC201,0xC202,0xC203,
-0xC205,0xC206,0xC207,0xC208,0xC209,0xC20A,0xC20B,0xC20E,
-0xC210,0xC212,0xC213,0xC214,0xC215,0xC216,0xC217,0xC21A,
-0xC21B,0xC21D,0xC21E,0xC221,0xC222,0xC223, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC224,0xC225,0xC226,0xC227,0xC22A,0xC22C,0xC22E,0xC230,
-0xC233,0xC235,0xC236,0xC237,0xC238,0xC239,0xC23A,0xC23B,
-0xC23C,0xC23D,0xC23E,0xC23F,0xC240,0xC241,0xC242,0xC243,
-0xC244,0xC245, 0, 0, 0, 0, 0, 0,
-0xC246,0xC247,0xC249,0xC24A,0xC24B,0xC24C,0xC24D,0xC24E,
-0xC24F,0xC252,0xC253,0xC255,0xC256,0xC257,0xC259,0xC25A,
-0xC25B,0xC25C,0xC25D,0xC25E,0xC25F,0xC261,0xC262,0xC263,
-0xC264,0xC266, 0, 0, 0, 0, 0, 0,
-0xC267,0xC268,0xC269,0xC26A,0xC26B,0xC26E,0xC26F,0xC271,
-0xC272,0xC273,0xC275,0xC276,0xC277,0xC278,0xC279,0xC27A,
-0xC27B,0xC27E,0xC280,0xC282,0xC283,0xC284,0xC285,0xC286,
-0xC287,0xC28A,0xC28B,0xC28C,0xC28D,0xC28E,0xC28F,0xC291,
-0xC292,0xC293,0xC294,0xC295,0xC296,0xC297,0xC299,0xC29A,
-0xC29C,0xC29E,0xC29F,0xC2A0,0xC2A1,0xC2A2,0xC2A3,0xC2A6,
-0xC2A7,0xC2A9,0xC2AA,0xC2AB,0xC2AE,0xC2AF,0xC2B0,0xC2B1,
-0xC2B2,0xC2B3,0xC2B6,0xC2B8,0xC2BA,0xC2BB,0xC2BC,0xC2BD,
-0xC2BE,0xC2BF,0xC2C0,0xC2C1,0xC2C2,0xC2C3,0xC2C4,0xC2C5,
-0xC2C6,0xC2C7,0xC2C8,0xC2C9,0xC2CA,0xC2CB,0xC2CC,0xC2CD,
-0xC2CE,0xC2CF,0xC2D0,0xC2D1,0xC2D2,0xC2D3,0xC2D4,0xC2D5,
-0xC2D6,0xC2D7,0xC2D8,0xC2D9,0xC2DA,0xC2DB,0xC2DE,0xC2DF,
-0xC2E1,0xC2E2,0xC2E5,0xC2E6,0xC2E7,0xC2E8,0xC2E9,0xC2EA,
-0xC2EE,0xC2F0,0xC2F2,0xC2F3,0xC2F4,0xC2F5,0xC2F7,0xC2FA,
-0xC2FD,0xC2FE,0xC2FF,0xC301,0xC302,0xC303,0xC304,0xC305,
-0xC306,0xC307,0xC30A,0xC30B,0xC30E,0xC30F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC310,0xC311,0xC312,0xC316,0xC317,0xC319,0xC31A,0xC31B,
-0xC31D,0xC31E,0xC31F,0xC320,0xC321,0xC322,0xC323,0xC326,
-0xC327,0xC32A,0xC32B,0xC32C,0xC32D,0xC32E,0xC32F,0xC330,
-0xC331,0xC332, 0, 0, 0, 0, 0, 0,
-0xC333,0xC334,0xC335,0xC336,0xC337,0xC338,0xC339,0xC33A,
-0xC33B,0xC33C,0xC33D,0xC33E,0xC33F,0xC340,0xC341,0xC342,
-0xC343,0xC344,0xC346,0xC347,0xC348,0xC349,0xC34A,0xC34B,
-0xC34C,0xC34D, 0, 0, 0, 0, 0, 0,
-0xC34E,0xC34F,0xC350,0xC351,0xC352,0xC353,0xC354,0xC355,
-0xC356,0xC357,0xC358,0xC359,0xC35A,0xC35B,0xC35C,0xC35D,
-0xC35E,0xC35F,0xC360,0xC361,0xC362,0xC363,0xC364,0xC365,
-0xC366,0xC367,0xC36A,0xC36B,0xC36D,0xC36E,0xC36F,0xC371,
-0xC373,0xC374,0xC375,0xC376,0xC377,0xC37A,0xC37B,0xC37E,
-0xC37F,0xC380,0xC381,0xC382,0xC383,0xC385,0xC386,0xC387,
-0xC389,0xC38A,0xC38B,0xC38D,0xC38E,0xC38F,0xC390,0xC391,
-0xC392,0xC393,0xC394,0xC395,0xC396,0xC397,0xC398,0xC399,
-0xC39A,0xC39B,0xC39C,0xC39D,0xC39E,0xC39F,0xC3A0,0xC3A1,
-0xC3A2,0xC3A3,0xC3A4,0xC3A5,0xC3A6,0xC3A7,0xC3A8,0xC3A9,
-0xC3AA,0xC3AB,0xC3AC,0xC3AD,0xC3AE,0xC3AF,0xC3B0,0xC3B1,
-0xC3B2,0xC3B3,0xC3B4,0xC3B5,0xC3B6,0xC3B7,0xC3B8,0xC3B9,
-0xC3BA,0xC3BB,0xC3BC,0xC3BD,0xC3BE,0xC3BF,0xC3C1,0xC3C2,
-0xC3C3,0xC3C4,0xC3C5,0xC3C6,0xC3C7,0xC3C8,0xC3C9,0xC3CA,
-0xC3CB,0xC3CC,0xC3CD,0xC3CE,0xC3CF,0xC3D0,0xC3D1,0xC3D2,
-0xC3D3,0xC3D4,0xC3D5,0xC3D6,0xC3D7,0xC3DA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC3DB,0xC3DD,0xC3DE,0xC3E1,0xC3E3,0xC3E4,0xC3E5,0xC3E6,
-0xC3E7,0xC3EA,0xC3EB,0xC3EC,0xC3EE,0xC3EF,0xC3F0,0xC3F1,
-0xC3F2,0xC3F3,0xC3F6,0xC3F7,0xC3F9,0xC3FA,0xC3FB,0xC3FC,
-0xC3FD,0xC3FE, 0, 0, 0, 0, 0, 0,
-0xC3FF,0xC400,0xC401,0xC402,0xC403,0xC404,0xC405,0xC406,
-0xC407,0xC409,0xC40A,0xC40B,0xC40C,0xC40D,0xC40E,0xC40F,
-0xC411,0xC412,0xC413,0xC414,0xC415,0xC416,0xC417,0xC418,
-0xC419,0xC41A, 0, 0, 0, 0, 0, 0,
-0xC41B,0xC41C,0xC41D,0xC41E,0xC41F,0xC420,0xC421,0xC422,
-0xC423,0xC425,0xC426,0xC427,0xC428,0xC429,0xC42A,0xC42B,
-0xC42D,0xC42E,0xC42F,0xC431,0xC432,0xC433,0xC435,0xC436,
-0xC437,0xC438,0xC439,0xC43A,0xC43B,0xC43E,0xC43F,0xC440,
-0xC441,0xC442,0xC443,0xC444,0xC445,0xC446,0xC447,0xC449,
-0xC44A,0xC44B,0xC44C,0xC44D,0xC44E,0xC44F,0xC450,0xC451,
-0xC452,0xC453,0xC454,0xC455,0xC456,0xC457,0xC458,0xC459,
-0xC45A,0xC45B,0xC45C,0xC45D,0xC45E,0xC45F,0xC460,0xC461,
-0xC462,0xC463,0xC466,0xC467,0xC469,0xC46A,0xC46B,0xC46D,
-0xC46E,0xC46F,0xC470,0xC471,0xC472,0xC473,0xC476,0xC477,
-0xC478,0xC47A,0xC47B,0xC47C,0xC47D,0xC47E,0xC47F,0xC481,
-0xC482,0xC483,0xC484,0xC485,0xC486,0xC487,0xC488,0xC489,
-0xC48A,0xC48B,0xC48C,0xC48D,0xC48E,0xC48F,0xC490,0xC491,
-0xC492,0xC493,0xC495,0xC496,0xC497,0xC498,0xC499,0xC49A,
-0xC49B,0xC49D,0xC49E,0xC49F,0xC4A0,0xC4A1,0xC4A2,0xC4A3,
-0xC4A4,0xC4A5,0xC4A6,0xC4A7,0xC4A8,0xC4A9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC4AA,0xC4AB,0xC4AC,0xC4AD,0xC4AE,0xC4AF,0xC4B0,0xC4B1,
-0xC4B2,0xC4B3,0xC4B4,0xC4B5,0xC4B6,0xC4B7,0xC4B9,0xC4BA,
-0xC4BB,0xC4BD,0xC4BE,0xC4BF,0xC4C0,0xC4C1,0xC4C2,0xC4C3,
-0xC4C4,0xC4C5, 0, 0, 0, 0, 0, 0,
-0xC4C6,0xC4C7,0xC4C8,0xC4C9,0xC4CA,0xC4CB,0xC4CC,0xC4CD,
-0xC4CE,0xC4CF,0xC4D0,0xC4D1,0xC4D2,0xC4D3,0xC4D4,0xC4D5,
-0xC4D6,0xC4D7,0xC4D8,0xC4D9,0xC4DA,0xC4DB,0xC4DC,0xC4DD,
-0xC4DE,0xC4DF, 0, 0, 0, 0, 0, 0,
-0xC4E0,0xC4E1,0xC4E2,0xC4E3,0xC4E4,0xC4E5,0xC4E6,0xC4E7,
-0xC4E8,0xC4EA,0xC4EB,0xC4EC,0xC4ED,0xC4EE,0xC4EF,0xC4F2,
-0xC4F3,0xC4F5,0xC4F6,0xC4F7,0xC4F9,0xC4FB,0xC4FC,0xC4FD,
-0xC4FE,0xC502,0xC503,0xC504,0xC505,0xC506,0xC507,0xC508,
-0xC509,0xC50A,0xC50B,0xC50D,0xC50E,0xC50F,0xC511,0xC512,
-0xC513,0xC515,0xC516,0xC517,0xC518,0xC519,0xC51A,0xC51B,
-0xC51D,0xC51E,0xC51F,0xC520,0xC521,0xC522,0xC523,0xC524,
-0xC525,0xC526,0xC527,0xC52A,0xC52B,0xC52D,0xC52E,0xC52F,
-0xC531,0xC532,0xC533,0xC534,0xC535,0xC536,0xC537,0xC53A,
-0xC53C,0xC53E,0xC53F,0xC540,0xC541,0xC542,0xC543,0xC546,
-0xC547,0xC54B,0xC54F,0xC550,0xC551,0xC552,0xC556,0xC55A,
-0xC55B,0xC55C,0xC55F,0xC562,0xC563,0xC565,0xC566,0xC567,
-0xC569,0xC56A,0xC56B,0xC56C,0xC56D,0xC56E,0xC56F,0xC572,
-0xC576,0xC577,0xC578,0xC579,0xC57A,0xC57B,0xC57E,0xC57F,
-0xC581,0xC582,0xC583,0xC585,0xC586,0xC588,0xC589,0xC58A,
-0xC58B,0xC58E,0xC590,0xC592,0xC593,0xC594, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC596,0xC599,0xC59A,0xC59B,0xC59D,0xC59E,0xC59F,0xC5A1,
-0xC5A2,0xC5A3,0xC5A4,0xC5A5,0xC5A6,0xC5A7,0xC5A8,0xC5AA,
-0xC5AB,0xC5AC,0xC5AD,0xC5AE,0xC5AF,0xC5B0,0xC5B1,0xC5B2,
-0xC5B3,0xC5B6, 0, 0, 0, 0, 0, 0,
-0xC5B7,0xC5BA,0xC5BF,0xC5C0,0xC5C1,0xC5C2,0xC5C3,0xC5CB,
-0xC5CD,0xC5CF,0xC5D2,0xC5D3,0xC5D5,0xC5D6,0xC5D7,0xC5D9,
-0xC5DA,0xC5DB,0xC5DC,0xC5DD,0xC5DE,0xC5DF,0xC5E2,0xC5E4,
-0xC5E6,0xC5E7, 0, 0, 0, 0, 0, 0,
-0xC5E8,0xC5E9,0xC5EA,0xC5EB,0xC5EF,0xC5F1,0xC5F2,0xC5F3,
-0xC5F5,0xC5F8,0xC5F9,0xC5FA,0xC5FB,0xC602,0xC603,0xC604,
-0xC609,0xC60A,0xC60B,0xC60D,0xC60E,0xC60F,0xC611,0xC612,
-0xC613,0xC614,0xC615,0xC616,0xC617,0xC61A,0xC61D,0xC61E,
-0xC61F,0xC620,0xC621,0xC622,0xC623,0xC626,0xC627,0xC629,
-0xC62A,0xC62B,0xC62F,0xC631,0xC632,0xC636,0xC638,0xC63A,
-0xC63C,0xC63D,0xC63E,0xC63F,0xC642,0xC643,0xC645,0xC646,
-0xC647,0xC649,0xC64A,0xC64B,0xC64C,0xC64D,0xC64E,0xC64F,
-0xC652,0xC656,0xC657,0xC658,0xC659,0xC65A,0xC65B,0xC65E,
-0xC65F,0xC661,0xC662,0xC663,0xC664,0xC665,0xC666,0xC667,
-0xC668,0xC669,0xC66A,0xC66B,0xC66D,0xC66E,0xC670,0xC672,
-0xC673,0xC674,0xC675,0xC676,0xC677,0xC67A,0xC67B,0xC67D,
-0xC67E,0xC67F,0xC681,0xC682,0xC683,0xC684,0xC685,0xC686,
-0xC687,0xC68A,0xC68C,0xC68E,0xC68F,0xC690,0xC691,0xC692,
-0xC693,0xC696,0xC697,0xC699,0xC69A,0xC69B,0xC69D,0xC69E,
-0xC69F,0xC6A0,0xC6A1,0xC6A2,0xC6A3,0xC6A6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC6A8,0xC6AA,0xC6AB,0xC6AC,0xC6AD,0xC6AE,0xC6AF,0xC6B2,
-0xC6B3,0xC6B5,0xC6B6,0xC6B7,0xC6BB,0xC6BC,0xC6BD,0xC6BE,
-0xC6BF,0xC6C2,0xC6C4,0xC6C6,0xC6C7,0xC6C8,0xC6C9,0xC6CA,
-0xC6CB,0xC6CE, 0, 0, 0, 0, 0, 0,
-0xC6CF,0xC6D1,0xC6D2,0xC6D3,0xC6D5,0xC6D6,0xC6D7,0xC6D8,
-0xC6D9,0xC6DA,0xC6DB,0xC6DE,0xC6DF,0xC6E2,0xC6E3,0xC6E4,
-0xC6E5,0xC6E6,0xC6E7,0xC6EA,0xC6EB,0xC6ED,0xC6EE,0xC6EF,
-0xC6F1,0xC6F2, 0, 0, 0, 0, 0, 0,
-0xC6F3,0xC6F4,0xC6F5,0xC6F6,0xC6F7,0xC6FA,0xC6FB,0xC6FC,
-0xC6FE,0xC6FF,0xC700,0xC701,0xC702,0xC703,0xC706,0xC707,
-0xC709,0xC70A,0xC70B,0xC70D,0xC70E,0xC70F,0xC710,0xC711,
-0xC712,0xC713,0xC716,0xC718,0xC71A,0xC71B,0xC71C,0xC71D,
-0xC71E,0xC71F,0xC722,0xC723,0xC725,0xC726,0xC727,0xC729,
-0xC72A,0xC72B,0xC72C,0xC72D,0xC72E,0xC72F,0xC732,0xC734,
-0xC736,0xC738,0xC739,0xC73A,0xC73B,0xC73E,0xC73F,0xC741,
-0xC742,0xC743,0xC745,0xC746,0xC747,0xC748,0xC749,0xC74B,
-0xC74E,0xC750,0xC759,0xC75A,0xC75B,0xC75D,0xC75E,0xC75F,
-0xC761,0xC762,0xC763,0xC764,0xC765,0xC766,0xC767,0xC769,
-0xC76A,0xC76C,0xC76D,0xC76E,0xC76F,0xC770,0xC771,0xC772,
-0xC773,0xC776,0xC777,0xC779,0xC77A,0xC77B,0xC77F,0xC780,
-0xC781,0xC782,0xC786,0xC78B,0xC78C,0xC78D,0xC78F,0xC792,
-0xC793,0xC795,0xC799,0xC79B,0xC79C,0xC79D,0xC79E,0xC79F,
-0xC7A2,0xC7A7,0xC7A8,0xC7A9,0xC7AA,0xC7AB,0xC7AE,0xC7AF,
-0xC7B1,0xC7B2,0xC7B3,0xC7B5,0xC7B6,0xC7B7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC7B8,0xC7B9,0xC7BA,0xC7BB,0xC7BE,0xC7C2,0xC7C3,0xC7C4,
-0xC7C5,0xC7C6,0xC7C7,0xC7CA,0xC7CB,0xC7CD,0xC7CF,0xC7D1,
-0xC7D2,0xC7D3,0xC7D4,0xC7D5,0xC7D6,0xC7D7,0xC7D9,0xC7DA,
-0xC7DB,0xC7DC, 0, 0, 0, 0, 0, 0,
-0xC7DE,0xC7DF,0xC7E0,0xC7E1,0xC7E2,0xC7E3,0xC7E5,0xC7E6,
-0xC7E7,0xC7E9,0xC7EA,0xC7EB,0xC7ED,0xC7EE,0xC7EF,0xC7F0,
-0xC7F1,0xC7F2,0xC7F3,0xC7F4,0xC7F5,0xC7F6,0xC7F7,0xC7F8,
-0xC7F9,0xC7FA, 0, 0, 0, 0, 0, 0,
-0xC7FB,0xC7FC,0xC7FD,0xC7FE,0xC7FF,0xC802,0xC803,0xC805,
-0xC806,0xC807,0xC809,0xC80B,0xC80C,0xC80D,0xC80E,0xC80F,
-0xC812,0xC814,0xC817,0xC818,0xC819,0xC81A,0xC81B,0xC81E,
-0xC81F,0xC821,0xC822,0xC823,0xC825,0xC826,0xC827,0xC828,
-0xC829,0xC82A,0xC82B,0xC82E,0xC830,0xC832,0xC833,0xC834,
-0xC835,0xC836,0xC837,0xC839,0xC83A,0xC83B,0xC83D,0xC83E,
-0xC83F,0xC841,0xC842,0xC843,0xC844,0xC845,0xC846,0xC847,
-0xC84A,0xC84B,0xC84E,0xC84F,0xC850,0xC851,0xC852,0xC853,
-0xC855,0xC856,0xC857,0xC858,0xC859,0xC85A,0xC85B,0xC85C,
-0xC85D,0xC85E,0xC85F,0xC860,0xC861,0xC862,0xC863,0xC864,
-0xC865,0xC866,0xC867,0xC868,0xC869,0xC86A,0xC86B,0xC86C,
-0xC86D,0xC86E,0xC86F,0xC872,0xC873,0xC875,0xC876,0xC877,
-0xC879,0xC87B,0xC87C,0xC87D,0xC87E,0xC87F,0xC882,0xC884,
-0xC888,0xC889,0xC88A,0xC88E,0xC88F,0xC890,0xC891,0xC892,
-0xC893,0xC895,0xC896,0xC897,0xC898,0xC899,0xC89A,0xC89B,
-0xC89C,0xC89E,0xC8A0,0xC8A2,0xC8A3,0xC8A4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC8A5,0xC8A6,0xC8A7,0xC8A9,0xC8AA,0xC8AB,0xC8AC,0xC8AD,
-0xC8AE,0xC8AF,0xC8B0,0xC8B1,0xC8B2,0xC8B3,0xC8B4,0xC8B5,
-0xC8B6,0xC8B7,0xC8B8,0xC8B9,0xC8BA,0xC8BB,0xC8BE,0xC8BF,
-0xC8C0,0xC8C1, 0, 0, 0, 0, 0, 0,
-0xC8C2,0xC8C3,0xC8C5,0xC8C6,0xC8C7,0xC8C9,0xC8CA,0xC8CB,
-0xC8CD,0xC8CE,0xC8CF,0xC8D0,0xC8D1,0xC8D2,0xC8D3,0xC8D6,
-0xC8D8,0xC8DA,0xC8DB,0xC8DC,0xC8DD,0xC8DE,0xC8DF,0xC8E2,
-0xC8E3,0xC8E5, 0, 0, 0, 0, 0, 0,
-0xC8E6,0xC8E7,0xC8E8,0xC8E9,0xC8EA,0xC8EB,0xC8EC,0xC8ED,
-0xC8EE,0xC8EF,0xC8F0,0xC8F1,0xC8F2,0xC8F3,0xC8F4,0xC8F6,
-0xC8F7,0xC8F8,0xC8F9,0xC8FA,0xC8FB,0xC8FE,0xC8FF,0xC901,
-0xC902,0xC903,0xC907,0xC908,0xC909,0xC90A,0xC90B,0xC90E,
-0x3000,0x3001,0x3002,0x00B7,0x2025,0x2026,0x00A8,0x3003,
-0x00AD,0x2015,0x2225,0xFF3C,0x223C,0x2018,0x2019,0x201C,
-0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C,
-0x300D,0x300E,0x300F,0x3010,0x3011,0x00B1,0x00D7,0x00F7,
-0x2260,0x2264,0x2265,0x221E,0x2234,0x00B0,0x2032,0x2033,
-0x2103,0x212B,0xFFE0,0xFFE1,0xFFE5,0x2642,0x2640,0x2220,
-0x22A5,0x2312,0x2202,0x2207,0x2261,0x2252,0x00A7,0x203B,
-0x2606,0x2605,0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,
-0x25A0,0x25B3,0x25B2,0x25BD,0x25BC,0x2192,0x2190,0x2191,
-0x2193,0x2194,0x3013,0x226A,0x226B,0x221A,0x223D,0x221D,
-0x2235,0x222B,0x222C,0x2208,0x220B,0x2286,0x2287,0x2282,
-0x2283,0x222A,0x2229,0x2227,0x2228,0xFFE2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC910,0xC912,0xC913,0xC914,0xC915,0xC916,0xC917,0xC919,
-0xC91A,0xC91B,0xC91C,0xC91D,0xC91E,0xC91F,0xC920,0xC921,
-0xC922,0xC923,0xC924,0xC925,0xC926,0xC927,0xC928,0xC929,
-0xC92A,0xC92B, 0, 0, 0, 0, 0, 0,
-0xC92D,0xC92E,0xC92F,0xC930,0xC931,0xC932,0xC933,0xC935,
-0xC936,0xC937,0xC938,0xC939,0xC93A,0xC93B,0xC93C,0xC93D,
-0xC93E,0xC93F,0xC940,0xC941,0xC942,0xC943,0xC944,0xC945,
-0xC946,0xC947, 0, 0, 0, 0, 0, 0,
-0xC948,0xC949,0xC94A,0xC94B,0xC94C,0xC94D,0xC94E,0xC94F,
-0xC952,0xC953,0xC955,0xC956,0xC957,0xC959,0xC95A,0xC95B,
-0xC95C,0xC95D,0xC95E,0xC95F,0xC962,0xC964,0xC965,0xC966,
-0xC967,0xC968,0xC969,0xC96A,0xC96B,0xC96D,0xC96E,0xC96F,
-0x21D2,0x21D4,0x2200,0x2203,0x00B4,0xFF5E,0x02C7,0x02D8,
-0x02DD,0x02DA,0x02D9,0x00B8,0x02DB,0x00A1,0x00BF,0x02D0,
-0x222E,0x2211,0x220F,0x00A4,0x2109,0x2030,0x25C1,0x25C0,
-0x25B7,0x25B6,0x2664,0x2660,0x2661,0x2665,0x2667,0x2663,
-0x2299,0x25C8,0x25A3,0x25D0,0x25D1,0x2592,0x25A4,0x25A5,
-0x25A8,0x25A7,0x25A6,0x25A9,0x2668,0x260F,0x260E,0x261C,
-0x261E,0x00B6,0x2020,0x2021,0x2195,0x2197,0x2199,0x2196,
-0x2198,0x266D,0x2669,0x266A,0x266C,0x327F,0x321C,0x2116,
-0x33C7,0x2122,0x33C2,0x33D8,0x2121,0x20AC,0x00AE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC971,0xC972,0xC973,0xC975,0xC976,0xC977,0xC978,0xC979,
-0xC97A,0xC97B,0xC97D,0xC97E,0xC97F,0xC980,0xC981,0xC982,
-0xC983,0xC984,0xC985,0xC986,0xC987,0xC98A,0xC98B,0xC98D,
-0xC98E,0xC98F, 0, 0, 0, 0, 0, 0,
-0xC991,0xC992,0xC993,0xC994,0xC995,0xC996,0xC997,0xC99A,
-0xC99C,0xC99E,0xC99F,0xC9A0,0xC9A1,0xC9A2,0xC9A3,0xC9A4,
-0xC9A5,0xC9A6,0xC9A7,0xC9A8,0xC9A9,0xC9AA,0xC9AB,0xC9AC,
-0xC9AD,0xC9AE, 0, 0, 0, 0, 0, 0,
-0xC9AF,0xC9B0,0xC9B1,0xC9B2,0xC9B3,0xC9B4,0xC9B5,0xC9B6,
-0xC9B7,0xC9B8,0xC9B9,0xC9BA,0xC9BB,0xC9BC,0xC9BD,0xC9BE,
-0xC9BF,0xC9C2,0xC9C3,0xC9C5,0xC9C6,0xC9C9,0xC9CB,0xC9CC,
-0xC9CD,0xC9CE,0xC9CF,0xC9D2,0xC9D4,0xC9D7,0xC9D8,0xC9DB,
-0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06,0xFF07,0xFF08,
-0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,0xFF10,
-0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18,
-0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,0xFF20,
-0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,
-0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,
-0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,
-0xFF39,0xFF3A,0xFF3B,0xFFE6,0xFF3D,0xFF3E,0xFF3F,0xFF40,
-0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48,
-0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50,
-0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58,
-0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xC9DE,0xC9DF,0xC9E1,0xC9E3,0xC9E5,0xC9E6,0xC9E8,0xC9E9,
-0xC9EA,0xC9EB,0xC9EE,0xC9F2,0xC9F3,0xC9F4,0xC9F5,0xC9F6,
-0xC9F7,0xC9FA,0xC9FB,0xC9FD,0xC9FE,0xC9FF,0xCA01,0xCA02,
-0xCA03,0xCA04, 0, 0, 0, 0, 0, 0,
-0xCA05,0xCA06,0xCA07,0xCA0A,0xCA0E,0xCA0F,0xCA10,0xCA11,
-0xCA12,0xCA13,0xCA15,0xCA16,0xCA17,0xCA19,0xCA1A,0xCA1B,
-0xCA1C,0xCA1D,0xCA1E,0xCA1F,0xCA20,0xCA21,0xCA22,0xCA23,
-0xCA24,0xCA25, 0, 0, 0, 0, 0, 0,
-0xCA26,0xCA27,0xCA28,0xCA2A,0xCA2B,0xCA2C,0xCA2D,0xCA2E,
-0xCA2F,0xCA30,0xCA31,0xCA32,0xCA33,0xCA34,0xCA35,0xCA36,
-0xCA37,0xCA38,0xCA39,0xCA3A,0xCA3B,0xCA3C,0xCA3D,0xCA3E,
-0xCA3F,0xCA40,0xCA41,0xCA42,0xCA43,0xCA44,0xCA45,0xCA46,
-0x3131,0x3132,0x3133,0x3134,0x3135,0x3136,0x3137,0x3138,
-0x3139,0x313A,0x313B,0x313C,0x313D,0x313E,0x313F,0x3140,
-0x3141,0x3142,0x3143,0x3144,0x3145,0x3146,0x3147,0x3148,
-0x3149,0x314A,0x314B,0x314C,0x314D,0x314E,0x314F,0x3150,
-0x3151,0x3152,0x3153,0x3154,0x3155,0x3156,0x3157,0x3158,
-0x3159,0x315A,0x315B,0x315C,0x315D,0x315E,0x315F,0x3160,
-0x3161,0x3162,0x3163,0x3164,0x3165,0x3166,0x3167,0x3168,
-0x3169,0x316A,0x316B,0x316C,0x316D,0x316E,0x316F,0x3170,
-0x3171,0x3172,0x3173,0x3174,0x3175,0x3176,0x3177,0x3178,
-0x3179,0x317A,0x317B,0x317C,0x317D,0x317E,0x317F,0x3180,
-0x3181,0x3182,0x3183,0x3184,0x3185,0x3186,0x3187,0x3188,
-0x3189,0x318A,0x318B,0x318C,0x318D,0x318E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCA47,0xCA48,0xCA49,0xCA4A,0xCA4B,0xCA4E,0xCA4F,0xCA51,
-0xCA52,0xCA53,0xCA55,0xCA56,0xCA57,0xCA58,0xCA59,0xCA5A,
-0xCA5B,0xCA5E,0xCA62,0xCA63,0xCA64,0xCA65,0xCA66,0xCA67,
-0xCA69,0xCA6A, 0, 0, 0, 0, 0, 0,
-0xCA6B,0xCA6C,0xCA6D,0xCA6E,0xCA6F,0xCA70,0xCA71,0xCA72,
-0xCA73,0xCA74,0xCA75,0xCA76,0xCA77,0xCA78,0xCA79,0xCA7A,
-0xCA7B,0xCA7C,0xCA7E,0xCA7F,0xCA80,0xCA81,0xCA82,0xCA83,
-0xCA85,0xCA86, 0, 0, 0, 0, 0, 0,
-0xCA87,0xCA88,0xCA89,0xCA8A,0xCA8B,0xCA8C,0xCA8D,0xCA8E,
-0xCA8F,0xCA90,0xCA91,0xCA92,0xCA93,0xCA94,0xCA95,0xCA96,
-0xCA97,0xCA99,0xCA9A,0xCA9B,0xCA9C,0xCA9D,0xCA9E,0xCA9F,
-0xCAA0,0xCAA1,0xCAA2,0xCAA3,0xCAA4,0xCAA5,0xCAA6,0xCAA7,
-0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,
-0x2178,0x2179, 0, 0, 0, 0, 0,0x2160,
-0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,
-0x2169, 0, 0, 0, 0, 0, 0, 0,
-0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,
-0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,
-0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,
-0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,
-0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCAA8,0xCAA9,0xCAAA,0xCAAB,0xCAAC,0xCAAD,0xCAAE,0xCAAF,
-0xCAB0,0xCAB1,0xCAB2,0xCAB3,0xCAB4,0xCAB5,0xCAB6,0xCAB7,
-0xCAB8,0xCAB9,0xCABA,0xCABB,0xCABE,0xCABF,0xCAC1,0xCAC2,
-0xCAC3,0xCAC5, 0, 0, 0, 0, 0, 0,
-0xCAC6,0xCAC7,0xCAC8,0xCAC9,0xCACA,0xCACB,0xCACE,0xCAD0,
-0xCAD2,0xCAD4,0xCAD5,0xCAD6,0xCAD7,0xCADA,0xCADB,0xCADC,
-0xCADD,0xCADE,0xCADF,0xCAE1,0xCAE2,0xCAE3,0xCAE4,0xCAE5,
-0xCAE6,0xCAE7, 0, 0, 0, 0, 0, 0,
-0xCAE8,0xCAE9,0xCAEA,0xCAEB,0xCAED,0xCAEE,0xCAEF,0xCAF0,
-0xCAF1,0xCAF2,0xCAF3,0xCAF5,0xCAF6,0xCAF7,0xCAF8,0xCAF9,
-0xCAFA,0xCAFB,0xCAFC,0xCAFD,0xCAFE,0xCAFF,0xCB00,0xCB01,
-0xCB02,0xCB03,0xCB04,0xCB05,0xCB06,0xCB07,0xCB09,0xCB0A,
-0x2500,0x2502,0x250C,0x2510,0x2518,0x2514,0x251C,0x252C,
-0x2524,0x2534,0x253C,0x2501,0x2503,0x250F,0x2513,0x251B,
-0x2517,0x2523,0x2533,0x252B,0x253B,0x254B,0x2520,0x252F,
-0x2528,0x2537,0x253F,0x251D,0x2530,0x2525,0x2538,0x2542,
-0x2512,0x2511,0x251A,0x2519,0x2516,0x2515,0x250E,0x250D,
-0x251E,0x251F,0x2521,0x2522,0x2526,0x2527,0x2529,0x252A,
-0x252D,0x252E,0x2531,0x2532,0x2535,0x2536,0x2539,0x253A,
-0x253D,0x253E,0x2540,0x2541,0x2543,0x2544,0x2545,0x2546,
-0x2547,0x2548,0x2549,0x254A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCB0B,0xCB0C,0xCB0D,0xCB0E,0xCB0F,0xCB11,0xCB12,0xCB13,
-0xCB15,0xCB16,0xCB17,0xCB19,0xCB1A,0xCB1B,0xCB1C,0xCB1D,
-0xCB1E,0xCB1F,0xCB22,0xCB23,0xCB24,0xCB25,0xCB26,0xCB27,
-0xCB28,0xCB29, 0, 0, 0, 0, 0, 0,
-0xCB2A,0xCB2B,0xCB2C,0xCB2D,0xCB2E,0xCB2F,0xCB30,0xCB31,
-0xCB32,0xCB33,0xCB34,0xCB35,0xCB36,0xCB37,0xCB38,0xCB39,
-0xCB3A,0xCB3B,0xCB3C,0xCB3D,0xCB3E,0xCB3F,0xCB40,0xCB42,
-0xCB43,0xCB44, 0, 0, 0, 0, 0, 0,
-0xCB45,0xCB46,0xCB47,0xCB4A,0xCB4B,0xCB4D,0xCB4E,0xCB4F,
-0xCB51,0xCB52,0xCB53,0xCB54,0xCB55,0xCB56,0xCB57,0xCB5A,
-0xCB5B,0xCB5C,0xCB5E,0xCB5F,0xCB60,0xCB61,0xCB62,0xCB63,
-0xCB65,0xCB66,0xCB67,0xCB68,0xCB69,0xCB6A,0xCB6B,0xCB6C,
-0x3395,0x3396,0x3397,0x2113,0x3398,0x33C4,0x33A3,0x33A4,
-0x33A5,0x33A6,0x3399,0x339A,0x339B,0x339C,0x339D,0x339E,
-0x339F,0x33A0,0x33A1,0x33A2,0x33CA,0x338D,0x338E,0x338F,
-0x33CF,0x3388,0x3389,0x33C8,0x33A7,0x33A8,0x33B0,0x33B1,
-0x33B2,0x33B3,0x33B4,0x33B5,0x33B6,0x33B7,0x33B8,0x33B9,
-0x3380,0x3381,0x3382,0x3383,0x3384,0x33BA,0x33BB,0x33BC,
-0x33BD,0x33BE,0x33BF,0x3390,0x3391,0x3392,0x3393,0x3394,
-0x2126,0x33C0,0x33C1,0x338A,0x338B,0x338C,0x33D6,0x33C5,
-0x33AD,0x33AE,0x33AF,0x33DB,0x33A9,0x33AA,0x33AB,0x33AC,
-0x33DD,0x33D0,0x33D3,0x33C3,0x33C9,0x33DC,0x33C6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCB6D,0xCB6E,0xCB6F,0xCB70,0xCB71,0xCB72,0xCB73,0xCB74,
-0xCB75,0xCB76,0xCB77,0xCB7A,0xCB7B,0xCB7C,0xCB7D,0xCB7E,
-0xCB7F,0xCB80,0xCB81,0xCB82,0xCB83,0xCB84,0xCB85,0xCB86,
-0xCB87,0xCB88, 0, 0, 0, 0, 0, 0,
-0xCB89,0xCB8A,0xCB8B,0xCB8C,0xCB8D,0xCB8E,0xCB8F,0xCB90,
-0xCB91,0xCB92,0xCB93,0xCB94,0xCB95,0xCB96,0xCB97,0xCB98,
-0xCB99,0xCB9A,0xCB9B,0xCB9D,0xCB9E,0xCB9F,0xCBA0,0xCBA1,
-0xCBA2,0xCBA3, 0, 0, 0, 0, 0, 0,
-0xCBA4,0xCBA5,0xCBA6,0xCBA7,0xCBA8,0xCBA9,0xCBAA,0xCBAB,
-0xCBAC,0xCBAD,0xCBAE,0xCBAF,0xCBB0,0xCBB1,0xCBB2,0xCBB3,
-0xCBB4,0xCBB5,0xCBB6,0xCBB7,0xCBB9,0xCBBA,0xCBBB,0xCBBC,
-0xCBBD,0xCBBE,0xCBBF,0xCBC0,0xCBC1,0xCBC2,0xCBC3,0xCBC4,
-0x00C6,0x00D0,0x00AA,0x0126, 0,0x0132, 0,0x013F,
-0x0141,0x00D8,0x0152,0x00BA,0x00DE,0x0166,0x014A, 0,
-0x3260,0x3261,0x3262,0x3263,0x3264,0x3265,0x3266,0x3267,
-0x3268,0x3269,0x326A,0x326B,0x326C,0x326D,0x326E,0x326F,
-0x3270,0x3271,0x3272,0x3273,0x3274,0x3275,0x3276,0x3277,
-0x3278,0x3279,0x327A,0x327B,0x24D0,0x24D1,0x24D2,0x24D3,
-0x24D4,0x24D5,0x24D6,0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,
-0x24DC,0x24DD,0x24DE,0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,
-0x24E4,0x24E5,0x24E6,0x24E7,0x24E8,0x24E9,0x2460,0x2461,
-0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,
-0x246A,0x246B,0x246C,0x246D,0x246E,0x00BD,0x2153,0x2154,
-0x00BC,0x00BE,0x215B,0x215C,0x215D,0x215E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCBC5,0xCBC6,0xCBC7,0xCBC8,0xCBC9,0xCBCA,0xCBCB,0xCBCC,
-0xCBCD,0xCBCE,0xCBCF,0xCBD0,0xCBD1,0xCBD2,0xCBD3,0xCBD5,
-0xCBD6,0xCBD7,0xCBD8,0xCBD9,0xCBDA,0xCBDB,0xCBDC,0xCBDD,
-0xCBDE,0xCBDF, 0, 0, 0, 0, 0, 0,
-0xCBE0,0xCBE1,0xCBE2,0xCBE3,0xCBE5,0xCBE6,0xCBE8,0xCBEA,
-0xCBEB,0xCBEC,0xCBED,0xCBEE,0xCBEF,0xCBF0,0xCBF1,0xCBF2,
-0xCBF3,0xCBF4,0xCBF5,0xCBF6,0xCBF7,0xCBF8,0xCBF9,0xCBFA,
-0xCBFB,0xCBFC, 0, 0, 0, 0, 0, 0,
-0xCBFD,0xCBFE,0xCBFF,0xCC00,0xCC01,0xCC02,0xCC03,0xCC04,
-0xCC05,0xCC06,0xCC07,0xCC08,0xCC09,0xCC0A,0xCC0B,0xCC0E,
-0xCC0F,0xCC11,0xCC12,0xCC13,0xCC15,0xCC16,0xCC17,0xCC18,
-0xCC19,0xCC1A,0xCC1B,0xCC1E,0xCC1F,0xCC20,0xCC23,0xCC24,
-0x00E6,0x0111,0x00F0,0x0127,0x0131,0x0133,0x0138,0x0140,
-0x0142,0x00F8,0x0153,0x00DF,0x00FE,0x0167,0x014B,0x0149,
-0x3200,0x3201,0x3202,0x3203,0x3204,0x3205,0x3206,0x3207,
-0x3208,0x3209,0x320A,0x320B,0x320C,0x320D,0x320E,0x320F,
-0x3210,0x3211,0x3212,0x3213,0x3214,0x3215,0x3216,0x3217,
-0x3218,0x3219,0x321A,0x321B,0x249C,0x249D,0x249E,0x249F,
-0x24A0,0x24A1,0x24A2,0x24A3,0x24A4,0x24A5,0x24A6,0x24A7,
-0x24A8,0x24A9,0x24AA,0x24AB,0x24AC,0x24AD,0x24AE,0x24AF,
-0x24B0,0x24B1,0x24B2,0x24B3,0x24B4,0x24B5,0x2474,0x2475,
-0x2476,0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,
-0x247E,0x247F,0x2480,0x2481,0x2482,0x00B9,0x00B2,0x00B3,
-0x2074,0x207F,0x2081,0x2082,0x2083,0x2084, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCC25,0xCC26,0xCC2A,0xCC2B,0xCC2D,0xCC2F,0xCC31,0xCC32,
-0xCC33,0xCC34,0xCC35,0xCC36,0xCC37,0xCC3A,0xCC3F,0xCC40,
-0xCC41,0xCC42,0xCC43,0xCC46,0xCC47,0xCC49,0xCC4A,0xCC4B,
-0xCC4D,0xCC4E, 0, 0, 0, 0, 0, 0,
-0xCC4F,0xCC50,0xCC51,0xCC52,0xCC53,0xCC56,0xCC5A,0xCC5B,
-0xCC5C,0xCC5D,0xCC5E,0xCC5F,0xCC61,0xCC62,0xCC63,0xCC65,
-0xCC67,0xCC69,0xCC6A,0xCC6B,0xCC6C,0xCC6D,0xCC6E,0xCC6F,
-0xCC71,0xCC72, 0, 0, 0, 0, 0, 0,
-0xCC73,0xCC74,0xCC76,0xCC77,0xCC78,0xCC79,0xCC7A,0xCC7B,
-0xCC7C,0xCC7D,0xCC7E,0xCC7F,0xCC80,0xCC81,0xCC82,0xCC83,
-0xCC84,0xCC85,0xCC86,0xCC87,0xCC88,0xCC89,0xCC8A,0xCC8B,
-0xCC8C,0xCC8D,0xCC8E,0xCC8F,0xCC90,0xCC91,0xCC92,0xCC93,
-0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048,
-0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050,
-0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058,
-0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060,
-0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068,
-0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070,
-0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078,
-0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080,
-0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088,
-0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090,
-0x3091,0x3092,0x3093, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCC94,0xCC95,0xCC96,0xCC97,0xCC9A,0xCC9B,0xCC9D,0xCC9E,
-0xCC9F,0xCCA1,0xCCA2,0xCCA3,0xCCA4,0xCCA5,0xCCA6,0xCCA7,
-0xCCAA,0xCCAE,0xCCAF,0xCCB0,0xCCB1,0xCCB2,0xCCB3,0xCCB6,
-0xCCB7,0xCCB9, 0, 0, 0, 0, 0, 0,
-0xCCBA,0xCCBB,0xCCBD,0xCCBE,0xCCBF,0xCCC0,0xCCC1,0xCCC2,
-0xCCC3,0xCCC6,0xCCC8,0xCCCA,0xCCCB,0xCCCC,0xCCCD,0xCCCE,
-0xCCCF,0xCCD1,0xCCD2,0xCCD3,0xCCD5,0xCCD6,0xCCD7,0xCCD8,
-0xCCD9,0xCCDA, 0, 0, 0, 0, 0, 0,
-0xCCDB,0xCCDC,0xCCDD,0xCCDE,0xCCDF,0xCCE0,0xCCE1,0xCCE2,
-0xCCE3,0xCCE5,0xCCE6,0xCCE7,0xCCE8,0xCCE9,0xCCEA,0xCCEB,
-0xCCED,0xCCEE,0xCCEF,0xCCF1,0xCCF2,0xCCF3,0xCCF4,0xCCF5,
-0xCCF6,0xCCF7,0xCCF8,0xCCF9,0xCCFA,0xCCFB,0xCCFC,0xCCFD,
-0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8,
-0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0,
-0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8,
-0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,
-0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,
-0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0,
-0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8,
-0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0,
-0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8,
-0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0,
-0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCCFE,0xCCFF,0xCD00,0xCD02,0xCD03,0xCD04,0xCD05,0xCD06,
-0xCD07,0xCD0A,0xCD0B,0xCD0D,0xCD0E,0xCD0F,0xCD11,0xCD12,
-0xCD13,0xCD14,0xCD15,0xCD16,0xCD17,0xCD1A,0xCD1C,0xCD1E,
-0xCD1F,0xCD20, 0, 0, 0, 0, 0, 0,
-0xCD21,0xCD22,0xCD23,0xCD25,0xCD26,0xCD27,0xCD29,0xCD2A,
-0xCD2B,0xCD2D,0xCD2E,0xCD2F,0xCD30,0xCD31,0xCD32,0xCD33,
-0xCD34,0xCD35,0xCD36,0xCD37,0xCD38,0xCD3A,0xCD3B,0xCD3C,
-0xCD3D,0xCD3E, 0, 0, 0, 0, 0, 0,
-0xCD3F,0xCD40,0xCD41,0xCD42,0xCD43,0xCD44,0xCD45,0xCD46,
-0xCD47,0xCD48,0xCD49,0xCD4A,0xCD4B,0xCD4C,0xCD4D,0xCD4E,
-0xCD4F,0xCD50,0xCD51,0xCD52,0xCD53,0xCD54,0xCD55,0xCD56,
-0xCD57,0xCD58,0xCD59,0xCD5A,0xCD5B,0xCD5D,0xCD5E,0xCD5F,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416,
-0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,
-0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,
-0x042F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436,
-0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,
-0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,
-0x044F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCD61,0xCD62,0xCD63,0xCD65,0xCD66,0xCD67,0xCD68,0xCD69,
-0xCD6A,0xCD6B,0xCD6E,0xCD70,0xCD72,0xCD73,0xCD74,0xCD75,
-0xCD76,0xCD77,0xCD79,0xCD7A,0xCD7B,0xCD7C,0xCD7D,0xCD7E,
-0xCD7F,0xCD80, 0, 0, 0, 0, 0, 0,
-0xCD81,0xCD82,0xCD83,0xCD84,0xCD85,0xCD86,0xCD87,0xCD89,
-0xCD8A,0xCD8B,0xCD8C,0xCD8D,0xCD8E,0xCD8F,0xCD90,0xCD91,
-0xCD92,0xCD93,0xCD96,0xCD97,0xCD99,0xCD9A,0xCD9B,0xCD9D,
-0xCD9E,0xCD9F, 0, 0, 0, 0, 0, 0,
-0xCDA0,0xCDA1,0xCDA2,0xCDA3,0xCDA6,0xCDA8,0xCDAA,0xCDAB,
-0xCDAC,0xCDAD,0xCDAE,0xCDAF,0xCDB1,0xCDB2,0xCDB3,0xCDB4,
-0xCDB5,0xCDB6,0xCDB7,0xCDB8,0xCDB9,0xCDBA,0xCDBB,0xCDBC,
-0xCDBD,0xCDBE,0xCDBF,0xCDC0,0xCDC1,0xCDC2,0xCDC3,0xCDC5,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCDC6,0xCDC7,0xCDC8,0xCDC9,0xCDCA,0xCDCB,0xCDCD,0xCDCE,
-0xCDCF,0xCDD1,0xCDD2,0xCDD3,0xCDD4,0xCDD5,0xCDD6,0xCDD7,
-0xCDD8,0xCDD9,0xCDDA,0xCDDB,0xCDDC,0xCDDD,0xCDDE,0xCDDF,
-0xCDE0,0xCDE1, 0, 0, 0, 0, 0, 0,
-0xCDE2,0xCDE3,0xCDE4,0xCDE5,0xCDE6,0xCDE7,0xCDE9,0xCDEA,
-0xCDEB,0xCDED,0xCDEE,0xCDEF,0xCDF1,0xCDF2,0xCDF3,0xCDF4,
-0xCDF5,0xCDF6,0xCDF7,0xCDFA,0xCDFC,0xCDFE,0xCDFF,0xCE00,
-0xCE01,0xCE02, 0, 0, 0, 0, 0, 0,
-0xCE03,0xCE05,0xCE06,0xCE07,0xCE09,0xCE0A,0xCE0B,0xCE0D,
-0xCE0E,0xCE0F,0xCE10,0xCE11,0xCE12,0xCE13,0xCE15,0xCE16,
-0xCE17,0xCE18,0xCE1A,0xCE1B,0xCE1C,0xCE1D,0xCE1E,0xCE1F,
-0xCE22,0xCE23,0xCE25,0xCE26,0xCE27,0xCE29,0xCE2A,0xCE2B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCE2C,0xCE2D,0xCE2E,0xCE2F,0xCE32,0xCE34,0xCE36,0xCE37,
-0xCE38,0xCE39,0xCE3A,0xCE3B,0xCE3C,0xCE3D,0xCE3E,0xCE3F,
-0xCE40,0xCE41,0xCE42,0xCE43,0xCE44,0xCE45,0xCE46,0xCE47,
-0xCE48,0xCE49, 0, 0, 0, 0, 0, 0,
-0xCE4A,0xCE4B,0xCE4C,0xCE4D,0xCE4E,0xCE4F,0xCE50,0xCE51,
-0xCE52,0xCE53,0xCE54,0xCE55,0xCE56,0xCE57,0xCE5A,0xCE5B,
-0xCE5D,0xCE5E,0xCE62,0xCE63,0xCE64,0xCE65,0xCE66,0xCE67,
-0xCE6A,0xCE6C, 0, 0, 0, 0, 0, 0,
-0xCE6E,0xCE6F,0xCE70,0xCE71,0xCE72,0xCE73,0xCE76,0xCE77,
-0xCE79,0xCE7A,0xCE7B,0xCE7D,0xCE7E,0xCE7F,0xCE80,0xCE81,
-0xCE82,0xCE83,0xCE86,0xCE88,0xCE8A,0xCE8B,0xCE8C,0xCE8D,
-0xCE8E,0xCE8F,0xCE92,0xCE93,0xCE95,0xCE96,0xCE97,0xCE99,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCE9A,0xCE9B,0xCE9C,0xCE9D,0xCE9E,0xCE9F,0xCEA2,0xCEA6,
-0xCEA7,0xCEA8,0xCEA9,0xCEAA,0xCEAB,0xCEAE,0xCEAF,0xCEB0,
-0xCEB1,0xCEB2,0xCEB3,0xCEB4,0xCEB5,0xCEB6,0xCEB7,0xCEB8,
-0xCEB9,0xCEBA, 0, 0, 0, 0, 0, 0,
-0xCEBB,0xCEBC,0xCEBD,0xCEBE,0xCEBF,0xCEC0,0xCEC2,0xCEC3,
-0xCEC4,0xCEC5,0xCEC6,0xCEC7,0xCEC8,0xCEC9,0xCECA,0xCECB,
-0xCECC,0xCECD,0xCECE,0xCECF,0xCED0,0xCED1,0xCED2,0xCED3,
-0xCED4,0xCED5, 0, 0, 0, 0, 0, 0,
-0xCED6,0xCED7,0xCED8,0xCED9,0xCEDA,0xCEDB,0xCEDC,0xCEDD,
-0xCEDE,0xCEDF,0xCEE0,0xCEE1,0xCEE2,0xCEE3,0xCEE6,0xCEE7,
-0xCEE9,0xCEEA,0xCEED,0xCEEE,0xCEEF,0xCEF0,0xCEF1,0xCEF2,
-0xCEF3,0xCEF6,0xCEFA,0xCEFB,0xCEFC,0xCEFD,0xCEFE,0xCEFF,
-0xAC00,0xAC01,0xAC04,0xAC07,0xAC08,0xAC09,0xAC0A,0xAC10,
-0xAC11,0xAC12,0xAC13,0xAC14,0xAC15,0xAC16,0xAC17,0xAC19,
-0xAC1A,0xAC1B,0xAC1C,0xAC1D,0xAC20,0xAC24,0xAC2C,0xAC2D,
-0xAC2F,0xAC30,0xAC31,0xAC38,0xAC39,0xAC3C,0xAC40,0xAC4B,
-0xAC4D,0xAC54,0xAC58,0xAC5C,0xAC70,0xAC71,0xAC74,0xAC77,
-0xAC78,0xAC7A,0xAC80,0xAC81,0xAC83,0xAC84,0xAC85,0xAC86,
-0xAC89,0xAC8A,0xAC8B,0xAC8C,0xAC90,0xAC94,0xAC9C,0xAC9D,
-0xAC9F,0xACA0,0xACA1,0xACA8,0xACA9,0xACAA,0xACAC,0xACAF,
-0xACB0,0xACB8,0xACB9,0xACBB,0xACBC,0xACBD,0xACC1,0xACC4,
-0xACC8,0xACCC,0xACD5,0xACD7,0xACE0,0xACE1,0xACE4,0xACE7,
-0xACE8,0xACEA,0xACEC,0xACEF,0xACF0,0xACF1,0xACF3,0xACF5,
-0xACF6,0xACFC,0xACFD,0xAD00,0xAD04,0xAD06, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCF02,0xCF03,0xCF05,0xCF06,0xCF07,0xCF09,0xCF0A,0xCF0B,
-0xCF0C,0xCF0D,0xCF0E,0xCF0F,0xCF12,0xCF14,0xCF16,0xCF17,
-0xCF18,0xCF19,0xCF1A,0xCF1B,0xCF1D,0xCF1E,0xCF1F,0xCF21,
-0xCF22,0xCF23, 0, 0, 0, 0, 0, 0,
-0xCF25,0xCF26,0xCF27,0xCF28,0xCF29,0xCF2A,0xCF2B,0xCF2E,
-0xCF32,0xCF33,0xCF34,0xCF35,0xCF36,0xCF37,0xCF39,0xCF3A,
-0xCF3B,0xCF3C,0xCF3D,0xCF3E,0xCF3F,0xCF40,0xCF41,0xCF42,
-0xCF43,0xCF44, 0, 0, 0, 0, 0, 0,
-0xCF45,0xCF46,0xCF47,0xCF48,0xCF49,0xCF4A,0xCF4B,0xCF4C,
-0xCF4D,0xCF4E,0xCF4F,0xCF50,0xCF51,0xCF52,0xCF53,0xCF56,
-0xCF57,0xCF59,0xCF5A,0xCF5B,0xCF5D,0xCF5E,0xCF5F,0xCF60,
-0xCF61,0xCF62,0xCF63,0xCF66,0xCF68,0xCF6A,0xCF6B,0xCF6C,
-0xAD0C,0xAD0D,0xAD0F,0xAD11,0xAD18,0xAD1C,0xAD20,0xAD29,
-0xAD2C,0xAD2D,0xAD34,0xAD35,0xAD38,0xAD3C,0xAD44,0xAD45,
-0xAD47,0xAD49,0xAD50,0xAD54,0xAD58,0xAD61,0xAD63,0xAD6C,
-0xAD6D,0xAD70,0xAD73,0xAD74,0xAD75,0xAD76,0xAD7B,0xAD7C,
-0xAD7D,0xAD7F,0xAD81,0xAD82,0xAD88,0xAD89,0xAD8C,0xAD90,
-0xAD9C,0xAD9D,0xADA4,0xADB7,0xADC0,0xADC1,0xADC4,0xADC8,
-0xADD0,0xADD1,0xADD3,0xADDC,0xADE0,0xADE4,0xADF8,0xADF9,
-0xADFC,0xADFF,0xAE00,0xAE01,0xAE08,0xAE09,0xAE0B,0xAE0D,
-0xAE14,0xAE30,0xAE31,0xAE34,0xAE37,0xAE38,0xAE3A,0xAE40,
-0xAE41,0xAE43,0xAE45,0xAE46,0xAE4A,0xAE4C,0xAE4D,0xAE4E,
-0xAE50,0xAE54,0xAE56,0xAE5C,0xAE5D,0xAE5F,0xAE60,0xAE61,
-0xAE65,0xAE68,0xAE69,0xAE6C,0xAE70,0xAE78, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCF6D,0xCF6E,0xCF6F,0xCF72,0xCF73,0xCF75,0xCF76,0xCF77,
-0xCF79,0xCF7A,0xCF7B,0xCF7C,0xCF7D,0xCF7E,0xCF7F,0xCF81,
-0xCF82,0xCF83,0xCF84,0xCF86,0xCF87,0xCF88,0xCF89,0xCF8A,
-0xCF8B,0xCF8D, 0, 0, 0, 0, 0, 0,
-0xCF8E,0xCF8F,0xCF90,0xCF91,0xCF92,0xCF93,0xCF94,0xCF95,
-0xCF96,0xCF97,0xCF98,0xCF99,0xCF9A,0xCF9B,0xCF9C,0xCF9D,
-0xCF9E,0xCF9F,0xCFA0,0xCFA2,0xCFA3,0xCFA4,0xCFA5,0xCFA6,
-0xCFA7,0xCFA9, 0, 0, 0, 0, 0, 0,
-0xCFAA,0xCFAB,0xCFAC,0xCFAD,0xCFAE,0xCFAF,0xCFB1,0xCFB2,
-0xCFB3,0xCFB4,0xCFB5,0xCFB6,0xCFB7,0xCFB8,0xCFB9,0xCFBA,
-0xCFBB,0xCFBC,0xCFBD,0xCFBE,0xCFBF,0xCFC0,0xCFC1,0xCFC2,
-0xCFC3,0xCFC5,0xCFC6,0xCFC7,0xCFC8,0xCFC9,0xCFCA,0xCFCB,
-0xAE79,0xAE7B,0xAE7C,0xAE7D,0xAE84,0xAE85,0xAE8C,0xAEBC,
-0xAEBD,0xAEBE,0xAEC0,0xAEC4,0xAECC,0xAECD,0xAECF,0xAED0,
-0xAED1,0xAED8,0xAED9,0xAEDC,0xAEE8,0xAEEB,0xAEED,0xAEF4,
-0xAEF8,0xAEFC,0xAF07,0xAF08,0xAF0D,0xAF10,0xAF2C,0xAF2D,
-0xAF30,0xAF32,0xAF34,0xAF3C,0xAF3D,0xAF3F,0xAF41,0xAF42,
-0xAF43,0xAF48,0xAF49,0xAF50,0xAF5C,0xAF5D,0xAF64,0xAF65,
-0xAF79,0xAF80,0xAF84,0xAF88,0xAF90,0xAF91,0xAF95,0xAF9C,
-0xAFB8,0xAFB9,0xAFBC,0xAFC0,0xAFC7,0xAFC8,0xAFC9,0xAFCB,
-0xAFCD,0xAFCE,0xAFD4,0xAFDC,0xAFE8,0xAFE9,0xAFF0,0xAFF1,
-0xAFF4,0xAFF8,0xB000,0xB001,0xB004,0xB00C,0xB010,0xB014,
-0xB01C,0xB01D,0xB028,0xB044,0xB045,0xB048,0xB04A,0xB04C,
-0xB04E,0xB053,0xB054,0xB055,0xB057,0xB059, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCFCC,0xCFCD,0xCFCE,0xCFCF,0xCFD0,0xCFD1,0xCFD2,0xCFD3,
-0xCFD4,0xCFD5,0xCFD6,0xCFD7,0xCFD8,0xCFD9,0xCFDA,0xCFDB,
-0xCFDC,0xCFDD,0xCFDE,0xCFDF,0xCFE2,0xCFE3,0xCFE5,0xCFE6,
-0xCFE7,0xCFE9, 0, 0, 0, 0, 0, 0,
-0xCFEA,0xCFEB,0xCFEC,0xCFED,0xCFEE,0xCFEF,0xCFF2,0xCFF4,
-0xCFF6,0xCFF7,0xCFF8,0xCFF9,0xCFFA,0xCFFB,0xCFFD,0xCFFE,
-0xCFFF,0xD001,0xD002,0xD003,0xD005,0xD006,0xD007,0xD008,
-0xD009,0xD00A, 0, 0, 0, 0, 0, 0,
-0xD00B,0xD00C,0xD00D,0xD00E,0xD00F,0xD010,0xD012,0xD013,
-0xD014,0xD015,0xD016,0xD017,0xD019,0xD01A,0xD01B,0xD01C,
-0xD01D,0xD01E,0xD01F,0xD020,0xD021,0xD022,0xD023,0xD024,
-0xD025,0xD026,0xD027,0xD028,0xD029,0xD02A,0xD02B,0xD02C,
-0xB05D,0xB07C,0xB07D,0xB080,0xB084,0xB08C,0xB08D,0xB08F,
-0xB091,0xB098,0xB099,0xB09A,0xB09C,0xB09F,0xB0A0,0xB0A1,
-0xB0A2,0xB0A8,0xB0A9,0xB0AB,0xB0AC,0xB0AD,0xB0AE,0xB0AF,
-0xB0B1,0xB0B3,0xB0B4,0xB0B5,0xB0B8,0xB0BC,0xB0C4,0xB0C5,
-0xB0C7,0xB0C8,0xB0C9,0xB0D0,0xB0D1,0xB0D4,0xB0D8,0xB0E0,
-0xB0E5,0xB108,0xB109,0xB10B,0xB10C,0xB110,0xB112,0xB113,
-0xB118,0xB119,0xB11B,0xB11C,0xB11D,0xB123,0xB124,0xB125,
-0xB128,0xB12C,0xB134,0xB135,0xB137,0xB138,0xB139,0xB140,
-0xB141,0xB144,0xB148,0xB150,0xB151,0xB154,0xB155,0xB158,
-0xB15C,0xB160,0xB178,0xB179,0xB17C,0xB180,0xB182,0xB188,
-0xB189,0xB18B,0xB18D,0xB192,0xB193,0xB194,0xB198,0xB19C,
-0xB1A8,0xB1CC,0xB1D0,0xB1D4,0xB1DC,0xB1DD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD02E,0xD02F,0xD030,0xD031,0xD032,0xD033,0xD036,0xD037,
-0xD039,0xD03A,0xD03B,0xD03D,0xD03E,0xD03F,0xD040,0xD041,
-0xD042,0xD043,0xD046,0xD048,0xD04A,0xD04B,0xD04C,0xD04D,
-0xD04E,0xD04F, 0, 0, 0, 0, 0, 0,
-0xD051,0xD052,0xD053,0xD055,0xD056,0xD057,0xD059,0xD05A,
-0xD05B,0xD05C,0xD05D,0xD05E,0xD05F,0xD061,0xD062,0xD063,
-0xD064,0xD065,0xD066,0xD067,0xD068,0xD069,0xD06A,0xD06B,
-0xD06E,0xD06F, 0, 0, 0, 0, 0, 0,
-0xD071,0xD072,0xD073,0xD075,0xD076,0xD077,0xD078,0xD079,
-0xD07A,0xD07B,0xD07E,0xD07F,0xD080,0xD082,0xD083,0xD084,
-0xD085,0xD086,0xD087,0xD088,0xD089,0xD08A,0xD08B,0xD08C,
-0xD08D,0xD08E,0xD08F,0xD090,0xD091,0xD092,0xD093,0xD094,
-0xB1DF,0xB1E8,0xB1E9,0xB1EC,0xB1F0,0xB1F9,0xB1FB,0xB1FD,
-0xB204,0xB205,0xB208,0xB20B,0xB20C,0xB214,0xB215,0xB217,
-0xB219,0xB220,0xB234,0xB23C,0xB258,0xB25C,0xB260,0xB268,
-0xB269,0xB274,0xB275,0xB27C,0xB284,0xB285,0xB289,0xB290,
-0xB291,0xB294,0xB298,0xB299,0xB29A,0xB2A0,0xB2A1,0xB2A3,
-0xB2A5,0xB2A6,0xB2AA,0xB2AC,0xB2B0,0xB2B4,0xB2C8,0xB2C9,
-0xB2CC,0xB2D0,0xB2D2,0xB2D8,0xB2D9,0xB2DB,0xB2DD,0xB2E2,
-0xB2E4,0xB2E5,0xB2E6,0xB2E8,0xB2EB,0xB2EC,0xB2ED,0xB2EE,
-0xB2EF,0xB2F3,0xB2F4,0xB2F5,0xB2F7,0xB2F8,0xB2F9,0xB2FA,
-0xB2FB,0xB2FF,0xB300,0xB301,0xB304,0xB308,0xB310,0xB311,
-0xB313,0xB314,0xB315,0xB31C,0xB354,0xB355,0xB356,0xB358,
-0xB35B,0xB35C,0xB35E,0xB35F,0xB364,0xB365, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD095,0xD096,0xD097,0xD098,0xD099,0xD09A,0xD09B,0xD09C,
-0xD09D,0xD09E,0xD09F,0xD0A0,0xD0A1,0xD0A2,0xD0A3,0xD0A6,
-0xD0A7,0xD0A9,0xD0AA,0xD0AB,0xD0AD,0xD0AE,0xD0AF,0xD0B0,
-0xD0B1,0xD0B2, 0, 0, 0, 0, 0, 0,
-0xD0B3,0xD0B6,0xD0B8,0xD0BA,0xD0BB,0xD0BC,0xD0BD,0xD0BE,
-0xD0BF,0xD0C2,0xD0C3,0xD0C5,0xD0C6,0xD0C7,0xD0CA,0xD0CB,
-0xD0CC,0xD0CD,0xD0CE,0xD0CF,0xD0D2,0xD0D6,0xD0D7,0xD0D8,
-0xD0D9,0xD0DA, 0, 0, 0, 0, 0, 0,
-0xD0DB,0xD0DE,0xD0DF,0xD0E1,0xD0E2,0xD0E3,0xD0E5,0xD0E6,
-0xD0E7,0xD0E8,0xD0E9,0xD0EA,0xD0EB,0xD0EE,0xD0F2,0xD0F3,
-0xD0F4,0xD0F5,0xD0F6,0xD0F7,0xD0F9,0xD0FA,0xD0FB,0xD0FC,
-0xD0FD,0xD0FE,0xD0FF,0xD100,0xD101,0xD102,0xD103,0xD104,
-0xB367,0xB369,0xB36B,0xB36E,0xB370,0xB371,0xB374,0xB378,
-0xB380,0xB381,0xB383,0xB384,0xB385,0xB38C,0xB390,0xB394,
-0xB3A0,0xB3A1,0xB3A8,0xB3AC,0xB3C4,0xB3C5,0xB3C8,0xB3CB,
-0xB3CC,0xB3CE,0xB3D0,0xB3D4,0xB3D5,0xB3D7,0xB3D9,0xB3DB,
-0xB3DD,0xB3E0,0xB3E4,0xB3E8,0xB3FC,0xB410,0xB418,0xB41C,
-0xB420,0xB428,0xB429,0xB42B,0xB434,0xB450,0xB451,0xB454,
-0xB458,0xB460,0xB461,0xB463,0xB465,0xB46C,0xB480,0xB488,
-0xB49D,0xB4A4,0xB4A8,0xB4AC,0xB4B5,0xB4B7,0xB4B9,0xB4C0,
-0xB4C4,0xB4C8,0xB4D0,0xB4D5,0xB4DC,0xB4DD,0xB4E0,0xB4E3,
-0xB4E4,0xB4E6,0xB4EC,0xB4ED,0xB4EF,0xB4F1,0xB4F8,0xB514,
-0xB515,0xB518,0xB51B,0xB51C,0xB524,0xB525,0xB527,0xB528,
-0xB529,0xB52A,0xB530,0xB531,0xB534,0xB538, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD105,0xD106,0xD107,0xD108,0xD109,0xD10A,0xD10B,0xD10C,
-0xD10E,0xD10F,0xD110,0xD111,0xD112,0xD113,0xD114,0xD115,
-0xD116,0xD117,0xD118,0xD119,0xD11A,0xD11B,0xD11C,0xD11D,
-0xD11E,0xD11F, 0, 0, 0, 0, 0, 0,
-0xD120,0xD121,0xD122,0xD123,0xD124,0xD125,0xD126,0xD127,
-0xD128,0xD129,0xD12A,0xD12B,0xD12C,0xD12D,0xD12E,0xD12F,
-0xD132,0xD133,0xD135,0xD136,0xD137,0xD139,0xD13B,0xD13C,
-0xD13D,0xD13E, 0, 0, 0, 0, 0, 0,
-0xD13F,0xD142,0xD146,0xD147,0xD148,0xD149,0xD14A,0xD14B,
-0xD14E,0xD14F,0xD151,0xD152,0xD153,0xD155,0xD156,0xD157,
-0xD158,0xD159,0xD15A,0xD15B,0xD15E,0xD160,0xD162,0xD163,
-0xD164,0xD165,0xD166,0xD167,0xD169,0xD16A,0xD16B,0xD16D,
-0xB540,0xB541,0xB543,0xB544,0xB545,0xB54B,0xB54C,0xB54D,
-0xB550,0xB554,0xB55C,0xB55D,0xB55F,0xB560,0xB561,0xB5A0,
-0xB5A1,0xB5A4,0xB5A8,0xB5AA,0xB5AB,0xB5B0,0xB5B1,0xB5B3,
-0xB5B4,0xB5B5,0xB5BB,0xB5BC,0xB5BD,0xB5C0,0xB5C4,0xB5CC,
-0xB5CD,0xB5CF,0xB5D0,0xB5D1,0xB5D8,0xB5EC,0xB610,0xB611,
-0xB614,0xB618,0xB625,0xB62C,0xB634,0xB648,0xB664,0xB668,
-0xB69C,0xB69D,0xB6A0,0xB6A4,0xB6AB,0xB6AC,0xB6B1,0xB6D4,
-0xB6F0,0xB6F4,0xB6F8,0xB700,0xB701,0xB705,0xB728,0xB729,
-0xB72C,0xB72F,0xB730,0xB738,0xB739,0xB73B,0xB744,0xB748,
-0xB74C,0xB754,0xB755,0xB760,0xB764,0xB768,0xB770,0xB771,
-0xB773,0xB775,0xB77C,0xB77D,0xB780,0xB784,0xB78C,0xB78D,
-0xB78F,0xB790,0xB791,0xB792,0xB796,0xB797, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD16E,0xD16F,0xD170,0xD171,0xD172,0xD173,0xD174,0xD175,
-0xD176,0xD177,0xD178,0xD179,0xD17A,0xD17B,0xD17D,0xD17E,
-0xD17F,0xD180,0xD181,0xD182,0xD183,0xD185,0xD186,0xD187,
-0xD189,0xD18A, 0, 0, 0, 0, 0, 0,
-0xD18B,0xD18C,0xD18D,0xD18E,0xD18F,0xD190,0xD191,0xD192,
-0xD193,0xD194,0xD195,0xD196,0xD197,0xD198,0xD199,0xD19A,
-0xD19B,0xD19C,0xD19D,0xD19E,0xD19F,0xD1A2,0xD1A3,0xD1A5,
-0xD1A6,0xD1A7, 0, 0, 0, 0, 0, 0,
-0xD1A9,0xD1AA,0xD1AB,0xD1AC,0xD1AD,0xD1AE,0xD1AF,0xD1B2,
-0xD1B4,0xD1B6,0xD1B7,0xD1B8,0xD1B9,0xD1BB,0xD1BD,0xD1BE,
-0xD1BF,0xD1C1,0xD1C2,0xD1C3,0xD1C4,0xD1C5,0xD1C6,0xD1C7,
-0xD1C8,0xD1C9,0xD1CA,0xD1CB,0xD1CC,0xD1CD,0xD1CE,0xD1CF,
-0xB798,0xB799,0xB79C,0xB7A0,0xB7A8,0xB7A9,0xB7AB,0xB7AC,
-0xB7AD,0xB7B4,0xB7B5,0xB7B8,0xB7C7,0xB7C9,0xB7EC,0xB7ED,
-0xB7F0,0xB7F4,0xB7FC,0xB7FD,0xB7FF,0xB800,0xB801,0xB807,
-0xB808,0xB809,0xB80C,0xB810,0xB818,0xB819,0xB81B,0xB81D,
-0xB824,0xB825,0xB828,0xB82C,0xB834,0xB835,0xB837,0xB838,
-0xB839,0xB840,0xB844,0xB851,0xB853,0xB85C,0xB85D,0xB860,
-0xB864,0xB86C,0xB86D,0xB86F,0xB871,0xB878,0xB87C,0xB88D,
-0xB8A8,0xB8B0,0xB8B4,0xB8B8,0xB8C0,0xB8C1,0xB8C3,0xB8C5,
-0xB8CC,0xB8D0,0xB8D4,0xB8DD,0xB8DF,0xB8E1,0xB8E8,0xB8E9,
-0xB8EC,0xB8F0,0xB8F8,0xB8F9,0xB8FB,0xB8FD,0xB904,0xB918,
-0xB920,0xB93C,0xB93D,0xB940,0xB944,0xB94C,0xB94F,0xB951,
-0xB958,0xB959,0xB95C,0xB960,0xB968,0xB969, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD1D0,0xD1D1,0xD1D2,0xD1D3,0xD1D4,0xD1D5,0xD1D6,0xD1D7,
-0xD1D9,0xD1DA,0xD1DB,0xD1DC,0xD1DD,0xD1DE,0xD1DF,0xD1E0,
-0xD1E1,0xD1E2,0xD1E3,0xD1E4,0xD1E5,0xD1E6,0xD1E7,0xD1E8,
-0xD1E9,0xD1EA, 0, 0, 0, 0, 0, 0,
-0xD1EB,0xD1EC,0xD1ED,0xD1EE,0xD1EF,0xD1F0,0xD1F1,0xD1F2,
-0xD1F3,0xD1F5,0xD1F6,0xD1F7,0xD1F9,0xD1FA,0xD1FB,0xD1FC,
-0xD1FD,0xD1FE,0xD1FF,0xD200,0xD201,0xD202,0xD203,0xD204,
-0xD205,0xD206, 0, 0, 0, 0, 0, 0,
-0xD208,0xD20A,0xD20B,0xD20C,0xD20D,0xD20E,0xD20F,0xD211,
-0xD212,0xD213,0xD214,0xD215,0xD216,0xD217,0xD218,0xD219,
-0xD21A,0xD21B,0xD21C,0xD21D,0xD21E,0xD21F,0xD220,0xD221,
-0xD222,0xD223,0xD224,0xD225,0xD226,0xD227,0xD228,0xD229,
-0xB96B,0xB96D,0xB974,0xB975,0xB978,0xB97C,0xB984,0xB985,
-0xB987,0xB989,0xB98A,0xB98D,0xB98E,0xB9AC,0xB9AD,0xB9B0,
-0xB9B4,0xB9BC,0xB9BD,0xB9BF,0xB9C1,0xB9C8,0xB9C9,0xB9CC,
-0xB9CE,0xB9CF,0xB9D0,0xB9D1,0xB9D2,0xB9D8,0xB9D9,0xB9DB,
-0xB9DD,0xB9DE,0xB9E1,0xB9E3,0xB9E4,0xB9E5,0xB9E8,0xB9EC,
-0xB9F4,0xB9F5,0xB9F7,0xB9F8,0xB9F9,0xB9FA,0xBA00,0xBA01,
-0xBA08,0xBA15,0xBA38,0xBA39,0xBA3C,0xBA40,0xBA42,0xBA48,
-0xBA49,0xBA4B,0xBA4D,0xBA4E,0xBA53,0xBA54,0xBA55,0xBA58,
-0xBA5C,0xBA64,0xBA65,0xBA67,0xBA68,0xBA69,0xBA70,0xBA71,
-0xBA74,0xBA78,0xBA83,0xBA84,0xBA85,0xBA87,0xBA8C,0xBAA8,
-0xBAA9,0xBAAB,0xBAAC,0xBAB0,0xBAB2,0xBAB8,0xBAB9,0xBABB,
-0xBABD,0xBAC4,0xBAC8,0xBAD8,0xBAD9,0xBAFC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD22A,0xD22B,0xD22E,0xD22F,0xD231,0xD232,0xD233,0xD235,
-0xD236,0xD237,0xD238,0xD239,0xD23A,0xD23B,0xD23E,0xD240,
-0xD242,0xD243,0xD244,0xD245,0xD246,0xD247,0xD249,0xD24A,
-0xD24B,0xD24C, 0, 0, 0, 0, 0, 0,
-0xD24D,0xD24E,0xD24F,0xD250,0xD251,0xD252,0xD253,0xD254,
-0xD255,0xD256,0xD257,0xD258,0xD259,0xD25A,0xD25B,0xD25D,
-0xD25E,0xD25F,0xD260,0xD261,0xD262,0xD263,0xD265,0xD266,
-0xD267,0xD268, 0, 0, 0, 0, 0, 0,
-0xD269,0xD26A,0xD26B,0xD26C,0xD26D,0xD26E,0xD26F,0xD270,
-0xD271,0xD272,0xD273,0xD274,0xD275,0xD276,0xD277,0xD278,
-0xD279,0xD27A,0xD27B,0xD27C,0xD27D,0xD27E,0xD27F,0xD282,
-0xD283,0xD285,0xD286,0xD287,0xD289,0xD28A,0xD28B,0xD28C,
-0xBB00,0xBB04,0xBB0D,0xBB0F,0xBB11,0xBB18,0xBB1C,0xBB20,
-0xBB29,0xBB2B,0xBB34,0xBB35,0xBB36,0xBB38,0xBB3B,0xBB3C,
-0xBB3D,0xBB3E,0xBB44,0xBB45,0xBB47,0xBB49,0xBB4D,0xBB4F,
-0xBB50,0xBB54,0xBB58,0xBB61,0xBB63,0xBB6C,0xBB88,0xBB8C,
-0xBB90,0xBBA4,0xBBA8,0xBBAC,0xBBB4,0xBBB7,0xBBC0,0xBBC4,
-0xBBC8,0xBBD0,0xBBD3,0xBBF8,0xBBF9,0xBBFC,0xBBFF,0xBC00,
-0xBC02,0xBC08,0xBC09,0xBC0B,0xBC0C,0xBC0D,0xBC0F,0xBC11,
-0xBC14,0xBC15,0xBC16,0xBC17,0xBC18,0xBC1B,0xBC1C,0xBC1D,
-0xBC1E,0xBC1F,0xBC24,0xBC25,0xBC27,0xBC29,0xBC2D,0xBC30,
-0xBC31,0xBC34,0xBC38,0xBC40,0xBC41,0xBC43,0xBC44,0xBC45,
-0xBC49,0xBC4C,0xBC4D,0xBC50,0xBC5D,0xBC84,0xBC85,0xBC88,
-0xBC8B,0xBC8C,0xBC8E,0xBC94,0xBC95,0xBC97, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD28D,0xD28E,0xD28F,0xD292,0xD293,0xD294,0xD296,0xD297,
-0xD298,0xD299,0xD29A,0xD29B,0xD29D,0xD29E,0xD29F,0xD2A1,
-0xD2A2,0xD2A3,0xD2A5,0xD2A6,0xD2A7,0xD2A8,0xD2A9,0xD2AA,
-0xD2AB,0xD2AD, 0, 0, 0, 0, 0, 0,
-0xD2AE,0xD2AF,0xD2B0,0xD2B2,0xD2B3,0xD2B4,0xD2B5,0xD2B6,
-0xD2B7,0xD2BA,0xD2BB,0xD2BD,0xD2BE,0xD2C1,0xD2C3,0xD2C4,
-0xD2C5,0xD2C6,0xD2C7,0xD2CA,0xD2CC,0xD2CD,0xD2CE,0xD2CF,
-0xD2D0,0xD2D1, 0, 0, 0, 0, 0, 0,
-0xD2D2,0xD2D3,0xD2D5,0xD2D6,0xD2D7,0xD2D9,0xD2DA,0xD2DB,
-0xD2DD,0xD2DE,0xD2DF,0xD2E0,0xD2E1,0xD2E2,0xD2E3,0xD2E6,
-0xD2E7,0xD2E8,0xD2E9,0xD2EA,0xD2EB,0xD2EC,0xD2ED,0xD2EE,
-0xD2EF,0xD2F2,0xD2F3,0xD2F5,0xD2F6,0xD2F7,0xD2F9,0xD2FA,
-0xBC99,0xBC9A,0xBCA0,0xBCA1,0xBCA4,0xBCA7,0xBCA8,0xBCB0,
-0xBCB1,0xBCB3,0xBCB4,0xBCB5,0xBCBC,0xBCBD,0xBCC0,0xBCC4,
-0xBCCD,0xBCCF,0xBCD0,0xBCD1,0xBCD5,0xBCD8,0xBCDC,0xBCF4,
-0xBCF5,0xBCF6,0xBCF8,0xBCFC,0xBD04,0xBD05,0xBD07,0xBD09,
-0xBD10,0xBD14,0xBD24,0xBD2C,0xBD40,0xBD48,0xBD49,0xBD4C,
-0xBD50,0xBD58,0xBD59,0xBD64,0xBD68,0xBD80,0xBD81,0xBD84,
-0xBD87,0xBD88,0xBD89,0xBD8A,0xBD90,0xBD91,0xBD93,0xBD95,
-0xBD99,0xBD9A,0xBD9C,0xBDA4,0xBDB0,0xBDB8,0xBDD4,0xBDD5,
-0xBDD8,0xBDDC,0xBDE9,0xBDF0,0xBDF4,0xBDF8,0xBE00,0xBE03,
-0xBE05,0xBE0C,0xBE0D,0xBE10,0xBE14,0xBE1C,0xBE1D,0xBE1F,
-0xBE44,0xBE45,0xBE48,0xBE4C,0xBE4E,0xBE54,0xBE55,0xBE57,
-0xBE59,0xBE5A,0xBE5B,0xBE60,0xBE61,0xBE64, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD2FB,0xD2FC,0xD2FD,0xD2FE,0xD2FF,0xD302,0xD304,0xD306,
-0xD307,0xD308,0xD309,0xD30A,0xD30B,0xD30F,0xD311,0xD312,
-0xD313,0xD315,0xD317,0xD318,0xD319,0xD31A,0xD31B,0xD31E,
-0xD322,0xD323, 0, 0, 0, 0, 0, 0,
-0xD324,0xD326,0xD327,0xD32A,0xD32B,0xD32D,0xD32E,0xD32F,
-0xD331,0xD332,0xD333,0xD334,0xD335,0xD336,0xD337,0xD33A,
-0xD33E,0xD33F,0xD340,0xD341,0xD342,0xD343,0xD346,0xD347,
-0xD348,0xD349, 0, 0, 0, 0, 0, 0,
-0xD34A,0xD34B,0xD34C,0xD34D,0xD34E,0xD34F,0xD350,0xD351,
-0xD352,0xD353,0xD354,0xD355,0xD356,0xD357,0xD358,0xD359,
-0xD35A,0xD35B,0xD35C,0xD35D,0xD35E,0xD35F,0xD360,0xD361,
-0xD362,0xD363,0xD364,0xD365,0xD366,0xD367,0xD368,0xD369,
-0xBE68,0xBE6A,0xBE70,0xBE71,0xBE73,0xBE74,0xBE75,0xBE7B,
-0xBE7C,0xBE7D,0xBE80,0xBE84,0xBE8C,0xBE8D,0xBE8F,0xBE90,
-0xBE91,0xBE98,0xBE99,0xBEA8,0xBED0,0xBED1,0xBED4,0xBED7,
-0xBED8,0xBEE0,0xBEE3,0xBEE4,0xBEE5,0xBEEC,0xBF01,0xBF08,
-0xBF09,0xBF18,0xBF19,0xBF1B,0xBF1C,0xBF1D,0xBF40,0xBF41,
-0xBF44,0xBF48,0xBF50,0xBF51,0xBF55,0xBF94,0xBFB0,0xBFC5,
-0xBFCC,0xBFCD,0xBFD0,0xBFD4,0xBFDC,0xBFDF,0xBFE1,0xC03C,
-0xC051,0xC058,0xC05C,0xC060,0xC068,0xC069,0xC090,0xC091,
-0xC094,0xC098,0xC0A0,0xC0A1,0xC0A3,0xC0A5,0xC0AC,0xC0AD,
-0xC0AF,0xC0B0,0xC0B3,0xC0B4,0xC0B5,0xC0B6,0xC0BC,0xC0BD,
-0xC0BF,0xC0C0,0xC0C1,0xC0C5,0xC0C8,0xC0C9,0xC0CC,0xC0D0,
-0xC0D8,0xC0D9,0xC0DB,0xC0DC,0xC0DD,0xC0E4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD36A,0xD36B,0xD36C,0xD36D,0xD36E,0xD36F,0xD370,0xD371,
-0xD372,0xD373,0xD374,0xD375,0xD376,0xD377,0xD378,0xD379,
-0xD37A,0xD37B,0xD37E,0xD37F,0xD381,0xD382,0xD383,0xD385,
-0xD386,0xD387, 0, 0, 0, 0, 0, 0,
-0xD388,0xD389,0xD38A,0xD38B,0xD38E,0xD392,0xD393,0xD394,
-0xD395,0xD396,0xD397,0xD39A,0xD39B,0xD39D,0xD39E,0xD39F,
-0xD3A1,0xD3A2,0xD3A3,0xD3A4,0xD3A5,0xD3A6,0xD3A7,0xD3AA,
-0xD3AC,0xD3AE, 0, 0, 0, 0, 0, 0,
-0xD3AF,0xD3B0,0xD3B1,0xD3B2,0xD3B3,0xD3B5,0xD3B6,0xD3B7,
-0xD3B9,0xD3BA,0xD3BB,0xD3BD,0xD3BE,0xD3BF,0xD3C0,0xD3C1,
-0xD3C2,0xD3C3,0xD3C6,0xD3C7,0xD3CA,0xD3CB,0xD3CC,0xD3CD,
-0xD3CE,0xD3CF,0xD3D1,0xD3D2,0xD3D3,0xD3D4,0xD3D5,0xD3D6,
-0xC0E5,0xC0E8,0xC0EC,0xC0F4,0xC0F5,0xC0F7,0xC0F9,0xC100,
-0xC104,0xC108,0xC110,0xC115,0xC11C,0xC11D,0xC11E,0xC11F,
-0xC120,0xC123,0xC124,0xC126,0xC127,0xC12C,0xC12D,0xC12F,
-0xC130,0xC131,0xC136,0xC138,0xC139,0xC13C,0xC140,0xC148,
-0xC149,0xC14B,0xC14C,0xC14D,0xC154,0xC155,0xC158,0xC15C,
-0xC164,0xC165,0xC167,0xC168,0xC169,0xC170,0xC174,0xC178,
-0xC185,0xC18C,0xC18D,0xC18E,0xC190,0xC194,0xC196,0xC19C,
-0xC19D,0xC19F,0xC1A1,0xC1A5,0xC1A8,0xC1A9,0xC1AC,0xC1B0,
-0xC1BD,0xC1C4,0xC1C8,0xC1CC,0xC1D4,0xC1D7,0xC1D8,0xC1E0,
-0xC1E4,0xC1E8,0xC1F0,0xC1F1,0xC1F3,0xC1FC,0xC1FD,0xC200,
-0xC204,0xC20C,0xC20D,0xC20F,0xC211,0xC218,0xC219,0xC21C,
-0xC21F,0xC220,0xC228,0xC229,0xC22B,0xC22D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD3D7,0xD3D9,0xD3DA,0xD3DB,0xD3DC,0xD3DD,0xD3DE,0xD3DF,
-0xD3E0,0xD3E2,0xD3E4,0xD3E5,0xD3E6,0xD3E7,0xD3E8,0xD3E9,
-0xD3EA,0xD3EB,0xD3EE,0xD3EF,0xD3F1,0xD3F2,0xD3F3,0xD3F5,
-0xD3F6,0xD3F7, 0, 0, 0, 0, 0, 0,
-0xD3F8,0xD3F9,0xD3FA,0xD3FB,0xD3FE,0xD400,0xD402,0xD403,
-0xD404,0xD405,0xD406,0xD407,0xD409,0xD40A,0xD40B,0xD40C,
-0xD40D,0xD40E,0xD40F,0xD410,0xD411,0xD412,0xD413,0xD414,
-0xD415,0xD416, 0, 0, 0, 0, 0, 0,
-0xD417,0xD418,0xD419,0xD41A,0xD41B,0xD41C,0xD41E,0xD41F,
-0xD420,0xD421,0xD422,0xD423,0xD424,0xD425,0xD426,0xD427,
-0xD428,0xD429,0xD42A,0xD42B,0xD42C,0xD42D,0xD42E,0xD42F,
-0xD430,0xD431,0xD432,0xD433,0xD434,0xD435,0xD436,0xD437,
-0xC22F,0xC231,0xC232,0xC234,0xC248,0xC250,0xC251,0xC254,
-0xC258,0xC260,0xC265,0xC26C,0xC26D,0xC270,0xC274,0xC27C,
-0xC27D,0xC27F,0xC281,0xC288,0xC289,0xC290,0xC298,0xC29B,
-0xC29D,0xC2A4,0xC2A5,0xC2A8,0xC2AC,0xC2AD,0xC2B4,0xC2B5,
-0xC2B7,0xC2B9,0xC2DC,0xC2DD,0xC2E0,0xC2E3,0xC2E4,0xC2EB,
-0xC2EC,0xC2ED,0xC2EF,0xC2F1,0xC2F6,0xC2F8,0xC2F9,0xC2FB,
-0xC2FC,0xC300,0xC308,0xC309,0xC30C,0xC30D,0xC313,0xC314,
-0xC315,0xC318,0xC31C,0xC324,0xC325,0xC328,0xC329,0xC345,
-0xC368,0xC369,0xC36C,0xC370,0xC372,0xC378,0xC379,0xC37C,
-0xC37D,0xC384,0xC388,0xC38C,0xC3C0,0xC3D8,0xC3D9,0xC3DC,
-0xC3DF,0xC3E0,0xC3E2,0xC3E8,0xC3E9,0xC3ED,0xC3F4,0xC3F5,
-0xC3F8,0xC408,0xC410,0xC424,0xC42C,0xC430, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD438,0xD439,0xD43A,0xD43B,0xD43C,0xD43D,0xD43E,0xD43F,
-0xD441,0xD442,0xD443,0xD445,0xD446,0xD447,0xD448,0xD449,
-0xD44A,0xD44B,0xD44C,0xD44D,0xD44E,0xD44F,0xD450,0xD451,
-0xD452,0xD453, 0, 0, 0, 0, 0, 0,
-0xD454,0xD455,0xD456,0xD457,0xD458,0xD459,0xD45A,0xD45B,
-0xD45D,0xD45E,0xD45F,0xD461,0xD462,0xD463,0xD465,0xD466,
-0xD467,0xD468,0xD469,0xD46A,0xD46B,0xD46C,0xD46E,0xD470,
-0xD471,0xD472, 0, 0, 0, 0, 0, 0,
-0xD473,0xD474,0xD475,0xD476,0xD477,0xD47A,0xD47B,0xD47D,
-0xD47E,0xD481,0xD483,0xD484,0xD485,0xD486,0xD487,0xD48A,
-0xD48C,0xD48E,0xD48F,0xD490,0xD491,0xD492,0xD493,0xD495,
-0xD496,0xD497,0xD498,0xD499,0xD49A,0xD49B,0xD49C,0xD49D,
-0xC434,0xC43C,0xC43D,0xC448,0xC464,0xC465,0xC468,0xC46C,
-0xC474,0xC475,0xC479,0xC480,0xC494,0xC49C,0xC4B8,0xC4BC,
-0xC4E9,0xC4F0,0xC4F1,0xC4F4,0xC4F8,0xC4FA,0xC4FF,0xC500,
-0xC501,0xC50C,0xC510,0xC514,0xC51C,0xC528,0xC529,0xC52C,
-0xC530,0xC538,0xC539,0xC53B,0xC53D,0xC544,0xC545,0xC548,
-0xC549,0xC54A,0xC54C,0xC54D,0xC54E,0xC553,0xC554,0xC555,
-0xC557,0xC558,0xC559,0xC55D,0xC55E,0xC560,0xC561,0xC564,
-0xC568,0xC570,0xC571,0xC573,0xC574,0xC575,0xC57C,0xC57D,
-0xC580,0xC584,0xC587,0xC58C,0xC58D,0xC58F,0xC591,0xC595,
-0xC597,0xC598,0xC59C,0xC5A0,0xC5A9,0xC5B4,0xC5B5,0xC5B8,
-0xC5B9,0xC5BB,0xC5BC,0xC5BD,0xC5BE,0xC5C4,0xC5C5,0xC5C6,
-0xC5C7,0xC5C8,0xC5C9,0xC5CA,0xC5CC,0xC5CE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD49E,0xD49F,0xD4A0,0xD4A1,0xD4A2,0xD4A3,0xD4A4,0xD4A5,
-0xD4A6,0xD4A7,0xD4A8,0xD4AA,0xD4AB,0xD4AC,0xD4AD,0xD4AE,
-0xD4AF,0xD4B0,0xD4B1,0xD4B2,0xD4B3,0xD4B4,0xD4B5,0xD4B6,
-0xD4B7,0xD4B8, 0, 0, 0, 0, 0, 0,
-0xD4B9,0xD4BA,0xD4BB,0xD4BC,0xD4BD,0xD4BE,0xD4BF,0xD4C0,
-0xD4C1,0xD4C2,0xD4C3,0xD4C4,0xD4C5,0xD4C6,0xD4C7,0xD4C8,
-0xD4C9,0xD4CA,0xD4CB,0xD4CD,0xD4CE,0xD4CF,0xD4D1,0xD4D2,
-0xD4D3,0xD4D5, 0, 0, 0, 0, 0, 0,
-0xD4D6,0xD4D7,0xD4D8,0xD4D9,0xD4DA,0xD4DB,0xD4DD,0xD4DE,
-0xD4E0,0xD4E1,0xD4E2,0xD4E3,0xD4E4,0xD4E5,0xD4E6,0xD4E7,
-0xD4E9,0xD4EA,0xD4EB,0xD4ED,0xD4EE,0xD4EF,0xD4F1,0xD4F2,
-0xD4F3,0xD4F4,0xD4F5,0xD4F6,0xD4F7,0xD4F9,0xD4FA,0xD4FC,
-0xC5D0,0xC5D1,0xC5D4,0xC5D8,0xC5E0,0xC5E1,0xC5E3,0xC5E5,
-0xC5EC,0xC5ED,0xC5EE,0xC5F0,0xC5F4,0xC5F6,0xC5F7,0xC5FC,
-0xC5FD,0xC5FE,0xC5FF,0xC600,0xC601,0xC605,0xC606,0xC607,
-0xC608,0xC60C,0xC610,0xC618,0xC619,0xC61B,0xC61C,0xC624,
-0xC625,0xC628,0xC62C,0xC62D,0xC62E,0xC630,0xC633,0xC634,
-0xC635,0xC637,0xC639,0xC63B,0xC640,0xC641,0xC644,0xC648,
-0xC650,0xC651,0xC653,0xC654,0xC655,0xC65C,0xC65D,0xC660,
-0xC66C,0xC66F,0xC671,0xC678,0xC679,0xC67C,0xC680,0xC688,
-0xC689,0xC68B,0xC68D,0xC694,0xC695,0xC698,0xC69C,0xC6A4,
-0xC6A5,0xC6A7,0xC6A9,0xC6B0,0xC6B1,0xC6B4,0xC6B8,0xC6B9,
-0xC6BA,0xC6C0,0xC6C1,0xC6C3,0xC6C5,0xC6CC,0xC6CD,0xC6D0,
-0xC6D4,0xC6DC,0xC6DD,0xC6E0,0xC6E1,0xC6E8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD4FE,0xD4FF,0xD500,0xD501,0xD502,0xD503,0xD505,0xD506,
-0xD507,0xD509,0xD50A,0xD50B,0xD50D,0xD50E,0xD50F,0xD510,
-0xD511,0xD512,0xD513,0xD516,0xD518,0xD519,0xD51A,0xD51B,
-0xD51C,0xD51D, 0, 0, 0, 0, 0, 0,
-0xD51E,0xD51F,0xD520,0xD521,0xD522,0xD523,0xD524,0xD525,
-0xD526,0xD527,0xD528,0xD529,0xD52A,0xD52B,0xD52C,0xD52D,
-0xD52E,0xD52F,0xD530,0xD531,0xD532,0xD533,0xD534,0xD535,
-0xD536,0xD537, 0, 0, 0, 0, 0, 0,
-0xD538,0xD539,0xD53A,0xD53B,0xD53E,0xD53F,0xD541,0xD542,
-0xD543,0xD545,0xD546,0xD547,0xD548,0xD549,0xD54A,0xD54B,
-0xD54E,0xD550,0xD552,0xD553,0xD554,0xD555,0xD556,0xD557,
-0xD55A,0xD55B,0xD55D,0xD55E,0xD55F,0xD561,0xD562,0xD563,
-0xC6E9,0xC6EC,0xC6F0,0xC6F8,0xC6F9,0xC6FD,0xC704,0xC705,
-0xC708,0xC70C,0xC714,0xC715,0xC717,0xC719,0xC720,0xC721,
-0xC724,0xC728,0xC730,0xC731,0xC733,0xC735,0xC737,0xC73C,
-0xC73D,0xC740,0xC744,0xC74A,0xC74C,0xC74D,0xC74F,0xC751,
-0xC752,0xC753,0xC754,0xC755,0xC756,0xC757,0xC758,0xC75C,
-0xC760,0xC768,0xC76B,0xC774,0xC775,0xC778,0xC77C,0xC77D,
-0xC77E,0xC783,0xC784,0xC785,0xC787,0xC788,0xC789,0xC78A,
-0xC78E,0xC790,0xC791,0xC794,0xC796,0xC797,0xC798,0xC79A,
-0xC7A0,0xC7A1,0xC7A3,0xC7A4,0xC7A5,0xC7A6,0xC7AC,0xC7AD,
-0xC7B0,0xC7B4,0xC7BC,0xC7BD,0xC7BF,0xC7C0,0xC7C1,0xC7C8,
-0xC7C9,0xC7CC,0xC7CE,0xC7D0,0xC7D8,0xC7DD,0xC7E4,0xC7E8,
-0xC7EC,0xC800,0xC801,0xC804,0xC808,0xC80A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD564,0xD566,0xD567,0xD56A,0xD56C,0xD56E,0xD56F,0xD570,
-0xD571,0xD572,0xD573,0xD576,0xD577,0xD579,0xD57A,0xD57B,
-0xD57D,0xD57E,0xD57F,0xD580,0xD581,0xD582,0xD583,0xD586,
-0xD58A,0xD58B, 0, 0, 0, 0, 0, 0,
-0xD58C,0xD58D,0xD58E,0xD58F,0xD591,0xD592,0xD593,0xD594,
-0xD595,0xD596,0xD597,0xD598,0xD599,0xD59A,0xD59B,0xD59C,
-0xD59D,0xD59E,0xD59F,0xD5A0,0xD5A1,0xD5A2,0xD5A3,0xD5A4,
-0xD5A6,0xD5A7, 0, 0, 0, 0, 0, 0,
-0xD5A8,0xD5A9,0xD5AA,0xD5AB,0xD5AC,0xD5AD,0xD5AE,0xD5AF,
-0xD5B0,0xD5B1,0xD5B2,0xD5B3,0xD5B4,0xD5B5,0xD5B6,0xD5B7,
-0xD5B8,0xD5B9,0xD5BA,0xD5BB,0xD5BC,0xD5BD,0xD5BE,0xD5BF,
-0xD5C0,0xD5C1,0xD5C2,0xD5C3,0xD5C4,0xD5C5,0xD5C6,0xD5C7,
-0xC810,0xC811,0xC813,0xC815,0xC816,0xC81C,0xC81D,0xC820,
-0xC824,0xC82C,0xC82D,0xC82F,0xC831,0xC838,0xC83C,0xC840,
-0xC848,0xC849,0xC84C,0xC84D,0xC854,0xC870,0xC871,0xC874,
-0xC878,0xC87A,0xC880,0xC881,0xC883,0xC885,0xC886,0xC887,
-0xC88B,0xC88C,0xC88D,0xC894,0xC89D,0xC89F,0xC8A1,0xC8A8,
-0xC8BC,0xC8BD,0xC8C4,0xC8C8,0xC8CC,0xC8D4,0xC8D5,0xC8D7,
-0xC8D9,0xC8E0,0xC8E1,0xC8E4,0xC8F5,0xC8FC,0xC8FD,0xC900,
-0xC904,0xC905,0xC906,0xC90C,0xC90D,0xC90F,0xC911,0xC918,
-0xC92C,0xC934,0xC950,0xC951,0xC954,0xC958,0xC960,0xC961,
-0xC963,0xC96C,0xC970,0xC974,0xC97C,0xC988,0xC989,0xC98C,
-0xC990,0xC998,0xC999,0xC99B,0xC99D,0xC9C0,0xC9C1,0xC9C4,
-0xC9C7,0xC9C8,0xC9CA,0xC9D0,0xC9D1,0xC9D3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD5CA,0xD5CB,0xD5CD,0xD5CE,0xD5CF,0xD5D1,0xD5D3,0xD5D4,
-0xD5D5,0xD5D6,0xD5D7,0xD5DA,0xD5DC,0xD5DE,0xD5DF,0xD5E0,
-0xD5E1,0xD5E2,0xD5E3,0xD5E6,0xD5E7,0xD5E9,0xD5EA,0xD5EB,
-0xD5ED,0xD5EE, 0, 0, 0, 0, 0, 0,
-0xD5EF,0xD5F0,0xD5F1,0xD5F2,0xD5F3,0xD5F6,0xD5F8,0xD5FA,
-0xD5FB,0xD5FC,0xD5FD,0xD5FE,0xD5FF,0xD602,0xD603,0xD605,
-0xD606,0xD607,0xD609,0xD60A,0xD60B,0xD60C,0xD60D,0xD60E,
-0xD60F,0xD612, 0, 0, 0, 0, 0, 0,
-0xD616,0xD617,0xD618,0xD619,0xD61A,0xD61B,0xD61D,0xD61E,
-0xD61F,0xD621,0xD622,0xD623,0xD625,0xD626,0xD627,0xD628,
-0xD629,0xD62A,0xD62B,0xD62C,0xD62E,0xD62F,0xD630,0xD631,
-0xD632,0xD633,0xD634,0xD635,0xD636,0xD637,0xD63A,0xD63B,
-0xC9D5,0xC9D6,0xC9D9,0xC9DA,0xC9DC,0xC9DD,0xC9E0,0xC9E2,
-0xC9E4,0xC9E7,0xC9EC,0xC9ED,0xC9EF,0xC9F0,0xC9F1,0xC9F8,
-0xC9F9,0xC9FC,0xCA00,0xCA08,0xCA09,0xCA0B,0xCA0C,0xCA0D,
-0xCA14,0xCA18,0xCA29,0xCA4C,0xCA4D,0xCA50,0xCA54,0xCA5C,
-0xCA5D,0xCA5F,0xCA60,0xCA61,0xCA68,0xCA7D,0xCA84,0xCA98,
-0xCABC,0xCABD,0xCAC0,0xCAC4,0xCACC,0xCACD,0xCACF,0xCAD1,
-0xCAD3,0xCAD8,0xCAD9,0xCAE0,0xCAEC,0xCAF4,0xCB08,0xCB10,
-0xCB14,0xCB18,0xCB20,0xCB21,0xCB41,0xCB48,0xCB49,0xCB4C,
-0xCB50,0xCB58,0xCB59,0xCB5D,0xCB64,0xCB78,0xCB79,0xCB9C,
-0xCBB8,0xCBD4,0xCBE4,0xCBE7,0xCBE9,0xCC0C,0xCC0D,0xCC10,
-0xCC14,0xCC1C,0xCC1D,0xCC21,0xCC22,0xCC27,0xCC28,0xCC29,
-0xCC2C,0xCC2E,0xCC30,0xCC38,0xCC39,0xCC3B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD63D,0xD63E,0xD63F,0xD641,0xD642,0xD643,0xD644,0xD646,
-0xD647,0xD64A,0xD64C,0xD64E,0xD64F,0xD650,0xD652,0xD653,
-0xD656,0xD657,0xD659,0xD65A,0xD65B,0xD65D,0xD65E,0xD65F,
-0xD660,0xD661, 0, 0, 0, 0, 0, 0,
-0xD662,0xD663,0xD664,0xD665,0xD666,0xD668,0xD66A,0xD66B,
-0xD66C,0xD66D,0xD66E,0xD66F,0xD672,0xD673,0xD675,0xD676,
-0xD677,0xD678,0xD679,0xD67A,0xD67B,0xD67C,0xD67D,0xD67E,
-0xD67F,0xD680, 0, 0, 0, 0, 0, 0,
-0xD681,0xD682,0xD684,0xD686,0xD687,0xD688,0xD689,0xD68A,
-0xD68B,0xD68E,0xD68F,0xD691,0xD692,0xD693,0xD695,0xD696,
-0xD697,0xD698,0xD699,0xD69A,0xD69B,0xD69C,0xD69E,0xD6A0,
-0xD6A2,0xD6A3,0xD6A4,0xD6A5,0xD6A6,0xD6A7,0xD6A9,0xD6AA,
-0xCC3C,0xCC3D,0xCC3E,0xCC44,0xCC45,0xCC48,0xCC4C,0xCC54,
-0xCC55,0xCC57,0xCC58,0xCC59,0xCC60,0xCC64,0xCC66,0xCC68,
-0xCC70,0xCC75,0xCC98,0xCC99,0xCC9C,0xCCA0,0xCCA8,0xCCA9,
-0xCCAB,0xCCAC,0xCCAD,0xCCB4,0xCCB5,0xCCB8,0xCCBC,0xCCC4,
-0xCCC5,0xCCC7,0xCCC9,0xCCD0,0xCCD4,0xCCE4,0xCCEC,0xCCF0,
-0xCD01,0xCD08,0xCD09,0xCD0C,0xCD10,0xCD18,0xCD19,0xCD1B,
-0xCD1D,0xCD24,0xCD28,0xCD2C,0xCD39,0xCD5C,0xCD60,0xCD64,
-0xCD6C,0xCD6D,0xCD6F,0xCD71,0xCD78,0xCD88,0xCD94,0xCD95,
-0xCD98,0xCD9C,0xCDA4,0xCDA5,0xCDA7,0xCDA9,0xCDB0,0xCDC4,
-0xCDCC,0xCDD0,0xCDE8,0xCDEC,0xCDF0,0xCDF8,0xCDF9,0xCDFB,
-0xCDFD,0xCE04,0xCE08,0xCE0C,0xCE14,0xCE19,0xCE20,0xCE21,
-0xCE24,0xCE28,0xCE30,0xCE31,0xCE33,0xCE35, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6AB,0xD6AD,0xD6AE,0xD6AF,0xD6B1,0xD6B2,0xD6B3,0xD6B4,
-0xD6B5,0xD6B6,0xD6B7,0xD6B8,0xD6BA,0xD6BC,0xD6BD,0xD6BE,
-0xD6BF,0xD6C0,0xD6C1,0xD6C2,0xD6C3,0xD6C6,0xD6C7,0xD6C9,
-0xD6CA,0xD6CB, 0, 0, 0, 0, 0, 0,
-0xD6CD,0xD6CE,0xD6CF,0xD6D0,0xD6D2,0xD6D3,0xD6D5,0xD6D6,
-0xD6D8,0xD6DA,0xD6DB,0xD6DC,0xD6DD,0xD6DE,0xD6DF,0xD6E1,
-0xD6E2,0xD6E3,0xD6E5,0xD6E6,0xD6E7,0xD6E9,0xD6EA,0xD6EB,
-0xD6EC,0xD6ED, 0, 0, 0, 0, 0, 0,
-0xD6EE,0xD6EF,0xD6F1,0xD6F2,0xD6F3,0xD6F4,0xD6F6,0xD6F7,
-0xD6F8,0xD6F9,0xD6FA,0xD6FB,0xD6FE,0xD6FF,0xD701,0xD702,
-0xD703,0xD705,0xD706,0xD707,0xD708,0xD709,0xD70A,0xD70B,
-0xD70C,0xD70D,0xD70E,0xD70F,0xD710,0xD712,0xD713,0xD714,
-0xCE58,0xCE59,0xCE5C,0xCE5F,0xCE60,0xCE61,0xCE68,0xCE69,
-0xCE6B,0xCE6D,0xCE74,0xCE75,0xCE78,0xCE7C,0xCE84,0xCE85,
-0xCE87,0xCE89,0xCE90,0xCE91,0xCE94,0xCE98,0xCEA0,0xCEA1,
-0xCEA3,0xCEA4,0xCEA5,0xCEAC,0xCEAD,0xCEC1,0xCEE4,0xCEE5,
-0xCEE8,0xCEEB,0xCEEC,0xCEF4,0xCEF5,0xCEF7,0xCEF8,0xCEF9,
-0xCF00,0xCF01,0xCF04,0xCF08,0xCF10,0xCF11,0xCF13,0xCF15,
-0xCF1C,0xCF20,0xCF24,0xCF2C,0xCF2D,0xCF2F,0xCF30,0xCF31,
-0xCF38,0xCF54,0xCF55,0xCF58,0xCF5C,0xCF64,0xCF65,0xCF67,
-0xCF69,0xCF70,0xCF71,0xCF74,0xCF78,0xCF80,0xCF85,0xCF8C,
-0xCFA1,0xCFA8,0xCFB0,0xCFC4,0xCFE0,0xCFE1,0xCFE4,0xCFE8,
-0xCFF0,0xCFF1,0xCFF3,0xCFF5,0xCFFC,0xD000,0xD004,0xD011,
-0xD018,0xD02D,0xD034,0xD035,0xD038,0xD03C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD715,0xD716,0xD717,0xD71A,0xD71B,0xD71D,0xD71E,0xD71F,
-0xD721,0xD722,0xD723,0xD724,0xD725,0xD726,0xD727,0xD72A,
-0xD72C,0xD72E,0xD72F,0xD730,0xD731,0xD732,0xD733,0xD736,
-0xD737,0xD739, 0, 0, 0, 0, 0, 0,
-0xD73A,0xD73B,0xD73D,0xD73E,0xD73F,0xD740,0xD741,0xD742,
-0xD743,0xD745,0xD746,0xD748,0xD74A,0xD74B,0xD74C,0xD74D,
-0xD74E,0xD74F,0xD752,0xD753,0xD755,0xD75A,0xD75B,0xD75C,
-0xD75D,0xD75E, 0, 0, 0, 0, 0, 0,
-0xD75F,0xD762,0xD764,0xD766,0xD767,0xD768,0xD76A,0xD76B,
-0xD76D,0xD76E,0xD76F,0xD771,0xD772,0xD773,0xD775,0xD776,
-0xD777,0xD778,0xD779,0xD77A,0xD77B,0xD77E,0xD77F,0xD780,
-0xD782,0xD783,0xD784,0xD785,0xD786,0xD787,0xD78A,0xD78B,
-0xD044,0xD045,0xD047,0xD049,0xD050,0xD054,0xD058,0xD060,
-0xD06C,0xD06D,0xD070,0xD074,0xD07C,0xD07D,0xD081,0xD0A4,
-0xD0A5,0xD0A8,0xD0AC,0xD0B4,0xD0B5,0xD0B7,0xD0B9,0xD0C0,
-0xD0C1,0xD0C4,0xD0C8,0xD0C9,0xD0D0,0xD0D1,0xD0D3,0xD0D4,
-0xD0D5,0xD0DC,0xD0DD,0xD0E0,0xD0E4,0xD0EC,0xD0ED,0xD0EF,
-0xD0F0,0xD0F1,0xD0F8,0xD10D,0xD130,0xD131,0xD134,0xD138,
-0xD13A,0xD140,0xD141,0xD143,0xD144,0xD145,0xD14C,0xD14D,
-0xD150,0xD154,0xD15C,0xD15D,0xD15F,0xD161,0xD168,0xD16C,
-0xD17C,0xD184,0xD188,0xD1A0,0xD1A1,0xD1A4,0xD1A8,0xD1B0,
-0xD1B1,0xD1B3,0xD1B5,0xD1BA,0xD1BC,0xD1C0,0xD1D8,0xD1F4,
-0xD1F8,0xD207,0xD209,0xD210,0xD22C,0xD22D,0xD230,0xD234,
-0xD23C,0xD23D,0xD23F,0xD241,0xD248,0xD25C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD78D,0xD78E,0xD78F,0xD791,0xD792,0xD793,0xD794,0xD795,
-0xD796,0xD797,0xD79A,0xD79C,0xD79E,0xD79F,0xD7A0,0xD7A1,
-0xD7A2,0xD7A3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD264,0xD280,0xD281,0xD284,0xD288,0xD290,0xD291,0xD295,
-0xD29C,0xD2A0,0xD2A4,0xD2AC,0xD2B1,0xD2B8,0xD2B9,0xD2BC,
-0xD2BF,0xD2C0,0xD2C2,0xD2C8,0xD2C9,0xD2CB,0xD2D4,0xD2D8,
-0xD2DC,0xD2E4,0xD2E5,0xD2F0,0xD2F1,0xD2F4,0xD2F8,0xD300,
-0xD301,0xD303,0xD305,0xD30C,0xD30D,0xD30E,0xD310,0xD314,
-0xD316,0xD31C,0xD31D,0xD31F,0xD320,0xD321,0xD325,0xD328,
-0xD329,0xD32C,0xD330,0xD338,0xD339,0xD33B,0xD33C,0xD33D,
-0xD344,0xD345,0xD37C,0xD37D,0xD380,0xD384,0xD38C,0xD38D,
-0xD38F,0xD390,0xD391,0xD398,0xD399,0xD39C,0xD3A0,0xD3A8,
-0xD3A9,0xD3AB,0xD3AD,0xD3B4,0xD3B8,0xD3BC,0xD3C4,0xD3C5,
-0xD3C8,0xD3C9,0xD3D0,0xD3D8,0xD3E1,0xD3E3,0xD3EC,0xD3ED,
-0xD3F0,0xD3F4,0xD3FC,0xD3FD,0xD3FF,0xD401, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD408,0xD41D,0xD440,0xD444,0xD45C,0xD460,0xD464,0xD46D,
-0xD46F,0xD478,0xD479,0xD47C,0xD47F,0xD480,0xD482,0xD488,
-0xD489,0xD48B,0xD48D,0xD494,0xD4A9,0xD4CC,0xD4D0,0xD4D4,
-0xD4DC,0xD4DF,0xD4E8,0xD4EC,0xD4F0,0xD4F8,0xD4FB,0xD4FD,
-0xD504,0xD508,0xD50C,0xD514,0xD515,0xD517,0xD53C,0xD53D,
-0xD540,0xD544,0xD54C,0xD54D,0xD54F,0xD551,0xD558,0xD559,
-0xD55C,0xD560,0xD565,0xD568,0xD569,0xD56B,0xD56D,0xD574,
-0xD575,0xD578,0xD57C,0xD584,0xD585,0xD587,0xD588,0xD589,
-0xD590,0xD5A5,0xD5C8,0xD5C9,0xD5CC,0xD5D0,0xD5D2,0xD5D8,
-0xD5D9,0xD5DB,0xD5DD,0xD5E4,0xD5E5,0xD5E8,0xD5EC,0xD5F4,
-0xD5F5,0xD5F7,0xD5F9,0xD600,0xD601,0xD604,0xD608,0xD610,
-0xD611,0xD613,0xD614,0xD615,0xD61C,0xD620, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD624,0xD62D,0xD638,0xD639,0xD63C,0xD640,0xD645,0xD648,
-0xD649,0xD64B,0xD64D,0xD651,0xD654,0xD655,0xD658,0xD65C,
-0xD667,0xD669,0xD670,0xD671,0xD674,0xD683,0xD685,0xD68C,
-0xD68D,0xD690,0xD694,0xD69D,0xD69F,0xD6A1,0xD6A8,0xD6AC,
-0xD6B0,0xD6B9,0xD6BB,0xD6C4,0xD6C5,0xD6C8,0xD6CC,0xD6D1,
-0xD6D4,0xD6D7,0xD6D9,0xD6E0,0xD6E4,0xD6E8,0xD6F0,0xD6F5,
-0xD6FC,0xD6FD,0xD700,0xD704,0xD711,0xD718,0xD719,0xD71C,
-0xD720,0xD728,0xD729,0xD72B,0xD72D,0xD734,0xD735,0xD738,
-0xD73C,0xD744,0xD747,0xD749,0xD750,0xD751,0xD754,0xD756,
-0xD757,0xD758,0xD759,0xD760,0xD761,0xD763,0xD765,0xD769,
-0xD76C,0xD770,0xD774,0xD77C,0xD77D,0xD781,0xD788,0xD789,
-0xD78C,0xD790,0xD798,0xD799,0xD79B,0xD79D};
-
-/* page 1 0xCAA1-0xFDFE */
-static uint16 tab_ksc5601_uni1[]={
-0x4F3D,0x4F73,0x5047,0x50F9,0x52A0,0x53EF,0x5475,0x54E5,
-0x5609,0x5AC1,0x5BB6,0x6687,0x67B6,0x67B7,0x67EF,0x6B4C,
-0x73C2,0x75C2,0x7A3C,0x82DB,0x8304,0x8857,0x8888,0x8A36,
-0x8CC8,0x8DCF,0x8EFB,0x8FE6,0x99D5,0x523B,0x5374,0x5404,
-0x606A,0x6164,0x6BBC,0x73CF,0x811A,0x89BA,0x89D2,0x95A3,
-0x4F83,0x520A,0x58BE,0x5978,0x59E6,0x5E72,0x5E79,0x61C7,
-0x63C0,0x6746,0x67EC,0x687F,0x6F97,0x764E,0x770B,0x78F5,
-0x7A08,0x7AFF,0x7C21,0x809D,0x826E,0x8271,0x8AEB,0x9593,
-0x4E6B,0x559D,0x66F7,0x6E34,0x78A3,0x7AED,0x845B,0x8910,
-0x874E,0x97A8,0x52D8,0x574E,0x582A,0x5D4C,0x611F,0x61BE,
-0x6221,0x6562,0x67D1,0x6A44,0x6E1B,0x7518,0x75B3,0x76E3,
-0x77B0,0x7D3A,0x90AF,0x9451,0x9452,0x9F95, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5323,0x5CAC,0x7532,0x80DB,0x9240,0x9598,0x525B,0x5808,
-0x59DC,0x5CA1,0x5D17,0x5EB7,0x5F3A,0x5F4A,0x6177,0x6C5F,
-0x757A,0x7586,0x7CE0,0x7D73,0x7DB1,0x7F8C,0x8154,0x8221,
-0x8591,0x8941,0x8B1B,0x92FC,0x964D,0x9C47,0x4ECB,0x4EF7,
-0x500B,0x51F1,0x584F,0x6137,0x613E,0x6168,0x6539,0x69EA,
-0x6F11,0x75A5,0x7686,0x76D6,0x7B87,0x82A5,0x84CB,0xF900,
-0x93A7,0x958B,0x5580,0x5BA2,0x5751,0xF901,0x7CB3,0x7FB9,
-0x91B5,0x5028,0x53BB,0x5C45,0x5DE8,0x62D2,0x636E,0x64DA,
-0x64E7,0x6E20,0x70AC,0x795B,0x8DDD,0x8E1E,0xF902,0x907D,
-0x9245,0x92F8,0x4E7E,0x4EF6,0x5065,0x5DFE,0x5EFA,0x6106,
-0x6957,0x8171,0x8654,0x8E47,0x9375,0x9A2B,0x4E5E,0x5091,
-0x6770,0x6840,0x5109,0x528D,0x5292,0x6AA2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x77BC,0x9210,0x9ED4,0x52AB,0x602F,0x8FF2,0x5048,0x61A9,
-0x63ED,0x64CA,0x683C,0x6A84,0x6FC0,0x8188,0x89A1,0x9694,
-0x5805,0x727D,0x72AC,0x7504,0x7D79,0x7E6D,0x80A9,0x898B,
-0x8B74,0x9063,0x9D51,0x6289,0x6C7A,0x6F54,0x7D50,0x7F3A,
-0x8A23,0x517C,0x614A,0x7B9D,0x8B19,0x9257,0x938C,0x4EAC,
-0x4FD3,0x501E,0x50BE,0x5106,0x52C1,0x52CD,0x537F,0x5770,
-0x5883,0x5E9A,0x5F91,0x6176,0x61AC,0x64CE,0x656C,0x666F,
-0x66BB,0x66F4,0x6897,0x6D87,0x7085,0x70F1,0x749F,0x74A5,
-0x74CA,0x75D9,0x786C,0x78EC,0x7ADF,0x7AF6,0x7D45,0x7D93,
-0x8015,0x803F,0x811B,0x8396,0x8B66,0x8F15,0x9015,0x93E1,
-0x9803,0x9838,0x9A5A,0x9BE8,0x4FC2,0x5553,0x583A,0x5951,
-0x5B63,0x5C46,0x60B8,0x6212,0x6842,0x68B0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x68E8,0x6EAA,0x754C,0x7678,0x78CE,0x7A3D,0x7CFB,0x7E6B,
-0x7E7C,0x8A08,0x8AA1,0x8C3F,0x968E,0x9DC4,0x53E4,0x53E9,
-0x544A,0x5471,0x56FA,0x59D1,0x5B64,0x5C3B,0x5EAB,0x62F7,
-0x6537,0x6545,0x6572,0x66A0,0x67AF,0x69C1,0x6CBD,0x75FC,
-0x7690,0x777E,0x7A3F,0x7F94,0x8003,0x80A1,0x818F,0x82E6,
-0x82FD,0x83F0,0x85C1,0x8831,0x88B4,0x8AA5,0xF903,0x8F9C,
-0x932E,0x96C7,0x9867,0x9AD8,0x9F13,0x54ED,0x659B,0x66F2,
-0x688F,0x7A40,0x8C37,0x9D60,0x56F0,0x5764,0x5D11,0x6606,
-0x68B1,0x68CD,0x6EFE,0x7428,0x889E,0x9BE4,0x6C68,0xF904,
-0x9AA8,0x4F9B,0x516C,0x5171,0x529F,0x5B54,0x5DE5,0x6050,
-0x606D,0x62F1,0x63A7,0x653B,0x73D9,0x7A7A,0x86A3,0x8CA2,
-0x978F,0x4E32,0x5BE1,0x6208,0x679C,0x74DC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x79D1,0x83D3,0x8A87,0x8AB2,0x8DE8,0x904E,0x934B,0x9846,
-0x5ED3,0x69E8,0x85FF,0x90ED,0xF905,0x51A0,0x5B98,0x5BEC,
-0x6163,0x68FA,0x6B3E,0x704C,0x742F,0x74D8,0x7BA1,0x7F50,
-0x83C5,0x89C0,0x8CAB,0x95DC,0x9928,0x522E,0x605D,0x62EC,
-0x9002,0x4F8A,0x5149,0x5321,0x58D9,0x5EE3,0x66E0,0x6D38,
-0x709A,0x72C2,0x73D6,0x7B50,0x80F1,0x945B,0x5366,0x639B,
-0x7F6B,0x4E56,0x5080,0x584A,0x58DE,0x602A,0x6127,0x62D0,
-0x69D0,0x9B41,0x5B8F,0x7D18,0x80B1,0x8F5F,0x4EA4,0x50D1,
-0x54AC,0x55AC,0x5B0C,0x5DA0,0x5DE7,0x652A,0x654E,0x6821,
-0x6A4B,0x72E1,0x768E,0x77EF,0x7D5E,0x7FF9,0x81A0,0x854E,
-0x86DF,0x8F03,0x8F4E,0x90CA,0x9903,0x9A55,0x9BAB,0x4E18,
-0x4E45,0x4E5D,0x4EC7,0x4FF1,0x5177,0x52FE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5340,0x53E3,0x53E5,0x548E,0x5614,0x5775,0x57A2,0x5BC7,
-0x5D87,0x5ED0,0x61FC,0x62D8,0x6551,0x67B8,0x67E9,0x69CB,
-0x6B50,0x6BC6,0x6BEC,0x6C42,0x6E9D,0x7078,0x72D7,0x7396,
-0x7403,0x77BF,0x77E9,0x7A76,0x7D7F,0x8009,0x81FC,0x8205,
-0x820A,0x82DF,0x8862,0x8B33,0x8CFC,0x8EC0,0x9011,0x90B1,
-0x9264,0x92B6,0x99D2,0x9A45,0x9CE9,0x9DD7,0x9F9C,0x570B,
-0x5C40,0x83CA,0x97A0,0x97AB,0x9EB4,0x541B,0x7A98,0x7FA4,
-0x88D9,0x8ECD,0x90E1,0x5800,0x5C48,0x6398,0x7A9F,0x5BAE,
-0x5F13,0x7A79,0x7AAE,0x828E,0x8EAC,0x5026,0x5238,0x52F8,
-0x5377,0x5708,0x62F3,0x6372,0x6B0A,0x6DC3,0x7737,0x53A5,
-0x7357,0x8568,0x8E76,0x95D5,0x673A,0x6AC3,0x6F70,0x8A6D,
-0x8ECC,0x994B,0xF906,0x6677,0x6B78,0x8CB4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9B3C,0xF907,0x53EB,0x572D,0x594E,0x63C6,0x69FB,0x73EA,
-0x7845,0x7ABA,0x7AC5,0x7CFE,0x8475,0x898F,0x8D73,0x9035,
-0x95A8,0x52FB,0x5747,0x7547,0x7B60,0x83CC,0x921E,0xF908,
-0x6A58,0x514B,0x524B,0x5287,0x621F,0x68D8,0x6975,0x9699,
-0x50C5,0x52A4,0x52E4,0x61C3,0x65A4,0x6839,0x69FF,0x747E,
-0x7B4B,0x82B9,0x83EB,0x89B2,0x8B39,0x8FD1,0x9949,0xF909,
-0x4ECA,0x5997,0x64D2,0x6611,0x6A8E,0x7434,0x7981,0x79BD,
-0x82A9,0x887E,0x887F,0x895F,0xF90A,0x9326,0x4F0B,0x53CA,
-0x6025,0x6271,0x6C72,0x7D1A,0x7D66,0x4E98,0x5162,0x77DC,
-0x80AF,0x4F01,0x4F0E,0x5176,0x5180,0x55DC,0x5668,0x573B,
-0x57FA,0x57FC,0x5914,0x5947,0x5993,0x5BC4,0x5C90,0x5D0E,
-0x5DF1,0x5E7E,0x5FCC,0x6280,0x65D7,0x65E3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x671E,0x671F,0x675E,0x68CB,0x68C4,0x6A5F,0x6B3A,0x6C23,
-0x6C7D,0x6C82,0x6DC7,0x7398,0x7426,0x742A,0x7482,0x74A3,
-0x7578,0x757F,0x7881,0x78EF,0x7941,0x7947,0x7948,0x797A,
-0x7B95,0x7D00,0x7DBA,0x7F88,0x8006,0x802D,0x808C,0x8A18,
-0x8B4F,0x8C48,0x8D77,0x9321,0x9324,0x98E2,0x9951,0x9A0E,
-0x9A0F,0x9A65,0x9E92,0x7DCA,0x4F76,0x5409,0x62EE,0x6854,
-0x91D1,0x55AB,0x513A,0xF90B,0xF90C,0x5A1C,0x61E6,0xF90D,
-0x62CF,0x62FF,0xF90E,0xF90F,0xF910,0xF911,0xF912,0xF913,
-0x90A3,0xF914,0xF915,0xF916,0xF917,0xF918,0x8AFE,0xF919,
-0xF91A,0xF91B,0xF91C,0x6696,0xF91D,0x7156,0xF91E,0xF91F,
-0x96E3,0xF920,0x634F,0x637A,0x5357,0xF921,0x678F,0x6960,
-0x6E73,0xF922,0x7537,0xF923,0xF924,0xF925, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7D0D,0xF926,0xF927,0x8872,0x56CA,0x5A18,0xF928,0xF929,
-0xF92A,0xF92B,0xF92C,0x4E43,0xF92D,0x5167,0x5948,0x67F0,
-0x8010,0xF92E,0x5973,0x5E74,0x649A,0x79CA,0x5FF5,0x606C,
-0x62C8,0x637B,0x5BE7,0x5BD7,0x52AA,0xF92F,0x5974,0x5F29,
-0x6012,0xF930,0xF931,0xF932,0x7459,0xF933,0xF934,0xF935,
-0xF936,0xF937,0xF938,0x99D1,0xF939,0xF93A,0xF93B,0xF93C,
-0xF93D,0xF93E,0xF93F,0xF940,0xF941,0xF942,0xF943,0x6FC3,
-0xF944,0xF945,0x81BF,0x8FB2,0x60F1,0xF946,0xF947,0x8166,
-0xF948,0xF949,0x5C3F,0xF94A,0xF94B,0xF94C,0xF94D,0xF94E,
-0xF94F,0xF950,0xF951,0x5AE9,0x8A25,0x677B,0x7D10,0xF952,
-0xF953,0xF954,0xF955,0xF956,0xF957,0x80FD,0xF958,0xF959,
-0x5C3C,0x6CE5,0x533F,0x6EBA,0x591A,0x8336, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E39,0x4EB6,0x4F46,0x55AE,0x5718,0x58C7,0x5F56,0x65B7,
-0x65E6,0x6A80,0x6BB5,0x6E4D,0x77ED,0x7AEF,0x7C1E,0x7DDE,
-0x86CB,0x8892,0x9132,0x935B,0x64BB,0x6FBE,0x737A,0x75B8,
-0x9054,0x5556,0x574D,0x61BA,0x64D4,0x66C7,0x6DE1,0x6E5B,
-0x6F6D,0x6FB9,0x75F0,0x8043,0x81BD,0x8541,0x8983,0x8AC7,
-0x8B5A,0x931F,0x6C93,0x7553,0x7B54,0x8E0F,0x905D,0x5510,
-0x5802,0x5858,0x5E62,0x6207,0x649E,0x68E0,0x7576,0x7CD6,
-0x87B3,0x9EE8,0x4EE3,0x5788,0x576E,0x5927,0x5C0D,0x5CB1,
-0x5E36,0x5F85,0x6234,0x64E1,0x73B3,0x81FA,0x888B,0x8CB8,
-0x968A,0x9EDB,0x5B85,0x5FB7,0x60B3,0x5012,0x5200,0x5230,
-0x5716,0x5835,0x5857,0x5C0E,0x5C60,0x5CF6,0x5D8B,0x5EA6,
-0x5F92,0x60BC,0x6311,0x6389,0x6417,0x6843, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x68F9,0x6AC2,0x6DD8,0x6E21,0x6ED4,0x6FE4,0x71FE,0x76DC,
-0x7779,0x79B1,0x7A3B,0x8404,0x89A9,0x8CED,0x8DF3,0x8E48,
-0x9003,0x9014,0x9053,0x90FD,0x934D,0x9676,0x97DC,0x6BD2,
-0x7006,0x7258,0x72A2,0x7368,0x7763,0x79BF,0x7BE4,0x7E9B,
-0x8B80,0x58A9,0x60C7,0x6566,0x65FD,0x66BE,0x6C8C,0x711E,
-0x71C9,0x8C5A,0x9813,0x4E6D,0x7A81,0x4EDD,0x51AC,0x51CD,
-0x52D5,0x540C,0x61A7,0x6771,0x6850,0x68DF,0x6D1E,0x6F7C,
-0x75BC,0x77B3,0x7AE5,0x80F4,0x8463,0x9285,0x515C,0x6597,
-0x675C,0x6793,0x75D8,0x7AC7,0x8373,0xF95A,0x8C46,0x9017,
-0x982D,0x5C6F,0x81C0,0x829A,0x9041,0x906F,0x920D,0x5F97,
-0x5D9D,0x6A59,0x71C8,0x767B,0x7B49,0x85E4,0x8B04,0x9127,
-0x9A30,0x5587,0x61F6,0xF95B,0x7669,0x7F85, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x863F,0x87BA,0x88F8,0x908F,0xF95C,0x6D1B,0x70D9,0x73DE,
-0x7D61,0x843D,0xF95D,0x916A,0x99F1,0xF95E,0x4E82,0x5375,
-0x6B04,0x6B12,0x703E,0x721B,0x862D,0x9E1E,0x524C,0x8FA3,
-0x5D50,0x64E5,0x652C,0x6B16,0x6FEB,0x7C43,0x7E9C,0x85CD,
-0x8964,0x89BD,0x62C9,0x81D8,0x881F,0x5ECA,0x6717,0x6D6A,
-0x72FC,0x7405,0x746F,0x8782,0x90DE,0x4F86,0x5D0D,0x5FA0,
-0x840A,0x51B7,0x63A0,0x7565,0x4EAE,0x5006,0x5169,0x51C9,
-0x6881,0x6A11,0x7CAE,0x7CB1,0x7CE7,0x826F,0x8AD2,0x8F1B,
-0x91CF,0x4FB6,0x5137,0x52F5,0x5442,0x5EEC,0x616E,0x623E,
-0x65C5,0x6ADA,0x6FFE,0x792A,0x85DC,0x8823,0x95AD,0x9A62,
-0x9A6A,0x9E97,0x9ECE,0x529B,0x66C6,0x6B77,0x701D,0x792B,
-0x8F62,0x9742,0x6190,0x6200,0x6523,0x6F23, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7149,0x7489,0x7DF4,0x806F,0x84EE,0x8F26,0x9023,0x934A,
-0x51BD,0x5217,0x52A3,0x6D0C,0x70C8,0x88C2,0x5EC9,0x6582,
-0x6BAE,0x6FC2,0x7C3E,0x7375,0x4EE4,0x4F36,0x56F9,0xF95F,
-0x5CBA,0x5DBA,0x601C,0x73B2,0x7B2D,0x7F9A,0x7FCE,0x8046,
-0x901E,0x9234,0x96F6,0x9748,0x9818,0x9F61,0x4F8B,0x6FA7,
-0x79AE,0x91B4,0x96B7,0x52DE,0xF960,0x6488,0x64C4,0x6AD3,
-0x6F5E,0x7018,0x7210,0x76E7,0x8001,0x8606,0x865C,0x8DEF,
-0x8F05,0x9732,0x9B6F,0x9DFA,0x9E75,0x788C,0x797F,0x7DA0,
-0x83C9,0x9304,0x9E7F,0x9E93,0x8AD6,0x58DF,0x5F04,0x6727,
-0x7027,0x74CF,0x7C60,0x807E,0x5121,0x7028,0x7262,0x78CA,
-0x8CC2,0x8CDA,0x8CF4,0x96F7,0x4E86,0x50DA,0x5BEE,0x5ED6,
-0x6599,0x71CE,0x7642,0x77AD,0x804A,0x84FC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x907C,0x9B27,0x9F8D,0x58D8,0x5A41,0x5C62,0x6A13,0x6DDA,
-0x6F0F,0x763B,0x7D2F,0x7E37,0x851E,0x8938,0x93E4,0x964B,
-0x5289,0x65D2,0x67F3,0x69B4,0x6D41,0x6E9C,0x700F,0x7409,
-0x7460,0x7559,0x7624,0x786B,0x8B2C,0x985E,0x516D,0x622E,
-0x9678,0x4F96,0x502B,0x5D19,0x6DEA,0x7DB8,0x8F2A,0x5F8B,
-0x6144,0x6817,0xF961,0x9686,0x52D2,0x808B,0x51DC,0x51CC,
-0x695E,0x7A1C,0x7DBE,0x83F1,0x9675,0x4FDA,0x5229,0x5398,
-0x540F,0x550E,0x5C65,0x60A7,0x674E,0x68A8,0x6D6C,0x7281,
-0x72F8,0x7406,0x7483,0xF962,0x75E2,0x7C6C,0x7F79,0x7FB8,
-0x8389,0x88CF,0x88E1,0x91CC,0x91D0,0x96E2,0x9BC9,0x541D,
-0x6F7E,0x71D0,0x7498,0x85FA,0x8EAA,0x96A3,0x9C57,0x9E9F,
-0x6797,0x6DCB,0x7433,0x81E8,0x9716,0x782C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7ACB,0x7B20,0x7C92,0x6469,0x746A,0x75F2,0x78BC,0x78E8,
-0x99AC,0x9B54,0x9EBB,0x5BDE,0x5E55,0x6F20,0x819C,0x83AB,
-0x9088,0x4E07,0x534D,0x5A29,0x5DD2,0x5F4E,0x6162,0x633D,
-0x6669,0x66FC,0x6EFF,0x6F2B,0x7063,0x779E,0x842C,0x8513,
-0x883B,0x8F13,0x9945,0x9C3B,0x551C,0x62B9,0x672B,0x6CAB,
-0x8309,0x896A,0x977A,0x4EA1,0x5984,0x5FD8,0x5FD9,0x671B,
-0x7DB2,0x7F54,0x8292,0x832B,0x83BD,0x8F1E,0x9099,0x57CB,
-0x59B9,0x5A92,0x5BD0,0x6627,0x679A,0x6885,0x6BCF,0x7164,
-0x7F75,0x8CB7,0x8CE3,0x9081,0x9B45,0x8108,0x8C8A,0x964C,
-0x9A40,0x9EA5,0x5B5F,0x6C13,0x731B,0x76F2,0x76DF,0x840C,
-0x51AA,0x8993,0x514D,0x5195,0x52C9,0x68C9,0x6C94,0x7704,
-0x7720,0x7DBF,0x7DEC,0x9762,0x9EB5,0x6EC5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8511,0x51A5,0x540D,0x547D,0x660E,0x669D,0x6927,0x6E9F,
-0x76BF,0x7791,0x8317,0x84C2,0x879F,0x9169,0x9298,0x9CF4,
-0x8882,0x4FAE,0x5192,0x52DF,0x59C6,0x5E3D,0x6155,0x6478,
-0x6479,0x66AE,0x67D0,0x6A21,0x6BCD,0x6BDB,0x725F,0x7261,
-0x7441,0x7738,0x77DB,0x8017,0x82BC,0x8305,0x8B00,0x8B28,
-0x8C8C,0x6728,0x6C90,0x7267,0x76EE,0x7766,0x7A46,0x9DA9,
-0x6B7F,0x6C92,0x5922,0x6726,0x8499,0x536F,0x5893,0x5999,
-0x5EDF,0x63CF,0x6634,0x6773,0x6E3A,0x732B,0x7AD7,0x82D7,
-0x9328,0x52D9,0x5DEB,0x61AE,0x61CB,0x620A,0x62C7,0x64AB,
-0x65E0,0x6959,0x6B66,0x6BCB,0x7121,0x73F7,0x755D,0x7E46,
-0x821E,0x8302,0x856A,0x8AA3,0x8CBF,0x9727,0x9D61,0x58A8,
-0x9ED8,0x5011,0x520E,0x543B,0x554F,0x6587, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C76,0x7D0A,0x7D0B,0x805E,0x868A,0x9580,0x96EF,0x52FF,
-0x6C95,0x7269,0x5473,0x5A9A,0x5C3E,0x5D4B,0x5F4C,0x5FAE,
-0x672A,0x68B6,0x6963,0x6E3C,0x6E44,0x7709,0x7C73,0x7F8E,
-0x8587,0x8B0E,0x8FF7,0x9761,0x9EF4,0x5CB7,0x60B6,0x610D,
-0x61AB,0x654F,0x65FB,0x65FC,0x6C11,0x6CEF,0x739F,0x73C9,
-0x7DE1,0x9594,0x5BC6,0x871C,0x8B10,0x525D,0x535A,0x62CD,
-0x640F,0x64B2,0x6734,0x6A38,0x6CCA,0x73C0,0x749E,0x7B94,
-0x7C95,0x7E1B,0x818A,0x8236,0x8584,0x8FEB,0x96F9,0x99C1,
-0x4F34,0x534A,0x53CD,0x53DB,0x62CC,0x642C,0x6500,0x6591,
-0x69C3,0x6CEE,0x6F58,0x73ED,0x7554,0x7622,0x76E4,0x76FC,
-0x78D0,0x78FB,0x792C,0x7D46,0x822C,0x87E0,0x8FD4,0x9812,
-0x98EF,0x52C3,0x62D4,0x64A5,0x6E24,0x6F51, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x767C,0x8DCB,0x91B1,0x9262,0x9AEE,0x9B43,0x5023,0x508D,
-0x574A,0x59A8,0x5C28,0x5E47,0x5F77,0x623F,0x653E,0x65B9,
-0x65C1,0x6609,0x678B,0x699C,0x6EC2,0x78C5,0x7D21,0x80AA,
-0x8180,0x822B,0x82B3,0x84A1,0x868C,0x8A2A,0x8B17,0x90A6,
-0x9632,0x9F90,0x500D,0x4FF3,0xF963,0x57F9,0x5F98,0x62DC,
-0x6392,0x676F,0x6E43,0x7119,0x76C3,0x80CC,0x80DA,0x88F4,
-0x88F5,0x8919,0x8CE0,0x8F29,0x914D,0x966A,0x4F2F,0x4F70,
-0x5E1B,0x67CF,0x6822,0x767D,0x767E,0x9B44,0x5E61,0x6A0A,
-0x7169,0x71D4,0x756A,0xF964,0x7E41,0x8543,0x85E9,0x98DC,
-0x4F10,0x7B4F,0x7F70,0x95A5,0x51E1,0x5E06,0x68B5,0x6C3E,
-0x6C4E,0x6CDB,0x72AF,0x7BC4,0x8303,0x6CD5,0x743A,0x50FB,
-0x5288,0x58C1,0x64D8,0x6A97,0x74A7,0x7656, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x78A7,0x8617,0x95E2,0x9739,0xF965,0x535E,0x5F01,0x8B8A,
-0x8FA8,0x8FAF,0x908A,0x5225,0x77A5,0x9C49,0x9F08,0x4E19,
-0x5002,0x5175,0x5C5B,0x5E77,0x661E,0x663A,0x67C4,0x68C5,
-0x70B3,0x7501,0x75C5,0x79C9,0x7ADD,0x8F27,0x9920,0x9A08,
-0x4FDD,0x5821,0x5831,0x5BF6,0x666E,0x6B65,0x6D11,0x6E7A,
-0x6F7D,0x73E4,0x752B,0x83E9,0x88DC,0x8913,0x8B5C,0x8F14,
-0x4F0F,0x50D5,0x5310,0x535C,0x5B93,0x5FA9,0x670D,0x798F,
-0x8179,0x832F,0x8514,0x8907,0x8986,0x8F39,0x8F3B,0x99A5,
-0x9C12,0x672C,0x4E76,0x4FF8,0x5949,0x5C01,0x5CEF,0x5CF0,
-0x6367,0x68D2,0x70FD,0x71A2,0x742B,0x7E2B,0x84EC,0x8702,
-0x9022,0x92D2,0x9CF3,0x4E0D,0x4ED8,0x4FEF,0x5085,0x5256,
-0x526F,0x5426,0x5490,0x57E0,0x592B,0x5A66, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5B5A,0x5B75,0x5BCC,0x5E9C,0xF966,0x6276,0x6577,0x65A7,
-0x6D6E,0x6EA5,0x7236,0x7B26,0x7C3F,0x7F36,0x8150,0x8151,
-0x819A,0x8240,0x8299,0x83A9,0x8A03,0x8CA0,0x8CE6,0x8CFB,
-0x8D74,0x8DBA,0x90E8,0x91DC,0x961C,0x9644,0x99D9,0x9CE7,
-0x5317,0x5206,0x5429,0x5674,0x58B3,0x5954,0x596E,0x5FFF,
-0x61A4,0x626E,0x6610,0x6C7E,0x711A,0x76C6,0x7C89,0x7CDE,
-0x7D1B,0x82AC,0x8CC1,0x96F0,0xF967,0x4F5B,0x5F17,0x5F7F,
-0x62C2,0x5D29,0x670B,0x68DA,0x787C,0x7E43,0x9D6C,0x4E15,
-0x5099,0x5315,0x532A,0x5351,0x5983,0x5A62,0x5E87,0x60B2,
-0x618A,0x6249,0x6279,0x6590,0x6787,0x69A7,0x6BD4,0x6BD6,
-0x6BD7,0x6BD8,0x6CB8,0xF968,0x7435,0x75FA,0x7812,0x7891,
-0x79D5,0x79D8,0x7C83,0x7DCB,0x7FE1,0x80A5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x813E,0x81C2,0x83F2,0x871A,0x88E8,0x8AB9,0x8B6C,0x8CBB,
-0x9119,0x975E,0x98DB,0x9F3B,0x56AC,0x5B2A,0x5F6C,0x658C,
-0x6AB3,0x6BAF,0x6D5C,0x6FF1,0x7015,0x725D,0x73AD,0x8CA7,
-0x8CD3,0x983B,0x6191,0x6C37,0x8058,0x9A01,0x4E4D,0x4E8B,
-0x4E9B,0x4ED5,0x4F3A,0x4F3C,0x4F7F,0x4FDF,0x50FF,0x53F2,
-0x53F8,0x5506,0x55E3,0x56DB,0x58EB,0x5962,0x5A11,0x5BEB,
-0x5BFA,0x5C04,0x5DF3,0x5E2B,0x5F99,0x601D,0x6368,0x659C,
-0x65AF,0x67F6,0x67FB,0x68AD,0x6B7B,0x6C99,0x6CD7,0x6E23,
-0x7009,0x7345,0x7802,0x793E,0x7940,0x7960,0x79C1,0x7BE9,
-0x7D17,0x7D72,0x8086,0x820D,0x838E,0x84D1,0x86C7,0x88DF,
-0x8A50,0x8A5E,0x8B1D,0x8CDC,0x8D66,0x8FAD,0x90AA,0x98FC,
-0x99DF,0x9E9D,0x524A,0xF969,0x6714,0xF96A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5098,0x522A,0x5C71,0x6563,0x6C55,0x73CA,0x7523,0x759D,
-0x7B97,0x849C,0x9178,0x9730,0x4E77,0x6492,0x6BBA,0x715E,
-0x85A9,0x4E09,0xF96B,0x6749,0x68EE,0x6E17,0x829F,0x8518,
-0x886B,0x63F7,0x6F81,0x9212,0x98AF,0x4E0A,0x50B7,0x50CF,
-0x511F,0x5546,0x55AA,0x5617,0x5B40,0x5C19,0x5CE0,0x5E38,
-0x5E8A,0x5EA0,0x5EC2,0x60F3,0x6851,0x6A61,0x6E58,0x723D,
-0x7240,0x72C0,0x76F8,0x7965,0x7BB1,0x7FD4,0x88F3,0x89F4,
-0x8A73,0x8C61,0x8CDE,0x971C,0x585E,0x74BD,0x8CFD,0x55C7,
-0xF96C,0x7A61,0x7D22,0x8272,0x7272,0x751F,0x7525,0xF96D,
-0x7B19,0x5885,0x58FB,0x5DBC,0x5E8F,0x5EB6,0x5F90,0x6055,
-0x6292,0x637F,0x654D,0x6691,0x66D9,0x66F8,0x6816,0x68F2,
-0x7280,0x745E,0x7B6E,0x7D6E,0x7DD6,0x7F72, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x80E5,0x8212,0x85AF,0x897F,0x8A93,0x901D,0x92E4,0x9ECD,
-0x9F20,0x5915,0x596D,0x5E2D,0x60DC,0x6614,0x6673,0x6790,
-0x6C50,0x6DC5,0x6F5F,0x77F3,0x78A9,0x84C6,0x91CB,0x932B,
-0x4ED9,0x50CA,0x5148,0x5584,0x5B0B,0x5BA3,0x6247,0x657E,
-0x65CB,0x6E32,0x717D,0x7401,0x7444,0x7487,0x74BF,0x766C,
-0x79AA,0x7DDA,0x7E55,0x7FA8,0x817A,0x81B3,0x8239,0x861A,
-0x87EC,0x8A75,0x8DE3,0x9078,0x9291,0x9425,0x994D,0x9BAE,
-0x5368,0x5C51,0x6954,0x6CC4,0x6D29,0x6E2B,0x820C,0x859B,
-0x893B,0x8A2D,0x8AAA,0x96EA,0x9F67,0x5261,0x66B9,0x6BB2,
-0x7E96,0x87FE,0x8D0D,0x9583,0x965D,0x651D,0x6D89,0x71EE,
-0xF96E,0x57CE,0x59D3,0x5BAC,0x6027,0x60FA,0x6210,0x661F,
-0x665F,0x7329,0x73F9,0x76DB,0x7701,0x7B6C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8056,0x8072,0x8165,0x8AA0,0x9192,0x4E16,0x52E2,0x6B72,
-0x6D17,0x7A05,0x7B39,0x7D30,0xF96F,0x8CB0,0x53EC,0x562F,
-0x5851,0x5BB5,0x5C0F,0x5C11,0x5DE2,0x6240,0x6383,0x6414,
-0x662D,0x68B3,0x6CBC,0x6D88,0x6EAF,0x701F,0x70A4,0x71D2,
-0x7526,0x758F,0x758E,0x7619,0x7B11,0x7BE0,0x7C2B,0x7D20,
-0x7D39,0x852C,0x856D,0x8607,0x8A34,0x900D,0x9061,0x90B5,
-0x92B7,0x97F6,0x9A37,0x4FD7,0x5C6C,0x675F,0x6D91,0x7C9F,
-0x7E8C,0x8B16,0x8D16,0x901F,0x5B6B,0x5DFD,0x640D,0x84C0,
-0x905C,0x98E1,0x7387,0x5B8B,0x609A,0x677E,0x6DDE,0x8A1F,
-0x8AA6,0x9001,0x980C,0x5237,0xF970,0x7051,0x788E,0x9396,
-0x8870,0x91D7,0x4FEE,0x53D7,0x55FD,0x56DA,0x5782,0x58FD,
-0x5AC2,0x5B88,0x5CAB,0x5CC0,0x5E25,0x6101, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x620D,0x624B,0x6388,0x641C,0x6536,0x6578,0x6A39,0x6B8A,
-0x6C34,0x6D19,0x6F31,0x71E7,0x72E9,0x7378,0x7407,0x74B2,
-0x7626,0x7761,0x79C0,0x7A57,0x7AEA,0x7CB9,0x7D8F,0x7DAC,
-0x7E61,0x7F9E,0x8129,0x8331,0x8490,0x84DA,0x85EA,0x8896,
-0x8AB0,0x8B90,0x8F38,0x9042,0x9083,0x916C,0x9296,0x92B9,
-0x968B,0x96A7,0x96A8,0x96D6,0x9700,0x9808,0x9996,0x9AD3,
-0x9B1A,0x53D4,0x587E,0x5919,0x5B70,0x5BBF,0x6DD1,0x6F5A,
-0x719F,0x7421,0x74B9,0x8085,0x83FD,0x5DE1,0x5F87,0x5FAA,
-0x6042,0x65EC,0x6812,0x696F,0x6A53,0x6B89,0x6D35,0x6DF3,
-0x73E3,0x76FE,0x77AC,0x7B4D,0x7D14,0x8123,0x821C,0x8340,
-0x84F4,0x8563,0x8A62,0x8AC4,0x9187,0x931E,0x9806,0x99B4,
-0x620C,0x8853,0x8FF0,0x9265,0x5D07,0x5D27, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5D69,0x745F,0x819D,0x8768,0x6FD5,0x62FE,0x7FD2,0x8936,
-0x8972,0x4E1E,0x4E58,0x50E7,0x52DD,0x5347,0x627F,0x6607,
-0x7E69,0x8805,0x965E,0x4F8D,0x5319,0x5636,0x59CB,0x5AA4,
-0x5C38,0x5C4E,0x5C4D,0x5E02,0x5F11,0x6043,0x65BD,0x662F,
-0x6642,0x67BE,0x67F4,0x731C,0x77E2,0x793A,0x7FC5,0x8494,
-0x84CD,0x8996,0x8A66,0x8A69,0x8AE1,0x8C55,0x8C7A,0x57F4,
-0x5BD4,0x5F0F,0x606F,0x62ED,0x690D,0x6B96,0x6E5C,0x7184,
-0x7BD2,0x8755,0x8B58,0x8EFE,0x98DF,0x98FE,0x4F38,0x4F81,
-0x4FE1,0x547B,0x5A20,0x5BB8,0x613C,0x65B0,0x6668,0x71FC,
-0x7533,0x795E,0x7D33,0x814E,0x81E3,0x8398,0x85AA,0x85CE,
-0x8703,0x8A0A,0x8EAB,0x8F9B,0xF971,0x8FC5,0x5931,0x5BA4,
-0x5BE6,0x6089,0x5BE9,0x5C0B,0x5FC3,0x6C81, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF972,0x6DF1,0x700B,0x751A,0x82AF,0x8AF6,0x4EC0,0x5341,
-0xF973,0x96D9,0x6C0F,0x4E9E,0x4FC4,0x5152,0x555E,0x5A25,
-0x5CE8,0x6211,0x7259,0x82BD,0x83AA,0x86FE,0x8859,0x8A1D,
-0x963F,0x96C5,0x9913,0x9D09,0x9D5D,0x580A,0x5CB3,0x5DBD,
-0x5E44,0x60E1,0x6115,0x63E1,0x6A02,0x6E25,0x9102,0x9354,
-0x984E,0x9C10,0x9F77,0x5B89,0x5CB8,0x6309,0x664F,0x6848,
-0x773C,0x96C1,0x978D,0x9854,0x9B9F,0x65A1,0x8B01,0x8ECB,
-0x95BC,0x5535,0x5CA9,0x5DD6,0x5EB5,0x6697,0x764C,0x83F4,
-0x95C7,0x58D3,0x62BC,0x72CE,0x9D28,0x4EF0,0x592E,0x600F,
-0x663B,0x6B83,0x79E7,0x9D26,0x5393,0x54C0,0x57C3,0x5D16,
-0x611B,0x66D6,0x6DAF,0x788D,0x827E,0x9698,0x9744,0x5384,
-0x627C,0x6396,0x6DB2,0x7E0A,0x814B,0x984D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6AFB,0x7F4C,0x9DAF,0x9E1A,0x4E5F,0x503B,0x51B6,0x591C,
-0x60F9,0x63F6,0x6930,0x723A,0x8036,0xF974,0x91CE,0x5F31,
-0xF975,0xF976,0x7D04,0x82E5,0x846F,0x84BB,0x85E5,0x8E8D,
-0xF977,0x4F6F,0xF978,0xF979,0x58E4,0x5B43,0x6059,0x63DA,
-0x6518,0x656D,0x6698,0xF97A,0x694A,0x6A23,0x6D0B,0x7001,
-0x716C,0x75D2,0x760D,0x79B3,0x7A70,0xF97B,0x7F8A,0xF97C,
-0x8944,0xF97D,0x8B93,0x91C0,0x967D,0xF97E,0x990A,0x5704,
-0x5FA1,0x65BC,0x6F01,0x7600,0x79A6,0x8A9E,0x99AD,0x9B5A,
-0x9F6C,0x5104,0x61B6,0x6291,0x6A8D,0x81C6,0x5043,0x5830,
-0x5F66,0x7109,0x8A00,0x8AFA,0x5B7C,0x8616,0x4FFA,0x513C,
-0x56B4,0x5944,0x63A9,0x6DF9,0x5DAA,0x696D,0x5186,0x4E88,
-0x4F59,0xF97F,0xF980,0xF981,0x5982,0xF982, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF983,0x6B5F,0x6C5D,0xF984,0x74B5,0x7916,0xF985,0x8207,
-0x8245,0x8339,0x8F3F,0x8F5D,0xF986,0x9918,0xF987,0xF988,
-0xF989,0x4EA6,0xF98A,0x57DF,0x5F79,0x6613,0xF98B,0xF98C,
-0x75AB,0x7E79,0x8B6F,0xF98D,0x9006,0x9A5B,0x56A5,0x5827,
-0x59F8,0x5A1F,0x5BB4,0xF98E,0x5EF6,0xF98F,0xF990,0x6350,
-0x633B,0xF991,0x693D,0x6C87,0x6CBF,0x6D8E,0x6D93,0x6DF5,
-0x6F14,0xF992,0x70DF,0x7136,0x7159,0xF993,0x71C3,0x71D5,
-0xF994,0x784F,0x786F,0xF995,0x7B75,0x7DE3,0xF996,0x7E2F,
-0xF997,0x884D,0x8EDF,0xF998,0xF999,0xF99A,0x925B,0xF99B,
-0x9CF6,0xF99C,0xF99D,0xF99E,0x6085,0x6D85,0xF99F,0x71B1,
-0xF9A0,0xF9A1,0x95B1,0x53AD,0xF9A2,0xF9A3,0xF9A4,0x67D3,
-0xF9A5,0x708E,0x7130,0x7430,0x8276,0x82D2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF9A6,0x95BB,0x9AE5,0x9E7D,0x66C4,0xF9A7,0x71C1,0x8449,
-0xF9A8,0xF9A9,0x584B,0xF9AA,0xF9AB,0x5DB8,0x5F71,0xF9AC,
-0x6620,0x668E,0x6979,0x69AE,0x6C38,0x6CF3,0x6E36,0x6F41,
-0x6FDA,0x701B,0x702F,0x7150,0x71DF,0x7370,0xF9AD,0x745B,
-0xF9AE,0x74D4,0x76C8,0x7A4E,0x7E93,0xF9AF,0xF9B0,0x82F1,
-0x8A60,0x8FCE,0xF9B1,0x9348,0xF9B2,0x9719,0xF9B3,0xF9B4,
-0x4E42,0x502A,0xF9B5,0x5208,0x53E1,0x66F3,0x6C6D,0x6FCA,
-0x730A,0x777F,0x7A62,0x82AE,0x85DD,0x8602,0xF9B6,0x88D4,
-0x8A63,0x8B7D,0x8C6B,0xF9B7,0x92B3,0xF9B8,0x9713,0x9810,
-0x4E94,0x4F0D,0x4FC9,0x50B2,0x5348,0x543E,0x5433,0x55DA,
-0x5862,0x58BA,0x5967,0x5A1B,0x5BE4,0x609F,0xF9B9,0x61CA,
-0x6556,0x65FF,0x6664,0x68A7,0x6C5A,0x6FB3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x70CF,0x71AC,0x7352,0x7B7D,0x8708,0x8AA4,0x9C32,0x9F07,
-0x5C4B,0x6C83,0x7344,0x7389,0x923A,0x6EAB,0x7465,0x761F,
-0x7A69,0x7E15,0x860A,0x5140,0x58C5,0x64C1,0x74EE,0x7515,
-0x7670,0x7FC1,0x9095,0x96CD,0x9954,0x6E26,0x74E6,0x7AA9,
-0x7AAA,0x81E5,0x86D9,0x8778,0x8A1B,0x5A49,0x5B8C,0x5B9B,
-0x68A1,0x6900,0x6D63,0x73A9,0x7413,0x742C,0x7897,0x7DE9,
-0x7FEB,0x8118,0x8155,0x839E,0x8C4C,0x962E,0x9811,0x66F0,
-0x5F80,0x65FA,0x6789,0x6C6A,0x738B,0x502D,0x5A03,0x6B6A,
-0x77EE,0x5916,0x5D6C,0x5DCD,0x7325,0x754F,0xF9BA,0xF9BB,
-0x50E5,0x51F9,0x582F,0x592D,0x5996,0x59DA,0x5BE5,0xF9BC,
-0xF9BD,0x5DA2,0x62D7,0x6416,0x6493,0x64FE,0xF9BE,0x66DC,
-0xF9BF,0x6A48,0xF9C0,0x71FF,0x7464,0xF9C1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A88,0x7AAF,0x7E47,0x7E5E,0x8000,0x8170,0xF9C2,0x87EF,
-0x8981,0x8B20,0x9059,0xF9C3,0x9080,0x9952,0x617E,0x6B32,
-0x6D74,0x7E1F,0x8925,0x8FB1,0x4FD1,0x50AD,0x5197,0x52C7,
-0x57C7,0x5889,0x5BB9,0x5EB8,0x6142,0x6995,0x6D8C,0x6E67,
-0x6EB6,0x7194,0x7462,0x7528,0x752C,0x8073,0x8338,0x84C9,
-0x8E0A,0x9394,0x93DE,0xF9C4,0x4E8E,0x4F51,0x5076,0x512A,
-0x53C8,0x53CB,0x53F3,0x5B87,0x5BD3,0x5C24,0x611A,0x6182,
-0x65F4,0x725B,0x7397,0x7440,0x76C2,0x7950,0x7991,0x79B9,
-0x7D06,0x7FBD,0x828B,0x85D5,0x865E,0x8FC2,0x9047,0x90F5,
-0x91EA,0x9685,0x96E8,0x96E9,0x52D6,0x5F67,0x65ED,0x6631,
-0x682F,0x715C,0x7A36,0x90C1,0x980A,0x4E91,0xF9C5,0x6A52,
-0x6B9E,0x6F90,0x7189,0x8018,0x82B8,0x8553, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x904B,0x9695,0x96F2,0x97FB,0x851A,0x9B31,0x4E90,0x718A,
-0x96C4,0x5143,0x539F,0x54E1,0x5713,0x5712,0x57A3,0x5A9B,
-0x5AC4,0x5BC3,0x6028,0x613F,0x63F4,0x6C85,0x6D39,0x6E72,
-0x6E90,0x7230,0x733F,0x7457,0x82D1,0x8881,0x8F45,0x9060,
-0xF9C6,0x9662,0x9858,0x9D1B,0x6708,0x8D8A,0x925E,0x4F4D,
-0x5049,0x50DE,0x5371,0x570D,0x59D4,0x5A01,0x5C09,0x6170,
-0x6690,0x6E2D,0x7232,0x744B,0x7DEF,0x80C3,0x840E,0x8466,
-0x853F,0x875F,0x885B,0x8918,0x8B02,0x9055,0x97CB,0x9B4F,
-0x4E73,0x4F91,0x5112,0x516A,0xF9C7,0x552F,0x55A9,0x5B7A,
-0x5BA5,0x5E7C,0x5E7D,0x5EBE,0x60A0,0x60DF,0x6108,0x6109,
-0x63C4,0x6538,0x6709,0xF9C8,0x67D4,0x67DA,0xF9C9,0x6961,
-0x6962,0x6CB9,0x6D27,0xF9CA,0x6E38,0xF9CB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6FE1,0x7336,0x7337,0xF9CC,0x745C,0x7531,0xF9CD,0x7652,
-0xF9CE,0xF9CF,0x7DAD,0x81FE,0x8438,0x88D5,0x8A98,0x8ADB,
-0x8AED,0x8E30,0x8E42,0x904A,0x903E,0x907A,0x9149,0x91C9,
-0x936E,0xF9D0,0xF9D1,0x5809,0xF9D2,0x6BD3,0x8089,0x80B2,
-0xF9D3,0xF9D4,0x5141,0x596B,0x5C39,0xF9D5,0xF9D6,0x6F64,
-0x73A7,0x80E4,0x8D07,0xF9D7,0x9217,0x958F,0xF9D8,0xF9D9,
-0xF9DA,0xF9DB,0x807F,0x620E,0x701C,0x7D68,0x878D,0xF9DC,
-0x57A0,0x6069,0x6147,0x6BB7,0x8ABE,0x9280,0x96B1,0x4E59,
-0x541F,0x6DEB,0x852D,0x9670,0x97F3,0x98EE,0x63D6,0x6CE3,
-0x9091,0x51DD,0x61C9,0x81BA,0x9DF9,0x4F9D,0x501A,0x5100,
-0x5B9C,0x610F,0x61FF,0x64EC,0x6905,0x6BC5,0x7591,0x77E3,
-0x7FA9,0x8264,0x858F,0x87FB,0x8863,0x8ABC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B70,0x91AB,0x4E8C,0x4EE5,0x4F0A,0xF9DD,0xF9DE,0x5937,
-0x59E8,0xF9DF,0x5DF2,0x5F1B,0x5F5B,0x6021,0xF9E0,0xF9E1,
-0xF9E2,0xF9E3,0x723E,0x73E5,0xF9E4,0x7570,0x75CD,0xF9E5,
-0x79FB,0xF9E6,0x800C,0x8033,0x8084,0x82E1,0x8351,0xF9E7,
-0xF9E8,0x8CBD,0x8CB3,0x9087,0xF9E9,0xF9EA,0x98F4,0x990C,
-0xF9EB,0xF9EC,0x7037,0x76CA,0x7FCA,0x7FCC,0x7FFC,0x8B1A,
-0x4EBA,0x4EC1,0x5203,0x5370,0xF9ED,0x54BD,0x56E0,0x59FB,
-0x5BC5,0x5F15,0x5FCD,0x6E6E,0xF9EE,0xF9EF,0x7D6A,0x8335,
-0xF9F0,0x8693,0x8A8D,0xF9F1,0x976D,0x9777,0xF9F2,0xF9F3,
-0x4E00,0x4F5A,0x4F7E,0x58F9,0x65E5,0x6EA2,0x9038,0x93B0,
-0x99B9,0x4EFB,0x58EC,0x598A,0x59D9,0x6041,0xF9F4,0xF9F5,
-0x7A14,0xF9F6,0x834F,0x8CC3,0x5165,0x5344, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF9F7,0xF9F8,0xF9F9,0x4ECD,0x5269,0x5B55,0x82BF,0x4ED4,
-0x523A,0x54A8,0x59C9,0x59FF,0x5B50,0x5B57,0x5B5C,0x6063,
-0x6148,0x6ECB,0x7099,0x716E,0x7386,0x74F7,0x75B5,0x78C1,
-0x7D2B,0x8005,0x81EA,0x8328,0x8517,0x85C9,0x8AEE,0x8CC7,
-0x96CC,0x4F5C,0x52FA,0x56BC,0x65AB,0x6628,0x707C,0x70B8,
-0x7235,0x7DBD,0x828D,0x914C,0x96C0,0x9D72,0x5B71,0x68E7,
-0x6B98,0x6F7A,0x76DE,0x5C91,0x66AB,0x6F5B,0x7BB4,0x7C2A,
-0x8836,0x96DC,0x4E08,0x4ED7,0x5320,0x5834,0x58BB,0x58EF,
-0x596C,0x5C07,0x5E33,0x5E84,0x5F35,0x638C,0x66B2,0x6756,
-0x6A1F,0x6AA3,0x6B0C,0x6F3F,0x7246,0xF9FA,0x7350,0x748B,
-0x7AE0,0x7CA7,0x8178,0x81DF,0x81E7,0x838A,0x846C,0x8523,
-0x8594,0x85CF,0x88DD,0x8D13,0x91AC,0x9577, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x969C,0x518D,0x54C9,0x5728,0x5BB0,0x624D,0x6750,0x683D,
-0x6893,0x6E3D,0x6ED3,0x707D,0x7E21,0x88C1,0x8CA1,0x8F09,
-0x9F4B,0x9F4E,0x722D,0x7B8F,0x8ACD,0x931A,0x4F47,0x4F4E,
-0x5132,0x5480,0x59D0,0x5E95,0x62B5,0x6775,0x696E,0x6A17,
-0x6CAE,0x6E1A,0x72D9,0x732A,0x75BD,0x7BB8,0x7D35,0x82E7,
-0x83F9,0x8457,0x85F7,0x8A5B,0x8CAF,0x8E87,0x9019,0x90B8,
-0x96CE,0x9F5F,0x52E3,0x540A,0x5AE1,0x5BC2,0x6458,0x6575,
-0x6EF4,0x72C4,0xF9FB,0x7684,0x7A4D,0x7B1B,0x7C4D,0x7E3E,
-0x7FDF,0x837B,0x8B2B,0x8CCA,0x8D64,0x8DE1,0x8E5F,0x8FEA,
-0x8FF9,0x9069,0x93D1,0x4F43,0x4F7A,0x50B3,0x5168,0x5178,
-0x524D,0x526A,0x5861,0x587C,0x5960,0x5C08,0x5C55,0x5EDB,
-0x609B,0x6230,0x6813,0x6BBF,0x6C08,0x6FB1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x714E,0x7420,0x7530,0x7538,0x7551,0x7672,0x7B4C,0x7B8B,
-0x7BAD,0x7BC6,0x7E8F,0x8A6E,0x8F3E,0x8F49,0x923F,0x9293,
-0x9322,0x942B,0x96FB,0x985A,0x986B,0x991E,0x5207,0x622A,
-0x6298,0x6D59,0x7664,0x7ACA,0x7BC0,0x7D76,0x5360,0x5CBE,
-0x5E97,0x6F38,0x70B9,0x7C98,0x9711,0x9B8E,0x9EDE,0x63A5,
-0x647A,0x8776,0x4E01,0x4E95,0x4EAD,0x505C,0x5075,0x5448,
-0x59C3,0x5B9A,0x5E40,0x5EAD,0x5EF7,0x5F81,0x60C5,0x633A,
-0x653F,0x6574,0x65CC,0x6676,0x6678,0x67FE,0x6968,0x6A89,
-0x6B63,0x6C40,0x6DC0,0x6DE8,0x6E1F,0x6E5E,0x701E,0x70A1,
-0x738E,0x73FD,0x753A,0x775B,0x7887,0x798E,0x7A0B,0x7A7D,
-0x7CBE,0x7D8E,0x8247,0x8A02,0x8AEA,0x8C9E,0x912D,0x914A,
-0x91D8,0x9266,0x92CC,0x9320,0x9706,0x9756, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x975C,0x9802,0x9F0E,0x5236,0x5291,0x557C,0x5824,0x5E1D,
-0x5F1F,0x608C,0x63D0,0x68AF,0x6FDF,0x796D,0x7B2C,0x81CD,
-0x85BA,0x88FD,0x8AF8,0x8E44,0x918D,0x9664,0x969B,0x973D,
-0x984C,0x9F4A,0x4FCE,0x5146,0x51CB,0x52A9,0x5632,0x5F14,
-0x5F6B,0x63AA,0x64CD,0x65E9,0x6641,0x66FA,0x66F9,0x671D,
-0x689D,0x68D7,0x69FD,0x6F15,0x6F6E,0x7167,0x71E5,0x722A,
-0x74AA,0x773A,0x7956,0x795A,0x79DF,0x7A20,0x7A95,0x7C97,
-0x7CDF,0x7D44,0x7E70,0x8087,0x85FB,0x86A4,0x8A54,0x8ABF,
-0x8D99,0x8E81,0x9020,0x906D,0x91E3,0x963B,0x96D5,0x9CE5,
-0x65CF,0x7C07,0x8DB3,0x93C3,0x5B58,0x5C0A,0x5352,0x62D9,
-0x731D,0x5027,0x5B97,0x5F9E,0x60B0,0x616B,0x68D5,0x6DD9,
-0x742E,0x7A2E,0x7D42,0x7D9C,0x7E31,0x816B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8E2A,0x8E35,0x937E,0x9418,0x4F50,0x5750,0x5DE6,0x5EA7,
-0x632B,0x7F6A,0x4E3B,0x4F4F,0x4F8F,0x505A,0x59DD,0x80C4,
-0x546A,0x5468,0x55FE,0x594F,0x5B99,0x5DDE,0x5EDA,0x665D,
-0x6731,0x67F1,0x682A,0x6CE8,0x6D32,0x6E4A,0x6F8D,0x70B7,
-0x73E0,0x7587,0x7C4C,0x7D02,0x7D2C,0x7DA2,0x821F,0x86DB,
-0x8A3B,0x8A85,0x8D70,0x8E8A,0x8F33,0x9031,0x914E,0x9152,
-0x9444,0x99D0,0x7AF9,0x7CA5,0x4FCA,0x5101,0x51C6,0x57C8,
-0x5BEF,0x5CFB,0x6659,0x6A3D,0x6D5A,0x6E96,0x6FEC,0x710C,
-0x756F,0x7AE3,0x8822,0x9021,0x9075,0x96CB,0x99FF,0x8301,
-0x4E2D,0x4EF2,0x8846,0x91CD,0x537D,0x6ADB,0x696B,0x6C41,
-0x847A,0x589E,0x618E,0x66FE,0x62EF,0x70DD,0x7511,0x75C7,
-0x7E52,0x84B8,0x8B49,0x8D08,0x4E4B,0x53EA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x54AB,0x5730,0x5740,0x5FD7,0x6301,0x6307,0x646F,0x652F,
-0x65E8,0x667A,0x679D,0x67B3,0x6B62,0x6C60,0x6C9A,0x6F2C,
-0x77E5,0x7825,0x7949,0x7957,0x7D19,0x80A2,0x8102,0x81F3,
-0x829D,0x82B7,0x8718,0x8A8C,0xF9FC,0x8D04,0x8DBE,0x9072,
-0x76F4,0x7A19,0x7A37,0x7E54,0x8077,0x5507,0x55D4,0x5875,
-0x632F,0x6422,0x6649,0x664B,0x686D,0x699B,0x6B84,0x6D25,
-0x6EB1,0x73CD,0x7468,0x74A1,0x755B,0x75B9,0x76E1,0x771E,
-0x778B,0x79E6,0x7E09,0x7E1D,0x81FB,0x852F,0x8897,0x8A3A,
-0x8CD1,0x8EEB,0x8FB0,0x9032,0x93AD,0x9663,0x9673,0x9707,
-0x4F84,0x53F1,0x59EA,0x5AC9,0x5E19,0x684E,0x74C6,0x75BE,
-0x79E9,0x7A92,0x81A3,0x86ED,0x8CEA,0x8DCC,0x8FED,0x659F,
-0x6715,0xF9FD,0x57F7,0x6F57,0x7DDD,0x8F2F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x93F6,0x96C6,0x5FB5,0x61F2,0x6F84,0x4E14,0x4F98,0x501F,
-0x53C9,0x55DF,0x5D6F,0x5DEE,0x6B21,0x6B64,0x78CB,0x7B9A,
-0xF9FE,0x8E49,0x8ECA,0x906E,0x6349,0x643E,0x7740,0x7A84,
-0x932F,0x947F,0x9F6A,0x64B0,0x6FAF,0x71E6,0x74A8,0x74DA,
-0x7AC4,0x7C12,0x7E82,0x7CB2,0x7E98,0x8B9A,0x8D0A,0x947D,
-0x9910,0x994C,0x5239,0x5BDF,0x64E6,0x672D,0x7D2E,0x50ED,
-0x53C3,0x5879,0x6158,0x6159,0x61FA,0x65AC,0x7AD9,0x8B92,
-0x8B96,0x5009,0x5021,0x5275,0x5531,0x5A3C,0x5EE0,0x5F70,
-0x6134,0x655E,0x660C,0x6636,0x66A2,0x69CD,0x6EC4,0x6F32,
-0x7316,0x7621,0x7A93,0x8139,0x8259,0x83D6,0x84BC,0x50B5,
-0x57F0,0x5BC0,0x5BE8,0x5F69,0x63A1,0x7826,0x7DB5,0x83DC,
-0x8521,0x91C7,0x91F5,0x518A,0x67F5,0x7B56, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8CAC,0x51C4,0x59BB,0x60BD,0x8655,0x501C,0xF9FF,0x5254,
-0x5C3A,0x617D,0x621A,0x62D3,0x64F2,0x65A5,0x6ECC,0x7620,
-0x810A,0x8E60,0x965F,0x96BB,0x4EDF,0x5343,0x5598,0x5929,
-0x5DDD,0x64C5,0x6CC9,0x6DFA,0x7394,0x7A7F,0x821B,0x85A6,
-0x8CE4,0x8E10,0x9077,0x91E7,0x95E1,0x9621,0x97C6,0x51F8,
-0x54F2,0x5586,0x5FB9,0x64A4,0x6F88,0x7DB4,0x8F1F,0x8F4D,
-0x9435,0x50C9,0x5C16,0x6CBE,0x6DFB,0x751B,0x77BB,0x7C3D,
-0x7C64,0x8A79,0x8AC2,0x581E,0x59BE,0x5E16,0x6377,0x7252,
-0x758A,0x776B,0x8ADC,0x8CBC,0x8F12,0x5EF3,0x6674,0x6DF8,
-0x807D,0x83C1,0x8ACB,0x9751,0x9BD6,0xFA00,0x5243,0x66FF,
-0x6D95,0x6EEF,0x7DE0,0x8AE6,0x902E,0x905E,0x9AD4,0x521D,
-0x527F,0x54E8,0x6194,0x6284,0x62DB,0x68A2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6912,0x695A,0x6A35,0x7092,0x7126,0x785D,0x7901,0x790E,
-0x79D2,0x7A0D,0x8096,0x8278,0x82D5,0x8349,0x8549,0x8C82,
-0x8D85,0x9162,0x918B,0x91AE,0x4FC3,0x56D1,0x71ED,0x77D7,
-0x8700,0x89F8,0x5BF8,0x5FD6,0x6751,0x90A8,0x53E2,0x585A,
-0x5BF5,0x60A4,0x6181,0x6460,0x7E3D,0x8070,0x8525,0x9283,
-0x64AE,0x50AC,0x5D14,0x6700,0x589C,0x62BD,0x63A8,0x690E,
-0x6978,0x6A1E,0x6E6B,0x76BA,0x79CB,0x82BB,0x8429,0x8ACF,
-0x8DA8,0x8FFD,0x9112,0x914B,0x919C,0x9310,0x9318,0x939A,
-0x96DB,0x9A36,0x9C0D,0x4E11,0x755C,0x795D,0x7AFA,0x7B51,
-0x7BC9,0x7E2E,0x84C4,0x8E59,0x8E74,0x8EF8,0x9010,0x6625,
-0x693F,0x7443,0x51FA,0x672E,0x9EDC,0x5145,0x5FE0,0x6C96,
-0x87F2,0x885D,0x8877,0x60B4,0x81B5,0x8403, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8D05,0x53D6,0x5439,0x5634,0x5A36,0x5C31,0x708A,0x7FE0,
-0x805A,0x8106,0x81ED,0x8DA3,0x9189,0x9A5F,0x9DF2,0x5074,
-0x4EC4,0x53A0,0x60FB,0x6E2C,0x5C64,0x4F88,0x5024,0x55E4,
-0x5CD9,0x5E5F,0x6065,0x6894,0x6CBB,0x6DC4,0x71BE,0x75D4,
-0x75F4,0x7661,0x7A1A,0x7A49,0x7DC7,0x7DFB,0x7F6E,0x81F4,
-0x86A9,0x8F1C,0x96C9,0x99B3,0x9F52,0x5247,0x52C5,0x98ED,
-0x89AA,0x4E03,0x67D2,0x6F06,0x4FB5,0x5BE2,0x6795,0x6C88,
-0x6D78,0x741B,0x7827,0x91DD,0x937C,0x87C4,0x79E4,0x7A31,
-0x5FEB,0x4ED6,0x54A4,0x553E,0x58AE,0x59A5,0x60F0,0x6253,
-0x62D6,0x6736,0x6955,0x8235,0x9640,0x99B1,0x99DD,0x502C,
-0x5353,0x5544,0x577C,0xFA01,0x6258,0xFA02,0x64E2,0x666B,
-0x67DD,0x6FC1,0x6FEF,0x7422,0x7438,0x8A17, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9438,0x5451,0x5606,0x5766,0x5F48,0x619A,0x6B4E,0x7058,
-0x70AD,0x7DBB,0x8A95,0x596A,0x812B,0x63A2,0x7708,0x803D,
-0x8CAA,0x5854,0x642D,0x69BB,0x5B95,0x5E11,0x6E6F,0xFA03,
-0x8569,0x514C,0x53F0,0x592A,0x6020,0x614B,0x6B86,0x6C70,
-0x6CF0,0x7B1E,0x80CE,0x82D4,0x8DC6,0x90B0,0x98B1,0xFA04,
-0x64C7,0x6FA4,0x6491,0x6504,0x514E,0x5410,0x571F,0x8A0E,
-0x615F,0x6876,0xFA05,0x75DB,0x7B52,0x7D71,0x901A,0x5806,
-0x69CC,0x817F,0x892A,0x9000,0x9839,0x5078,0x5957,0x59AC,
-0x6295,0x900F,0x9B2A,0x615D,0x7279,0x95D6,0x5761,0x5A46,
-0x5DF4,0x628A,0x64AD,0x64FA,0x6777,0x6CE2,0x6D3E,0x722C,
-0x7436,0x7834,0x7F77,0x82AD,0x8DDB,0x9817,0x5224,0x5742,
-0x677F,0x7248,0x74E3,0x8CA9,0x8FA6,0x9211, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x962A,0x516B,0x53ED,0x634C,0x4F69,0x5504,0x6096,0x6557,
-0x6C9B,0x6D7F,0x724C,0x72FD,0x7A17,0x8987,0x8C9D,0x5F6D,
-0x6F8E,0x70F9,0x81A8,0x610E,0x4FBF,0x504F,0x6241,0x7247,
-0x7BC7,0x7DE8,0x7FE9,0x904D,0x97AD,0x9A19,0x8CB6,0x576A,
-0x5E73,0x67B0,0x840D,0x8A55,0x5420,0x5B16,0x5E63,0x5EE2,
-0x5F0A,0x6583,0x80BA,0x853D,0x9589,0x965B,0x4F48,0x5305,
-0x530D,0x530F,0x5486,0x54FA,0x5703,0x5E03,0x6016,0x629B,
-0x62B1,0x6355,0xFA06,0x6CE1,0x6D66,0x75B1,0x7832,0x80DE,
-0x812F,0x82DE,0x8461,0x84B2,0x888D,0x8912,0x900B,0x92EA,
-0x98FD,0x9B91,0x5E45,0x66B4,0x66DD,0x7011,0x7206,0xFA07,
-0x4FF5,0x527D,0x5F6A,0x6153,0x6753,0x6A19,0x6F02,0x74E2,
-0x7968,0x8868,0x8C79,0x98C7,0x98C4,0x9A43, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x54C1,0x7A1F,0x6953,0x8AF7,0x8C4A,0x98A8,0x99AE,0x5F7C,
-0x62AB,0x75B2,0x76AE,0x88AB,0x907F,0x9642,0x5339,0x5F3C,
-0x5FC5,0x6CCC,0x73CC,0x7562,0x758B,0x7B46,0x82FE,0x999D,
-0x4E4F,0x903C,0x4E0B,0x4F55,0x53A6,0x590F,0x5EC8,0x6630,
-0x6CB3,0x7455,0x8377,0x8766,0x8CC0,0x9050,0x971E,0x9C15,
-0x58D1,0x5B78,0x8650,0x8B14,0x9DB4,0x5BD2,0x6068,0x608D,
-0x65F1,0x6C57,0x6F22,0x6FA3,0x701A,0x7F55,0x7FF0,0x9591,
-0x9592,0x9650,0x97D3,0x5272,0x8F44,0x51FD,0x542B,0x54B8,
-0x5563,0x558A,0x6ABB,0x6DB5,0x7DD8,0x8266,0x929C,0x9677,
-0x9E79,0x5408,0x54C8,0x76D2,0x86E4,0x95A4,0x95D4,0x965C,
-0x4EA2,0x4F09,0x59EE,0x5AE6,0x5DF7,0x6052,0x6297,0x676D,
-0x6841,0x6C86,0x6E2F,0x7F38,0x809B,0x822A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFA08,0xFA09,0x9805,0x4EA5,0x5055,0x54B3,0x5793,0x595A,
-0x5B69,0x5BB3,0x61C8,0x6977,0x6D77,0x7023,0x87F9,0x89E3,
-0x8A72,0x8AE7,0x9082,0x99ED,0x9AB8,0x52BE,0x6838,0x5016,
-0x5E78,0x674F,0x8347,0x884C,0x4EAB,0x5411,0x56AE,0x73E6,
-0x9115,0x97FF,0x9909,0x9957,0x9999,0x5653,0x589F,0x865B,
-0x8A31,0x61B2,0x6AF6,0x737B,0x8ED2,0x6B47,0x96AA,0x9A57,
-0x5955,0x7200,0x8D6B,0x9769,0x4FD4,0x5CF4,0x5F26,0x61F8,
-0x665B,0x6CEB,0x70AB,0x7384,0x73B9,0x73FE,0x7729,0x774D,
-0x7D43,0x7D62,0x7E23,0x8237,0x8852,0xFA0A,0x8CE2,0x9249,
-0x986F,0x5B51,0x7A74,0x8840,0x9801,0x5ACC,0x4FE0,0x5354,
-0x593E,0x5CFD,0x633E,0x6D79,0x72F9,0x8105,0x8107,0x83A2,
-0x92CF,0x9830,0x4EA8,0x5144,0x5211,0x578B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5F62,0x6CC2,0x6ECE,0x7005,0x7050,0x70AF,0x7192,0x73E9,
-0x7469,0x834A,0x87A2,0x8861,0x9008,0x90A2,0x93A3,0x99A8,
-0x516E,0x5F57,0x60E0,0x6167,0x66B3,0x8559,0x8E4A,0x91AF,
-0x978B,0x4E4E,0x4E92,0x547C,0x58D5,0x58FA,0x597D,0x5CB5,
-0x5F27,0x6236,0x6248,0x660A,0x6667,0x6BEB,0x6D69,0x6DCF,
-0x6E56,0x6EF8,0x6F94,0x6FE0,0x6FE9,0x705D,0x72D0,0x7425,
-0x745A,0x74E0,0x7693,0x795C,0x7CCA,0x7E1E,0x80E1,0x82A6,
-0x846B,0x84BF,0x864E,0x865F,0x8774,0x8B77,0x8C6A,0x93AC,
-0x9800,0x9865,0x60D1,0x6216,0x9177,0x5A5A,0x660F,0x6DF7,
-0x6E3E,0x743F,0x9B42,0x5FFD,0x60DA,0x7B0F,0x54C4,0x5F18,
-0x6C5E,0x6CD3,0x6D2A,0x70D8,0x7D05,0x8679,0x8A0C,0x9D3B,
-0x5316,0x548C,0x5B05,0x6A3A,0x706B,0x7575, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x798D,0x79BE,0x82B1,0x83EF,0x8A71,0x8B41,0x8CA8,0x9774,
-0xFA0B,0x64F4,0x652B,0x78BA,0x78BB,0x7A6B,0x4E38,0x559A,
-0x5950,0x5BA6,0x5E7B,0x60A3,0x63DB,0x6B61,0x6665,0x6853,
-0x6E19,0x7165,0x74B0,0x7D08,0x9084,0x9A69,0x9C25,0x6D3B,
-0x6ED1,0x733E,0x8C41,0x95CA,0x51F0,0x5E4C,0x5FA8,0x604D,
-0x60F6,0x6130,0x614C,0x6643,0x6644,0x69A5,0x6CC1,0x6E5F,
-0x6EC9,0x6F62,0x714C,0x749C,0x7687,0x7BC1,0x7C27,0x8352,
-0x8757,0x9051,0x968D,0x9EC3,0x532F,0x56DE,0x5EFB,0x5F8A,
-0x6062,0x6094,0x61F7,0x6666,0x6703,0x6A9C,0x6DEE,0x6FAE,
-0x7070,0x736A,0x7E6A,0x81BE,0x8334,0x86D4,0x8AA8,0x8CC4,
-0x5283,0x7372,0x5B96,0x6A6B,0x9404,0x54EE,0x5686,0x5B5D,
-0x6548,0x6585,0x66C9,0x689F,0x6D8D,0x6DC6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x723B,0x80B4,0x9175,0x9A4D,0x4FAF,0x5019,0x539A,0x540E,
-0x543C,0x5589,0x55C5,0x5E3F,0x5F8C,0x673D,0x7166,0x73DD,
-0x9005,0x52DB,0x52F3,0x5864,0x58CE,0x7104,0x718F,0x71FB,
-0x85B0,0x8A13,0x6688,0x85A8,0x55A7,0x6684,0x714A,0x8431,
-0x5349,0x5599,0x6BC1,0x5F59,0x5FBD,0x63EE,0x6689,0x7147,
-0x8AF1,0x8F1D,0x9EBE,0x4F11,0x643A,0x70CB,0x7566,0x8667,
-0x6064,0x8B4E,0x9DF8,0x5147,0x51F6,0x5308,0x6D36,0x80F8,
-0x9ED1,0x6615,0x6B23,0x7098,0x75D5,0x5403,0x5C79,0x7D07,
-0x8A16,0x6B20,0x6B3D,0x6B46,0x5438,0x6070,0x6D3D,0x7FD5,
-0x8208,0x50D6,0x51DE,0x559C,0x566B,0x56CD,0x59EC,0x5B09,
-0x5E0C,0x6199,0x6198,0x6231,0x665E,0x66E6,0x7199,0x71B9,
-0x71BA,0x72A7,0x79A7,0x7A00,0x7FB2,0x8A70};
-
-static int func_ksc5601_uni_onechar(int code){
- if ((code>=0x8141)&&(code<=0xC8FE))
- return(tab_ksc5601_uni0[code-0x8141]);
- if ((code>=0xCAA1)&&(code<=0xFDFE))
- return(tab_ksc5601_uni1[code-0xCAA1]);
- return(0);
-}
-/* page 0 0x00A1-0x0167 */
-static uint16 tab_uni_ksc56010[]={
-0xA2AE, 0, 0,0xA2B4, 0, 0,0xA1D7,0xA1A7,
- 0,0xA8A3, 0, 0,0xA1A9,0xA2E7, 0,0xA1C6,
-0xA1BE,0xA9F7,0xA9F8,0xA2A5, 0,0xA2D2,0xA1A4,0xA2AC,
-0xA9F6,0xA8AC, 0,0xA8F9,0xA8F6,0xA8FA,0xA2AF, 0,
- 0, 0, 0, 0, 0,0xA8A1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA8A2,
- 0, 0, 0, 0, 0, 0,0xA1BF,0xA8AA,
- 0, 0, 0, 0, 0,0xA8AD,0xA9AC, 0,
- 0, 0, 0, 0, 0,0xA9A1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA9A3,
- 0, 0, 0, 0, 0, 0,0xA1C0,0xA9AA,
- 0, 0, 0, 0, 0,0xA9AD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA9A2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA8A4,0xA9A4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA9A5,0xA8A6,0xA9A6, 0, 0, 0, 0,0xA9A7,
- 0, 0, 0, 0, 0, 0,0xA8A8,0xA9A8,
-0xA8A9,0xA9A9, 0, 0, 0, 0, 0, 0,
-0xA9B0,0xA8AF,0xA9AF, 0, 0, 0, 0, 0,
- 0,0xA8AB,0xA9AB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA8AE,0xA9AE};
-
-/* page 1 0x02C7-0x0451 */
-static uint16 tab_uni_ksc56011[]={
-0xA2A7, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA2B0, 0, 0, 0, 0, 0, 0,
- 0,0xA2A8,0xA2AB,0xA2AA,0xA2AD, 0,0xA2A9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA5C1,0xA5C2,0xA5C3,0xA5C4,0xA5C5,0xA5C6,
-0xA5C7,0xA5C8,0xA5C9,0xA5CA,0xA5CB,0xA5CC,0xA5CD,0xA5CE,
-0xA5CF,0xA5D0,0xA5D1, 0,0xA5D2,0xA5D3,0xA5D4,0xA5D5,
-0xA5D6,0xA5D7,0xA5D8, 0, 0, 0, 0, 0,
- 0, 0,0xA5E1,0xA5E2,0xA5E3,0xA5E4,0xA5E5,0xA5E6,
-0xA5E7,0xA5E8,0xA5E9,0xA5EA,0xA5EB,0xA5EC,0xA5ED,0xA5EE,
-0xA5EF,0xA5F0,0xA5F1, 0,0xA5F2,0xA5F3,0xA5F4,0xA5F5,
-0xA5F6,0xA5F7,0xA5F8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xACA7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xACA1,0xACA2,0xACA3,0xACA4,0xACA5,0xACA6,0xACA8,
-0xACA9,0xACAA,0xACAB,0xACAC,0xACAD,0xACAE,0xACAF,0xACB0,
-0xACB1,0xACB2,0xACB3,0xACB4,0xACB5,0xACB6,0xACB7,0xACB8,
-0xACB9,0xACBA,0xACBB,0xACBC,0xACBD,0xACBE,0xACBF,0xACC0,
-0xACC1,0xACD1,0xACD2,0xACD3,0xACD4,0xACD5,0xACD6,0xACD8,
-0xACD9,0xACDA,0xACDB,0xACDC,0xACDD,0xACDE,0xACDF,0xACE0,
-0xACE1,0xACE2,0xACE3,0xACE4,0xACE5,0xACE6,0xACE7,0xACE8,
-0xACE9,0xACEA,0xACEB,0xACEC,0xACED,0xACEE,0xACEF,0xACF0,
-0xACF1, 0,0xACD7};
-
-/* page 2 0x2015-0x2312 */
-static uint16 tab_uni_ksc56012[]={
-0xA1AA, 0, 0,0xA1AE,0xA1AF, 0, 0,0xA1B0,
-0xA1B1, 0, 0,0xA2D3,0xA2D4, 0, 0, 0,
-0xA1A5,0xA1A6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA2B6, 0,0xA1C7,0xA1C8, 0,
- 0, 0, 0, 0, 0, 0,0xA1D8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA9F9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA9FA, 0,0xA9FB,0xA9FC,0xA9FD,0xA9FE,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA2E6,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA1C9, 0,
- 0, 0, 0, 0,0xA2B5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA7A4, 0,
- 0,0xA2E0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA2E5,0xA2E2, 0, 0,
- 0,0xA7D9, 0, 0, 0, 0,0xA1CA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA8F7,0xA8F8,
- 0, 0, 0, 0, 0, 0,0xA8FB,0xA8FC,
-0xA8FD,0xA8FE, 0,0xA5B0,0xA5B1,0xA5B2,0xA5B3,0xA5B4,
-0xA5B5,0xA5B6,0xA5B7,0xA5B8,0xA5B9, 0, 0, 0,
- 0, 0, 0,0xA5A1,0xA5A2,0xA5A3,0xA5A4,0xA5A5,
-0xA5A6,0xA5A7,0xA5A8,0xA5A9,0xA5AA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA1E7,0xA1E8,0xA1E6,0xA1E9,0xA1EA,
-0xA2D5,0xA2D8,0xA2D6,0xA2D9,0xA2D7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA2A1, 0,0xA2A2,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA2A3, 0,0xA1D3,0xA2A4, 0,
- 0, 0,0xA1D4,0xA1F4, 0, 0,0xA1F5, 0,
- 0, 0,0xA2B3, 0,0xA2B2, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1EE, 0, 0,
-0xA1F0,0xA1C4, 0,0xA1D0, 0, 0, 0, 0,
-0xA1AB, 0,0xA1FC,0xA1FD,0xA1FB,0xA1FA,0xA1F2,0xA1F3,
- 0,0xA2B1, 0, 0, 0, 0, 0,0xA1C5,
-0xA1F1, 0, 0, 0, 0, 0, 0,0xA1AD,
-0xA1EF, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1D6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA1C1,0xA1D5, 0, 0,0xA1C2,
-0xA1C3, 0, 0, 0, 0,0xA1EC,0xA1ED, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1F8,0xA1F9, 0,
- 0,0xA1F6,0xA1F7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA2C1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1D1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1D2};
-
-/* page 3 0x2460-0x266D */
-static uint16 tab_uni_ksc56013[]={
-0xA8E7,0xA8E8,0xA8E9,0xA8EA,0xA8EB,0xA8EC,0xA8ED,0xA8EE,
-0xA8EF,0xA8F0,0xA8F1,0xA8F2,0xA8F3,0xA8F4,0xA8F5, 0,
- 0, 0, 0, 0,0xA9E7,0xA9E8,0xA9E9,0xA9EA,
-0xA9EB,0xA9EC,0xA9ED,0xA9EE,0xA9EF,0xA9F0,0xA9F1,0xA9F2,
-0xA9F3,0xA9F4,0xA9F5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA9CD,0xA9CE,0xA9CF,0xA9D0,
-0xA9D1,0xA9D2,0xA9D3,0xA9D4,0xA9D5,0xA9D6,0xA9D7,0xA9D8,
-0xA9D9,0xA9DA,0xA9DB,0xA9DC,0xA9DD,0xA9DE,0xA9DF,0xA9E0,
-0xA9E1,0xA9E2,0xA9E3,0xA9E4,0xA9E5,0xA9E6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA8CD,0xA8CE,0xA8CF,0xA8D0,0xA8D1,0xA8D2,0xA8D3,0xA8D4,
-0xA8D5,0xA8D6,0xA8D7,0xA8D8,0xA8D9,0xA8DA,0xA8DB,0xA8DC,
-0xA8DD,0xA8DE,0xA8DF,0xA8E0,0xA8E1,0xA8E2,0xA8E3,0xA8E4,
-0xA8E5,0xA8E6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA6A1,0xA6AC,0xA6A2,0xA6AD, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA6A3,0xA6C8,0xA6C7,0xA6AE,
-0xA6A4,0xA6C2,0xA6C1,0xA6AF,0xA6A6,0xA6C6,0xA6C5,0xA6B1,
-0xA6A5,0xA6C4,0xA6C3,0xA6B0,0xA6A7,0xA6BC,0xA6C9,0xA6CA,
-0xA6B7,0xA6CB,0xA6CC,0xA6B2,0xA6A9,0xA6BE,0xA6CD,0xA6CE,
-0xA6B9,0xA6CF,0xA6D0,0xA6B4,0xA6A8,0xA6D1,0xA6D2,0xA6B8,
-0xA6BD,0xA6D3,0xA6D4,0xA6B3,0xA6AA,0xA6D5,0xA6D6,0xA6BA,
-0xA6BF,0xA6D7,0xA6D8,0xA6B5,0xA6AB,0xA6D9,0xA6DA,0xA6BB,
-0xA6DB,0xA6DC,0xA6C0,0xA6DD,0xA6DE,0xA6DF,0xA6E0,0xA6E1,
-0xA6E2,0xA6E3,0xA6E4,0xA6B6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA2C6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1E1,0xA1E0, 0,0xA2C3,0xA2C7,0xA2C8,0xA2CB,0xA2CA,
-0xA2C9,0xA2CC, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA1E3,0xA1E2, 0, 0,0xA2BA,0xA2B9,
- 0, 0, 0, 0,0xA1E5,0xA1E4, 0, 0,
-0xA2B8,0xA2B7, 0, 0, 0, 0,0xA1DF,0xA1DE,
-0xA2C2, 0, 0,0xA1DB, 0, 0,0xA1DD,0xA1DC,
-0xA2C4,0xA2C5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1DA,0xA1D9, 0,
- 0, 0, 0, 0, 0, 0,0xA2CF,0xA2CE,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA2D0, 0,0xA2D1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1CF, 0,0xA1CE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA2BC,0xA2BD, 0,0xA2C0,0xA2BB,0xA2BE, 0,0xA2BF,
-0xA2CD,0xA2DB,0xA2DC, 0,0xA2DD,0xA2DA};
-
-/* page 4 0x3000-0x327F */
-static uint16 tab_uni_ksc56014[]={
-0xA1A1,0xA1A2,0xA1A3,0xA1A8, 0, 0, 0, 0,
-0xA1B4,0xA1B5,0xA1B6,0xA1B7,0xA1B8,0xA1B9,0xA1BA,0xA1BB,
-0xA1BC,0xA1BD, 0,0xA1EB,0xA1B2,0xA1B3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xAAA1,0xAAA2,0xAAA3,0xAAA4,0xAAA5,0xAAA6,0xAAA7,
-0xAAA8,0xAAA9,0xAAAA,0xAAAB,0xAAAC,0xAAAD,0xAAAE,0xAAAF,
-0xAAB0,0xAAB1,0xAAB2,0xAAB3,0xAAB4,0xAAB5,0xAAB6,0xAAB7,
-0xAAB8,0xAAB9,0xAABA,0xAABB,0xAABC,0xAABD,0xAABE,0xAABF,
-0xAAC0,0xAAC1,0xAAC2,0xAAC3,0xAAC4,0xAAC5,0xAAC6,0xAAC7,
-0xAAC8,0xAAC9,0xAACA,0xAACB,0xAACC,0xAACD,0xAACE,0xAACF,
-0xAAD0,0xAAD1,0xAAD2,0xAAD3,0xAAD4,0xAAD5,0xAAD6,0xAAD7,
-0xAAD8,0xAAD9,0xAADA,0xAADB,0xAADC,0xAADD,0xAADE,0xAADF,
-0xAAE0,0xAAE1,0xAAE2,0xAAE3,0xAAE4,0xAAE5,0xAAE6,0xAAE7,
-0xAAE8,0xAAE9,0xAAEA,0xAAEB,0xAAEC,0xAAED,0xAAEE,0xAAEF,
-0xAAF0,0xAAF1,0xAAF2,0xAAF3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xABA1,0xABA2,0xABA3,0xABA4,0xABA5,0xABA6,0xABA7,
-0xABA8,0xABA9,0xABAA,0xABAB,0xABAC,0xABAD,0xABAE,0xABAF,
-0xABB0,0xABB1,0xABB2,0xABB3,0xABB4,0xABB5,0xABB6,0xABB7,
-0xABB8,0xABB9,0xABBA,0xABBB,0xABBC,0xABBD,0xABBE,0xABBF,
-0xABC0,0xABC1,0xABC2,0xABC3,0xABC4,0xABC5,0xABC6,0xABC7,
-0xABC8,0xABC9,0xABCA,0xABCB,0xABCC,0xABCD,0xABCE,0xABCF,
-0xABD0,0xABD1,0xABD2,0xABD3,0xABD4,0xABD5,0xABD6,0xABD7,
-0xABD8,0xABD9,0xABDA,0xABDB,0xABDC,0xABDD,0xABDE,0xABDF,
-0xABE0,0xABE1,0xABE2,0xABE3,0xABE4,0xABE5,0xABE6,0xABE7,
-0xABE8,0xABE9,0xABEA,0xABEB,0xABEC,0xABED,0xABEE,0xABEF,
-0xABF0,0xABF1,0xABF2,0xABF3,0xABF4,0xABF5,0xABF6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA4A1,0xA4A2,0xA4A3,0xA4A4,0xA4A5,0xA4A6,0xA4A7,
-0xA4A8,0xA4A9,0xA4AA,0xA4AB,0xA4AC,0xA4AD,0xA4AE,0xA4AF,
-0xA4B0,0xA4B1,0xA4B2,0xA4B3,0xA4B4,0xA4B5,0xA4B6,0xA4B7,
-0xA4B8,0xA4B9,0xA4BA,0xA4BB,0xA4BC,0xA4BD,0xA4BE,0xA4BF,
-0xA4C0,0xA4C1,0xA4C2,0xA4C3,0xA4C4,0xA4C5,0xA4C6,0xA4C7,
-0xA4C8,0xA4C9,0xA4CA,0xA4CB,0xA4CC,0xA4CD,0xA4CE,0xA4CF,
-0xA4D0,0xA4D1,0xA4D2,0xA4D3,0xA4D4,0xA4D5,0xA4D6,0xA4D7,
-0xA4D8,0xA4D9,0xA4DA,0xA4DB,0xA4DC,0xA4DD,0xA4DE,0xA4DF,
-0xA4E0,0xA4E1,0xA4E2,0xA4E3,0xA4E4,0xA4E5,0xA4E6,0xA4E7,
-0xA4E8,0xA4E9,0xA4EA,0xA4EB,0xA4EC,0xA4ED,0xA4EE,0xA4EF,
-0xA4F0,0xA4F1,0xA4F2,0xA4F3,0xA4F4,0xA4F5,0xA4F6,0xA4F7,
-0xA4F8,0xA4F9,0xA4FA,0xA4FB,0xA4FC,0xA4FD,0xA4FE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA9B1,0xA9B2,0xA9B3,0xA9B4,0xA9B5,0xA9B6,0xA9B7,0xA9B8,
-0xA9B9,0xA9BA,0xA9BB,0xA9BC,0xA9BD,0xA9BE,0xA9BF,0xA9C0,
-0xA9C1,0xA9C2,0xA9C3,0xA9C4,0xA9C5,0xA9C6,0xA9C7,0xA9C8,
-0xA9C9,0xA9CA,0xA9CB,0xA9CC,0xA2DF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA8B1,0xA8B2,0xA8B3,0xA8B4,0xA8B5,0xA8B6,0xA8B7,0xA8B8,
-0xA8B9,0xA8BA,0xA8BB,0xA8BC,0xA8BD,0xA8BE,0xA8BF,0xA8C0,
-0xA8C1,0xA8C2,0xA8C3,0xA8C4,0xA8C5,0xA8C6,0xA8C7,0xA8C8,
-0xA8C9,0xA8CA,0xA8CB,0xA8CC, 0, 0, 0,0xA2DE
-};
-
-/* page 5 0x3380-0x33DD */
-static uint16 tab_uni_ksc56015[]={
-0xA7C9,0xA7CA,0xA7CB,0xA7CC,0xA7CD, 0, 0, 0,
-0xA7BA,0xA7BB,0xA7DC,0xA7DD,0xA7DE,0xA7B6,0xA7B7,0xA7B8,
-0xA7D4,0xA7D5,0xA7D6,0xA7D7,0xA7D8,0xA7A1,0xA7A2,0xA7A3,
-0xA7A5,0xA7AB,0xA7AC,0xA7AD,0xA7AE,0xA7AF,0xA7B0,0xA7B1,
-0xA7B2,0xA7B3,0xA7B4,0xA7A7,0xA7A8,0xA7A9,0xA7AA,0xA7BD,
-0xA7BE,0xA7E5,0xA7E6,0xA7E7,0xA7E8,0xA7E1,0xA7E2,0xA7E3,
-0xA7BF,0xA7C0,0xA7C1,0xA7C2,0xA7C3,0xA7C4,0xA7C5,0xA7C6,
-0xA7C7,0xA7C8,0xA7CE,0xA7CF,0xA7D0,0xA7D1,0xA7D2,0xA7D3,
-0xA7DA,0xA7DB,0xA2E3,0xA7EC,0xA7A6,0xA7E0,0xA7EF,0xA2E1,
-0xA7BC,0xA7ED,0xA7B5, 0, 0, 0, 0,0xA7B9,
-0xA7EA, 0, 0,0xA7EB, 0, 0,0xA7DF, 0,
-0xA2E4, 0, 0,0xA7E4,0xA7EE,0xA7E9};
-
-/* page 6 0x4E00-0x947F */
-static uint16 tab_uni_ksc56016[]={
-0xECE9,0xEFCB, 0,0xF6D2, 0, 0, 0,0xD8B2,
-0xEDDB,0xDFB2,0xDFBE,0xF9BB, 0,0xDCF4, 0, 0,
- 0,0xF5E4, 0, 0,0xF3A6,0xDDE0,0xE1A6, 0,
-0xCEF8,0xDCB0, 0, 0, 0, 0,0xE3AA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF1E9, 0, 0,
- 0, 0,0xCDFA, 0, 0, 0, 0, 0,
-0xFCAF,0xD3A1, 0,0xF1AB, 0, 0, 0, 0,
- 0, 0,0xE7D1,0xD2AC, 0,0xCEF9, 0, 0,
- 0, 0, 0,0xF1FD, 0,0xDEBF,0xFBBA,0xF9B9,
- 0, 0, 0, 0, 0, 0,0xCED2, 0,
-0xE3AB,0xEBE0, 0, 0, 0,0xCEFA,0xCBF7,0xE5A5,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCAE1, 0,0xD4CC, 0, 0,
- 0, 0, 0,0xEAE1, 0, 0,0xDCE3,0xDFAD,
- 0, 0, 0, 0, 0, 0,0xCBEB, 0,
- 0, 0,0xD5AF, 0, 0, 0,0xD6F5, 0,
-0xE5F8, 0, 0,0xDEC0,0xECA3, 0,0xE9CD, 0,
-0xEAA7,0xE9F6,0xFBBB, 0,0xE7E9,0xEFCC, 0, 0,
-0xD0E6, 0, 0,0xDEC1, 0, 0,0xE4AC, 0,
- 0,0xD8CC,0xF9F1, 0,0xCEDF,0xFAA4,0xE6B2, 0,
-0xFAFB, 0, 0,0xFABD,0xCCC8,0xEFCD,0xD5D5, 0,
- 0, 0, 0, 0, 0, 0,0xD3A2, 0,
- 0, 0,0xECD1, 0, 0, 0, 0, 0,
-0xE4A7,0xECD2, 0, 0,0xF6B1, 0, 0,0xCEFB,
- 0, 0,0xD0D1,0xCBBF, 0,0xEDA4, 0, 0,
- 0, 0, 0, 0,0xEDA8,0xDEC2,0xF6E2,0xEDDC,
-0xDCF5,0xE0B9, 0, 0, 0,0xD4CE, 0,0xF4B5,
- 0, 0, 0,0xD3DB,0xD6B5,0xECA4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE4E6, 0,0xF1EA, 0, 0, 0,0xCBEC,0xCBC0,
- 0, 0, 0,0xECF2, 0, 0, 0, 0,
- 0,0xD0EA, 0, 0, 0, 0, 0, 0,
- 0,0xF9F2,0xECA5,0xD0DF, 0,0xE7EA,0xD0EB,0xDCD1,
-0xDBE9,0xFDCC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDBD7,
- 0, 0, 0, 0,0xDAE1, 0,0xD6B6, 0,
-0xE3DF, 0,0xDEC3, 0,0xDEC4,0xCAA1, 0, 0,
- 0, 0, 0,0xEEEC, 0, 0,0xD3A3,0xEEB7,
-0xF8CF, 0, 0, 0, 0,0xEAC8,0xEEB8,0xF1AC,
-0xF1A5,0xE9CE, 0, 0, 0,0xF9BC, 0, 0,
- 0,0xE5F9,0xECEA,0xDDD6,0xEDC2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF8A5, 0, 0, 0, 0, 0,0xE5BA,
-0xDBD8, 0, 0,0xCAA2, 0, 0,0xD1CD, 0,
- 0, 0,0xEEED, 0, 0, 0,0xECEB,0xDEC5,
- 0,0xE3E0, 0,0xCAC9,0xF2E9, 0,0xD5CE, 0,
-0xF6B6, 0,0xCEC2,0xD6C7, 0,0xE3B4, 0,0xF1AD,
- 0,0xEAE2, 0, 0, 0, 0,0xD7C2, 0,
-0xF3A7, 0, 0,0xCDEA, 0,0xEBEE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD9B2,0xFDA5,
- 0, 0, 0, 0, 0,0xF6D5,0xD5E2, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF8B5,
- 0, 0,0xCCF5,0xF5B5,0xE4AD, 0, 0, 0,
- 0,0xE7EB,0xF1D5, 0, 0, 0,0xF0BB, 0,
- 0,0xE9B5, 0,0xCCC9,0xFAD5, 0, 0,0xE1D4,
- 0, 0,0xD7D6, 0, 0,0xDCC1, 0,0xDEC6,
-0xFAEF,0xE3E1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE1F3,0xDCF6,
- 0,0xCEFC, 0,0xDBC4, 0,0xF8F1, 0, 0,
-0xDCE4, 0,0xE5EF, 0, 0, 0, 0, 0,
- 0, 0,0xDCB1, 0, 0, 0,0xD5D6, 0,
- 0,0xF3DA, 0,0xCBC1, 0,0xDBC3, 0, 0,
- 0,0xD9FA,0xD3EE, 0, 0, 0,0xFAB8, 0,
- 0,0xFDA6,0xEBEF, 0,0xF4A6, 0,0xCCCA,0xF3A8,
- 0,0xF3DB, 0,0xDBA7,0xF6B7, 0,0xCFE6,0xF0F2,
-0xCBDA, 0,0xE7D2,0xD7C3,0xF6F0,0xE8DE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE5A6, 0, 0, 0, 0,
- 0, 0, 0,0xE5E7, 0, 0, 0,0xCAA3,
-0xCCA7,0xEAC9, 0, 0, 0, 0, 0,0xF8B6,
- 0, 0, 0, 0, 0,0xFAA5, 0, 0,
- 0, 0,0xF1AE, 0,0xEFCE, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCBED, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF6B0,0xEFCF,0xE9CF, 0,
-0xF7DE, 0, 0, 0, 0, 0, 0, 0,
-0xCED3, 0, 0, 0, 0,0xDCF7, 0, 0,
- 0, 0, 0, 0, 0,0xDBA8, 0, 0,
- 0,0xCBF8, 0, 0, 0, 0, 0, 0,
-0xDFA1,0xDDE1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF5CA,0xE9B6, 0, 0,
- 0, 0,0xE7EC,0xEEEE, 0,0xF3F0, 0,0xDFBF,
- 0, 0, 0, 0, 0, 0,0xCCCB, 0,
- 0, 0, 0, 0, 0,0xD0C1, 0, 0,
- 0,0xF4D2,0xE0BA, 0, 0, 0, 0,0xDFC0,
- 0,0xCEE0, 0, 0, 0,0xDCD2,0xFDEA, 0,
- 0, 0,0xD6F6, 0, 0, 0,0xEACA, 0,
- 0, 0, 0, 0, 0,0xE8E9, 0,0xE3AC,
- 0, 0, 0, 0, 0,0xF3D0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCAA4, 0,0xDBF8, 0, 0, 0,0xDEC7,
-0xEBF0,0xF1D6, 0, 0,0xE5E2, 0,0xCCCC, 0,
- 0,0xCBFB, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEAE3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDFC1,
- 0,0xD6ED, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE9D0, 0, 0, 0, 0, 0,
- 0, 0,0xEEB9, 0, 0, 0, 0,0xD5E3,
- 0, 0,0xD1D3, 0,0xE5F0, 0, 0, 0,
-0xE8B4,0xEBC3, 0,0xEAAA,0xFAFC,0xF5F6,0xF0BC,0xFDD4,
-0xE0BB,0xCEC3, 0,0xD0BA,0xF7BA,0xD8F3,0xF7CD, 0,
- 0, 0,0xE4AE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD4DF, 0, 0, 0,
- 0, 0,0xD0E7, 0, 0,0xECFD, 0,0xD2AE,
-0xEEEF,0xD5D7,0xEAE4,0xF8A2,0xCDEB,0xD7BF,0xFBB1, 0,
- 0,0xCDEC, 0, 0, 0,0xDCB2,0xD0EC,0xCEFD,
-0xEEF0, 0, 0, 0,0xCCC2, 0, 0, 0,
-0xD0ED, 0, 0, 0, 0, 0,0xE5F7, 0,
- 0, 0,0xF3FC, 0, 0,0xEEA2, 0, 0,
- 0, 0,0xD9B3, 0, 0,0xD8F4, 0,0xE9B7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCEAE, 0, 0, 0, 0,0xD9A2, 0, 0,
- 0, 0,0xD8F1, 0,0xD4CF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE5A7,0xD5D2,
- 0, 0, 0, 0, 0,0xD6A9, 0, 0,
- 0, 0, 0, 0,0xF4A2, 0,0xF1D7, 0,
- 0,0xD5D8, 0,0xF0BD,0xD7D0,0xD4D0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD7CF,0xEBEA,0xFDEB, 0,
- 0,0xDBED, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFCC5,0xCBC2, 0, 0, 0, 0,0xFDD5, 0,
-0xF4C8,0xE8EA,0xF5F3, 0, 0,0xF9DE, 0, 0,
-0xD3EF, 0, 0,0xECD3, 0, 0,0xDDC2,0xEFB7,
-0xE7D4, 0,0xCACA, 0, 0, 0,0xD9FB, 0,
- 0,0xFAFD, 0, 0, 0, 0, 0,0xD6AA,
- 0, 0, 0, 0, 0,0xF4F8, 0, 0,
- 0, 0, 0, 0,0xF7F7,0xDCAC, 0, 0,
- 0,0xD7D7,0xDFA2, 0, 0, 0,0xCEBE, 0,
-0xD3F0, 0, 0, 0, 0, 0,0xF0A4,0xE1EC,
-0xCFE7,0xF3CB,0xEDA9,0xCABE, 0, 0, 0, 0,
- 0, 0, 0,0xF4EF, 0, 0, 0,0xF6CE,
- 0, 0,0xDEFB,0xD0BB,0xD5B7,0xEEF1, 0, 0,
- 0, 0, 0, 0,0xF4A8, 0,0xDCF8, 0,
- 0, 0, 0,0xCBA7, 0,0xDACE, 0, 0,
- 0,0xE0E6, 0, 0, 0, 0, 0, 0,
- 0,0xEDA5,0xEEF2, 0, 0, 0, 0,0xDCF9,
- 0, 0,0xF9DC, 0, 0,0xF3DC, 0, 0,
- 0, 0, 0, 0, 0,0xF8F2, 0,0xF4F9,
- 0, 0, 0,0xFCF1, 0, 0, 0,0xD0BC,
-0xDBF9,0xD7B1, 0, 0, 0,0xCBFC, 0, 0,
- 0,0xF0A5,0xCBFD, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD5F4, 0, 0, 0,0xCDED,
-0xCAA5, 0, 0,0xD6AB,0xD0C2, 0, 0, 0,
- 0,0xF0BE,0xD2BD,0xCCA4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAB6, 0,
- 0,0xCCCD, 0,0xDAFA, 0,0xF6CF, 0,0xE9B8,
- 0,0xD8F5, 0, 0, 0,0xCCCE, 0, 0,
- 0, 0,0xD7CD, 0, 0,0xD4D1,0xE9ED, 0,
-0xCAEB,0xD9E2, 0,0xFDB2, 0,0xE3AD,0xD6CC,0xD9B4,
- 0, 0,0xE1A7,0xEED3,0xD0C3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDB3, 0,0xD5E4, 0, 0,
-0xCFE8, 0,0xEDC3,0xD0B2, 0, 0,0xCEFE,0xDAA8,
- 0, 0, 0, 0, 0,0xF8D0, 0, 0,
-0xFDD6, 0, 0, 0, 0,0xF8D1, 0,0xF8D2,
-0xDCD3, 0, 0, 0, 0,0xDDE2,0xFBF9,0xDDC1,
- 0,0xE3B5, 0, 0, 0, 0, 0, 0,
-0xEDDD,0xCEC4, 0,0xCBA1, 0, 0, 0, 0,
- 0, 0,0xDDE3, 0, 0, 0, 0,0xFCDD,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF9AF, 0, 0, 0, 0, 0,0xD2FB,
-0xCFA1,0xE4A8, 0,0xF4B6,0xECFE, 0, 0,0xE3AE,
-0xE7ED,0xFDC1,0xDAE2, 0, 0,0xD8B3, 0, 0,
- 0,0xDDE4,0xF0EF,0xF6F1,0xFAF0, 0, 0,0xD1F5,
- 0, 0,0xDACF, 0,0xDCD4, 0,0xDCA6, 0,
-0xEFBF, 0, 0, 0, 0, 0,0xCECF, 0,
-0xE0D9, 0, 0, 0, 0, 0, 0,0xD9D6,
-0xECD4,0xEACB, 0, 0,0xCABF,0xD5B0, 0,0xCFE9,
- 0, 0, 0, 0, 0,0xF1ED, 0,0xCCCF,
- 0, 0, 0, 0,0xE4F8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE4ED, 0, 0, 0, 0,
-0xD7D8, 0,0xFDA7, 0, 0, 0, 0,0xEAAB,
-0xF6B2, 0, 0, 0, 0,0xCFF0,0xF9BD, 0,
- 0, 0, 0, 0, 0,0xE6F4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCBDB, 0, 0, 0, 0,
- 0, 0, 0,0xF3D1, 0, 0, 0, 0,
-0xE9D1,0xF3A9,0xD0E0,0xE9D2, 0,0xDAE3, 0, 0,
- 0, 0, 0, 0,0xE2D2, 0,0xF6A2,0xE1F4,
- 0, 0, 0,0xDAE4, 0, 0, 0, 0,
- 0,0xE7D5,0xF5BF,0xCFA2,0xCDAF,0xCFA3, 0, 0,
- 0,0xCDB0,0xF1FE,0xD0A3,0xE1AF,0xF8A3, 0,0xCAA6,
-0xF7BB,0xF2EA,0xDEC8,0xE9D3, 0, 0, 0, 0,
-0xDEC9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDDE,0xCAC0, 0, 0, 0,
-0xF9EA,0xD1CE,0xEED4, 0,0xD4D2,0xD9A3,0xFDA8,0xD7D9,
-0xF7CE,0xFABE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCFD6, 0,0xD7F0, 0,0xEBE1,
-0xF8C5, 0, 0, 0, 0, 0,0xDCFA, 0,
- 0,0xDDC3, 0,0xF9DF, 0, 0, 0, 0,
- 0, 0, 0,0xE7EF, 0, 0, 0, 0,
-0xFDE5,0xF6A3, 0,0xD9FC,0xFDA9, 0,0xE7EE, 0,
- 0, 0,0xD5E5, 0, 0, 0, 0, 0,
-0xEFD0, 0,0xCDB1, 0, 0, 0, 0, 0,
- 0,0xF7A2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF1B2, 0,0xF1B1, 0, 0, 0, 0, 0,
- 0,0xCDB2, 0,0xDAAB, 0,0xCAA7, 0, 0,
- 0, 0, 0,0xE3E2,0xFBBC,0xD9A4, 0, 0,
-0xEEBA, 0, 0, 0, 0, 0,0xF8D3, 0,
- 0, 0, 0, 0,0xFBFA, 0,0xCFA4, 0,
-0xDCFB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF6E3, 0, 0, 0,
-0xEDAA, 0, 0,0xF2A1,0xCEE1, 0, 0, 0,
- 0, 0, 0,0xFAA6, 0, 0, 0, 0,
-0xF9E0, 0, 0, 0, 0,0xECD6, 0, 0,
-0xE4EE,0xF9A1, 0, 0,0xFBEF, 0, 0, 0,
-0xF9EB,0xEEA3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEAAC, 0, 0, 0,0xCAA8, 0, 0,
-0xF4FA, 0, 0, 0, 0,0xCDD6,0xFCF6, 0,
- 0, 0,0xF4C9, 0, 0, 0, 0, 0,
- 0, 0,0xF8D4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF8A6, 0,0xDECA,0xF2C6,
- 0, 0, 0, 0, 0, 0,0xD7DA, 0,
-0xD3D0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD8C5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEAE6,
- 0,0xF3DD, 0, 0, 0,0xE4DA, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF6E4, 0,
- 0, 0, 0, 0,0xF6F2, 0,0xDFC2, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9FD,
- 0, 0, 0,0xCCF6, 0, 0,0xD3BA, 0,
- 0, 0, 0, 0, 0, 0,0xE4AF, 0,
- 0, 0, 0,0xF9E1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF0A6, 0, 0, 0,
-0xCBD3, 0, 0, 0,0xE0BC, 0,0xF4CA,0xD4FA,
- 0,0xFDAA,0xF9E2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF4B7,0xFDC2,0xFCB0, 0,0xFDEC,0xCAE2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFDBD,
- 0,0xEAE7,0xDFC3,0xD1D2,0xCEE2, 0,0xD3A4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDAB, 0,0xDFE0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF2C7, 0, 0, 0,
- 0, 0,0xE7F0, 0,0xD0EE, 0, 0,0xF3AA,
- 0, 0, 0,0xDECB,0xF6B8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE1F5,0xF1B3, 0,
- 0, 0, 0, 0, 0, 0,0xF7A3, 0,
- 0,0xCAA9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCFA5, 0, 0,0xDFC4,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE1B0,
- 0, 0,0xF0BF, 0,0xF6A4, 0,0xE3B6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAC6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD0EF, 0, 0,0xFDED, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDDC4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFCF7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE6BF, 0, 0,
- 0, 0, 0, 0,0xDEAD, 0,0xFABF, 0,
- 0, 0, 0, 0,0xE5F1, 0, 0, 0,
- 0, 0, 0, 0,0xEDC4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD2A5, 0, 0,0xFDEE, 0, 0,
- 0,0xF5B6, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE1F6,0xDECC, 0, 0,0xFCDE, 0,
-0xECD7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCDDD, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD6B7,0xCDB3, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF8D5,0xE5D8, 0, 0, 0,
-0xCFEA, 0, 0,0xCFD0, 0,0xEACC, 0, 0,
- 0, 0,0xEAAE,0xEAAD, 0, 0,0xD3F1, 0,
-0xD3A5, 0, 0, 0, 0, 0, 0,0xF7CF,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEEA4, 0, 0, 0, 0,0xD0A4, 0, 0,
-0xF2A2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD0F0, 0, 0, 0, 0,
-0xF2A3, 0,0xF7F8, 0, 0, 0, 0,0xD0B3,
- 0, 0,0xDBA9, 0, 0,0xD3BB,0xCAEC, 0,
-0xF1A6,0xCBD5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF7E7, 0, 0,0xCDDE, 0,0xF7A4, 0,
- 0, 0,0xF8C0, 0, 0, 0,0xD3DD, 0,
-0xCCD0, 0, 0, 0, 0,0xCFA6, 0, 0,
- 0, 0, 0, 0,0xF6F3, 0, 0, 0,
- 0, 0,0xE1F7, 0, 0, 0, 0, 0,
-0xD3DC, 0, 0,0xFAFE, 0, 0, 0, 0,
- 0, 0, 0,0xFAA7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEBD9, 0,0xCFA7,0xEAAF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE4EF, 0, 0, 0,0xE9B9,
-0xF1D8, 0, 0,0xD8D8, 0, 0,0xE0F2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE6B4,
-0xDCFC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF3F1, 0, 0, 0,0xE3D0, 0, 0,0xF2FB,
- 0,0xDBC6,0xD0F1, 0,0xD0F2, 0, 0, 0,
-0xCFDC, 0,0xD3D1, 0, 0,0xCCB1,0xF7D8, 0,
-0xCBA8,0xEBBC,0xE4BE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF4DC, 0,
- 0,0xDCC2, 0, 0,0xF0A7, 0, 0,0xE6C0,
- 0, 0,0xCAED, 0, 0, 0, 0,0xE8EB,
-0xE5E8,0xDCC3, 0, 0,0xEDDE,0xD3F2, 0, 0,
- 0, 0,0xCCF7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xCED4,0xE7AB, 0, 0, 0,0xCBC3,
- 0,0xE1B1, 0, 0,0xF7B2, 0, 0,0xD3F3,
-0xD3D2, 0,0xF5C0, 0, 0, 0,0xDFDD, 0,
- 0,0xEEF3,0xE7F1, 0,0xFDB4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF2C8, 0, 0,
- 0,0xF3D2, 0, 0,0xEEF4, 0,0xE2D3, 0,
- 0, 0, 0,0xCCD1, 0,0xDFEA, 0, 0,
- 0,0xE9BA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD9D7, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF5CD, 0,0xF1F2,0xFAC7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD9F8,0xD4C2, 0, 0, 0, 0,0xF6E5, 0,
- 0, 0, 0,0xDDC5, 0, 0, 0, 0,
- 0, 0,0xE7F2,0xEDDF, 0, 0,0xCACB, 0,
- 0,0xDBFA, 0, 0, 0,0xE8B5, 0,0xD3A6,
- 0, 0, 0, 0, 0, 0,0xFDB5, 0,
- 0,0xF9C9, 0,0xE4E2, 0,0xFBBD, 0, 0,
-0xD7A4,0xCEC5, 0, 0, 0, 0,0xCED5,0xD6E6,
- 0, 0, 0, 0,0xE5BD, 0, 0, 0,
- 0, 0, 0,0xDECD,0xECF3, 0, 0,0xEDE0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xECEC,0xFBBE,0xDFEB, 0,0xE1F8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF9BE,
- 0, 0, 0, 0,0xD0F3,0xE0AA,0xE8E2, 0,
- 0,0xE2D4,0xD2FD, 0,0xE5A8, 0, 0, 0,
- 0, 0,0xD9D3, 0, 0, 0, 0,0xD3DE,
- 0,0xF4B8,0xF7BC,0xDCFD, 0,0xE8EC,0xE4E7, 0,
- 0,0xE3F7, 0, 0, 0, 0, 0,0xECA8,
- 0, 0, 0, 0, 0, 0,0xFAF1, 0,
- 0, 0, 0, 0,0xE5F2, 0, 0,0xD0F4,
-0xD2AF,0xDCE5, 0, 0, 0, 0,0xD0A5,0xF1B4,
-0xFCB1,0xCCF8, 0, 0,0xDDC6,0xFAD1, 0,0xF7DF,
- 0, 0,0xFAA8, 0, 0, 0, 0, 0,
-0xEEF5, 0,0xDECE, 0, 0, 0, 0,0xE7F3,
- 0, 0,0xF7AC,0xEBC4,0xEDE1,0xE0AB,0xDDC7, 0,
- 0, 0, 0,0xD2B3,0xD2BF, 0, 0, 0,
-0xCACC, 0, 0, 0, 0,0xFBBF, 0, 0,
- 0, 0,0xE5FD,0xDDE5,0xD8CD, 0, 0, 0,
- 0, 0,0xECF4, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD0F5, 0, 0,0xE8ED,0xD0D2,
- 0,0xD9D8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF6E6, 0, 0,
-0xDBAA, 0, 0, 0,0xF7E0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD8D9, 0,0xF4A3, 0, 0,0xF4DD, 0,
- 0, 0, 0,0xEFD1, 0, 0,0xD9B5, 0,
- 0,0xEDAB, 0,0xE3B7, 0, 0, 0, 0,
-0xEEBB,0xCDB4, 0,0xE0F3,0xEACD, 0, 0, 0,
- 0,0xECF5,0xE8EE, 0,0xCBA9,0xF1AF, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCACD, 0,
-0xECA9, 0,0xF2EB, 0,0xFDEF, 0,0xF9F3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE6C1, 0, 0,0xECD8, 0, 0, 0,0xEDAC,
- 0,0xEACE, 0,0xE8DF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDECF, 0, 0, 0, 0, 0, 0,
-0xD2A6, 0, 0,0xE7F4,0xD1D6, 0, 0,0xE6C2,
-0xE3E3, 0, 0, 0, 0,0xE4B0, 0, 0,
- 0,0xD8B4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF6A5, 0,
- 0, 0, 0, 0,0xF3DE, 0, 0, 0,
- 0,0xD7A5, 0, 0, 0, 0,0xF7E8, 0,
- 0,0xE8C6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBE6, 0, 0, 0, 0, 0,
- 0, 0,0xDDE6, 0, 0, 0,0xDCFE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD8DA, 0, 0, 0, 0, 0,
- 0, 0,0xDAAC,0xEAB0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE3B8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCAAA,0xE1F9, 0,0xEAB1, 0, 0, 0,
- 0,0xF2EC, 0, 0,0xFAEE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEED5, 0, 0, 0, 0,0xF9F4, 0,
- 0,0xD2EC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFBFB, 0, 0,
- 0,0xFDF0, 0,0xE0BD,0xCEE3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF8C6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDEAE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xDFC5, 0, 0,0xE5BE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEDAD,0xFAEA, 0, 0,0xCDEE,0xEDA6, 0,0xEDAE,
-0xF0ED, 0,0xDDA1, 0,0xEDAF,0xFCF8, 0,0xD8EB,
- 0, 0, 0,0xCCF9,0xCDB5, 0, 0, 0,
- 0,0xFAA9, 0,0xE1DD, 0, 0, 0, 0,
-0xE2D5,0xEDCF, 0, 0, 0,0xDDA2, 0, 0,
-0xF9CA, 0,0xEAE8, 0,0xE5ED, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD3EB, 0,0xE9D4,
-0xE1FA,0xE4CC, 0,0xE1E4,0xE8C7, 0, 0,0xCEDB,
- 0, 0, 0,0xDCD5, 0,0xF7B5,0xFCF3,0xF0F3,
-0xCEAF,0xF1B5,0xEFD2,0xE8C8,0xEBF1, 0, 0, 0,
- 0, 0,0xCBD4,0xE0BE,0xE3F8,0xEAE9,0xFCB2, 0,
- 0, 0, 0, 0,0xE0F4, 0,0xCFE0, 0,
-0xEEA5, 0, 0,0xFAAA,0xE6C3,0xE1B2,0xCAAB, 0,
-0xE3E4,0xE9BB, 0, 0, 0, 0, 0,0xE2D6,
-0xF3F2, 0,0xEED6,0xEAB2,0xD0F6,0xECD9,0xDACB,0xCFA8,
- 0, 0, 0, 0,0xDDA3, 0, 0, 0,
-0xD8DB, 0,0xF9CE,0xE9D5,0xE3D1, 0, 0,0xD2BC,
- 0, 0, 0, 0, 0, 0,0xD8AC,0xF3CC,
- 0,0xCDFB,0xF6D6, 0,0xE7F5,0xE8EF,0xE3F9,0xD2BB,
-0xF3F3,0xE3FB, 0,0xDED0,0xCEB0, 0,0xD6F7,0xF1D9,
- 0, 0, 0, 0, 0,0xF5C1,0xDCC4, 0,
-0xF5BB, 0,0xDED1, 0, 0, 0, 0, 0,
- 0,0xDCE6, 0, 0,0xDED2, 0, 0,0xEDE2,
-0xEEF6,0xEACF,0xF0EE,0xE3FC, 0,0xD3DF,0xD3F4,0xE1B3,
- 0,0xE1B4, 0, 0, 0, 0,0xF4D3, 0,
- 0,0xDFC6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE9D6, 0, 0, 0,
-0xDBAB, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF6A6, 0, 0, 0, 0, 0, 0,
-0xE3B9,0xEBC5,0xF4A9,0xCDB6,0xD2F9, 0,0xDAAD,0xD2E3,
-0xCFD1, 0, 0, 0, 0,0xCBDC,0xCCFA, 0,
-0xCFDD, 0, 0,0xE8A9, 0,0xE3BB,0xE3BA, 0,
- 0,0xE0DA, 0, 0, 0,0xEEF7, 0, 0,
- 0, 0, 0,0xDCB3, 0, 0, 0, 0,
-0xD3F5, 0,0xD7A6, 0,0xF6B5,0xD7DB, 0, 0,
- 0, 0, 0, 0,0xE1D5, 0, 0,0xD4EA,
- 0,0xDFA3, 0, 0, 0, 0, 0, 0,
- 0,0xFDDF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD0F7,0xEDD4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCBAA, 0, 0, 0, 0, 0, 0,
- 0,0xE4DB, 0,0xE1FB,0xCBA2, 0, 0, 0,
- 0,0xD3E0, 0,0xE4BF, 0,0xFBC0, 0,0xDABE,
-0xE4CD, 0,0xD6B9, 0, 0, 0,0xEFC0, 0,
-0xE1FC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF6B9, 0, 0, 0, 0, 0, 0,
-0xDFC7, 0, 0, 0, 0, 0, 0, 0,
-0xE4B1, 0, 0, 0, 0, 0, 0,0xDCE7,
-0xDCE8, 0, 0, 0,0xFAD6, 0,0xD3F6, 0,
- 0, 0, 0,0xF1DA, 0,0xFAF2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE2FD,
- 0, 0, 0, 0, 0,0xD5CF,0xD0F8, 0,
- 0,0xCDDF, 0, 0,0xF5CB, 0,0xE4F0,0xCBAB,
- 0,0xD7C4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE2FE,
- 0,0xDDDA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDAAE,0xCAEE, 0, 0, 0,
-0xD5B9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE3A1, 0, 0,0xE8E3, 0, 0,0xF3AB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCFA9,
- 0, 0, 0,0xD3F7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD4F1, 0, 0,
-0xCEE4, 0,0xE8F2, 0, 0, 0, 0, 0,
- 0, 0,0xE5F5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE7AE, 0,0xD6BA, 0,0xDFEC,0xE4C0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE8E4, 0, 0,
- 0, 0,0xD8B5, 0, 0, 0,0xE4DC, 0,
- 0, 0, 0, 0, 0,0xF4B9,0xF1B6, 0,
- 0,0xE2DE,0xE1B5, 0, 0,0xCDEF,0xF1A7,0xCEE5,
-0xCBDD, 0, 0,0xD9E3, 0, 0,0xF3AC, 0,
- 0,0xD0F9,0xECAB,0xDED3,0xF7E9, 0, 0,0xF9F5,
- 0, 0, 0, 0, 0,0xE1DE,0xCBEE, 0,
- 0, 0,0xE3BC,0xF8D6, 0, 0,0xDBEE, 0,
- 0, 0, 0, 0,0xFDF1, 0, 0, 0,
- 0,0xF7B6, 0, 0, 0, 0,0xF4DE, 0,
- 0,0xF2ED, 0,0xDBD9, 0,0xF0A8, 0, 0,
- 0, 0, 0, 0, 0,0xE1FD, 0, 0,
- 0, 0, 0,0xDED4, 0,0xE0AC, 0, 0,
- 0, 0, 0,0xEDE3, 0, 0,0xD3E1, 0,
-0xDFC8, 0, 0, 0, 0,0xD9B6, 0,0xFDAC,
-0xEFD3, 0, 0, 0,0xE4C1,0xF8EB, 0,0xDBAC,
- 0, 0, 0, 0,0xFCC6, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD8AD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF6BA,
- 0,0xDBDF,0xD3D3,0xF8C7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xCACE,0xF8C1,0xD2B4, 0, 0,0xDCB4,
-0xFAB9,0xCACF, 0,0xFCB3,0xEAEA,0xEAEB,0xD0FA, 0,
- 0, 0, 0, 0,0xEDE4, 0, 0,0xDDE7,
- 0, 0,0xDFC9, 0, 0, 0, 0,0xDFED,
- 0, 0, 0, 0, 0,0xEEBC, 0,0xEFC1,
- 0, 0,0xCCD2, 0,0xDDA4, 0, 0, 0,
-0xDFCA, 0, 0, 0, 0, 0,0xD3F8,0xF1A8,
- 0, 0, 0,0xCDB7, 0,0xEFD4, 0, 0,
- 0, 0, 0, 0, 0,0xE4DD,0xDFEE,0xCBAC,
-0xE9BC, 0, 0, 0, 0, 0,0xEAEC, 0,
- 0, 0,0xDFCB, 0, 0, 0, 0, 0,
-0xF9BF,0xD6AF,0xD5C6, 0, 0, 0, 0, 0,
-0xCFAA, 0, 0,0xCEA9, 0, 0,0xD6F8, 0,
- 0, 0,0xF1B7,0xEEF8, 0, 0, 0,0xD9D9,
-0xF3DF, 0,0xF8C8,0xCEC6, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD5E6, 0, 0, 0,
- 0, 0, 0,0xF4E6, 0, 0,0xE6C5,0xEFD5,
- 0, 0,0xCBEF,0xFCDF, 0, 0, 0, 0,
- 0,0xDCA7, 0, 0,0xD6E7, 0, 0, 0,
- 0, 0,0xF8C9, 0, 0, 0, 0,0xE3D2,
- 0,0xE3BD, 0,0xCFE1,0xF0C0,0xECDA, 0,0xDDD7,
-0xFBF0, 0, 0,0xECAC, 0, 0, 0,0xF0A9,
- 0, 0, 0, 0, 0, 0,0xFAD7,0xFBC1,
- 0,0xD2C0, 0, 0, 0, 0, 0, 0,
- 0,0xE5B0, 0, 0, 0,0xEDE5, 0, 0,
- 0, 0,0xCBAD, 0,0xF9B0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF7A5, 0,0xCBAE, 0,0xDAAF, 0,0xD8B6, 0,
- 0, 0, 0, 0, 0, 0,0xD3A7,0xFBB2,
- 0,0xFDC4, 0,0xECAD, 0, 0, 0, 0,
- 0, 0,0xFBA1, 0, 0, 0,0xE5E9,0xE9EE,
- 0,0xF3F4,0xF8F3,0xF0C1,0xDEAF,0xF8B0, 0, 0,
-0xF3E0,0xE7AF, 0, 0, 0, 0, 0,0xDBAD,
- 0,0xE6B5, 0, 0,0xF9A8, 0, 0,0xDDD8,
-0xE8D9,0xEFD6, 0, 0, 0,0xD3E2, 0,0xE2DF,
- 0, 0,0xFCE0,0xD7C8,0xFDAD, 0, 0, 0,
-0xDFEF,0xCCD3,0xD3F9, 0, 0, 0, 0,0xD4F0,
-0xDBC7,0xDED5, 0, 0, 0, 0,0xF0F4, 0,
-0xD5D0,0xE5D9, 0, 0, 0, 0, 0, 0,
-0xFCC7,0xDCD6,0xE2E0, 0, 0, 0,0xDAB0, 0,
- 0, 0, 0, 0, 0,0xF3A3, 0,0xD3EC,
- 0,0xF4CB, 0, 0, 0,0xFDC5, 0, 0,
- 0, 0, 0,0xE3FD, 0,0xF9B1, 0, 0,
- 0, 0, 0, 0,0xD0FB,0xECDB, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF5BC,0xF2A4,
-0xD8CE,0xD8CF, 0, 0, 0, 0, 0, 0,
-0xF5F7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF6E1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD2B7, 0, 0,
- 0, 0, 0, 0, 0,0xFBEC, 0,0xDDC8,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE4E8,
- 0, 0,0xD2C1, 0, 0, 0,0xF8D7, 0,
- 0, 0, 0, 0,0xD6BB,0xDED6, 0, 0,
-0xF7BD,0xECAE, 0, 0, 0,0xD0E1, 0,0xE0F5,
-0xEAB3, 0,0xCED6, 0, 0, 0, 0,0xCCA5,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xECF6,0xE2E1,0xE3BE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCC8, 0, 0,
-0xCDF0, 0,0xF9F6, 0, 0,0xDFF0, 0, 0,
- 0,0xE5BF, 0, 0, 0,0xCEBF, 0, 0,
- 0, 0,0xFCE1,0xEDB0,0xFDD1,0xF6BB, 0, 0,
-0xF9CF,0xEBDA,0xCAC1, 0,0xD2B8,0xCDF1, 0,0xE3D3,
-0xFDE6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE6ED, 0, 0,
- 0,0xE3FA, 0, 0,0xF0AA,0xF9D0, 0, 0,
- 0, 0, 0, 0,0xFCE2, 0,0xF8A7, 0,
- 0, 0,0xE1E5,0xEEF9, 0, 0, 0,0xE7F6,
-0xEAED, 0, 0,0xFCB4,0xF5C2, 0, 0,0xD7DC,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF0F5, 0,0xDDE8,0xD3ED,0xF5FC, 0,0xDABF, 0,
-0xCCFB, 0, 0, 0,0xD3FA,0xF4A4, 0, 0,
- 0, 0, 0, 0, 0,0xEFD7, 0,0xD4C3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFBE3, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBED, 0,0xE0AD, 0, 0,0xEAEE,
-0xFBB3,0xE4C2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF6E7,0xD2DD, 0,0xDFCC, 0, 0,0xFCC9, 0,
- 0,0xE5A9,0xE0F6,0xF6B3, 0, 0, 0, 0,
- 0,0xE1FE, 0, 0, 0, 0,0xCBF0, 0,
-0xEAEF,0xEAF0, 0, 0, 0,0xDAC0,0xF8B4,0xEBF2,
- 0, 0, 0, 0, 0,0xE4C3, 0, 0,
- 0, 0,0xE9D7,0xE4F1, 0, 0, 0,0xCAEF,
- 0, 0, 0, 0, 0, 0, 0,0xCED7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFCCA, 0, 0, 0,0xF3E1, 0, 0,0xCBC4,
- 0, 0, 0, 0,0xE3E5, 0,0xCBC5,0xEAB4,
- 0, 0,0xE9BD, 0,0xD7C9, 0, 0,0xEBDB,
-0xEDB1, 0,0xCCC3,0xF7BE,0xFCCB, 0, 0, 0,
- 0, 0, 0,0xF8F4, 0,0xD9B7, 0, 0,
-0xF3D3,0xF3D4, 0, 0, 0,0xF7E4, 0,0xF7D1,
- 0, 0,0xD8B7,0xCEB1,0xCAC2, 0, 0,0xFBB4,
-0xCBC6, 0, 0,0xF0F6, 0, 0,0xD5E7, 0,
-0xEAD0, 0, 0, 0, 0, 0,0xCCD4,0xCBAF,
- 0, 0, 0, 0, 0,0xF4AA,0xE9AF, 0,
- 0,0xF5C3,0xE9D8, 0, 0, 0, 0, 0,
- 0, 0,0xDDE9, 0, 0, 0,0xF1F3, 0,
-0xD5FB,0xDEBB, 0, 0,0xF4FB, 0, 0, 0,
-0xFDF3,0xFDF2,0xF7A6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDDC9, 0, 0,0xD4D3,
- 0,0xCCA8, 0,0xDAC1,0xCCD5, 0,0xD9E4, 0,
- 0, 0,0xFACA, 0, 0, 0,0xE5E3, 0,
- 0, 0,0xD3BC, 0, 0, 0,0xCAF0, 0,
- 0, 0, 0,0xD0C4, 0, 0, 0,0xCAD0,
-0xFAAB,0xEBEB,0xE7F8,0xD9E5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD1D7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF3A4, 0, 0, 0,0xD4FB,0xFCE3,
-0xFAD8, 0,0xF3D5, 0,0xCFAB, 0, 0,0xEBF3,
-0xD5FC, 0, 0, 0, 0, 0, 0,0xD3D4,
-0xCDFC, 0,0xD9E6, 0,0xE2F9,0xE2A1,0xEBD4, 0,
-0xE0F7,0xE4B2,0xCCFC, 0, 0, 0,0xFBE4, 0,
- 0, 0,0xF4AB, 0, 0, 0, 0,0xD0BD,
- 0,0xCAF1, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEFB8, 0, 0, 0,0xD7C0, 0,
-0xEEFA,0xFDF4, 0, 0,0xD3E3, 0,0xFBC2, 0,
- 0, 0, 0, 0, 0, 0,0xD5E8,0xDBAE,
-0xE1B6,0xF8B7, 0, 0, 0, 0, 0,0xE0BF,
-0xFBC3,0xDDEA, 0,0xE2A2, 0,0xEEA6, 0, 0,
- 0, 0, 0,0xF6E8, 0, 0, 0, 0,
-0xF6F5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDDCA, 0,
- 0,0xD0E2, 0, 0, 0, 0,0xDDA6, 0,
- 0,0xDDEB, 0, 0,0xE4F9, 0, 0,0xE3AF,
-0xD0FC, 0, 0, 0,0xF4FC, 0, 0, 0,
- 0,0xCCBC,0xF7EA, 0, 0, 0, 0, 0,
- 0,0xE5E4,0xDFF1, 0, 0,0xF7E1, 0,0xF9F7,
-0xEFB9, 0, 0,0xF8D8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF9A9, 0, 0, 0, 0,
- 0,0xF8D9, 0, 0, 0,0xEEBD, 0, 0,
- 0,0xD8C6, 0, 0,0xE4E3,0xF5CE, 0, 0,
- 0, 0,0xDDD9, 0, 0, 0, 0,0xD9E7,
-0xD2B9,0xD5C3, 0, 0,0xDAE5,0xDAD0, 0,0xD1D9,
-0xCED8, 0,0xCBDE,0xF4AC,0xDAFB, 0,0xF6E9,0xE8F3,
-0xCFAC,0xF0F0, 0,0xF4FD,0xDBC8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCEC0,0xE3D4,0xD1CF,0xF1F5,
- 0,0xCDF2, 0,0xCFEB, 0, 0, 0,0xCDB8,
- 0, 0, 0, 0, 0, 0,0xE3A6,0xD1DA,
- 0,0xF2A5, 0, 0, 0, 0, 0,0xF2A6,
- 0,0xE4CE, 0, 0, 0, 0, 0, 0,
- 0,0xD3FB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF1A9, 0, 0, 0,0xF2C9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEFD8,0xE6C9, 0,0xD8B8,0xFAF3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF3B5, 0, 0,0xF8A4, 0, 0,0xD1F3,
-0xE6C8, 0, 0, 0, 0,0xF8DA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDCE9,
-0xDED7, 0, 0, 0, 0, 0,0xCBDF, 0,
- 0, 0,0xCFEC, 0, 0, 0, 0,0xF4DF,
- 0, 0,0xD1F4,0xD2BA, 0, 0, 0,0xDFF2,
- 0, 0, 0,0xE1B7, 0, 0, 0, 0,
-0xE2A3,0xD3FC, 0, 0,0xEDE6, 0, 0, 0,
- 0, 0,0xDBC9, 0, 0, 0,0xE4FA, 0,
-0xCFDE, 0, 0,0xCED0, 0, 0, 0, 0,
-0xD5D3,0xF3F5,0xF7AE, 0, 0,0xEFC8, 0,0xCDF3,
-0xF5CF,0xE5F3,0xF0C2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCAD1, 0, 0, 0,0xEAF1, 0,0xD0A6, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9DA,
-0xF0AB, 0, 0, 0, 0, 0,0xEBE7, 0,
- 0, 0,0xE5C0,0xFCB5, 0, 0, 0, 0,
- 0,0xE4C4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCCA9,0xFDC6, 0,
- 0, 0, 0, 0,0xEAB5, 0,0xE5AA,0xDFBA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE1DF, 0,0xDAD1,
- 0, 0, 0, 0,0xE1B8, 0,0xE8F4,0xD3FD,
- 0, 0, 0, 0,0xE2A4, 0, 0, 0,
- 0, 0,0xF2CA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDAE6,0xF7B3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFDCD, 0, 0, 0,0xF3B6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEED7, 0, 0, 0, 0, 0, 0, 0,
-0xF5C4, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD8A4, 0, 0, 0, 0, 0,0xF2A7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD9B8,0xD9B9,0xEFC9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6CE, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF7CB,0xDFAE,0xE8F5, 0, 0, 0, 0,
- 0, 0,0xD2B5, 0, 0, 0,0xD3D5, 0,
- 0, 0, 0, 0,0xF4CC,0xDAFC, 0, 0,
- 0, 0, 0,0xD9E8, 0,0xF7EB,0xF5C9, 0,
-0xF3BC, 0,0xDAD2, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD3B5, 0, 0, 0, 0,
- 0,0xE8B6, 0, 0,0xD6CF,0xF4BA, 0,0xF7C9,
- 0, 0,0xCCAA, 0, 0,0xF0C3,0xCCD6, 0,
- 0, 0,0xD0D3, 0,0xD3BD, 0, 0, 0,
-0xDBFB, 0,0xCBE0, 0, 0, 0, 0, 0,
- 0,0xD3E4,0xF6F7, 0, 0,0xD5BA,0xF3CD,0xCBE1,
- 0, 0, 0, 0,0xEBF4, 0, 0, 0,
- 0, 0,0xF4AD, 0,0xFCAA, 0, 0, 0,
- 0, 0,0xF7EC, 0, 0, 0,0xE8F6, 0,
-0xDAE7, 0, 0, 0,0xF7CC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE5C1, 0, 0, 0, 0,0xE0EE, 0, 0,
- 0, 0, 0,0xD5FD, 0, 0, 0, 0,
- 0, 0,0xCEE6,0xFCAB,0xD5BB, 0, 0,0xF2A8,
- 0, 0, 0, 0, 0, 0,0xE2A5,0xCDB9,
-0xEAF2,0xCBC7, 0,0xCDF4, 0, 0,0xDBAF,0xEFD9,
- 0, 0, 0, 0, 0,0xCDBA, 0, 0,
-0xFCF9, 0, 0, 0, 0,0xDFF3,0xCEE7,0xDAC2,
- 0,0xCFAD, 0, 0, 0, 0,0xE7F9,0xF8A8,
- 0, 0, 0, 0, 0, 0,0xF3E2, 0,
- 0, 0,0xCAF2,0xDFA4, 0, 0,0xD4C4, 0,
- 0, 0, 0, 0,0xCCD7,0xE5C2, 0, 0,
- 0, 0,0xCDBB, 0,0xEFDA,0xEED8, 0,0xDDA7,
-0xE2A6, 0, 0, 0, 0, 0,0xE0C0, 0,
- 0, 0,0xD6B0,0xF8CA, 0,0xFCFA, 0,0xD9FE,
- 0, 0, 0, 0,0xDEB0, 0, 0, 0,
-0xDDEC,0xDAE8, 0, 0, 0, 0, 0,0xD4E0,
- 0,0xD6F9, 0,0xCDD7,0xDED8, 0, 0,0xF2F8,
- 0,0xE4D6, 0, 0,0xD0C5,0xF4AE, 0,0xDDA8,
- 0, 0, 0,0xEDC5,0xF3D6, 0, 0,0xDED9,
-0xE3E6, 0, 0, 0, 0, 0, 0,0xD3A8,
- 0,0xDBB0, 0, 0,0xE5DA,0xE3BF, 0, 0,
- 0,0xDBB1, 0, 0, 0,0xD5E9, 0, 0,
- 0, 0, 0,0xE0C1,0xEFDB, 0, 0,0xF0E9,
- 0, 0,0xD7B2, 0, 0, 0, 0,0xD0FD,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD9E9, 0, 0,0xD0FE, 0,0xECED,0xD3A9, 0,
-0xF2A9,0xF0C4, 0, 0,0xE2E2,0xE9EF, 0, 0,
- 0,0xF9D1, 0, 0,0xE9D9, 0, 0, 0,
- 0, 0,0xE8DA,0xDAC3,0xDAC4,0xD4C5, 0,0xE7FA,
- 0, 0, 0, 0, 0, 0,0xCDE0,0xE3B0,
- 0,0xDBB2,0xFBC4, 0,0xF3E3, 0,0xD9A5,0xFBE7,
-0xDDCB,0xD0D4, 0,0xE6B6,0xE0AE,0xFDDA, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDCB5,0xE0F8,
-0xE7B1, 0, 0, 0, 0,0xF5F0, 0,0xD8DC,
-0xEDC6, 0, 0, 0, 0,0xE1B9, 0,0xE3C0,
-0xF9C0,0xE9F0, 0, 0,0xD9DB, 0,0xF3E4, 0,
- 0, 0,0xDCB6,0xE4E9, 0, 0, 0, 0,
- 0,0xF0C5,0xE3C1,0xFCCC,0xFCCD, 0, 0, 0,
- 0,0xF2CB, 0,0xF2CC, 0, 0, 0,0xE4CF,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF1DB, 0,0xFAD9, 0,0xF1B8,0xFDF5,0xE0F9,
- 0, 0, 0, 0,0xE7FB,0xFCB7,0xFCE4,0xFBC5,
-0xE3E7,0xD8B9, 0,0xF6F8, 0, 0,0xDCC5,0xCCD8,
- 0, 0, 0,0xE0AF,0xF4E7, 0,0xEFDC,0xCFFC,
-0xEFDD, 0,0xF2AA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFDBE, 0, 0,0xCAAC,
-0xFDBB,0xFDC7, 0, 0, 0, 0,0xE7B2, 0,
-0xEAD1,0xDFF4, 0, 0, 0, 0,0xD1EC,0xE4DE,
-0xE5C3, 0, 0, 0, 0,0xD9A6, 0, 0,
-0xCDBC, 0,0xF3E5, 0, 0, 0, 0, 0,
- 0, 0, 0,0xEDD5, 0, 0,0xD9BA, 0,
- 0, 0,0xEDE7,0xFBB5,0xF8EC, 0, 0, 0,
- 0,0xE0E7, 0,0xCCD9, 0, 0,0xD4C6, 0,
- 0, 0, 0, 0,0xE7A5, 0,0xD5F5,0xD3BE,
- 0,0xFCFB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE4F2, 0,
- 0,0xDFF5, 0, 0,0xE8F8,0xF8ED, 0, 0,
-0xCEC7, 0, 0, 0, 0, 0,0xFDF6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE8D8, 0,0xCDD8,0xE7D6,0xCCDA, 0, 0,0xCAE3,
-0xDFF6,0xF0C7,0xF0C6, 0,0xD8BA, 0,0xF1F4,0xF4F0,
-0xF5CC, 0, 0,0xFCE5, 0, 0, 0, 0,
-0xEAC5,0xEAF3, 0,0xDDDB, 0,0xDCD7, 0, 0,
- 0, 0, 0, 0,0xDEFD,0xF2F9, 0,0xD5C7,
- 0, 0, 0,0xD8D0, 0,0xF0C8,0xD1A1,0xD1A2,
- 0, 0, 0, 0, 0, 0,0xD9D4,0xD6E8,
-0xD9CA, 0,0xDAB1,0xD8C7,0xDCE2,0xF3CE,0xF5F4, 0,
- 0,0xF1B9, 0, 0,0xDAD3, 0,0xF6EA, 0,
- 0, 0,0xCFF5, 0, 0,0xFDAE, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCAD2, 0,
- 0,0xDFB4, 0, 0, 0, 0,0xD7DD,0xFABA,
-0xEEA7,0xF5BD, 0,0xF8F5, 0, 0,0xEDE8, 0,
- 0, 0, 0, 0,0xD4E1, 0,0xD1A3,0xE1D6,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF9F8, 0,0xDBCA,
-0xCBF9,0xD4D4, 0,0xD9DC, 0,0xEEBE, 0,0xF7ED,
- 0, 0, 0,0xD2EE, 0, 0,0xE1E6,0xF7F9,
- 0, 0, 0, 0, 0, 0, 0,0xDDED,
- 0,0xE8DB, 0,0xDBB3, 0, 0, 0,0xD1F7,
-0xE0B0, 0, 0,0xD4E2, 0,0xF6D7, 0,0xD7F9,
- 0, 0,0xD8DD, 0,0xCDFD,0xF2AB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCDBD,
-0xF8C2, 0, 0,0xF2AC, 0, 0,0xCAAD,0xCAAE,
-0xCFAE, 0, 0, 0, 0, 0,0xE3C2, 0,
- 0, 0, 0, 0,0xDCB7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDBDA,
-0xD9BB,0xCAF3,0xF6D3,0xE6F8,0xEAF5, 0, 0, 0,
- 0, 0,0xEAF6, 0, 0,0xF6F9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCFAF, 0, 0,0xCAD3, 0, 0,0xCAAF,
-0xD2B0,0xF1BA, 0,0xD7B3,0xE3C3,0xF3FD,0xDEDA, 0,
- 0, 0, 0,0xDEDB, 0, 0,0xEFDE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE2E3,0xEEFB, 0, 0,0xDFF7,0xD7CA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCEE8,0xDBDB, 0, 0, 0, 0, 0,
- 0, 0,0xF1BB, 0, 0, 0, 0,0xE9F1,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFAB7,0xD0C6, 0, 0,0xCCAB,0xEEA8, 0, 0,
-0xCBFA,0xF9F9,0xCCFD,0xD3FE, 0, 0, 0, 0,
-0xE4D0, 0, 0, 0, 0, 0,0xF2EE, 0,
-0xD4D5,0xDFCD, 0,0xFCB8,0xD1D0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF2CD, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF7D2, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCAD4,
- 0,0xD5D9, 0, 0, 0,0xD8DE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCDD9,
- 0, 0, 0,0xEEA9,0xF6BC, 0, 0,0xCCDB,
- 0, 0, 0, 0, 0,0xF0C9, 0,0xFCFC,
- 0,0xE8C9,0xF4FE, 0, 0, 0, 0,0xE7FC,
-0xD7DE, 0, 0, 0, 0,0xDEDC, 0,0xF0AC,
-0xCCFE,0xCDE1, 0,0xE1BA, 0,0xDBEF,0xDAB2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD1A5,0xDCB8, 0, 0,
- 0,0xD8F6, 0,0xD1A4, 0,0xCDE2, 0, 0,
- 0, 0,0xDCEA, 0, 0,0xF0F7, 0,0xF0CA,
-0xD0BE, 0,0xDDDC, 0, 0, 0, 0,0xD4D6,
-0xD3D6, 0, 0, 0, 0, 0, 0,0xEDD0,
-0xCDA1, 0, 0, 0, 0, 0,0xDFB5, 0,
- 0, 0,0xDFF8, 0, 0, 0, 0, 0,
- 0,0xD4A1,0xCEB2, 0, 0, 0, 0, 0,
-0xE8CA, 0, 0, 0, 0,0xEBF5, 0, 0,
- 0, 0, 0, 0, 0,0xE3D5,0xF5D0, 0,
- 0, 0,0xF5A1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9A7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE5AB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE6CB, 0,0xF5F1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE5C5, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF9A3,0xE0DB,0xF6EB, 0,0xCBF1,
- 0,0xD9EA,0xF5A2, 0, 0, 0,0xD7D1, 0,
-0xD1F8,0xEAF8,0xEAF9,0xDAB3, 0, 0, 0, 0,
-0xEFDF, 0, 0,0xF1EF, 0,0xE5F6,0xEEBF,0xE2E4,
- 0, 0, 0, 0, 0,0xD0BF, 0,0xFAAC,
-0xF5D1,0xE7B3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE9BE, 0, 0,
- 0, 0, 0,0xF2CE,0xDBB4, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCCE, 0,0xDDEE,
- 0, 0, 0, 0, 0, 0,0xE7B4, 0,
- 0, 0, 0, 0,0xD7B4, 0, 0, 0,
- 0, 0, 0,0xF7B4, 0, 0, 0, 0,
- 0,0xCDBE, 0,0xDAE9, 0, 0, 0, 0,
- 0, 0, 0,0xCFB0,0xF7D9,0xF3E6, 0, 0,
-0xCED9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCEAA, 0,0xCBC8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD0A7, 0,0xF0CB, 0,0xD0C7,
- 0, 0,0xE4C5, 0, 0, 0, 0, 0,
- 0, 0,0xDBE0, 0, 0, 0, 0, 0,
- 0,0xD5DA, 0,0xD7A7, 0, 0, 0,0xEEC0,
- 0,0xF8F6, 0, 0, 0, 0,0xF5D2,0xEDE9,
- 0,0xD9BC, 0,0xE5C6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF5A3, 0, 0,
-0xDAD4,0xE2A7,0xFBFC, 0, 0,0xF1DC, 0, 0,
- 0, 0, 0, 0,0xCAF4, 0, 0, 0,
-0xE8FA, 0, 0,0xCEE9, 0, 0, 0, 0,
- 0, 0,0xE9F8,0xE2E5, 0, 0, 0, 0,
-0xD0B9,0xD4F2, 0, 0, 0, 0, 0,0xD1A6,
- 0,0xDFCE, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFCF4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD3AA, 0, 0, 0,0xCCAC, 0, 0, 0,
- 0,0xEFE0, 0, 0, 0,0xE5E5,0xD0D5, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDBFC,
- 0, 0, 0, 0,0xFCE6, 0, 0, 0,
- 0, 0,0xCBFE,0xEDEA, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDEB1, 0, 0, 0, 0,
- 0, 0, 0,0xF9E3, 0, 0, 0, 0,
- 0, 0,0xD4A2,0xCFF6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD6D0, 0, 0, 0, 0,
- 0, 0,0xD5EA,0xF1EE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFACB, 0,
- 0, 0, 0,0xE5A1, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD5B1, 0, 0, 0,
- 0, 0,0xCFED, 0,0xEDEB, 0, 0, 0,
- 0, 0,0xD5B2, 0, 0, 0,0xD5BC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFDE2,0xF3AD, 0,0xFDDB, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE9B0, 0, 0, 0, 0, 0,
- 0, 0,0xD1A7, 0, 0,0xFDE3,0xCEB3, 0,
- 0, 0, 0, 0, 0, 0,0xFDE4,0xFACE,
- 0, 0, 0, 0,0xCAB0, 0,0xF7A7, 0,
-0xCFB1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE6A2,
- 0,0xFCB6,0xF2AD,0xEFE1,0xF3AE,0xDCC6,0xD9EB, 0,
- 0, 0,0xE8E0, 0, 0, 0, 0, 0,
- 0, 0,0xE1A8, 0, 0, 0, 0,0xD5F6,
-0xCFFD, 0, 0,0xDEDD, 0, 0, 0,0xD9D1,
- 0, 0, 0,0xE4EA,0xF2CF, 0,0xF7BF, 0,
- 0,0xE2E6,0xE2A8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE3D6, 0,
-0xEDD1, 0, 0, 0, 0, 0,0xE9F9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD6B1,0xDEB2,
- 0, 0,0xE0E8, 0, 0,0xD3AB, 0,0xEBDC,
- 0, 0,0xDFAF, 0,0xCAC3, 0, 0,0xEEFC,
- 0,0xFDC3, 0, 0, 0,0xEBF6,0xCFB2, 0,
- 0, 0, 0,0xD9EC, 0,0xD9BD, 0,0xD8DF,
- 0, 0,0xD4B8,0xEBBE,0xDDEF, 0,0xDDF0,0xDDF1,
-0xDDF2, 0, 0,0xD9BE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBC6,0xCFB3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEEFD, 0, 0, 0, 0, 0, 0,0xE4AB,
- 0,0xDAC5, 0,0xD8EC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD1A8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE2A9, 0, 0,0xDEBC,
-0xE7B5, 0, 0, 0, 0, 0,0xDBF0, 0,
-0xEFE2,0xF1F0,0xCFB4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDBF1, 0,
-0xE0B1, 0, 0, 0, 0,0xDFA5, 0,0xF9D2,
- 0, 0,0xE7FD, 0, 0,0xE6A3,0xFBF1,0xCBB0,
-0xF2AE, 0, 0, 0, 0, 0, 0, 0,
-0xCDE7, 0,0xE8DC, 0, 0,0xE7D7, 0, 0,
-0xF7C0, 0,0xD0E3, 0, 0, 0,0xDAA1, 0,
- 0, 0,0xCCBD, 0, 0,0xD1A9,0xDDCC, 0,
- 0,0xE3FE,0xD1AA,0xE8AA, 0,0xEAB6,0xF9FA,0xE6CC,
-0xF6D8, 0, 0, 0,0xD4C7, 0, 0, 0,
-0xD9CB, 0,0xD9D2,0xD3CB,0xD8F7,0xDAA9,0xF5F8, 0,
- 0,0xDEDE,0xF2AF,0xF8A9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD8C8, 0, 0,0xEEC1, 0,
- 0, 0, 0,0xF9C1, 0, 0, 0, 0,
-0xDDF3,0xEAFA, 0,0xF6BD,0xE1BB,0xCDBF,0xF4D4,0xE6CD,
- 0,0xFCCF,0xFBA2, 0,0xE0DC, 0, 0, 0,
- 0,0xF4BB,0xDAD5, 0,0xF9B2, 0, 0, 0,
- 0, 0, 0,0xFBF2, 0,0xDBF6, 0,0xDEDF,
- 0, 0, 0,0xDBF2, 0, 0, 0, 0,
- 0,0xF8DC,0xF7EE,0xEBE8, 0,0xD2FA, 0, 0,
-0xF1BC, 0, 0,0xFADA, 0, 0,0xDAEA,0xDAC6,
-0xF7C1, 0, 0,0xE7B6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE5C7,0xD6AC, 0, 0, 0,
- 0,0xDCC7, 0, 0, 0, 0, 0,0xE1A9,
- 0,0xE2AA, 0,0xD5A6, 0, 0,0xD4D7, 0,
- 0, 0, 0, 0, 0,0xF2D0, 0,0xEAFB,
- 0,0xE0DD,0xFBF3, 0, 0, 0, 0, 0,
- 0, 0,0xF1BD, 0, 0,0xE2E7,0xFDD7, 0,
-0xCEC8,0xEAB7, 0,0xFCC0, 0,0xFDE7,0xF7EF, 0,
- 0,0xD7B5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEFBA,0xF1DD, 0,0xDEB3, 0, 0, 0,
- 0, 0, 0,0xE8CB, 0, 0,0xF8DD, 0,
- 0,0xFBC7,0xD5C8, 0,0xD7DF, 0,0xDDA9, 0,
- 0, 0, 0, 0,0xE9B1, 0, 0,0xFAAD,
-0xF6D9,0xFAF4, 0, 0, 0, 0, 0,0xF8AA,
- 0, 0, 0, 0, 0,0xE6EE, 0,0xCCDC,
-0xE1BC,0xE0EF, 0, 0,0xE9BF,0xFCFD,0xE6CE, 0,
- 0,0xE1D7, 0,0xE6CF, 0,0xF4F1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE4F3,
- 0, 0,0xE4FB, 0, 0,0xF9E4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEFE3, 0, 0,0xCFEE,0xF6BE,0xE0B2,0xFCFE,0xD1AB,
- 0, 0, 0,0xD7FA, 0, 0, 0,0xFBC8,
- 0,0xE2D7, 0, 0, 0, 0, 0, 0,
-0xD4A3,0xF0F8,0xD7A8, 0, 0, 0,0xE1E7, 0,
- 0,0xD3BF, 0, 0, 0, 0, 0, 0,
-0xEFE4, 0,0xD7C5,0xEBE2, 0, 0,0xFCE7, 0,
- 0,0xE4A2, 0,0xE2E8, 0,0xE6D0, 0,0xFBE8,
-0xF4E8,0xE5F4,0xF4BC,0xF4D5, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDFB6,
- 0,0xFCB9,0xEEC2,0xCAF5, 0, 0, 0,0xEFE5,
-0xCBE2,0xD4A4, 0,0xDEE0,0xDAFD,0xE4C6,0xE8BE, 0,
- 0, 0, 0,0xE0DE,0xF6B4,0xEAD2, 0,0xF9FB,
- 0, 0,0xE0C2, 0,0xCAE4, 0,0xE7B7, 0,
-0xEAFD, 0,0xD9DD, 0,0xDAB4,0xEEAA,0xFBE9, 0,
- 0, 0, 0,0xDBCB,0xDAB5, 0, 0, 0,
- 0, 0,0xF1BE, 0, 0,0xD3AC, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFBC9, 0,
-0xDFCF, 0, 0,0xD3C0,0xE3D7, 0,0xEFE6,0xFCD0,
- 0, 0, 0, 0, 0, 0, 0,0xE9C0,
- 0, 0, 0,0xF5D3, 0, 0,0xECDC,0xF7B7,
- 0, 0,0xEAB8,0xD1F9, 0, 0, 0, 0,
- 0, 0,0xDCC8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEAB9, 0, 0, 0, 0, 0,0xF1DE, 0,
- 0, 0, 0, 0,0xD7B6,0xCFB5, 0,0xD9A8,
- 0, 0,0xECEE, 0, 0,0xDDAA, 0, 0,
- 0, 0,0xCDA2,0xE8AE, 0, 0, 0,0xE1BD,
- 0,0xF2D1, 0, 0, 0, 0,0xE9C1, 0,
- 0, 0,0xD2FC, 0, 0, 0, 0, 0,
- 0, 0,0xDBB5, 0,0xF3E7,0xD8FE, 0, 0,
- 0,0xFCD1, 0,0xEDB2,0xF4AF, 0,0xFBA3, 0,
- 0,0xFCC1, 0,0xEEAB,0xD4A5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF4F2,
- 0, 0, 0, 0,0xEED9, 0, 0, 0,
-0xFBCA, 0, 0, 0, 0, 0,0xCDE3,0xD8BB,
- 0,0xE5DB,0xF8F7, 0, 0, 0,0xF6D4, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD7A9,
- 0,0xCBC9, 0, 0,0xE6D1,0xF0CC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD8AE, 0,0xF9D3,0xD5FE, 0, 0, 0, 0,
- 0, 0, 0,0xD8BC,0xF2B0, 0, 0, 0,
- 0,0xE2AB,0xF3E8, 0, 0, 0, 0, 0,
-0xEFC2, 0, 0, 0, 0, 0, 0,0xEDEC,
- 0,0xE7B8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDAFE, 0, 0,0xCCBE, 0, 0,0xF2FC,
-0xDAEB, 0,0xE2D8,0xEDD6, 0, 0,0xD6D1,0xE0B3,
- 0, 0,0xFCD2, 0,0xEBC8, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD3C1,0xF0CD, 0,
-0xCFF7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEDD2, 0,0xD4D8,0xDCC9,0xD7F1, 0,
- 0,0xDFBB, 0, 0,0xF3A5, 0, 0, 0,
-0xF4CD, 0, 0, 0, 0,0xF1BF,0xF8B1, 0,
-0xE9FA, 0, 0, 0,0xFBCB, 0, 0,0xCAD5,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF9D4,0xF7CA, 0, 0,0xD6C8,
- 0, 0, 0, 0, 0, 0,0xFCE8,0xF3BD,
- 0,0xEEFE, 0,0xE7FE, 0, 0, 0, 0,
- 0,0xD3C2, 0, 0, 0, 0,0xD3B6, 0,
-0xCCAD,0xF6FA,0xD6B2,0xD2D8, 0, 0, 0, 0,
- 0, 0,0xE7D8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE3A5, 0, 0,
- 0, 0,0xE7B9, 0, 0, 0, 0,0xF0AD,
-0xFBCC,0xEBA1, 0, 0,0xD4A6, 0, 0, 0,
- 0,0xFBCD, 0,0xD5BD,0xF1DF, 0, 0,0xF6FB,
- 0,0xDEB4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD5EB, 0,
- 0,0xE5C8, 0, 0, 0,0xFBA4,0xD4B9, 0,
- 0,0xDEE1, 0,0xE4A3, 0, 0, 0,0xD7B7,
- 0,0xF8EE, 0, 0, 0,0xDEB5, 0, 0,
-0xD6D2, 0,0xF9D5,0xE7BA,0xEBD5,0xD5F7,0xEFE7,0xE1BE,
- 0, 0, 0,0xFAAE, 0, 0, 0,0xD6E9,
-0xD6EE, 0, 0, 0, 0, 0, 0,0xE7BB,
- 0, 0, 0, 0, 0, 0, 0,0xECCB,
- 0, 0, 0, 0, 0, 0,0xD5B3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCEB4, 0, 0, 0,
-0xFBA5,0xE1EE, 0, 0, 0, 0, 0, 0,
-0xF7A8, 0, 0, 0, 0,0xFBCE, 0, 0,
- 0, 0, 0,0xD8BD, 0, 0, 0, 0,
- 0, 0, 0,0xFBFD, 0, 0, 0, 0,
-0xFCE9, 0, 0, 0, 0, 0, 0, 0,
-0xCFB6, 0, 0, 0,0xEDC7,0xEEAC, 0, 0,
- 0, 0, 0, 0, 0,0xCCDD, 0, 0,
- 0, 0,0xF6A7, 0, 0, 0,0xE6FA, 0,
- 0, 0,0xF5A4, 0, 0, 0, 0, 0,
-0xFDDC,0xEDB3,0xCEC9, 0, 0, 0, 0, 0,
- 0,0xEFE8, 0, 0,0xE1BF, 0, 0, 0,
- 0, 0, 0,0xFADB,0xCBE3,0xF7A9, 0,0xFBA6,
- 0, 0, 0,0xDCB9, 0, 0, 0,0xF1C0,
-0xEDC8,0xEFC3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6AD, 0, 0,0xFDCE, 0, 0, 0,0xE8A1,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFBF4,0xD5A7, 0, 0, 0,0xF1F6, 0,0xE6D3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCCDE, 0, 0, 0, 0, 0, 0,
- 0,0xF8B2, 0, 0, 0,0xDCEB, 0, 0,
- 0, 0, 0, 0,0xFDB6, 0, 0, 0,
- 0,0xE5EA, 0, 0,0xF1E0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDBCC,0xDDCD, 0, 0, 0,0xD4C8, 0,
- 0,0xD9ED, 0, 0, 0, 0,0xF5A5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE6FB, 0, 0, 0, 0, 0,0xE6D4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFDC8,
- 0,0xD6A1,0xFDBF, 0,0xFCD3, 0,0xEFA1, 0,
-0xE7BC, 0, 0, 0, 0, 0,0xD1EE, 0,
- 0,0xE6D5, 0, 0,0xE9F2, 0,0xDFB0, 0,
- 0, 0, 0, 0,0xD8E0,0xFCBA,0xFDAF,0xF0CE,
- 0,0xDBE1, 0, 0,0xE5C9, 0,0xEDB4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE0C3, 0, 0,
- 0, 0, 0, 0,0xE3D8, 0, 0, 0,
- 0,0xE9FB,0xEAA8, 0, 0, 0, 0,0xFDB7,
- 0, 0,0xFBA7, 0,0xE9C2, 0, 0, 0,
- 0,0xFDF7, 0, 0, 0, 0, 0,0xE2D9,
- 0, 0,0xDCEC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE8A2, 0, 0, 0,
- 0,0xE6F0, 0, 0, 0, 0, 0, 0,
- 0,0xFDF8,0xFDF9, 0, 0, 0,0xF6BF, 0,
- 0,0xE7A7, 0,0xE6D7, 0, 0, 0, 0,
-0xD4F3,0xD4C9, 0, 0, 0, 0,0xD6FA, 0,
-0xD7F2, 0,0xE1C0, 0,0xDBE2,0xE6D8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE7BD,
- 0, 0, 0, 0, 0,0xF0CF,0xF3BE,0xE2AC,
- 0, 0, 0, 0, 0,0xF5B7,0xE0F0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFDB8,0xE3E8, 0,0xD4A7,0xE8FC,
-0xFAD2, 0, 0, 0, 0, 0,0xF8EF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6D3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD5B4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF0D0, 0,0xF7F0,0xEEB3, 0, 0,
-0xEABA, 0,0xEAD3, 0, 0,0xEDC9,0xDDAB, 0,
- 0, 0,0xE5AC,0xFDA1, 0,0xDFD0,0xECB3, 0,
-0xDFD1, 0, 0, 0, 0, 0,0xEDED,0xF8B8,
-0xF7FA, 0, 0, 0,0xF8AB, 0, 0, 0,
- 0, 0,0xF4E0, 0, 0, 0, 0, 0,
-0xD4BA,0xE4B3, 0,0xE9DA, 0,0xDEB6, 0,0xD9BF,
- 0,0xD9C0,0xD6EF, 0, 0, 0, 0,0xD9CC,
- 0,0xDAAA, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDFE5, 0, 0, 0, 0, 0,
- 0,0xF7E5, 0, 0, 0,0xCCB2, 0, 0,
-0xDFF9,0xD7E0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD4BB, 0, 0, 0, 0,0xFDFA,
- 0, 0, 0, 0,0xCCB3, 0, 0,0xDBF3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xDFD2, 0,0xCECA, 0,0xEEDA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE4E4, 0,
-0xFBCF, 0, 0, 0, 0, 0, 0,0xCFB7,
- 0,0xEEC3, 0, 0, 0, 0, 0, 0,
- 0,0xCEEA, 0, 0, 0, 0, 0, 0,
- 0,0xE2AD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD7E1,0xFAF5, 0, 0,0xD5C9,0xF8AC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE7D9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF3E9, 0,
- 0, 0, 0,0xD8ED,0xE3C4,0xF0F1, 0, 0,
- 0, 0, 0, 0, 0,0xE8E5, 0, 0,
- 0,0xE0FA,0xEEC4,0xD9DE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xEBA2,0xEBA3,
- 0, 0, 0, 0, 0, 0,0xFCC2,0xEABB,
- 0, 0, 0, 0,0xE8AB,0xDEE2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEDEF, 0,0xE8A3, 0, 0, 0, 0,0xCFF1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD4BC, 0,0xFCEA, 0, 0, 0, 0, 0,
-0xE7BE, 0,0xFCF2, 0, 0,0xD6B4, 0, 0,
-0xE2AE, 0,0xD3B7,0xFACC, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFADC, 0,0xEDB5,0xE1E3,
- 0,0xE8AC, 0,0xE8DD, 0, 0,0xEFE9, 0,
- 0, 0, 0, 0,0xF4BD, 0,0xCFB8,0xE9DB,
-0xD1AC, 0, 0, 0, 0, 0, 0,0xDAC7,
- 0, 0, 0, 0, 0, 0, 0,0xEBC9,
- 0,0xE8CC, 0, 0, 0,0xDEB7, 0, 0,
- 0, 0,0xD6BC,0xD3E5, 0, 0, 0, 0,
- 0,0xFADD, 0, 0, 0, 0, 0, 0,
-0xDAD6, 0,0xCAB1, 0, 0, 0, 0, 0,
- 0,0xDAC8,0xDFA6, 0,0xF9B3,0xF2D2, 0,0xCAC4,
- 0, 0, 0, 0, 0, 0,0xCECB, 0,
- 0,0xCDF5, 0, 0, 0,0xFDB0,0xD5A8, 0,
-0xF1C1, 0, 0,0xE2E9,0xDCCA,0xECB4,0xFAC0, 0,
- 0,0xFBA8,0xD0A8, 0, 0,0xDAEC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9EE,
- 0,0xE0FB, 0, 0, 0,0xEFEA,0xFADE, 0,
- 0,0xE0C4, 0,0xCFB9, 0,0xD5CA,0xD7E2,0xE2AF,
- 0,0xD7B8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE8CD, 0, 0, 0, 0,
- 0, 0, 0,0xF6DA, 0, 0, 0, 0,
-0xEFA2,0xE2DA,0xF6FC, 0, 0,0xFBD0,0xD1AD, 0,
-0xCDE4, 0,0xD1AE,0xDCED,0xE8CE, 0,0xF0F9,0xCEB5,
-0xE6FC, 0, 0,0xD7FB,0xD0D6,0xDDF5,0xF7F1, 0,
-0xF6FD, 0,0xDBF7, 0, 0, 0, 0,0xFBEA,
-0xE9DC,0xD9C1, 0,0xF5F2,0xE0C5, 0, 0, 0,
- 0, 0, 0,0xEAD4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF9C2, 0,0xEABC,
- 0,0xD2C5,0xFBD1,0xE7C0,0xEBA5, 0,0xDFFA,0xE3A2,
-0xD7B9, 0,0xE9C3, 0,0xE8FD,0xE8AF, 0, 0,
-0xF2D3,0xFBA9,0xD8A5, 0, 0, 0, 0,0xD5CB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD0C8, 0,
- 0, 0,0xD1AF,0xD7E3, 0, 0, 0,0xE0C6,
- 0,0xD6A2, 0,0xEDF0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD7F3, 0, 0, 0,0xFCD4, 0,0xDAD7,0xCCDF,
- 0,0xF2D4, 0,0xD1B0, 0,0xCCE0, 0,0xDBFD,
-0xF3BF, 0,0xF0D1, 0, 0, 0, 0, 0,
-0xFCBB, 0,0xE2B0, 0, 0,0xE6A5, 0, 0,
- 0,0xE2DB, 0, 0, 0,0xDFDE, 0,0xE0C7,
- 0, 0, 0, 0, 0, 0,0xF2EF, 0,
- 0, 0,0xCCE1, 0, 0, 0, 0,0xD6EA,
- 0, 0, 0, 0,0xE7C2, 0, 0, 0,
-0xCEB6, 0,0xF3C0, 0,0xCDFE, 0, 0, 0,
-0xFBD2, 0,0xF8F8,0xF7FB, 0, 0,0xE8BF, 0,
- 0, 0, 0, 0, 0, 0,0xE8B7, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEDB6,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDCBA, 0, 0,0xCCB4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF1F7, 0, 0, 0,0xE8B8, 0, 0,
-0xCAF6, 0,0xE4A4,0xF4D6, 0, 0, 0,0xDFE6,
- 0, 0, 0,0xDFA7, 0,0xDFE7,0xE1C1, 0,
-0xE9C4, 0, 0,0xDCCB,0xE9C5, 0, 0, 0,
-0xEFA3,0xEBA6,0xCBA3,0xE3E9, 0, 0, 0,0xD1FB,
-0xEFA4, 0,0xEFEB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD0B4,
- 0, 0, 0, 0,0xCDA3, 0, 0,0xE8E6,
- 0,0xEFA5, 0,0xD3CC,0xDAED, 0, 0, 0,
- 0,0xD7BA, 0,0xF2D5,0xF5E5,0xD9EF, 0, 0,
- 0, 0,0xF9B4, 0, 0,0xD5D4,0xFDCF, 0,
- 0, 0,0xDBE3, 0, 0, 0, 0,0xF1E1,
-0xECB6, 0, 0, 0, 0,0xFBFE,0xD3D7, 0,
-0xD1B1, 0,0xCBB1, 0, 0, 0, 0,0xD1B2,
- 0, 0, 0, 0, 0, 0,0xCBB2,0xF1C2,
- 0, 0,0xF4E1,0xF9B5, 0, 0,0xE1C3,0xE1C2,
- 0,0xEBF7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDFA8, 0, 0,
- 0, 0, 0, 0, 0,0xCBCA, 0, 0,
- 0, 0, 0,0xE6B9, 0, 0, 0, 0,
- 0,0xF8DE,0xF9AA,0xCAF7, 0,0xEDB7, 0, 0,
-0xD3B8,0xF2D6, 0, 0,0xD4D9,0xEEC5,0xF2F0, 0,
- 0, 0,0xCAB2, 0, 0,0xDCBB, 0,0xF1F8,
- 0, 0, 0, 0, 0,0xECB7, 0, 0,
- 0, 0,0xE5CA, 0,0xF6C0,0xFDDD, 0, 0,
-0xD4E3,0xCCE2, 0,0xF7D4, 0, 0, 0, 0,
- 0, 0,0xD7E5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD3C3, 0,0xD8A6, 0,0xF6C1, 0, 0, 0,
- 0, 0,0xDDF6, 0,0xCDC0, 0, 0, 0,
-0xE5DC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE5CB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE1C4, 0, 0, 0, 0, 0,0xE8B0,
-0xF4B0,0xF3EA,0xDAEE, 0,0xD7BB, 0,0xE2B1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD7AA, 0, 0, 0, 0,
- 0, 0,0xD6FB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE4DF, 0,0xCAD6, 0,
- 0, 0,0xEBA8, 0, 0, 0,0xDBFE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF6C2, 0, 0,0xEFBB, 0, 0, 0,
- 0,0xD4FD, 0, 0,0xE0C8, 0, 0, 0,
-0xE8B9, 0,0xEFA6, 0, 0, 0, 0, 0,
-0xCDA4, 0, 0,0xD4F4,0xDBA1,0xDBDC,0xDBDD, 0,
- 0, 0, 0, 0,0xEEDC, 0,0xCBCB,0xFCD5,
- 0, 0, 0, 0, 0, 0,0xCEEB, 0,
-0xCDC1, 0, 0,0xFBD3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF9AB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF5D4, 0, 0, 0, 0,0xD9A9,
- 0, 0,0xE9DD,0xDBCD, 0, 0,0xDDCE, 0,
-0xE7C3, 0,0xECCC, 0, 0, 0, 0, 0,
- 0, 0,0xF9EC, 0, 0, 0,0xCBCC, 0,
- 0, 0, 0,0xE0FC,0xD4A8, 0,0xEDD3,0xD8EF,
- 0,0xF2D7, 0,0xCAF8,0xDAEF, 0, 0,0xD6D4,
- 0, 0, 0, 0, 0, 0,0xD9CD, 0,
- 0, 0,0xD8EE, 0,0xF2C1, 0, 0, 0,
-0xDFD3, 0, 0, 0,0xDAF0, 0,0xE2EA, 0,
- 0,0xE0FD, 0, 0,0xD8F8, 0, 0, 0,
-0xF7AF,0xDAB6, 0,0xCAD7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF2D8, 0,
-0xD8F9, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFADF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCFEF,
-0xD9C2, 0,0xF0D2, 0,0xE4D1, 0, 0, 0,
-0xF3B7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFAE0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xEFEC, 0, 0, 0, 0,
- 0,0xE2B2, 0,0xD4BD, 0, 0,0xD9CE, 0,
- 0, 0, 0,0xF4E2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD4A9, 0, 0, 0, 0,0xCDC2,0xE7DA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF2D9, 0, 0, 0, 0,
- 0,0xD9AA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD8BE, 0,
- 0, 0, 0, 0, 0,0xDCAD, 0, 0,
- 0, 0, 0, 0,0xE2EB,0xD6FC, 0, 0,
-0xCAF9, 0, 0,0xD4DA, 0, 0, 0, 0,
- 0, 0, 0,0xF4D7,0xCCA1, 0, 0,0xCFBA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF5B8,
- 0, 0, 0,0xD9C3,0xD0E8, 0, 0, 0,
- 0, 0,0xE3C5,0xEBF8, 0,0xF2B1, 0, 0,
- 0,0xCFBB, 0, 0, 0,0xD3AD,0xE8E1,0xCEEC,
- 0, 0, 0,0xE0B4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDEE3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDDF7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF2B2,0xF3F6,0xF6DB,
- 0, 0, 0, 0,0xD7FE, 0, 0, 0,
- 0, 0,0xF8DF, 0,0xF7F2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD0A9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE6DA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF5A6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD7BC,0xCCE3, 0, 0,0xE6DB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDDDD, 0, 0, 0,
- 0,0xD1B3, 0, 0, 0, 0, 0,0xEFED,
- 0, 0, 0, 0,0xD6DE,0xE4F4,0xE1EF, 0,
- 0,0xDDF8, 0, 0, 0, 0, 0,0xE8CF,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCAE5, 0, 0, 0,0xDCA1,
- 0,0xE0B5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFCAC,0xFCAD,0xD8A7, 0, 0, 0,
- 0,0xEDB8, 0, 0, 0,0xDBB6, 0, 0,
- 0, 0,0xD6F0,0xF3AF, 0, 0,0xCDA5, 0,
-0xDAF1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD8A8, 0, 0, 0,0xCCE4, 0, 0,0xD1B4,
- 0, 0, 0, 0, 0,0xCAD8, 0, 0,
- 0, 0, 0,0xDAF2, 0, 0, 0, 0,
- 0,0xF5A7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF5A8, 0,
- 0, 0, 0, 0, 0, 0,0xE6A6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD5EC,0xD5F8,0xDAF3, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE3C6, 0, 0, 0,0xDEE4, 0,
-0xDEE5,0xD1B5, 0, 0, 0, 0, 0,0xD1B6,
-0xD1B7,0xF2B3, 0, 0, 0, 0, 0, 0,
-0xE9DE, 0, 0, 0, 0, 0,0xF0D3,0xF2B4,
- 0, 0,0xF0D4,0xCBE4,0xFBD4,0xF5E6,0xE3EA, 0,
-0xDEE6, 0, 0, 0, 0,0xDFD4, 0, 0,
-0xF8F9, 0, 0, 0, 0,0xF0AE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD1B8, 0, 0, 0, 0,0xD6DF,
- 0,0xD0D7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFCA1,0xEFEE,0xDCD8,
- 0,0xE9DF, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE5DD,0xFDFB,
- 0, 0,0xE0C9, 0, 0, 0,0xD6C9, 0,
- 0,0xD4AA, 0,0xE5CC, 0, 0, 0, 0,
- 0,0xE9E0, 0, 0, 0,0xD0D8,0xFCA2,0xD4BE,
-0xE2B3,0xDEE7, 0, 0, 0, 0, 0, 0,
- 0,0xDCBC,0xD2B6,0xF5D5, 0, 0, 0, 0,
- 0,0xCEA1,0xF5A9, 0, 0,0xDDF9, 0, 0,
-0xDDFA, 0, 0, 0, 0, 0, 0,0xF0D5,
- 0, 0, 0, 0,0xF6DF, 0,0xF2DA,0xE4EB,
- 0,0xF2F1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xECB9, 0, 0, 0, 0,
-0xFDFC, 0, 0, 0, 0,0xE1AA, 0, 0,
-0xCAD9, 0, 0,0xEFEF, 0,0xF5AA, 0, 0,
- 0, 0, 0, 0,0xECF9, 0, 0,0xF8AD,
- 0,0xF2C2,0xF6C3, 0,0xD7D2, 0, 0,0xF9A2,
-0xF0D6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF0FA, 0,
- 0,0xF6E0, 0, 0, 0, 0,0xE9F3,0xF2C3,
- 0, 0, 0,0xD4AB,0xCAB3,0xCDA6, 0,0xCDC3,
-0xCDDA, 0, 0, 0, 0, 0,0xD9CF, 0,
- 0,0xF6C4, 0, 0, 0,0xEEDD,0xE7C4, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE2B4,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDFE2,0xE7DB, 0, 0, 0, 0, 0,
- 0,0xE8B1, 0,0xFCAE, 0, 0, 0, 0,
-0xE5CD, 0, 0, 0,0xFAEB, 0,0xCFBC, 0,
- 0,0xCFE2,0xCDF6, 0, 0,0xEFF0, 0,0xF4BE,
- 0,0xD4CD, 0, 0,0xF3B8, 0, 0, 0,
-0xE9A1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF2F2,0xF3EB, 0,0xF0D7, 0, 0,
-0xCFD7, 0, 0, 0, 0, 0, 0,0xCFDF,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE8C0,0xE8C1, 0, 0, 0,0xCFE3,0xE9A2,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD0AA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF3C1,0xD0AB, 0,0xD4E4,
- 0, 0,0xEFBC,0xD8A1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9DF,
- 0,0xF3D7, 0, 0, 0,0xDCBD, 0,0xCCE5,
-0xEDF1, 0, 0,0xF1E2, 0,0xD4DB, 0, 0,
- 0, 0,0xE2B5, 0, 0,0xCAE6, 0,0xD3AE,
- 0, 0, 0, 0, 0, 0,0xCCE6, 0,
- 0,0xF1D3,0xF5E7, 0, 0, 0, 0,0xCADA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xFBEE,
- 0,0xE1C5, 0, 0, 0, 0, 0, 0,
- 0,0xDFE9, 0,0xEEDE, 0, 0,0xF7C2, 0,
-0xD8A2, 0, 0, 0, 0, 0,0xDDAC, 0,
- 0, 0, 0, 0,0xF0AF,0xD6BD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE1AB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF9B6, 0,
- 0,0xD4F5, 0,0xD0C9,0xEFA7,0xE2EC, 0,0xDBEA,
-0xCECC,0xF5E8,0xF7D5, 0,0xD3CD, 0,0xF3FE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD0B5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE0FE, 0,0xDFFB, 0,
- 0, 0, 0, 0, 0,0xE6DD, 0, 0,
- 0, 0, 0, 0, 0,0xE8A4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCBCD,
- 0, 0, 0,0xEFA8, 0, 0, 0,0xEEB4,
- 0, 0, 0, 0,0xDAD8,0xD1B9, 0,0xDFA9,
- 0, 0,0xF3B0, 0, 0,0xCCC4, 0, 0,
- 0,0xCEB7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xEFA9, 0, 0,
- 0,0xDFD5, 0, 0,0xEDD7, 0, 0, 0,
-0xEEC6, 0, 0, 0, 0, 0, 0, 0,
-0xEFBD,0xFCD6, 0, 0,0xDBF4, 0,0xEFAA,0xF8B9,
- 0,0xF5E9, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE3D9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE1C6, 0, 0, 0,0xD4BF, 0, 0, 0,
- 0,0xDEE8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF0EA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF3C2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD3AF, 0,
- 0,0xCADB, 0, 0, 0, 0, 0,0xFCD7,
- 0, 0,0xEDD8,0xE1C7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF4D8,0xD6B3,0xDDAD,
- 0, 0, 0,0xD5BE, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF1C3,0xEEDF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6EB, 0, 0, 0,0xF4D9, 0, 0, 0,
- 0, 0, 0, 0,0xD7E6, 0, 0, 0,
- 0, 0, 0,0xDAB7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDDFB, 0, 0, 0, 0,
- 0,0xDDCF, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD8A3, 0, 0,0xDAD9, 0,0xF0D8,
-0xEFC4, 0, 0, 0, 0, 0, 0,0xE1D8,
- 0, 0, 0, 0, 0,0xF1D4, 0,0xEDF2,
- 0, 0, 0, 0, 0, 0,0xD5DB, 0,
- 0,0xD5DC,0xF3C4,0xCBD7, 0, 0, 0, 0,
- 0,0xE2B6, 0, 0, 0, 0,0xEFF1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBD5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD3D8, 0,
- 0, 0, 0, 0, 0, 0,0xDDD0,0xF0D9,
-0xCBB3, 0, 0, 0, 0, 0, 0,0xD5DD,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCDA7, 0, 0,0xD0AC, 0,
-0xD1BA, 0,0xF1C4, 0,0xE5B3,0xFBF5,0xE9E1,0xFDE0,
-0xFCBC, 0,0xDAA2,0xDAA3, 0,0xD2A1, 0, 0,
-0xD2EF, 0, 0, 0,0xE2ED, 0, 0,0xDEE9,
-0xCEDC,0xF2B5,0xD0E4,0xDDD1, 0, 0, 0, 0,
-0xE1C8,0xDBB7,0xDFE3, 0, 0, 0, 0, 0,
- 0, 0, 0,0xEDB9,0xF1C5, 0,0xF3CF,0xD7AB,
-0xE1AC, 0, 0,0xE3EB, 0,0xEEC7, 0, 0,
- 0,0xE1C9,0xCAFA, 0, 0, 0, 0, 0,
- 0, 0,0xF0FB,0xFAE1,0xF0DA,0xCCE7,0xDAF4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCCBF, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCEED, 0,
- 0,0xD5A9,0xFAE2, 0, 0, 0,0xD0E5, 0,
-0xEBD6, 0,0xECDF, 0, 0, 0,0xDFFC, 0,
- 0,0xF7D6,0xDEEA,0xCBB4, 0, 0,0xEFBE, 0,
- 0,0xCCB5, 0, 0, 0, 0, 0,0xCFBD,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xEFF2,0xE2B7,
- 0, 0, 0,0xCCE8, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF0FC, 0, 0, 0,
-0xD6E0, 0,0xF1C6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE2B8,0xEBAB, 0, 0,
- 0,0xCBB5,0xD8D1, 0,0xF4CE,0xF3F7, 0, 0,
-0xD7C6, 0,0xD1BB,0xF7AA, 0,0xEDCA,0xD7D3,0xD8FA,
- 0, 0, 0, 0, 0, 0, 0,0xF6C5,
- 0, 0,0xD1CC,0xDDFC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDFFD, 0,
-0xF9E5, 0,0xE0CA, 0, 0,0xF2FD,0xD3B0, 0,
-0xF4F3,0xDAC9, 0,0xE6DE, 0, 0, 0, 0,
-0xF8BA,0xE8D0, 0, 0,0xD8FB, 0, 0,0xEAD5,
- 0, 0, 0, 0,0xD6A3, 0, 0, 0,
- 0, 0, 0,0xF6C6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF2DB,0xE4FC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE8B2, 0, 0,
- 0, 0, 0,0xDADA, 0,0xF2DC,0xFBD6,0xE9B2,
- 0,0xEEAD, 0,0xFAE3, 0, 0, 0, 0,
- 0, 0, 0,0xDCEE, 0, 0,0xF5EA,0xE6E0,
- 0,0xF0FD, 0, 0, 0, 0, 0,0xD7AC,
- 0, 0, 0, 0, 0,0xF5C5,0xEEE0, 0,
- 0,0xDBE5, 0,0xDDDE, 0, 0,0xD9F0,0xE9A3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF1F9, 0,0xF2C4,0xE0CB, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE9A4, 0,
- 0,0xE2B9, 0, 0, 0, 0, 0, 0,
- 0,0xE3B1,0xFCEB,0xCDA8, 0,0xCCB6, 0, 0,
-0xF0DB, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE6BA, 0, 0,0xCDA9, 0, 0, 0,
- 0, 0,0xF3C3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE1D9, 0, 0,0xEFAB,
- 0, 0, 0,0xE7C5, 0, 0,0xE0E9, 0,
-0xF3C5, 0, 0,0xD4C0,0xD5BF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDDAE, 0,
-0xF9FC, 0,0xCCC0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE5A2, 0, 0, 0,
-0xCEB8, 0, 0, 0,0xD8D2,0xF9D6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF1AA,0xCED1, 0, 0,0xF6C7, 0,
-0xDBEB, 0,0xDFFE, 0, 0,0xD8E1, 0,0xF7F3,
- 0,0xD7E7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD4FE, 0, 0,
-0xD1BC, 0,0xE5CF, 0,0xCBB6, 0,0xDAB8, 0,
- 0, 0, 0, 0,0xCDC4, 0, 0, 0,
- 0, 0,0xD6BE, 0, 0, 0,0xE2BA, 0,
- 0, 0, 0, 0,0xCFD8, 0, 0, 0,
-0xE0CC,0xEBF9, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFDFD, 0, 0, 0, 0, 0,
-0xD7E8,0xCBD8, 0, 0, 0,0xE9E2, 0, 0,
- 0,0xE8BA, 0, 0, 0,0xE3C7, 0, 0,
- 0, 0,0xECCD, 0,0xECCE, 0,0xD6BF, 0,
- 0, 0,0xE3A7, 0,0xDFD6,0xFDE8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEEE1,
-0xF6A8,0xDDFD, 0, 0, 0, 0, 0, 0,
- 0,0xF8BB, 0,0xE8D1, 0, 0, 0, 0,
-0xF9D7, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCEEE, 0, 0,0xECCF, 0, 0, 0,
-0xE9A5,0xD6D5, 0,0xCDC5, 0,0xEDBA,0xD1BD, 0,
- 0,0xCFBE, 0, 0,0xECBB, 0, 0, 0,
-0xD2B1, 0, 0, 0, 0,0xCCE9, 0,0xD9C4,
-0xE9FC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD1BE, 0, 0,
- 0, 0, 0,0xECBC, 0, 0,0xE5AD, 0,
- 0, 0, 0, 0, 0,0xF7B0, 0,0xCCEA,
- 0, 0, 0,0xD3C4, 0, 0,0xD6C0, 0,
- 0, 0,0xD6FD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE1A1, 0,
-0xDEBD, 0,0xF6A9, 0, 0, 0,0xDAA4, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD6A4,
-0xF5C6, 0,0xE1A2,0xE9C6, 0, 0, 0,0xF2C5,
- 0, 0, 0, 0, 0,0xF4E9,0xD6EC,0xEBD3,
- 0, 0, 0, 0,0xECBD,0xE2DC,0xDEEB,0xF0DC,
- 0,0xEBBF, 0,0xD7CE,0xD1BF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF5AB, 0,
- 0, 0, 0,0xF9FD, 0,0xCADC, 0, 0,
- 0,0xCDC6,0xF2B6, 0, 0,0xDDFE, 0, 0,
- 0,0xCCB7,0xDBB8, 0, 0, 0, 0,0xD0E9,
- 0,0xCEDD,0xEBC0, 0,0xFDA2, 0, 0, 0,
- 0, 0,0xF8CB, 0, 0, 0, 0, 0,
- 0, 0, 0,0xEAD6,0xF1B0, 0, 0, 0,
- 0, 0, 0, 0,0xDBCE, 0,0xF7C3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDBCF,0xCBA4, 0, 0,0xF8E0, 0,
- 0,0xFBD7, 0, 0,0xEBCA,0xE0A1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCECD, 0, 0,0xD4DC, 0, 0, 0,
-0xFDD8, 0, 0, 0, 0,0xD2F6, 0, 0,
- 0, 0,0xF2B7, 0, 0,0xFAF6,0xF6AA,0xFAF7,
-0xD8E6, 0,0xF4B1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE8D2, 0,0xCAC5,0xCCEB, 0, 0, 0, 0,
- 0, 0, 0,0xE2EE, 0, 0, 0, 0,
- 0,0xE2BB, 0,0xF7AD, 0, 0, 0,0xF8E1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF3EC, 0, 0, 0, 0,0xDEA1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE4FD, 0, 0,0xE3EC, 0,
-0xDDAF,0xDDB0, 0, 0,0xCBB7,0xE8D3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE1A3,0xD2E0, 0,
- 0, 0, 0,0xF0FE, 0, 0, 0, 0,
-0xE9A6,0xCBF2, 0, 0, 0, 0, 0, 0,
-0xEDF3,0xDCD9,0xE0CD, 0, 0, 0, 0,0xF7DA,
-0xDBB9, 0, 0, 0, 0, 0, 0, 0,
-0xCCAE, 0,0xDADB, 0, 0, 0, 0,0xCDC7,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDDB1, 0,0xD8AF,0xE3A3, 0, 0,
-0xCEEF, 0, 0,0xF2F3, 0, 0, 0, 0,
-0xF8B3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE0CE, 0,0xF5FD, 0, 0,
- 0, 0,0xEBEC, 0, 0,0xD3C5,0xFCEC,0xD2DB,
-0xD4EB, 0,0xDEA2, 0, 0, 0,0xE5E6, 0,
- 0, 0, 0, 0, 0,0xF0B0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD5C4, 0, 0, 0, 0, 0, 0,0xEDF4,
- 0, 0, 0,0xE3ED, 0,0xE8C2, 0,0xEDF5,
-0xD7FC, 0,0xEDBB, 0, 0,0xF6AB, 0, 0,
- 0, 0, 0,0xF2B8,0xF6C8, 0, 0, 0,
- 0, 0,0xD3E6,0xF2DD,0xCFBF, 0,0xEBAC, 0,
- 0, 0, 0, 0, 0,0xCFC0, 0,0xE6A8,
-0xFDE9, 0,0xCFC1, 0,0xE0DF,0xDEEC, 0, 0,
- 0, 0,0xE0A2, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF4BF,0xE2EF, 0,0xD9F1,0xF1C7,
- 0,0xCBB8, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF9FE,0xDBBA,0xDAF5, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF6EC,0xDADC,0xFAE4,
- 0,0xE0CF, 0, 0, 0, 0, 0, 0,
-0xDDB2, 0, 0, 0, 0,0xE6A9, 0,0xEFF3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF3ED, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xEBFA, 0,0xF9E6, 0,
- 0, 0, 0, 0, 0, 0,0xCADD,0xD5DE,
- 0,0xCADE,0xDFE4, 0, 0, 0,0xE6FD, 0,
-0xF5AC, 0, 0, 0, 0, 0,0xE4F5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE9E3, 0,0xEDCB,0xCFE4, 0,
- 0, 0,0xD8D3, 0, 0, 0, 0, 0,
- 0,0xDDB3,0xD4EC, 0, 0,0xF2B9, 0,0xDFB7,
- 0, 0, 0, 0, 0,0xCBCE,0xFBD8, 0,
- 0,0xD0D9, 0, 0,0xDDD2,0xF7F4,0xE7DC,0xE4A5,
- 0,0xFCA3, 0,0xDBBB, 0, 0, 0,0xF2BA,
-0xE9FD,0xD0CA, 0,0xF5D6,0xD9C5,0xE4B4, 0,0xEDA7,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEABD,0xE6FE, 0,0xF7C4,0xF5AD, 0,0xD9E0,
- 0, 0, 0,0xCAB4, 0, 0,0xF8E2,0xCFC2,
- 0,0xECBE, 0, 0, 0,0xE5B4,0xCDC8,0xEEC8,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE7C8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCDC9,0xF9B7, 0,
- 0,0xF1E8,0xD9F2,0xDBF5,0xCAB5,0xD9C6, 0, 0,
- 0,0xD8C9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9AB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEDBC, 0, 0,0xD8D4, 0, 0, 0,0xDCDA,
- 0,0xE2BC, 0, 0,0xFCED,0xECE0,0xD2FE, 0,
-0xE9C7,0xE6AA, 0, 0, 0, 0, 0, 0,
-0xE2F0, 0, 0, 0, 0, 0, 0,0xFABB,
- 0,0xF5AE,0xFBAA, 0, 0, 0, 0,0xECFB,
- 0,0xECBF,0xFCD8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD4E5, 0, 0, 0,0xF9C3,
- 0, 0, 0,0xEEE2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD7E9,0xEDF6, 0, 0, 0,0xDEED, 0,
- 0, 0, 0, 0, 0, 0,0xCCEC, 0,
-0xE3EE, 0, 0, 0, 0, 0,0xE8D4, 0,
- 0, 0,0xFAF8, 0, 0, 0, 0, 0,
- 0,0xDDB4,0xE4B5,0xD8B0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD8D5, 0, 0,
- 0,0xF4EA, 0, 0, 0,0xCEB9, 0, 0,
- 0,0xD6E1,0xCFD2, 0,0xD0B6, 0, 0, 0,
- 0, 0, 0,0xCEA2, 0, 0,0xF3EE, 0,
- 0, 0, 0, 0,0xF3F8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDCCC, 0,0xD0CB, 0, 0, 0,0xFCA4,
-0xCDCA,0xD7D4,0xDEA3, 0,0xE4E0, 0, 0, 0,
- 0,0xEEC9, 0, 0, 0,0xE2DD, 0, 0,
- 0, 0, 0,0xF5FE,0xD4AC, 0, 0, 0,
- 0, 0,0xD5D1, 0,0xD8F0,0xF8C3,0xEAD7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF5D7, 0, 0,0xD8BF, 0, 0, 0,
- 0,0xFDC0, 0, 0, 0, 0, 0, 0,
-0xEBAD, 0, 0, 0, 0,0xD5AA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE7A8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEECA,
- 0, 0, 0,0xCAE7, 0, 0, 0, 0,
- 0,0xF8E3, 0,0xD4DD, 0, 0,0xEAD8, 0,
- 0, 0, 0,0xFBD9,0xEDF7, 0, 0,0xE5B5,
- 0, 0, 0, 0, 0,0xD0AD, 0, 0,
- 0, 0,0xF1F1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE2BD, 0, 0, 0,0xE3C8, 0, 0, 0,
- 0,0xD9D5, 0, 0,0xDFAA, 0, 0, 0,
- 0,0xDBBC, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF8E4, 0, 0, 0, 0, 0,
-0xF1FA, 0, 0,0xE5B6,0xF3EF, 0, 0,0xFBDA,
-0xE1E0, 0,0xD9AC, 0,0xF5EB, 0,0xE0B6, 0,
- 0,0xE9C8, 0,0xCBCF, 0,0xE3C9, 0, 0,
- 0,0xDEEE, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE2BE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDCEF, 0,0xD6A5, 0,
- 0, 0, 0, 0,0xE2F1, 0, 0, 0,
- 0, 0, 0, 0,0xD6FE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD9A1, 0,0xD8C0,0xDCDB, 0, 0,0xEDBD,
-0xDFB8, 0,0xEAA5, 0, 0, 0,0xD7AD, 0,
- 0,0xF3F9, 0,0xEDF8, 0,0xF5C7, 0, 0,
- 0, 0, 0, 0,0xE1CA,0xEBE3, 0,0xF2DE,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF8CC, 0,0xEAD9,
- 0,0xD3C6, 0,0xDBE6, 0, 0, 0, 0,
- 0,0xF5AF, 0, 0, 0, 0,0xCEF0, 0,
- 0, 0, 0,0xE9FE, 0, 0, 0, 0,
- 0,0xFBB6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE2F2, 0, 0, 0, 0,
-0xCFF2,0xF7B9,0xD9F3, 0, 0,0xE1CB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDADD, 0, 0,0xDAB9,
- 0, 0, 0, 0, 0, 0, 0,0xEBFB,
- 0,0xCBB9, 0, 0,0xEDF9, 0, 0, 0,
- 0, 0, 0,0xE0E0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF4C0, 0,
-0xFDBC,0xDFB1,0xE3EF, 0, 0, 0, 0,0xE0A3,
-0xFDB9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF0B1, 0, 0, 0, 0, 0,
- 0,0xCDCB, 0, 0, 0, 0, 0, 0,
- 0,0xEDBE, 0, 0, 0,0xD5C0,0xE3F0,0xEDFA,
- 0, 0, 0, 0, 0,0xE9E4, 0, 0,
- 0, 0, 0, 0,0xD5ED,0xE7DD, 0, 0,
- 0, 0, 0, 0,0xD4F6,0xE5B7, 0, 0,
- 0,0xDBE7,0xE2BF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEECB,
- 0, 0,0xD7F4,0xF0DD, 0, 0, 0,0xCEAB,
- 0, 0,0xE7DE, 0, 0, 0,0xD6D6,0xE1CC,
- 0, 0,0xE8B3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE5EE,0xDCA2,
- 0, 0,0xE0D0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD5B5, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD5A1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFBDB, 0,
-0xF9CB, 0, 0, 0,0xCBF3,0xF4A5, 0, 0,
- 0, 0, 0,0xFAC8,0xD6D7, 0,0xE9E5,0xFBDC,
- 0, 0, 0, 0, 0, 0, 0,0xFDD0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFBF6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDAA5, 0,0xDBBD, 0, 0, 0,
- 0, 0, 0,0xECE2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCDF7,0xF0DE, 0, 0, 0,
- 0,0xF6C9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDEEF,
- 0, 0, 0,0xD3B1, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCEE, 0, 0, 0,
- 0,0xE8C3, 0,0xF1C8, 0, 0, 0,0xCEF1,
- 0, 0, 0, 0,0xF9ED, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF2F4, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE4B6, 0,
-0xF5B9, 0,0xDCF0,0xE3F1, 0, 0, 0, 0,
-0xE8A5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF2BB, 0,0xDEA4, 0,0xDACC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCAE9, 0,
- 0, 0, 0, 0, 0,0xE3DA, 0,0xFCD9,
- 0, 0, 0, 0, 0, 0, 0,0xEADA,
- 0, 0, 0, 0, 0, 0,0xF9C4, 0,
-0xE3A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBDD, 0,0xEFCA, 0,
-0xE8C4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD5CC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xEBD7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD9AD,
- 0, 0,0xFBAB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD3D9, 0, 0, 0, 0,
- 0, 0,0xD5A2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF6DE, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xDAF6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE0D1, 0, 0,0xE9A8,
- 0, 0,0xF5F9, 0, 0, 0, 0, 0,
- 0,0xFAAF, 0,0xEBFC, 0, 0,0xE0EA, 0,
- 0, 0, 0, 0, 0,0xE3B2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD5C5,
- 0, 0,0xF1E3,0xD5EE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCDCC, 0, 0, 0, 0,0xEDD9, 0,
- 0, 0, 0,0xD8C1, 0, 0, 0, 0,
-0xFAEC, 0, 0, 0, 0, 0,0xF1EB, 0,
- 0, 0, 0, 0,0xFABC,0xE6E2, 0, 0,
- 0, 0,0xFAE5,0xE2FA, 0, 0, 0,0xCAB6,
- 0,0xE4B7, 0,0xEADB, 0,0xF5FA, 0, 0,
- 0,0xFBAC,0xCFC3,0xEBFD, 0, 0, 0, 0,
-0xF8FA, 0, 0,0xDFB9, 0, 0, 0, 0,
-0xE1F1, 0,0xD2A4, 0, 0, 0, 0,0xF5FB,
- 0, 0, 0, 0, 0, 0,0xD0DA,0xD0DB,
- 0,0xEABE,0xD9B1, 0, 0, 0, 0, 0,
-0xCAB7, 0, 0,0xD3E7, 0,0xF8E5, 0, 0,
- 0, 0,0xD3B2, 0, 0, 0,0xE2C0,0xF2DF,
- 0, 0, 0, 0, 0, 0,0xCDE5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF9AC, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCDCD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEEAE,0xD6AE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD7EA,
- 0, 0, 0, 0,0xE7E0,0xEBAE, 0, 0,
- 0,0xCFD9, 0, 0,0xDCCD,0xEDFB, 0,0xDEF0,
- 0,0xD7EB, 0, 0, 0, 0, 0, 0,
-0xDEA5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xDFD7,0xDBD0,0xDBD1, 0, 0,
-0xD5A3, 0, 0, 0, 0,0xF0B2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDCDC,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCAE8, 0,0xF8E6,0xDCCE, 0, 0, 0, 0,
-0xEADC,0xDBD2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE9B3, 0, 0,
- 0, 0,0xF7DB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE3A8, 0,
-0xD7AE, 0, 0,0xE0E1, 0, 0, 0, 0,
- 0,0xCBBA, 0, 0,0xE5D1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD0DC,
- 0, 0, 0, 0,0xD5C1, 0, 0, 0,
- 0, 0,0xD8CA, 0, 0, 0, 0, 0,
- 0, 0,0xE3A9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE0A4,
- 0,0xE9A9, 0,0xD3C7, 0, 0,0xDCDD,0xF8AE,
- 0, 0, 0,0xCCB8, 0, 0, 0,0xD0AE,
- 0, 0, 0,0xD8F2, 0, 0,0xE3CA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCCAF, 0, 0, 0, 0, 0, 0,
- 0,0xD4AD,0xF6D1, 0, 0, 0, 0, 0,
- 0, 0,0xD0CC, 0, 0, 0, 0, 0,
- 0, 0,0xCAC6, 0, 0,0xD5C2, 0, 0,
-0xCEBA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xCAC7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFAB0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDFD8, 0, 0, 0,
-0xF5BA, 0, 0, 0, 0, 0, 0, 0,
-0xE5EB, 0,0xEFF4,0xDDB5, 0, 0, 0, 0,
-0xCDAA, 0,0xE3F2, 0,0xFBF7, 0,0xF7D0, 0,
- 0, 0, 0,0xFDBA, 0, 0,0xFDE1,0xF6FE,
-0xD1C0, 0, 0,0xE8C5, 0,0xE4B8, 0,0xE1E8,
- 0, 0, 0,0xCCC1, 0,0xD2ED, 0, 0,
- 0, 0,0xDBBE, 0, 0,0xE0E2, 0, 0,
- 0,0xFAC9, 0, 0,0xE1CD, 0,0xCAB8, 0,
- 0, 0,0xF2E0,0xF1C9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xDEF1, 0, 0, 0,0xF0DF,0xF8C4, 0, 0,
- 0, 0, 0,0xEECC, 0, 0,0xDEF2, 0,
-0xE7C9, 0,0xE2F3,0xE7E1, 0, 0,0xE3CB, 0,
- 0,0xE3CC, 0, 0, 0,0xCFF8,0xEFAC, 0,
-0xFDFE,0xFCA5,0xFAB1,0xDFD9, 0,0xE0D2, 0, 0,
- 0,0xF4DA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF1CA, 0,0xCEA3,
- 0, 0, 0, 0,0xF2BC,0xECE3, 0, 0,
- 0, 0, 0,0xE0A5, 0,0xF7AB, 0, 0,
-0xEBAF, 0, 0, 0, 0, 0,0xE5DE, 0,
-0xE1A4,0xCDAB, 0,0xD9F4,0xE8A6,0xCDCE,0xE1E9, 0,
-0xFCEF, 0,0xE0E3, 0, 0, 0, 0, 0,
-0xE2C1, 0,0xCEA4, 0, 0, 0, 0, 0,
- 0,0xDEA6, 0, 0,0xEBFE, 0,0xEBDD,0xF0E0,
- 0, 0,0xF4DB, 0,0xE2F4, 0, 0,0xD3C8,
- 0, 0, 0,0xF4EB, 0,0xEEB5, 0,0xF5D8,
- 0, 0,0xD5DF, 0, 0, 0,0xD6E5, 0,
- 0, 0, 0,0xEBB0,0xF4E3, 0, 0, 0,
- 0,0xE3CD, 0, 0, 0, 0,0xF4F4,0xFAB2,
- 0, 0,0xEFF5,0xCADF, 0,0xEBB1,0xEDBF, 0,
- 0,0xFDC9, 0, 0, 0, 0,0xE4A6,0xF9A4,
-0xF0B3, 0,0xE5EC, 0, 0, 0,0xD1E7, 0,
-0xD9C7,0xE4D7,0xEADD, 0,0xD4F7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xDABA, 0,
-0xDACD, 0, 0, 0,0xF9CC, 0,0xE1DA,0xDBBF,
- 0,0xCCC5,0xECD0,0xCBBB, 0,0xDEF3, 0, 0,
-0xE9AA, 0, 0, 0, 0, 0, 0, 0,
-0xD9C8, 0, 0,0xEEE3,0xD7BD, 0, 0, 0,
- 0, 0, 0,0xCFC4, 0, 0, 0, 0,
- 0,0xD0CD, 0, 0, 0, 0, 0, 0,
- 0,0xFCA6, 0, 0, 0, 0, 0, 0,
- 0,0xF1FB, 0, 0, 0, 0,0xFDD2,0xD1C1,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE3DB, 0,0xD3C9, 0,0xDCCF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCCED, 0,
- 0, 0, 0, 0,0xDEA7, 0, 0,0xE6BB,
-0xECA1, 0, 0, 0,0xCCB9, 0, 0,0xFBDE,
- 0, 0, 0, 0, 0,0xE7E2, 0, 0,
-0xD4C1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xDCA8, 0, 0, 0, 0, 0,
-0xE2C2, 0,0xF3D8,0xE5D3, 0, 0,0xF3D9, 0,
- 0, 0,0xF3C6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCDDB,
- 0, 0, 0, 0, 0, 0, 0,0xCDAC,
- 0,0xFCC3, 0, 0, 0, 0,0xD4E7, 0,
-0xD1C2, 0,0xF9A5, 0,0xE8D5, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE3CE, 0, 0,
- 0, 0,0xD4CA, 0, 0, 0, 0, 0,
- 0,0xDFDA, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBDF,0xE7E3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF8FB,0xE3CF, 0, 0, 0, 0, 0,
- 0, 0,0xF5B0, 0, 0, 0, 0, 0,
- 0, 0,0xD8E7, 0,0xD9C9, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF8AF,0xEFF6, 0,
-0xDDB6,0xEEAF,0xCDF8, 0, 0, 0, 0,0xDEB8,
-0xFCA7,0xF7FC,0xF7B1,0xCEBB,0xF4A1, 0, 0,0xEECD,
-0xE1AE, 0, 0,0xECC3,0xCFFE, 0,0xF8BF,0xD8E2,
-0xD3E8, 0, 0,0xDEA8,0xF4E4,0xECC2, 0,0xD9F5,
-0xF9C5,0xDDD3,0xD6F1,0xECFC,0xFCF0, 0, 0,0xEDC0,
-0xCAB9, 0,0xEEE4, 0, 0, 0, 0, 0,
- 0,0xF2E1, 0,0xDEB9, 0, 0, 0, 0,
- 0, 0,0xD6F2, 0,0xDEF4, 0,0xDFDB, 0,
-0xDBD3, 0,0xFAE7,0xD8E3,0xF4C1, 0,0xDDB7, 0,
- 0, 0,0xF2F5, 0, 0,0xD4AE, 0, 0,
- 0, 0, 0, 0,0xD6F3, 0, 0, 0,
- 0, 0, 0,0xDDB8,0xCFC5,0xDFDF, 0, 0,
- 0, 0, 0, 0,0xF2BE,0xF6A1, 0,0xEBCB,
-0xF1FC, 0,0xF3C7, 0, 0,0xE0EB, 0, 0,
- 0, 0, 0,0xEDFC, 0, 0,0xE1DB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xEEE5, 0,0xDEF5, 0,
- 0, 0, 0,0xFAD3, 0, 0, 0, 0,
-0xF1CB, 0, 0,0xD0AF,0xDDB9, 0, 0,0xD1C3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF5B1, 0, 0,
- 0, 0,0xEAC6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF0E1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF6AC, 0, 0, 0, 0,
-0xF5D9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF0EB, 0, 0, 0, 0,
- 0, 0,0xDDBA, 0, 0, 0,0xF2BF, 0,
- 0, 0, 0, 0, 0, 0,0xF7C5, 0,
- 0, 0, 0,0xDBA2,0xF2F6, 0, 0,0xCABA,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF7F5, 0,0xCBE5, 0, 0,
- 0,0xEEE6, 0,0xE0D3, 0, 0, 0, 0,
-0xCEA5, 0, 0, 0, 0, 0, 0,0xD6D8,
- 0, 0, 0,0xD4AF, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE9C9, 0, 0, 0, 0,0xD3CE,
-0xF4C2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCBE6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF1A1, 0, 0, 0, 0, 0,
-0xEBB2, 0, 0, 0, 0,0xF1A2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEBB3, 0,0xF0B4, 0, 0,0xCBF4,
-0xD4B0,0xF3B2,0xFBB7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF5EC, 0, 0, 0, 0, 0,0xEEE7,
-0xF4B2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF5ED, 0,0xCFF3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF0E2, 0, 0, 0, 0, 0,0xEECE,
- 0, 0,0xF1CC, 0, 0,0xE5B8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD7F5,0xE3F3,0xCFE5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCFC6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF3B3,0xE4D8,0xCFF9,0xCFDA, 0, 0,
- 0, 0,0xFACD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE6E3,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF2E2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF5EE, 0, 0,0xCABB, 0, 0,0xE3DC, 0,
- 0, 0, 0,0xCEF2, 0,0xD6D9, 0, 0,
- 0,0xEEB0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF4E5,0xD8C2,0xDCD0,0xCCEE, 0, 0,
- 0, 0, 0,0xD5E0,0xF6CA,0xFDCA,0xD8D6,0xF4CF,
- 0, 0, 0, 0, 0, 0,0xD6A6,0xDCBE,
- 0,0xDBD4,0xD7C7, 0, 0, 0, 0,0xF2FE,
- 0, 0, 0,0xF1CD, 0, 0, 0, 0,
-0xE2C3,0xDCDE, 0,0xDCDF, 0, 0,0xEFAD,0xE6AB,
- 0, 0, 0, 0,0xF9DD,0xEABF, 0, 0,
- 0,0xEFAE, 0, 0, 0,0xF4D0,0xCEF3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE6AC, 0,0xCEDE,
- 0, 0,0xD5F9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE3F4,0xCDD0, 0, 0, 0,
- 0, 0, 0,0xD5B8, 0, 0,0xF7FD, 0,
-0xDCA9, 0, 0, 0, 0,0xDEF6, 0,0xDCAA,
-0xF2E3,0xE9B4,0xD2DC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE9E6, 0, 0,0xE3F6, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE7CA, 0,
- 0,0xD0CE, 0, 0,0xDAF7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xCABC, 0,
- 0, 0,0xEEE8,0xDADE, 0,0xF2F7, 0, 0,
-0xE2FB, 0,0xCCA6, 0, 0, 0, 0,0xDABB,
- 0,0xEEE9, 0, 0, 0,0xF5DA, 0, 0,
-0xF7DC,0xE1EA,0xCEC1,0xD4B1, 0,0xFDB1,0xE6BD, 0,
-0xFBAD, 0, 0,0xF8E7, 0,0xE1CE, 0,0xF7E2,
-0xF5EF,0xCFC7, 0, 0,0xD4B2,0xCCEF, 0,0xD4E8,
- 0,0xEECF,0xF7D7, 0, 0,0xE0A6,0xD6C1,0xE1DC,
-0xF0E3,0xF1E4,0xDCF1,0xD6A7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF4F5, 0,
- 0,0xF1CE,0xF2E4, 0, 0,0xD0B0, 0, 0,
-0xECEF, 0, 0, 0,0xF9BA, 0,0xEBB5, 0,
- 0,0xD4ED,0xE2C4, 0, 0, 0, 0,0xE9E7,
- 0, 0,0xEBB4,0xEAA1, 0,0xF8BC,0xCEA6, 0,
-0xF9C6,0xFCDA, 0,0xD4B3,0xD3B9,0xEADE, 0, 0,
- 0,0xE9AB, 0, 0,0xE1E1,0xD3CF,0xF4F6, 0,
-0xEAC0,0xE1CF, 0,0xCCBA, 0, 0, 0, 0,
- 0,0xEEEA, 0, 0, 0,0xF0E4,0xF3B4,0xD4EE,
- 0, 0,0xF2C0, 0, 0,0xF1E5, 0,0xF4C3,
-0xE0D4, 0,0xEBB6, 0,0xD7A1,0xCBE8, 0,0xF9AD,
-0xE9AD,0xD8E4,0xFAB3,0xE2C5,0xFCBD, 0, 0,0xECC4,
-0xD8B1, 0,0xDCAB, 0, 0, 0, 0,0xD5A4,
- 0,0xEBE9, 0, 0, 0,0xE8BB, 0, 0,
- 0,0xD8D7, 0, 0, 0, 0, 0, 0,
- 0, 0,0xFBAE,0xD1E1, 0, 0,0xDBC0, 0,
-0xF5BE, 0,0xDEF7, 0, 0, 0, 0,0xCAFB,
-0xF7C6,0xCFC8, 0, 0, 0,0xE1D0, 0, 0,
-0xEED0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE9F4, 0, 0, 0, 0, 0, 0,
- 0, 0,0xCEF4, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD5CD, 0,
- 0,0xCFDB, 0, 0, 0, 0, 0, 0,
-0xDDBB, 0, 0, 0, 0,0xCEAC, 0, 0,
- 0, 0, 0, 0, 0,0xE9E8, 0, 0,
- 0, 0, 0, 0, 0,0xD4B4, 0, 0,
- 0, 0,0xE4C7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF5DB, 0, 0,0xFAC1, 0, 0,
- 0,0xDEA9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xD4F8,
- 0, 0, 0, 0, 0,0xEFF7, 0, 0,
- 0, 0,0xD3B3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEBB7,0xEFF8,0xF5DC,0xEDCC,0xDBD5,0xF1CF, 0,
- 0, 0,0xF1D0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF5B2, 0, 0, 0, 0, 0,
- 0,0xD9AE,0xD5AC, 0,0xE2C6, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDA3, 0,0xFBE5,
-0xDFAB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE2F5,
- 0,0xF6AD, 0,0xF5B3, 0,0xF0B5, 0, 0,
- 0, 0,0xE1A5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF5DD, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xECA2,0xEDFD, 0,0xF5B4,0xFBB8,
- 0,0xDBA3, 0, 0,0xD6CA,0xCBD9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE5D4, 0, 0, 0, 0, 0, 0,0xF3FA,
- 0,0xEBB8, 0,0xE0B7,0xD7EC,0xF1EC,0xE5AF,0xD5E1,
-0xD7ED,0xD1D1, 0, 0, 0, 0, 0,0xE1F2,
-0xEFF9, 0, 0, 0,0xDDBC,0xF6DC, 0, 0,
- 0, 0, 0,0xF0E5, 0, 0, 0,0xF4C4,
- 0, 0,0xE9E9, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF3FB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD4EF, 0, 0,
-0xCCA2,0xF7FE,0xDFBC, 0, 0, 0, 0,0xEBCD,
- 0, 0, 0, 0, 0, 0,0xD0B7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD6C2, 0, 0, 0,
- 0, 0,0xE8AD, 0, 0, 0, 0,0xEFAF,
-0xCBA5, 0, 0, 0, 0,0xCBE9, 0, 0,
- 0,0xFAE8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCCC6,
- 0, 0, 0,0xE6E7, 0, 0,0xEAC7, 0,
- 0, 0,0xDBA4, 0,0xCFC9,0xE2FC,0xEFFA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEBDE, 0, 0,0xF5C8, 0,0xD4DE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE0D5, 0,0xEFB0, 0, 0,0xE2C7, 0,
-0xD9AF, 0, 0, 0,0xF9E7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE7E5, 0, 0,0xCFCA,0xE1D1,
- 0,0xE2C8, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xEFFB, 0, 0,0xFAF9,
- 0, 0,0xDCF2, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE0A7, 0, 0, 0,
- 0, 0,0xF8E8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCBEA, 0, 0, 0,0xCBBC, 0, 0, 0,
- 0, 0, 0, 0,0xD6E2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF5DE, 0, 0, 0, 0, 0, 0, 0,
-0xF5DF, 0,0xEEB6, 0, 0, 0,0xE2F6,0xD3CA,
-0xEFFC,0xD1C4,0xEFB1, 0,0xD1C5, 0,0xD0DE, 0,
-0xD9E1, 0, 0,0xE0B8, 0, 0,0xCDD1,0xF3B9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE7CC, 0,0xD6A8,0xCEA7, 0,0xD4B5, 0, 0,
- 0, 0, 0, 0,0xE4C8, 0, 0, 0,
- 0, 0, 0,0xD3B4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xEBB9, 0,
- 0, 0, 0, 0, 0,0xCBF5, 0, 0,
- 0, 0, 0, 0,0xF6DD, 0,0xF1A3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCCC7, 0, 0, 0,
- 0, 0, 0, 0,0xE9CA, 0,0xE1F0, 0,
- 0, 0,0xF5E0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFBAF, 0, 0, 0,0xCBD1,
- 0, 0, 0, 0,0xFBE0,0xF2E5, 0, 0,
-0xECF0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF0EC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xEEEB, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE9CB, 0,
- 0,0xCCF0, 0, 0,0xD7AF, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF3A1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFCF5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF1A4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xE0D6, 0, 0,
- 0, 0, 0,0xEFB2, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF4D1, 0, 0,
-0xF7A1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF1D1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCAFC,0xCAFD, 0, 0, 0, 0, 0,
- 0, 0, 0,0xCECE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF3C8, 0,0xF3BA
-};
-
-/* page 7 0x9577-0x9F9C */
-static uint16 tab_uni_ksc56017[]={
-0xEDFE, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDAA6, 0, 0,0xE0EC, 0, 0, 0,
- 0, 0,0xF8CD, 0,0xCBD2, 0, 0, 0,
-0xEBCE, 0,0xF9D8,0xF9D9,0xCAE0,0xDACA, 0, 0,
- 0,0xCBA6, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCAC8,0xF9EE,0xDBEC, 0,
- 0,0xD0B1, 0, 0, 0, 0,0xD5EF, 0,
- 0, 0,0xE6F3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE7A2,0xE4D9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE4E1, 0, 0,0xFCC4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF9EF,0xCFF4,0xF7E6,
- 0, 0, 0, 0, 0,0xCEBC, 0, 0,
- 0, 0,0xF4C5,0xDCA3, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDDBD, 0, 0,
- 0, 0,0xF4C6, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF8A1, 0, 0, 0,0xE8D6,
- 0, 0, 0,0xDBC1, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF0E6, 0, 0, 0,
-0xE4B9,0xF6ED, 0,0xF9AE, 0,0xDDBE, 0, 0,
- 0, 0, 0, 0,0xD7B0,0xD8E8,0xCBBD, 0,
- 0,0xF9DA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xF8CE,0xF9F0,0xE0ED,0xE3B3,
-0xF4B3, 0, 0,0xEAC2,0xF2E6,0xF0B6, 0, 0,
- 0, 0, 0,0xDBD6, 0, 0, 0, 0,
- 0,0xEBE4, 0, 0,0xF2E7, 0,0xD7D5,0xD4B6,
-0xF9E8,0xD7C1, 0, 0, 0, 0,0xE5D5, 0,
- 0, 0, 0, 0, 0, 0,0xE9EA,0xD7CC,
- 0, 0, 0,0xD3E9,0xE2C9, 0,0xFCDB,0xCDAD,
- 0, 0, 0, 0, 0,0xCCB0,0xEAA2, 0,
- 0,0xE4F6,0xD0C0, 0,0xF0B7,0xEEA1, 0, 0,
- 0, 0, 0, 0,0xD7F6, 0, 0, 0,
-0xE2CA,0xE2CB, 0,0xFACF, 0, 0, 0, 0,
- 0, 0,0xEBDF, 0, 0, 0, 0, 0,
-0xD6CB, 0, 0, 0,0xF4B4, 0, 0, 0,
- 0,0xEDCD,0xE4D2, 0, 0,0xEAA9,0xE4BA,0xF3A2,
-0xCDD2, 0,0xF6CB, 0,0xF1E6,0xEDC1,0xE8BC,0xEED1,
- 0, 0, 0, 0, 0, 0,0xF0E7,0xE2CC,
- 0, 0,0xE4AA, 0,0xF5E1,0xEDDA, 0, 0,
- 0, 0, 0,0xD7EE,0xD1F1, 0, 0, 0,
- 0,0xE9EB,0xE9EC,0xE0E4, 0, 0, 0, 0,
-0xDAA7,0xDDD4, 0,0xEAA3, 0, 0, 0,0xD6C3,
-0xD6F4, 0,0xDADF, 0,0xEFB3, 0, 0, 0,
- 0,0xE2CD, 0, 0, 0, 0, 0,0xEFFD,
-0xF2E8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xEFC5, 0,0xE7E7, 0, 0,0xD7FD,
- 0, 0,0xE7CE, 0, 0,0xDFDC, 0,0xF9C7,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD9F6, 0, 0, 0, 0, 0, 0, 0,
- 0,0xDFAC, 0,0xD6DA, 0, 0, 0, 0,
- 0, 0,0xDCA4, 0, 0, 0,0xF0B8, 0,
- 0, 0, 0,0xD5FA, 0,0xE4F7, 0, 0,
- 0,0xD6C4, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF4EC, 0, 0, 0, 0,0xEFFE,
- 0, 0, 0, 0, 0,0xF0A1, 0,0xDEAA,
- 0, 0,0xDABC,0xD8FC, 0, 0, 0, 0,
- 0, 0,0xFAD4, 0, 0, 0,0xECE5, 0,
- 0, 0, 0, 0, 0,0xFCA8, 0, 0,
-0xECE6, 0, 0,0xD8CB, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBB9, 0,0xE4D3, 0,
-0xCDF9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCFD3, 0, 0, 0, 0, 0, 0,
- 0,0xCAEA, 0, 0,0xCFD4, 0,0xF8BD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF4C7,
- 0, 0, 0, 0,0xEADF, 0, 0, 0,
- 0, 0, 0, 0,0xF9DB, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD4B7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xEBE5, 0, 0,0xE1D2,
- 0, 0, 0, 0,0xEAA4, 0, 0, 0,
-0xFAC2,0xFBE1,0xFAED,0xF0A2,0xCCF1, 0,0xFAA3,0xE2F7,
- 0,0xE2CE, 0,0xE9F5, 0,0xE1EB, 0, 0,
- 0,0xE7E8,0xE8D7,0xDAF8,0xD4CB, 0, 0, 0,
-0xF7F6,0xD6C5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD4E9, 0,
- 0,0xFAFA, 0, 0, 0, 0, 0, 0,
- 0,0xCCF2,0xF7DD, 0,0xDEBA, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xCEA8,
- 0, 0, 0, 0, 0,0xF0B9,0xE4FE,0xE4C9,
- 0, 0, 0, 0, 0,0xE4D4, 0, 0,
- 0,0xEAC3, 0,0xEFB4, 0, 0, 0,0xD7BE,
- 0, 0, 0, 0, 0, 0,0xFBE2, 0,
-0xCDD3, 0, 0, 0,0xEFB5, 0, 0, 0,
-0xFAE9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF9A6, 0, 0, 0, 0, 0, 0,
-0xDFBD, 0,0xF7C7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xF8FD, 0, 0,
-0xF8FC, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDEAB,0xDBE8, 0, 0,
-0xE3DD, 0,0xE1E2,0xD1C6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF6D0,0xEBE6,
-0xDAF9, 0, 0, 0, 0,0xECC7, 0, 0,
- 0, 0, 0, 0, 0,0xDEF8,0xF8E9,0xE3DE,
- 0, 0, 0, 0,0xCEF5, 0, 0, 0,
- 0, 0,0xFAC3,0xE5D7, 0,0xECC8, 0, 0,
- 0,0xF3C9, 0, 0,0xE4BB, 0, 0, 0,
- 0,0xE6AE, 0, 0, 0, 0, 0,0xEFB6,
- 0,0xDCBF, 0, 0, 0, 0, 0, 0,
- 0,0xCEBD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD8C3, 0,
- 0, 0,0xD0CF, 0,0xCFFA,0xF3CA,0xE0D7, 0,
- 0, 0,0xD1C7,0xE9AE, 0,0xE8BD, 0, 0,
-0xFAC4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE2CF,
- 0, 0,0xFAC5, 0, 0, 0,0xF9B8, 0,
- 0, 0, 0, 0, 0, 0,0xDCE0, 0,
- 0,0xFBB0, 0, 0, 0,0xD8A9,0xE5DF,0xF9A7,
- 0, 0,0xF6EE, 0,0xF6CC,0xE2F8, 0, 0,
- 0, 0,0xECF1, 0, 0, 0, 0, 0,
- 0, 0,0xDAE0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xF1D2,0xD2CC,0xCFCB, 0, 0,0xCABD, 0,
- 0, 0,0xDDBF, 0, 0, 0,0xF6EF, 0,
-0xDEF9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFAB4, 0,
- 0, 0,0xD5AD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xF1E7, 0,0xDEBE, 0, 0, 0, 0, 0,
- 0,0xDCC0, 0, 0, 0, 0, 0,0xD1C8,
-0xD1C9, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xF8BE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCBF6, 0, 0, 0,
- 0,0xD4F9, 0, 0, 0, 0, 0,0xF5E2,
-0xE1D3, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD8E9, 0, 0,0xF8FE, 0,0xCFCC, 0,
- 0, 0, 0, 0, 0, 0,0xFDA4, 0,
- 0, 0, 0, 0, 0, 0,0xCEF6, 0,
-0xFAD0, 0, 0,0xCCF3,0xE6BE, 0, 0, 0,
-0xF6AE, 0, 0,0xD5F0, 0, 0,0xD1CA, 0,
- 0, 0,0xFCBE,0xD5F1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xCDE9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFAB5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xE2D0,0xF4F7, 0, 0,
- 0,0xCDD4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE7A3, 0,
- 0, 0, 0, 0, 0, 0, 0,0xDBA5,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE2D1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD7A2, 0, 0,0xF7E3, 0, 0, 0, 0,
- 0, 0,0xEAA6, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xD0A1, 0, 0,
- 0, 0,0xCEDA,0xFBEB,0xDBA6,0xDBDE,0xD8E5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEAE0, 0, 0, 0, 0,0xD8AA, 0, 0,
- 0, 0, 0,0xE5E0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD6DB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xEFC6,
- 0, 0,0xF8EA, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE4D5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xCEF7, 0, 0,0xE0D8,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD7EF, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xF4ED,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCDE6, 0, 0,
- 0,0xCCF4, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF5E3, 0,
- 0,0xE4CA, 0,0xDCE1, 0, 0,0xF9C8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xFCBF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE8A7, 0, 0, 0, 0,
- 0, 0, 0, 0,0xD8C4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCBBE, 0,0xDCAE, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xD7F7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xF0E8, 0,
-0xDDC0, 0,0xCFCD, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDCF3,0xD9B0, 0,0xE6E9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xE4BC, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xEAC4, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xE4EC,
- 0,0xE4E5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xFBF8, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xCCBB, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE4BD, 0,
- 0,0xCDDC,0xD9F7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDDDF, 0, 0,
- 0, 0, 0,0xEDCE, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xD9D0, 0, 0, 0, 0, 0,
-0xE5A3, 0, 0, 0, 0,0xF9CD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCDAE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xCFCE, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF6AF, 0, 0, 0, 0,
- 0,0xFDD3,0xEBED,0xD6DC, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xE5A4, 0, 0, 0,0xD5B6,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD6DD, 0,
- 0, 0,0xF9E9, 0, 0, 0,0xE7A4, 0,
-0xD6E3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xD1CB,0xD6E4, 0, 0, 0,
-0xD5F2, 0, 0, 0, 0, 0,0xDEFA, 0,
-0xD7F8, 0, 0, 0, 0, 0,0xD8EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xCFD5,0xD8FD, 0,
- 0, 0, 0, 0,0xD8AB, 0, 0,0xFDCB,
- 0, 0, 0, 0,0xFCDC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xE0A8,0xD5F3,
- 0, 0,0xFDD9, 0, 0,0xCCA3, 0, 0,
- 0,0xD9F9, 0, 0,0xD3EA,0xF5F5, 0,0xEFC7,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xD3DA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xDABD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE8A8,0xDCAF, 0, 0, 0, 0, 0,0xF0A3,
- 0, 0, 0, 0,0xCDD5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xE0A9, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xDEAC, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xF0BA,0xEEB1, 0, 0,0xEEB2,
- 0, 0, 0,0xF6CD, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xEED2, 0,0xD6C6, 0, 0, 0, 0, 0,
-0xE0E5, 0, 0,0xF3BB, 0,0xE5E1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xE4CB, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xD7A3, 0,
- 0,0xDBC2, 0, 0, 0, 0,0xCAFE, 0,
- 0, 0, 0, 0, 0,0xCFCF};
-
-/* page 8 0xAC00-0xD7A3 */
-static uint16 tab_uni_ksc56018[]={
-0xB0A1,0xB0A2,0x8141,0x8142,0xB0A3,0x8143,0x8144,0xB0A4,
-0xB0A5,0xB0A6,0xB0A7,0x8145,0x8146,0x8147,0x8148,0x8149,
-0xB0A8,0xB0A9,0xB0AA,0xB0AB,0xB0AC,0xB0AD,0xB0AE,0xB0AF,
-0x814A,0xB0B0,0xB0B1,0xB0B2,0xB0B3,0xB0B4,0x814B,0x814C,
-0xB0B5,0x814D,0x814E,0x814F,0xB0B6,0x8150,0x8151,0x8152,
-0x8153,0x8154,0x8155,0x8156,0xB0B7,0xB0B8,0x8157,0xB0B9,
-0xB0BA,0xB0BB,0x8158,0x8159,0x815A,0x8161,0x8162,0x8163,
-0xB0BC,0xB0BD,0x8164,0x8165,0xB0BE,0x8166,0x8167,0x8168,
-0xB0BF,0x8169,0x816A,0x816B,0x816C,0x816D,0x816E,0x816F,
-0x8170,0x8171,0x8172,0xB0C0,0x8173,0xB0C1,0x8174,0x8175,
-0x8176,0x8177,0x8178,0x8179,0xB0C2,0x817A,0x8181,0x8182,
-0xB0C3,0x8183,0x8184,0x8185,0xB0C4,0x8186,0x8187,0x8188,
-0x8189,0x818A,0x818B,0x818C,0x818D,0x818E,0x818F,0x8190,
-0x8191,0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8198,
-0xB0C5,0xB0C6,0x8199,0x819A,0xB0C7,0x819B,0x819C,0xB0C8,
-0xB0C9,0x819D,0xB0CA,0x819E,0x819F,0x81A0,0x81A1,0x81A2,
-0xB0CB,0xB0CC,0x81A3,0xB0CD,0xB0CE,0xB0CF,0xB0D0,0x81A4,
-0x81A5,0xB0D1,0xB0D2,0xB0D3,0xB0D4,0x81A6,0x81A7,0x81A8,
-0xB0D5,0x81A9,0x81AA,0x81AB,0xB0D6,0x81AC,0x81AD,0x81AE,
-0x81AF,0x81B0,0x81B1,0x81B2,0xB0D7,0xB0D8,0x81B3,0xB0D9,
-0xB0DA,0xB0DB,0x81B4,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9,
-0xB0DC,0xB0DD,0xB0DE,0x81BA,0xB0DF,0x81BB,0x81BC,0xB0E0,
-0xB0E1,0x81BD,0x81BE,0x81BF,0x81C0,0x81C1,0x81C2,0x81C3,
-0xB0E2,0xB0E3,0x81C4,0xB0E4,0xB0E5,0xB0E6,0x81C5,0x81C6,
-0x81C7,0xB0E7,0x81C8,0x81C9,0xB0E8,0x81CA,0x81CB,0x81CC,
-0xB0E9,0x81CD,0x81CE,0x81CF,0xB0EA,0x81D0,0x81D1,0x81D2,
-0x81D3,0x81D4,0x81D5,0x81D6,0x81D7,0xB0EB,0x81D8,0xB0EC,
-0x81D9,0x81DA,0x81DB,0x81DC,0x81DD,0x81DE,0x81DF,0x81E0,
-0xB0ED,0xB0EE,0x81E1,0x81E2,0xB0EF,0x81E3,0x81E4,0xB0F0,
-0xB0F1,0x81E5,0xB0F2,0x81E6,0xB0F3,0x81E7,0x81E8,0xB0F4,
-0xB0F5,0xB0F6,0x81E9,0xB0F7,0x81EA,0xB0F8,0xB0F9,0x81EB,
-0x81EC,0x81ED,0x81EE,0x81EF,0xB0FA,0xB0FB,0x81F0,0x81F1,
-0xB0FC,0x81F2,0x81F3,0x81F4,0xB0FD,0x81F5,0xB0FE,0x81F6,
-0x81F7,0x81F8,0x81F9,0x81FA,0xB1A1,0xB1A2,0x81FB,0xB1A3,
-0x81FC,0xB1A4,0x81FD,0x81FE,0x8241,0x8242,0x8243,0x8244,
-0xB1A5,0x8245,0x8246,0x8247,0xB1A6,0x8248,0x8249,0x824A,
-0xB1A7,0x824B,0x824C,0x824D,0x824E,0x824F,0x8250,0x8251,
-0x8252,0xB1A8,0x8253,0x8254,0xB1A9,0xB1AA,0x8255,0x8256,
-0x8257,0x8258,0x8259,0x825A,0xB1AB,0xB1AC,0x8261,0x8262,
-0xB1AD,0x8263,0x8264,0x8265,0xB1AE,0x8266,0x8267,0x8268,
-0x8269,0x826A,0x826B,0x826C,0xB1AF,0xB1B0,0x826D,0xB1B1,
-0x826E,0xB1B2,0x826F,0x8270,0x8271,0x8272,0x8273,0x8274,
-0xB1B3,0x8275,0x8276,0x8277,0xB1B4,0x8278,0x8279,0x827A,
-0xB1B5,0x8281,0x8282,0x8283,0x8284,0x8285,0x8286,0x8287,
-0x8288,0xB1B6,0x8289,0xB1B7,0x828A,0x828B,0x828C,0x828D,
-0x828E,0x828F,0x8290,0x8291,0xB1B8,0xB1B9,0x8292,0x8293,
-0xB1BA,0x8294,0x8295,0xB1BB,0xB1BC,0xB1BD,0xB1BE,0x8296,
-0x8297,0x8298,0x8299,0xB1BF,0xB1C0,0xB1C1,0x829A,0xB1C2,
-0x829B,0xB1C3,0xB1C4,0x829C,0x829D,0x829E,0x829F,0x82A0,
-0xB1C5,0xB1C6,0x82A1,0x82A2,0xB1C7,0x82A3,0x82A4,0x82A5,
-0xB1C8,0x82A6,0x82A7,0x82A8,0x82A9,0x82AA,0x82AB,0x82AC,
-0x82AD,0x82AE,0x82AF,0x82B0,0xB1C9,0xB1CA,0x82B1,0x82B2,
-0x82B3,0x82B4,0x82B5,0x82B6,0xB1CB,0x82B7,0x82B8,0x82B9,
-0x82BA,0x82BB,0x82BC,0x82BD,0x82BE,0x82BF,0x82C0,0x82C1,
-0x82C2,0x82C3,0x82C4,0x82C5,0x82C6,0x82C7,0x82C8,0xB1CC,
-0x82C9,0x82CA,0x82CB,0x82CC,0x82CD,0x82CE,0x82CF,0x82D0,
-0xB1CD,0xB1CE,0x82D1,0x82D2,0xB1CF,0x82D3,0x82D4,0x82D5,
-0xB1D0,0x82D6,0x82D7,0x82D8,0x82D9,0x82DA,0x82DB,0x82DC,
-0xB1D1,0xB1D2,0x82DD,0xB1D3,0x82DE,0x82DF,0x82E0,0x82E1,
-0x82E2,0x82E3,0x82E4,0x82E5,0xB1D4,0x82E6,0x82E7,0x82E8,
-0xB1D5,0x82E9,0x82EA,0x82EB,0xB1D6,0x82EC,0x82ED,0x82EE,
-0x82EF,0x82F0,0x82F1,0x82F2,0x82F3,0x82F4,0x82F5,0x82F6,
-0x82F7,0x82F8,0x82F9,0x82FA,0x82FB,0x82FC,0x82FD,0x82FE,
-0xB1D7,0xB1D8,0x8341,0x8342,0xB1D9,0x8343,0x8344,0xB1DA,
-0xB1DB,0xB1DC,0x8345,0x8346,0x8347,0x8348,0x8349,0x834A,
-0xB1DD,0xB1DE,0x834B,0xB1DF,0x834C,0xB1E0,0x834D,0x834E,
-0x834F,0x8350,0x8351,0x8352,0xB1E1,0x8353,0x8354,0x8355,
-0x8356,0x8357,0x8358,0x8359,0x835A,0x8361,0x8362,0x8363,
-0x8364,0x8365,0x8366,0x8367,0x8368,0x8369,0x836A,0x836B,
-0x836C,0x836D,0x836E,0x836F,0x8370,0x8371,0x8372,0x8373,
-0xB1E2,0xB1E3,0x8374,0x8375,0xB1E4,0x8376,0x8377,0xB1E5,
-0xB1E6,0x8378,0xB1E7,0x8379,0x837A,0x8381,0x8382,0x8383,
-0xB1E8,0xB1E9,0x8384,0xB1EA,0x8385,0xB1EB,0xB1EC,0x8386,
-0x8387,0x8388,0xB1ED,0x8389,0xB1EE,0xB1EF,0xB1F0,0x838A,
-0xB1F1,0x838B,0x838C,0x838D,0xB1F2,0x838E,0xB1F3,0x838F,
-0x8390,0x8391,0x8392,0x8393,0xB1F4,0xB1F5,0x8394,0xB1F6,
-0xB1F7,0xB1F8,0x8395,0x8396,0x8397,0xB1F9,0x8398,0x8399,
-0xB1FA,0xB1FB,0x839A,0x839B,0xB1FC,0x839C,0x839D,0x839E,
-0xB1FD,0x839F,0x83A0,0x83A1,0x83A2,0x83A3,0x83A4,0x83A5,
-0xB1FE,0xB2A1,0x83A6,0xB2A2,0xB2A3,0xB2A4,0x83A7,0x83A8,
-0x83A9,0x83AA,0x83AB,0x83AC,0xB2A5,0xB2A6,0x83AD,0x83AE,
-0x83AF,0x83B0,0x83B1,0x83B2,0xB2A7,0x83B3,0x83B4,0x83B5,
-0x83B6,0x83B7,0x83B8,0x83B9,0x83BA,0x83BB,0x83BC,0x83BD,
-0x83BE,0x83BF,0x83C0,0x83C1,0x83C2,0x83C3,0x83C4,0x83C5,
-0x83C6,0x83C7,0x83C8,0x83C9,0x83CA,0x83CB,0x83CC,0x83CD,
-0x83CE,0x83CF,0x83D0,0x83D1,0x83D2,0x83D3,0x83D4,0x83D5,
-0x83D6,0x83D7,0x83D8,0x83D9,0x83DA,0x83DB,0x83DC,0x83DD,
-0x83DE,0x83DF,0x83E0,0x83E1,0xB2A8,0xB2A9,0xB2AA,0x83E2,
-0xB2AB,0x83E3,0x83E4,0x83E5,0xB2AC,0x83E6,0x83E7,0x83E8,
-0x83E9,0x83EA,0x83EB,0x83EC,0xB2AD,0xB2AE,0x83ED,0xB2AF,
-0xB2B0,0xB2B1,0x83EE,0x83EF,0x83F0,0x83F1,0x83F2,0x83F3,
-0xB2B2,0xB2B3,0x83F4,0x83F5,0xB2B4,0x83F6,0x83F7,0x83F8,
-0x83F9,0x83FA,0x83FB,0x83FC,0x83FD,0x83FE,0x8441,0x8442,
-0xB2B5,0x8443,0x8444,0xB2B6,0x8445,0xB2B7,0x8446,0x8447,
-0x8448,0x8449,0x844A,0x844B,0xB2B8,0x844C,0x844D,0x844E,
-0xB2B9,0x844F,0x8450,0x8451,0xB2BA,0x8452,0x8453,0x8454,
-0x8455,0x8456,0x8457,0x8458,0x8459,0x845A,0x8461,0xB2BB,
-0xB2BC,0x8462,0x8463,0x8464,0x8465,0xB2BD,0x8466,0x8467,
-0xB2BE,0x8468,0x8469,0x846A,0x846B,0x846C,0x846D,0x846E,
-0x846F,0x8470,0x8471,0x8472,0x8473,0x8474,0x8475,0x8476,
-0x8477,0x8478,0x8479,0x847A,0x8481,0x8482,0x8483,0x8484,
-0x8485,0x8486,0x8487,0x8488,0xB2BF,0xB2C0,0x8489,0x848A,
-0xB2C1,0x848B,0xB2C2,0x848C,0xB2C3,0x848D,0x848E,0x848F,
-0x8490,0x8491,0x8492,0x8493,0xB2C4,0xB2C5,0x8494,0xB2C6,
-0x8495,0xB2C7,0xB2C8,0xB2C9,0x8496,0x8497,0x8498,0x8499,
-0xB2CA,0xB2CB,0x849A,0x849B,0x849C,0x849D,0x849E,0x849F,
-0xB2CC,0x84A0,0x84A1,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,
-0x84A7,0x84A8,0x84A9,0x84AA,0xB2CD,0xB2CE,0x84AB,0x84AC,
-0x84AD,0x84AE,0x84AF,0x84B0,0xB2CF,0xB2D0,0x84B1,0x84B2,
-0x84B3,0x84B4,0x84B5,0x84B6,0x84B7,0x84B8,0x84B9,0x84BA,
-0x84BB,0x84BC,0x84BD,0x84BE,0x84BF,0x84C0,0x84C1,0x84C2,
-0x84C3,0xB2D1,0x84C4,0x84C5,0x84C6,0x84C7,0x84C8,0x84C9,
-0xB2D2,0x84CA,0x84CB,0x84CC,0xB2D3,0x84CD,0x84CE,0x84CF,
-0xB2D4,0x84D0,0x84D1,0x84D2,0x84D3,0x84D4,0x84D5,0x84D6,
-0xB2D5,0xB2D6,0x84D7,0x84D8,0x84D9,0xB2D7,0x84DA,0x84DB,
-0x84DC,0x84DD,0x84DE,0x84DF,0xB2D8,0x84E0,0x84E1,0x84E2,
-0x84E3,0x84E4,0x84E5,0x84E6,0x84E7,0x84E8,0x84E9,0x84EA,
-0x84EB,0x84EC,0x84ED,0x84EE,0x84EF,0x84F0,0x84F1,0x84F2,
-0x84F3,0x84F4,0x84F5,0x84F6,0x84F7,0x84F8,0x84F9,0x84FA,
-0xB2D9,0xB2DA,0x84FB,0x84FC,0xB2DB,0x84FD,0x84FE,0x8541,
-0xB2DC,0x8542,0x8543,0x8544,0x8545,0x8546,0x8547,0xB2DD,
-0xB2DE,0xB2DF,0x8548,0xB2E0,0x8549,0xB2E1,0xB2E2,0x854A,
-0x854B,0x854C,0x854D,0x854E,0xB2E3,0x854F,0x8550,0x8551,
-0x8552,0x8553,0x8554,0x8555,0xB2E4,0x8556,0x8557,0x8558,
-0x8559,0x855A,0x8561,0x8562,0x8563,0x8564,0x8565,0x8566,
-0xB2E5,0xB2E6,0x8567,0x8568,0x8569,0x856A,0x856B,0x856C,
-0xB2E7,0xB2E8,0x856D,0x856E,0xB2E9,0x856F,0x8570,0x8571,
-0xB2EA,0x8572,0x8573,0x8574,0x8575,0x8576,0x8577,0x8578,
-0xB2EB,0xB2EC,0x8579,0x857A,0xB2ED,0x8581,0x8582,0x8583,
-0x8584,0x8585,0x8586,0x8587,0xB2EE,0x8588,0x8589,0x858A,
-0xB2EF,0x858B,0x858C,0x858D,0xB2F0,0x858E,0x858F,0x8590,
-0x8591,0x8592,0x8593,0x8594,0xB2F1,0xB2F2,0x8595,0x8596,
-0x8597,0x8598,0x8599,0x859A,0x859B,0x859C,0x859D,0x859E,
-0xB2F3,0x859F,0x85A0,0x85A1,0x85A2,0x85A3,0x85A4,0x85A5,
-0x85A6,0x85A7,0x85A8,0x85A9,0x85AA,0x85AB,0x85AC,0x85AD,
-0x85AE,0x85AF,0x85B0,0x85B1,0x85B2,0x85B3,0x85B4,0x85B5,
-0x85B6,0x85B7,0x85B8,0x85B9,0xB2F4,0xB2F5,0x85BA,0x85BB,
-0xB2F6,0x85BC,0xB2F7,0x85BD,0xB2F8,0x85BE,0xB2F9,0x85BF,
-0x85C0,0x85C1,0x85C2,0xB2FA,0xB2FB,0xB2FC,0x85C3,0xB2FD,
-0x85C4,0xB2FE,0x85C5,0x85C6,0x85C7,0xB3A1,0x85C8,0x85C9,
-0x85CA,0x85CB,0x85CC,0x85CD,0x85CE,0x85CF,0x85D0,0x85D1,
-0x85D2,0x85D3,0x85D4,0x85D5,0x85D6,0x85D7,0x85D8,0x85D9,
-0x85DA,0x85DB,0x85DC,0x85DD,0x85DE,0x85DF,0x85E0,0x85E1,
-0x85E2,0x85E3,0x85E4,0x85E5,0xB3A2,0xB3A3,0x85E6,0x85E7,
-0xB3A4,0x85E8,0x85E9,0x85EA,0xB3A5,0x85EB,0x85EC,0x85ED,
-0x85EE,0x85EF,0x85F0,0x85F1,0xB3A6,0xB3A7,0x85F2,0xB3A8,
-0x85F3,0xB3A9,0x85F4,0x85F5,0x85F6,0x85F7,0x85F8,0x85F9,
-0xB3AA,0xB3AB,0xB3AC,0x85FA,0xB3AD,0x85FB,0x85FC,0xB3AE,
-0xB3AF,0xB3B0,0xB3B1,0x85FD,0x85FE,0x8641,0x8642,0x8643,
-0xB3B2,0xB3B3,0x8644,0xB3B4,0xB3B5,0xB3B6,0xB3B7,0xB3B8,
-0x8645,0xB3B9,0x8646,0xB3BA,0xB3BB,0xB3BC,0x8647,0x8648,
-0xB3BD,0x8649,0x864A,0x864B,0xB3BE,0x864C,0x864D,0x864E,
-0x864F,0x8650,0x8651,0x8652,0xB3BF,0xB3C0,0x8653,0xB3C1,
-0xB3C2,0xB3C3,0x8654,0x8655,0x8656,0x8657,0x8658,0x8659,
-0xB3C4,0xB3C5,0x865A,0x8661,0xB3C6,0x8662,0x8663,0x8664,
-0xB3C7,0x8665,0x8666,0x8667,0x8668,0x8669,0x866A,0x866B,
-0xB3C8,0x866C,0x866D,0x866E,0x866F,0xB3C9,0x8670,0x8671,
-0x8672,0x8673,0x8674,0x8675,0x8676,0x8677,0x8678,0x8679,
-0x867A,0x8681,0x8682,0x8683,0x8684,0x8685,0x8686,0x8687,
-0x8688,0x8689,0x868A,0x868B,0x868C,0x868D,0x868E,0x868F,
-0x8690,0x8691,0x8692,0x8693,0x8694,0x8695,0x8696,0x8697,
-0xB3CA,0xB3CB,0x8698,0xB3CC,0xB3CD,0x8699,0x869A,0x869B,
-0xB3CE,0x869C,0xB3CF,0xB3D0,0x869D,0x869E,0x869F,0x86A0,
-0xB3D1,0xB3D2,0x86A1,0xB3D3,0xB3D4,0xB3D5,0x86A2,0x86A3,
-0x86A4,0x86A5,0x86A6,0xB3D6,0xB3D7,0xB3D8,0x86A7,0x86A8,
-0xB3D9,0x86A9,0x86AA,0x86AB,0xB3DA,0x86AC,0x86AD,0x86AE,
-0x86AF,0x86B0,0x86B1,0x86B2,0xB3DB,0xB3DC,0x86B3,0xB3DD,
-0xB3DE,0xB3DF,0x86B4,0x86B5,0x86B6,0x86B7,0x86B8,0x86B9,
-0xB3E0,0xB3E1,0x86BA,0x86BB,0xB3E2,0x86BC,0x86BD,0x86BE,
-0xB3E3,0x86BF,0x86C0,0x86C1,0x86C2,0x86C3,0x86C4,0x86C5,
-0xB3E4,0xB3E5,0x86C6,0x86C7,0xB3E6,0xB3E7,0x86C8,0x86C9,
-0xB3E8,0x86CA,0x86CB,0x86CC,0xB3E9,0x86CD,0x86CE,0x86CF,
-0xB3EA,0x86D0,0x86D1,0x86D2,0x86D3,0x86D4,0x86D5,0x86D6,
-0x86D7,0x86D8,0x86D9,0x86DA,0x86DB,0x86DC,0x86DD,0x86DE,
-0x86DF,0x86E0,0x86E1,0x86E2,0x86E3,0x86E4,0x86E5,0x86E6,
-0xB3EB,0xB3EC,0x86E7,0x86E8,0xB3ED,0x86E9,0x86EA,0x86EB,
-0xB3EE,0x86EC,0xB3EF,0x86ED,0x86EE,0x86EF,0x86F0,0x86F1,
-0xB3F0,0xB3F1,0x86F2,0xB3F2,0x86F3,0xB3F3,0x86F4,0x86F5,
-0x86F6,0x86F7,0xB3F4,0xB3F5,0xB3F6,0x86F8,0x86F9,0x86FA,
-0xB3F7,0x86FB,0x86FC,0x86FD,0xB3F8,0x86FE,0x8741,0x8742,
-0x8743,0x8744,0x8745,0x8746,0x8747,0x8748,0x8749,0x874A,
-0xB3F9,0x874B,0x874C,0x874D,0x874E,0x874F,0x8750,0x8751,
-0x8752,0x8753,0x8754,0x8755,0x8756,0x8757,0x8758,0x8759,
-0x875A,0x8761,0x8762,0x8763,0x8764,0x8765,0x8766,0x8767,
-0x8768,0x8769,0x876A,0x876B,0x876C,0x876D,0x876E,0x876F,
-0x8770,0x8771,0x8772,0x8773,0xB3FA,0x8774,0x8775,0x8776,
-0xB3FB,0x8777,0x8778,0x8779,0xB3FC,0x877A,0x8781,0x8782,
-0x8783,0x8784,0x8785,0x8786,0xB3FD,0xB3FE,0x8787,0xB4A1,
-0x8788,0x8789,0x878A,0x878B,0x878C,0x878D,0x878E,0x878F,
-0xB4A2,0xB4A3,0x8790,0x8791,0xB4A4,0x8792,0x8793,0x8794,
-0xB4A5,0x8795,0x8796,0x8797,0x8798,0x8799,0x879A,0x879B,
-0x879C,0xB4A6,0x879D,0xB4A7,0x879E,0xB4A8,0x879F,0x87A0,
-0x87A1,0x87A2,0x87A3,0x87A4,0xB4A9,0xB4AA,0x87A5,0x87A6,
-0xB4AB,0x87A7,0x87A8,0xB4AC,0xB4AD,0x87A9,0x87AA,0x87AB,
-0x87AC,0x87AD,0x87AE,0x87AF,0xB4AE,0xB4AF,0x87B0,0xB4B0,
-0x87B1,0xB4B1,0x87B2,0x87B3,0x87B4,0x87B5,0x87B6,0x87B7,
-0xB4B2,0x87B8,0x87B9,0x87BA,0x87BB,0x87BC,0x87BD,0x87BE,
-0x87BF,0x87C0,0x87C1,0x87C2,0x87C3,0x87C4,0x87C5,0x87C6,
-0x87C7,0x87C8,0x87C9,0x87CA,0xB4B3,0x87CB,0x87CC,0x87CD,
-0x87CE,0x87CF,0x87D0,0x87D1,0xB4B4,0x87D2,0x87D3,0x87D4,
-0x87D5,0x87D6,0x87D7,0x87D8,0x87D9,0x87DA,0x87DB,0x87DC,
-0x87DD,0x87DE,0x87DF,0x87E0,0x87E1,0x87E2,0x87E3,0x87E4,
-0x87E5,0x87E6,0x87E7,0x87E8,0x87E9,0x87EA,0x87EB,0x87EC,
-0xB4B5,0x87ED,0x87EE,0x87EF,0xB4B6,0x87F0,0x87F1,0x87F2,
-0xB4B7,0x87F3,0x87F4,0x87F5,0x87F6,0x87F7,0x87F8,0x87F9,
-0xB4B8,0xB4B9,0x87FA,0x87FB,0x87FC,0x87FD,0x87FE,0x8841,
-0x8842,0x8843,0x8844,0x8845,0xB4BA,0xB4BB,0x8846,0x8847,
-0x8848,0x8849,0x884A,0x884B,0xB4BC,0x884C,0x884D,0x884E,
-0x884F,0x8850,0x8851,0x8852,0xB4BD,0xB4BE,0x8853,0x8854,
-0x8855,0xB4BF,0x8856,0x8857,0x8858,0x8859,0x885A,0x8861,
-0xB4C0,0xB4C1,0x8862,0x8863,0xB4C2,0x8864,0x8865,0x8866,
-0xB4C3,0xB4C4,0xB4C5,0x8867,0x8868,0x8869,0x886A,0x886B,
-0xB4C6,0xB4C7,0x886C,0xB4C8,0x886D,0xB4C9,0xB4CA,0x886E,
-0x886F,0x8870,0xB4CB,0x8871,0xB4CC,0x8872,0x8873,0x8874,
-0xB4CD,0x8875,0x8876,0x8877,0xB4CE,0x8878,0x8879,0x887A,
-0x8881,0x8882,0x8883,0x8884,0x8885,0x8886,0x8887,0x8888,
-0x8889,0x888A,0x888B,0x888C,0x888D,0x888E,0x888F,0x8890,
-0xB4CF,0xB4D0,0x8891,0x8892,0xB4D1,0x8893,0x8894,0x8895,
-0xB4D2,0x8896,0xB4D3,0x8897,0x8898,0x8899,0x889A,0x889B,
-0xB4D4,0xB4D5,0x889C,0xB4D6,0x889D,0xB4D7,0x889E,0x889F,
-0x88A0,0x88A1,0xB4D8,0x88A2,0xB4D9,0xB4DA,0xB4DB,0x88A3,
-0xB4DC,0x88A4,0x88A5,0xB4DD,0xB4DE,0xB4DF,0xB4E0,0xB4E1,
-0x88A6,0x88A7,0x88A8,0xB4E2,0xB4E3,0xB4E4,0x88A9,0xB4E5,
-0xB4E6,0xB4E7,0xB4E8,0xB4E9,0x88AA,0x88AB,0x88AC,0xB4EA,
-0xB4EB,0xB4EC,0x88AD,0x88AE,0xB4ED,0x88AF,0x88B0,0x88B1,
-0xB4EE,0x88B2,0x88B3,0x88B4,0x88B5,0x88B6,0x88B7,0x88B8,
-0xB4EF,0xB4F0,0x88B9,0xB4F1,0xB4F2,0xB4F3,0x88BA,0x88BB,
-0x88BC,0x88BD,0x88BE,0x88BF,0xB4F4,0x88C0,0x88C1,0x88C2,
-0x88C3,0x88C4,0x88C5,0x88C6,0x88C7,0x88C8,0x88C9,0x88CA,
-0x88CB,0x88CC,0x88CD,0x88CE,0x88CF,0x88D0,0x88D1,0x88D2,
-0x88D3,0x88D4,0x88D5,0x88D6,0x88D7,0x88D8,0x88D9,0x88DA,
-0x88DB,0x88DC,0x88DD,0x88DE,0x88DF,0x88E0,0x88E1,0x88E2,
-0x88E3,0x88E4,0x88E5,0x88E6,0x88E7,0x88E8,0x88E9,0x88EA,
-0x88EB,0x88EC,0x88ED,0x88EE,0x88EF,0x88F0,0x88F1,0x88F2,
-0x88F3,0x88F4,0x88F5,0x88F6,0xB4F5,0xB4F6,0xB4F7,0x88F7,
-0xB4F8,0x88F8,0x88F9,0xB4F9,0xB4FA,0x88FA,0xB4FB,0xB4FC,
-0x88FB,0x88FC,0x88FD,0x88FE,0xB4FD,0xB4FE,0x8941,0xB5A1,
-0x8942,0xB5A2,0x8943,0xB5A3,0x8944,0x8945,0xB5A4,0x8946,
-0xB5A5,0xB5A6,0x8947,0x8948,0xB5A7,0x8949,0x894A,0x894B,
-0xB5A8,0x894C,0x894D,0x894E,0x894F,0x8950,0x8951,0x8952,
-0xB5A9,0xB5AA,0x8953,0xB5AB,0xB5AC,0xB5AD,0x8954,0x8955,
-0x8956,0x8957,0x8958,0x8959,0xB5AE,0x895A,0x8961,0x8962,
-0xB5AF,0x8963,0x8964,0x8965,0xB5B0,0x8966,0x8967,0x8968,
-0x8969,0x896A,0x896B,0x896C,0x896D,0x896E,0x896F,0x8970,
-0xB5B1,0xB5B2,0x8971,0x8972,0x8973,0x8974,0x8975,0x8976,
-0xB5B3,0x8977,0x8978,0x8979,0xB5B4,0x897A,0x8981,0x8982,
-0x8983,0x8984,0x8985,0x8986,0x8987,0x8988,0x8989,0x898A,
-0x898B,0x898C,0x898D,0x898E,0x898F,0x8990,0x8991,0x8992,
-0x8993,0x8994,0x8995,0x8996,0xB5B5,0xB5B6,0x8997,0x8998,
-0xB5B7,0x8999,0x899A,0xB5B8,0xB5B9,0x899B,0xB5BA,0x899C,
-0xB5BB,0x899D,0x899E,0x899F,0xB5BC,0xB5BD,0x89A0,0xB5BE,
-0x89A1,0xB5BF,0x89A2,0xB5C0,0x89A3,0xB5C1,0x89A4,0x89A5,
-0xB5C2,0x89A6,0x89A7,0x89A8,0xB5C3,0x89A9,0x89AA,0x89AB,
-0xB5C4,0x89AC,0x89AD,0x89AE,0x89AF,0x89B0,0x89B1,0x89B2,
-0x89B3,0x89B4,0x89B5,0x89B6,0x89B7,0x89B8,0x89B9,0x89BA,
-0x89BB,0x89BC,0x89BD,0x89BE,0xB5C5,0x89BF,0x89C0,0x89C1,
-0x89C2,0x89C3,0x89C4,0x89C5,0x89C6,0x89C7,0x89C8,0x89C9,
-0x89CA,0x89CB,0x89CC,0x89CD,0x89CE,0x89CF,0x89D0,0x89D1,
-0xB5C6,0x89D2,0x89D3,0x89D4,0x89D5,0x89D6,0x89D7,0x89D8,
-0xB5C7,0x89D9,0x89DA,0x89DB,0xB5C8,0x89DC,0x89DD,0x89DE,
-0xB5C9,0x89DF,0x89E0,0x89E1,0x89E2,0x89E3,0x89E4,0x89E5,
-0xB5CA,0xB5CB,0x89E6,0xB5CC,0x89E7,0x89E8,0x89E9,0x89EA,
-0x89EB,0x89EC,0x89ED,0x89EE,0xB5CD,0x89EF,0x89F0,0x89F1,
-0x89F2,0x89F3,0x89F4,0x89F5,0x89F6,0x89F7,0x89F8,0x89F9,
-0x89FA,0x89FB,0x89FC,0x89FD,0x89FE,0x8A41,0x8A42,0x8A43,
-0x8A44,0x8A45,0x8A46,0x8A47,0x8A48,0x8A49,0x8A4A,0x8A4B,
-0xB5CE,0xB5CF,0x8A4C,0x8A4D,0xB5D0,0x8A4E,0x8A4F,0x8A50,
-0xB5D1,0x8A51,0x8A52,0x8A53,0x8A54,0x8A55,0x8A56,0x8A57,
-0xB5D2,0xB5D3,0x8A58,0xB5D4,0x8A59,0xB5D5,0x8A5A,0x8A61,
-0x8A62,0x8A63,0x8A64,0x8A65,0xB5D6,0x8A66,0x8A67,0x8A68,
-0x8A69,0x8A6A,0x8A6B,0x8A6C,0x8A6D,0x8A6E,0x8A6F,0x8A70,
-0x8A71,0x8A72,0x8A73,0x8A74,0x8A75,0x8A76,0x8A77,0x8A78,
-0xB5D7,0x8A79,0x8A7A,0x8A81,0x8A82,0x8A83,0x8A84,0x8A85,
-0xB5D8,0x8A86,0x8A87,0x8A88,0x8A89,0x8A8A,0x8A8B,0x8A8C,
-0x8A8D,0x8A8E,0x8A8F,0x8A90,0x8A91,0x8A92,0x8A93,0x8A94,
-0x8A95,0x8A96,0x8A97,0x8A98,0x8A99,0xB5D9,0x8A9A,0x8A9B,
-0x8A9C,0x8A9D,0x8A9E,0x8A9F,0xB5DA,0x8AA0,0x8AA1,0x8AA2,
-0xB5DB,0x8AA3,0x8AA4,0x8AA5,0xB5DC,0x8AA6,0x8AA7,0x8AA8,
-0x8AA9,0x8AAA,0x8AAB,0x8AAC,0x8AAD,0xB5DD,0x8AAE,0xB5DE,
-0x8AAF,0xB5DF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,0x8AB4,0x8AB5,
-0xB5E0,0x8AB6,0x8AB7,0x8AB8,0xB5E1,0x8AB9,0x8ABA,0x8ABB,
-0xB5E2,0x8ABC,0x8ABD,0x8ABE,0x8ABF,0x8AC0,0x8AC1,0x8AC2,
-0xB5E3,0x8AC3,0x8AC4,0x8AC5,0x8AC6,0xB5E4,0x8AC7,0x8AC8,
-0x8AC9,0x8ACA,0x8ACB,0x8ACC,0xB5E5,0xB5E6,0x8ACD,0x8ACE,
-0xB5E7,0x8ACF,0x8AD0,0xB5E8,0xB5E9,0x8AD1,0xB5EA,0x8AD2,
-0x8AD3,0x8AD4,0x8AD5,0x8AD6,0xB5EB,0xB5EC,0x8AD7,0xB5ED,
-0x8AD8,0xB5EE,0x8AD9,0x8ADA,0x8ADB,0x8ADC,0x8ADD,0x8ADE,
-0xB5EF,0x8ADF,0x8AE0,0x8AE1,0x8AE2,0x8AE3,0x8AE4,0x8AE5,
-0x8AE6,0x8AE7,0x8AE8,0x8AE9,0x8AEA,0x8AEB,0x8AEC,0x8AED,
-0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4,0x8AF5,
-0x8AF6,0x8AF7,0x8AF8,0x8AF9,0xB5F0,0xB5F1,0x8AFA,0x8AFB,
-0xB5F2,0x8AFC,0x8AFD,0xB5F3,0xB5F4,0x8AFE,0x8B41,0x8B42,
-0x8B43,0x8B44,0x8B45,0x8B46,0xB5F5,0xB5F6,0x8B47,0xB5F7,
-0xB5F8,0xB5F9,0xB5FA,0x8B48,0x8B49,0x8B4A,0x8B4B,0x8B4C,
-0xB5FB,0xB5FC,0x8B4D,0x8B4E,0xB5FD,0x8B4F,0x8B50,0x8B51,
-0xB5FE,0x8B52,0x8B53,0x8B54,0x8B55,0x8B56,0x8B57,0x8B58,
-0xB6A1,0xB6A2,0x8B59,0xB6A3,0xB6A4,0xB6A5,0x8B5A,0x8B61,
-0x8B62,0x8B63,0x8B64,0xB6A6,0xB6A7,0xB6A8,0x8B65,0x8B66,
-0xB6A9,0x8B67,0x8B68,0x8B69,0xB6AA,0x8B6A,0x8B6B,0x8B6C,
-0x8B6D,0x8B6E,0x8B6F,0x8B70,0xB6AB,0xB6AC,0x8B71,0xB6AD,
-0xB6AE,0xB6AF,0x8B72,0x8B73,0x8B74,0x8B75,0x8B76,0x8B77,
-0x8B78,0x8B79,0x8B7A,0x8B81,0x8B82,0x8B83,0x8B84,0x8B85,
-0x8B86,0x8B87,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0x8B8D,
-0x8B8E,0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,0x8B94,0x8B95,
-0x8B96,0x8B97,0x8B98,0x8B99,0x8B9A,0x8B9B,0x8B9C,0x8B9D,
-0x8B9E,0x8B9F,0x8BA0,0x8BA1,0x8BA2,0x8BA3,0x8BA4,0x8BA5,
-0x8BA6,0x8BA7,0x8BA8,0x8BA9,0x8BAA,0x8BAB,0x8BAC,0x8BAD,
-0x8BAE,0x8BAF,0x8BB0,0x8BB1,0x8BB2,0x8BB3,0x8BB4,0x8BB5,
-0xB6B0,0xB6B1,0x8BB6,0x8BB7,0xB6B2,0x8BB8,0x8BB9,0x8BBA,
-0xB6B3,0x8BBB,0xB6B4,0xB6B5,0x8BBC,0x8BBD,0x8BBE,0x8BBF,
-0xB6B6,0xB6B7,0x8BC0,0xB6B8,0xB6B9,0xB6BA,0x8BC1,0x8BC2,
-0x8BC3,0x8BC4,0x8BC5,0xB6BB,0xB6BC,0xB6BD,0x8BC6,0x8BC7,
-0xB6BE,0x8BC8,0x8BC9,0x8BCA,0xB6BF,0x8BCB,0x8BCC,0x8BCD,
-0x8BCE,0x8BCF,0x8BD0,0x8BD1,0xB6C0,0xB6C1,0x8BD2,0xB6C2,
-0xB6C3,0xB6C4,0x8BD3,0x8BD4,0x8BD5,0x8BD6,0x8BD7,0x8BD8,
-0xB6C5,0x8BD9,0x8BDA,0x8BDB,0x8BDC,0x8BDD,0x8BDE,0x8BDF,
-0x8BE0,0x8BE1,0x8BE2,0x8BE3,0x8BE4,0x8BE5,0x8BE6,0x8BE7,
-0x8BE8,0x8BE9,0x8BEA,0x8BEB,0xB6C6,0x8BEC,0x8BED,0x8BEE,
-0x8BEF,0x8BF0,0x8BF1,0x8BF2,0x8BF3,0x8BF4,0x8BF5,0x8BF6,
-0x8BF7,0x8BF8,0x8BF9,0x8BFA,0x8BFB,0x8BFC,0x8BFD,0x8BFE,
-0x8C41,0x8C42,0x8C43,0x8C44,0x8C45,0x8C46,0x8C47,0x8C48,
-0x8C49,0x8C4A,0x8C4B,0x8C4C,0x8C4D,0x8C4E,0x8C4F,0x8C50,
-0xB6C7,0xB6C8,0x8C51,0x8C52,0xB6C9,0x8C53,0x8C54,0x8C55,
-0xB6CA,0x8C56,0x8C57,0x8C58,0x8C59,0x8C5A,0x8C61,0x8C62,
-0x8C63,0x8C64,0x8C65,0x8C66,0x8C67,0xB6CB,0x8C68,0x8C69,
-0x8C6A,0x8C6B,0x8C6C,0x8C6D,0xB6CC,0x8C6E,0x8C6F,0x8C70,
-0x8C71,0x8C72,0x8C73,0x8C74,0xB6CD,0x8C75,0x8C76,0x8C77,
-0x8C78,0x8C79,0x8C7A,0x8C81,0x8C82,0x8C83,0x8C84,0x8C85,
-0x8C86,0x8C87,0x8C88,0x8C89,0x8C8A,0x8C8B,0x8C8C,0x8C8D,
-0xB6CE,0x8C8E,0x8C8F,0x8C90,0x8C91,0x8C92,0x8C93,0x8C94,
-0x8C95,0x8C96,0x8C97,0x8C98,0x8C99,0x8C9A,0x8C9B,0x8C9C,
-0x8C9D,0x8C9E,0x8C9F,0x8CA0,0x8CA1,0x8CA2,0x8CA3,0x8CA4,
-0x8CA5,0x8CA6,0x8CA7,0x8CA8,0xB6CF,0x8CA9,0x8CAA,0x8CAB,
-0xB6D0,0x8CAC,0x8CAD,0x8CAE,0x8CAF,0x8CB0,0x8CB1,0x8CB2,
-0x8CB3,0x8CB4,0x8CB5,0x8CB6,0x8CB7,0x8CB8,0x8CB9,0x8CBA,
-0x8CBB,0x8CBC,0x8CBD,0x8CBE,0x8CBF,0x8CC0,0x8CC1,0x8CC2,
-0x8CC3,0x8CC4,0x8CC5,0x8CC6,0x8CC7,0x8CC8,0x8CC9,0x8CCA,
-0x8CCB,0x8CCC,0x8CCD,0x8CCE,0x8CCF,0x8CD0,0x8CD1,0x8CD2,
-0x8CD3,0x8CD4,0x8CD5,0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,
-0x8CDB,0x8CDC,0x8CDD,0x8CDE,0xB6D1,0xB6D2,0x8CDF,0x8CE0,
-0xB6D3,0x8CE1,0x8CE2,0x8CE3,0xB6D4,0x8CE4,0x8CE5,0x8CE6,
-0x8CE7,0x8CE8,0x8CE9,0xB6D5,0xB6D6,0x8CEA,0x8CEB,0x8CEC,
-0x8CED,0xB6D7,0x8CEE,0x8CEF,0x8CF0,0x8CF1,0x8CF2,0x8CF3,
-0x8CF4,0x8CF5,0x8CF6,0x8CF7,0x8CF8,0x8CF9,0x8CFA,0x8CFB,
-0x8CFC,0x8CFD,0x8CFE,0x8D41,0x8D42,0x8D43,0x8D44,0x8D45,
-0x8D46,0x8D47,0x8D48,0x8D49,0x8D4A,0x8D4B,0x8D4C,0x8D4D,
-0x8D4E,0x8D4F,0x8D50,0x8D51,0xB6D8,0x8D52,0x8D53,0x8D54,
-0x8D55,0x8D56,0x8D57,0x8D58,0x8D59,0x8D5A,0x8D61,0x8D62,
-0x8D63,0x8D64,0x8D65,0x8D66,0x8D67,0x8D68,0x8D69,0x8D6A,
-0x8D6B,0x8D6C,0x8D6D,0x8D6E,0x8D6F,0x8D70,0x8D71,0x8D72,
-0xB6D9,0x8D73,0x8D74,0x8D75,0xB6DA,0x8D76,0x8D77,0x8D78,
-0xB6DB,0x8D79,0x8D7A,0x8D81,0x8D82,0x8D83,0x8D84,0x8D85,
-0xB6DC,0xB6DD,0x8D86,0x8D87,0x8D88,0xB6DE,0x8D89,0x8D8A,
-0x8D8B,0x8D8C,0x8D8D,0x8D8E,0x8D8F,0x8D90,0x8D91,0x8D92,
-0x8D93,0x8D94,0x8D95,0x8D96,0x8D97,0x8D98,0x8D99,0x8D9A,
-0x8D9B,0x8D9C,0x8D9D,0x8D9E,0x8D9F,0x8DA0,0x8DA1,0x8DA2,
-0x8DA3,0x8DA4,0x8DA5,0x8DA6,0x8DA7,0x8DA8,0x8DA9,0x8DAA,
-0xB6DF,0xB6E0,0x8DAB,0x8DAC,0xB6E1,0x8DAD,0x8DAE,0xB6E2,
-0xB6E3,0x8DAF,0x8DB0,0x8DB1,0x8DB2,0x8DB3,0x8DB4,0x8DB5,
-0xB6E4,0xB6E5,0x8DB6,0xB6E6,0x8DB7,0x8DB8,0x8DB9,0x8DBA,
-0x8DBB,0x8DBC,0x8DBD,0x8DBE,0xB6E7,0x8DBF,0x8DC0,0x8DC1,
-0xB6E8,0x8DC2,0x8DC3,0x8DC4,0xB6E9,0x8DC5,0x8DC6,0x8DC7,
-0x8DC8,0x8DC9,0x8DCA,0x8DCB,0xB6EA,0xB6EB,0x8DCC,0x8DCD,
-0x8DCE,0x8DCF,0x8DD0,0x8DD1,0x8DD2,0x8DD3,0x8DD4,0x8DD5,
-0xB6EC,0x8DD6,0x8DD7,0x8DD8,0xB6ED,0x8DD9,0x8DDA,0x8DDB,
-0xB6EE,0x8DDC,0x8DDD,0x8DDE,0x8DDF,0x8DE0,0x8DE1,0x8DE2,
-0xB6EF,0xB6F0,0x8DE3,0xB6F1,0x8DE4,0xB6F2,0x8DE5,0x8DE6,
-0x8DE7,0x8DE8,0x8DE9,0x8DEA,0xB6F3,0xB6F4,0x8DEB,0x8DEC,
-0xB6F5,0x8DED,0x8DEE,0x8DEF,0xB6F6,0x8DF0,0x8DF1,0x8DF2,
-0x8DF3,0x8DF4,0x8DF5,0x8DF6,0xB6F7,0xB6F8,0x8DF7,0xB6F9,
-0xB6FA,0xB6FB,0xB6FC,0x8DF8,0x8DF9,0x8DFA,0xB6FD,0xB6FE,
-0xB7A1,0xB7A2,0x8DFB,0x8DFC,0xB7A3,0x8DFD,0x8DFE,0x8E41,
-0xB7A4,0x8E42,0x8E43,0x8E44,0x8E45,0x8E46,0x8E47,0x8E48,
-0xB7A5,0xB7A6,0x8E49,0xB7A7,0xB7A8,0xB7A9,0x8E4A,0x8E4B,
-0x8E4C,0x8E4D,0x8E4E,0x8E4F,0xB7AA,0xB7AB,0x8E50,0x8E51,
-0xB7AC,0x8E52,0x8E53,0x8E54,0x8E55,0x8E56,0x8E57,0x8E58,
-0x8E59,0x8E5A,0x8E61,0x8E62,0x8E63,0x8E64,0x8E65,0xB7AD,
-0x8E66,0xB7AE,0x8E67,0x8E68,0x8E69,0x8E6A,0x8E6B,0x8E6C,
-0x8E6D,0x8E6E,0x8E6F,0x8E70,0x8E71,0x8E72,0x8E73,0x8E74,
-0x8E75,0x8E76,0x8E77,0x8E78,0x8E79,0x8E7A,0x8E81,0x8E82,
-0x8E83,0x8E84,0x8E85,0x8E86,0x8E87,0x8E88,0x8E89,0x8E8A,
-0x8E8B,0x8E8C,0x8E8D,0x8E8E,0xB7AF,0xB7B0,0x8E8F,0x8E90,
-0xB7B1,0x8E91,0x8E92,0x8E93,0xB7B2,0x8E94,0x8E95,0x8E96,
-0x8E97,0x8E98,0x8E99,0x8E9A,0xB7B3,0xB7B4,0x8E9B,0xB7B5,
-0xB7B6,0xB7B7,0x8E9C,0x8E9D,0x8E9E,0x8E9F,0x8EA0,0xB7B8,
-0xB7B9,0xB7BA,0x8EA1,0x8EA2,0xB7BB,0x8EA3,0x8EA4,0x8EA5,
-0xB7BC,0x8EA6,0x8EA7,0x8EA8,0x8EA9,0x8EAA,0x8EAB,0x8EAC,
-0xB7BD,0xB7BE,0x8EAD,0xB7BF,0x8EAE,0xB7C0,0x8EAF,0x8EB0,
-0x8EB1,0x8EB2,0x8EB3,0x8EB4,0xB7C1,0xB7C2,0x8EB5,0x8EB6,
-0xB7C3,0x8EB7,0x8EB8,0x8EB9,0xB7C4,0x8EBA,0x8EBB,0x8EBC,
-0x8EBD,0x8EBE,0x8EBF,0x8EC0,0xB7C5,0xB7C6,0x8EC1,0xB7C7,
-0xB7C8,0xB7C9,0x8EC2,0x8EC3,0x8EC4,0x8EC5,0x8EC6,0x8EC7,
-0xB7CA,0x8EC8,0x8EC9,0x8ECA,0xB7CB,0x8ECB,0x8ECC,0x8ECD,
-0x8ECE,0x8ECF,0x8ED0,0x8ED1,0x8ED2,0x8ED3,0x8ED4,0x8ED5,
-0x8ED6,0xB7CC,0x8ED7,0xB7CD,0x8ED8,0x8ED9,0x8EDA,0x8EDB,
-0x8EDC,0x8EDD,0x8EDE,0x8EDF,0xB7CE,0xB7CF,0x8EE0,0x8EE1,
-0xB7D0,0x8EE2,0x8EE3,0x8EE4,0xB7D1,0x8EE5,0x8EE6,0x8EE7,
-0x8EE8,0x8EE9,0x8EEA,0x8EEB,0xB7D2,0xB7D3,0x8EEC,0xB7D4,
-0x8EED,0xB7D5,0x8EEE,0x8EEF,0x8EF0,0x8EF1,0x8EF2,0x8EF3,
-0xB7D6,0x8EF4,0x8EF5,0x8EF6,0xB7D7,0x8EF7,0x8EF8,0x8EF9,
-0x8EFA,0x8EFB,0x8EFC,0x8EFD,0x8EFE,0x8F41,0x8F42,0x8F43,
-0x8F44,0x8F45,0x8F46,0x8F47,0x8F48,0xB7D8,0x8F49,0x8F4A,
-0x8F4B,0x8F4C,0x8F4D,0x8F4E,0x8F4F,0x8F50,0x8F51,0x8F52,
-0x8F53,0x8F54,0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A,
-0x8F61,0x8F62,0x8F63,0x8F64,0x8F65,0x8F66,0x8F67,0x8F68,
-0xB7D9,0x8F69,0x8F6A,0x8F6B,0x8F6C,0x8F6D,0x8F6E,0x8F6F,
-0xB7DA,0x8F70,0x8F71,0x8F72,0xB7DB,0x8F73,0x8F74,0x8F75,
-0xB7DC,0x8F76,0x8F77,0x8F78,0x8F79,0x8F7A,0x8F81,0x8F82,
-0xB7DD,0xB7DE,0x8F83,0xB7DF,0x8F84,0xB7E0,0x8F85,0x8F86,
-0x8F87,0x8F88,0x8F89,0x8F8A,0xB7E1,0x8F8B,0x8F8C,0x8F8D,
-0xB7E2,0x8F8E,0x8F8F,0x8F90,0xB7E3,0x8F91,0x8F92,0x8F93,
-0x8F94,0x8F95,0x8F96,0x8F97,0x8F98,0xB7E4,0x8F99,0xB7E5,
-0x8F9A,0xB7E6,0x8F9B,0x8F9C,0x8F9D,0x8F9E,0x8F9F,0x8FA0,
-0xB7E7,0xB7E8,0x8FA1,0x8FA2,0xB7E9,0x8FA3,0x8FA4,0x8FA5,
-0xB7EA,0x8FA6,0x8FA7,0x8FA8,0x8FA9,0x8FAA,0x8FAB,0x8FAC,
-0xB7EB,0xB7EC,0x8FAD,0xB7ED,0x8FAE,0xB7EE,0x8FAF,0x8FB0,
-0x8FB1,0x8FB2,0x8FB3,0x8FB4,0xB7EF,0x8FB5,0x8FB6,0x8FB7,
-0x8FB8,0x8FB9,0x8FBA,0x8FBB,0x8FBC,0x8FBD,0x8FBE,0x8FBF,
-0x8FC0,0x8FC1,0x8FC2,0x8FC3,0x8FC4,0x8FC5,0x8FC6,0x8FC7,
-0xB7F0,0x8FC8,0x8FC9,0x8FCA,0x8FCB,0x8FCC,0x8FCD,0x8FCE,
-0xB7F1,0x8FCF,0x8FD0,0x8FD1,0x8FD2,0x8FD3,0x8FD4,0x8FD5,
-0x8FD6,0x8FD7,0x8FD8,0x8FD9,0x8FDA,0x8FDB,0x8FDC,0x8FDD,
-0x8FDE,0x8FDF,0x8FE0,0x8FE1,0x8FE2,0x8FE3,0x8FE4,0x8FE5,
-0x8FE6,0x8FE7,0x8FE8,0x8FE9,0xB7F2,0xB7F3,0x8FEA,0x8FEB,
-0xB7F4,0x8FEC,0x8FED,0x8FEE,0xB7F5,0x8FEF,0x8FF0,0x8FF1,
-0x8FF2,0x8FF3,0x8FF4,0x8FF5,0xB7F6,0x8FF6,0x8FF7,0xB7F7,
-0x8FF8,0xB7F8,0x8FF9,0x8FFA,0x8FFB,0x8FFC,0x8FFD,0x8FFE,
-0xB7F9,0xB7FA,0x9041,0x9042,0xB7FB,0x9043,0x9044,0x9045,
-0xB7FC,0x9046,0x9047,0x9048,0x9049,0x904A,0x904B,0x904C,
-0xB7FD,0xB7FE,0x904D,0xB8A1,0x904E,0xB8A2,0x904F,0x9050,
-0x9051,0x9052,0x9053,0x9054,0xB8A3,0xB8A4,0x9055,0x9056,
-0xB8A5,0x9057,0x9058,0x9059,0xB8A6,0x905A,0x9061,0x9062,
-0x9063,0x9064,0x9065,0x9066,0xB8A7,0xB8A8,0x9067,0xB8A9,
-0x9068,0xB8AA,0xB8AB,0x9069,0x906A,0xB8AC,0xB8AD,0x906B,
-0x906C,0x906D,0x906E,0x906F,0x9070,0x9071,0x9072,0x9073,
-0x9074,0x9075,0x9076,0x9077,0x9078,0x9079,0x907A,0x9081,
-0x9082,0x9083,0x9084,0x9085,0x9086,0x9087,0x9088,0x9089,
-0x908A,0x908B,0x908C,0x908D,0xB8AE,0xB8AF,0x908E,0x908F,
-0xB8B0,0x9090,0x9091,0x9092,0xB8B1,0x9093,0x9094,0x9095,
-0x9096,0x9097,0x9098,0x9099,0xB8B2,0xB8B3,0x909A,0xB8B4,
-0x909B,0xB8B5,0x909C,0x909D,0x909E,0x909F,0x90A0,0x90A1,
-0xB8B6,0xB8B7,0x90A2,0x90A3,0xB8B8,0x90A4,0xB8B9,0xB8BA,
-0xB8BB,0xB8BC,0xB8BD,0x90A5,0x90A6,0x90A7,0x90A8,0x90A9,
-0xB8BE,0xB8BF,0x90AA,0xB8C0,0x90AB,0xB8C1,0xB8C2,0x90AC,
-0x90AD,0xB8C3,0x90AE,0xB8C4,0xB8C5,0xB8C6,0x90AF,0x90B0,
-0xB8C7,0x90B1,0x90B2,0x90B3,0xB8C8,0x90B4,0x90B5,0x90B6,
-0x90B7,0x90B8,0x90B9,0x90BA,0xB8C9,0xB8CA,0x90BB,0xB8CB,
-0xB8CC,0xB8CD,0xB8CE,0x90BC,0x90BD,0x90BE,0x90BF,0x90C0,
-0xB8CF,0xB8D0,0x90C1,0x90C2,0x90C3,0x90C4,0x90C5,0x90C6,
-0xB8D1,0x90C7,0x90C8,0x90C9,0x90CA,0x90CB,0x90CC,0x90CD,
-0x90CE,0x90CF,0x90D0,0x90D1,0x90D2,0xB8D2,0x90D3,0x90D4,
-0x90D5,0x90D6,0x90D7,0x90D8,0x90D9,0x90DA,0x90DB,0x90DC,
-0x90DD,0x90DE,0x90DF,0x90E0,0x90E1,0x90E2,0x90E3,0x90E4,
-0x90E5,0x90E6,0x90E7,0x90E8,0x90E9,0x90EA,0x90EB,0x90EC,
-0x90ED,0x90EE,0x90EF,0x90F0,0x90F1,0x90F2,0x90F3,0x90F4,
-0xB8D3,0xB8D4,0x90F5,0x90F6,0xB8D5,0x90F7,0x90F8,0x90F9,
-0xB8D6,0x90FA,0xB8D7,0x90FB,0x90FC,0x90FD,0x90FE,0x9141,
-0xB8D8,0xB8D9,0x9142,0xB8DA,0x9143,0xB8DB,0xB8DC,0x9144,
-0x9145,0x9146,0x9147,0xB8DD,0xB8DE,0xB8DF,0x9148,0x9149,
-0xB8E0,0x914A,0x914B,0x914C,0xB8E1,0x914D,0x914E,0x914F,
-0x9150,0x9151,0x9152,0x9153,0xB8E2,0xB8E3,0x9154,0xB8E4,
-0xB8E5,0xB8E6,0x9155,0x9156,0x9157,0x9158,0x9159,0x915A,
-0xB8E7,0xB8E8,0x9161,0x9162,0xB8E9,0x9163,0x9164,0x9165,
-0xB8EA,0x9166,0x9167,0x9168,0x9169,0x916A,0x916B,0x916C,
-0x916D,0x916E,0x916F,0xB8EB,0xB8EC,0xB8ED,0x9170,0xB8EE,
-0x9171,0x9172,0x9173,0x9174,0xB8EF,0x9175,0x9176,0x9177,
-0x9178,0x9179,0x917A,0x9181,0x9182,0x9183,0x9184,0x9185,
-0x9186,0x9187,0x9188,0x9189,0x918A,0x918B,0x918C,0x918D,
-0x918E,0x918F,0x9190,0x9191,0x9192,0x9193,0x9194,0x9195,
-0xB8F0,0xB8F1,0x9196,0xB8F2,0xB8F3,0x9197,0x9198,0x9199,
-0xB8F4,0x919A,0xB8F5,0x919B,0x919C,0x919D,0x919E,0x919F,
-0xB8F6,0xB8F7,0x91A0,0xB8F8,0x91A1,0xB8F9,0x91A2,0x91A3,
-0x91A4,0x91A5,0x91A6,0x91A7,0xB8FA,0x91A8,0x91A9,0x91AA,
-0xB8FB,0x91AB,0x91AC,0x91AD,0x91AE,0x91AF,0x91B0,0x91B1,
-0x91B2,0x91B3,0x91B4,0x91B5,0x91B6,0x91B7,0x91B8,0x91B9,
-0xB8FC,0xB8FD,0x91BA,0x91BB,0x91BC,0x91BD,0x91BE,0x91BF,
-0x91C0,0x91C1,0x91C2,0x91C3,0x91C4,0x91C5,0x91C6,0x91C7,
-0x91C8,0x91C9,0x91CA,0x91CB,0x91CC,0x91CD,0x91CE,0x91CF,
-0x91D0,0x91D1,0x91D2,0x91D3,0x91D4,0x91D5,0x91D6,0x91D7,
-0x91D8,0x91D9,0x91DA,0x91DB,0xB8FE,0x91DC,0x91DD,0x91DE,
-0xB9A1,0x91DF,0x91E0,0x91E1,0xB9A2,0x91E2,0x91E3,0x91E4,
-0x91E5,0x91E6,0x91E7,0x91E8,0x91E9,0xB9A3,0x91EA,0xB9A4,
-0x91EB,0xB9A5,0x91EC,0x91ED,0x91EE,0x91EF,0x91F0,0x91F1,
-0xB9A6,0x91F2,0x91F3,0x91F4,0xB9A7,0x91F5,0x91F6,0x91F7,
-0xB9A8,0x91F8,0x91F9,0x91FA,0x91FB,0x91FC,0x91FD,0x91FE,
-0x9241,0xB9A9,0x9242,0xB9AA,0x9243,0x9244,0x9245,0x9246,
-0x9247,0x9248,0x9249,0x924A,0xB9AB,0xB9AC,0xB9AD,0x924B,
-0xB9AE,0x924C,0x924D,0xB9AF,0xB9B0,0xB9B1,0xB9B2,0x924E,
-0x924F,0x9250,0x9251,0x9252,0xB9B3,0xB9B4,0x9253,0xB9B5,
-0x9254,0xB9B6,0x9255,0x9256,0x9257,0xB9B7,0x9258,0xB9B8,
-0xB9B9,0x9259,0x925A,0x9261,0xB9BA,0x9262,0x9263,0x9264,
-0xB9BB,0x9265,0x9266,0x9267,0x9268,0x9269,0x926A,0x926B,
-0x926C,0xB9BC,0x926D,0xB9BD,0x926E,0x926F,0x9270,0x9271,
-0x9272,0x9273,0x9274,0x9275,0xB9BE,0x9276,0x9277,0x9278,
-0x9279,0x927A,0x9281,0x9282,0x9283,0x9284,0x9285,0x9286,
-0x9287,0x9288,0x9289,0x928A,0x928B,0x928C,0x928D,0x928E,
-0x928F,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296,
-0xB9BF,0x9297,0x9298,0x9299,0xB9C0,0x929A,0x929B,0x929C,
-0xB9C1,0x929D,0x929E,0x929F,0x92A0,0x92A1,0x92A2,0x92A3,
-0x92A4,0x92A5,0x92A6,0x92A7,0x92A8,0x92A9,0x92AA,0x92AB,
-0x92AC,0x92AD,0x92AE,0x92AF,0xB9C2,0x92B0,0x92B1,0x92B2,
-0xB9C3,0x92B3,0x92B4,0x92B5,0xB9C4,0x92B6,0x92B7,0x92B8,
-0x92B9,0x92BA,0x92BB,0x92BC,0xB9C5,0x92BD,0x92BE,0xB9C6,
-0x92BF,0x92C0,0x92C1,0x92C2,0x92C3,0x92C4,0x92C5,0x92C6,
-0xB9C7,0x92C7,0x92C8,0x92C9,0xB9C8,0x92CA,0x92CB,0x92CC,
-0xB9C9,0x92CD,0x92CE,0x92CF,0x92D0,0x92D1,0x92D2,0x92D3,
-0xB9CA,0x92D4,0x92D5,0xB9CB,0x92D6,0x92D7,0x92D8,0x92D9,
-0x92DA,0x92DB,0x92DC,0x92DD,0x92DE,0x92DF,0x92E0,0x92E1,
-0x92E2,0x92E3,0x92E4,0x92E5,0x92E6,0x92E7,0x92E8,0x92E9,
-0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0,0x92F1,
-0x92F2,0x92F3,0x92F4,0x92F5,0x92F6,0x92F7,0x92F8,0x92F9,
-0xB9CC,0xB9CD,0x92FA,0x92FB,0xB9CE,0x92FC,0x92FD,0xB9CF,
-0xB9D0,0x92FE,0xB9D1,0x9341,0x9342,0x9343,0x9344,0x9345,
-0xB9D2,0xB9D3,0x9346,0xB9D4,0xB9D5,0xB9D6,0x9347,0xB9D7,
-0x9348,0xB9D8,0x9349,0x934A,0xB9D9,0xB9DA,0xB9DB,0xB9DC,
-0xB9DD,0x934B,0x934C,0xB9DE,0xB9DF,0xB9E0,0xB9E1,0xB9E2,
-0x934D,0x934E,0x934F,0x9350,0xB9E3,0xB9E4,0x9351,0xB9E5,
-0x9352,0xB9E6,0x9353,0x9354,0x9355,0xB9E7,0x9356,0x9357,
-0xB9E8,0xB9E9,0x9358,0x9359,0xB9EA,0x935A,0x9361,0x9362,
-0xB9EB,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369,
-0xB9EC,0xB9ED,0x936A,0xB9EE,0xB9EF,0xB9F0,0x936B,0x936C,
-0x936D,0xB9F1,0x936E,0x936F,0xB9F2,0xB9F3,0x9370,0x9371,
-0xB9F4,0x9372,0x9373,0x9374,0x9375,0x9376,0x9377,0x9378,
-0x9379,0x937A,0x9381,0x9382,0x9383,0xB9F5,0x9384,0x9385,
-0x9386,0x9387,0x9388,0x9389,0x938A,0x938B,0x938C,0x938D,
-0x938E,0x938F,0x9390,0x9391,0x9392,0x9393,0x9394,0x9395,
-0x9396,0x9397,0x9398,0x9399,0x939A,0x939B,0x939C,0x939D,
-0x939E,0x939F,0x93A0,0x93A1,0x93A2,0x93A3,0x93A4,0x93A5,
-0x93A6,0x93A7,0x93A8,0x93A9,0xB9F6,0xB9F7,0x93AA,0x93AB,
-0xB9F8,0x93AC,0x93AD,0xB9F9,0xB9FA,0x93AE,0xB9FB,0x93AF,
-0x93B0,0x93B1,0x93B2,0x93B3,0xB9FC,0xB9FD,0x93B4,0xB9FE,
-0x93B5,0xBAA1,0xBAA2,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA,
-0xBAA3,0xBAA4,0x93BB,0x93BC,0xBAA5,0x93BD,0x93BE,0xBAA6,
-0xBAA7,0x93BF,0x93C0,0x93C1,0x93C2,0x93C3,0x93C4,0x93C5,
-0xBAA8,0xBAA9,0x93C6,0xBAAA,0xBAAB,0xBAAC,0x93C7,0x93C8,
-0x93C9,0x93CA,0x93CB,0x93CC,0xBAAD,0xBAAE,0x93CD,0x93CE,
-0xBAAF,0x93CF,0x93D0,0x93D1,0xBAB0,0x93D2,0x93D3,0x93D4,
-0x93D5,0x93D6,0x93D7,0x93D8,0x93D9,0xBAB1,0x93DA,0xBAB2,
-0xBAB3,0xBAB4,0x93DB,0x93DC,0x93DD,0xBAB5,0x93DE,0x93DF,
-0xBAB6,0x93E0,0x93E1,0x93E2,0xBAB7,0x93E3,0x93E4,0x93E5,
-0x93E6,0x93E7,0x93E8,0x93E9,0x93EA,0x93EB,0x93EC,0x93ED,
-0x93EE,0x93EF,0x93F0,0x93F1,0x93F2,0x93F3,0x93F4,0x93F5,
-0x93F6,0x93F7,0x93F8,0x93F9,0xBAB8,0xBAB9,0xBABA,0x93FA,
-0xBABB,0x93FB,0x93FC,0x93FD,0xBABC,0x93FE,0x9441,0x9442,
-0x9443,0x9444,0x9445,0x9446,0xBABD,0xBABE,0x9447,0xBABF,
-0x9448,0xBAC0,0x9449,0x944A,0x944B,0x944C,0x944D,0x944E,
-0xBAC1,0x944F,0x9450,0x9451,0xBAC2,0x9452,0x9453,0x9454,
-0x9455,0x9456,0x9457,0x9458,0x9459,0x945A,0x9461,0x9462,
-0x9463,0x9464,0x9465,0x9466,0xBAC3,0x9467,0x9468,0x9469,
-0x946A,0x946B,0x946C,0x946D,0xBAC4,0x946E,0x946F,0x9470,
-0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477,0x9478,
-0x9479,0x947A,0x9481,0x9482,0x9483,0x9484,0x9485,0x9486,
-0xBAC5,0x9487,0x9488,0x9489,0x948A,0x948B,0x948C,0x948D,
-0xBAC6,0xBAC7,0x948E,0x948F,0xBAC8,0x9490,0x9491,0x9492,
-0xBAC9,0x9493,0x9494,0x9495,0x9496,0x9497,0x9498,0x9499,
-0xBACA,0xBACB,0x949A,0x949B,0x949C,0x949D,0x949E,0x949F,
-0x94A0,0x94A1,0x94A2,0x94A3,0xBACC,0x94A4,0x94A5,0x94A6,
-0xBACD,0x94A7,0x94A8,0x94A9,0x94AA,0x94AB,0x94AC,0x94AD,
-0x94AE,0x94AF,0x94B0,0x94B1,0x94B2,0x94B3,0x94B4,0x94B5,
-0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BB,0x94BC,0x94BD,
-0xBACE,0xBACF,0x94BE,0x94BF,0xBAD0,0x94C0,0x94C1,0xBAD1,
-0xBAD2,0xBAD3,0xBAD4,0x94C2,0x94C3,0x94C4,0x94C5,0x94C6,
-0xBAD5,0xBAD6,0x94C7,0xBAD7,0x94C8,0xBAD8,0x94C9,0x94CA,
-0x94CB,0xBAD9,0xBADA,0x94CC,0xBADB,0x94CD,0x94CE,0x94CF,
-0x94D0,0x94D1,0x94D2,0x94D3,0xBADC,0x94D4,0x94D5,0x94D6,
-0x94D7,0x94D8,0x94D9,0x94DA,0x94DB,0x94DC,0x94DD,0x94DE,
-0xBADD,0x94DF,0x94E0,0x94E1,0x94E2,0x94E3,0x94E4,0x94E5,
-0xBADE,0x94E6,0x94E7,0x94E8,0x94E9,0x94EA,0x94EB,0x94EC,
-0x94ED,0x94EE,0x94EF,0x94F0,0x94F1,0x94F2,0x94F3,0x94F4,
-0x94F5,0x94F6,0x94F7,0x94F8,0x94F9,0x94FA,0x94FB,0x94FC,
-0x94FD,0x94FE,0x9541,0x9542,0xBADF,0xBAE0,0x9543,0x9544,
-0xBAE1,0x9545,0x9546,0x9547,0xBAE2,0x9548,0x9549,0x954A,
-0x954B,0x954C,0x954D,0x954E,0x954F,0x9550,0x9551,0x9552,
-0x9553,0xBAE3,0x9554,0x9555,0x9556,0x9557,0x9558,0x9559,
-0xBAE4,0x955A,0x9561,0x9562,0xBAE5,0x9563,0x9564,0x9565,
-0xBAE6,0x9566,0x9567,0x9568,0x9569,0x956A,0x956B,0x956C,
-0xBAE7,0x956D,0x956E,0xBAE8,0x956F,0xBAE9,0x9570,0x9571,
-0x9572,0x9573,0x9574,0x9575,0xBAEA,0xBAEB,0x9576,0x9577,
-0xBAEC,0x9578,0x9579,0x957A,0xBAED,0x9581,0x9582,0x9583,
-0x9584,0x9585,0x9586,0x9587,0xBAEE,0xBAEF,0x9588,0xBAF0,
-0x9589,0x958A,0x958B,0x958C,0x958D,0x958E,0x958F,0x9590,
-0x9591,0x9592,0x9593,0x9594,0x9595,0x9596,0x9597,0x9598,
-0x9599,0x959A,0x959B,0x959C,0x959D,0x959E,0x959F,0x95A0,
-0x95A1,0x95A2,0x95A3,0x95A4,0x95A5,0x95A6,0x95A7,0x95A8,
-0x95A9,0x95AA,0x95AB,0x95AC,0xBAF1,0xBAF2,0x95AD,0x95AE,
-0xBAF3,0x95AF,0x95B0,0x95B1,0xBAF4,0x95B2,0xBAF5,0x95B3,
-0x95B4,0x95B5,0x95B6,0x95B7,0xBAF6,0xBAF7,0x95B8,0xBAF8,
-0x95B9,0xBAF9,0xBAFA,0xBAFB,0x95BA,0x95BB,0x95BC,0x95BD,
-0xBAFC,0xBAFD,0x95BE,0x95BF,0xBAFE,0x95C0,0x95C1,0x95C2,
-0xBBA1,0x95C3,0xBBA2,0x95C4,0x95C5,0x95C6,0x95C7,0x95C8,
-0xBBA3,0xBBA4,0x95C9,0xBBA5,0xBBA6,0xBBA7,0x95CA,0x95CB,
-0x95CC,0x95CD,0x95CE,0xBBA8,0xBBA9,0xBBAA,0x95CF,0x95D0,
-0xBBAB,0x95D1,0x95D2,0x95D3,0xBBAC,0x95D4,0x95D5,0x95D6,
-0x95D7,0x95D8,0x95D9,0x95DA,0xBBAD,0xBBAE,0x95DB,0xBBAF,
-0xBBB0,0xBBB1,0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1,
-0xBBB2,0xBBB3,0x95E2,0x95E3,0x95E4,0x95E5,0x95E6,0x95E7,
-0x95E8,0x95E9,0x95EA,0x95EB,0x95EC,0x95ED,0x95EE,0x95EF,
-0xBBB4,0x95F0,0x95F1,0x95F2,0x95F3,0x95F4,0x95F5,0x95F6,
-0x95F7,0x95F8,0x95F9,0x95FA,0x95FB,0x95FC,0x95FD,0x95FE,
-0x9641,0x9642,0x9643,0x9644,0x9645,0x9646,0x9647,0x9648,
-0x9649,0x964A,0x964B,0x964C,0x964D,0x964E,0x964F,0x9650,
-0x9651,0x9652,0x9653,0x9654,0x9655,0x9656,0x9657,0x9658,
-0xBBB5,0xBBB6,0x9659,0x965A,0xBBB7,0x9661,0x9662,0xBBB8,
-0xBBB9,0x9663,0x9664,0x9665,0x9666,0x9667,0x9668,0x9669,
-0xBBBA,0x966A,0x966B,0xBBBB,0xBBBC,0xBBBD,0x966C,0x966D,
-0x966E,0x966F,0x9670,0x9671,0xBBBE,0x9672,0x9673,0x9674,
-0x9675,0x9676,0x9677,0x9678,0x9679,0x967A,0x9681,0x9682,
-0x9683,0x9684,0x9685,0x9686,0x9687,0x9688,0x9689,0x968A,
-0x968B,0xBBBF,0x968C,0x968D,0x968E,0x968F,0x9690,0x9691,
-0xBBC0,0xBBC1,0x9692,0x9693,0x9694,0x9695,0x9696,0x9697,
-0x9698,0x9699,0x969A,0x969B,0x969C,0x969D,0x969E,0x969F,
-0xBBC2,0xBBC3,0x96A0,0xBBC4,0xBBC5,0xBBC6,0x96A1,0x96A2,
-0x96A3,0x96A4,0x96A5,0x96A6,0x96A7,0x96A8,0x96A9,0x96AA,
-0x96AB,0x96AC,0x96AD,0x96AE,0x96AF,0x96B0,0x96B1,0x96B2,
-0x96B3,0x96B4,0x96B5,0x96B6,0x96B7,0x96B8,0x96B9,0x96BA,
-0x96BB,0x96BC,0x96BD,0x96BE,0x96BF,0x96C0,0x96C1,0x96C2,
-0xBBC7,0xBBC8,0x96C3,0x96C4,0xBBC9,0x96C5,0x96C6,0x96C7,
-0xBBCA,0x96C8,0x96C9,0x96CA,0x96CB,0x96CC,0x96CD,0x96CE,
-0xBBCB,0xBBCC,0x96CF,0x96D0,0x96D1,0xBBCD,0x96D2,0x96D3,
-0x96D4,0x96D5,0x96D6,0x96D7,0x96D8,0x96D9,0x96DA,0x96DB,
-0x96DC,0x96DD,0x96DE,0x96DF,0x96E0,0x96E1,0x96E2,0x96E3,
-0x96E4,0x96E5,0x96E6,0x96E7,0x96E8,0x96E9,0x96EA,0x96EB,
-0x96EC,0x96ED,0x96EE,0x96EF,0x96F0,0x96F1,0x96F2,0x96F3,
-0x96F4,0x96F5,0x96F6,0x96F7,0x96F8,0x96F9,0x96FA,0x96FB,
-0x96FC,0x96FD,0x96FE,0x9741,0x9742,0x9743,0x9744,0x9745,
-0x9746,0x9747,0x9748,0x9749,0x974A,0x974B,0x974C,0x974D,
-0x974E,0x974F,0x9750,0x9751,0xBBCE,0x9752,0x9753,0x9754,
-0x9755,0x9756,0x9757,0x9758,0x9759,0x975A,0x9761,0x9762,
-0x9763,0x9764,0x9765,0x9766,0x9767,0x9768,0x9769,0x976A,
-0x976B,0x976C,0x976D,0x976E,0x976F,0x9770,0x9771,0x9772,
-0xBBCF,0x9773,0x9774,0x9775,0x9776,0x9777,0x9778,0x9779,
-0x977A,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786,0x9787,
-0x9788,0x9789,0x978A,0x978B,0x978C,0xBBD0,0x978D,0x978E,
-0x978F,0x9790,0x9791,0x9792,0xBBD1,0xBBD2,0x9793,0x9794,
-0xBBD3,0x9795,0x9796,0x9797,0xBBD4,0x9798,0x9799,0x979A,
-0x979B,0x979C,0x979D,0x979E,0xBBD5,0x979F,0x97A0,0xBBD6,
-0x97A1,0xBBD7,0x97A2,0x97A3,0x97A4,0x97A5,0x97A6,0x97A7,
-0x97A8,0x97A9,0x97AA,0x97AB,0x97AC,0x97AD,0x97AE,0x97AF,
-0x97B0,0x97B1,0x97B2,0x97B3,0x97B4,0x97B5,0x97B6,0x97B7,
-0x97B8,0x97B9,0x97BA,0x97BB,0x97BC,0x97BD,0x97BE,0x97BF,
-0x97C0,0x97C1,0x97C2,0x97C3,0x97C4,0x97C5,0x97C6,0x97C7,
-0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,0x97CD,0x97CE,0x97CF,
-0x97D0,0x97D1,0x97D2,0x97D3,0x97D4,0x97D5,0x97D6,0x97D7,
-0x97D8,0x97D9,0x97DA,0x97DB,0x97DC,0x97DD,0x97DE,0x97DF,
-0x97E0,0x97E1,0x97E2,0x97E3,0x97E4,0x97E5,0x97E6,0x97E7,
-0x97E8,0x97E9,0x97EA,0x97EB,0x97EC,0x97ED,0x97EE,0x97EF,
-0x97F0,0x97F1,0x97F2,0x97F3,0x97F4,0x97F5,0x97F6,0x97F7,
-0x97F8,0x97F9,0x97FA,0x97FB,0xBBD8,0x97FC,0x97FD,0x97FE,
-0x9841,0x9842,0x9843,0x9844,0x9845,0x9846,0x9847,0x9848,
-0x9849,0x984A,0x984B,0x984C,0x984D,0x984E,0x984F,0x9850,
-0x9851,0xBBD9,0x9852,0x9853,0x9854,0x9855,0x9856,0x9857,
-0xBBDA,0x9858,0x9859,0x985A,0xBBDB,0x9861,0x9862,0x9863,
-0xBBDC,0x9864,0x9865,0x9866,0x9867,0x9868,0x9869,0x986A,
-0xBBDD,0xBBDE,0x986B,0x986C,0x986D,0x986E,0x986F,0x9870,
-0x9871,0x9872,0x9873,0x9874,0x9875,0x9876,0x9877,0x9878,
-0x9879,0x987A,0x9881,0x9882,0x9883,0x9884,0x9885,0x9886,
-0x9887,0x9888,0x9889,0x988A,0x988B,0x988C,0x988D,0x988E,
-0x988F,0x9890,0x9891,0x9892,0x9893,0x9894,0x9895,0x9896,
-0xBBDF,0xBBE0,0x9897,0x9898,0xBBE1,0x9899,0x989A,0x989B,
-0xBBE2,0x989C,0x989D,0x989E,0x989F,0x98A0,0x98A1,0x98A2,
-0xBBE3,0xBBE4,0x98A3,0xBBE5,0x98A4,0xBBE6,0x98A5,0x98A6,
-0x98A7,0x98A8,0x98A9,0x98AA,0xBBE7,0xBBE8,0x98AB,0xBBE9,
-0xBBEA,0x98AC,0x98AD,0xBBEB,0xBBEC,0xBBED,0xBBEE,0x98AE,
-0x98AF,0x98B0,0x98B1,0x98B2,0xBBEF,0xBBF0,0x98B3,0xBBF1,
-0xBBF2,0xBBF3,0x98B4,0x98B5,0x98B6,0xBBF4,0x98B7,0x98B8,
-0xBBF5,0xBBF6,0x98B9,0x98BA,0xBBF7,0x98BB,0x98BC,0x98BD,
-0xBBF8,0x98BE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3,0x98C4,
-0xBBF9,0xBBFA,0x98C5,0xBBFB,0xBBFC,0xBBFD,0x98C6,0x98C7,
-0x98C8,0x98C9,0x98CA,0x98CB,0xBBFE,0xBCA1,0x98CC,0x98CD,
-0xBCA2,0x98CE,0x98CF,0x98D0,0xBCA3,0x98D1,0x98D2,0x98D3,
-0x98D4,0x98D5,0x98D6,0x98D7,0xBCA4,0xBCA5,0x98D8,0xBCA6,
-0x98D9,0xBCA7,0x98DA,0x98DB,0x98DC,0x98DD,0x98DE,0x98DF,
-0xBCA8,0x98E0,0x98E1,0x98E2,0xBCA9,0x98E3,0x98E4,0x98E5,
-0xBCAA,0x98E6,0x98E7,0x98E8,0x98E9,0x98EA,0x98EB,0x98EC,
-0xBCAB,0x98ED,0x98EE,0x98EF,0x98F0,0xBCAC,0x98F1,0x98F2,
-0x98F3,0x98F4,0x98F5,0x98F6,0xBCAD,0xBCAE,0xBCAF,0xBCB0,
-0xBCB1,0x98F7,0x98F8,0xBCB2,0xBCB3,0x98F9,0xBCB4,0xBCB5,
-0x98FA,0x98FB,0x98FC,0x98FD,0xBCB6,0xBCB7,0x98FE,0xBCB8,
-0xBCB9,0xBCBA,0x9941,0x9942,0x9943,0x9944,0xBCBB,0x9945,
-0xBCBC,0xBCBD,0x9946,0x9947,0xBCBE,0x9948,0x9949,0x994A,
-0xBCBF,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951,
-0xBCC0,0xBCC1,0x9952,0xBCC2,0xBCC3,0xBCC4,0x9953,0x9954,
-0x9955,0x9956,0x9957,0x9958,0xBCC5,0xBCC6,0x9959,0x995A,
-0xBCC7,0x9961,0x9962,0x9963,0xBCC8,0x9964,0x9965,0x9966,
-0x9967,0x9968,0x9969,0x996A,0xBCC9,0xBCCA,0x996B,0xBCCB,
-0xBCCC,0xBCCD,0x996C,0x996D,0x996E,0x996F,0x9970,0x9971,
-0xBCCE,0x9972,0x9973,0x9974,0xBCCF,0x9975,0x9976,0x9977,
-0xBCD0,0x9978,0x9979,0x997A,0x9981,0x9982,0x9983,0x9984,
-0x9985,0x9986,0x9987,0x9988,0x9989,0xBCD1,0x998A,0x998B,
-0x998C,0x998D,0x998E,0x998F,0xBCD2,0xBCD3,0xBCD4,0x9990,
-0xBCD5,0x9991,0x9992,0x9993,0xBCD6,0x9994,0xBCD7,0x9995,
-0x9996,0x9997,0x9998,0x9999,0xBCD8,0xBCD9,0x999A,0xBCDA,
-0x999B,0xBCDB,0x999C,0x999D,0x999E,0xBCDC,0x999F,0x99A0,
-0xBCDD,0xBCDE,0x99A1,0x99A2,0xBCDF,0x99A3,0x99A4,0x99A5,
-0xBCE0,0x99A6,0x99A7,0x99A8,0x99A9,0x99AA,0x99AB,0x99AC,
-0x99AD,0x99AE,0x99AF,0x99B0,0x99B1,0xBCE1,0x99B2,0x99B3,
-0x99B4,0x99B5,0x99B6,0x99B7,0xBCE2,0x99B8,0x99B9,0x99BA,
-0xBCE3,0x99BB,0x99BC,0x99BD,0xBCE4,0x99BE,0x99BF,0x99C0,
-0x99C1,0x99C2,0x99C3,0x99C4,0xBCE5,0x99C5,0x99C6,0xBCE6,
-0xBCE7,0x99C7,0x99C8,0x99C9,0x99CA,0x99CB,0x99CC,0x99CD,
-0xBCE8,0x99CE,0x99CF,0x99D0,0xBCE9,0x99D1,0x99D2,0x99D3,
-0xBCEA,0x99D4,0x99D5,0x99D6,0x99D7,0x99D8,0x99D9,0x99DA,
-0xBCEB,0xBCEC,0x99DB,0xBCED,0x99DC,0x99DD,0x99DE,0x99DF,
-0x99E0,0x99E1,0x99E2,0x99E3,0xBCEE,0xBCEF,0x99E4,0x99E5,
-0xBCF0,0x99E6,0x99E7,0x99E8,0xBCF1,0x99E9,0x99EA,0x99EB,
-0x99EC,0x99ED,0x99EE,0x99EF,0xBCF2,0xBCF3,0x99F0,0xBCF4,
-0x99F1,0xBCF5,0x99F2,0x99F3,0x99F4,0x99F5,0x99F6,0x99F7,
-0xBCF6,0xBCF7,0x99F8,0x99F9,0xBCF8,0x99FA,0x99FB,0xBCF9,
-0xBCFA,0x99FC,0x99FD,0x99FE,0x9A41,0x9A42,0x9A43,0x9A44,
-0xBCFB,0xBCFC,0x9A45,0xBCFD,0x9A46,0xBCFE,0x9A47,0xBDA1,
-0x9A48,0xBDA2,0xBDA3,0x9A49,0xBDA4,0x9A4A,0x9A4B,0x9A4C,
-0x9A4D,0x9A4E,0x9A4F,0x9A50,0x9A51,0x9A52,0x9A53,0x9A54,
-0x9A55,0x9A56,0x9A57,0x9A58,0x9A59,0x9A5A,0x9A61,0x9A62,
-0xBDA5,0x9A63,0x9A64,0x9A65,0x9A66,0x9A67,0x9A68,0x9A69,
-0xBDA6,0xBDA7,0x9A6A,0x9A6B,0xBDA8,0x9A6C,0x9A6D,0x9A6E,
-0xBDA9,0x9A6F,0x9A70,0x9A71,0x9A72,0x9A73,0x9A74,0x9A75,
-0xBDAA,0x9A76,0x9A77,0x9A78,0x9A79,0xBDAB,0x9A7A,0x9A81,
-0x9A82,0x9A83,0x9A84,0x9A85,0xBDAC,0xBDAD,0x9A86,0x9A87,
-0xBDAE,0x9A88,0x9A89,0x9A8A,0xBDAF,0x9A8B,0x9A8C,0x9A8D,
-0x9A8E,0x9A8F,0x9A90,0x9A91,0xBDB0,0xBDB1,0x9A92,0xBDB2,
-0x9A93,0xBDB3,0x9A94,0x9A95,0x9A96,0x9A97,0x9A98,0x9A99,
-0xBDB4,0xBDB5,0x9A9A,0x9A9B,0x9A9C,0x9A9D,0x9A9E,0x9A9F,
-0xBDB6,0x9AA0,0x9AA1,0x9AA2,0x9AA3,0x9AA4,0x9AA5,0x9AA6,
-0xBDB7,0x9AA7,0x9AA8,0xBDB8,0x9AA9,0xBDB9,0x9AAA,0x9AAB,
-0x9AAC,0x9AAD,0x9AAE,0x9AAF,0xBDBA,0xBDBB,0x9AB0,0x9AB1,
-0xBDBC,0x9AB2,0x9AB3,0x9AB4,0xBDBD,0xBDBE,0x9AB5,0x9AB6,
-0x9AB7,0x9AB8,0x9AB9,0x9ABA,0xBDBF,0xBDC0,0x9ABB,0xBDC1,
-0x9ABC,0xBDC2,0x9ABD,0x9ABE,0x9ABF,0x9AC0,0x9AC1,0x9AC2,
-0x9AC3,0x9AC4,0x9AC5,0x9AC6,0x9AC7,0x9AC8,0x9AC9,0x9ACA,
-0x9ACB,0x9ACC,0x9ACD,0x9ACE,0x9ACF,0x9AD0,0x9AD1,0x9AD2,
-0x9AD3,0x9AD4,0x9AD5,0x9AD6,0x9AD7,0x9AD8,0x9AD9,0x9ADA,
-0x9ADB,0x9ADC,0x9ADD,0x9ADE,0xBDC3,0xBDC4,0x9ADF,0x9AE0,
-0xBDC5,0x9AE1,0x9AE2,0xBDC6,0xBDC7,0x9AE3,0x9AE4,0x9AE5,
-0x9AE6,0x9AE7,0x9AE8,0xBDC8,0xBDC9,0xBDCA,0x9AE9,0xBDCB,
-0x9AEA,0xBDCC,0x9AEB,0x9AEC,0x9AED,0x9AEE,0xBDCD,0x9AEF,
-0xBDCE,0xBDCF,0x9AF0,0xBDD0,0xBDD1,0x9AF1,0x9AF2,0x9AF3,
-0xBDD2,0x9AF4,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AF9,0x9AFA,
-0xBDD3,0xBDD4,0x9AFB,0x9AFC,0xBDD5,0xBDD6,0x9AFD,0x9AFE,
-0x9B41,0x9B42,0x9B43,0xBDD7,0xBDD8,0xBDD9,0x9B44,0x9B45,
-0xBDDA,0x9B46,0x9B47,0x9B48,0xBDDB,0x9B49,0x9B4A,0x9B4B,
-0x9B4C,0x9B4D,0x9B4E,0x9B4F,0xBDDC,0xBDDD,0x9B50,0x9B51,
-0xBDDE,0xBDDF,0x9B52,0x9B53,0x9B54,0x9B55,0x9B56,0x9B57,
-0x9B58,0x9B59,0x9B5A,0x9B61,0x9B62,0x9B63,0x9B64,0x9B65,
-0x9B66,0x9B67,0x9B68,0x9B69,0x9B6A,0x9B6B,0x9B6C,0x9B6D,
-0x9B6E,0x9B6F,0x9B70,0x9B71,0x9B72,0xBDE0,0x9B73,0x9B74,
-0x9B75,0x9B76,0x9B77,0x9B78,0x9B79,0x9B7A,0x9B81,0x9B82,
-0x9B83,0x9B84,0x9B85,0x9B86,0x9B87,0x9B88,0x9B89,0x9B8A,
-0x9B8B,0x9B8C,0x9B8D,0x9B8E,0x9B8F,0x9B90,0x9B91,0x9B92,
-0x9B93,0x9B94,0x9B95,0x9B96,0x9B97,0x9B98,0x9B99,0x9B9A,
-0xBDE1,0xBDE2,0x9B9B,0x9B9C,0xBDE3,0x9B9D,0x9B9E,0x9B9F,
-0xBDE4,0x9BA0,0xBDE5,0x9BA1,0x9BA2,0x9BA3,0x9BA4,0x9BA5,
-0xBDE6,0xBDE7,0x9BA6,0x9BA7,0xBDE8,0xBDE9,0x9BA8,0x9BA9,
-0x9BAA,0x9BAB,0x9BAC,0x9BAD,0xBDEA,0x9BAE,0x9BAF,0x9BB0,
-0xBDEB,0x9BB1,0x9BB2,0x9BB3,0xBDEC,0x9BB4,0x9BB5,0x9BB6,
-0x9BB7,0x9BB8,0x9BB9,0x9BBA,0x9BBB,0x9BBC,0x9BBD,0x9BBE,
-0x9BBF,0x9BC0,0x9BC1,0x9BC2,0x9BC3,0x9BC4,0x9BC5,0x9BC6,
-0x9BC7,0x9BC8,0x9BC9,0x9BCA,0x9BCB,0x9BCC,0x9BCD,0x9BCE,
-0x9BCF,0x9BD0,0x9BD1,0x9BD2,0x9BD3,0x9BD4,0x9BD5,0x9BD6,
-0x9BD7,0x9BD8,0x9BD9,0x9BDA,0x9BDB,0x9BDC,0x9BDD,0x9BDE,
-0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3,0x9BE4,0x9BE5,0x9BE6,
-0xBDED,0x9BE7,0x9BE8,0x9BE9,0x9BEA,0x9BEB,0x9BEC,0x9BED,
-0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3,0x9BF4,0x9BF5,
-0x9BF6,0x9BF7,0x9BF8,0x9BF9,0x9BFA,0x9BFB,0x9BFC,0x9BFD,
-0xBDEE,0xBDEF,0x9BFE,0x9C41,0xBDF0,0x9C42,0x9C43,0xBDF1,
-0xBDF2,0x9C44,0xBDF3,0x9C45,0x9C46,0x9C47,0x9C48,0x9C49,
-0xBDF4,0xBDF5,0x9C4A,0x9C4B,0x9C4C,0xBDF6,0x9C4D,0x9C4E,
-0x9C4F,0x9C50,0x9C51,0x9C52,0xBDF7,0xBDF8,0x9C53,0x9C54,
-0xBDF9,0x9C55,0x9C56,0x9C57,0x9C58,0x9C59,0x9C5A,0x9C61,
-0x9C62,0x9C63,0x9C64,0x9C65,0x9C66,0x9C67,0x9C68,0x9C69,
-0xBDFA,0x9C6A,0x9C6B,0x9C6C,0x9C6D,0x9C6E,0x9C6F,0x9C70,
-0xBDFB,0x9C71,0x9C72,0x9C73,0x9C74,0x9C75,0x9C76,0x9C77,
-0x9C78,0x9C79,0x9C7A,0x9C81,0x9C82,0x9C83,0x9C84,0x9C85,
-0x9C86,0x9C87,0x9C88,0x9C89,0xBDFC,0x9C8A,0x9C8B,0x9C8C,
-0x9C8D,0x9C8E,0x9C8F,0x9C90,0xBDFD,0x9C91,0x9C92,0x9C93,
-0xBDFE,0x9C94,0x9C95,0x9C96,0xBEA1,0x9C97,0x9C98,0x9C99,
-0x9C9A,0x9C9B,0x9C9C,0x9C9D,0xBEA2,0xBEA3,0x9C9E,0x9C9F,
-0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA4,0x9CA5,0x9CA6,0x9CA7,
-0xBEA4,0x9CA8,0x9CA9,0x9CAA,0x9CAB,0x9CAC,0x9CAD,0x9CAE,
-0x9CAF,0x9CB0,0x9CB1,0x9CB2,0x9CB3,0x9CB4,0x9CB5,0x9CB6,
-0x9CB7,0x9CB8,0x9CB9,0x9CBA,0x9CBB,0x9CBC,0x9CBD,0x9CBE,
-0x9CBF,0x9CC0,0x9CC1,0x9CC2,0xBEA5,0xBEA6,0x9CC3,0x9CC4,
-0xBEA7,0x9CC5,0x9CC6,0x9CC7,0xBEA8,0x9CC8,0x9CC9,0x9CCA,
-0x9CCB,0x9CCC,0x9CCD,0x9CCE,0xBEA9,0xBEAA,0x9CCF,0x9CD0,
-0x9CD1,0xBEAB,0x9CD2,0x9CD3,0x9CD4,0x9CD5,0x9CD6,0x9CD7,
-0xBEAC,0x9CD8,0x9CD9,0x9CDA,0x9CDB,0x9CDC,0x9CDD,0x9CDE,
-0x9CDF,0x9CE0,0x9CE1,0x9CE2,0x9CE3,0x9CE4,0x9CE5,0x9CE6,
-0x9CE7,0x9CE8,0x9CE9,0x9CEA,0xBEAD,0x9CEB,0x9CEC,0x9CED,
-0x9CEE,0x9CEF,0x9CF0,0x9CF1,0xBEAE,0x9CF2,0x9CF3,0x9CF4,
-0x9CF5,0x9CF6,0x9CF7,0x9CF8,0x9CF9,0x9CFA,0x9CFB,0x9CFC,
-0x9CFD,0x9CFE,0x9D41,0x9D42,0x9D43,0x9D44,0x9D45,0x9D46,
-0x9D47,0x9D48,0x9D49,0x9D4A,0x9D4B,0x9D4C,0x9D4D,0x9D4E,
-0xBEAF,0x9D4F,0x9D50,0x9D51,0xBEB0,0x9D52,0x9D53,0x9D54,
-0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0x9D5A,0x9D61,0x9D62,
-0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,0x9D6A,
-0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F,0x9D70,0x9D71,0x9D72,
-0x9D73,0x9D74,0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A,
-0x9D81,0x9D82,0x9D83,0x9D84,0x9D85,0x9D86,0x9D87,0x9D88,
-0x9D89,0xBEB1,0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,
-0xBEB2,0xBEB3,0x9D90,0x9D91,0xBEB4,0x9D92,0x9D93,0x9D94,
-0xBEB5,0x9D95,0xBEB6,0x9D96,0x9D97,0x9D98,0x9D99,0xBEB7,
-0xBEB8,0xBEB9,0x9D9A,0x9D9B,0x9D9C,0x9D9D,0x9D9E,0x9D9F,
-0x9DA0,0x9DA1,0x9DA2,0x9DA3,0xBEBA,0x9DA4,0x9DA5,0x9DA6,
-0xBEBB,0x9DA7,0x9DA8,0x9DA9,0xBEBC,0x9DAA,0x9DAB,0x9DAC,
-0x9DAD,0x9DAE,0x9DAF,0x9DB0,0xBEBD,0x9DB1,0x9DB2,0x9DB3,
-0x9DB4,0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9,0x9DBA,0x9DBB,
-0xBEBE,0xBEBF,0x9DBC,0x9DBD,0xBEC0,0x9DBE,0x9DBF,0x9DC0,
-0xBEC1,0x9DC1,0x9DC2,0x9DC3,0x9DC4,0x9DC5,0x9DC6,0x9DC7,
-0xBEC2,0xBEC3,0x9DC8,0xBEC4,0x9DC9,0xBEC5,0x9DCA,0x9DCB,
-0x9DCC,0x9DCD,0x9DCE,0x9DCF,0xBEC6,0xBEC7,0x9DD0,0x9DD1,
-0xBEC8,0xBEC9,0xBECA,0x9DD2,0xBECB,0xBECC,0xBECD,0x9DD3,
-0x9DD4,0x9DD5,0x9DD6,0xBECE,0xBECF,0xBED0,0x9DD7,0xBED1,
-0xBED2,0xBED3,0x9DD8,0x9DD9,0x9DDA,0xBED4,0xBED5,0x9DDB,
-0xBED6,0xBED7,0x9DDC,0x9DDD,0xBED8,0x9DDE,0x9DDF,0x9DE0,
-0xBED9,0x9DE1,0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6,0x9DE7,
-0xBEDA,0xBEDB,0x9DE8,0xBEDC,0xBEDD,0xBEDE,0x9DE9,0x9DEA,
-0x9DEB,0x9DEC,0x9DED,0x9DEE,0xBEDF,0xBEE0,0x9DEF,0x9DF0,
-0xBEE1,0x9DF1,0x9DF2,0x9DF3,0xBEE2,0x9DF4,0x9DF5,0xBEE3,
-0x9DF6,0x9DF7,0x9DF8,0x9DF9,0xBEE4,0xBEE5,0x9DFA,0xBEE6,
-0x9DFB,0xBEE7,0x9DFC,0x9DFD,0x9DFE,0xBEE8,0x9E41,0xBEE9,
-0xBEEA,0x9E42,0x9E43,0x9E44,0xBEEB,0x9E45,0x9E46,0x9E47,
-0xBEEC,0x9E48,0x9E49,0x9E4A,0x9E4B,0x9E4C,0x9E4D,0x9E4E,
-0x9E4F,0xBEED,0x9E50,0x9E51,0x9E52,0x9E53,0x9E54,0x9E55,
-0x9E56,0x9E57,0x9E58,0x9E59,0xBEEE,0xBEEF,0x9E5A,0x9E61,
-0xBEF0,0xBEF1,0x9E62,0xBEF2,0xBEF3,0xBEF4,0xBEF5,0x9E63,
-0x9E64,0x9E65,0x9E66,0x9E67,0xBEF6,0xBEF7,0xBEF8,0xBEF9,
-0xBEFA,0xBEFB,0xBEFC,0x9E68,0xBEFD,0x9E69,0xBEFE,0x9E6A,
-0xBFA1,0xBFA2,0x9E6B,0x9E6C,0xBFA3,0x9E6D,0x9E6E,0x9E6F,
-0xBFA4,0x9E70,0x9E71,0x9E72,0x9E73,0x9E74,0x9E75,0x9E76,
-0xBFA5,0xBFA6,0x9E77,0xBFA7,0x9E78,0xBFA8,0x9E79,0x9E7A,
-0x9E81,0x9E82,0x9E83,0x9E84,0xBFA9,0xBFAA,0xBFAB,0x9E85,
-0xBFAC,0x9E86,0x9E87,0x9E88,0xBFAD,0x9E89,0xBFAE,0xBFAF,
-0x9E8A,0x9E8B,0x9E8C,0x9E8D,0xBFB0,0xBFB1,0xBFB2,0xBFB3,
-0xBFB4,0xBFB5,0x9E8E,0x9E8F,0x9E90,0xBFB6,0xBFB7,0xBFB8,
-0xBFB9,0x9E91,0x9E92,0x9E93,0xBFBA,0x9E94,0x9E95,0x9E96,
-0xBFBB,0x9E97,0x9E98,0x9E99,0x9E9A,0x9E9B,0x9E9C,0x9E9D,
-0xBFBC,0xBFBD,0x9E9E,0xBFBE,0xBFBF,0x9E9F,0x9EA0,0x9EA1,
-0x9EA2,0x9EA3,0x9EA4,0x9EA5,0xBFC0,0xBFC1,0x9EA6,0x9EA7,
-0xBFC2,0x9EA8,0x9EA9,0x9EAA,0xBFC3,0xBFC4,0xBFC5,0x9EAB,
-0xBFC6,0x9EAC,0x9EAD,0xBFC7,0xBFC8,0xBFC9,0x9EAE,0xBFCA,
-0x9EAF,0xBFCB,0x9EB0,0xBFCC,0x9EB1,0x9EB2,0x9EB3,0x9EB4,
-0xBFCD,0xBFCE,0x9EB5,0x9EB6,0xBFCF,0x9EB7,0x9EB8,0x9EB9,
-0xBFD0,0x9EBA,0x9EBB,0x9EBC,0x9EBD,0x9EBE,0x9EBF,0x9EC0,
-0xBFD1,0xBFD2,0x9EC1,0xBFD3,0xBFD4,0xBFD5,0x9EC2,0x9EC3,
-0x9EC4,0x9EC5,0x9EC6,0x9EC7,0xBFD6,0xBFD7,0x9EC8,0x9EC9,
-0xBFD8,0x9ECA,0x9ECB,0x9ECC,0x9ECD,0x9ECE,0x9ECF,0x9ED0,
-0x9ED1,0x9ED2,0x9ED3,0x9ED4,0xBFD9,0x9ED5,0x9ED6,0xBFDA,
-0x9ED7,0xBFDB,0x9ED8,0x9ED9,0x9EDA,0x9EDB,0x9EDC,0x9EDD,
-0xBFDC,0xBFDD,0x9EDE,0x9EDF,0xBFDE,0x9EE0,0x9EE1,0x9EE2,
-0xBFDF,0x9EE3,0x9EE4,0x9EE5,0x9EE6,0x9EE7,0x9EE8,0x9EE9,
-0xBFE0,0xBFE1,0x9EEA,0xBFE2,0x9EEB,0xBFE3,0x9EEC,0x9EED,
-0x9EEE,0x9EEF,0x9EF0,0x9EF1,0xBFE4,0xBFE5,0x9EF2,0x9EF3,
-0xBFE6,0x9EF4,0x9EF5,0x9EF6,0xBFE7,0x9EF7,0x9EF8,0x9EF9,
-0x9EFA,0x9EFB,0x9EFC,0x9EFD,0xBFE8,0xBFE9,0x9EFE,0xBFEA,
-0x9F41,0xBFEB,0x9F42,0x9F43,0x9F44,0x9F45,0x9F46,0x9F47,
-0xBFEC,0xBFED,0x9F48,0x9F49,0xBFEE,0x9F4A,0x9F4B,0x9F4C,
-0xBFEF,0xBFF0,0xBFF1,0x9F4D,0x9F4E,0x9F4F,0x9F50,0x9F51,
-0xBFF2,0xBFF3,0x9F52,0xBFF4,0x9F53,0xBFF5,0x9F54,0x9F55,
-0x9F56,0x9F57,0x9F58,0x9F59,0xBFF6,0xBFF7,0x9F5A,0x9F61,
-0xBFF8,0x9F62,0x9F63,0x9F64,0xBFF9,0x9F65,0x9F66,0x9F67,
-0x9F68,0x9F69,0x9F6A,0x9F6B,0xBFFA,0xBFFB,0x9F6C,0x9F6D,
-0xBFFC,0xBFFD,0x9F6E,0x9F6F,0x9F70,0x9F71,0x9F72,0x9F73,
-0xBFFE,0xC0A1,0x9F74,0x9F75,0xC0A2,0x9F76,0x9F77,0x9F78,
-0xC0A3,0x9F79,0x9F7A,0x9F81,0x9F82,0x9F83,0x9F84,0x9F85,
-0xC0A4,0xC0A5,0x9F86,0x9F87,0x9F88,0xC0A6,0x9F89,0x9F8A,
-0x9F8B,0x9F8C,0x9F8D,0x9F8E,0xC0A7,0xC0A8,0x9F8F,0x9F90,
-0xC0A9,0x9F91,0x9F92,0x9F93,0xC0AA,0x9F94,0x9F95,0x9F96,
-0x9F97,0x9F98,0x9F99,0x9F9A,0xC0AB,0xC0AC,0x9F9B,0xC0AD,
-0x9F9C,0xC0AE,0x9F9D,0x9F9E,0x9F9F,0x9FA0,0x9FA1,0x9FA2,
-0xC0AF,0xC0B0,0x9FA3,0x9FA4,0xC0B1,0x9FA5,0x9FA6,0x9FA7,
-0xC0B2,0x9FA8,0x9FA9,0x9FAA,0x9FAB,0x9FAC,0x9FAD,0x9FAE,
-0xC0B3,0xC0B4,0x9FAF,0xC0B5,0x9FB0,0xC0B6,0x9FB1,0xC0B7,
-0x9FB2,0x9FB3,0x9FB4,0x9FB5,0xC0B8,0xC0B9,0x9FB6,0x9FB7,
-0xC0BA,0x9FB8,0x9FB9,0x9FBA,0xC0BB,0x9FBB,0x9FBC,0x9FBD,
-0x9FBE,0x9FBF,0xC0BC,0x9FC0,0xC0BD,0xC0BE,0x9FC1,0xC0BF,
-0x9FC2,0xC0C0,0xC0C1,0xC0C2,0xC0C3,0xC0C4,0xC0C5,0xC0C6,
-0xC0C7,0x9FC3,0x9FC4,0x9FC5,0xC0C8,0x9FC6,0x9FC7,0x9FC8,
-0xC0C9,0x9FC9,0x9FCA,0x9FCB,0x9FCC,0x9FCD,0x9FCE,0x9FCF,
-0xC0CA,0x9FD0,0x9FD1,0xC0CB,0x9FD2,0x9FD3,0x9FD4,0x9FD5,
-0x9FD6,0x9FD7,0x9FD8,0x9FD9,0xC0CC,0xC0CD,0x9FDA,0x9FDB,
-0xC0CE,0x9FDC,0x9FDD,0x9FDE,0xC0CF,0xC0D0,0xC0D1,0x9FDF,
-0x9FE0,0x9FE1,0x9FE2,0xC0D2,0xC0D3,0xC0D4,0x9FE3,0xC0D5,
-0xC0D6,0xC0D7,0xC0D8,0x9FE4,0x9FE5,0x9FE6,0xC0D9,0x9FE7,
-0xC0DA,0xC0DB,0x9FE8,0x9FE9,0xC0DC,0x9FEA,0xC0DD,0xC0DE,
-0xC0DF,0x9FEB,0xC0E0,0x9FEC,0x9FED,0x9FEE,0x9FEF,0x9FF0,
-0xC0E1,0xC0E2,0x9FF1,0xC0E3,0xC0E4,0xC0E5,0xC0E6,0x9FF2,
-0x9FF3,0x9FF4,0x9FF5,0x9FF6,0xC0E7,0xC0E8,0x9FF7,0x9FF8,
-0xC0E9,0x9FF9,0x9FFA,0x9FFB,0xC0EA,0x9FFC,0x9FFD,0x9FFE,
-0xA041,0xA042,0xA043,0xA044,0xC0EB,0xC0EC,0xA045,0xC0ED,
-0xC0EE,0xC0EF,0xA046,0xA047,0xA048,0xA049,0xA04A,0xA04B,
-0xC0F0,0xC0F1,0xA04C,0xA04D,0xC0F2,0xA04E,0xC0F3,0xA04F,
-0xC0F4,0xA050,0xA051,0xA052,0xA053,0xA054,0xA055,0xA056,
-0xC0F5,0xA057,0xA058,0xA059,0xA05A,0xC0F6,0xA061,0xA062,
-0xA063,0xA064,0xA065,0xA066,0xC0F7,0xA067,0xA068,0xA069,
-0xC0F8,0xA06A,0xA06B,0xA06C,0xC0F9,0xA06D,0xA06E,0xA06F,
-0xA070,0xA071,0xA072,0xA073,0xA074,0xA075,0xA076,0xA077,
-0xA078,0xA079,0xA07A,0xA081,0xA082,0xA083,0xA084,0xA085,
-0xC0FA,0xC0FB,0xA086,0xA087,0xC0FC,0xA088,0xA089,0xA08A,
-0xC0FD,0xA08B,0xC0FE,0xA08C,0xA08D,0xA08E,0xA08F,0xA090,
-0xC1A1,0xC1A2,0xA091,0xC1A3,0xA092,0xC1A4,0xC1A5,0xA093,
-0xA094,0xA095,0xA096,0xA097,0xC1A6,0xC1A7,0xA098,0xA099,
-0xC1A8,0xA09A,0xA09B,0xA09C,0xC1A9,0xA09D,0xA09E,0xA09F,
-0xA0A0,0xA0A1,0xA0A2,0xA0A3,0xC1AA,0xC1AB,0xA0A4,0xC1AC,
-0xA0A5,0xC1AD,0xA0A6,0xA0A7,0xA0A8,0xA0A9,0xA0AA,0xA0AB,
-0xC1AE,0xA0AC,0xA0AD,0xA0AE,0xC1AF,0xA0AF,0xA0B0,0xA0B1,
-0xC1B0,0xA0B2,0xA0B3,0xA0B4,0xA0B5,0xA0B6,0xA0B7,0xA0B8,
-0xC1B1,0xC1B2,0xA0B9,0xA0BA,0xC1B3,0xC1B4,0xA0BB,0xA0BC,
-0xA0BD,0xA0BE,0xA0BF,0xA0C0,0xC1B5,0xA0C1,0xA0C2,0xA0C3,
-0xA0C4,0xA0C5,0xA0C6,0xA0C7,0xA0C8,0xA0C9,0xA0CA,0xA0CB,
-0xA0CC,0xA0CD,0xA0CE,0xA0CF,0xA0D0,0xA0D1,0xA0D2,0xA0D3,
-0xA0D4,0xA0D5,0xA0D6,0xA0D7,0xA0D8,0xA0D9,0xA0DA,0xA0DB,
-0xC1B6,0xC1B7,0xA0DC,0xA0DD,0xC1B8,0xA0DE,0xA0DF,0xA0E0,
-0xC1B9,0xA0E1,0xC1BA,0xA0E2,0xA0E3,0xA0E4,0xA0E5,0xA0E6,
-0xC1BB,0xC1BC,0xA0E7,0xC1BD,0xA0E8,0xC1BE,0xC1BF,0xC1C0,
-0xA0E9,0xA0EA,0xA0EB,0xC1C1,0xC1C2,0xC1C3,0xA0EC,0xA0ED,
-0xA0EE,0xA0EF,0xA0F0,0xA0F1,0xC1C4,0xA0F2,0xA0F3,0xA0F4,
-0xA0F5,0xA0F6,0xA0F7,0xA0F8,0xA0F9,0xC1C5,0xA0FA,0xC1C6,
-0xA0FB,0xC1C7,0xA0FC,0xA0FD,0xA0FE,0xA141,0xA142,0xA143,
-0xC1C8,0xA144,0xA145,0xA146,0xA147,0xA148,0xA149,0xA14A,
-0xA14B,0xA14C,0xA14D,0xA14E,0xA14F,0xA150,0xA151,0xA152,
-0xA153,0xA154,0xA155,0xA156,0xC1C9,0xC1CA,0xA157,0xA158,
-0xA159,0xA15A,0xA161,0xA162,0xC1CB,0xA163,0xA164,0xA165,
-0xC1CC,0xA166,0xA167,0xA168,0xC1CD,0xA169,0xA16A,0xA16B,
-0xA16C,0xA16D,0xA16E,0xA16F,0xC1CE,0xC1CF,0xA170,0xC1D0,
-0xA171,0xC1D1,0xA172,0xA173,0xA174,0xA175,0xA176,0xA177,
-0xC1D2,0xC1D3,0xA178,0xA179,0xC1D4,0xA17A,0xA181,0xA182,
-0xA183,0xA184,0xA185,0xA186,0xA187,0xA188,0xA189,0xA18A,
-0xA18B,0xA18C,0xA18D,0xA18E,0xA18F,0xC1D5,0xA190,0xA191,
-0xA192,0xA193,0xA194,0xA195,0xC1D6,0xC1D7,0xA196,0xA197,
-0xC1D8,0xA198,0xA199,0xA19A,0xC1D9,0xC1DA,0xC1DB,0xA19B,
-0xA19C,0xA19D,0xA19E,0xA19F,0xC1DC,0xC1DD,0xA1A0,0xC1DE,
-0xA241,0xC1DF,0xA242,0xA243,0xA244,0xA245,0xA246,0xA247,
-0xC1E0,0xA248,0xA249,0xA24A,0xA24B,0xA24C,0xA24D,0xA24E,
-0xA24F,0xA250,0xA251,0xA252,0xA253,0xA254,0xA255,0xA256,
-0xA257,0xA258,0xA259,0xA25A,0xC1E1,0xA261,0xA262,0xA263,
-0xA264,0xA265,0xA266,0xA267,0xC1E2,0xA268,0xA269,0xA26A,
-0xA26B,0xA26C,0xA26D,0xA26E,0xA26F,0xA270,0xA271,0xA272,
-0xA273,0xA274,0xA275,0xA276,0xA277,0xA278,0xA279,0xA27A,
-0xA281,0xA282,0xA283,0xA284,0xA285,0xA286,0xA287,0xA288,
-0xC1E3,0xC1E4,0xA289,0xA28A,0xC1E5,0xA28B,0xA28C,0xA28D,
-0xC1E6,0xA28E,0xA28F,0xA290,0xA291,0xA292,0xA293,0xA294,
-0xC1E7,0xC1E8,0xA295,0xC1E9,0xA296,0xA297,0xA298,0xA299,
-0xA29A,0xA29B,0xA29C,0xA29D,0xC1EA,0xA29E,0xA29F,0xA2A0,
-0xC1EB,0xA341,0xA342,0xA343,0xC1EC,0xA344,0xA345,0xA346,
-0xA347,0xA348,0xA349,0xA34A,0xC1ED,0xA34B,0xA34C,0xA34D,
-0xA34E,0xA34F,0xA350,0xA351,0xA352,0xA353,0xA354,0xA355,
-0xC1EE,0xC1EF,0xA356,0xA357,0xC1F0,0xA358,0xA359,0xA35A,
-0xC1F1,0xA361,0xA362,0xA363,0xA364,0xA365,0xA366,0xA367,
-0xC1F2,0xC1F3,0xA368,0xC1F4,0xA369,0xC1F5,0xA36A,0xA36B,
-0xA36C,0xA36D,0xA36E,0xA36F,0xA370,0xA371,0xA372,0xA373,
-0xA374,0xA375,0xA376,0xA377,0xA378,0xA379,0xA37A,0xA381,
-0xA382,0xA383,0xA384,0xA385,0xA386,0xA387,0xA388,0xA389,
-0xA38A,0xA38B,0xA38C,0xA38D,0xA38E,0xA38F,0xA390,0xA391,
-0xC1F6,0xC1F7,0xA392,0xA393,0xC1F8,0xA394,0xA395,0xC1F9,
-0xC1FA,0xA396,0xC1FB,0xA397,0xA398,0xA399,0xA39A,0xA39B,
-0xC1FC,0xC1FD,0xA39C,0xC1FE,0xA39D,0xC2A1,0xC2A2,0xA39E,
-0xA39F,0xC2A3,0xC2A4,0xA3A0,0xC2A5,0xC2A6,0xA441,0xA442,
-0xC2A7,0xA443,0xC2A8,0xA444,0xC2A9,0xA445,0xA446,0xC2AA,
-0xA447,0xA448,0xA449,0xA44A,0xC2AB,0xC2AC,0xA44B,0xC2AD,
-0xC2AE,0xC2AF,0xA44C,0xA44D,0xA44E,0xA44F,0xA450,0xA451,
-0xC2B0,0xC2B1,0xA452,0xA453,0xC2B2,0xA454,0xA455,0xA456,
-0xC2B3,0xA457,0xA458,0xA459,0xA45A,0xA461,0xA462,0xA463,
-0xC2B4,0xC2B5,0xA464,0xC2B6,0xC2B7,0xC2B8,0xA465,0xA466,
-0xA467,0xA468,0xA469,0xA46A,0xC2B9,0xA46B,0xA46C,0xA46D,
-0xC2BA,0xA46E,0xA46F,0xA470,0xA471,0xA472,0xA473,0xA474,
-0xA475,0xA476,0xA477,0xA478,0xA479,0xA47A,0xA481,0xA482,
-0xA483,0xC2BB,0xA484,0xA485,0xA486,0xA487,0xA488,0xA489,
-0xA48A,0xA48B,0xA48C,0xA48D,0xA48E,0xA48F,0xA490,0xA491,
-0xA492,0xA493,0xA494,0xA495,0xA496,0xA497,0xA498,0xA499,
-0xA49A,0xA49B,0xA49C,0xA49D,0xA49E,0xA49F,0xA4A0,0xA541,
-0xA542,0xA543,0xA544,0xA545,0xC2BC,0xC2BD,0xA546,0xA547,
-0xC2BE,0xA548,0xA549,0xA54A,0xC2BF,0xA54B,0xA54C,0xA54D,
-0xA54E,0xA54F,0xA550,0xA551,0xC2C0,0xC2C1,0xA552,0xC2C2,
-0xC2C3,0xC2C4,0xA553,0xA554,0xA555,0xA556,0xA557,0xA558,
-0xC2C5,0xA559,0xA55A,0xA561,0xA562,0xA563,0xA564,0xA565,
-0xA566,0xA567,0xA568,0xA569,0xA56A,0xA56B,0xA56C,0xA56D,
-0xA56E,0xA56F,0xA570,0xA571,0xA572,0xC2C6,0xA573,0xA574,
-0xA575,0xA576,0xA577,0xA578,0xC2C7,0xA579,0xA57A,0xA581,
-0xA582,0xA583,0xA584,0xA585,0xA586,0xA587,0xA588,0xA589,
-0xA58A,0xA58B,0xA58C,0xA58D,0xA58E,0xA58F,0xA590,0xA591,
-0xC2C8,0xA592,0xA593,0xA594,0xA595,0xA596,0xA597,0xA598,
-0xA599,0xA59A,0xA59B,0xA59C,0xA59D,0xA59E,0xA59F,0xA5A0,
-0xA641,0xA642,0xA643,0xA644,0xA645,0xA646,0xA647,0xA648,
-0xA649,0xA64A,0xA64B,0xA64C,0xA64D,0xA64E,0xA64F,0xA650,
-0xA651,0xA652,0xA653,0xA654,0xC2C9,0xC2CA,0xA655,0xA656,
-0xC2CB,0xA657,0xA658,0xA659,0xC2CC,0xA65A,0xA661,0xA662,
-0xA663,0xA664,0xA665,0xA666,0xC2CD,0xC2CE,0xA667,0xC2CF,
-0xA668,0xC2D0,0xA669,0xC2D1,0xA66A,0xA66B,0xA66C,0xA66D,
-0xC2D2,0xC2D3,0xA66E,0xA66F,0xA670,0xA671,0xA672,0xA673,
-0xC2D4,0xA674,0xA675,0xA676,0xA677,0xA678,0xA679,0xA67A,
-0xA681,0xA682,0xA683,0xA684,0xC2D5,0xA685,0xA686,0xA687,
-0xA688,0xA689,0xA68A,0xA68B,0xC2D6,0xA68C,0xA68D,0xA68E,
-0xA68F,0xA690,0xA691,0xA692,0xA693,0xA694,0xA695,0xA696,
-0xA697,0xA698,0xA699,0xA69A,0xA69B,0xA69C,0xA69D,0xA69E,
-0xC2D7,0xA69F,0xA6A0,0xA741,0xA742,0xA743,0xA744,0xA745,
-0xC2D8,0xA746,0xA747,0xA748,0xC2D9,0xA749,0xA74A,0xA74B,
-0xC2DA,0xA74C,0xA74D,0xA74E,0xA74F,0xA750,0xA751,0xA752,
-0xC2DB,0xC2DC,0xA753,0xA754,0xA755,0xA756,0xA757,0xA758,
-0xA759,0xA75A,0xA761,0xA762,0xA763,0xA764,0xA765,0xA766,
-0xA767,0xA768,0xA769,0xA76A,0xA76B,0xA76C,0xA76D,0xA76E,
-0xA76F,0xA770,0xA771,0xA772,0xA773,0xA774,0xA775,0xA776,
-0xA777,0xC2DD,0xA778,0xA779,0xA77A,0xA781,0xA782,0xA783,
-0xC2DE,0xC2DF,0xA784,0xA785,0xC2E0,0xA786,0xA787,0xA788,
-0xC2E1,0xA789,0xA78A,0xA78B,0xA78C,0xA78D,0xA78E,0xA78F,
-0xC2E2,0xC2E3,0xA790,0xA791,0xA792,0xC2E4,0xA793,0xA794,
-0xA795,0xA796,0xA797,0xA798,0xC2E5,0xA799,0xA79A,0xA79B,
-0xA79C,0xA79D,0xA79E,0xA79F,0xA7A0,0xA841,0xA842,0xA843,
-0xA844,0xA845,0xA846,0xA847,0xA848,0xA849,0xA84A,0xA84B,
-0xC2E6,0xC2E7,0xA84C,0xA84D,0xA84E,0xA84F,0xA850,0xA851,
-0xA852,0xA853,0xA854,0xA855,0xA856,0xA857,0xA858,0xA859,
-0xA85A,0xA861,0xA862,0xA863,0xA864,0xA865,0xA866,0xA867,
-0xA868,0xA869,0xA86A,0xA86B,0xA86C,0xA86D,0xA86E,0xA86F,
-0xA870,0xA871,0xA872,0xA873,0xC2E8,0xA874,0xA875,0xA876,
-0xA877,0xA878,0xA879,0xA87A,0xA881,0xA882,0xA883,0xA884,
-0xA885,0xA886,0xA887,0xA888,0xA889,0xA88A,0xA88B,0xA88C,
-0xA88D,0xA88E,0xA88F,0xA890,0xA891,0xA892,0xA893,0xA894,
-0xC2E9,0xA895,0xA896,0xA897,0xA898,0xA899,0xA89A,0xA89B,
-0xA89C,0xA89D,0xA89E,0xA89F,0xA8A0,0xA941,0xA942,0xA943,
-0xA944,0xA945,0xA946,0xA947,0xA948,0xA949,0xA94A,0xA94B,
-0xA94C,0xA94D,0xA94E,0xA94F,0xC2EA,0xA950,0xA951,0xA952,
-0xA953,0xA954,0xA955,0xA956,0xA957,0xA958,0xA959,0xA95A,
-0xA961,0xA962,0xA963,0xA964,0xC2EB,0xA965,0xA966,0xC2EC,
-0xA967,0xC2ED,0xA968,0xA969,0xA96A,0xA96B,0xA96C,0xA96D,
-0xA96E,0xA96F,0xA970,0xA971,0xA972,0xA973,0xA974,0xA975,
-0xA976,0xA977,0xA978,0xA979,0xA97A,0xA981,0xA982,0xA983,
-0xA984,0xA985,0xA986,0xA987,0xA988,0xA989,0xA98A,0xA98B,
-0xA98C,0xA98D,0xA98E,0xA98F,0xC2EE,0xC2EF,0xA990,0xA991,
-0xC2F0,0xA992,0xA993,0xA994,0xC2F1,0xA995,0xA996,0xA997,
-0xA998,0xA999,0xA99A,0xA99B,0xC2F2,0xC2F3,0xA99C,0xA99D,
-0xA99E,0xC2F4,0xC2F5,0xA99F,0xA9A0,0xAA41,0xAA42,0xC2F6,
-0xC2F7,0xC2F8,0xAA43,0xAA44,0xC2F9,0xAA45,0xC2FA,0xAA46,
-0xC2FB,0xAA47,0xAA48,0xAA49,0xAA4A,0xAA4B,0xAA4C,0xAA4D,
-0xC2FC,0xC2FD,0xAA4E,0xC2FE,0xC3A1,0xC3A2,0xC3A3,0xAA4F,
-0xAA50,0xAA51,0xAA52,0xAA53,0xC3A4,0xC3A5,0xAA54,0xAA55,
-0xC3A6,0xAA56,0xAA57,0xAA58,0xC3A7,0xAA59,0xAA5A,0xAA61,
-0xAA62,0xAA63,0xAA64,0xAA65,0xC3A8,0xC3A9,0xAA66,0xC3AA,
-0xC3AB,0xC3AC,0xAA67,0xAA68,0xAA69,0xAA6A,0xAA6B,0xAA6C,
-0xC3AD,0xAA6D,0xAA6E,0xAA6F,0xC3AE,0xAA70,0xC3AF,0xAA71,
-0xC3B0,0xAA72,0xAA73,0xAA74,0xAA75,0xAA76,0xAA77,0xAA78,
-0xC3B1,0xAA79,0xAA7A,0xAA81,0xAA82,0xC3B2,0xAA83,0xAA84,
-0xAA85,0xAA86,0xAA87,0xAA88,0xAA89,0xAA8A,0xAA8B,0xAA8C,
-0xAA8D,0xAA8E,0xAA8F,0xAA90,0xAA91,0xAA92,0xAA93,0xAA94,
-0xAA95,0xAA96,0xAA97,0xAA98,0xAA99,0xAA9A,0xAA9B,0xAA9C,
-0xAA9D,0xAA9E,0xAA9F,0xAAA0,0xAB41,0xAB42,0xAB43,0xAB44,
-0xC3B3,0xC3B4,0xAB45,0xAB46,0xC3B5,0xAB47,0xAB48,0xAB49,
-0xC3B6,0xAB4A,0xAB4B,0xAB4C,0xAB4D,0xAB4E,0xAB4F,0xAB50,
-0xC3B7,0xC3B8,0xAB51,0xC3B9,0xC3BA,0xC3BB,0xAB52,0xAB53,
-0xAB54,0xAB55,0xAB56,0xAB57,0xC3BC,0xC3BD,0xAB58,0xAB59,
-0xC3BE,0xAB5A,0xAB61,0xAB62,0xC3BF,0xAB63,0xAB64,0xAB65,
-0xAB66,0xAB67,0xAB68,0xAB69,0xC3C0,0xC3C1,0xAB6A,0xC3C2,
-0xAB6B,0xC3C3,0xAB6C,0xAB6D,0xAB6E,0xAB6F,0xAB70,0xAB71,
-0xC3C4,0xAB72,0xAB73,0xAB74,0xC3C5,0xAB75,0xAB76,0xAB77,
-0xAB78,0xAB79,0xAB7A,0xAB81,0xAB82,0xAB83,0xAB84,0xAB85,
-0xAB86,0xAB87,0xAB88,0xAB89,0xC3C6,0xAB8A,0xAB8B,0xAB8C,
-0xAB8D,0xAB8E,0xAB8F,0xAB90,0xC3C7,0xAB91,0xAB92,0xAB93,
-0xC3C8,0xAB94,0xAB95,0xAB96,0xAB97,0xAB98,0xAB99,0xAB9A,
-0xAB9B,0xAB9C,0xAB9D,0xAB9E,0xAB9F,0xABA0,0xAC41,0xAC42,
-0xAC43,0xC3C9,0xAC44,0xAC45,0xAC46,0xAC47,0xAC48,0xAC49,
-0xC3CA,0xC3CB,0xAC4A,0xAC4B,0xC3CC,0xAC4C,0xAC4D,0xAC4E,
-0xC3CD,0xAC4F,0xAC50,0xAC51,0xAC52,0xAC53,0xAC54,0xAC55,
-0xC3CE,0xC3CF,0xAC56,0xC3D0,0xAC57,0xC3D1,0xAC58,0xAC59,
-0xAC5A,0xAC61,0xAC62,0xAC63,0xC3D2,0xAC64,0xAC65,0xAC66,
-0xC3D3,0xAC67,0xAC68,0xAC69,0xC3D4,0xAC6A,0xAC6B,0xAC6C,
-0xAC6D,0xAC6E,0xAC6F,0xAC70,0xAC71,0xAC72,0xAC73,0xAC74,
-0xAC75,0xC3D5,0xAC76,0xAC77,0xAC78,0xAC79,0xAC7A,0xAC81,
-0xAC82,0xAC83,0xAC84,0xAC85,0xAC86,0xAC87,0xAC88,0xAC89,
-0xAC8A,0xAC8B,0xAC8C,0xAC8D,0xAC8E,0xAC8F,0xAC90,0xAC91,
-0xAC92,0xAC93,0xAC94,0xAC95,0xAC96,0xAC97,0xAC98,0xAC99,
-0xAC9A,0xAC9B,0xAC9C,0xAC9D,0xC3D6,0xAC9E,0xAC9F,0xACA0,
-0xC3D7,0xAD41,0xAD42,0xAD43,0xC3D8,0xAD44,0xAD45,0xAD46,
-0xAD47,0xAD48,0xAD49,0xAD4A,0xC3D9,0xC3DA,0xAD4B,0xC3DB,
-0xAD4C,0xC3DC,0xAD4D,0xAD4E,0xAD4F,0xAD50,0xAD51,0xAD52,
-0xC3DD,0xAD53,0xAD54,0xAD55,0xAD56,0xAD57,0xAD58,0xAD59,
-0xAD5A,0xAD61,0xAD62,0xAD63,0xAD64,0xAD65,0xAD66,0xAD67,
-0xC3DE,0xAD68,0xAD69,0xAD6A,0xAD6B,0xAD6C,0xAD6D,0xAD6E,
-0xAD6F,0xAD70,0xAD71,0xAD72,0xC3DF,0xC3E0,0xAD73,0xAD74,
-0xC3E1,0xAD75,0xAD76,0xAD77,0xC3E2,0xAD78,0xAD79,0xAD7A,
-0xAD81,0xAD82,0xAD83,0xAD84,0xC3E3,0xC3E4,0xAD85,0xC3E5,
-0xAD86,0xC3E6,0xAD87,0xAD88,0xAD89,0xAD8A,0xAD8B,0xAD8C,
-0xC3E7,0xAD8D,0xAD8E,0xAD8F,0xAD90,0xAD91,0xAD92,0xAD93,
-0xAD94,0xAD95,0xAD96,0xAD97,0xAD98,0xAD99,0xAD9A,0xAD9B,
-0xAD9C,0xAD9D,0xAD9E,0xAD9F,0xC3E8,0xADA0,0xAE41,0xAE42,
-0xAE43,0xAE44,0xAE45,0xAE46,0xC3E9,0xAE47,0xAE48,0xAE49,
-0xC3EA,0xAE4A,0xAE4B,0xAE4C,0xAE4D,0xAE4E,0xAE4F,0xAE50,
-0xAE51,0xAE52,0xAE53,0xAE54,0xAE55,0xAE56,0xAE57,0xAE58,
-0xAE59,0xAE5A,0xAE61,0xAE62,0xAE63,0xAE64,0xAE65,0xAE66,
-0xC3EB,0xAE67,0xAE68,0xAE69,0xC3EC,0xAE6A,0xAE6B,0xAE6C,
-0xC3ED,0xAE6D,0xAE6E,0xAE6F,0xAE70,0xAE71,0xAE72,0xAE73,
-0xC3EE,0xC3EF,0xAE74,0xC3F0,0xAE75,0xC3F1,0xAE76,0xAE77,
-0xAE78,0xAE79,0xAE7A,0xAE81,0xC3F2,0xAE82,0xAE83,0xAE84,
-0xC3F3,0xAE85,0xAE86,0xAE87,0xC3F4,0xAE88,0xAE89,0xAE8A,
-0xAE8B,0xAE8C,0xAE8D,0xAE8E,0xC3F5,0xAE8F,0xAE90,0xAE91,
-0xAE92,0xC3F6,0xAE93,0xAE94,0xAE95,0xAE96,0xAE97,0xAE98,
-0xC3F7,0xC3F8,0xAE99,0xAE9A,0xC3F9,0xAE9B,0xAE9C,0xAE9D,
-0xC3FA,0xAE9E,0xAE9F,0xAEA0,0xAF41,0xAF42,0xAF43,0xAF44,
-0xC3FB,0xC3FC,0xAF45,0xC3FD,0xAF46,0xC3FE,0xAF47,0xAF48,
-0xAF49,0xAF4A,0xAF4B,0xAF4C,0xAF4D,0xAF4E,0xAF4F,0xAF50,
-0xAF51,0xAF52,0xAF53,0xAF54,0xAF55,0xAF56,0xAF57,0xAF58,
-0xAF59,0xAF5A,0xAF61,0xAF62,0xAF63,0xAF64,0xAF65,0xAF66,
-0xAF67,0xAF68,0xAF69,0xAF6A,0xAF6B,0xAF6C,0xAF6D,0xAF6E,
-0xC4A1,0xC4A2,0xAF6F,0xAF70,0xC4A3,0xAF71,0xAF72,0xC4A4,
-0xC4A5,0xC4A6,0xAF73,0xAF74,0xAF75,0xAF76,0xAF77,0xAF78,
-0xC4A7,0xC4A8,0xAF79,0xC4A9,0xAF7A,0xC4AA,0xAF81,0xAF82,
-0xAF83,0xAF84,0xAF85,0xAF86,0xC4AB,0xC4AC,0xAF87,0xAF88,
-0xC4AD,0xAF89,0xAF8A,0xAF8B,0xC4AE,0xAF8C,0xAF8D,0xAF8E,
-0xAF8F,0xAF90,0xAF91,0xAF92,0xC4AF,0xC4B0,0xAF93,0xC4B1,
-0xAF94,0xC4B2,0xAF95,0xAF96,0xAF97,0xAF98,0xAF99,0xAF9A,
-0xC4B3,0xC4B4,0xAF9B,0xAF9C,0xC4B5,0xAF9D,0xAF9E,0xAF9F,
-0xC4B6,0xAFA0,0xB041,0xB042,0xB043,0xB044,0xB045,0xB046,
-0xC4B7,0xC4B8,0xB047,0xC4B9,0xC4BA,0xC4BB,0xB048,0xB049,
-0xB04A,0xB04B,0xB04C,0xB04D,0xC4BC,0xC4BD,0xB04E,0xB04F,
-0xB050,0xB051,0xB052,0xB053,0xB054,0xB055,0xB056,0xB057,
-0xB058,0xB059,0xB05A,0xB061,0xB062,0xB063,0xB064,0xB065,
-0xB066,0xC4BE,0xB067,0xB068,0xB069,0xB06A,0xB06B,0xB06C,
-0xB06D,0xB06E,0xB06F,0xB070,0xB071,0xB072,0xB073,0xB074,
-0xB075,0xB076,0xB077,0xB078,0xB079,0xB07A,0xB081,0xB082,
-0xB083,0xB084,0xB085,0xB086,0xB087,0xB088,0xB089,0xB08A,
-0xB08B,0xB08C,0xB08D,0xB08E,0xC4BF,0xC4C0,0xB08F,0xB090,
-0xC4C1,0xB091,0xB092,0xC4C2,0xC4C3,0xB093,0xB094,0xB095,
-0xB096,0xB097,0xB098,0xB099,0xC4C4,0xC4C5,0xB09A,0xC4C6,
-0xC4C7,0xC4C8,0xB09B,0xB09C,0xB09D,0xB09E,0xB09F,0xB0A0,
-0xC4C9,0xC4CA,0xB141,0xB142,0xC4CB,0xB143,0xB144,0xB145,
-0xC4CC,0xB146,0xB147,0xB148,0xB149,0xB14A,0xB14B,0xB14C,
-0xC4CD,0xC4CE,0xB14D,0xC4CF,0xB14E,0xC4D0,0xB14F,0xB150,
-0xB151,0xB152,0xB153,0xB154,0xC4D1,0xB155,0xB156,0xB157,
-0xC4D2,0xB158,0xB159,0xB15A,0xC4D3,0xB161,0xB162,0xB163,
-0xB164,0xB165,0xB166,0xB167,0xC4D4,0xC4D5,0xB168,0xC4D6,
-0xC4D7,0xC4D8,0xB169,0xB16A,0xB16B,0xB16C,0xB16D,0xB16E,
-0xC4D9,0xB16F,0xB170,0xB171,0xB172,0xB173,0xB174,0xB175,
-0xB176,0xB177,0xB178,0xB179,0xB17A,0xB181,0xB182,0xB183,
-0xB184,0xB185,0xB186,0xB187,0xB188,0xB189,0xB18A,0xB18B,
-0xB18C,0xB18D,0xB18E,0xB18F,0xC4DA,0xC4DB,0xB190,0xB191,
-0xC4DC,0xB192,0xB193,0xB194,0xC4DD,0xB195,0xB196,0xB197,
-0xB198,0xB199,0xB19A,0xB19B,0xC4DE,0xC4DF,0xB19C,0xC4E0,
-0xB19D,0xC4E1,0xB19E,0xB19F,0xB1A0,0xB241,0xB242,0xB243,
-0xC4E2,0xC4E3,0xB244,0xB245,0xC4E4,0xB246,0xB247,0xB248,
-0xC4E5,0xB249,0xB24A,0xB24B,0xB24C,0xB24D,0xB24E,0xB24F,
-0xC4E6,0xB250,0xB251,0xB252,0xB253,0xC4E7,0xB254,0xB255,
-0xB256,0xB257,0xB258,0xB259,0xC4E8,0xB25A,0xB261,0xB262,
-0xB263,0xB264,0xB265,0xB266,0xB267,0xB268,0xB269,0xB26A,
-0xB26B,0xB26C,0xB26D,0xB26E,0xB26F,0xB270,0xB271,0xB272,
-0xB273,0xC4E9,0xB274,0xB275,0xB276,0xB277,0xB278,0xB279,
-0xC4EA,0xB27A,0xB281,0xB282,0xB283,0xB284,0xB285,0xB286,
-0xC4EB,0xB287,0xB288,0xB289,0xB28A,0xB28B,0xB28C,0xB28D,
-0xB28E,0xB28F,0xB290,0xB291,0xB292,0xB293,0xB294,0xB295,
-0xB296,0xB297,0xB298,0xB299,0xC4EC,0xB29A,0xB29B,0xB29C,
-0xB29D,0xB29E,0xB29F,0xB2A0,0xB341,0xB342,0xB343,0xB344,
-0xB345,0xB346,0xB347,0xB348,0xB349,0xB34A,0xB34B,0xB34C,
-0xB34D,0xB34E,0xB34F,0xB350,0xB351,0xB352,0xB353,0xB354,
-0xC4ED,0xC4EE,0xB355,0xB356,0xC4EF,0xB357,0xB358,0xB359,
-0xC4F0,0xB35A,0xB361,0xB362,0xB363,0xB364,0xB365,0xB366,
-0xC4F1,0xC4F2,0xB367,0xC4F3,0xB368,0xC4F4,0xB369,0xB36A,
-0xB36B,0xB36C,0xB36D,0xB36E,0xC4F5,0xB36F,0xB370,0xB371,
-0xC4F6,0xB372,0xB373,0xB374,0xC4F7,0xB375,0xB376,0xB377,
-0xB378,0xB379,0xB37A,0xB381,0xB382,0xB383,0xB384,0xB385,
-0xB386,0xC4F8,0xB387,0xB388,0xB389,0xB38A,0xB38B,0xB38C,
-0xC4F9,0xB38D,0xB38E,0xB38F,0xB390,0xB391,0xB392,0xB393,
-0xB394,0xB395,0xB396,0xB397,0xB398,0xB399,0xB39A,0xB39B,
-0xB39C,0xB39D,0xB39E,0xB39F,0xB3A0,0xC4FA,0xB441,0xB442,
-0xB443,0xB444,0xB445,0xB446,0xC4FB,0xC4FC,0xB447,0xB448,
-0xC4FD,0xB449,0xB44A,0xB44B,0xC4FE,0xB44C,0xB44D,0xB44E,
-0xB44F,0xB450,0xB451,0xB452,0xC5A1,0xC5A2,0xB453,0xC5A3,
-0xB454,0xC5A4,0xB455,0xB456,0xB457,0xB458,0xB459,0xB45A,
-0xC5A5,0xB461,0xB462,0xB463,0xC5A6,0xB464,0xB465,0xB466,
-0xC5A7,0xB467,0xB468,0xB469,0xB46A,0xB46B,0xB46C,0xB46D,
-0xC5A8,0xB46E,0xB46F,0xB470,0xB471,0xB472,0xB473,0xB474,
-0xB475,0xB476,0xB477,0xB478,0xC5A9,0xC5AA,0xB479,0xB47A,
-0xC5AB,0xB481,0xB482,0xB483,0xC5AC,0xB484,0xB485,0xB486,
-0xB487,0xB488,0xB489,0xB48A,0xC5AD,0xC5AE,0xB48B,0xB48C,
-0xB48D,0xC5AF,0xB48E,0xB48F,0xB490,0xB491,0xB492,0xB493,
-0xB494,0xB495,0xB496,0xB497,0xB498,0xB499,0xB49A,0xB49B,
-0xB49C,0xB49D,0xB49E,0xB49F,0xB4A0,0xB541,0xB542,0xB543,
-0xB544,0xB545,0xB546,0xB547,0xB548,0xB549,0xB54A,0xB54B,
-0xB54C,0xB54D,0xB54E,0xB54F,0xC5B0,0xC5B1,0xB550,0xB551,
-0xC5B2,0xB552,0xB553,0xB554,0xC5B3,0xB555,0xB556,0xB557,
-0xB558,0xB559,0xB55A,0xB561,0xC5B4,0xC5B5,0xB562,0xC5B6,
-0xB563,0xC5B7,0xB564,0xB565,0xB566,0xB567,0xB568,0xB569,
-0xC5B8,0xC5B9,0xB56A,0xB56B,0xC5BA,0xB56C,0xB56D,0xB56E,
-0xC5BB,0xC5BC,0xB56F,0xB570,0xB571,0xB572,0xB573,0xB574,
-0xC5BD,0xC5BE,0xB575,0xC5BF,0xC5C0,0xC5C1,0xB576,0xB577,
-0xB578,0xB579,0xB57A,0xB581,0xC5C2,0xC5C3,0xB582,0xB583,
-0xC5C4,0xB584,0xB585,0xB586,0xC5C5,0xB587,0xB588,0xB589,
-0xB58A,0xB58B,0xB58C,0xB58D,0xC5C6,0xC5C7,0xB58E,0xC5C8,
-0xC5C9,0xC5CA,0xB58F,0xB590,0xB591,0xB592,0xB593,0xB594,
-0xC5CB,0xB595,0xB596,0xB597,0xB598,0xB599,0xB59A,0xB59B,
-0xB59C,0xB59D,0xB59E,0xB59F,0xB5A0,0xB641,0xB642,0xB643,
-0xB644,0xB645,0xB646,0xB647,0xB648,0xC5CC,0xB649,0xB64A,
-0xB64B,0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652,
-0xB653,0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A,
-0xB661,0xB662,0xB663,0xB664,0xB665,0xB666,0xB667,0xB668,
-0xB669,0xB66A,0xB66B,0xB66C,0xB66D,0xB66E,0xB66F,0xB670,
-0xC5CD,0xC5CE,0xB671,0xB672,0xC5CF,0xB673,0xB674,0xB675,
-0xC5D0,0xB676,0xC5D1,0xB677,0xB678,0xB679,0xB67A,0xB681,
-0xC5D2,0xC5D3,0xB682,0xC5D4,0xC5D5,0xC5D6,0xB683,0xB684,
-0xB685,0xB686,0xB687,0xB688,0xC5D7,0xC5D8,0xB689,0xB68A,
-0xC5D9,0xB68B,0xB68C,0xB68D,0xC5DA,0xB68E,0xB68F,0xB690,
-0xB691,0xB692,0xB693,0xB694,0xC5DB,0xC5DC,0xB695,0xC5DD,
-0xB696,0xC5DE,0xB697,0xB698,0xB699,0xB69A,0xB69B,0xB69C,
-0xC5DF,0xB69D,0xB69E,0xB69F,0xC5E0,0xB6A0,0xB741,0xB742,
-0xB743,0xB744,0xB745,0xB746,0xB747,0xB748,0xB749,0xB74A,
-0xB74B,0xB74C,0xB74D,0xB74E,0xC5E1,0xB74F,0xB750,0xB751,
-0xB752,0xB753,0xB754,0xB755,0xC5E2,0xB756,0xB757,0xB758,
-0xC5E3,0xB759,0xB75A,0xB761,0xB762,0xB763,0xB764,0xB765,
-0xB766,0xB767,0xB768,0xB769,0xB76A,0xB76B,0xB76C,0xB76D,
-0xB76E,0xB76F,0xB770,0xB771,0xB772,0xB773,0xB774,0xB775,
-0xC5E4,0xC5E5,0xB776,0xB777,0xC5E6,0xB778,0xB779,0xB77A,
-0xC5E7,0xB781,0xB782,0xB783,0xB784,0xB785,0xB786,0xB787,
-0xC5E8,0xC5E9,0xB788,0xC5EA,0xB789,0xC5EB,0xB78A,0xB78B,
-0xB78C,0xB78D,0xC5EC,0xB78E,0xC5ED,0xB78F,0xB790,0xB791,
-0xC5EE,0xB792,0xB793,0xB794,0xB795,0xB796,0xB797,0xB798,
-0xB799,0xB79A,0xB79B,0xB79C,0xB79D,0xB79E,0xB79F,0xB7A0,
-0xB841,0xB842,0xB843,0xB844,0xB845,0xB846,0xB847,0xB848,
-0xC5EF,0xB849,0xB84A,0xB84B,0xB84C,0xB84D,0xB84E,0xB84F,
-0xB850,0xB851,0xB852,0xB853,0xB854,0xB855,0xB856,0xB857,
-0xB858,0xB859,0xB85A,0xB861,0xB862,0xB863,0xB864,0xB865,
-0xB866,0xB867,0xB868,0xB869,0xC5F0,0xB86A,0xB86B,0xB86C,
-0xC5F1,0xB86D,0xB86E,0xB86F,0xB870,0xB871,0xB872,0xB873,
-0xB874,0xB875,0xB876,0xB877,0xB878,0xB879,0xB87A,0xC5F2,
-0xB881,0xC5F3,0xB882,0xB883,0xB884,0xB885,0xB886,0xB887,
-0xC5F4,0xB888,0xB889,0xB88A,0xB88B,0xB88C,0xB88D,0xB88E,
-0xB88F,0xB890,0xB891,0xB892,0xB893,0xB894,0xB895,0xB896,
-0xB897,0xB898,0xB899,0xB89A,0xB89B,0xB89C,0xB89D,0xB89E,
-0xB89F,0xB8A0,0xB941,0xB942,0xC5F5,0xC5F6,0xB943,0xB944,
-0xC5F7,0xB945,0xB946,0xB947,0xC5F8,0xB948,0xB949,0xB94A,
-0xB94B,0xB94C,0xB94D,0xB94E,0xC5F9,0xC5FA,0xB94F,0xC5FB,
-0xB950,0xC5FC,0xB951,0xB952,0xB953,0xB954,0xB955,0xB956,
-0xC5FD,0xB957,0xB958,0xB959,0xB95A,0xB961,0xB962,0xB963,
-0xB964,0xB965,0xB966,0xB967,0xB968,0xB969,0xB96A,0xB96B,
-0xB96C,0xB96D,0xB96E,0xB96F,0xC5FE,0xB970,0xB971,0xB972,
-0xB973,0xB974,0xB975,0xB976,0xC6A1,0xB977,0xB978,0xB979,
-0xB97A,0xB981,0xB982,0xB983,0xB984,0xB985,0xB986,0xB987,
-0xB988,0xB989,0xB98A,0xB98B,0xB98C,0xB98D,0xB98E,0xB98F,
-0xB990,0xB991,0xB992,0xB993,0xB994,0xB995,0xB996,0xB997,
-0xC6A2,0xC6A3,0xB998,0xB999,0xC6A4,0xB99A,0xB99B,0xB99C,
-0xC6A5,0xB99D,0xB99E,0xB99F,0xB9A0,0xBA41,0xBA42,0xBA43,
-0xC6A6,0xC6A7,0xBA44,0xBA45,0xBA46,0xC6A8,0xBA47,0xBA48,
-0xBA49,0xBA4A,0xBA4B,0xBA4C,0xC6A9,0xBA4D,0xBA4E,0xBA4F,
-0xC6AA,0xBA50,0xBA51,0xBA52,0xC6AB,0xBA53,0xBA54,0xBA55,
-0xBA56,0xBA57,0xBA58,0xBA59,0xC6AC,0xBA5A,0xBA61,0xBA62,
-0xBA63,0xC6AD,0xBA64,0xBA65,0xBA66,0xBA67,0xBA68,0xBA69,
-0xC6AE,0xC6AF,0xBA6A,0xBA6B,0xC6B0,0xBA6C,0xBA6D,0xC6B1,
-0xC6B2,0xBA6E,0xC6B3,0xBA6F,0xBA70,0xBA71,0xBA72,0xBA73,
-0xC6B4,0xC6B5,0xBA74,0xC6B6,0xBA75,0xBA76,0xBA77,0xBA78,
-0xBA79,0xBA7A,0xBA81,0xBA82,0xC6B7,0xBA83,0xBA84,0xBA85,
-0xC6B8,0xBA86,0xBA87,0xBA88,0xC6B9,0xBA89,0xBA8A,0xBA8B,
-0xBA8C,0xBA8D,0xBA8E,0xBA8F,0xC6BA,0xC6BB,0xBA90,0xBA91,
-0xBA92,0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99,
-0xC6BC,0xC6BD,0xBA9A,0xBA9B,0xC6BE,0xBA9C,0xBA9D,0xBA9E,
-0xC6BF,0xBA9F,0xBAA0,0xBB41,0xBB42,0xBB43,0xBB44,0xBB45,
-0xC6C0,0xC6C1,0xBB46,0xC6C2,0xBB47,0xC6C3,0xBB48,0xBB49,
-0xBB4A,0xBB4B,0xBB4C,0xBB4D,0xC6C4,0xC6C5,0xC6C6,0xBB4E,
-0xC6C7,0xBB4F,0xBB50,0xBB51,0xC6C8,0xBB52,0xC6C9,0xBB53,
-0xBB54,0xBB55,0xBB56,0xBB57,0xC6CA,0xC6CB,0xBB58,0xC6CC,
-0xC6CD,0xC6CE,0xBB59,0xBB5A,0xBB61,0xC6CF,0xBB62,0xBB63,
-0xC6D0,0xC6D1,0xBB64,0xBB65,0xC6D2,0xBB66,0xBB67,0xBB68,
-0xC6D3,0xBB69,0xBB6A,0xBB6B,0xBB6C,0xBB6D,0xBB6E,0xBB6F,
-0xC6D4,0xC6D5,0xBB70,0xC6D6,0xC6D7,0xC6D8,0xBB71,0xBB72,
-0xBB73,0xBB74,0xBB75,0xBB76,0xC6D9,0xC6DA,0xBB77,0xBB78,
-0xBB79,0xBB7A,0xBB81,0xBB82,0xBB83,0xBB84,0xBB85,0xBB86,
-0xBB87,0xBB88,0xBB89,0xBB8A,0xBB8B,0xBB8C,0xBB8D,0xBB8E,
-0xBB8F,0xBB90,0xBB91,0xBB92,0xBB93,0xBB94,0xBB95,0xBB96,
-0xBB97,0xBB98,0xBB99,0xBB9A,0xBB9B,0xBB9C,0xBB9D,0xBB9E,
-0xBB9F,0xBBA0,0xBC41,0xBC42,0xBC43,0xBC44,0xBC45,0xBC46,
-0xBC47,0xBC48,0xBC49,0xBC4A,0xBC4B,0xBC4C,0xBC4D,0xBC4E,
-0xBC4F,0xBC50,0xBC51,0xBC52,0xC6DB,0xC6DC,0xBC53,0xBC54,
-0xC6DD,0xBC55,0xBC56,0xBC57,0xC6DE,0xBC58,0xBC59,0xBC5A,
-0xBC61,0xBC62,0xBC63,0xBC64,0xC6DF,0xC6E0,0xBC65,0xC6E1,
-0xC6E2,0xC6E3,0xBC66,0xBC67,0xBC68,0xBC69,0xBC6A,0xBC6B,
-0xC6E4,0xC6E5,0xBC6C,0xBC6D,0xC6E6,0xBC6E,0xBC6F,0xBC70,
-0xC6E7,0xBC71,0xBC72,0xBC73,0xBC74,0xBC75,0xBC76,0xBC77,
-0xC6E8,0xC6E9,0xBC78,0xC6EA,0xBC79,0xC6EB,0xBC7A,0xBC81,
-0xBC82,0xBC83,0xBC84,0xBC85,0xC6EC,0xBC86,0xBC87,0xBC88,
-0xC6ED,0xBC89,0xBC8A,0xBC8B,0xC6EE,0xBC8C,0xBC8D,0xBC8E,
-0xBC8F,0xBC90,0xBC91,0xBC92,0xC6EF,0xC6F0,0xBC93,0xBC94,
-0xC6F1,0xC6F2,0xBC95,0xBC96,0xBC97,0xBC98,0xBC99,0xBC9A,
-0xC6F3,0xBC9B,0xBC9C,0xBC9D,0xBC9E,0xBC9F,0xBCA0,0xBD41,
-0xC6F4,0xBD42,0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD48,
-0xBD49,0xC6F5,0xBD4A,0xC6F6,0xBD4B,0xBD4C,0xBD4D,0xBD4E,
-0xBD4F,0xBD50,0xBD51,0xBD52,0xC6F7,0xC6F8,0xBD53,0xBD54,
-0xC6F9,0xBD55,0xBD56,0xBD57,0xC6FA,0xBD58,0xBD59,0xBD5A,
-0xBD61,0xBD62,0xBD63,0xBD64,0xC6FB,0xC6FC,0xBD65,0xC6FD,
-0xBD66,0xC6FE,0xBD67,0xBD68,0xBD69,0xBD6A,0xBD6B,0xBD6C,
-0xC7A1,0xBD6D,0xBD6E,0xBD6F,0xBD70,0xBD71,0xBD72,0xBD73,
-0xBD74,0xBD75,0xBD76,0xBD77,0xBD78,0xBD79,0xBD7A,0xBD81,
-0xBD82,0xBD83,0xBD84,0xBD85,0xBD86,0xC7A2,0xBD87,0xBD88,
-0xBD89,0xBD8A,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F,0xBD90,
-0xBD91,0xBD92,0xBD93,0xBD94,0xBD95,0xBD96,0xBD97,0xBD98,
-0xBD99,0xBD9A,0xBD9B,0xBD9C,0xBD9D,0xBD9E,0xBD9F,0xBDA0,
-0xBE41,0xBE42,0xBE43,0xBE44,0xBE45,0xBE46,0xBE47,0xBE48,
-0xC7A3,0xBE49,0xBE4A,0xBE4B,0xC7A4,0xBE4C,0xBE4D,0xBE4E,
-0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xBE54,0xBE55,0xBE56,
-0xBE57,0xBE58,0xBE59,0xBE5A,0xBE61,0xBE62,0xBE63,0xBE64,
-0xBE65,0xBE66,0xBE67,0xBE68,0xC7A5,0xBE69,0xBE6A,0xBE6B,
-0xC7A6,0xBE6C,0xBE6D,0xBE6E,0xC7A7,0xBE6F,0xBE70,0xBE71,
-0xBE72,0xBE73,0xBE74,0xBE75,0xBE76,0xC7A8,0xBE77,0xC7A9,
-0xBE78,0xBE79,0xBE7A,0xBE81,0xBE82,0xBE83,0xBE84,0xBE85,
-0xC7AA,0xC7AB,0xBE86,0xBE87,0xC7AC,0xBE88,0xBE89,0xC7AD,
-0xC7AE,0xBE8A,0xC7AF,0xBE8B,0xBE8C,0xBE8D,0xBE8E,0xBE8F,
-0xC7B0,0xC7B1,0xBE90,0xC7B2,0xBE91,0xC7B3,0xBE92,0xBE93,
-0xBE94,0xBE95,0xBE96,0xBE97,0xC7B4,0xBE98,0xBE99,0xBE9A,
-0xBE9B,0xBE9C,0xBE9D,0xBE9E,0xBE9F,0xBEA0,0xBF41,0xBF42,
-0xBF43,0xBF44,0xBF45,0xBF46,0xBF47,0xBF48,0xBF49,0xBF4A,
-0xBF4B,0xC7B5,0xBF4C,0xBF4D,0xBF4E,0xBF4F,0xBF50,0xBF51,
-0xBF52,0xBF53,0xBF54,0xBF55,0xBF56,0xBF57,0xBF58,0xBF59,
-0xBF5A,0xBF61,0xBF62,0xBF63,0xBF64,0xBF65,0xBF66,0xBF67,
-0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C,0xBF6D,0xBF6E,0xBF6F,
-0xBF70,0xBF71,0xBF72,0xBF73,0xC7B6,0xBF74,0xBF75,0xBF76,
-0xC7B7,0xBF77,0xBF78,0xBF79,0xC7B8,0xBF7A,0xBF81,0xBF82,
-0xBF83,0xBF84,0xBF85,0xBF86,0xC7B9,0xBF87,0xBF88,0xC7BA,
-0xBF89,0xBF8A,0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90,
-0xC7BB,0xBF91,0xBF92,0xBF93,0xC7BC,0xBF94,0xBF95,0xBF96,
-0xC7BD,0xBF97,0xBF98,0xBF99,0xBF9A,0xBF9B,0xBF9C,0xBF9D,
-0xC7BE,0xBF9E,0xBF9F,0xC7BF,0xBFA0,0xC7C0,0xC041,0xC042,
-0xC043,0xC044,0xC045,0xC046,0xC7C1,0xC047,0xC048,0xC049,
-0xC7C2,0xC04A,0xC04B,0xC04C,0xC7C3,0xC04D,0xC04E,0xC04F,
-0xC050,0xC051,0xC052,0xC053,0xC7C4,0xC7C5,0xC054,0xC7C6,
-0xC055,0xC056,0xC057,0xC058,0xC059,0xC05A,0xC061,0xC062,
-0xC063,0xC064,0xC065,0xC066,0xC067,0xC068,0xC069,0xC06A,
-0xC06B,0xC06C,0xC06D,0xC06E,0xC06F,0xC070,0xC071,0xC072,
-0xC073,0xC074,0xC075,0xC076,0xC077,0xC078,0xC079,0xC07A,
-0xC081,0xC082,0xC083,0xC084,0xC7C7,0xC7C8,0xC085,0xC086,
-0xC7C9,0xC087,0xC088,0xC089,0xC7CA,0xC08A,0xC08B,0xC08C,
-0xC08D,0xC08E,0xC08F,0xC090,0xC7CB,0xC7CC,0xC091,0xC7CD,
-0xC092,0xC7CE,0xC093,0xC094,0xC095,0xC096,0xC097,0xC098,
-0xC7CF,0xC7D0,0xC099,0xC09A,0xC7D1,0xC09B,0xC09C,0xC09D,
-0xC7D2,0xC09E,0xC09F,0xC0A0,0xC141,0xC7D3,0xC142,0xC143,
-0xC7D4,0xC7D5,0xC144,0xC7D6,0xC145,0xC7D7,0xC146,0xC147,
-0xC148,0xC149,0xC14A,0xC14B,0xC7D8,0xC7D9,0xC14C,0xC14D,
-0xC7DA,0xC14E,0xC14F,0xC150,0xC7DB,0xC151,0xC152,0xC153,
-0xC154,0xC155,0xC156,0xC157,0xC7DC,0xC7DD,0xC158,0xC7DE,
-0xC7DF,0xC7E0,0xC159,0xC15A,0xC161,0xC162,0xC163,0xC164,
-0xC7E1,0xC165,0xC166,0xC167,0xC168,0xC169,0xC16A,0xC16B,
-0xC16C,0xC16D,0xC16E,0xC16F,0xC170,0xC171,0xC172,0xC173,
-0xC174,0xC175,0xC176,0xC177,0xC178,0xC7E2,0xC179,0xC17A,
-0xC181,0xC182,0xC183,0xC184,0xC185,0xC186,0xC187,0xC188,
-0xC189,0xC18A,0xC18B,0xC18C,0xC18D,0xC18E,0xC18F,0xC190,
-0xC191,0xC192,0xC193,0xC194,0xC195,0xC196,0xC197,0xC198,
-0xC199,0xC19A,0xC19B,0xC19C,0xC19D,0xC19E,0xC19F,0xC1A0,
-0xC7E3,0xC7E4,0xC241,0xC242,0xC7E5,0xC243,0xC244,0xC245,
-0xC7E6,0xC246,0xC7E7,0xC247,0xC248,0xC249,0xC24A,0xC24B,
-0xC7E8,0xC7E9,0xC24C,0xC7EA,0xC24D,0xC7EB,0xC24E,0xC24F,
-0xC250,0xC251,0xC252,0xC253,0xC7EC,0xC7ED,0xC254,0xC255,
-0xC7EE,0xC256,0xC257,0xC258,0xC7EF,0xC259,0xC25A,0xC261,
-0xC262,0xC263,0xC264,0xC265,0xC7F0,0xC7F1,0xC266,0xC7F2,
-0xC267,0xC7F3,0xC268,0xC269,0xC26A,0xC26B,0xC26C,0xC26D,
-0xC7F4,0xC7F5,0xC26E,0xC26F,0xC7F6,0xC270,0xC271,0xC272,
-0xC7F7,0xC273,0xC274,0xC275,0xC276,0xC277,0xC278,0xC279,
-0xC7F8,0xC7F9,0xC27A,0xC7FA,0xC7FB,0xC7FC,0xC281,0xC282,
-0xC283,0xC284,0xC285,0xC286,0xC7FD,0xC287,0xC288,0xC289,
-0xC7FE,0xC28A,0xC28B,0xC28C,0xC8A1,0xC28D,0xC28E,0xC28F,
-0xC290,0xC291,0xC292,0xC293,0xC294,0xC8A2,0xC295,0xC296,
-0xC297,0xC298,0xC299,0xC29A,0xC29B,0xC29C,0xC29D,0xC29E,
-0xC8A3,0xC8A4,0xC29F,0xC2A0,0xC8A5,0xC341,0xC342,0xC343,
-0xC8A6,0xC344,0xC345,0xC346,0xC347,0xC8A7,0xC348,0xC349,
-0xC8A8,0xC8A9,0xC34A,0xC8AA,0xC34B,0xC8AB,0xC34C,0xC34D,
-0xC34E,0xC8AC,0xC34F,0xC350,0xC8AD,0xC8AE,0xC351,0xC352,
-0xC8AF,0xC353,0xC354,0xC355,0xC8B0,0xC356,0xC357,0xC358,
-0xC359,0xC35A,0xC361,0xC362,0xC363,0xC364,0xC365,0xC8B1,
-0xC366,0xC8B2,0xC367,0xC368,0xC369,0xC36A,0xC36B,0xC36C,
-0xC8B3,0xC8B4,0xC36D,0xC36E,0xC8B5,0xC36F,0xC370,0xC371,
-0xC372,0xC373,0xC374,0xC375,0xC376,0xC377,0xC378,0xC379,
-0xC37A,0xC381,0xC382,0xC8B6,0xC383,0xC8B7,0xC384,0xC385,
-0xC386,0xC387,0xC388,0xC389,0xC8B8,0xC8B9,0xC38A,0xC38B,
-0xC8BA,0xC38C,0xC38D,0xC38E,0xC8BB,0xC38F,0xC390,0xC391,
-0xC392,0xC393,0xC394,0xC395,0xC396,0xC8BC,0xC397,0xC8BD,
-0xC398,0xC8BE,0xC399,0xC39A,0xC39B,0xC39C,0xC39D,0xC39E,
-0xC8BF,0xC39F,0xC3A0,0xC441,0xC8C0,0xC442,0xC443,0xC444,
-0xC8C1,0xC445,0xC446,0xC447,0xC448,0xC449,0xC44A,0xC44B,
-0xC44C,0xC8C2,0xC44D,0xC8C3,0xC44E,0xC44F,0xC450,0xC451,
-0xC452,0xC453,0xC454,0xC455,0xC8C4,0xC8C5,0xC456,0xC457,
-0xC8C6,0xC458,0xC459,0xC45A,0xC8C7,0xC461,0xC462,0xC463,
-0xC464,0xC8C8,0xC465,0xC466,0xC8C9,0xC467,0xC468,0xC8CA,
-0xC469,0xC8CB,0xC46A,0xC46B,0xC46C,0xC46D,0xC46E,0xC46F,
-0xC8CC,0xC470,0xC471,0xC472,0xC8CD,0xC473,0xC474,0xC475,
-0xC8CE,0xC476,0xC477,0xC478,0xC479,0xC47A,0xC481,0xC482,
-0xC8CF,0xC483,0xC484,0xC485,0xC486,0xC8D0,0xC487,0xC488,
-0xC489,0xC48A,0xC48B,0xC48C,0xC8D1,0xC8D2,0xC48D,0xC48E,
-0xC8D3,0xC48F,0xC490,0xC491,0xC8D4,0xC492,0xC493,0xC494,
-0xC495,0xC496,0xC497,0xC498,0xC499,0xC49A,0xC49B,0xC49C,
-0xC49D,0xC8D5,0xC49E,0xC49F,0xC4A0,0xC541,0xC542,0xC543,
-0xC8D6,0xC8D7,0xC544,0xC545,0xC8D8,0xC546,0xC547,0xC548,
-0xC8D9,0xC549,0xC54A,0xC54B,0xC54C,0xC54D,0xC54E,0xC54F,
-0xC8DA,0xC8DB,0xC550,0xC8DC,0xC551,0xC8DD,0xC552,0xC553,
-0xC554,0xC555,0xC556,0xC557,0xC8DE,0xC8DF,0xC558,0xC559,
-0xC8E0,0xC55A,0xC561,0xC562,0xC8E1,0xC563,0xC564,0xC565,
-0xC566,0xC567,0xC568,0xC569,0xC8E2,0xC56A,0xC56B,0xC8E3,
-0xC56C,0xC8E4,0xC56D,0xC56E,0xC56F,0xC570,0xC571,0xC572,
-0xC8E5,0xC8E6,0xC573,0xC574,0xC8E7,0xC575,0xC8E8,0xC8E9,
-0xC8EA,0xC8EB,0xC576,0xC577,0xC578,0xC579,0xC57A,0xC581,
-0xC8EC,0xC8ED,0xC582,0xC8EE,0xC583,0xC8EF,0xC584,0xC585,
-0xC586,0xC8F0,0xC587,0xC588,0xC8F1,0xC589,0xC58A,0xC58B,
-0xC8F2,0xC58C,0xC58D,0xC58E,0xC8F3,0xC58F,0xC590,0xC591,
-0xC592,0xC593,0xC594,0xC595,0xC8F4,0xC8F5,0xC596,0xC597,
-0xC598,0xC8F6,0xC599,0xC59A,0xC59B,0xC59C,0xC59D,0xC59E,
-0xC8F7,0xC8F8,0xC59F,0xC5A0,0xC8F9,0xC641,0xC642,0xC643,
-0xC8FA,0xC644,0xC645,0xC646,0xC647,0xC648,0xC649,0xC64A,
-0xC8FB,0xC8FC,0xC64B,0xC8FD,0xC64C,0xC8FE,0xC64D,0xC64E,
-0xC64F,0xC650,0xC651,0xC652};
-
-/* page 9 0xF900-0xFA0B */
-static uint16 tab_uni_ksc56019[]={
-0xCBD0,0xCBD6,0xCBE7,0xCDCF,0xCDE8,0xCEAD,0xCFFB,0xD0A2,
-0xD0B8,0xD0D0,0xD0DD,0xD1D4,0xD1D5,0xD1D8,0xD1DB,0xD1DC,
-0xD1DD,0xD1DE,0xD1DF,0xD1E0,0xD1E2,0xD1E3,0xD1E4,0xD1E5,
-0xD1E6,0xD1E8,0xD1E9,0xD1EA,0xD1EB,0xD1ED,0xD1EF,0xD1F0,
-0xD1F2,0xD1F6,0xD1FA,0xD1FC,0xD1FD,0xD1FE,0xD2A2,0xD2A3,
-0xD2A7,0xD2A8,0xD2A9,0xD2AA,0xD2AB,0xD2AD,0xD2B2,0xD2BE,
-0xD2C2,0xD2C3,0xD2C4,0xD2C6,0xD2C7,0xD2C8,0xD2C9,0xD2CA,
-0xD2CB,0xD2CD,0xD2CE,0xD2CF,0xD2D0,0xD2D1,0xD2D2,0xD2D3,
-0xD2D4,0xD2D5,0xD2D6,0xD2D7,0xD2D9,0xD2DA,0xD2DE,0xD2DF,
-0xD2E1,0xD2E2,0xD2E4,0xD2E5,0xD2E6,0xD2E7,0xD2E8,0xD2E9,
-0xD2EA,0xD2EB,0xD2F0,0xD2F1,0xD2F2,0xD2F3,0xD2F4,0xD2F5,
-0xD2F7,0xD2F8,0xD4E6,0xD4FC,0xD5A5,0xD5AB,0xD5AE,0xD6B8,
-0xD6CD,0xD7CB,0xD7E4,0xDBC5,0xDBE4,0xDCA5,0xDDA5,0xDDD5,
-0xDDF4,0xDEFC,0xDEFE,0xDFB3,0xDFE1,0xDFE8,0xE0F1,0xE1AD,
-0xE1ED,0xE3F5,0xE4A1,0xE4A9,0xE5AE,0xE5B1,0xE5B2,0xE5B9,
-0xE5BB,0xE5BC,0xE5C4,0xE5CE,0xE5D0,0xE5D2,0xE5D6,0xE5FA,
-0xE5FB,0xE5FC,0xE5FE,0xE6A1,0xE6A4,0xE6A7,0xE6AD,0xE6AF,
-0xE6B0,0xE6B1,0xE6B3,0xE6B7,0xE6B8,0xE6BC,0xE6C4,0xE6C6,
-0xE6C7,0xE6CA,0xE6D2,0xE6D6,0xE6D9,0xE6DC,0xE6DF,0xE6E1,
-0xE6E4,0xE6E5,0xE6E6,0xE6E8,0xE6EA,0xE6EB,0xE6EC,0xE6EF,
-0xE6F1,0xE6F2,0xE6F5,0xE6F6,0xE6F7,0xE6F9,0xE7A1,0xE7A6,
-0xE7A9,0xE7AA,0xE7AC,0xE7AD,0xE7B0,0xE7BF,0xE7C1,0xE7C6,
-0xE7C7,0xE7CB,0xE7CD,0xE7CF,0xE7D0,0xE7D3,0xE7DF,0xE7E4,
-0xE7E6,0xE7F7,0xE8E7,0xE8E8,0xE8F0,0xE8F1,0xE8F7,0xE8F9,
-0xE8FB,0xE8FE,0xE9A7,0xE9AC,0xE9CC,0xE9F7,0xEAC1,0xEAE5,
-0xEAF4,0xEAF7,0xEAFC,0xEAFE,0xEBA4,0xEBA7,0xEBA9,0xEBAA,
-0xEBBA,0xEBBB,0xEBBD,0xEBC1,0xEBC2,0xEBC6,0xEBC7,0xEBCC,
-0xEBCF,0xEBD0,0xEBD1,0xEBD2,0xEBD8,0xECA6,0xECA7,0xECAA,
-0xECAF,0xECB0,0xECB1,0xECB2,0xECB5,0xECB8,0xECBA,0xECC0,
-0xECC1,0xECC5,0xECC6,0xECC9,0xECCA,0xECD5,0xECDD,0xECDE,
-0xECE1,0xECE4,0xECE7,0xECE8,0xECF7,0xECF8,0xECFA,0xEDA1,
-0xEDA2,0xEDA3,0xEDEE,0xEEDB,0xF2BD,0xF2FA,0xF3B1,0xF4A7,
-0xF4EE,0xF6F4,0xF6F6,0xF7B8,0xF7C8,0xF7D3,0xF8DB,0xF8F0,
-0xFAA1,0xFAA2,0xFAE6,0xFCA9};
-
-/* page 10 0xFF01-0xFFE6 */
-static uint16 tab_uni_ksc560110[]={
-0xA3A1,0xA3A2,0xA3A3,0xA3A4,0xA3A5,0xA3A6,0xA3A7,0xA3A8,
-0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,0xA3B0,
-0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,0xA3B8,
-0xA3B9,0xA3BA,0xA3BB,0xA3BC,0xA3BD,0xA3BE,0xA3BF,0xA3C0,
-0xA3C1,0xA3C2,0xA3C3,0xA3C4,0xA3C5,0xA3C6,0xA3C7,0xA3C8,
-0xA3C9,0xA3CA,0xA3CB,0xA3CC,0xA3CD,0xA3CE,0xA3CF,0xA3D0,
-0xA3D1,0xA3D2,0xA3D3,0xA3D4,0xA3D5,0xA3D6,0xA3D7,0xA3D8,
-0xA3D9,0xA3DA,0xA3DB,0xA1AC,0xA3DD,0xA3DE,0xA3DF,0xA3E0,
-0xA3E1,0xA3E2,0xA3E3,0xA3E4,0xA3E5,0xA3E6,0xA3E7,0xA3E8,
-0xA3E9,0xA3EA,0xA3EB,0xA3EC,0xA3ED,0xA3EE,0xA3EF,0xA3F0,
-0xA3F1,0xA3F2,0xA3F3,0xA3F4,0xA3F5,0xA3F6,0xA3F7,0xA3F8,
-0xA3F9,0xA3FA,0xA3FB,0xA3FC,0xA3FD,0xA2A6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA1CB,
-0xA1CC,0xA1FE,0xA3FE, 0,0xA1CD,0xA3DC};
-
-static int func_uni_ksc5601_onechar(int code){
- if ((code>=0x00A1)&&(code<=0x0167))
- return(tab_uni_ksc56010[code-0x00A1]);
- if ((code>=0x02C7)&&(code<=0x0451))
- return(tab_uni_ksc56011[code-0x02C7]);
- if ((code>=0x2015)&&(code<=0x2312))
- return(tab_uni_ksc56012[code-0x2015]);
- if ((code>=0x2460)&&(code<=0x266D))
- return(tab_uni_ksc56013[code-0x2460]);
- if ((code>=0x3000)&&(code<=0x327F))
- return(tab_uni_ksc56014[code-0x3000]);
- if ((code>=0x3380)&&(code<=0x33DD))
- return(tab_uni_ksc56015[code-0x3380]);
- if ((code>=0x4E00)&&(code<=0x947F))
- return(tab_uni_ksc56016[code-0x4E00]);
- if ((code>=0x9577)&&(code<=0x9F9C))
- return(tab_uni_ksc56017[code-0x9577]);
- if ((code>=0xAC00)&&(code<=0xD7A3))
- return(tab_uni_ksc56018[code-0xAC00]);
- if ((code>=0xF900)&&(code<=0xFA0B))
- return(tab_uni_ksc56019[code-0xF900]);
- if ((code>=0xFF01)&&(code<=0xFFE6))
- return(tab_uni_ksc560110[code-0xFF01]);
- return(0);
-}
-
-
-static int
-my_wc_mb_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- int code;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((uint) wc < 0x80)
- {
- s[0]= (uchar) wc;
- return 1;
- }
-
- if (!(code=func_uni_ksc5601_onechar(wc)))
- return MY_CS_ILUNI;
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- s[0]=code>>8;
- s[1]=code&0xFF;
-
- return 2;
-}
-
-
-static int
-my_mb_wc_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e)
-{
-
- int hi;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((hi= s[0]) < 0x80)
- {
- pwc[0]=hi;
- return 1;
- }
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- if (!(pwc[0]=func_ksc5601_uni_onechar((hi<<8)+s[1])))
- return -2;
-
- return 2;
-}
-
-
-/*
- Returns well formed length of a EUC-KR string.
-*/
-static size_t
-my_well_formed_len_euckr(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
-
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (b < emb && iseuc_kr_head(*b) && iseuc_kr_tail(b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_simple, /* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
- my_strnxfrmlen_simple,
- my_like_range_mb, /* like_range */
- my_wildcmp_mb, /* wildcmp */
- my_strcasecmp_mb,
- my_instr_mb,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- ismbchar_euc_kr,
- mbcharlen_euc_kr,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_euckr,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_euc_kr, /* mb_wc */
- my_wc_mb_euc_kr, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb,
- my_casedn_str_mb,
- my_caseup_mb_varlen, /* UPPER() can reduce length: Turkish DOTLESS i -> I */
- my_casedn_mb, /* LOWER() does not change length, use simple version*/
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_euckr_korean_ci=
-{
- 19,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
- "euckr", /* cs name */
- "euckr_korean_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_euc_kr,
- to_lower_euc_kr,
- to_upper_euc_kr,
- sort_order_euc_kr,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_euckr, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFEFE, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_ci_handler
-};
-
-
-CHARSET_INFO my_charset_euckr_bin=
-{
- 85,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "euckr", /* cs name */
- "euckr_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_euc_kr,
- to_lower_euc_kr,
- to_upper_euc_kr,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_euckr, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFEFE, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_mb_bin_handler
-};
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-extra.c b/dep/mysqllite/strings/ctype-extra.c
deleted file mode 100644
index f89a45d6ed8..00000000000
--- a/dep/mysqllite/strings/ctype-extra.c
+++ /dev/null
@@ -1,8649 +0,0 @@
-/*
- This file was generated by the conf_to_src utility. Do not edit it directly,
- edit the XML definitions in sql/share/charsets/ instead.
-
- To re-generate, run the following in the strings/ directory:
- ./conf_to_src ../sql/share/charsets/ > FILE
-*/
-
-/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
-
-#include <my_global.h>
-#include <m_ctype.h>
-
-#ifdef HAVE_CHARSET_dec8
-uchar ctype_dec8_swedish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_dec8_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_dec8_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_dec8_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0x41,0x41,0x41,0x41,0x5C,0x5B,0x5C,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5D,0xD7,0xD8,0x55,0x55,0x55,0x59,0x59,0xDE,0xDF,
-0x41,0x41,0x41,0x41,0x5C,0x5B,0x5C,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5D,0xF7,0xD8,0x55,0x55,0x55,0x59,0x59,0xDE,0xFF
-};
-
-uint16 to_uni_dec8_swedish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00A1,0x00A2,0x00A3,0x0000,0x00A5,0x0000,0x00A7,
-0x00A4,0x00A9,0x00AA,0x00AB,0x0000,0x0000,0x0000,0x0000,
-0x00B0,0x00B1,0x00B2,0x00B3,0x0000,0x00B5,0x00B6,0x00B7,
-0x0000,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x0000,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x0000,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x0152,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0178,0x0000,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x0000,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x0153,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FF,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp850
-uchar ctype_cp850_general_ci[] = {
-0x00,
-0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x30,0x30,
-0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x30,0x30,0x30,0x30,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x30,
-0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,
-0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x10,0x01,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,
-0x01,0x02,0x01,0x01,0x02,0x01,0x10,0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20
-};
-
-uchar to_lower_cp850_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x84,0x86,
-0x82,0x91,0x91,0x93,0x94,0x95,0x96,0x97,0x98,0x94,0x81,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp850_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F,
-0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_cp850_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x51,0x53,0x55,0x59,0x63,0x65,0x67,0x69,0x74,0x76,0x78,0x7A,0x7C,0x80,
-0x8E,0x90,0x92,0x94,0x97,0x99,0xA3,0xA5,0xA7,0xA9,0xAE,0xB1,0xB2,0xB3,0xB4,0xB5,
-0xB6,0x41,0x51,0x53,0x55,0x59,0x63,0x65,0x67,0x69,0x74,0x76,0x78,0x7A,0x7C,0x80,
-0x8E,0x90,0x92,0x94,0x97,0x99,0xA3,0xA5,0xA7,0xA9,0xAE,0xB7,0xB8,0xB9,0xBA,0xBB,
-0x54,0xA1,0x5D,0x47,0x4B,0x43,0x4D,0x54,0x5F,0x61,0x5B,0x71,0x6F,0x6B,0x4B,0x4D,
-0x5D,0x4F,0x4F,0x86,0x8A,0x82,0x9F,0x9B,0xAD,0x8A,0xA1,0x8C,0xE3,0x8C,0xBD,0xBE,
-0x45,0x6D,0x84,0x9D,0x7E,0x7E,0xEA,0xFA,0xFF,0xEE,0xEC,0xFD,0xFC,0xCE,0xEB,0xFB,
-0xDC,0xDD,0xDE,0xC3,0xC9,0x45,0x47,0x43,0xE9,0xD5,0xCF,0xD1,0xD3,0xE2,0xE5,0xC5,
-0xC6,0xCB,0xCA,0xC8,0xC2,0xCC,0x49,0x49,0xD2,0xD0,0xD7,0xD6,0xD4,0xCD,0xD8,0xE4,
-0x57,0x57,0x5F,0x61,0x5B,0x73,0x6D,0x6F,0x71,0xC7,0xC4,0xDB,0xDA,0xE6,0x6B,0xD9,
-0x84,0x96,0x86,0x82,0x88,0x88,0xF5,0xB0,0xB0,0x9D,0x9F,0x9B,0xAB,0xAB,0xEF,0xF4,
-0xED,0xF1,0xC1,0xFE,0xF6,0xE7,0xBF,0xBC,0xF0,0xE8,0xF7,0xF9,0xF3,0xF2,0xDF,0xE0
-};
-
-uint16 to_uni_cp850_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,
-0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5,
-0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,
-0x00FF,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x0192,
-0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,
-0x00BF,0x00AE,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x00C0,
-0x00A9,0x2563,0x2551,0x2557,0x255D,0x00A2,0x00A5,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x00E3,0x00C3,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4,
-0x00F0,0x00D0,0x00CA,0x00CB,0x00C8,0x0131,0x00CD,0x00CE,
-0x00CF,0x2518,0x250C,0x2588,0x2584,0x00A6,0x00CC,0x2580,
-0x00D3,0x00DF,0x00D4,0x00D2,0x00F5,0x00D5,0x00B5,0x00FE,
-0x00DE,0x00DA,0x00DB,0x00D9,0x00FD,0x00DD,0x00AF,0x00B4,
-0x00AD,0x00B1,0x2017,0x00BE,0x00B6,0x00A7,0x00F7,0x00B8,
-0x00B0,0x00A8,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin1
-uchar ctype_latin1_german1_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin1_german1_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin1_german1_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin1_german1_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0xD0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0xD7,0x4F,0x55,0x55,0x55,0x55,0x59,0xDE,0x53,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0xD0,0x4E,0x4F,0x4F,0x4F,0x4F,0x4F,0xF7,0x4F,0x55,0x55,0x55,0x55,0x59,0xDE,0xFF
-};
-
-uint16 to_uni_latin1_german1_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_hp8
-uchar ctype_hp8_english_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x02,
-0x01,0x10,0x10,0x01,0x02,0x10,0x10,0x02,0x01,0x10,0x01,0x01,0x01,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20
-};
-
-uchar to_lower_hp8_english_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xC8,0xC0,0xC9,0xC1,0xCD,0xD1,0xDD,0xA8,0xA9,0xAA,0xAB,0xAC,0xCB,0xC3,0xAF,
-0xB0,0xB2,0xB2,0xB3,0xB5,0xB5,0xB7,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD4,0xD1,0xD6,0xD7,0xD4,0xD5,0xD6,0xD7,0xCC,0xD9,0xCE,0xCF,0xC5,0xDD,0xDE,0xC2,
-0xC4,0xE2,0xE2,0xE4,0xE4,0xD5,0xD9,0xC6,0xCA,0xEA,0xEA,0xEC,0xEC,0xC7,0xEF,0xEF,
-0xF1,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_hp8_english_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB1,0xB3,0xB4,0xB4,0xB6,0xB6,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xA2,0xA4,0xDF,0xAE,0xE0,0xDC,0xE7,0xED,0xA1,0xA3,0xE8,0xAD,0xD8,0xA5,0xDA,0xDB,
-0xD0,0xA6,0xD2,0xD3,0xD0,0xE5,0xD2,0xD3,0xD8,0xE6,0xDA,0xDB,0xDC,0xA7,0xDE,0xDF,
-0xE0,0xE1,0xE1,0xE3,0xE3,0xE5,0xE6,0xE7,0xE8,0xE9,0xE9,0xEB,0xEB,0xED,0xEE,0xEE,
-0xF0,0xF0,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_hp8_english_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x5C,0x5D,0x5B,0x5E,0x5F,
-0x60,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_hp8_english_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00C0,0x00C2,0x00C8,0x00CA,0x00CB,0x00CE,0x00CF,
-0x00B4,0x02CB,0x02C6,0x00A8,0x02DC,0x00D9,0x00DB,0x20A4,
-0x00AF,0x00DD,0x00FD,0x00B0,0x00C7,0x00E7,0x00D1,0x00F1,
-0x00A1,0x00BF,0x00A4,0x00A3,0x00A5,0x00A7,0x0192,0x00A2,
-0x00E2,0x00EA,0x00F4,0x00FB,0x00E1,0x00E9,0x00F3,0x00FA,
-0x00E0,0x00E8,0x00F2,0x00F9,0x00E4,0x00EB,0x00F6,0x00FC,
-0x00C5,0x00EE,0x00D8,0x00C6,0x00E5,0x00ED,0x00F8,0x00E6,
-0x00C4,0x00EC,0x00D6,0x00DC,0x00C9,0x00EF,0x00DF,0x00D4,
-0x00C1,0x00C3,0x00E3,0x00D0,0x00F0,0x00CD,0x00CC,0x00D3,
-0x00D2,0x00D5,0x00F5,0x0160,0x0161,0x00DA,0x0178,0x00FF,
-0x00DE,0x00FE,0x00B7,0x00B5,0x00B6,0x00BE,0x2014,0x00BC,
-0x00BD,0x00AA,0x00BA,0x00AB,0x25A0,0x00BB,0x00B1,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_koi8r
-uchar ctype_koi8r_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
-};
-
-uchar to_lower_koi8r_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar to_upper_koi8r_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_koi8r_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xE5,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,
-0xAF,0xB0,0xB1,0xE5,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,
-0xFE,0xDF,0xE0,0xF6,0xE3,0xE4,0xF4,0xE2,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,
-0xEF,0xFF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE1,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA,
-0xFE,0xDF,0xE0,0xF6,0xE3,0xE4,0xF4,0xE2,0xF5,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,
-0xEF,0xFF,0xF0,0xF1,0xF2,0xF3,0xE6,0xE1,0xFC,0xFB,0xE7,0xF8,0xFD,0xF9,0xF7,0xFA
-};
-
-uint16 to_uni_koi8r_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
-0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
-0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,
-0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
-0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,
-0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,
-0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,
-0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9,
-0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
-0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
-0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
-0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
-0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
-0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin2
-uchar ctype_latin2_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01,
-0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x44,0x45,0x48,0x49,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x53,0x54,0x56,
-0x58,0x59,0x5A,0x5B,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x68,0x69,0x6A,0x6B,0x6C,
-0x6D,0x41,0x44,0x45,0x48,0x49,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x53,0x54,0x56,
-0x58,0x59,0x5A,0x5B,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x6E,0x6F,0x70,0x71,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0x42,0xFF,0x52,0xFF,0x51,0x5C,0xFF,0xFF,0x5D,0x5B,0x5E,0x65,0xFF,0x67,0x66,
-0xFF,0x42,0xFF,0x52,0xFF,0x51,0x5C,0xFF,0xFF,0x5D,0x5B,0x5E,0x65,0xFF,0x67,0x66,
-0x5A,0x43,0x43,0x43,0x43,0x51,0x46,0x45,0x47,0x49,0x4A,0x49,0x49,0x4E,0x4E,0x48,
-0xFF,0x55,0x54,0x57,0x56,0x56,0x56,0xFF,0x5A,0x5F,0x5F,0x5F,0x5F,0x63,0x5E,0xFF,
-0x5A,0x43,0x43,0x43,0x43,0x51,0x46,0x45,0x47,0x49,0x4A,0x49,0x49,0x4E,0x4E,0x48,
-0xFF,0x55,0x54,0x57,0x56,0x56,0x56,0xFF,0x5A,0x5F,0x5F,0x5F,0x5F,0x63,0x5E,0xFF
-};
-
-uint16 to_uni_latin2_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
-0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
-0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
-0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_swe7
-uchar ctype_swe7_swedish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x01,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_swe7_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_swe7_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_swe7_swedish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-0x45,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,0x5C,0x5D,0x5B,0x59,0x5F,
-0x45,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,0x5C,0x5D,0x5B,0x59,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_swe7_swedish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x00C9,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x00C4,0x00D6,0x00C5,0x00DC,0x005F,
-0x00E9,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x00E4,0x00F6,0x00E5,0x00FC,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_ascii
-uchar ctype_ascii_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_ascii_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_ascii_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_ascii_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_ascii_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1251
-uchar ctype_cp1251_bulgarian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,
-0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,
-0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_cp1251_bulgarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1251_bulgarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F,
-0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar sort_order_cp1251_bulgarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x7C,0x7D,0x7E,0x7F,0x80,
-0x81,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,0x82,0x83,0x84,0x85,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x61,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x61,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0x5B,0x5C,0x5D,0x5E,0x5F,0x60,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,
-0x5B,0x5C,0x5D,0x5E,0x5F,0x60,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
-};
-
-uint16 to_uni_cp1251_bulgarian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
-0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
-0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
-0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
-0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
-0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
-0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin1
-uchar ctype_latin1_danish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin1_danish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin1_danish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin1_danish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0x41,0x41,0x41,0x41,0x5B,0x5D,0x5B,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5C,0xD7,0x5C,0x55,0x55,0x55,0x59,0x59,0xDE,0xDF,
-0x41,0x41,0x41,0x41,0x5B,0x5D,0x5B,0x43,0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
-0x44,0x4E,0x4F,0x4F,0x4F,0x4F,0x5C,0xF7,0x5C,0x55,0x55,0x55,0x59,0x59,0xDE,0xFF
-};
-
-uint16 to_uni_latin1_danish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_hebrew
-uchar ctype_hebrew_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00
-};
-
-uchar to_lower_hebrew_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_hebrew_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_hebrew_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_hebrew_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x203E,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2017,
-0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
-0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
-0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
-0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin7
-uchar ctype_latin7_estonian_cs[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20,
-0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin7_estonian_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin7_estonian_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin7_estonian_cs[] = {
-0x00,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x2E,0x2F,0x30,0x31,0x32,0x0A,0x0B,
-0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
-0x2C,0x33,0x34,0x35,0x36,0x37,0x38,0x27,0x39,0x3A,0x3B,0x5D,0x3C,0x28,0x3D,0x3E,
-0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3F,0x40,0x5E,0x5F,0x60,0x41,
-0x42,0x86,0x90,0x92,0x98,0x9A,0xA4,0xA6,0xAA,0xAC,0xB2,0xB4,0xB8,0xBE,0xC0,0xC6,
-0xCE,0xD0,0xD2,0xD6,0xE5,0xE8,0xEE,0xF0,0xFA,0xFC,0xDD,0x43,0x44,0x45,0x46,0x47,
-0x48,0x87,0x91,0x93,0x99,0x9B,0xA5,0xA7,0xAB,0xAD,0xB3,0xB5,0xB9,0xBF,0xC1,0xC7,
-0xCF,0xD1,0xD3,0xD7,0xE6,0xE9,0xEF,0xF1,0xFB,0xFD,0xDE,0x49,0x4A,0x4B,0x4C,0x1C,
-0x01,0x1D,0x57,0x1E,0x5A,0x74,0x71,0x72,0x1F,0x75,0x20,0x5B,0x21,0x4E,0x52,0x51,
-0x22,0x55,0x56,0x58,0x59,0x73,0x2A,0x2B,0x23,0xE7,0x24,0x5C,0x25,0x4F,0x54,0x26,
-0x2D,0xFE,0x66,0x67,0x68,0xFF,0x4D,0x69,0xCC,0x6A,0xD4,0x62,0x6B,0x29,0x6C,0x8E,
-0x6D,0x61,0x7D,0x7F,0x50,0x6E,0x6F,0x70,0xCD,0x7B,0xD5,0x63,0x77,0x78,0x79,0x8F,
-0x8C,0xB0,0x88,0x94,0xF4,0x8A,0xA2,0xA0,0x96,0x9C,0xDF,0x9E,0xA8,0xB6,0xAE,0xBA,
-0xDB,0xC2,0xC4,0xC8,0xCA,0xF2,0xF6,0x64,0xEC,0xBC,0xD8,0xEA,0xF8,0xE1,0xE3,0xDA,
-0x8D,0xB1,0x89,0x95,0xF5,0x8B,0xA3,0xA1,0x97,0x9D,0xE0,0x9F,0xA9,0xB7,0xAF,0xBB,
-0xDC,0xC3,0xC5,0xC9,0xCB,0xF3,0xF7,0x65,0xED,0xBD,0xD9,0xEB,0xF9,0xE2,0xE4,0x53
-};
-
-uint16 to_uni_latin7_estonian_cs[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin2
-uchar ctype_latin2_hungarian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01,
-0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin2_hungarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin2_hungarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin2_hungarian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x47,0x48,0x4C,0x4E,0x53,0x54,0x55,0x56,0x5A,0x5B,0x5C,0x60,0x61,0x64,
-0x69,0x6A,0x6B,0x6E,0x72,0x75,0x7A,0x7B,0x7C,0x7D,0x7F,0x83,0x84,0x85,0x86,0x87,
-0x88,0x41,0x47,0x48,0x4C,0x4E,0x53,0x54,0x55,0x56,0x5A,0x5B,0x5C,0x60,0x61,0x64,
-0x69,0x6A,0x6B,0x6E,0x72,0x75,0x7A,0x7B,0x7C,0x7D,0x7F,0x89,0x8A,0x8B,0x8C,0x00,
-0x01,0x78,0x4E,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x67,0x67,0x56,0x56,0x0F,0x41,
-0x4E,0x12,0x13,0x67,0x67,0x64,0x78,0x75,0x78,0x67,0x78,0x1C,0x1D,0x1E,0x1F,0xFF,
-0x41,0x56,0x64,0x75,0x5E,0x6F,0xFF,0x67,0xFF,0x70,0x71,0x73,0x80,0xFF,0x81,0x82,
-0xFF,0x42,0xFF,0x5D,0xFF,0x41,0x6F,0xFF,0xFF,0x70,0x71,0x73,0x80,0xFF,0x81,0x82,
-0x6C,0x41,0x44,0x45,0x46,0x5F,0x49,0x4B,0x4A,0x4E,0x51,0x52,0x50,0x56,0x57,0x4D,
-0xFF,0x62,0x63,0x64,0x66,0x67,0x67,0xFF,0x6D,0x77,0x75,0x78,0x78,0x7E,0x74,0xFF,
-0x64,0x41,0x44,0x45,0x46,0x5F,0x49,0x4B,0x4A,0x4E,0x51,0x78,0x50,0x56,0x58,0x4D,
-0xFF,0x62,0x63,0x64,0x66,0x67,0x67,0xFF,0x6D,0x77,0x75,0x78,0x78,0x7E,0x74,0xFF
-};
-
-uint16 to_uni_latin2_hungarian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
-0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
-0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
-0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_koi8u
-uchar ctype_koi8u_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x02,0x02,0x10,0x02,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,
-0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
-};
-
-uchar to_lower_koi8u_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x5B,0x5C,0x5D,0x5E,0x5F,
-0x20,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,0x7F,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20,
-0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar to_upper_koi8u_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-0x20,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20,
-0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_koi8u_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-0x20,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,
-0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,
-0xC5,0xC6,0xC7,0x88,0x87,0xC8,0x8C,0x8D,0xC9,0xCA,0xCB,0xCC,0xCD,0x84,0xCE,0xCF,
-0xD0,0xD1,0xD2,0x88,0x87,0xD3,0x8C,0x8D,0xD4,0xD5,0xD6,0xD7,0xD8,0x84,0xD9,0xDA,
-0xA3,0x80,0x81,0x9B,0x85,0x86,0x99,0x83,0x9A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,
-0x94,0xA4,0x95,0x96,0x97,0x98,0x89,0x82,0xA1,0xA0,0x8A,0x9D,0xA2,0x9E,0x9C,0x9F,
-0xA3,0x80,0x81,0x9B,0x85,0x86,0x99,0x83,0x9A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,
-0x94,0xA4,0x95,0x96,0x97,0x98,0x89,0x82,0xA1,0xA0,0x8A,0x9D,0xA2,0x9E,0x9C,0x9F
-};
-
-uint16 to_uni_koi8u_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
-0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
-0x2591,0x2592,0x2593,0x2320,0x25A0,0x2022,0x221A,0x2248,
-0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
-0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,
-0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,
-0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,
-0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9,
-0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
-0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
-0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
-0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
-0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
-0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1251
-uchar ctype_cp1251_ukrainian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,
-0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,
-0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_cp1251_ukrainian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1251_ukrainian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F,
-0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar sort_order_cp1251_ukrainian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-0x20,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,
-0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,
-0xC5,0xC6,0xC7,0xC8,0xC9,0x84,0xCA,0xCB,0x88,0xCC,0x87,0xCD,0xCE,0xCF,0xD0,0x8D,
-0xD1,0xD2,0x8C,0x8C,0x84,0xD3,0xD4,0xD5,0x88,0xD6,0x87,0xD7,0xD8,0xD9,0xDA,0x8D,
-0x80,0x81,0x82,0x83,0x85,0x86,0x89,0x8A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,
-0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,
-0x80,0x81,0x82,0x83,0x85,0x86,0x89,0x8A,0x8B,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,
-0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4
-};
-
-uint16 to_uni_cp1251_ukrainian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
-0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
-0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
-0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
-0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
-0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
-0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_greek
-uchar ctype_greek_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x01,0x01,0x10,0x01,0x10,0x01,0x01,
-0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00
-};
-
-uchar to_lower_greek_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xDC,0xB7,0xDD,0xDE,0xDF,0xBB,0xFC,0xBD,0xFD,0xFE,
-0xC0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xD2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_greek_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xDA,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xC1,0xC5,0xC7,0xC9,
-0xDB,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xCF,0xD5,0xD9,0xFF
-};
-
-uchar sort_order_greek_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xC1,0xB7,0xC5,0xC7,0xC9,0xBB,0xCF,0xBD,0xD5,0xD9,
-0xC9,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xC9,0xD5,0xC1,0xC5,0xC7,0xC9,
-0xD5,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xC9,0xD5,0xCF,0xD5,0xD9,0xFF
-};
-
-uint16 to_uni_greek_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x02BD,0x02BC,0x00A3,0x0000,0x0000,0x00A6,0x00A7,
-0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x0000,0x2015,
-0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7,
-0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,
-0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
-0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
-0x03A0,0x03A1,0x0000,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,
-0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
-0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
-0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
-0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,
-0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
-uchar ctype_cp1250_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02,
-0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_cp1250_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1250_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_cp1250_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x55,
-0x56,0x57,0x58,0x59,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x63,0x64,0x65,0x66,0x67,
-0x68,0x41,0x42,0x43,0x46,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x55,
-0x56,0x57,0x58,0x59,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x5A,0x8B,0x5A,0x5B,0x62,0x62,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x5A,0x9B,0x5A,0x5B,0x62,0x62,
-0x20,0xA1,0xA2,0x50,0xA4,0x41,0xA6,0x59,0xA8,0xA9,0x59,0xAB,0xAC,0xAD,0xAE,0x62,
-0xB0,0xB1,0xB2,0x50,0xB4,0xB5,0xB6,0xB7,0xB8,0x41,0x59,0xBB,0x50,0xBD,0x50,0x62,
-0x58,0x41,0x41,0x41,0x41,0x50,0x45,0x43,0x44,0x49,0x49,0x49,0x49,0x4D,0x4D,0x46,
-0x47,0x53,0x53,0x55,0x55,0x55,0x55,0xD7,0x58,0x5C,0x5C,0x5C,0x5C,0x60,0x5B,0x59,
-0x58,0x41,0x41,0x41,0x41,0x50,0x45,0x43,0x44,0x49,0x49,0x49,0x49,0x4D,0x4D,0x46,
-0x47,0x53,0x53,0x55,0x55,0x55,0x55,0xF7,0x58,0x5C,0x5C,0x5C,0x5C,0x60,0x5B,0xFF
-};
-
-uint16 to_uni_cp1250_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
-0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
-0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
-0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin2
-uchar ctype_latin2_croatian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01,
-0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin2_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin2_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin2_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0xC6,0xC7,0xC8,0xC9,0xCA,
-0xCB,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0xCC,0xCD,0xCE,0xCF,0xD0,
-0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,
-0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,
-0xF1,0x41,0xF2,0x54,0xF3,0x54,0x5F,0xF4,0xF5,0x61,0x5F,0x62,0x6B,0xF6,0x8E,0x6B,
-0xF7,0x41,0xF8,0x54,0xF9,0x54,0x5F,0xFA,0xFB,0x61,0x5F,0x62,0x6B,0xFC,0x8E,0x6B,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48,
-0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xFD,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48,
-0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xFE,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF
-};
-
-uint16 to_uni_latin2_croatian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
-0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
-0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
-0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1257
-uchar ctype_cp1257_lithuanian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00
-};
-
-uchar to_lower_cp1257_lithuanian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1257_lithuanian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_cp1257_lithuanian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x44,0x46,0x47,0x4A,0x4B,0x4C,0x4D,0x50,0x51,0x52,0x53,0x54,0x55,
-0x56,0x57,0x58,0x59,0x5B,0x5C,0x5F,0x60,0x61,0x4E,0xFF,0x62,0x63,0x64,0x65,0x66,
-0x67,0x41,0x43,0x44,0x46,0x47,0x4A,0x4B,0x4C,0x4D,0x50,0x51,0x52,0x53,0x54,0x55,
-0x56,0x57,0x58,0x59,0x5B,0x5C,0x5F,0x60,0x61,0x4E,0xFF,0x68,0x69,0x6A,0x6B,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
-0x42,0x4F,0xFF,0xFF,0xFF,0xFF,0x48,0xFF,0x45,0xFF,0xFF,0x49,0xFF,0xFF,0xFF,0xFF,
-0x5A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x5E,0xFF,0xFF,0x5D,0xFF,0xFF,0xFF,0xFF,
-0xFF,0x4F,0xFF,0xFF,0xFF,0xFF,0x48,0xFF,0x45,0xFF,0xFF,0x49,0xFF,0xFF,0xFF,0xFF,
-0x5A,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x5E,0xFF,0xFF,0x5D,0xFF,0xFF,0xFF,0xFF
-};
-
-uint16 to_uni_cp1257_lithuanian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000,
-0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin5
-uchar ctype_latin5_turkish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin5_turkish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0xFD,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0x69,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin5_turkish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0xDD,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0x49,0xDE,0xFF
-};
-
-uchar sort_order_latin5_turkish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x45,0x46,0x47,0x48,0x4A,0x4B,0x4D,0x4E,0x4F,0x50,0x51,0x52,
-0x54,0x55,0x56,0x57,0x59,0x5A,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63,0x64,0x65,
-0x66,0x41,0x42,0x43,0x45,0x46,0x47,0x48,0x4A,0x4C,0x4D,0x4E,0x4F,0x50,0x51,0x52,
-0x54,0x55,0x56,0x57,0x59,0x5A,0x5C,0x5D,0x5E,0x5F,0x60,0x87,0x88,0x89,0x8A,0x8B,
-0x8C,0x8D,0x8E,0x8F,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,
-0x9C,0x9D,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,
-0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,
-0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x44,0x46,0x46,0x46,0x46,0x4C,0x4C,0x4C,0x4C,
-0x49,0x51,0x52,0x52,0x52,0x52,0x53,0xE0,0x52,0x5A,0x5A,0x5A,0x5B,0x4C,0x58,0x57,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x44,0x46,0x46,0x46,0x46,0x4C,0x4C,0x4C,0x4C,
-0x49,0x51,0x52,0x52,0x52,0x52,0x53,0xFA,0x52,0x5A,0x5A,0x5A,0x5B,0x4B,0x58,0x5F
-};
-
-uint16 to_uni_latin5_turkish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_armscii8
-uchar ctype_armscii8_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x10,0x10
-};
-
-uchar to_lower_armscii8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB3,0xB3,0xB5,0xB5,0xB7,0xB7,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,0xBF,
-0xC1,0xC1,0xC3,0xC3,0xC5,0xC5,0xC7,0xC7,0xC9,0xC9,0xCB,0xCB,0xCD,0xCD,0xCF,0xCF,
-0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xD9,0xD9,0xDB,0xDB,0xDD,0xDD,0xDF,0xDF,
-0xE1,0xE1,0xE3,0xE3,0xE5,0xE5,0xE7,0xE7,0xE9,0xE9,0xEB,0xEB,0xED,0xED,0xEF,0xEF,
-0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFB,0xFB,0xFD,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_armscii8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xB4,0xB4,0xB6,0xB6,0xB8,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,
-0xC0,0xC0,0xC2,0xC2,0xC4,0xC4,0xC6,0xC6,0xC8,0xC8,0xCA,0xCA,0xCC,0xCC,0xCE,0xCE,
-0xD0,0xD0,0xD2,0xD2,0xD4,0xD4,0xD6,0xD6,0xD8,0xD8,0xDA,0xDA,0xDC,0xDC,0xDE,0xDE,
-0xE0,0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,
-0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF
-};
-
-uchar sort_order_armscii8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_armscii8_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x2741,0x00A7,0x0589,0x0029,0x0028,0x00BB,0x00AB,
-0x2014,0x002E,0x055D,0x002C,0x002D,0x055F,0x2026,0x055C,
-0x055B,0x055E,0x0531,0x0561,0x0532,0x0562,0x0533,0x0563,
-0x0534,0x0564,0x0535,0x0565,0x0536,0x0566,0x0537,0x0567,
-0x0538,0x0568,0x0539,0x0569,0x053A,0x056A,0x053B,0x056B,
-0x053C,0x056C,0x053D,0x056D,0x053E,0x056E,0x053F,0x056F,
-0x0540,0x0570,0x0541,0x0571,0x0542,0x0572,0x0543,0x0573,
-0x0544,0x0574,0x0545,0x0575,0x0546,0x0576,0x0547,0x0577,
-0x0548,0x0578,0x0549,0x0579,0x054A,0x057A,0x054B,0x057B,
-0x054C,0x057C,0x054D,0x057D,0x054E,0x057E,0x054F,0x057F,
-0x0550,0x0580,0x0551,0x0581,0x0552,0x0582,0x0553,0x0583,
-0x0554,0x0584,0x0555,0x0585,0x0556,0x0586,0x2019,0x0027
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp866
-uchar ctype_cp866_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48
-};
-
-uchar to_lower_cp866_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp866_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_cp866_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D,
-0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xBD,0xBE,0xBF,0xC0,0xC1,
-0xC2,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x54,0x55,0x57,0x59,0x5B,0x5D,
-0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xC3,0xC4,0xC5,0xC6,0xC7,
-0x75,0x77,0x79,0x7B,0x7D,0x7F,0x85,0x87,0x89,0x8D,0x8F,0x91,0x93,0x95,0x97,0x99,
-0x9B,0x9D,0x9F,0xA1,0xA5,0xA7,0xA9,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9,0xBB,
-0x75,0x77,0x79,0x7B,0x7D,0x7F,0x85,0x87,0x89,0x8D,0x8F,0x91,0x93,0x95,0x97,0x99,
-0xC8,0xC9,0xCA,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0x9B,0x9D,0x9F,0xA1,0xA5,0xA7,0xA9,0xAB,0xAD,0xAF,0xB1,0xB3,0xB5,0xB7,0xB9,0xBB,
-0x81,0x81,0x83,0x83,0x8B,0x8B,0xA3,0xA3,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2
-};
-
-uint16 to_uni_cp866_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
-0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
-0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
-0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,
-0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E,
-0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_keybcs2
-uchar ctype_keybcs2_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x02,0x82,0x02,0x02,0x01,0x01,0x02,0x82,0x81,0x01,0x01,0x02,0x02,0x01,0x01,
-0x81,0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x01,0x02,0x00,0x02,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48
-};
-
-uchar to_lower_keybcs2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x83,0x86,0x87,0x88,0x88,0x8D,0xA1,0x8C,0x8D,0x84,0xA0,
-0x82,0x91,0x91,0x93,0x94,0xA2,0x96,0xA3,0x98,0x94,0x81,0x9B,0x8C,0x98,0xA9,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0x96,0x93,0x9B,0xA9,0xAA,0xAA,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xED,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_keybcs2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x68,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x87,0x9A,0x90,0x85,0x8E,0x85,0x86,0x80,0x89,0x89,0x8A,0x8B,0x9C,0x8A,0x8E,0x8F,
-0x90,0x92,0x92,0xA7,0x99,0x95,0xA6,0x97,0x9D,0x99,0x9A,0xA8,0x9C,0x9D,0x9E,0x9F,
-0x8F,0x8B,0x95,0x97,0xA5,0xA5,0xA6,0xA7,0xA8,0x9E,0xAB,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xE8,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_keybcs2_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x44,0x45,0x47,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x5A,
-0x5E,0x5F,0x60,0x63,0x66,0x68,0x6C,0x6D,0x6E,0x6F,0x72,0x90,0x91,0x92,0x93,0x94,
-0x95,0x41,0x44,0x45,0x47,0x49,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x5A,
-0x5E,0x5F,0x60,0x63,0x66,0x68,0x6C,0x6D,0x6E,0x6F,0x72,0x96,0x97,0x98,0x99,0x9A,
-0x45,0x68,0x49,0x47,0x41,0x47,0x66,0x45,0x49,0x49,0x56,0x53,0x56,0x56,0x41,0x41,
-0x49,0x72,0x72,0x5A,0x5A,0x5A,0x68,0x68,0x6F,0x5A,0x68,0x63,0x56,0x6F,0x60,0x66,
-0x41,0x53,0x5A,0x68,0x58,0x58,0x68,0x5A,0x63,0x60,0x60,0x60,0xA0,0xA1,0xA2,0xA3,
-0xA4,0xA5,0xA6,0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,
-0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,
-0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,
-0x80,0x65,0x83,0x87,0x88,0x89,0xDD,0x8A,0x85,0x8B,0x84,0x81,0xDE,0x85,0x82,0xDF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_keybcs2_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x010C,0x00FC,0x00E9,0x010F,0x00E4,0x010E,0x0164,0x010D,
-0x011B,0x011A,0x0139,0x00CD,0x013E,0x013A,0x00C4,0x00C1,
-0x00C9,0x017E,0x017D,0x00F4,0x00F6,0x00D3,0x016F,0x00DA,
-0x00FD,0x00D6,0x00DC,0x0160,0x013D,0x00DD,0x0158,0x0165,
-0x00E1,0x00ED,0x00F3,0x00FA,0x0148,0x0147,0x016E,0x00D4,
-0x0161,0x0159,0x0155,0x0154,0x00BC,0x00A1,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
-0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
-0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
-0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
-0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,
-0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229,
-0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
-0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_macce
-uchar ctype_macce_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x01,0x02,0x02,0x01,0x02,0x02,0x01,
-0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,
-0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x02,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x01,0x00,0x00,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x01,
-0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x02,0x01,0x01,0x02,0x01,0x00
-};
-
-uchar to_lower_macce_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x8A,0x82,0x82,0x8E,0x88,0x9A,0x9F,0x87,0x88,0x8B,0x8A,0x8B,0x8D,0x8D,0x8E,0x90,
-0x90,0x93,0x92,0x93,0x95,0x95,0x98,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9E,0x9E,0x9F,
-0xA0,0xA1,0xAB,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xB0,
-0xB0,0xB4,0xB2,0xB3,0xB4,0xFA,0xB6,0xB7,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,0xC0,
-0xC0,0xC4,0xC2,0xC3,0xC4,0xCB,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0x9B,0xCE,0xD8,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xDA,0xDA,0xDE,0xDC,0xDD,0xDE,0xE0,
-0xE0,0xE4,0xE2,0xE3,0xE4,0xE6,0xE6,0x87,0xE9,0xE9,0x92,0xEC,0xEC,0xF0,0x97,0x99,
-0xF0,0xF3,0x9C,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFA,0xFD,0xB8,0xFD,0xAE,0xFF
-};
-
-uchar to_upper_macce_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x81,0x83,0x84,0x85,0x86,0xE7,0x84,0x89,0x80,0x89,0x8C,0x8C,0x83,0x8F,
-0x8F,0x91,0xEA,0x91,0x94,0x94,0x96,0xEE,0x96,0xEF,0x85,0xCD,0xF2,0x9D,0x9D,0x86,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xA2,0xAC,0xAD,0xFE,0xAF,
-0xAF,0xB1,0xB2,0xB3,0xB1,0xB5,0xB6,0xB7,0xFC,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,
-0xBF,0xC1,0xC2,0xC3,0xC1,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xC5,0xCC,0xCD,0xCC,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xCF,0xD9,0xD9,0xDB,0xDC,0xDD,0xDB,0xDF,
-0xDF,0xE1,0xE2,0xE3,0xE1,0xE5,0xE5,0xE7,0xE8,0xE8,0xEA,0xEB,0xEB,0xED,0xEE,0xEF,
-0xED,0xF1,0xF2,0xF1,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xB5,0xFB,0xFC,0xFB,0xFE,0xFF
-};
-
-uchar sort_order_macce_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x46,0x47,0x4A,0x4C,0x52,0x53,0x55,0x56,0x5A,0x5B,0x5D,0x62,0x62,0x67,
-0x6F,0x70,0x71,0x75,0x79,0x81,0x88,0x89,0x8A,0x8B,0x8D,0x90,0x91,0x92,0x93,0x94,
-0x95,0x41,0x46,0x47,0x4A,0x4C,0x52,0x53,0x55,0x56,0x5A,0x5B,0x5D,0x62,0x62,0x67,
-0x6F,0x70,0x71,0x75,0x79,0x81,0x88,0x89,0x8A,0x8B,0x8D,0x96,0x97,0x98,0x99,0x9A,
-0x41,0x41,0x41,0x4C,0x41,0x67,0x81,0x41,0x41,0x47,0x41,0x47,0x47,0x47,0x4C,0x8D,
-0x8D,0x4A,0x56,0x4A,0x4C,0x4C,0x4C,0x67,0x4C,0x67,0x67,0x67,0x81,0x4C,0x4C,0x81,
-0xA0,0xA1,0x4C,0xA3,0xA4,0xA5,0xA6,0x75,0xA8,0xA9,0xAA,0x4C,0xAC,0xAD,0x53,0x56,
-0x56,0x56,0xB2,0xB3,0x56,0x5B,0xB6,0xB7,0x5D,0x5D,0x5D,0x5D,0x5D,0x5D,0x5D,0x62,
-0x62,0x62,0xC2,0xC3,0x62,0x62,0xC6,0xC7,0xC8,0xC9,0xCA,0x62,0x67,0x67,0x67,0x67,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0x67,0x71,0x71,0x71,0xDC,0xDD,0x71,0x71,
-0x71,0x75,0xE2,0xE3,0x75,0x75,0x75,0x41,0x79,0x79,0x56,0x8D,0x8D,0x81,0x67,0x67,
-0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x8B,0x8B,0x5B,0x8D,0x5D,0x8D,0x53,0xFF
-};
-
-uint16 to_uni_macce_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C4,0x0100,0x0101,0x00C9,0x0104,0x00D6,0x00DC,0x00E1,
-0x0105,0x010C,0x00E4,0x010D,0x0106,0x0107,0x00E9,0x0179,
-0x017A,0x010E,0x00ED,0x010F,0x0112,0x0113,0x0116,0x00F3,
-0x0117,0x00F4,0x00F6,0x00F5,0x00FA,0x011A,0x011B,0x00FC,
-0x2020,0x00B0,0x0118,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
-0x00AE,0x00A9,0x2122,0x0119,0x00A8,0x2260,0x0123,0x012E,
-0x012F,0x012A,0x2264,0x2265,0x012B,0x0136,0x2202,0x2211,
-0x0142,0x013B,0x013C,0x013D,0x013E,0x0139,0x013A,0x0145,
-0x0146,0x0143,0x00AC,0x221A,0x0144,0x0147,0x2206,0x00AB,
-0x00BB,0x2026,0x00A0,0x0148,0x0150,0x00D5,0x0151,0x014C,
-0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
-0x014D,0x0154,0x0155,0x0158,0x2039,0x203A,0x0159,0x0156,
-0x0157,0x0160,0x201A,0x201E,0x0161,0x015A,0x015B,0x00C1,
-0x0164,0x0165,0x00CD,0x017D,0x017E,0x016A,0x00D3,0x00D4,
-0x016B,0x016E,0x00DA,0x016F,0x0170,0x0171,0x0172,0x0173,
-0x00DD,0x00FD,0x0137,0x017B,0x0141,0x017C,0x0122,0x02C7
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_macroman
-uchar ctype_macroman_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x10,
-0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,
-0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x00,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_macroman_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x8A,0x8C,0x8D,0x8E,0x96,0x9A,0x9F,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0x88,0x8B,0x9B,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0x89,0x90,0x87,0x91,0x8F,0x92,0x94,0x95,0x93,0x97,0x99,
-0xF0,0x98,0x9C,0x9E,0x9D,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_macroman_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0xE7,0xCB,0xE5,0x80,0xCC,0x81,0x82,0x83,0xE9,
-0xE6,0xE8,0xEA,0xED,0xEB,0xEC,0x84,0xEE,0xF1,0xEF,0x85,0xCD,0xF2,0xF4,0xF3,0x86,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD9,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_macroman_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x49,0x50,0x52,0x53,0x57,0x59,0x60,0x61,0x67,0x68,0x69,0x70,0x71,0x72,
-0x79,0x80,0x81,0x82,0x84,0x85,0x90,0x91,0x92,0x93,0x95,0xA0,0xA1,0xA2,0xA3,0xA4,
-0xA5,0x41,0x49,0x50,0x52,0x53,0x57,0x59,0x60,0x61,0x67,0x68,0x69,0x70,0x71,0x72,
-0x79,0x80,0x81,0x82,0x84,0x85,0x90,0x91,0x92,0x93,0x95,0xA6,0xA7,0xA8,0xA9,0xAA,
-0x41,0x41,0x50,0x53,0x71,0x72,0x85,0x41,0x41,0x41,0x41,0x41,0x41,0x50,0x53,0x53,
-0x53,0x53,0x61,0x61,0x61,0x61,0x71,0x72,0x72,0x72,0x72,0x72,0x85,0x85,0x85,0x85,
-0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0xB1,0x82,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0x48,0x72,
-0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x48,0x72,
-0xC6,0xC7,0xC8,0xC9,0x57,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0x41,0x41,0x72,0xD0,0xD1,
-0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x93,0x93,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0x41,0x53,0x41,0x53,0x53,0x61,0x61,0x61,0x61,0x72,0x72,
-0xF0,0x72,0x85,0x85,0x85,0x61,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_macroman_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
-0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
-0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
-0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
-0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
-0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
-0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
-0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
-0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
-0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
-0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
-0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
-0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
-0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
-0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
-0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp852
-uchar ctype_cp852_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,0x01,0x01,0x01,
-0x01,0x01,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x02,0x01,0x00,0x02,
-0x02,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x01,0x00,
-0x01,0x02,0x01,0x01,0x02,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x00,0x48
-};
-
-uchar to_lower_cp852_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8B,0x8B,0x8C,0xAB,0x84,0x86,
-0x82,0x92,0x92,0x93,0x94,0x96,0x96,0x98,0x98,0x94,0x81,0x9C,0x9C,0x88,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAA,0xAB,0x9F,0xB8,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xA0,0x83,0xD8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD0,0xD4,0x89,0xD4,0xE5,0xA1,0x8C,0xD8,0xD9,0xDA,0xDB,0xDC,0xEE,0x85,0xDF,
-0xA2,0xE1,0x93,0xE4,0xE4,0xE5,0xE7,0xE7,0xEA,0xA3,0xE8,0xFB,0xEC,0xEC,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp852_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F,
-0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC,
-0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xAD,0xB9,0xBA,0xBB,0xBC,0xBE,0xBD,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF
-};
-
-uchar sort_order_cp852_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x47,0x48,0x4C,0x4F,0x54,0x55,0x56,0x57,0x5A,0x5B,0x5C,0x5E,0x5F,0x62,
-0x67,0x68,0x69,0x6C,0x71,0x74,0x75,0x76,0x77,0x78,0x7B,0x90,0x91,0x92,0x93,0x94,
-0x95,0x41,0x47,0x48,0x4C,0x4F,0x54,0x55,0x56,0x57,0x5A,0x5B,0x5C,0x5E,0x5F,0x62,
-0x67,0x68,0x69,0x6C,0x71,0x74,0x75,0x76,0x77,0x78,0x7B,0x96,0x97,0x98,0x99,0x9A,
-0x48,0x74,0x4F,0x41,0x41,0x74,0x48,0x48,0x5C,0x4F,0x62,0x62,0x57,0x7B,0x41,0x48,
-0x4F,0x5C,0x5C,0x62,0x62,0x5C,0x5C,0x6C,0x6C,0x62,0x74,0x71,0x71,0x5C,0x9E,0x48,
-0x41,0x57,0x62,0x74,0x41,0x41,0x7B,0x7B,0x4F,0x4F,0xAA,0x7B,0x48,0x6C,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0x41,0x41,0x4F,0x6C,0xB5,0xBA,0xBB,0xBC,0x7B,0x7B,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x41,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0x4C,0x4C,0x4C,0x4F,0x4C,0x60,0x57,0x57,0x4F,0xD9,0xDA,0xDB,0xDC,0x71,0x74,0xDF,
-0x62,0x70,0x62,0x60,0x60,0x60,0x6C,0x6C,0x69,0x74,0x69,0x74,0x78,0x78,0x71,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0x74,0x69,0x69,0xFE,0xFF
-};
-
-uint16 to_uni_cp852_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x016F,0x0107,0x00E7,
-0x0142,0x00EB,0x0150,0x0151,0x00EE,0x0179,0x00C4,0x0106,
-0x00C9,0x0139,0x013A,0x00F4,0x00F6,0x013D,0x013E,0x015A,
-0x015B,0x00D6,0x00DC,0x0164,0x0165,0x0141,0x00D7,0x010D,
-0x00E1,0x00ED,0x00F3,0x00FA,0x0104,0x0105,0x017D,0x017E,
-0x0118,0x0119,0x00AC,0x017A,0x010C,0x015F,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x011A,
-0x015E,0x2563,0x2551,0x2557,0x255D,0x017B,0x017C,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0102,0x0103,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4,
-0x0111,0x0110,0x010E,0x00CB,0x010F,0x0147,0x00CD,0x00CE,
-0x011B,0x2518,0x250C,0x2588,0x2584,0x0162,0x016E,0x2580,
-0x00D3,0x00DF,0x00D4,0x0143,0x0144,0x0148,0x0160,0x0161,
-0x0154,0x00DA,0x0155,0x0170,0x00FD,0x00DD,0x0163,0x00B4,
-0x00AD,0x02DD,0x02DB,0x02C7,0x02D8,0x00A7,0x00F7,0x00B8,
-0x00B0,0x00A8,0x02D9,0x0171,0x0158,0x0159,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin7
-uchar ctype_latin7_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20,
-0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin7_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin7_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin7_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x30,0x32,0x33,0x34,0x35,0x36,0x37,0x2B,0x38,0x39,0x3A,0x5C,0x3B,0x2C,0x3C,0x3D,
-0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3E,0x3F,0x5D,0x5E,0x5F,0x40,
-0x41,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8,
-0xD4,0xD6,0xD8,0xDC,0xE3,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x42,0x43,0x44,0x45,0x46,
-0x47,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8,
-0xD4,0xD6,0xD8,0xDC,0xE2,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x48,0x49,0x4A,0x4B,0x20,
-0x75,0x21,0x56,0x22,0x59,0x73,0x70,0x71,0x23,0x74,0x24,0x5A,0x25,0x4D,0x51,0x50,
-0x26,0x54,0x55,0x57,0x58,0x72,0x2E,0x2F,0x27,0xE5,0x28,0x5B,0x29,0x4E,0x53,0x2A,
-0x31,0xFE,0x65,0x66,0x67,0xFF,0x4C,0x68,0x2D,0x69,0xDA,0x61,0x6A,0x2D,0x6B,0x90,
-0x6C,0x60,0x7D,0x7F,0x4F,0x6D,0x6E,0x6F,0xD3,0x7B,0xDB,0x62,0x77,0x78,0x79,0x90,
-0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE,
-0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x63,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0xE0,
-0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE,
-0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x64,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0x52
-};
-
-uint16 to_uni_latin7_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin7
-uchar ctype_latin7_general_cs[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20,
-0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin7_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin7_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin7_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x30,0x32,0x33,0x34,0x35,0x36,0x37,0x2B,0x38,0x39,0x3A,0x5C,0x3B,0x2C,0x3C,0x3D,
-0x76,0x7A,0x7C,0x7E,0x80,0x81,0x82,0x83,0x84,0x85,0x3E,0x3F,0x5D,0x5E,0x5F,0x40,
-0x41,0x86,0x92,0x94,0x9A,0x9C,0xA6,0xA8,0xAC,0xAE,0xB4,0xB6,0xBA,0xC0,0xC2,0xC8,
-0xD4,0xD6,0xD8,0xDC,0xE3,0xE6,0xEE,0xF0,0xF2,0xF4,0xF6,0x42,0x43,0x44,0x45,0x46,
-0x47,0x87,0x93,0x95,0x9B,0x9D,0xA7,0xA9,0xAD,0xAF,0xB5,0xB7,0xBB,0xC1,0xC3,0xC9,
-0xD5,0xD7,0xD9,0xDD,0xE4,0xE7,0xEF,0xF1,0xF3,0xF5,0xF7,0x48,0x49,0x4A,0x4B,0x20,
-0x75,0x21,0x56,0x22,0x59,0x73,0x70,0x71,0x23,0x74,0x24,0x5A,0x25,0x4D,0x51,0x50,
-0x26,0x54,0x55,0x57,0x58,0x72,0x2E,0x2F,0x27,0xE5,0x28,0x5B,0x29,0x4E,0x53,0x2A,
-0x31,0xFE,0x65,0x66,0x67,0xFF,0x4C,0x68,0xD3,0x69,0xDA,0x61,0x6A,0x2D,0x6B,0x90,
-0x6C,0x60,0x7D,0x7F,0x4F,0x6D,0x6E,0x6F,0xD2,0x7B,0xDB,0x62,0x77,0x78,0x79,0x91,
-0x8E,0xB2,0x8A,0x96,0x88,0x8C,0xA4,0xA2,0x98,0x9E,0xF8,0xA0,0xAA,0xB8,0xB0,0xBE,
-0xE1,0xC4,0xC6,0xCA,0xCE,0xD0,0xCC,0x63,0xEC,0xBC,0xDE,0xEA,0xE8,0xFA,0xFC,0xE0,
-0x8F,0xB3,0x8B,0x97,0x89,0x8D,0xA5,0xA3,0x99,0x9F,0xF9,0xA1,0xAB,0xB9,0xB1,0xBF,
-0xE2,0xC5,0xC7,0xCB,0xCF,0xD1,0xCD,0x64,0xED,0xBD,0xDF,0xEB,0xE9,0xFB,0xFD,0x52
-};
-
-uint16 to_uni_latin7_general_cs[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_macce
-uchar ctype_macce_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x02,0x01,0x01,0x01,0x01,0x02,0x02,0x01,0x02,0x02,0x01,0x02,0x02,0x01,
-0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,
-0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x01,0x02,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x01,0x00,0x00,0x02,0x01,
-0x02,0x01,0x00,0x00,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x02,0x01,0x01,0x01,
-0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x02,0x01,0x01,0x02,0x01,0x00
-};
-
-uchar to_lower_macce_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x8A,0x82,0x82,0x8E,0x88,0x9A,0x9F,0x87,0x88,0x8B,0x8A,0x8B,0x8D,0x8D,0x8E,0x90,
-0x90,0x93,0x92,0x93,0x95,0x95,0x98,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9E,0x9E,0x9F,
-0xA0,0xA1,0xAB,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xB0,
-0xB0,0xB4,0xB2,0xB3,0xB4,0xFA,0xB6,0xB7,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,0xC0,
-0xC0,0xC4,0xC2,0xC3,0xC4,0xCB,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCE,0x9B,0xCE,0xD8,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xDA,0xDA,0xDE,0xDC,0xDD,0xDE,0xE0,
-0xE0,0xE4,0xE2,0xE3,0xE4,0xE6,0xE6,0x87,0xE9,0xE9,0x92,0xEC,0xEC,0xF0,0x97,0x99,
-0xF0,0xF3,0x9C,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFA,0xFD,0xB8,0xFD,0xAE,0xFF
-};
-
-uchar to_upper_macce_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
-0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x81,0x83,0x84,0x85,0x86,0xE7,0x84,0x89,0x80,0x89,0x8C,0x8C,0x83,0x8F,
-0x8F,0x91,0xEA,0x91,0x94,0x94,0x96,0xEE,0x96,0xEF,0x85,0xCD,0xF2,0x9D,0x9D,0x86,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xA2,0xAC,0xAD,0xFE,0xAF,
-0xAF,0xB1,0xB2,0xB3,0xB1,0xB5,0xB6,0xB7,0xFC,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,
-0xBF,0xC1,0xC2,0xC3,0xC1,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xC5,0xCC,0xCD,0xCC,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xCF,0xD9,0xD9,0xDB,0xDC,0xDD,0xDB,0xDF,
-0xDF,0xE1,0xE2,0xE3,0xE1,0xE5,0xE5,0xE7,0xE8,0xE8,0xEA,0xEB,0xEB,0xED,0xEE,0xEF,
-0xED,0xF1,0xF2,0xF1,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xB5,0xFB,0xFC,0xFB,0xFE,0xFF
-};
-
-uint16 to_uni_macce_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C4,0x0100,0x0101,0x00C9,0x0104,0x00D6,0x00DC,0x00E1,
-0x0105,0x010C,0x00E4,0x010D,0x0106,0x0107,0x00E9,0x0179,
-0x017A,0x010E,0x00ED,0x010F,0x0112,0x0113,0x0116,0x00F3,
-0x0117,0x00F4,0x00F6,0x00F5,0x00FA,0x011A,0x011B,0x00FC,
-0x2020,0x00B0,0x0118,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
-0x00AE,0x00A9,0x2122,0x0119,0x00A8,0x2260,0x0123,0x012E,
-0x012F,0x012A,0x2264,0x2265,0x012B,0x0136,0x2202,0x2211,
-0x0142,0x013B,0x013C,0x013D,0x013E,0x0139,0x013A,0x0145,
-0x0146,0x0143,0x00AC,0x221A,0x0144,0x0147,0x2206,0x00AB,
-0x00BB,0x2026,0x00A0,0x0148,0x0150,0x00D5,0x0151,0x014C,
-0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
-0x014D,0x0154,0x0155,0x0158,0x2039,0x203A,0x0159,0x0156,
-0x0157,0x0160,0x201A,0x201E,0x0161,0x015A,0x015B,0x00C1,
-0x0164,0x0165,0x00CD,0x017D,0x017E,0x016A,0x00D3,0x00D4,
-0x016B,0x016E,0x00DA,0x016F,0x0170,0x0171,0x0172,0x0173,
-0x00DD,0x00FD,0x0137,0x017B,0x0141,0x017C,0x0122,0x02C7
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
-uchar ctype_cp1250_croatian_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02,
-0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_cp1250_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1250_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_cp1250_croatian_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x90,0x91,0x92,0x93,0x94,
-0x95,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x96,0x97,0x98,0x99,0x9A,
-0x9B,0x9C,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x60,0xA6,0x5F,0x62,0x6C,0x6B,
-0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0x60,0xB1,0x5F,0x62,0x6C,0x6B,
-0xB2,0xB3,0xB4,0x54,0xB5,0x41,0xB6,0xB7,0xB8,0xB9,0x5F,0xBA,0xBB,0xBC,0xBD,0x6B,
-0xBE,0xBF,0xC0,0x54,0xC1,0xC2,0xC3,0xC4,0xC5,0x41,0x5F,0xC6,0x54,0xC7,0x54,0x6B,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48,
-0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xC8,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x46,0x4B,0x4B,0x4B,0x4B,0x50,0x50,0x48,
-0x4A,0x57,0x57,0x59,0x59,0x59,0x59,0xC9,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF
-};
-
-uint16 to_uni_cp1250_croatian_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
-0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
-0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
-0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin1
-uchar ctype_latin1_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin1_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin1_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin1_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81,
-0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7,
-0xB8,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81,
-0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB9,0xBA,0xBB,0xBC,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73,
-0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBD,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0x97,
-0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73,
-0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBE,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0xAE
-};
-
-uint16 to_uni_latin1_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin1
-uchar ctype_latin1_general_cs[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin1_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin1_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin1_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81,
-0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7,
-0xB8,0x42,0x52,0x54,0x58,0x5C,0x66,0x68,0x6A,0x6C,0x76,0x78,0x7A,0x7C,0x7E,0x82,
-0x90,0x92,0x94,0x96,0x99,0x9B,0xA5,0xA7,0xA9,0xAB,0xB0,0xB9,0xBA,0xBB,0xBC,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x55,0x5D,0x5F,0x61,0x63,0x6D,0x6F,0x71,0x73,
-0x59,0x7F,0x83,0x85,0x87,0x89,0x8B,0xBD,0x8D,0x9C,0x9E,0xA0,0xA2,0xAC,0xB1,0x97,
-0x44,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x56,0x5E,0x60,0x62,0x64,0x6E,0x70,0x72,0x74,
-0x5A,0x80,0x84,0x86,0x88,0x8A,0x8C,0xBE,0x8E,0x9D,0x9F,0xA1,0xA3,0xAD,0xB2,0xAE
-};
-
-uint16 to_uni_latin1_general_cs[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1251
-uchar ctype_cp1251_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,
-0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,
-0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_cp1251_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1251_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F,
-0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uint16 to_uni_cp1251_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
-0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
-0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
-0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
-0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
-0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
-0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1251
-uchar ctype_cp1251_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,
-0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,
-0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_cp1251_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1251_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F,
-0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar sort_order_cp1251_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D,
-0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD3,0xD4,0xD5,0xD6,0xD7,
-0xD8,0x41,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D,
-0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD9,0xDA,0xDB,0xDC,0xDD,
-0x81,0x83,0xDE,0x83,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xA1,0xE5,0xA7,0x9D,0xB3,0xC1,
-0x81,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xA1,0xEF,0xA7,0x9D,0xB3,0xC1,
-0xF0,0xB7,0xB7,0x99,0xF1,0x7D,0xF2,0xF3,0x87,0xF4,0x89,0xF5,0xF6,0xF7,0xF8,0x95,
-0xF9,0xFA,0x93,0x93,0x7D,0xFB,0xFC,0xFD,0x87,0xFE,0x89,0xFF,0x99,0x8F,0x8F,0x95,
-0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB,
-0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1,
-0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB,
-0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1
-};
-
-uint16 to_uni_cp1251_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
-0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
-0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
-0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
-0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
-0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
-0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1251
-uchar ctype_cp1251_general_cs[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x01,
-0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x02,0x02,0x02,
-0x00,0x01,0x02,0x01,0x00,0x01,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x01,0x02,0x02,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x01,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_cp1251_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x90,0x83,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA2,0xA2,0xBC,0xA4,0xB4,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB3,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1251_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x81,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x80,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x9D,0x8E,0x8F,
-0xA0,0xA1,0xA1,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xA5,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xA3,0xBD,0xBD,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar sort_order_cp1251_general_cs[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x45,0x47,0x49,0x4B,0x4D,0x4F,0x51,0x53,0x55,0x57,0x59,0x5B,0x5D,
-0x5F,0x61,0x63,0x65,0x67,0x69,0x6B,0x6D,0x6F,0x71,0x73,0xD3,0xD4,0xD5,0xD6,0xD7,
-0xD8,0x42,0x44,0x46,0x48,0x4A,0x4C,0x4E,0x50,0x52,0x54,0x56,0x58,0x5A,0x5C,0x5E,
-0x60,0x62,0x64,0x66,0x68,0x6A,0x6C,0x6E,0x70,0x72,0x74,0xD9,0xDA,0xDB,0xDC,0xDD,
-0x81,0x83,0xDE,0x84,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xA1,0xE5,0xA7,0x9D,0xB3,0xC1,
-0x82,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xA2,0xEF,0xA8,0x9E,0xB4,0xC2,
-0xF0,0xB7,0xB8,0x99,0xF1,0x7D,0xF2,0xF3,0x87,0xF4,0x89,0xF5,0xF6,0xF7,0xF8,0x95,
-0xF9,0xFA,0x93,0x94,0x7E,0xFB,0xFC,0xFD,0x88,0xFE,0x8A,0xFF,0x9A,0x8F,0x90,0x96,
-0x75,0x77,0x79,0x7B,0x7F,0x85,0x8B,0x8D,0x91,0x97,0x9B,0x9F,0xA3,0xA5,0xA9,0xAB,
-0xAD,0xAF,0xB1,0xB5,0xB9,0xBB,0xBD,0xBF,0xC3,0xC5,0xC7,0xC9,0xCB,0xCD,0xCF,0xD1,
-0x76,0x78,0x7A,0x7C,0x80,0x86,0x8C,0x8E,0x92,0x98,0x9C,0xA0,0xA4,0xA6,0xAA,0xAC,
-0xAE,0xB0,0xB2,0xB6,0xBA,0xBC,0xBE,0xC0,0xC4,0xC6,0xC8,0xCA,0xCC,0xCE,0xD0,0xD2
-};
-
-uint16 to_uni_cp1251_general_cs[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0402,0x0403,0x201A,0x0453,0x201E,0x2026,0x2020,0x2021,
-0x20AC,0x2030,0x0409,0x2039,0x040A,0x040C,0x040B,0x040F,
-0x0452,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0459,0x203A,0x045A,0x045C,0x045B,0x045F,
-0x00A0,0x040E,0x045E,0x0408,0x00A4,0x0490,0x00A6,0x00A7,
-0x0401,0x00A9,0x0404,0x00AB,0x00AC,0x00AD,0x00AE,0x0407,
-0x00B0,0x00B1,0x0406,0x0456,0x0491,0x00B5,0x00B6,0x00B7,
-0x0451,0x2116,0x0454,0x00BB,0x0458,0x0405,0x0455,0x0457,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_macroman
-uchar ctype_macroman_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x10,
-0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,
-0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x20,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x00,0x01,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_macroman_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x8A,0x8C,0x8D,0x8E,0x96,0x9A,0x9F,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0x88,0x8B,0x9B,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD8,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0x89,0x90,0x87,0x91,0x8F,0x92,0x94,0x95,0x93,0x97,0x99,
-0xF0,0x98,0x9C,0x9E,0x9D,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_macroman_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0xE7,0xCB,0xE5,0x80,0xCC,0x81,0x82,0x83,0xE9,
-0xE6,0xE8,0xEA,0xED,0xEB,0xEC,0x84,0xEE,0xF1,0xEF,0x85,0xCD,0xF2,0xF4,0xF3,0x86,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD9,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_macroman_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C4,0x00C5,0x00C7,0x00C9,0x00D1,0x00D6,0x00DC,0x00E1,
-0x00E0,0x00E2,0x00E4,0x00E3,0x00E5,0x00E7,0x00E9,0x00E8,
-0x00EA,0x00EB,0x00ED,0x00EC,0x00EE,0x00EF,0x00F1,0x00F3,
-0x00F2,0x00F4,0x00F6,0x00F5,0x00FA,0x00F9,0x00FB,0x00FC,
-0x2020,0x00B0,0x00A2,0x00A3,0x00A7,0x2022,0x00B6,0x00DF,
-0x00AE,0x00A9,0x2122,0x00B4,0x00A8,0x2260,0x00C6,0x00D8,
-0x221E,0x00B1,0x2264,0x2265,0x00A5,0x00B5,0x2202,0x2211,
-0x220F,0x03C0,0x222B,0x00AA,0x00BA,0x03A9,0x00E6,0x00F8,
-0x00BF,0x00A1,0x00AC,0x221A,0x0192,0x2248,0x2206,0x00AB,
-0x00BB,0x2026,0x00A0,0x00C0,0x00C3,0x00D5,0x0152,0x0153,
-0x2013,0x2014,0x201C,0x201D,0x2018,0x2019,0x00F7,0x25CA,
-0x00FF,0x0178,0x2044,0x20AC,0x2039,0x203A,0xFB01,0xFB02,
-0x2021,0x00B7,0x201A,0x201E,0x2030,0x00C2,0x00CA,0x00C1,
-0x00CB,0x00C8,0x00CD,0x00CE,0x00CF,0x00CC,0x00D3,0x00D4,
-0xF8FF,0x00D2,0x00DA,0x00DB,0x00D9,0x0131,0x02C6,0x02DC,
-0x00AF,0x02D8,0x02D9,0x02DA,0x00B8,0x02DD,0x02DB,0x02C7
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1256
-uchar ctype_cp1256_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x00,0x00,
-0x00,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00,
-0x03,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
-0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x00,
-0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x10,
-0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x02,0x03,0x02,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x02,0x02,
-0x03,0x03,0x03,0x03,0x02,0x03,0x03,0x00,0x03,0x02,0x03,0x02,0x02,0x00,0x00,0x00
-};
-
-uchar to_lower_cp1256_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x9C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1256_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5F,0x5E,0x5F,
-0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7F,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_cp1256_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x45,0x47,0x4A,0x4C,0x52,0x55,0x57,0x59,0x5D,0x5F,0x61,0x63,0x65,0x67,
-0x6C,0x6E,0x70,0x72,0x74,0x76,0x7B,0x7D,0x7F,0x81,0x83,0xB9,0xBA,0xBB,0xBC,0xBD,
-0xBE,0x41,0x45,0x47,0x4A,0x4C,0x52,0x55,0x57,0x59,0x5D,0x5F,0x61,0x63,0x65,0x67,
-0x6C,0x6E,0x70,0x72,0x74,0x76,0x7B,0x7D,0x7F,0x81,0x83,0xBF,0xC0,0xC1,0xC2,0xC3,
-0xC4,0x8E,0xC5,0x54,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0x6A,0x92,0x99,0xCE,
-0xA5,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0x6A,0xDA,0xDB,0xDC,
-0xDD,0xB6,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,
-0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xB7,0xF6,0xF7,0xF8,0xF9,0xB8,
-0xFA,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x9F,0x90,0x91,0x93,0x94,0x95,
-0x96,0x97,0x98,0x9A,0x9B,0x9C,0x9D,0xFB,0x9E,0x9F,0xA0,0xA1,0xAD,0xA2,0xA3,0xA4,
-0x43,0xA6,0x44,0xA7,0xA8,0xA9,0xAA,0x49,0x4E,0x4F,0x50,0x51,0xAB,0xAC,0x5B,0x5C,
-0xAE,0xAF,0xB0,0xB1,0x69,0xB2,0xB3,0xFC,0xB4,0x78,0xB5,0x79,0x7A,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_cp1256_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0000,0x2039,0x0152,0x0686,0x0698,0x0000,
-0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0000,0x203A,0x0153,0x200C,0x200D,0x0000,
-0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,
-0x0000,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
-0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
-0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,
-0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,
-0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,
-0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,
-0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1257
-uchar ctype_cp1257_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00
-};
-
-uchar to_lower_cp1257_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1257_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uint16 to_uni_cp1257_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000,
-0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1257
-uchar ctype_cp1257_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x01,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00
-};
-
-uchar to_lower_cp1257_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1257_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_cp1257_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x4D,0x4F,0x55,0x57,0x61,0x63,0x67,0x69,0x6F,0x71,0x75,0x7B,0x7D,0x83,
-0x8F,0x91,0x93,0x97,0x9E,0xA0,0xA8,0xAA,0xAC,0xAE,0xB0,0xB8,0xB9,0xBA,0xBB,0xBC,
-0xBD,0x41,0x4D,0x4F,0x55,0x57,0x61,0x63,0x67,0x69,0x6F,0x71,0x75,0x7B,0x7D,0x83,
-0x8F,0x91,0x93,0x97,0x9E,0xA0,0xA8,0xAA,0xAC,0xAE,0xB0,0xBE,0xBF,0xC0,0xC1,0xC4,
-0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2,0xD3,0xD4,
-0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,
-0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0x83,0xED,0x93,0xEE,0xEF,0xF0,0xF1,0x41,
-0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0x83,0xFA,0x93,0xFB,0xFC,0xFD,0xFE,0x41,
-0x41,0x69,0x41,0x4F,0x41,0x41,0x57,0x57,0x4F,0x57,0xB0,0x57,0x63,0x71,0x69,0x75,
-0x97,0x7D,0x7D,0x83,0x83,0x83,0x83,0xC2,0xA0,0x75,0x97,0xA0,0xA0,0xB0,0xB0,0x97,
-0x41,0x69,0x41,0x4F,0x41,0x41,0x57,0x57,0x4F,0x57,0xB0,0x57,0x63,0x71,0x69,0x75,
-0x97,0x7D,0x7D,0x83,0x83,0x83,0x83,0xC3,0xA0,0x75,0x97,0xA0,0xA0,0xB0,0xB0,0xFF
-};
-
-uint16 to_uni_cp1257_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0000,0x2039,0x0000,0x00A8,0x02C7,0x00B8,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0000,0x203A,0x0000,0x00AF,0x02DB,0x0000,
-0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x0000,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_armscii8
-uchar ctype_armscii8_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x10,0x10
-};
-
-uchar to_lower_armscii8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB3,0xB3,0xB5,0xB5,0xB7,0xB7,0xB9,0xB9,0xBB,0xBB,0xBD,0xBD,0xBF,0xBF,
-0xC1,0xC1,0xC3,0xC3,0xC5,0xC5,0xC7,0xC7,0xC9,0xC9,0xCB,0xCB,0xCD,0xCD,0xCF,0xCF,
-0xD1,0xD1,0xD3,0xD3,0xD5,0xD5,0xD7,0xD7,0xD9,0xD9,0xDB,0xDB,0xDD,0xDD,0xDF,0xDF,
-0xE1,0xE1,0xE3,0xE3,0xE5,0xE5,0xE7,0xE7,0xE9,0xE9,0xEB,0xEB,0xED,0xED,0xEF,0xEF,
-0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF9,0xF9,0xFB,0xFB,0xFD,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_armscii8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB2,0xB4,0xB4,0xB6,0xB6,0xB8,0xB8,0xBA,0xBA,0xBC,0xBC,0xBE,0xBE,
-0xC0,0xC0,0xC2,0xC2,0xC4,0xC4,0xC6,0xC6,0xC8,0xC8,0xCA,0xCA,0xCC,0xCC,0xCE,0xCE,
-0xD0,0xD0,0xD2,0xD2,0xD4,0xD4,0xD6,0xD6,0xD8,0xD8,0xDA,0xDA,0xDC,0xDC,0xDE,0xDE,
-0xE0,0xE0,0xE2,0xE2,0xE4,0xE4,0xE6,0xE6,0xE8,0xE8,0xEA,0xEA,0xEC,0xEC,0xEE,0xEE,
-0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF8,0xFA,0xFA,0xFC,0xFC,0xFE,0xFF
-};
-
-uint16 to_uni_armscii8_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x2741,0x00A7,0x0589,0x0029,0x0028,0x00BB,0x00AB,
-0x2014,0x002E,0x055D,0x002C,0x002D,0x055F,0x2026,0x055C,
-0x055B,0x055E,0x0531,0x0561,0x0532,0x0562,0x0533,0x0563,
-0x0534,0x0564,0x0535,0x0565,0x0536,0x0566,0x0537,0x0567,
-0x0538,0x0568,0x0539,0x0569,0x053A,0x056A,0x053B,0x056B,
-0x053C,0x056C,0x053D,0x056D,0x053E,0x056E,0x053F,0x056F,
-0x0540,0x0570,0x0541,0x0571,0x0542,0x0572,0x0543,0x0573,
-0x0544,0x0574,0x0545,0x0575,0x0546,0x0576,0x0547,0x0577,
-0x0548,0x0578,0x0549,0x0579,0x054A,0x057A,0x054B,0x057B,
-0x054C,0x057C,0x054D,0x057D,0x054E,0x057E,0x054F,0x057F,
-0x0550,0x0580,0x0551,0x0581,0x0552,0x0582,0x0553,0x0583,
-0x0554,0x0584,0x0555,0x0585,0x0556,0x0586,0x2019,0x0027
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_ascii
-uchar ctype_ascii_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_ascii_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_ascii_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_ascii_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
-uchar ctype_cp1250_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02,
-0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_cp1250_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1250_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uint16 to_uni_cp1250_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
-0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
-0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
-0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1256
-uchar ctype_cp1256_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x00,0x00,
-0x00,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00,
-0x03,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
-0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x00,
-0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x10,
-0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x02,0x03,0x02,0x03,0x03,0x03,0x03,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x02,0x02,
-0x03,0x03,0x03,0x03,0x02,0x03,0x03,0x00,0x03,0x02,0x03,0x02,0x02,0x00,0x00,0x00
-};
-
-uchar to_lower_cp1256_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x54,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x9C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1256_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5F,0x5E,0x5F,
-0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x74,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7F,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x8C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_cp1256_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x067E,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0000,0x2039,0x0152,0x0686,0x0698,0x0000,
-0x06AF,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0000,0x203A,0x0153,0x200C,0x200D,0x0000,
-0x00A0,0x060C,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x061B,0x00BB,0x00BC,0x00BD,0x00BE,0x061F,
-0x0000,0x0621,0x0622,0x0623,0x0624,0x0625,0x0626,0x0627,
-0x0628,0x0629,0x062A,0x062B,0x062C,0x062D,0x062E,0x062F,
-0x0630,0x0631,0x0632,0x0633,0x0634,0x0635,0x0636,0x00D7,
-0x0637,0x0638,0x0639,0x063A,0x0640,0x0641,0x0642,0x0643,
-0x00E0,0x0644,0x00E2,0x0645,0x0646,0x0647,0x0648,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x0649,0x064A,0x00EE,0x00EF,
-0x064B,0x064C,0x064D,0x064E,0x00F4,0x064F,0x0650,0x00F7,
-0x0651,0x00F9,0x0652,0x00FB,0x00FC,0x200E,0x200F,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp866
-uchar ctype_cp866_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48
-};
-
-uchar to_lower_cp866_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x86,0x87,0x88,0x89,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF1,0xF1,0xF3,0xF3,0xF5,0xF5,0xF7,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp866_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xF0,0xF0,0xF2,0xF2,0xF4,0xF4,0xF6,0xF6,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_cp866_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417,
-0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,0x041F,
-0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427,
-0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,0x042F,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437,
-0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,0x043F,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
-0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
-0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
-0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
-0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447,
-0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,0x044F,
-0x0401,0x0451,0x0404,0x0454,0x0407,0x0457,0x040E,0x045E,
-0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_dec8
-uchar ctype_dec8_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_dec8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_dec8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uint16 to_uni_dec8_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00A1,0x00A2,0x00A3,0x0000,0x00A5,0x0000,0x00A7,
-0x00A4,0x00A9,0x00AA,0x00AB,0x0000,0x0000,0x0000,0x0000,
-0x00B0,0x00B1,0x00B2,0x00B3,0x0000,0x00B5,0x00B6,0x00B7,
-0x0000,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x0000,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x0000,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x0152,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0178,0x0000,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x0000,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x0153,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FF,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_greek
-uchar ctype_greek_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x00,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x01,0x01,0x10,0x01,0x10,0x01,0x01,
-0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00
-};
-
-uchar to_lower_greek_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xDC,0xB7,0xDD,0xDE,0xDF,0xBB,0xFC,0xBD,0xFD,0xFE,
-0xC0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xD2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_greek_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xDA,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xC1,0xC5,0xC7,0xC9,
-0xDB,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD3,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xCF,0xD5,0xD9,0xFF
-};
-
-uint16 to_uni_greek_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x02BD,0x02BC,0x00A3,0x0000,0x0000,0x00A6,0x00A7,
-0x00A8,0x00A9,0x0000,0x00AB,0x00AC,0x00AD,0x0000,0x2015,
-0x00B0,0x00B1,0x00B2,0x00B3,0x0384,0x0385,0x0386,0x00B7,
-0x0388,0x0389,0x038A,0x00BB,0x038C,0x00BD,0x038E,0x038F,
-0x0390,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
-0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
-0x03A0,0x03A1,0x0000,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,
-0x03A8,0x03A9,0x03AA,0x03AB,0x03AC,0x03AD,0x03AE,0x03AF,
-0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
-0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
-0x03C0,0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,
-0x03C8,0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_hebrew
-uchar ctype_hebrew_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,0x20,0x20,0x00
-};
-
-uchar to_lower_hebrew_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_hebrew_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_hebrew_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0000,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00D7,0x00AB,0x00AC,0x00AD,0x00AE,0x203E,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00F7,0x00BB,0x00BC,0x00BD,0x00BE,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2017,
-0x05D0,0x05D1,0x05D2,0x05D3,0x05D4,0x05D5,0x05D6,0x05D7,
-0x05D8,0x05D9,0x05DA,0x05DB,0x05DC,0x05DD,0x05DE,0x05DF,
-0x05E0,0x05E1,0x05E2,0x05E3,0x05E4,0x05E5,0x05E6,0x05E7,
-0x05E8,0x05E9,0x05EA,0x0000,0x0000,0x200E,0x200F,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_hp8
-uchar ctype_hp8_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x02,
-0x01,0x10,0x10,0x01,0x02,0x10,0x10,0x02,0x01,0x10,0x01,0x01,0x01,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20
-};
-
-uchar to_lower_hp8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xC8,0xC0,0xC9,0xC1,0xCD,0xD1,0xDD,0xA8,0xA9,0xAA,0xAB,0xAC,0xCB,0xC3,0xAF,
-0xB0,0xB2,0xB2,0xB3,0xB5,0xB5,0xB7,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD4,0xD1,0xD6,0xD7,0xD4,0xD5,0xD6,0xD7,0xCC,0xD9,0xCE,0xCF,0xC5,0xDD,0xDE,0xC2,
-0xC4,0xE2,0xE2,0xE4,0xE4,0xD5,0xD9,0xC6,0xCA,0xEA,0xEA,0xEC,0xEC,0xC7,0xEF,0xEF,
-0xF1,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_hp8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB1,0xB3,0xB4,0xB4,0xB6,0xB6,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xA2,0xA4,0xDF,0xAE,0xE0,0xDC,0xE7,0xED,0xA1,0xA3,0xE8,0xAD,0xD8,0xA5,0xDA,0xDB,
-0xD0,0xA6,0xD2,0xD3,0xD0,0xE5,0xD2,0xD3,0xD8,0xE6,0xDA,0xDB,0xDC,0xA7,0xDE,0xDF,
-0xE0,0xE1,0xE1,0xE3,0xE3,0xE5,0xE6,0xE7,0xE8,0xE9,0xE9,0xEB,0xEB,0xED,0xEE,0xEE,
-0xF0,0xF0,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_hp8_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00C0,0x00C2,0x00C8,0x00CA,0x00CB,0x00CE,0x00CF,
-0x00B4,0x02CB,0x02C6,0x00A8,0x02DC,0x00D9,0x00DB,0x20A4,
-0x00AF,0x00DD,0x00FD,0x00B0,0x00C7,0x00E7,0x00D1,0x00F1,
-0x00A1,0x00BF,0x00A4,0x00A3,0x00A5,0x00A7,0x0192,0x00A2,
-0x00E2,0x00EA,0x00F4,0x00FB,0x00E1,0x00E9,0x00F3,0x00FA,
-0x00E0,0x00E8,0x00F2,0x00F9,0x00E4,0x00EB,0x00F6,0x00FC,
-0x00C5,0x00EE,0x00D8,0x00C6,0x00E5,0x00ED,0x00F8,0x00E6,
-0x00C4,0x00EC,0x00D6,0x00DC,0x00C9,0x00EF,0x00DF,0x00D4,
-0x00C1,0x00C3,0x00E3,0x00D0,0x00F0,0x00CD,0x00CC,0x00D3,
-0x00D2,0x00D5,0x00F5,0x0160,0x0161,0x00DA,0x0178,0x00FF,
-0x00DE,0x00FE,0x00B7,0x00B5,0x00B6,0x00BE,0x2014,0x00BC,
-0x00BD,0x00AA,0x00BA,0x00AB,0x25A0,0x00BB,0x00B1,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_keybcs2
-uchar ctype_keybcs2_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x02,0x82,0x02,0x02,0x01,0x01,0x02,0x82,0x81,0x01,0x01,0x02,0x02,0x01,0x01,
-0x81,0x02,0x01,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x02,0x02,0x02,0x01,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x01,0x02,0x00,0x02,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48
-};
-
-uchar to_lower_keybcs2_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x83,0x86,0x87,0x88,0x88,0x8D,0xA1,0x8C,0x8D,0x84,0xA0,
-0x82,0x91,0x91,0x93,0x94,0xA2,0x96,0xA3,0x98,0x94,0x81,0x9B,0x8C,0x98,0xA9,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0x96,0x93,0x9B,0xA9,0xAA,0xAA,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xED,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_keybcs2_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x68,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x87,0x9A,0x90,0x85,0x8E,0x85,0x86,0x80,0x89,0x89,0x8A,0x8B,0x9C,0x8A,0x8E,0x8F,
-0x90,0x92,0x92,0xA7,0x99,0x95,0xA6,0x97,0x9D,0x99,0x9A,0xA8,0x9C,0x9D,0x9E,0x9F,
-0x8F,0x8B,0x95,0x97,0xA5,0xA5,0xA6,0xA7,0xA8,0x9E,0xAB,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xE8,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_keybcs2_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x010C,0x00FC,0x00E9,0x010F,0x00E4,0x010E,0x0164,0x010D,
-0x011B,0x011A,0x0139,0x00CD,0x013E,0x013A,0x00C4,0x00C1,
-0x00C9,0x017E,0x017D,0x00F4,0x00F6,0x00D3,0x016F,0x00DA,
-0x00FD,0x00D6,0x00DC,0x0160,0x013D,0x00DD,0x0158,0x0165,
-0x00E1,0x00ED,0x00F3,0x00FA,0x0148,0x0147,0x016E,0x00D4,
-0x0161,0x0159,0x0155,0x0154,0x00BC,0x00A1,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556,
-0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567,
-0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B,
-0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580,
-0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x00B5,0x03C4,
-0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229,
-0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248,
-0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_koi8r
-uchar ctype_koi8r_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
-};
-
-uchar to_lower_koi8r_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar to_upper_koi8r_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_koi8r_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
-0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
-0x2591,0x2592,0x2593,0x2320,0x25A0,0x2219,0x221A,0x2248,
-0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
-0x2550,0x2551,0x2552,0x0451,0x2553,0x2554,0x2555,0x2556,
-0x2557,0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,
-0x255F,0x2560,0x2561,0x0401,0x2562,0x2563,0x2564,0x2565,
-0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,0x256C,0x00A9,
-0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
-0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
-0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
-0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
-0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
-0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_koi8u
-uchar ctype_koi8u_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x02,0x02,0x10,0x02,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,
-0x10,0x10,0x10,0x01,0x01,0x10,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01
-};
-
-uchar to_lower_koi8u_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x5B,0x5C,0x5D,0x5E,0x5F,
-0x20,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,0x7F,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20,
-0x20,0x20,0x20,0xA3,0xA4,0x20,0xA6,0xA7,0x20,0x20,0x20,0x20,0x20,0xAD,0x20,0x20,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF
-};
-
-uchar to_upper_koi8u_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-0x20,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20,
-0x20,0x20,0x20,0xB3,0xB4,0x20,0xB6,0xB7,0x20,0x20,0x20,0x20,0x20,0xBD,0x20,0x20,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_koi8u_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x2500,0x2502,0x250C,0x2510,0x2514,0x2518,0x251C,0x2524,
-0x252C,0x2534,0x253C,0x2580,0x2584,0x2588,0x258C,0x2590,
-0x2591,0x2592,0x2593,0x2320,0x25A0,0x2022,0x221A,0x2248,
-0x2264,0x2265,0x00A0,0x2321,0x00B0,0x00B2,0x00B7,0x00F7,
-0x2550,0x2551,0x2552,0x0451,0x0454,0x2554,0x0456,0x0457,
-0x2557,0x2558,0x2559,0x255A,0x255B,0x0491,0x255D,0x255E,
-0x255F,0x2560,0x2561,0x0401,0x0404,0x2563,0x0406,0x0407,
-0x2566,0x2567,0x2568,0x2569,0x256A,0x0490,0x256C,0x00A9,
-0x044E,0x0430,0x0431,0x0446,0x0434,0x0435,0x0444,0x0433,
-0x0445,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x044F,0x0440,0x0441,0x0442,0x0443,0x0436,0x0432,
-0x044C,0x044B,0x0437,0x0448,0x044D,0x0449,0x0447,0x044A,
-0x042E,0x0410,0x0411,0x0426,0x0414,0x0415,0x0424,0x0413,
-0x0425,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x042F,0x0420,0x0421,0x0422,0x0423,0x0416,0x0412,
-0x042C,0x042B,0x0417,0x0428,0x042D,0x0429,0x0427,0x042A
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin2
-uchar ctype_latin2_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x01,0x10,0x01,0x10,0x01,0x01,0x10,0x10,0x01,0x01,0x01,0x01,0x10,0x01,0x01,
-0x10,0x02,0x10,0x02,0x10,0x02,0x02,0x10,0x10,0x02,0x02,0x02,0x02,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin2_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xB1,0xA2,0xB3,0xA4,0xB5,0xB6,0xA7,0xA8,0xB9,0xBA,0xBB,0xBC,0xAD,0xBE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin2_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xA1,0xB2,0xA3,0xB4,0xA5,0xA6,0xB7,0xB8,0xA9,0xAA,0xAB,0xAC,0xBD,0xAE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uint16 to_uni_latin2_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x0104,0x02D8,0x0141,0x00A4,0x013D,0x015A,0x00A7,
-0x00A8,0x0160,0x015E,0x0164,0x0179,0x00AD,0x017D,0x017B,
-0x00B0,0x0105,0x02DB,0x0142,0x00B4,0x013E,0x015B,0x02C7,
-0x00B8,0x0161,0x015F,0x0165,0x017A,0x02DD,0x017E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin5
-uchar ctype_latin5_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin5_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0xFD,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
-0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0x69,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin5_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0xDD,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
-0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0x49,0xDE,0xFF
-};
-
-uint16 to_uni_latin5_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x011E,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x0130,0x015E,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x011F,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x0131,0x015F,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin7
-uchar ctype_latin7_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x01,0x20,0x10,0x20,0x10,0x10,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x10,0x10,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x00,0x20,0x10,0x20,0x10,0x10,0x20,
-0x48,0x20,0x10,0x10,0x10,0x20,0x10,0x10,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_latin7_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xB8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin7_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xA8,0xB9,0xAA,0xBB,0xBC,0xBD,0xBE,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uint16 to_uni_latin7_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x00A0,0x201D,0x00A2,0x00A3,0x00A4,0x201E,0x00A6,0x00A7,
-0x00D8,0x00A9,0x0156,0x00AB,0x00AC,0x00AD,0x00AE,0x00C6,
-0x00B0,0x00B1,0x00B2,0x00B3,0x201C,0x00B5,0x00B6,0x00B7,
-0x00F8,0x00B9,0x0157,0x00BB,0x00BC,0x00BD,0x00BE,0x00E6,
-0x0104,0x012E,0x0100,0x0106,0x00C4,0x00C5,0x0118,0x0112,
-0x010C,0x00C9,0x0179,0x0116,0x0122,0x0136,0x012A,0x013B,
-0x0160,0x0143,0x0145,0x00D3,0x014C,0x00D5,0x00D6,0x00D7,
-0x0172,0x0141,0x015A,0x016A,0x00DC,0x017B,0x017D,0x00DF,
-0x0105,0x012F,0x0101,0x0107,0x00E4,0x00E5,0x0119,0x0113,
-0x010D,0x00E9,0x017A,0x0117,0x0123,0x0137,0x012B,0x013C,
-0x0161,0x0144,0x0146,0x00F3,0x014D,0x00F5,0x00F6,0x00F7,
-0x0173,0x0142,0x015B,0x016B,0x00FC,0x017C,0x017E,0x2019
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp850
-uchar ctype_cp850_bin[] = {
-0x00,
-0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x30,0x30,
-0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x20,0x30,0x30,0x30,0x30,0x30,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x30,
-0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,
-0x01,0x02,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x01,0x02,0x10,0x01,0x10,0x10,
-0x02,0x02,0x02,0x02,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x10,
-0x01,0x02,0x01,0x01,0x02,0x01,0x10,0x02,0x01,0x01,0x01,0x01,0x02,0x01,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20
-};
-
-uchar to_lower_cp850_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x84,0x86,
-0x82,0x91,0x91,0x93,0x94,0x95,0x96,0x97,0x98,0x94,0x81,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA4,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp850_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x9A,0x90,0x41,0x8E,0x41,0x8F,0x80,0x45,0x45,0x45,0x49,0x49,0x49,0x8E,0x8F,
-0x90,0x92,0x92,0x4F,0x99,0x4F,0x55,0x55,0x59,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0x41,0x49,0x4F,0x55,0xA5,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_cp850_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7,
-0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5,
-0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9,
-0x00FF,0x00D6,0x00DC,0x00F8,0x00A3,0x00D8,0x00D7,0x0192,
-0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA,
-0x00BF,0x00AE,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x00C0,
-0x00A9,0x2563,0x2551,0x2557,0x255D,0x00A2,0x00A5,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x00E3,0x00C3,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4,
-0x00F0,0x00D0,0x00CA,0x00CB,0x00C8,0x0131,0x00CD,0x00CE,
-0x00CF,0x2518,0x250C,0x2588,0x2584,0x00A6,0x00CC,0x2580,
-0x00D3,0x00DF,0x00D4,0x00D2,0x00F5,0x00D5,0x00B5,0x00FE,
-0x00DE,0x00DA,0x00DB,0x00D9,0x00FD,0x00DD,0x00AF,0x00B4,
-0x00AD,0x00B1,0x2017,0x00BE,0x00B6,0x00A7,0x00F7,0x00B8,
-0x00B0,0x00A8,0x00B7,0x00B9,0x00B3,0x00B2,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp852
-uchar ctype_cp852_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x00,
-0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x01,0x02,0x02,0x01,0x01,0x01,
-0x01,0x01,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x01,0x01,0x02,0x01,0x00,0x02,
-0x02,0x02,0x02,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x00,0x02,0x01,0x01,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x02,0x01,0x01,0x01,0x02,0x01,0x01,0x01,0x02,0x00,0x00,0x00,0x00,0x01,0x01,0x00,
-0x01,0x02,0x01,0x01,0x02,0x02,0x01,0x02,0x01,0x01,0x02,0x01,0x02,0x01,0x02,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x02,0x00,0x48
-};
-
-uchar to_lower_cp852_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x87,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8B,0x8B,0x8C,0xAB,0x84,0x86,
-0x82,0x92,0x92,0x93,0x94,0x96,0x96,0x98,0x98,0x94,0x81,0x9C,0x9C,0x88,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA5,0xA5,0xA7,0xA7,0xA9,0xA9,0xAA,0xAB,0x9F,0xB8,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xA0,0x83,0xD8,0xB8,0xB9,0xBA,0xBB,0xBC,0xBE,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC7,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD0,0xD4,0x89,0xD4,0xE5,0xA1,0x8C,0xD8,0xD9,0xDA,0xDB,0xDC,0xEE,0x85,0xDF,
-0xA2,0xE1,0x93,0xE4,0xE4,0xE5,0xE7,0xE7,0xEA,0xA3,0xE8,0xFB,0xEC,0xEC,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp852_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x9A,0x90,0xB6,0x8E,0xDE,0x8F,0x80,0x9D,0xD3,0x8A,0x8A,0xD7,0x8D,0x8E,0x8F,
-0x90,0x91,0x91,0xE2,0x99,0x95,0x95,0x97,0x97,0x99,0x9A,0x9B,0x9B,0x9D,0x9E,0xAC,
-0xB5,0xD6,0xE0,0xE9,0xA4,0xA4,0xA6,0xA6,0xA8,0xA8,0xAA,0x8D,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xAD,0xB9,0xBA,0xBB,0xBC,0xBE,0xBD,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC6,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD1,0xD1,0xD2,0xD3,0xD2,0xD5,0xD6,0xD7,0xB7,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE3,0xD5,0xE6,0xE6,0xE8,0xE9,0xE8,0xEB,0xED,0xED,0xDD,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xEB,0xFC,0xFC,0xFE,0xFF
-};
-
-uint16 to_uni_cp852_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x016F,0x0107,0x00E7,
-0x0142,0x00EB,0x0150,0x0151,0x00EE,0x0179,0x00C4,0x0106,
-0x00C9,0x0139,0x013A,0x00F4,0x00F6,0x013D,0x013E,0x015A,
-0x015B,0x00D6,0x00DC,0x0164,0x0165,0x0141,0x00D7,0x010D,
-0x00E1,0x00ED,0x00F3,0x00FA,0x0104,0x0105,0x017D,0x017E,
-0x0118,0x0119,0x00AC,0x017A,0x010C,0x015F,0x00AB,0x00BB,
-0x2591,0x2592,0x2593,0x2502,0x2524,0x00C1,0x00C2,0x011A,
-0x015E,0x2563,0x2551,0x2557,0x255D,0x017B,0x017C,0x2510,
-0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x0102,0x0103,
-0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x00A4,
-0x0111,0x0110,0x010E,0x00CB,0x010F,0x0147,0x00CD,0x00CE,
-0x011B,0x2518,0x250C,0x2588,0x2584,0x0162,0x016E,0x2580,
-0x00D3,0x00DF,0x00D4,0x0143,0x0144,0x0148,0x0160,0x0161,
-0x0154,0x00DA,0x0155,0x0170,0x00FD,0x00DD,0x0163,0x00B4,
-0x00AD,0x02DD,0x02DB,0x02C7,0x02D8,0x00A7,0x00F7,0x00B8,
-0x00B0,0x00A8,0x02D9,0x0171,0x0158,0x0159,0x25A0,0x00A0
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_swe7
-uchar ctype_swe7_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
-0x01,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x20,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_swe7_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_swe7_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_swe7_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x00C9,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x00C4,0x00D6,0x00C5,0x00DC,0x005F,
-0x00E9,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x00E4,0x00F6,0x00E5,0x00FC,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_geostd8
-uchar ctype_geostd8_general_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
-0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_geostd8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_geostd8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar sort_order_geostd8_general_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,
-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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_geostd8_general_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0000,0x2039,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x0000,0x0000,0x203A,0x0000,0x0000,0x0000,0x0000,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x10D0,0x10D1,0x10D2,0x10D3,0x10D4,0x10D5,0x10D6,0x10F1,
-0x10D7,0x10D8,0x10D9,0x10DA,0x10DB,0x10DC,0x10F2,0x10DD,
-0x10DE,0x10DF,0x10E0,0x10E1,0x10E2,0x10F3,0x10E3,0x10E4,
-0x10E5,0x10E6,0x10E7,0x10E8,0x10E9,0x10EA,0x10EB,0x10EC,
-0x10ED,0x10EE,0x10F4,0x10EF,0x10F0,0x10F5,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x2116,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_geostd8
-uchar ctype_geostd8_bin[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,
-0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
-0x03,0x03,0x03,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-
-uchar to_lower_geostd8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_geostd8_bin[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uint16 to_uni_geostd8_bin[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0000,0x2039,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x0000,0x0000,0x203A,0x0000,0x0000,0x0000,0x0000,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x10D0,0x10D1,0x10D2,0x10D3,0x10D4,0x10D5,0x10D6,0x10F1,
-0x10D7,0x10D8,0x10D9,0x10DA,0x10DB,0x10DC,0x10F2,0x10DD,
-0x10DE,0x10DF,0x10E0,0x10E1,0x10E2,0x10F3,0x10E3,0x10E4,
-0x10E5,0x10E6,0x10E7,0x10E8,0x10E9,0x10EA,0x10EB,0x10EC,
-0x10ED,0x10EE,0x10F4,0x10EF,0x10F0,0x10F5,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x2116,0x0000,0x0000
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_latin1
-uchar ctype_latin1_spanish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x10,0x00,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x10,0x01,0x00,0x01,0x00,
-0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x10,0x02,0x00,0x02,0x01,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
-};
-
-uchar to_lower_latin1_spanish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_latin1_spanish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_latin1_spanish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81,
-0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB3,0xB4,0xB5,0xB6,0xB7,
-0xB8,0x41,0x51,0x53,0x57,0x5B,0x65,0x67,0x69,0x6B,0x75,0x77,0x79,0x7B,0x7D,0x81,
-0x8F,0x91,0x93,0x95,0x98,0x9A,0xA4,0xA6,0xA8,0xAA,0xAF,0xB9,0xBA,0xBB,0xBC,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x5B,0x5B,0x5B,0x5B,0x6B,0x6B,0x6B,0x6B,
-0x57,0x7F,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0x9A,0x9A,0x9A,0x9A,0xAA,0xB1,0x97,
-0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x5B,0x5B,0x5B,0x5B,0x6B,0x6B,0x6B,0x6B,
-0x57,0x7F,0x81,0x81,0x81,0x81,0x81,0xBE,0x81,0x9A,0x9A,0x9A,0x9A,0xAA,0xB1,0xAA
-};
-
-uint16 to_uni_latin1_spanish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
-uchar ctype_cp1250_polish_ci[] = {
-0x00,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x28,0x28,0x28,0x28,0x28,0x20,0x20,
-0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
-0x48,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x81,0x81,0x81,0x81,0x81,0x81,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,
-0x10,0x82,0x82,0x82,0x82,0x82,0x82,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x20,
-0x20,0x20,0x10,0x20,0x10,0x10,0x10,0x10,0x20,0x10,0x01,0x10,0x01,0x01,0x01,0x01,
-0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x10,0x02,0x10,0x02,0x02,0x02,0x02,
-0x48,0x10,0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x10,0x01,0x10,0x10,0x10,0x10,0x01,
-0x10,0x10,0x10,0x02,0x10,0x10,0x10,0x10,0x10,0x02,0x02,0x10,0x01,0x10,0x02,0x02,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
-0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
-0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10
-};
-
-uchar to_lower_cp1250_polish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,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,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x9A,0x8B,0x9C,0x9D,0x9E,0x9F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
-0xA0,0xA1,0xA2,0xB3,0xA4,0xB9,0xA6,0xA7,0xA8,0xA9,0xBA,0xAB,0xAC,0xAD,0xAE,0xBF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBE,0xBD,0xBE,0xBF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-
-uchar to_upper_cp1250_polish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,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,0x7B,0x7C,0x7D,0x7E,0x7F,
-0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
-0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x8A,0x9B,0x8C,0x8D,0x8E,0x8F,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xA3,0xB4,0xB5,0xB6,0xB7,0xB8,0xA5,0xAA,0xBB,0xBC,0xBD,0xBC,0xAF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
-};
-
-uchar sort_order_cp1250_polish_ci[] = {
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x90,0x91,0x92,0x93,0x94,
-0x95,0x41,0x43,0x44,0x48,0x4B,0x4D,0x4E,0x4F,0x50,0x52,0x53,0x54,0x56,0x57,0x59,
-0x5B,0x5C,0x5D,0x5F,0x62,0x64,0x66,0x67,0x68,0x69,0x6B,0x96,0x97,0x98,0x99,0x9A,
-0x9B,0x9C,0x9E,0x9F,0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0x5F,0xA6,0x60,0x62,0x6B,0x6C,
-0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,0xB0,0x5F,0xB1,0x60,0x62,0x6B,0x6C,
-0xB2,0xB3,0xB4,0x55,0xB5,0x42,0xB6,0xB7,0xB8,0xB9,0x5F,0xBA,0xBB,0xBC,0xBD,0x6D,
-0xBE,0xBF,0xC0,0x55,0xC1,0xC2,0xC3,0xC4,0xC5,0x42,0x5F,0xC6,0x54,0xC7,0x54,0x6D,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x44,0x4B,0x4C,0x4B,0x4B,0x50,0x50,0x48,
-0x48,0x58,0x57,0x5A,0x59,0x59,0x59,0xC8,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0x5F,
-0x5D,0x41,0x41,0x41,0x41,0x54,0x47,0x44,0x44,0x4B,0x4C,0x4B,0x4B,0x50,0x50,0x48,
-0x48,0x58,0x57,0x5A,0x59,0x59,0x59,0xC9,0x5D,0x64,0x64,0x64,0x64,0x69,0x62,0xFF
-};
-
-uint16 to_uni_cp1250_polish_ci[] = {
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0000,0x201A,0x0000,0x201E,0x2026,0x2020,0x2021,
-0x0000,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
-0x0000,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x0000,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
-0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
-0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
-0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-#endif
-
-CHARSET_INFO compiled_charsets[] = {
-#ifdef HAVE_CHARSET_dec8
-{
- 3,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "dec8", /* cset name */
- "dec8_swedish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_dec8_swedish_ci, /* ctype */
- to_lower_dec8_swedish_ci, /* lower */
- to_upper_dec8_swedish_ci, /* upper */
- sort_order_dec8_swedish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_dec8_swedish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp850
-{
- 4,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp850", /* cset name */
- "cp850_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp850_general_ci, /* ctype */
- to_lower_cp850_general_ci, /* lower */
- to_upper_cp850_general_ci, /* upper */
- sort_order_cp850_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp850_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin1
-{
- 5,0,0,
- MY_CS_COMPILED,
- "latin1", /* cset name */
- "latin1_german1_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1_german1_ci, /* ctype */
- to_lower_latin1_german1_ci, /* lower */
- to_upper_latin1_german1_ci, /* upper */
- sort_order_latin1_german1_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin1_german1_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_hp8
-{
- 6,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "hp8", /* cset name */
- "hp8_english_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_hp8_english_ci, /* ctype */
- to_lower_hp8_english_ci, /* lower */
- to_upper_hp8_english_ci, /* upper */
- sort_order_hp8_english_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_hp8_english_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_koi8r
-{
- 7,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "koi8r", /* cset name */
- "koi8r_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_koi8r_general_ci, /* ctype */
- to_lower_koi8r_general_ci, /* lower */
- to_upper_koi8r_general_ci, /* upper */
- sort_order_koi8r_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_koi8r_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin2
-{
- 9,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "latin2", /* cset name */
- "latin2_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin2_general_ci, /* ctype */
- to_lower_latin2_general_ci, /* lower */
- to_upper_latin2_general_ci, /* upper */
- sort_order_latin2_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin2_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_swe7
-{
- 10,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_NONASCII,
- "swe7", /* cset name */
- "swe7_swedish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_swe7_swedish_ci, /* ctype */
- to_lower_swe7_swedish_ci, /* lower */
- to_upper_swe7_swedish_ci, /* upper */
- sort_order_swe7_swedish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_swe7_swedish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_ascii
-{
- 11,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_PUREASCII,
- "ascii", /* cset name */
- "ascii_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_ascii_general_ci, /* ctype */
- to_lower_ascii_general_ci, /* lower */
- to_upper_ascii_general_ci, /* upper */
- sort_order_ascii_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_ascii_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1251
-{
- 14,0,0,
- MY_CS_COMPILED,
- "cp1251", /* cset name */
- "cp1251_bulgarian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1251_bulgarian_ci, /* ctype */
- to_lower_cp1251_bulgarian_ci, /* lower */
- to_upper_cp1251_bulgarian_ci, /* upper */
- sort_order_cp1251_bulgarian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1251_bulgarian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin1
-{
- 15,0,0,
- MY_CS_COMPILED,
- "latin1", /* cset name */
- "latin1_danish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1_danish_ci, /* ctype */
- to_lower_latin1_danish_ci, /* lower */
- to_upper_latin1_danish_ci, /* upper */
- sort_order_latin1_danish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin1_danish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_hebrew
-{
- 16,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "hebrew", /* cset name */
- "hebrew_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_hebrew_general_ci, /* ctype */
- to_lower_hebrew_general_ci, /* lower */
- to_upper_hebrew_general_ci, /* upper */
- sort_order_hebrew_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_hebrew_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin7
-{
- 20,0,0,
- MY_CS_COMPILED|MY_CS_CSSORT,
- "latin7", /* cset name */
- "latin7_estonian_cs", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin7_estonian_cs, /* ctype */
- to_lower_latin7_estonian_cs, /* lower */
- to_upper_latin7_estonian_cs, /* upper */
- sort_order_latin7_estonian_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin7_estonian_cs, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin2
-{
- 21,0,0,
- MY_CS_COMPILED,
- "latin2", /* cset name */
- "latin2_hungarian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin2_hungarian_ci, /* ctype */
- to_lower_latin2_hungarian_ci, /* lower */
- to_upper_latin2_hungarian_ci, /* upper */
- sort_order_latin2_hungarian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin2_hungarian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_koi8u
-{
- 22,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "koi8u", /* cset name */
- "koi8u_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_koi8u_general_ci, /* ctype */
- to_lower_koi8u_general_ci, /* lower */
- to_upper_koi8u_general_ci, /* upper */
- sort_order_koi8u_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_koi8u_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1251
-{
- 23,0,0,
- MY_CS_COMPILED,
- "cp1251", /* cset name */
- "cp1251_ukrainian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1251_ukrainian_ci, /* ctype */
- to_lower_cp1251_ukrainian_ci, /* lower */
- to_upper_cp1251_ukrainian_ci, /* upper */
- sort_order_cp1251_ukrainian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1251_ukrainian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_greek
-{
- 25,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "greek", /* cset name */
- "greek_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_greek_general_ci, /* ctype */
- to_lower_greek_general_ci, /* lower */
- to_upper_greek_general_ci, /* upper */
- sort_order_greek_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_greek_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1250
-{
- 26,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp1250", /* cset name */
- "cp1250_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1250_general_ci, /* ctype */
- to_lower_cp1250_general_ci, /* lower */
- to_upper_cp1250_general_ci, /* upper */
- sort_order_cp1250_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1250_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin2
-{
- 27,0,0,
- MY_CS_COMPILED,
- "latin2", /* cset name */
- "latin2_croatian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin2_croatian_ci, /* ctype */
- to_lower_latin2_croatian_ci, /* lower */
- to_upper_latin2_croatian_ci, /* upper */
- sort_order_latin2_croatian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin2_croatian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1257
-{
- 29,0,0,
- MY_CS_COMPILED,
- "cp1257", /* cset name */
- "cp1257_lithuanian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1257_lithuanian_ci, /* ctype */
- to_lower_cp1257_lithuanian_ci, /* lower */
- to_upper_cp1257_lithuanian_ci, /* upper */
- sort_order_cp1257_lithuanian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1257_lithuanian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin5
-{
- 30,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "latin5", /* cset name */
- "latin5_turkish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin5_turkish_ci, /* ctype */
- to_lower_latin5_turkish_ci, /* lower */
- to_upper_latin5_turkish_ci, /* upper */
- sort_order_latin5_turkish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin5_turkish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_armscii8
-{
- 32,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "armscii8", /* cset name */
- "armscii8_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_armscii8_general_ci, /* ctype */
- to_lower_armscii8_general_ci, /* lower */
- to_upper_armscii8_general_ci, /* upper */
- sort_order_armscii8_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_armscii8_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp866
-{
- 36,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp866", /* cset name */
- "cp866_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp866_general_ci, /* ctype */
- to_lower_cp866_general_ci, /* lower */
- to_upper_cp866_general_ci, /* upper */
- sort_order_cp866_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp866_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_keybcs2
-{
- 37,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "keybcs2", /* cset name */
- "keybcs2_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_keybcs2_general_ci, /* ctype */
- to_lower_keybcs2_general_ci, /* lower */
- to_upper_keybcs2_general_ci, /* upper */
- sort_order_keybcs2_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_keybcs2_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_macce
-{
- 38,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "macce", /* cset name */
- "macce_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_macce_general_ci, /* ctype */
- to_lower_macce_general_ci, /* lower */
- to_upper_macce_general_ci, /* upper */
- sort_order_macce_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_macce_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_macroman
-{
- 39,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "macroman", /* cset name */
- "macroman_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_macroman_general_ci, /* ctype */
- to_lower_macroman_general_ci, /* lower */
- to_upper_macroman_general_ci, /* upper */
- sort_order_macroman_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_macroman_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp852
-{
- 40,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp852", /* cset name */
- "cp852_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp852_general_ci, /* ctype */
- to_lower_cp852_general_ci, /* lower */
- to_upper_cp852_general_ci, /* upper */
- sort_order_cp852_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp852_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin7
-{
- 41,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "latin7", /* cset name */
- "latin7_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin7_general_ci, /* ctype */
- to_lower_latin7_general_ci, /* lower */
- to_upper_latin7_general_ci, /* upper */
- sort_order_latin7_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin7_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin7
-{
- 42,0,0,
- MY_CS_COMPILED|MY_CS_CSSORT,
- "latin7", /* cset name */
- "latin7_general_cs", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin7_general_cs, /* ctype */
- to_lower_latin7_general_cs, /* lower */
- to_upper_latin7_general_cs, /* upper */
- sort_order_latin7_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin7_general_cs, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_macce
-{
- 43,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "macce", /* cset name */
- "macce_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_macce_bin, /* ctype */
- to_lower_macce_bin, /* lower */
- to_upper_macce_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_macce_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1250
-{
- 44,0,0,
- MY_CS_COMPILED,
- "cp1250", /* cset name */
- "cp1250_croatian_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1250_croatian_ci, /* ctype */
- to_lower_cp1250_croatian_ci, /* lower */
- to_upper_cp1250_croatian_ci, /* upper */
- sort_order_cp1250_croatian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1250_croatian_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin1
-{
- 48,0,0,
- MY_CS_COMPILED,
- "latin1", /* cset name */
- "latin1_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1_general_ci, /* ctype */
- to_lower_latin1_general_ci, /* lower */
- to_upper_latin1_general_ci, /* upper */
- sort_order_latin1_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin1_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin1
-{
- 49,0,0,
- MY_CS_COMPILED|MY_CS_CSSORT,
- "latin1", /* cset name */
- "latin1_general_cs", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1_general_cs, /* ctype */
- to_lower_latin1_general_cs, /* lower */
- to_upper_latin1_general_cs, /* upper */
- sort_order_latin1_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin1_general_cs, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1251
-{
- 50,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp1251", /* cset name */
- "cp1251_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1251_bin, /* ctype */
- to_lower_cp1251_bin, /* lower */
- to_upper_cp1251_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1251_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1251
-{
- 51,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp1251", /* cset name */
- "cp1251_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1251_general_ci, /* ctype */
- to_lower_cp1251_general_ci, /* lower */
- to_upper_cp1251_general_ci, /* upper */
- sort_order_cp1251_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1251_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1251
-{
- 52,0,0,
- MY_CS_COMPILED|MY_CS_CSSORT,
- "cp1251", /* cset name */
- "cp1251_general_cs", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1251_general_cs, /* ctype */
- to_lower_cp1251_general_cs, /* lower */
- to_upper_cp1251_general_cs, /* upper */
- sort_order_cp1251_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1251_general_cs, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_macroman
-{
- 53,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "macroman", /* cset name */
- "macroman_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_macroman_bin, /* ctype */
- to_lower_macroman_bin, /* lower */
- to_upper_macroman_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_macroman_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1256
-{
- 57,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp1256", /* cset name */
- "cp1256_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1256_general_ci, /* ctype */
- to_lower_cp1256_general_ci, /* lower */
- to_upper_cp1256_general_ci, /* upper */
- sort_order_cp1256_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1256_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1257
-{
- 58,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp1257", /* cset name */
- "cp1257_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1257_bin, /* ctype */
- to_lower_cp1257_bin, /* lower */
- to_upper_cp1257_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1257_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1257
-{
- 59,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "cp1257", /* cset name */
- "cp1257_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1257_general_ci, /* ctype */
- to_lower_cp1257_general_ci, /* lower */
- to_upper_cp1257_general_ci, /* upper */
- sort_order_cp1257_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1257_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_armscii8
-{
- 64,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "armscii8", /* cset name */
- "armscii8_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_armscii8_bin, /* ctype */
- to_lower_armscii8_bin, /* lower */
- to_upper_armscii8_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_armscii8_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_ascii
-{
- 65,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PUREASCII,
- "ascii", /* cset name */
- "ascii_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_ascii_bin, /* ctype */
- to_lower_ascii_bin, /* lower */
- to_upper_ascii_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_ascii_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1250
-{
- 66,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp1250", /* cset name */
- "cp1250_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1250_bin, /* ctype */
- to_lower_cp1250_bin, /* lower */
- to_upper_cp1250_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1250_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1256
-{
- 67,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp1256", /* cset name */
- "cp1256_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1256_bin, /* ctype */
- to_lower_cp1256_bin, /* lower */
- to_upper_cp1256_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1256_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp866
-{
- 68,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp866", /* cset name */
- "cp866_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp866_bin, /* ctype */
- to_lower_cp866_bin, /* lower */
- to_upper_cp866_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp866_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_dec8
-{
- 69,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "dec8", /* cset name */
- "dec8_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_dec8_bin, /* ctype */
- to_lower_dec8_bin, /* lower */
- to_upper_dec8_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_dec8_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_greek
-{
- 70,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "greek", /* cset name */
- "greek_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_greek_bin, /* ctype */
- to_lower_greek_bin, /* lower */
- to_upper_greek_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_greek_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_hebrew
-{
- 71,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "hebrew", /* cset name */
- "hebrew_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_hebrew_bin, /* ctype */
- to_lower_hebrew_bin, /* lower */
- to_upper_hebrew_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_hebrew_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_hp8
-{
- 72,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "hp8", /* cset name */
- "hp8_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_hp8_bin, /* ctype */
- to_lower_hp8_bin, /* lower */
- to_upper_hp8_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_hp8_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_keybcs2
-{
- 73,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "keybcs2", /* cset name */
- "keybcs2_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_keybcs2_bin, /* ctype */
- to_lower_keybcs2_bin, /* lower */
- to_upper_keybcs2_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_keybcs2_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_koi8r
-{
- 74,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "koi8r", /* cset name */
- "koi8r_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_koi8r_bin, /* ctype */
- to_lower_koi8r_bin, /* lower */
- to_upper_koi8r_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_koi8r_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_koi8u
-{
- 75,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "koi8u", /* cset name */
- "koi8u_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_koi8u_bin, /* ctype */
- to_lower_koi8u_bin, /* lower */
- to_upper_koi8u_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_koi8u_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin2
-{
- 77,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "latin2", /* cset name */
- "latin2_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin2_bin, /* ctype */
- to_lower_latin2_bin, /* lower */
- to_upper_latin2_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin2_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin5
-{
- 78,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "latin5", /* cset name */
- "latin5_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin5_bin, /* ctype */
- to_lower_latin5_bin, /* lower */
- to_upper_latin5_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin5_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin7
-{
- 79,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "latin7", /* cset name */
- "latin7_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin7_bin, /* ctype */
- to_lower_latin7_bin, /* lower */
- to_upper_latin7_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin7_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp850
-{
- 80,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp850", /* cset name */
- "cp850_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp850_bin, /* ctype */
- to_lower_cp850_bin, /* lower */
- to_upper_cp850_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp850_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp852
-{
- 81,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "cp852", /* cset name */
- "cp852_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp852_bin, /* ctype */
- to_lower_cp852_bin, /* lower */
- to_upper_cp852_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp852_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_swe7
-{
- 82,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_NONASCII,
- "swe7", /* cset name */
- "swe7_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_swe7_bin, /* ctype */
- to_lower_swe7_bin, /* lower */
- to_upper_swe7_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_swe7_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_geostd8
-{
- 92,0,0,
- MY_CS_COMPILED|MY_CS_PRIMARY,
- "geostd8", /* cset name */
- "geostd8_general_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_geostd8_general_ci, /* ctype */
- to_lower_geostd8_general_ci, /* lower */
- to_upper_geostd8_general_ci, /* upper */
- sort_order_geostd8_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_geostd8_general_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_geostd8
-{
- 93,0,0,
- MY_CS_COMPILED|MY_CS_BINSORT,
- "geostd8", /* cset name */
- "geostd8_bin", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_geostd8_bin, /* ctype */
- to_lower_geostd8_bin, /* lower */
- to_upper_geostd8_bin, /* upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_geostd8_bin, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_bin_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_latin1
-{
- 94,0,0,
- MY_CS_COMPILED,
- "latin1", /* cset name */
- "latin1_spanish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1_spanish_ci, /* ctype */
- to_lower_latin1_spanish_ci, /* lower */
- to_upper_latin1_spanish_ci, /* upper */
- sort_order_latin1_spanish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_latin1_spanish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-#ifdef HAVE_CHARSET_cp1250
-{
- 99,0,0,
- MY_CS_COMPILED,
- "cp1250", /* cset name */
- "cp1250_polish_ci", /* coll name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_cp1250_polish_ci, /* ctype */
- to_lower_cp1250_polish_ci, /* lower */
- to_upper_cp1250_polish_ci, /* upper */
- sort_order_cp1250_polish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- to_uni_cp1250_polish_ci, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-,
-#endif
-{
- 0,0,0,
- MY_CS_COMPILED,
- NULL, /* cset name */
- NULL, /* coll name */
- NULL, /* comment */
- NULL, /* tailoging */
- NULL, /* ctype */
- NULL, /* lower */
- NULL, /* upper */
- NULL, /* sort order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* to_uni */
- NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state map */
- NULL, /* ident map */
- 1, /* strxfrm_multiply*/
- 1, /* caseup_multiply*/
- 1, /* casedn_multiply*/
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad_char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_8bit_simple_ci_handler,
-}
-};
diff --git a/dep/mysqllite/strings/ctype-gb2312.c b/dep/mysqllite/strings/ctype-gb2312.c
deleted file mode 100644
index b1acd643df3..00000000000
--- a/dep/mysqllite/strings/ctype-gb2312.c
+++ /dev/null
@@ -1,6474 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This file is for Chinese EUC character sets (GB2312), and created by Miles Tsai (net-bull@126.com).
- */
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. mbmaxlen_gb2312=2
- */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_CHARSET_gb2312
-
-static uchar ctype_gb2312[257] =
-{
- 0, /* For standard library */
- 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32,
- 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
- 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16,
- 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,
- 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,
-};
-
-static uchar to_lower_gb2312[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar to_upper_gb2312[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar sort_order_gb2312[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '\\', ']', '[', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-/* Support for Chinese(GB2312) characters, by Miles Tsai (net-bull@126.com)
- modified by Wei He (hewei@mail.ied.ac.cn) */
-
-#define isgb2312head(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xf7)
-#define isgb2312tail(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)
-
-
-static uint ismbchar_gb2312(CHARSET_INFO *cs __attribute__((unused)),
- const char* p, const char *e)
-{
- return (isgb2312head(*(p)) && (e)-(p)>1 && isgb2312tail(*((p)+1))? 2: 0);
-}
-
-static uint mbcharlen_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c)
-{
- return (isgb2312head(c)? 2 : 1);
-}
-
-
-static MY_UNICASE_INFO cA2[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA2A0,0xA2A0,0xA2A0}, /* A2A0 */
- {0xA2A1,0xA2A1,0x003F},
- {0xA2A2,0xA2A2,0x003F},
- {0xA2A3,0xA2A3,0x003F},
- {0xA2A4,0xA2A4,0x003F},
- {0xA2A5,0xA2A5,0x003F},
- {0xA2A6,0xA2A6,0x003F},
- {0xA2A7,0xA2A7,0x003F},
- {0xA2A8,0xA2A8,0x003F},
- {0xA2A9,0xA2A9,0x003F},
- {0xA2AA,0xA2AA,0x003F},
- {0xA2AB,0xA2AB,0x003F},
- {0xA2AC,0xA2AC,0x003F},
- {0xA2AD,0xA2AD,0x003F},
- {0xA2AE,0xA2AE,0x003F},
- {0xA2AF,0xA2AF,0x003F},
- {0xA2B0,0xA2B0,0x003F}, /* A2B0 */
- {0xA2B1,0xA2B1,0x2488},
- {0xA2B2,0xA2B2,0x2489},
- {0xA2B3,0xA2B3,0x248A},
- {0xA2B4,0xA2B4,0x248B},
- {0xA2B5,0xA2B5,0x248C},
- {0xA2B6,0xA2B6,0x248D},
- {0xA2B7,0xA2B7,0x248E},
- {0xA2B8,0xA2B8,0x248F},
- {0xA2B9,0xA2B9,0x2490},
- {0xA2BA,0xA2BA,0x2491},
- {0xA2BB,0xA2BB,0x2492},
- {0xA2BC,0xA2BC,0x2493},
- {0xA2BD,0xA2BD,0x2494},
- {0xA2BE,0xA2BE,0x2495},
- {0xA2BF,0xA2BF,0x2496},
- {0xA2C0,0xA2C0,0x2497}, /* A2C0 */
- {0xA2C1,0xA2C1,0x2498},
- {0xA2C2,0xA2C2,0x2499},
- {0xA2C3,0xA2C3,0x249A},
- {0xA2C4,0xA2C4,0x249B},
- {0xA2C5,0xA2C5,0x2474},
- {0xA2C6,0xA2C6,0x2475},
- {0xA2C7,0xA2C7,0x2476},
- {0xA2C8,0xA2C8,0x2477},
- {0xA2C9,0xA2C9,0x2478},
- {0xA2CA,0xA2CA,0x2479},
- {0xA2CB,0xA2CB,0x247A},
- {0xA2CC,0xA2CC,0x247B},
- {0xA2CD,0xA2CD,0x247C},
- {0xA2CE,0xA2CE,0x247D},
- {0xA2CF,0xA2CF,0x247E},
- {0xA2D0,0xA2D0,0x247F}, /* A2D0 */
- {0xA2D1,0xA2D1,0x2480},
- {0xA2D2,0xA2D2,0x2481},
- {0xA2D3,0xA2D3,0x2482},
- {0xA2D4,0xA2D4,0x2483},
- {0xA2D5,0xA2D5,0x2484},
- {0xA2D6,0xA2D6,0x2485},
- {0xA2D7,0xA2D7,0x2486},
- {0xA2D8,0xA2D8,0x2487},
- {0xA2D9,0xA2D9,0x2460},
- {0xA2DA,0xA2DA,0x2461},
- {0xA2DB,0xA2DB,0x2462},
- {0xA2DC,0xA2DC,0x2463},
- {0xA2DD,0xA2DD,0x2464},
- {0xA2DE,0xA2DE,0x2465},
- {0xA2DF,0xA2DF,0x2466},
- {0xA2E0,0xA2E0,0x2467}, /* A2E0 */
- {0xA2E1,0xA2E1,0x2468},
- {0xA2E2,0xA2E2,0x2469},
- {0xA2E3,0xA2E3,0x003F},
- {0xA2E4,0xA2E4,0x003F},
- {0xA2E5,0xA2E5,0x3220},
- {0xA2E6,0xA2E6,0x3221},
- {0xA2E7,0xA2E7,0x3222},
- {0xA2E8,0xA2E8,0x3223},
- {0xA2E9,0xA2E9,0x3224},
- {0xA2EA,0xA2EA,0x3225},
- {0xA2EB,0xA2EB,0x3226},
- {0xA2EC,0xA2EC,0x3227},
- {0xA2ED,0xA2ED,0x3228},
- {0xA2EE,0xA2EE,0x3229},
- {0xA2EF,0xA2EF,0x003F},
- {0xA2F0,0xA2F0,0x003F}, /* A2F0 */
- {0xA2F1,0xA2F1,0x2160},
- {0xA2F2,0xA2F2,0x2161},
- {0xA2F3,0xA2F3,0x2162},
- {0xA2F4,0xA2F4,0x2163},
- {0xA2F5,0xA2F5,0x2164},
- {0xA2F6,0xA2F6,0x2165},
- {0xA2F7,0xA2F7,0x2166},
- {0xA2F8,0xA2F8,0x2167},
- {0xA2F9,0xA2F9,0x2168},
- {0xA2FA,0xA2FA,0x2169},
- {0xA2FB,0xA2FB,0x216A},
- {0xA2FC,0xA2FC,0x216B},
- {0xA2FD,0xA2FD,0x003F},
- {0xA2FE,0xA2FE,0x003F},
- {0xA2FF,0xA2FF,0xA2FF}
-};
-
-
-static MY_UNICASE_INFO cA3[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA3A0,0xA3A0,0xA3A0}, /* A3A0 */
- {0xA3A1,0xA3A1,0xFF01},
- {0xA3A2,0xA3A2,0xFF02},
- {0xA3A3,0xA3A3,0xFF03},
- {0xA3A4,0xA3A4,0xFFE5},
- {0xA3A5,0xA3A5,0xFF05},
- {0xA3A6,0xA3A6,0xFF06},
- {0xA3A7,0xA3A7,0xFF07},
- {0xA3A8,0xA3A8,0xFF08},
- {0xA3A9,0xA3A9,0xFF09},
- {0xA3AA,0xA3AA,0xFF0A},
- {0xA3AB,0xA3AB,0xFF0B},
- {0xA3AC,0xA3AC,0xFF0C},
- {0xA3AD,0xA3AD,0xFF0D},
- {0xA3AE,0xA3AE,0xFF0E},
- {0xA3AF,0xA3AF,0xFF0F},
- {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
- {0xA3B1,0xA3B1,0xFF11},
- {0xA3B2,0xA3B2,0xFF12},
- {0xA3B3,0xA3B3,0xFF13},
- {0xA3B4,0xA3B4,0xFF14},
- {0xA3B5,0xA3B5,0xFF15},
- {0xA3B6,0xA3B6,0xFF16},
- {0xA3B7,0xA3B7,0xFF17},
- {0xA3B8,0xA3B8,0xFF18},
- {0xA3B9,0xA3B9,0xFF19},
- {0xA3BA,0xA3BA,0xFF1A},
- {0xA3BB,0xA3BB,0xFF1B},
- {0xA3BC,0xA3BC,0xFF1C},
- {0xA3BD,0xA3BD,0xFF1D},
- {0xA3BE,0xA3BE,0xFF1E},
- {0xA3BF,0xA3BF,0xFF1F},
- {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */
- {0xA3C1,0xA3E1,0xFF21},
- {0xA3C2,0xA3E2,0xFF22},
- {0xA3C3,0xA3E3,0xFF23},
- {0xA3C4,0xA3E4,0xFF24},
- {0xA3C5,0xA3E5,0xFF25},
- {0xA3C6,0xA3E6,0xFF26},
- {0xA3C7,0xA3E7,0xFF27},
- {0xA3C8,0xA3E8,0xFF28},
- {0xA3C9,0xA3E9,0xFF29},
- {0xA3CA,0xA3EA,0xFF2A},
- {0xA3CB,0xA3EB,0xFF2B},
- {0xA3CC,0xA3EC,0xFF2C},
- {0xA3CD,0xA3ED,0xFF2D},
- {0xA3CE,0xA3EE,0xFF2E},
- {0xA3CF,0xA3EF,0xFF2F},
- {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
- {0xA3D1,0xA3F1,0xFF31},
- {0xA3D2,0xA3F2,0xFF32},
- {0xA3D3,0xA3F3,0xFF33},
- {0xA3D4,0xA3F4,0xFF34},
- {0xA3D5,0xA3F5,0xFF35},
- {0xA3D6,0xA3F6,0xFF36},
- {0xA3D7,0xA3F7,0xFF37},
- {0xA3D8,0xA3F8,0xFF38},
- {0xA3D9,0xA3F9,0xFF39},
- {0xA3DA,0xA3FA,0xFF3A},
- {0xA3DB,0xA3DB,0xFF3B},
- {0xA3DC,0xA3DC,0xFF3C},
- {0xA3DD,0xA3DD,0xFF3D},
- {0xA3DE,0xA3DE,0xFF3E},
- {0xA3DF,0xA3DF,0xFF3F},
- {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */
- {0xA3C1,0xA3E1,0xFF41},
- {0xA3C2,0xA3E2,0xFF42},
- {0xA3C3,0xA3E3,0xFF43},
- {0xA3C4,0xA3E4,0xFF44},
- {0xA3C5,0xA3E5,0xFF45},
- {0xA3C6,0xA3E6,0xFF46},
- {0xA3C7,0xA3E7,0xFF47},
- {0xA3C8,0xA3E8,0xFF48},
- {0xA3C9,0xA3E9,0xFF49},
- {0xA3CA,0xA3EA,0xFF4A},
- {0xA3CB,0xA3EB,0xFF4B},
- {0xA3CC,0xA3EC,0xFF4C},
- {0xA3CD,0xA3ED,0xFF4D},
- {0xA3CE,0xA3EE,0xFF4E},
- {0xA3CF,0xA3EF,0xFF4F},
- {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
- {0xA3D1,0xA3F1,0xFF51},
- {0xA3D2,0xA3F2,0xFF52},
- {0xA3D3,0xA3F3,0xFF53},
- {0xA3D4,0xA3F4,0xFF54},
- {0xA3D5,0xA3F5,0xFF55},
- {0xA3D6,0xA3F6,0xFF56},
- {0xA3D7,0xA3F7,0xFF57},
- {0xA3D8,0xA3F8,0xFF58},
- {0xA3D9,0xA3F9,0xFF59},
- {0xA3DA,0xA3FA,0xFF5A},
- {0xA3FB,0xA3FB,0xFF5B},
- {0xA3FC,0xA3FC,0xFF5C},
- {0xA3FD,0xA3FD,0xFF5D},
- {0xA3FE,0xA3FE,0xFFE3},
- {0xA3FF,0xA3FF,0xA3FF}
-};
-
-
-static MY_UNICASE_INFO cA6[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA6A0,0xA6A0,0xA6A0}, /* A6A0 */
- {0xA6A1,0xA6C1,0x0391},
- {0xA6A2,0xA6C2,0x0392},
- {0xA6A3,0xA6C3,0x0393},
- {0xA6A4,0xA6C4,0x0394},
- {0xA6A5,0xA6C5,0x0395},
- {0xA6A6,0xA6C6,0x0396},
- {0xA6A7,0xA6C7,0x0397},
- {0xA6A8,0xA6C8,0x0398},
- {0xA6A9,0xA6C9,0x0399},
- {0xA6AA,0xA6CA,0x039A},
- {0xA6AB,0xA6CB,0x039B},
- {0xA6AC,0xA6CC,0x039C},
- {0xA6AD,0xA6CD,0x039D},
- {0xA6AE,0xA6CE,0x039E},
- {0xA6AF,0xA6CF,0x039F},
- {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */
- {0xA6B1,0xA6D1,0x03A1},
- {0xA6B2,0xA6D2,0x03A3},
- {0xA6B3,0xA6D3,0x03A4},
- {0xA6B4,0xA6D4,0x03A5},
- {0xA6B5,0xA6D5,0x03A6},
- {0xA6B6,0xA6D6,0x03A7},
- {0xA6B7,0xA6D7,0x03A8},
- {0xA6B8,0xA6D8,0x03A9},
- {0xA6B9,0xA6B9,0x003F},
- {0xA6BA,0xA6BA,0x003F},
- {0xA6BB,0xA6BB,0x003F},
- {0xA6BC,0xA6BC,0x003F},
- {0xA6BD,0xA6BD,0x003F},
- {0xA6BE,0xA6BE,0x003F},
- {0xA6BF,0xA6BF,0x003F},
- {0xA6C0,0xA6C0,0x003F}, /* A6C0 */
- {0xA6A1,0xA6C1,0x03B1},
- {0xA6A2,0xA6C2,0x03B2},
- {0xA6A3,0xA6C3,0x03B3},
- {0xA6A4,0xA6C4,0x03B4},
- {0xA6A5,0xA6C5,0x03B5},
- {0xA6A6,0xA6C6,0x03B6},
- {0xA6A7,0xA6C7,0x03B7},
- {0xA6A8,0xA6C8,0x03B8},
- {0xA6A9,0xA6C9,0x03B9},
- {0xA6AA,0xA6CA,0x03BA},
- {0xA6AB,0xA6CB,0x03BB},
- {0xA6AC,0xA6CC,0x03BC},
- {0xA6AD,0xA6CD,0x03BD},
- {0xA6AE,0xA6CE,0x03BE},
- {0xA6AF,0xA6CF,0x03BF},
- {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */
- {0xA6B1,0xA6D1,0x03C1},
- {0xA6B2,0xA6D2,0x03C3},
- {0xA6B3,0xA6D3,0x03C4},
- {0xA6B4,0xA6D4,0x03C5},
- {0xA6B5,0xA6D5,0x03C6},
- {0xA6B6,0xA6D6,0x03C7},
- {0xA6B7,0xA6D7,0x03C8},
- {0xA6B8,0xA6D8,0x03C9},
- {0xA6D9,0xA6D9,0x003F},
- {0xA6DA,0xA6DA,0x003F},
- {0xA6DB,0xA6DB,0x003F},
- {0xA6DC,0xA6DC,0x003F},
- {0xA6DD,0xA6DD,0x003F},
- {0xA6DE,0xA6DE,0x003F},
- {0xA6DF,0xA6DF,0x003F},
- {0xA6E0,0xA6E0,0x003F}, /* A6E0 */
- {0xA6E1,0xA6E1,0x003F},
- {0xA6E2,0xA6E2,0x003F},
- {0xA6E3,0xA6E3,0x003F},
- {0xA6E4,0xA6E4,0x003F},
- {0xA6E5,0xA6E5,0x003F},
- {0xA6E6,0xA6E6,0x003F},
- {0xA6E7,0xA6E7,0x003F},
- {0xA6E8,0xA6E8,0x003F},
- {0xA6E9,0xA6E9,0x003F},
- {0xA6EA,0xA6EA,0x003F},
- {0xA6EB,0xA6EB,0x003F},
- {0xA6EC,0xA6EC,0x003F},
- {0xA6ED,0xA6ED,0x003F},
- {0xA6EE,0xA6EE,0x003F},
- {0xA6EF,0xA6EF,0x003F},
- {0xA6F0,0xA6F0,0x003F}, /* A6F0 */
- {0xA6F1,0xA6F1,0x003F},
- {0xA6F2,0xA6F2,0x003F},
- {0xA6F3,0xA6F3,0x003F},
- {0xA6F4,0xA6F4,0x003F},
- {0xA6F5,0xA6F5,0x003F},
- {0xA6F6,0xA6F6,0x003F},
- {0xA6F7,0xA6F7,0x003F},
- {0xA6F8,0xA6F8,0x003F},
- {0xA6F9,0xA6F9,0x003F},
- {0xA6FA,0xA6FA,0x003F},
- {0xA6FB,0xA6FB,0x003F},
- {0xA6FC,0xA6FC,0x003F},
- {0xA6FD,0xA6FD,0x003F},
- {0xA6FE,0xA6FE,0x003F},
- {0xA6FF,0xA6FF,0xA6FF}
-};
-
-
-static MY_UNICASE_INFO cA7[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA7A0,0xA7A0,0xA7A0}, /* A7A0 */
- {0xA7A1,0xA7D1,0x0410},
- {0xA7A2,0xA7D2,0x0411},
- {0xA7A3,0xA7D3,0x0412},
- {0xA7A4,0xA7D4,0x0413},
- {0xA7A5,0xA7D5,0x0414},
- {0xA7A6,0xA7D6,0x0415},
- {0xA7A7,0xA7D7,0x0401},
- {0xA7A8,0xA7D8,0x0416},
- {0xA7A9,0xA7D9,0x0417},
- {0xA7AA,0xA7DA,0x0418},
- {0xA7AB,0xA7DB,0x0419},
- {0xA7AC,0xA7DC,0x041A},
- {0xA7AD,0xA7DD,0x041B},
- {0xA7AE,0xA7DE,0x041C},
- {0xA7AF,0xA7DF,0x041D},
- {0xA7B0,0xA7E0,0x041E}, /* A7B0 */
- {0xA7B1,0xA7E1,0x041F},
- {0xA7B2,0xA7E2,0x0420},
- {0xA7B3,0xA7E3,0x0421},
- {0xA7B4,0xA7E4,0x0422},
- {0xA7B5,0xA7E5,0x0423},
- {0xA7B6,0xA7E6,0x0424},
- {0xA7B7,0xA7E7,0x0425},
- {0xA7B8,0xA7E8,0x0426},
- {0xA7B9,0xA7E9,0x0427},
- {0xA7BA,0xA7EA,0x0428},
- {0xA7BB,0xA7EB,0x0429},
- {0xA7BC,0xA7EC,0x042A},
- {0xA7BD,0xA7ED,0x042B},
- {0xA7BE,0xA7EE,0x042C},
- {0xA7BF,0xA7EF,0x042D},
- {0xA7C0,0xA7F0,0x042E}, /* A7C0 */
- {0xA7C1,0xA7F1,0x042F},
- {0xA7C2,0xA7C2,0x003F},
- {0xA7C3,0xA7C3,0x003F},
- {0xA7C4,0xA7C4,0x003F},
- {0xA7C5,0xA7C5,0x003F},
- {0xA7C6,0xA7C6,0x003F},
- {0xA7C7,0xA7C7,0x003F},
- {0xA7C8,0xA7C8,0x003F},
- {0xA7C9,0xA7C9,0x003F},
- {0xA7CA,0xA7CA,0x003F},
- {0xA7CB,0xA7CB,0x003F},
- {0xA7CC,0xA7CC,0x003F},
- {0xA7CD,0xA7CD,0x003F},
- {0xA7CE,0xA7CE,0x003F},
- {0xA7CF,0xA7CF,0x003F},
- {0xA7D0,0xA7D0,0x003F}, /* A7D0 */
- {0xA7A1,0xA7D1,0x0430},
- {0xA7A2,0xA7D2,0x0431},
- {0xA7A3,0xA7D3,0x0432},
- {0xA7A4,0xA7D4,0x0433},
- {0xA7A5,0xA7D5,0x0434},
- {0xA7A6,0xA7D6,0x0435},
- {0xA7A7,0xA7D7,0x0451},
- {0xA7A8,0xA7D8,0x0436},
- {0xA7A9,0xA7D9,0x0437},
- {0xA7AA,0xA7DA,0x0438},
- {0xA7AB,0xA7DB,0x0439},
- {0xA7AC,0xA7DC,0x043A},
- {0xA7AD,0xA7DD,0x043B},
- {0xA7AE,0xA7DE,0x043C},
- {0xA7AF,0xA7DF,0x043D},
- {0xA7B0,0xA7E0,0x043E}, /* A7E0 */
- {0xA7B1,0xA7E1,0x043F},
- {0xA7B2,0xA7E2,0x0440},
- {0xA7B3,0xA7E3,0x0441},
- {0xA7B4,0xA7E4,0x0442},
- {0xA7B5,0xA7E5,0x0443},
- {0xA7B6,0xA7E6,0x0444},
- {0xA7B7,0xA7E7,0x0445},
- {0xA7B8,0xA7E8,0x0446},
- {0xA7B9,0xA7E9,0x0447},
- {0xA7BA,0xA7EA,0x0448},
- {0xA7BB,0xA7EB,0x0449},
- {0xA7BC,0xA7EC,0x044A},
- {0xA7BD,0xA7ED,0x044B},
- {0xA7BE,0xA7EE,0x044C},
- {0xA7BF,0xA7EF,0x044D},
- {0xA7C0,0xA7F0,0x044E}, /* A7F0 */
- {0xA7C1,0xA7F1,0x044F},
- {0xA7F2,0xA7F2,0x003F},
- {0xA7F3,0xA7F3,0x003F},
- {0xA7F4,0xA7F4,0x003F},
- {0xA7F5,0xA7F5,0x003F},
- {0xA7F6,0xA7F6,0x003F},
- {0xA7F7,0xA7F7,0x003F},
- {0xA7F8,0xA7F8,0x003F},
- {0xA7F9,0xA7F9,0x003F},
- {0xA7FA,0xA7FA,0x003F},
- {0xA7FB,0xA7FB,0x003F},
- {0xA7FC,0xA7FC,0x003F},
- {0xA7FD,0xA7FD,0x003F},
- {0xA7FE,0xA7FE,0x003F},
- {0xA7FF,0xA7FF,0xA7FF}
-};
-
-
-static MY_UNICASE_INFO cA8[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx40 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx50 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx60 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx70 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx80 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx90 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA8A0,0xA8A0,0xA8A0}, /* A8A0 */
- {0xA8A1,0xA8A1,0x0101},
- {0xA8A2,0xA8A2,0x00E1},
- {0xA8A3,0xA8A3,0x01CE},
- {0xA8A4,0xA8A4,0x00E0},
- {0xA8A5,0xA8A5,0x0113},
- {0xA8A6,0xA8A6,0x00E9},
- {0xA8A7,0xA8A7,0x011B},
- {0xA8A8,0xA8A8,0x00E8},
- {0xA8A9,0xA8A9,0x012B},
- {0xA8AA,0xA8AA,0x00ED},
- {0xA8AB,0xA8AB,0x01D0},
- {0xA8AC,0xA8AC,0x00EC},
- {0xA8AD,0xA8AD,0x014D},
- {0xA8AE,0xA8AE,0x00F3},
- {0xA8AF,0xA8AF,0x01D2},
- {0xA8B0,0xA8B0,0x00F2}, /* A8B0 */
- {0xA8B1,0xA8B1,0x016B},
- {0xA8B2,0xA8B2,0x00FA},
- {0xA8B3,0xA8B3,0x01D4},
- {0xA8B4,0xA8B4,0x00F9},
- {0xA8B5,0xA8B5,0x01D6},
- {0xA8B6,0xA8B6,0x01D8},
- {0xA8B7,0xA8B7,0x01DA},
- {0xA8B8,0xA8B8,0x01DC},
- {0xA8B9,0xA8B9,0x00FC},
- {0xA8BA,0xA8BA,0x00EA},
- {0xA8BB,0xA8BB,0x003F},
- {0xA8BC,0xA8BC,0x003F},
- {0xA8BD,0xA8BD,0x003F},
- {0xA8BE,0xA8BE,0x003F},
- {0xA8BF,0xA8BF,0x003F},
- {0xA8C0,0xA8C0,0x003F}, /* A8C0 */
- {0xA8C1,0xA8C1,0x003F},
- {0xA8C2,0xA8C2,0x003F},
- {0xA8C3,0xA8C3,0x003F},
- {0xA8C4,0xA8C4,0x003F},
- {0xA8C5,0xA8C5,0x3105},
- {0xA8C6,0xA8C6,0x3106},
- {0xA8C7,0xA8C7,0x3107},
- {0xA8C8,0xA8C8,0x3108},
- {0xA8C9,0xA8C9,0x3109},
- {0xA8CA,0xA8CA,0x310A},
- {0xA8CB,0xA8CB,0x310B},
- {0xA8CC,0xA8CC,0x310C},
- {0xA8CD,0xA8CD,0x310D},
- {0xA8CE,0xA8CE,0x310E},
- {0xA8CF,0xA8CF,0x310F},
- {0xA8D0,0xA8D0,0x3110}, /* A8D0 */
- {0xA8D1,0xA8D1,0x3111},
- {0xA8D2,0xA8D2,0x3112},
- {0xA8D3,0xA8D3,0x3113},
- {0xA8D4,0xA8D4,0x3114},
- {0xA8D5,0xA8D5,0x3115},
- {0xA8D6,0xA8D6,0x3116},
- {0xA8D7,0xA8D7,0x3117},
- {0xA8D8,0xA8D8,0x3118},
- {0xA8D9,0xA8D9,0x3119},
- {0xA8DA,0xA8DA,0x311A},
- {0xA8DB,0xA8DB,0x311B},
- {0xA8DC,0xA8DC,0x311C},
- {0xA8DD,0xA8DD,0x311D},
- {0xA8DE,0xA8DE,0x311E},
- {0xA8DF,0xA8DF,0x311F},
- {0xA8E0,0xA8E0,0x3120}, /* A8E0 */
- {0xA8E1,0xA8E1,0x3121},
- {0xA8E2,0xA8E2,0x3122},
- {0xA8E3,0xA8E3,0x3123},
- {0xA8E4,0xA8E4,0x3124},
- {0xA8E5,0xA8E5,0x3125},
- {0xA8E6,0xA8E6,0x3126},
- {0xA8E7,0xA8E7,0x3127},
- {0xA8E8,0xA8E8,0x3128},
- {0xA8E9,0xA8E9,0x3129},
- {0xA8EA,0xA8EA,0x003F},
- {0xA8EB,0xA8EB,0x003F},
- {0xA8EC,0xA8EC,0x003F},
- {0xA8ED,0xA8ED,0x003F},
- {0xA8EE,0xA8EE,0x003F},
- {0xA8EF,0xA8EF,0x003F},
- {0xA8F0,0xA8F0,0x003F}, /* A8F0 */
- {0xA8F1,0xA8F1,0x003F},
- {0xA8F2,0xA8F2,0x003F},
- {0xA8F3,0xA8F3,0x003F},
- {0xA8F4,0xA8F4,0x003F},
- {0xA8F5,0xA8F5,0x003F},
- {0xA8F6,0xA8F6,0x003F},
- {0xA8F7,0xA8F7,0x003F},
- {0xA8F8,0xA8F8,0x003F},
- {0xA8F9,0xA8F9,0x003F},
- {0xA8FA,0xA8FA,0x003F},
- {0xA8FB,0xA8FB,0x003F},
- {0xA8FC,0xA8FC,0x003F},
- {0xA8FD,0xA8FD,0x003F},
- {0xA8FE,0xA8FE,0x003F},
- {0xA8FF,0xA8FF,0xA8FF}
-};
-
-
-static MY_UNICASE_INFO *my_caseinfo_gb2312[256]=
-{
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */
- cA8, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-
-/* page 0 0x2121-0x2658 */
-static uint16 tab_gb2312_uni0[]={
-0x3000,0x3001,0x3002,0x30FB,0x02C9,0x02C7,0x00A8,0x3003,
-0x3005,0x2015,0xFF5E,0x2016,0x2026,0x2018,0x2019,0x201C,
-0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C,
-0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011,0x00B1,
-0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F,0x222A,
-0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220,0x2312,
-0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D,0x221D,
-0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235,0x2234,
-0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04,0x00A4,
-0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605,0x25CB,
-0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,
-0x203B,0x2192,0x2190,0x2191,0x2193,0x3013, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x2488,0x2489,0x248A,0x248B,0x248C,0x248D,0x248E,0x248F,
-0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496,0x2497,
-0x2498,0x2499,0x249A,0x249B,0x2474,0x2475,0x2476,0x2477,
-0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E,0x247F,
-0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486,0x2487,
-0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,
-0x2468,0x2469, 0, 0,0x3220,0x3221,0x3222,0x3223,
-0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, 0, 0,
-0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,
-0x2168,0x2169,0x216A,0x216B, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFF01,0xFF02,0xFF03,0xFFE5,0xFF05,0xFF06,0xFF07,0xFF08,
-0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,0xFF10,
-0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,0xFF18,
-0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,0xFF20,
-0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,0xFF28,
-0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,0xFF30,
-0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,0xFF38,
-0xFF39,0xFF3A,0xFF3B,0xFF3C,0xFF3D,0xFF3E,0xFF3F,0xFF40,
-0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,0xFF48,
-0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,0xFF50,
-0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,0xFF58,
-0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,0x3048,
-0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,0x3050,
-0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058,
-0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,0x3060,
-0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,0x3068,
-0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,0x3070,
-0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,0x3078,
-0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,0x3080,
-0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,0x3088,
-0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,0x3090,
-0x3091,0x3092,0x3093, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8,
-0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0,
-0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8,
-0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,
-0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,
-0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0,
-0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8,
-0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0,
-0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8,
-0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0,
-0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,
-0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,
-0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,
-0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,
-0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9
-};
-
-/* page 1 0x2721-0x296F */
-static uint16 tab_gb2312_uni1[]={
-0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,0x0416,
-0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,0x041E,
-0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,
-0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,0x042E,
-0x042F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,0x0436,
-0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,0x043E,
-0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,
-0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,0x044E,
-0x044F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,0x011B,0x00E8,
-0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,0x01D2,0x00F2,
-0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,0x01DA,0x01DC,
-0x00FC,0x00EA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x3105,0x3106,0x3107,0x3108,
-0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F,0x3110,
-0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117,0x3118,
-0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,0x311F,0x3120,
-0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127,0x3128,
-0x3129, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x2500,0x2501,0x2502,0x2503,0x2504,
-0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B,0x250C,
-0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513,0x2514,
-0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B,0x251C,
-0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523,0x2524,
-0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B,0x252C,
-0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533,0x2534,
-0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,0x253C,
-0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543,0x2544,
-0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B};
-
-/* page 2 0x3021-0x777E */
-static uint16 tab_gb2312_uni2[]={
-0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,0x54C0,0x7691,
-0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698,0x978D,
-0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,0x80FA,0x6848,
-0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1,0x8884,
-0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252,0x53ED,
-0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB,0x9776,
-0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D,0x67CF,
-0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591,0x73ED,
-0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E,0x62CC,
-0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E,0x6886,
-0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551,0x508D,
-0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8584,0x96F9,0x4FDD,0x5821,0x9971,0x5B9D,0x62B1,0x62A5,
-0x66B4,0x8C79,0x9C8D,0x7206,0x676F,0x7891,0x60B2,0x5351,
-0x5317,0x8F88,0x80CC,0x8D1D,0x94A1,0x500D,0x72C8,0x5907,
-0x60EB,0x7119,0x88AB,0x5954,0x82EF,0x672C,0x7B28,0x5D29,
-0x7EF7,0x752D,0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B,0x6BD4,
-0x9119,0x7B14,0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5,0x6BD9,
-0x6BD6,0x5E01,0x5E87,0x75F9,0x95ED,0x655D,0x5F0A,0x5FC5,
-0x8F9F,0x58C1,0x81C2,0x907F,0x965B,0x97AD,0x8FB9,0x7F16,
-0x8D2C,0x6241,0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9,0x8FAB,
-0x904D,0x6807,0x5F6A,0x8198,0x8868,0x9CD6,0x618B,0x522B,
-0x762A,0x5F6C,0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448,0x5175,
-0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x75C5,0x5E76,0x73BB,0x83E0,0x64AD,0x62E8,0x94B5,0x6CE2,
-0x535A,0x52C3,0x640F,0x94C2,0x7B94,0x4F2F,0x5E1B,0x8236,
-0x8116,0x818A,0x6E24,0x6CCA,0x9A73,0x6355,0x535C,0x54FA,
-0x8865,0x57E0,0x4E0D,0x5E03,0x6B65,0x7C3F,0x90E8,0x6016,
-0x64E6,0x731C,0x88C1,0x6750,0x624D,0x8D22,0x776C,0x8E29,
-0x91C7,0x5F69,0x83DC,0x8521,0x9910,0x53C2,0x8695,0x6B8B,
-0x60ED,0x60E8,0x707F,0x82CD,0x8231,0x4ED3,0x6CA7,0x85CF,
-0x64CD,0x7CD9,0x69FD,0x66F9,0x8349,0x5395,0x7B56,0x4FA7,
-0x518C,0x6D4B,0x5C42,0x8E6D,0x63D2,0x53C9,0x832C,0x8336,
-0x67E5,0x78B4,0x643D,0x5BDF,0x5C94,0x5DEE,0x8BE7,0x62C6,
-0x67F4,0x8C7A,0x6400,0x63BA,0x8749,0x998B,0x8C17,0x7F20,
-0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x573A,0x5C1D,0x5E38,0x957F,0x507F,0x80A0,0x5382,0x655E,
-0x7545,0x5531,0x5021,0x8D85,0x6284,0x949E,0x671D,0x5632,
-0x6F6E,0x5DE2,0x5435,0x7092,0x8F66,0x626F,0x64A4,0x63A3,
-0x5F7B,0x6F88,0x90F4,0x81E3,0x8FB0,0x5C18,0x6668,0x5FF1,
-0x6C89,0x9648,0x8D81,0x886C,0x6491,0x79F0,0x57CE,0x6A59,
-0x6210,0x5448,0x4E58,0x7A0B,0x60E9,0x6F84,0x8BDA,0x627F,
-0x901E,0x9A8B,0x79E4,0x5403,0x75F4,0x6301,0x5319,0x6C60,
-0x8FDF,0x5F1B,0x9A70,0x803B,0x9F7F,0x4F88,0x5C3A,0x8D64,
-0x7FC5,0x65A5,0x70BD,0x5145,0x51B2,0x866B,0x5D07,0x5BA0,
-0x62BD,0x916C,0x7574,0x8E0C,0x7A20,0x6101,0x7B79,0x4EC7,
-0x7EF8,0x7785,0x4E11,0x81ED,0x521D,0x51FA,0x6A71,0x53A8,
-0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,0x63E3,0x5DDD,
-0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,0x75AE,0x7A97,
-0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,0x6376,0x9524,
-0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,0x7EAF,0x8822,
-0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,0x8F9E,0x6148,
-0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,0x806A,0x8471,
-0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,0x918B,0x7C07,
-0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,0x50AC,0x8106,
-0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,0x5BF8,0x78CB,
-0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,0x8FBE,0x7B54,
-0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,0x6234,0x5E26,
-0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6020,0x803D,0x62C5,0x4E39,0x5355,0x90F8,0x63B8,0x80C6,
-0x65E6,0x6C2E,0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39,0x86CB,
-0x5F53,0x6321,0x515A,0x8361,0x6863,0x5200,0x6363,0x8E48,
-0x5012,0x5C9B,0x7977,0x5BFC,0x5230,0x7A3B,0x60BC,0x9053,
-0x76D7,0x5FB7,0x5F97,0x7684,0x8E6C,0x706F,0x767B,0x7B49,
-0x77AA,0x51F3,0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA,0x654C,
-0x7B1B,0x72C4,0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95,0x5730,
-0x8482,0x7B2C,0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0,0x6382,
-0x6EC7,0x7898,0x70B9,0x5178,0x975B,0x57AB,0x7535,0x4F43,
-0x7538,0x5E97,0x60E6,0x5960,0x6DC0,0x6BBF,0x7889,0x53FC,
-0x96D5,0x51CB,0x5201,0x6389,0x540A,0x9493,0x8C03,0x8DCC,
-0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E01,0x76EF,0x53EE,0x9489,0x9876,0x9F0E,0x952D,0x5B9A,
-0x8BA2,0x4E22,0x4E1C,0x51AC,0x8463,0x61C2,0x52A8,0x680B,
-0x4F97,0x606B,0x51BB,0x6D1E,0x515C,0x6296,0x6597,0x9661,
-0x8C46,0x9017,0x75D8,0x90FD,0x7763,0x6BD2,0x728A,0x72EC,
-0x8BFB,0x5835,0x7779,0x8D4C,0x675C,0x9540,0x809A,0x5EA6,
-0x6E21,0x5992,0x7AEF,0x77ED,0x953B,0x6BB5,0x65AD,0x7F0E,
-0x5806,0x5151,0x961F,0x5BF9,0x58A9,0x5428,0x8E72,0x6566,
-0x987F,0x56E4,0x949D,0x76FE,0x9041,0x6387,0x54C6,0x591A,
-0x593A,0x579B,0x8EB2,0x6735,0x8DFA,0x8235,0x5241,0x60F0,
-0x5815,0x86FE,0x5CE8,0x9E45,0x4FC4,0x989D,0x8BB9,0x5A25,
-0x6076,0x5384,0x627C,0x904F,0x9102,0x997F,0x6069,0x800C,
-0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8D30,0x53D1,0x7F5A,0x7B4F,0x4F10,0x4E4F,0x9600,0x6CD5,
-0x73D0,0x85E9,0x5E06,0x756A,0x7FFB,0x6A0A,0x77FE,0x9492,
-0x7E41,0x51E1,0x70E6,0x53CD,0x8FD4,0x8303,0x8D29,0x72AF,
-0x996D,0x6CDB,0x574A,0x82B3,0x65B9,0x80AA,0x623F,0x9632,
-0x59A8,0x4EFF,0x8BBF,0x7EBA,0x653E,0x83F2,0x975E,0x5561,
-0x98DE,0x80A5,0x532A,0x8BFD,0x5420,0x80BA,0x5E9F,0x6CB8,
-0x8D39,0x82AC,0x915A,0x5429,0x6C1B,0x5206,0x7EB7,0x575F,
-0x711A,0x6C7E,0x7C89,0x594B,0x4EFD,0x5FFF,0x6124,0x7CAA,
-0x4E30,0x5C01,0x67AB,0x8702,0x5CF0,0x950B,0x98CE,0x75AF,
-0x70FD,0x9022,0x51AF,0x7F1D,0x8BBD,0x5949,0x51E4,0x4F5B,
-0x5426,0x592B,0x6577,0x80A4,0x5B75,0x6276,0x62C2,0x8F90,
-0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,0x629A,0x8F85,
-0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,0x8150,0x8D74,
-0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,0x961C,0x7236,
-0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,0x7F1A,0x5490,
-0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,0x76D6,0x6E89,
-0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,0x8D76,0x611F,
-0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,0x7F38,0x809B,
-0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,0x9AD8,0x818F,
-0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,0x54E5,0x6B4C,
-0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,0x9769,0x845B,
-0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,0x5404,0x7ED9,
-0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x57C2,0x803F,0x6897,0x5DE5,0x653B,0x529F,0x606D,0x9F9A,
-0x4F9B,0x8EAC,0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E,0x62F1,
-0x8D21,0x5171,0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7,0x57A2,
-0x6784,0x8D2D,0x591F,0x8F9C,0x83C7,0x5495,0x7B8D,0x4F30,
-0x6CBD,0x5B64,0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8,0x8C37,
-0x80A1,0x6545,0x987E,0x56FA,0x96C7,0x522E,0x74DC,0x5250,
-0x5BE1,0x6302,0x8902,0x4E56,0x62D0,0x602A,0x68FA,0x5173,
-0x5B98,0x51A0,0x89C2,0x7BA1,0x9986,0x7F50,0x60EF,0x704C,
-0x8D2F,0x5149,0x5E7F,0x901B,0x7470,0x89C4,0x572D,0x7845,
-0x5F52,0x9F9F,0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678,0x6842,
-0x67DC,0x8DEA,0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD,0x9505,
-0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9AB8,0x5B69,0x6D77,0x6C26,0x4EA5,0x5BB3,0x9A87,0x9163,
-0x61A8,0x90AF,0x97E9,0x542B,0x6DB5,0x5BD2,0x51FD,0x558A,
-0x7F55,0x7FF0,0x64BC,0x634D,0x65F1,0x61BE,0x608D,0x710A,
-0x6C57,0x6C49,0x592F,0x676D,0x822A,0x58D5,0x568E,0x8C6A,
-0x6BEB,0x90DD,0x597D,0x8017,0x53F7,0x6D69,0x5475,0x559D,
-0x8377,0x83CF,0x6838,0x79BE,0x548C,0x4F55,0x5408,0x76D2,
-0x8C89,0x9602,0x6CB3,0x6DB8,0x8D6B,0x8910,0x9E64,0x8D3A,
-0x563F,0x9ED1,0x75D5,0x5F88,0x72E0,0x6068,0x54FC,0x4EA8,
-0x6A2A,0x8861,0x6052,0x8F70,0x54C4,0x70D8,0x8679,0x9E3F,
-0x6D2A,0x5B8F,0x5F18,0x7EA2,0x5589,0x4FAF,0x7334,0x543C,
-0x539A,0x5019,0x540E,0x547C,0x4E4E,0x5FFD,0x745A,0x58F6,
-0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5F27,0x864E,0x552C,0x62A4,0x4E92,0x6CAA,0x6237,0x82B1,
-0x54D7,0x534E,0x733E,0x6ED1,0x753B,0x5212,0x5316,0x8BDD,
-0x69D0,0x5F8A,0x6000,0x6DEE,0x574F,0x6B22,0x73AF,0x6853,
-0x8FD8,0x7F13,0x6362,0x60A3,0x5524,0x75EA,0x8C62,0x7115,
-0x6DA3,0x5BA6,0x5E7B,0x8352,0x614C,0x9EC4,0x78FA,0x8757,
-0x7C27,0x7687,0x51F0,0x60F6,0x714C,0x6643,0x5E4C,0x604D,
-0x8C0E,0x7070,0x6325,0x8F89,0x5FBD,0x6062,0x86D4,0x56DE,
-0x6BC1,0x6094,0x6167,0x5349,0x60E0,0x6666,0x8D3F,0x79FD,
-0x4F1A,0x70E9,0x6C47,0x8BB3,0x8BF2,0x7ED8,0x8364,0x660F,
-0x5A5A,0x9B42,0x6D51,0x6DF7,0x8C41,0x6D3B,0x4F19,0x706B,
-0x83B7,0x6216,0x60D1,0x970D,0x8D27,0x7978,0x51FB,0x573E,
-0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,0x59EC,0x7EE9,
-0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,0x96C6,0x53CA,
-0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,0x6324,0x51E0,
-0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,0x4F0E,0x796D,
-0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,0x8BB0,0x65E2,
-0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,0x67B7,0x5939,
-0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,0x7532,0x94BE,
-0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,0x6B7C,0x76D1,
-0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,0x80A9,0x8270,
-0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,0x7877,0x62E3,
-0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,0x69DB,0x9274,
-0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5065,0x8230,0x5251,0x996F,0x6E10,0x6E85,0x6DA7,0x5EFA,
-0x50F5,0x59DC,0x5C06,0x6D46,0x6C5F,0x7586,0x848B,0x6868,
-0x5956,0x8BB2,0x5320,0x9171,0x964D,0x8549,0x6912,0x7901,
-0x7126,0x80F6,0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07,0x56BC,
-0x6405,0x94F0,0x77EB,0x4FA5,0x811A,0x72E1,0x89D2,0x997A,
-0x7F34,0x7EDE,0x527F,0x6559,0x9175,0x8F7F,0x8F83,0x53EB,
-0x7A96,0x63ED,0x63A5,0x7686,0x79F8,0x8857,0x9636,0x622A,
-0x52AB,0x8282,0x6854,0x6770,0x6377,0x776B,0x7AED,0x6D01,
-0x7ED3,0x89E3,0x59D0,0x6212,0x85C9,0x82A5,0x754C,0x501F,
-0x4ECB,0x75A5,0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4,0x91D1,
-0x4ECA,0x6D25,0x895F,0x7D27,0x9526,0x4EC5,0x8C28,0x8FDB,
-0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5C3D,0x52B2,0x8346,0x5162,0x830E,0x775B,0x6676,0x9CB8,
-0x4EAC,0x60CA,0x7CBE,0x7CB3,0x7ECF,0x4E95,0x8B66,0x666F,
-0x9888,0x9759,0x5883,0x656C,0x955C,0x5F84,0x75C9,0x9756,
-0x7ADF,0x7ADE,0x51C0,0x70AF,0x7A98,0x63EA,0x7A76,0x7EA0,
-0x7396,0x97ED,0x4E45,0x7078,0x4E5D,0x9152,0x53A9,0x6551,
-0x65E7,0x81FC,0x8205,0x548E,0x5C31,0x759A,0x97A0,0x62D8,
-0x72D9,0x75BD,0x5C45,0x9A79,0x83CA,0x5C40,0x5480,0x77E9,
-0x4E3E,0x6CAE,0x805A,0x62D2,0x636E,0x5DE8,0x5177,0x8DDD,
-0x8E1E,0x952F,0x4FF1,0x53E5,0x60E7,0x70AC,0x5267,0x6350,
-0x9E43,0x5A1F,0x5026,0x7737,0x5377,0x7EE2,0x6485,0x652B,
-0x6289,0x6398,0x5014,0x7235,0x89C9,0x51B3,0x8BC0,0x7EDD,
-0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4FCA,0x7AE3,0x6D5A,0x90E1,0x9A8F,0x5580,0x5496,0x5361,
-0x54AF,0x5F00,0x63E9,0x6977,0x51EF,0x6168,0x520A,0x582A,
-0x52D8,0x574E,0x780D,0x770B,0x5EB7,0x6177,0x7CE0,0x625B,
-0x6297,0x4EA2,0x7095,0x8003,0x62F7,0x70E4,0x9760,0x5777,
-0x82DB,0x67EF,0x68F5,0x78D5,0x9897,0x79D1,0x58F3,0x54B3,
-0x53EF,0x6E34,0x514B,0x523B,0x5BA2,0x8BFE,0x80AF,0x5543,
-0x57A6,0x6073,0x5751,0x542D,0x7A7A,0x6050,0x5B54,0x63A7,
-0x62A0,0x53E3,0x6263,0x5BC7,0x67AF,0x54ED,0x7A9F,0x82E6,
-0x9177,0x5E93,0x88E4,0x5938,0x57AE,0x630E,0x8DE8,0x80EF,
-0x5757,0x7B77,0x4FA9,0x5FEB,0x5BBD,0x6B3E,0x5321,0x7B50,
-0x72C2,0x6846,0x77FF,0x7736,0x65F7,0x51B5,0x4E8F,0x76D4,
-0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,0x56F0,0x62EC,
-0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,0x8721,0x814A,
-0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,0x5A6A,0x680F,
-0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,0x63FD,0x89C8,
-0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,0x72FC,0x5ECA,
-0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,0x8001,0x4F6C,
-0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,0x96F7,0x956D,
-0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,0x808B,0x7C7B,
-0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,0x7281,0x9ECE,
-0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,0x91CC,0x9CA4,
-0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,0x5389,0x52B1,
-0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x75E2,0x7ACB,0x7C92,0x6CA5,0x96B6,0x529B,0x7483,0x54E9,
-0x4FE9,0x8054,0x83B2,0x8FDE,0x9570,0x5EC9,0x601C,0x6D9F,
-0x5E18,0x655B,0x8138,0x94FE,0x604B,0x70BC,0x7EC3,0x7CAE,
-0x51C9,0x6881,0x7CB1,0x826F,0x4E24,0x8F86,0x91CF,0x667E,
-0x4EAE,0x8C05,0x64A9,0x804A,0x50DA,0x7597,0x71CE,0x5BE5,
-0x8FBD,0x6F66,0x4E86,0x6482,0x9563,0x5ED6,0x6599,0x5217,
-0x88C2,0x70C8,0x52A3,0x730E,0x7433,0x6797,0x78F7,0x9716,
-0x4E34,0x90BB,0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D,0x62CE,
-0x73B2,0x83F1,0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A,0x51CC,
-0x7075,0x9675,0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C,0x7409,
-0x69B4,0x786B,0x998F,0x7559,0x5218,0x7624,0x6D41,0x67F3,
-0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9686,0x5784,0x62E2,0x9647,0x697C,0x5A04,0x6402,0x7BD3,
-0x6F0F,0x964B,0x82A6,0x5362,0x9885,0x5E90,0x7089,0x63B3,
-0x5364,0x864F,0x9C81,0x9E93,0x788C,0x9732,0x8DEF,0x8D42,
-0x9E7F,0x6F5E,0x7984,0x5F55,0x9646,0x622E,0x9A74,0x5415,
-0x94DD,0x4FA3,0x65C5,0x5C65,0x5C61,0x7F15,0x8651,0x6C2F,
-0x5F8B,0x7387,0x6EE4,0x7EFF,0x5CE6,0x631B,0x5B6A,0x6EE6,
-0x5375,0x4E71,0x63A0,0x7565,0x62A1,0x8F6E,0x4F26,0x4ED1,
-0x6CA6,0x7EB6,0x8BBA,0x841D,0x87BA,0x7F57,0x903B,0x9523,
-0x7BA9,0x9AA1,0x88F8,0x843D,0x6D1B,0x9A86,0x7EDC,0x5988,
-0x9EBB,0x739B,0x7801,0x8682,0x9A6C,0x9A82,0x561B,0x5417,
-0x57CB,0x4E70,0x9EA6,0x5356,0x8FC8,0x8109,0x7792,0x9992,
-0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8C29,0x8292,0x832B,0x76F2,0x6C13,0x5FD9,0x83BD,0x732B,
-0x8305,0x951A,0x6BDB,0x77DB,0x94C6,0x536F,0x8302,0x5192,
-0x5E3D,0x8C8C,0x8D38,0x4E48,0x73AB,0x679A,0x6885,0x9176,
-0x9709,0x7164,0x6CA1,0x7709,0x5A92,0x9541,0x6BCF,0x7F8E,
-0x6627,0x5BD0,0x59B9,0x5A9A,0x95E8,0x95F7,0x4EEC,0x840C,
-0x8499,0x6AAC,0x76DF,0x9530,0x731B,0x68A6,0x5B5F,0x772F,
-0x919A,0x9761,0x7CDC,0x8FF7,0x8C1C,0x5F25,0x7C73,0x79D8,
-0x89C5,0x6CCC,0x871C,0x5BC6,0x5E42,0x68C9,0x7720,0x7EF5,
-0x5195,0x514D,0x52C9,0x5A29,0x7F05,0x9762,0x82D7,0x63CF,
-0x7784,0x85D0,0x79D2,0x6E3A,0x5E99,0x5999,0x8511,0x706D,
-0x6C11,0x62BF,0x76BF,0x654F,0x60AF,0x95FD,0x660E,0x879F,
-0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,0x9B54,0x62B9,
-0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,0x5BDE,0x964C,
-0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,0x59C6,0x6BCD,
-0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,0x76EE,0x7766,
-0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,0x90A3,0x5A1C,
-0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,0x5357,0x7537,
-0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,0x6DD6,0x5462,
-0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,0x502A,0x6CE5,
-0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,0x6EBA,0x852B,
-0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,0x5A18,0x917F,
-0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,0x954A,0x954D,
-0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x62E7,0x6CDE,0x725B,0x626D,0x94AE,0x7EBD,0x8113,0x6D53,
-0x519C,0x5F04,0x5974,0x52AA,0x6012,0x5973,0x6696,0x8650,
-0x759F,0x632A,0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27,0x9E25,
-0x6BB4,0x85D5,0x5455,0x5076,0x6CA4,0x556A,0x8DB4,0x722C,
-0x5E15,0x6015,0x7436,0x62CD,0x6392,0x724C,0x5F98,0x6E43,
-0x6D3E,0x6500,0x6F58,0x76D8,0x78D0,0x76FC,0x7554,0x5224,
-0x53DB,0x4E53,0x5E9E,0x65C1,0x802A,0x80D6,0x629B,0x5486,
-0x5228,0x70AE,0x888D,0x8DD1,0x6CE1,0x5478,0x80DA,0x57F9,
-0x88F4,0x8D54,0x966A,0x914D,0x4F69,0x6C9B,0x55B7,0x76C6,
-0x7830,0x62A8,0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA,0x787C,
-0x7BF7,0x81A8,0x670B,0x9E4F,0x6367,0x78B0,0x576F,0x7812,
-0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5564,0x813E,0x75B2,0x76AE,0x5339,0x75DE,0x50FB,0x5C41,
-0x8B6C,0x7BC7,0x504F,0x7247,0x9A97,0x98D8,0x6F02,0x74E2,
-0x7968,0x6487,0x77A5,0x62FC,0x9891,0x8D2B,0x54C1,0x8058,
-0x4E52,0x576A,0x82F9,0x840D,0x5E73,0x51ED,0x74F6,0x8BC4,
-0x5C4F,0x5761,0x6CFC,0x9887,0x5A46,0x7834,0x9B44,0x8FEB,
-0x7C95,0x5256,0x6251,0x94FA,0x4EC6,0x8386,0x8461,0x83E9,
-0x84B2,0x57D4,0x6734,0x5703,0x666E,0x6D66,0x8C31,0x66DD,
-0x7011,0x671F,0x6B3A,0x6816,0x621A,0x59BB,0x4E03,0x51C4,
-0x6F06,0x67D2,0x6C8F,0x5176,0x68CB,0x5947,0x6B67,0x7566,
-0x5D0E,0x8110,0x9F50,0x65D7,0x7948,0x7941,0x9A91,0x8D77,
-0x5C82,0x4E5E,0x4F01,0x542F,0x5951,0x780C,0x5668,0x6C14,
-0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6070,0x6D3D,0x7275,0x6266,0x948E,0x94C5,0x5343,0x8FC1,
-0x7B7E,0x4EDF,0x8C26,0x4E7E,0x9ED4,0x94B1,0x94B3,0x524D,
-0x6F5C,0x9063,0x6D45,0x8C34,0x5811,0x5D4C,0x6B20,0x6B49,
-0x67AA,0x545B,0x8154,0x7F8C,0x5899,0x8537,0x5F3A,0x62A2,
-0x6A47,0x9539,0x6572,0x6084,0x6865,0x77A7,0x4E54,0x4FA8,
-0x5DE7,0x9798,0x64AC,0x7FD8,0x5CED,0x4FCF,0x7A8D,0x5207,
-0x8304,0x4E14,0x602F,0x7A83,0x94A6,0x4FB5,0x4EB2,0x79E6,
-0x7434,0x52E4,0x82B9,0x64D2,0x79BD,0x5BDD,0x6C81,0x9752,
-0x8F7B,0x6C22,0x503E,0x537F,0x6E05,0x64CE,0x6674,0x6C30,
-0x60C5,0x9877,0x8BF7,0x5E86,0x743C,0x7A77,0x79CB,0x4E18,
-0x90B1,0x7403,0x6C42,0x56DA,0x914B,0x6CC5,0x8D8B,0x533A,
-0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,0x98A7,0x6743,
-0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,0x5238,0x529D,
-0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,0x786E,0x96C0,
-0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,0x74E4,0x58E4,
-0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,0x60F9,0x70ED,
-0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,0x8BA4,0x5203,
-0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,0x8338,0x84C9,
-0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,0x5197,0x63C9,
-0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,0x5982,0x8FB1,
-0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,0x854A,0x745E,
-0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,0x6D12,0x8428,
-0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4F1E,0x6563,0x6851,0x55D3,0x4E27,0x6414,0x9A9A,0x626B,
-0x5AC2,0x745F,0x8272,0x6DA9,0x68EE,0x50E7,0x838E,0x7802,
-0x6740,0x5239,0x6C99,0x7EB1,0x50BB,0x5565,0x715E,0x7B5B,
-0x6652,0x73CA,0x82EB,0x6749,0x5C71,0x5220,0x717D,0x886B,
-0x95EA,0x9655,0x64C5,0x8D61,0x81B3,0x5584,0x6C55,0x6247,
-0x7F2E,0x5892,0x4F24,0x5546,0x8D4F,0x664C,0x4E0A,0x5C1A,
-0x88F3,0x68A2,0x634E,0x7A0D,0x70E7,0x828D,0x52FA,0x97F6,
-0x5C11,0x54E8,0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7,0x820C,
-0x820D,0x8D66,0x6444,0x5C04,0x6151,0x6D89,0x793E,0x8BBE,
-0x7837,0x7533,0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20,0x7EC5,
-0x795E,0x6C88,0x5BA1,0x5A76,0x751A,0x80BE,0x614E,0x6E17,
-0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7701,0x76DB,0x5269,0x80DC,0x5723,0x5E08,0x5931,0x72EE,
-0x65BD,0x6E7F,0x8BD7,0x5C38,0x8671,0x5341,0x77F3,0x62FE,
-0x65F6,0x4EC0,0x98DF,0x8680,0x5B9E,0x8BC6,0x53F2,0x77E2,
-0x4F7F,0x5C4E,0x9A76,0x59CB,0x5F0F,0x793A,0x58EB,0x4E16,
-0x67FF,0x4E8B,0x62ED,0x8A93,0x901D,0x52BF,0x662F,0x55DC,
-0x566C,0x9002,0x4ED5,0x4F8D,0x91CA,0x9970,0x6C0F,0x5E02,
-0x6043,0x5BA4,0x89C6,0x8BD5,0x6536,0x624B,0x9996,0x5B88,
-0x5BFF,0x6388,0x552E,0x53D7,0x7626,0x517D,0x852C,0x67A2,
-0x68B3,0x6B8A,0x6292,0x8F93,0x53D4,0x8212,0x6DD1,0x758F,
-0x4E66,0x8D4E,0x5B70,0x719F,0x85AF,0x6691,0x66D9,0x7F72,
-0x8700,0x9ECD,0x9F20,0x5C5E,0x672F,0x8FF0,0x6811,0x675F,
-0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6055,0x5237,0x800D,0x6454,0x8870,0x7529,0x5E05,0x6813,
-0x62F4,0x971C,0x53CC,0x723D,0x8C01,0x6C34,0x7761,0x7A0E,
-0x542E,0x77AC,0x987A,0x821C,0x8BF4,0x7855,0x6714,0x70C1,
-0x65AF,0x6495,0x5636,0x601D,0x79C1,0x53F8,0x4E1D,0x6B7B,
-0x8086,0x5BFA,0x55E3,0x56DB,0x4F3A,0x4F3C,0x9972,0x5DF3,
-0x677E,0x8038,0x6002,0x9882,0x9001,0x5B8B,0x8BBC,0x8BF5,
-0x641C,0x8258,0x64DE,0x55FD,0x82CF,0x9165,0x4FD7,0x7D20,
-0x901F,0x7C9F,0x50F3,0x5851,0x6EAF,0x5BBF,0x8BC9,0x8083,
-0x9178,0x849C,0x7B97,0x867D,0x968B,0x968F,0x7EE5,0x9AD3,
-0x788E,0x5C81,0x7A57,0x9042,0x96A7,0x795F,0x5B59,0x635F,
-0x7B0B,0x84D1,0x68AD,0x5506,0x7F29,0x7410,0x7D22,0x9501,
-0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,0x62AC,0x53F0,
-0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,0x644A,0x8D2A,
-0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,0x8C2D,0x8C08,
-0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,0x70AD,0x6C64,
-0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,0x7CD6,0x5018,
-0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,0x6ED4,0x7EE6,
-0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,0x5957,0x7279,
-0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,0x8E22,0x9511,
-0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,0x568F,0x60D5,
-0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,0x7530,0x751C,
-0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,0x773A,0x8DF3,
-0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C40,0x5EF7,0x505C,0x4EAD,0x5EAD,0x633A,0x8247,0x901A,
-0x6850,0x916E,0x77B3,0x540C,0x94DC,0x5F64,0x7AE5,0x6876,
-0x6345,0x7B52,0x7EDF,0x75DB,0x5077,0x6295,0x5934,0x900F,
-0x51F8,0x79C3,0x7A81,0x56FE,0x5F92,0x9014,0x6D82,0x5C60,
-0x571F,0x5410,0x5154,0x6E4D,0x56E2,0x63A8,0x9893,0x817F,
-0x8715,0x892A,0x9000,0x541E,0x5C6F,0x81C0,0x62D6,0x6258,
-0x8131,0x9E35,0x9640,0x9A6E,0x9A7C,0x692D,0x59A5,0x62D3,
-0x553E,0x6316,0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6,0x889C,
-0x6B6A,0x5916,0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D,0x4E38,
-0x70F7,0x5B8C,0x7897,0x633D,0x665A,0x7696,0x60CB,0x5B9B,
-0x5A49,0x4E07,0x8155,0x6C6A,0x738B,0x4EA1,0x6789,0x7F51,
-0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5DCD,0x5FAE,0x5371,0x97E6,0x8FDD,0x6845,0x56F4,0x552F,
-0x60DF,0x4E3A,0x6F4D,0x7EF4,0x82C7,0x840E,0x59D4,0x4F1F,
-0x4F2A,0x5C3E,0x7EAC,0x672A,0x851A,0x5473,0x754F,0x80C3,
-0x5582,0x9B4F,0x4F4D,0x6E2D,0x8C13,0x5C09,0x6170,0x536B,
-0x761F,0x6E29,0x868A,0x6587,0x95FB,0x7EB9,0x543B,0x7A33,
-0x7D0A,0x95EE,0x55E1,0x7FC1,0x74EE,0x631D,0x8717,0x6DA1,
-0x7A9D,0x6211,0x65A1,0x5367,0x63E1,0x6C83,0x5DEB,0x545C,
-0x94A8,0x4E4C,0x6C61,0x8BEC,0x5C4B,0x65E0,0x829C,0x68A7,
-0x543E,0x5434,0x6BCB,0x6B66,0x4E94,0x6342,0x5348,0x821E,
-0x4F0D,0x4FAE,0x575E,0x620A,0x96FE,0x6664,0x7269,0x52FF,
-0x52A1,0x609F,0x8BEF,0x6614,0x7199,0x6790,0x897F,0x7852,
-0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A00,0x606F,0x5E0C,0x6089,0x819D,0x5915,0x60DC,0x7184,
-0x70EF,0x6EAA,0x6C50,0x7280,0x6A84,0x88AD,0x5E2D,0x4E60,
-0x5AB3,0x559C,0x94E3,0x6D17,0x7CFB,0x9699,0x620F,0x7EC6,
-0x778E,0x867E,0x5323,0x971E,0x8F96,0x6687,0x5CE1,0x4FA0,
-0x72ED,0x4E0B,0x53A6,0x590F,0x5413,0x6380,0x9528,0x5148,
-0x4ED9,0x9C9C,0x7EA4,0x54B8,0x8D24,0x8854,0x8237,0x95F2,
-0x6D8E,0x5F26,0x5ACC,0x663E,0x9669,0x73B0,0x732E,0x53BF,
-0x817A,0x9985,0x7FA1,0x5BAA,0x9677,0x9650,0x7EBF,0x76F8,
-0x53A2,0x9576,0x9999,0x7BB1,0x8944,0x6E58,0x4E61,0x7FD4,
-0x7965,0x8BE6,0x60F3,0x54CD,0x4EAB,0x9879,0x5DF7,0x6A61,
-0x50CF,0x5411,0x8C61,0x8427,0x785D,0x9704,0x524A,0x54EE,
-0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,0x6548,0x6954,
-0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,0x643A,0x90AA,
-0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,0x87F9,0x61C8,
-0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,0x950C,0x6B23,
-0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,0x661F,0x8165,
-0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,0x90A2,0x884C,
-0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,0x51F6,0x80F8,
-0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,0x7F9E,0x673D,
-0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,0x620C,0x9700,
-0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,0x9157,0x53D9,
-0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,0x7EEA,0x7EED,
-0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9009,0x7663,0x7729,0x7EDA,0x9774,0x859B,0x5B66,0x7A74,
-0x96EA,0x8840,0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2,0x5BFB,
-0x9A6F,0x5DE1,0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A,0x8FC5,
-0x538B,0x62BC,0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD,0x7259,
-0x869C,0x5D16,0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A,0x8BB6,
-0x7109,0x54BD,0x9609,0x70DF,0x6DF9,0x76D0,0x4E25,0x7814,
-0x8712,0x5CA9,0x5EF6,0x8A00,0x989C,0x960E,0x708E,0x6CBF,
-0x5944,0x63A9,0x773C,0x884D,0x6F14,0x8273,0x5830,0x71D5,
-0x538C,0x781A,0x96C1,0x5501,0x5F66,0x7130,0x5BB4,0x8C1A,
-0x9A8C,0x6B83,0x592E,0x9E2F,0x79E7,0x6768,0x626C,0x4F6F,
-0x75A1,0x7F8A,0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2,0x517B,
-0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6447,0x5C27,0x9065,0x7A91,0x8C23,0x59DA,0x54AC,0x8200,
-0x836F,0x8981,0x8000,0x6930,0x564E,0x8036,0x7237,0x91CE,
-0x51B6,0x4E5F,0x9875,0x6396,0x4E1A,0x53F6,0x66F3,0x814B,
-0x591C,0x6DB2,0x4E00,0x58F9,0x533B,0x63D6,0x94F1,0x4F9D,
-0x4F0A,0x8863,0x9890,0x5937,0x9057,0x79FB,0x4EEA,0x80F0,
-0x7591,0x6C82,0x5B9C,0x59E8,0x5F5D,0x6905,0x8681,0x501A,
-0x5DF2,0x4E59,0x77E3,0x4EE5,0x827A,0x6291,0x6613,0x9091,
-0x5C79,0x4EBF,0x5F79,0x81C6,0x9038,0x8084,0x75AB,0x4EA6,
-0x88D4,0x610F,0x6BC5,0x5FC6,0x4E49,0x76CA,0x6EA2,0x8BE3,
-0x8BAE,0x8C0A,0x8BD1,0x5F02,0x7FFC,0x7FCC,0x7ECE,0x8335,
-0x836B,0x56E0,0x6BB7,0x97F3,0x9634,0x59FB,0x541F,0x94F6,
-0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5370,0x82F1,0x6A31,0x5A74,0x9E70,0x5E94,0x7F28,0x83B9,
-0x8424,0x8425,0x8367,0x8747,0x8FCE,0x8D62,0x76C8,0x5F71,
-0x9896,0x786C,0x6620,0x54DF,0x62E5,0x4F63,0x81C3,0x75C8,
-0x5EB8,0x96CD,0x8E0A,0x86F9,0x548F,0x6CF3,0x6D8C,0x6C38,
-0x607F,0x52C7,0x7528,0x5E7D,0x4F18,0x60A0,0x5FE7,0x5C24,
-0x7531,0x90AE,0x94C0,0x72B9,0x6CB9,0x6E38,0x9149,0x6709,
-0x53CB,0x53F3,0x4F51,0x91C9,0x8BF1,0x53C8,0x5E7C,0x8FC2,
-0x6DE4,0x4E8E,0x76C2,0x6986,0x865E,0x611A,0x8206,0x4F59,
-0x4FDE,0x903E,0x9C7C,0x6109,0x6E1D,0x6E14,0x9685,0x4E88,
-0x5A31,0x96E8,0x4E0E,0x5C7F,0x79B9,0x5B87,0x8BED,0x7FBD,
-0x7389,0x57DF,0x828B,0x90C1,0x5401,0x9047,0x55BB,0x5CEA,
-0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,0x9E33,0x6E0A,
-0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,0x8F95,0x56ED,
-0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,0x82D1,0x613F,
-0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,0x94A5,0x5CB3,
-0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,0x90E7,0x5300,
-0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,0x97F5,0x5B55,
-0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,0x5BB0,0x8F7D,
-0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,0x8D43,0x810F,
-0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,0x65E9,0x6FA1,
-0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,0x71E5,0x8D23,
-0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,0x618E,0x66FE,
-0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x94E1,0x95F8,0x7728,0x6805,0x69A8,0x548B,0x4E4D,0x70B8,
-0x8BC8,0x6458,0x658B,0x5B85,0x7A84,0x503A,0x5BE8,0x77BB,
-0x6BE1,0x8A79,0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97,0x5D2D,
-0x5C55,0x8638,0x6808,0x5360,0x6218,0x7AD9,0x6E5B,0x7EFD,
-0x6A1F,0x7AE0,0x5F70,0x6F33,0x5F20,0x638C,0x6DA8,0x6756,
-0x4E08,0x5E10,0x8D26,0x4ED7,0x80C0,0x7634,0x969C,0x62DB,
-0x662D,0x627E,0x6CBC,0x8D75,0x7167,0x7F69,0x5146,0x8087,
-0x53EC,0x906E,0x6298,0x54F2,0x86F0,0x8F99,0x8005,0x9517,
-0x8517,0x8FD9,0x6D59,0x73CD,0x659F,0x771F,0x7504,0x7827,
-0x81FB,0x8D1E,0x9488,0x4FA6,0x6795,0x75B9,0x8BCA,0x9707,
-0x632F,0x9547,0x9635,0x84B8,0x6323,0x7741,0x5F81,0x72F0,
-0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5E27,0x75C7,0x90D1,0x8BC1,0x829D,0x679D,0x652F,0x5431,
-0x8718,0x77E5,0x80A2,0x8102,0x6C41,0x4E4B,0x7EC7,0x804C,
-0x76F4,0x690D,0x6B96,0x6267,0x503C,0x4F84,0x5740,0x6307,
-0x6B62,0x8DBE,0x53EA,0x65E8,0x7EB8,0x5FD7,0x631A,0x63B7,
-0x81F3,0x81F4,0x7F6E,0x5E1C,0x5CD9,0x5236,0x667A,0x79E9,
-0x7A1A,0x8D28,0x7099,0x75D4,0x6EDE,0x6CBB,0x7A92,0x4E2D,
-0x76C5,0x5FE0,0x949F,0x8877,0x7EC8,0x79CD,0x80BF,0x91CD,
-0x4EF2,0x4F17,0x821F,0x5468,0x5DDE,0x6D32,0x8BCC,0x7CA5,
-0x8F74,0x8098,0x5E1A,0x5492,0x76B1,0x5B99,0x663C,0x9AA4,
-0x73E0,0x682A,0x86DB,0x6731,0x732A,0x8BF8,0x8BDB,0x9010,
-0x7AF9,0x70DB,0x716E,0x62C4,0x77A9,0x5631,0x4E3B,0x8457,
-0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4F4F,0x6CE8,0x795D,0x9A7B,0x6293,0x722A,0x62FD,0x4E13,
-0x7816,0x8F6C,0x64B0,0x8D5A,0x7BC6,0x6869,0x5E84,0x88C5,
-0x5986,0x649E,0x58EE,0x72B6,0x690E,0x9525,0x8FFD,0x8D58,
-0x5760,0x7F00,0x8C06,0x51C6,0x6349,0x62D9,0x5353,0x684C,
-0x7422,0x8301,0x914C,0x5544,0x7740,0x707C,0x6D4A,0x5179,
-0x54A8,0x8D44,0x59FF,0x6ECB,0x6DC4,0x5B5C,0x7D2B,0x4ED4,
-0x7C7D,0x6ED3,0x5B50,0x81EA,0x6E0D,0x5B57,0x9B03,0x68D5,
-0x8E2A,0x5B97,0x7EFC,0x603B,0x7EB5,0x90B9,0x8D70,0x594F,
-0x63CD,0x79DF,0x8DB3,0x5352,0x65CF,0x7956,0x8BC5,0x963B,
-0x7EC4,0x94BB,0x7E82,0x5634,0x9189,0x6700,0x7F6A,0x5C0A,
-0x9075,0x6628,0x5DE6,0x4F50,0x67DE,0x505A,0x4F5C,0x5750,
-0x5EA7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,0x4E15,0x4E98,
-0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,0x4E3F,0x5315,
-0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,0x80E4,0x9997,
-0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,0x4E5C,0x4E69,
-0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,0x538D,0x539D,
-0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,0x53F5,0x5326,
-0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,0x5208,0x520E,
-0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,0x5261,0x525C,
-0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,0x5182,0x7F54,
-0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,0x4EEB,0x4EDE,
-0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,0x4F27,0x4F09,
-0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4F5F,0x4F57,0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91,0x4F89,
-0x4F83,0x4F8F,0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC,0x4F94,
-0x4FE6,0x4FE8,0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC,0x4FD1,
-0x4FDF,0x4FF8,0x5029,0x504C,0x4FF3,0x502C,0x500F,0x502E,
-0x502D,0x4FFE,0x501C,0x500C,0x5025,0x5028,0x507E,0x5043,
-0x5055,0x5048,0x504E,0x506C,0x507B,0x50A5,0x50A7,0x50A9,
-0x50BA,0x50D6,0x5106,0x50ED,0x50EC,0x50E6,0x50EE,0x5107,
-0x510B,0x4EDD,0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0,0x6C46,
-0x7C74,0x516E,0x5DFD,0x9EC9,0x9998,0x5181,0x5914,0x52F9,
-0x530D,0x8A07,0x5310,0x51EB,0x5919,0x5155,0x4EA0,0x5156,
-0x4EB3,0x886E,0x88A4,0x4EB5,0x8114,0x88D2,0x7980,0x5B34,
-0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x51C7,0x5196,0x51A2,0x51A5,0x8BA0,0x8BA6,0x8BA7,0x8BAA,
-0x8BB4,0x8BB5,0x8BB7,0x8BC2,0x8BC3,0x8BCB,0x8BCF,0x8BCE,
-0x8BD2,0x8BD3,0x8BD4,0x8BD6,0x8BD8,0x8BD9,0x8BDC,0x8BDF,
-0x8BE0,0x8BE4,0x8BE8,0x8BE9,0x8BEE,0x8BF0,0x8BF3,0x8BF6,
-0x8BF9,0x8BFC,0x8BFF,0x8C00,0x8C02,0x8C04,0x8C07,0x8C0C,
-0x8C0F,0x8C11,0x8C12,0x8C14,0x8C15,0x8C16,0x8C19,0x8C1B,
-0x8C18,0x8C1D,0x8C1F,0x8C20,0x8C21,0x8C25,0x8C27,0x8C2A,
-0x8C2B,0x8C2E,0x8C2F,0x8C32,0x8C33,0x8C35,0x8C36,0x5369,
-0x537A,0x961D,0x9622,0x9621,0x9631,0x962A,0x963D,0x963C,
-0x9642,0x9649,0x9654,0x965F,0x9667,0x966C,0x9672,0x9674,
-0x9688,0x968D,0x9697,0x96B0,0x9097,0x909B,0x909D,0x9099,
-0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x90B8,0x90B0,0x90CF,0x90C5,0x90BE,0x90D0,0x90C4,0x90C7,
-0x90D3,0x90E6,0x90E2,0x90DC,0x90D7,0x90DB,0x90EB,0x90EF,
-0x90FE,0x9104,0x9122,0x911E,0x9123,0x9131,0x912F,0x9139,
-0x9143,0x9146,0x520D,0x5942,0x52A2,0x52AC,0x52AD,0x52BE,
-0x54FF,0x52D0,0x52D6,0x52F0,0x53DF,0x71EE,0x77CD,0x5EF4,
-0x51F5,0x51FC,0x9B2F,0x53B6,0x5F01,0x755A,0x5DEF,0x574C,
-0x57A9,0x57A1,0x587E,0x58BC,0x58C5,0x58D1,0x5729,0x572C,
-0x572A,0x5733,0x5739,0x572E,0x572F,0x575C,0x573B,0x5742,
-0x5769,0x5785,0x576B,0x5786,0x577C,0x577B,0x5768,0x576D,
-0x5776,0x5773,0x57AD,0x57A4,0x578C,0x57B2,0x57CF,0x57A7,
-0x57B4,0x5793,0x57A0,0x57D5,0x57D8,0x57DA,0x57D9,0x57D2,
-0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,0x5819,0x5844,
-0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,0x5880,0x99A8,
-0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,0x828A,0x82A8,
-0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,0x82B8,0x82BE,
-0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,0x82AE,0x82CB,
-0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,0x829F,0x82C4,
-0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,0x830F,0x8307,
-0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,0x82D3,0x8311,
-0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,0x831C,0x8351,
-0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,0x8331,0x839B,
-0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,0x8340,0x8317,
-0x8360,0x832D,0x833A,0x8333,0x8366,0x8365, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8368,0x831B,0x8369,0x836C,0x836A,0x836D,0x836E,0x83B0,
-0x8378,0x83B3,0x83B4,0x83A0,0x83AA,0x8393,0x839C,0x8385,
-0x837C,0x83B6,0x83A9,0x837D,0x83B8,0x837B,0x8398,0x839E,
-0x83A8,0x83BA,0x83BC,0x83C1,0x8401,0x83E5,0x83D8,0x5807,
-0x8418,0x840B,0x83DD,0x83FD,0x83D6,0x841C,0x8438,0x8411,
-0x8406,0x83D4,0x83DF,0x840F,0x8403,0x83F8,0x83F9,0x83EA,
-0x83C5,0x83C0,0x8426,0x83F0,0x83E1,0x845C,0x8451,0x845A,
-0x8459,0x8473,0x8487,0x8488,0x847A,0x8489,0x8478,0x843C,
-0x8446,0x8469,0x8476,0x848C,0x848E,0x8431,0x846D,0x84C1,
-0x84CD,0x84D0,0x84E6,0x84BD,0x84D3,0x84CA,0x84BF,0x84BA,
-0x84E0,0x84A1,0x84B9,0x84B4,0x8497,0x84E5,0x84E3,0x850C,
-0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8556,0x853B,0x84FF,0x84FC,0x8559,0x8548,0x8568,0x8564,
-0x855E,0x857A,0x77A2,0x8543,0x8572,0x857B,0x85A4,0x85A8,
-0x8587,0x858F,0x8579,0x85AE,0x859C,0x8585,0x85B9,0x85B7,
-0x85B0,0x85D3,0x85C1,0x85DC,0x85FF,0x8627,0x8605,0x8629,
-0x8616,0x863C,0x5EFE,0x5F08,0x593C,0x5941,0x8037,0x5955,
-0x595A,0x5958,0x530F,0x5C22,0x5C25,0x5C2C,0x5C34,0x624C,
-0x626A,0x629F,0x62BB,0x62CA,0x62DA,0x62D7,0x62EE,0x6322,
-0x62F6,0x6339,0x634B,0x6343,0x63AD,0x63F6,0x6371,0x637A,
-0x638E,0x63B4,0x636D,0x63AC,0x638A,0x6369,0x63AE,0x63BC,
-0x63F2,0x63F8,0x63E0,0x63FF,0x63C4,0x63DE,0x63CE,0x6452,
-0x63C6,0x63BE,0x6445,0x6441,0x640B,0x641B,0x6420,0x640C,
-0x6426,0x6421,0x645E,0x6484,0x646D,0x6496, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x647A,0x64B7,0x64B8,0x6499,0x64BA,0x64C0,0x64D0,0x64D7,
-0x64E4,0x64E2,0x6509,0x6525,0x652E,0x5F0B,0x5FD2,0x7519,
-0x5F11,0x535F,0x53F1,0x53FD,0x53E9,0x53E8,0x53FB,0x5412,
-0x5416,0x5406,0x544B,0x5452,0x5453,0x5454,0x5456,0x5443,
-0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494,0x5477,
-0x5471,0x5464,0x549A,0x549B,0x5484,0x5476,0x5466,0x549D,
-0x54D0,0x54AD,0x54C2,0x54B4,0x54D2,0x54A7,0x54A6,0x54D3,
-0x54D4,0x5472,0x54A3,0x54D5,0x54BB,0x54BF,0x54CC,0x54D9,
-0x54DA,0x54DC,0x54A9,0x54AA,0x54A4,0x54DD,0x54CF,0x54DE,
-0x551B,0x54E7,0x5520,0x54FD,0x5514,0x54F3,0x5522,0x5523,
-0x550F,0x5511,0x5527,0x552A,0x5567,0x558F,0x55B5,0x5549,
-0x556D,0x5541,0x5555,0x553F,0x5550,0x553C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,0x555C,
-0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,0x5581,0x559F,
-0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,0x55BE,0x5594,
-0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,0x55EB,0x55EC,
-0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,0x55F2,0x55F3,
-0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,0x561E,0x5608,
-0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,0x5627,0x562D,
-0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,0x5659,0x565C,
-0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,0x567B,0x567C,
-0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,0x56E1,0x56F5,
-0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,0x571C,0x5E0F,
-0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5E37,0x5E44,0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C,0x5C7A,
-0x5C8D,0x5C90,0x5C96,0x5C88,0x5C98,0x5C99,0x5C91,0x5C9A,
-0x5C9C,0x5CB5,0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1,0x5CA3,
-0x5CC1,0x5CB7,0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5,0x5D02,
-0x5D03,0x5D27,0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06,0x5D1B,
-0x5D58,0x5D3E,0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F,0x5D5D,
-0x5D6B,0x5D4B,0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99,0x5D9D,
-0x8C73,0x5DB7,0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87,0x5F89,
-0x5F8C,0x5F95,0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5,0x5FBC,
-0x8862,0x5F61,0x72AD,0x72B0,0x72B4,0x72B7,0x72B8,0x72C3,
-0x72C1,0x72CE,0x72CD,0x72D2,0x72E8,0x72EF,0x72E9,0x72F2,
-0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x72FB,0x7317,0x7313,0x7321,0x730A,0x731E,0x731D,0x7315,
-0x7322,0x7339,0x7325,0x732C,0x7338,0x7331,0x7350,0x734D,
-0x7357,0x7360,0x736C,0x736F,0x737E,0x821B,0x5925,0x98E7,
-0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996A,0x996B,
-0x996C,0x9974,0x9977,0x997D,0x9980,0x9984,0x9987,0x998A,
-0x998D,0x9990,0x9991,0x9993,0x9994,0x9995,0x5E80,0x5E91,
-0x5E8B,0x5E96,0x5EA5,0x5EA0,0x5EB9,0x5EB5,0x5EBE,0x5EB3,
-0x8D53,0x5ED2,0x5ED1,0x5EDB,0x5EE8,0x5EEA,0x81BA,0x5FC4,
-0x5FC9,0x5FD6,0x5FCF,0x6003,0x5FEE,0x6004,0x5FE1,0x5FE4,
-0x5FFE,0x6005,0x6006,0x5FEA,0x5FED,0x5FF8,0x6019,0x6035,
-0x6026,0x601B,0x600F,0x600D,0x6029,0x602B,0x600A,0x603F,
-0x6021,0x6078,0x6079,0x607B,0x607A,0x6042, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x606A,0x607D,0x6096,0x609A,0x60AD,0x609D,0x6083,0x6092,
-0x608C,0x609B,0x60EC,0x60BB,0x60B1,0x60DD,0x60D8,0x60C6,
-0x60DA,0x60B4,0x6120,0x6126,0x6115,0x6123,0x60F4,0x6100,
-0x610E,0x612B,0x614A,0x6175,0x61AC,0x6194,0x61A7,0x61B7,
-0x61D4,0x61F5,0x5FDD,0x96B3,0x95E9,0x95EB,0x95F1,0x95F3,
-0x95F5,0x95F6,0x95FC,0x95FE,0x9603,0x9604,0x9606,0x9608,
-0x960A,0x960B,0x960C,0x960D,0x960F,0x9612,0x9615,0x9616,
-0x9617,0x9619,0x961A,0x4E2C,0x723F,0x6215,0x6C35,0x6C54,
-0x6C5C,0x6C4A,0x6CA3,0x6C85,0x6C90,0x6C94,0x6C8C,0x6C68,
-0x6C69,0x6C74,0x6C76,0x6C86,0x6CA9,0x6CD0,0x6CD4,0x6CAD,
-0x6CF7,0x6CF8,0x6CF1,0x6CD7,0x6CB2,0x6CE0,0x6CD6,0x6CFA,
-0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,0x6D04,0x6D19,
-0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,0x6D4F,0x6D52,
-0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,0x6D5E,0x6D93,
-0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,0x6DC7,0x6DC5,
-0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,0x6DDD,0x6DD9,
-0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,0x6E4E,0x6E6B,
-0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,0x6E25,0x6E44,
-0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,0x6EA5,0x6EA7,
-0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,0x6E8F,0x6EC2,
-0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,0x6EF9,0x6F2F,
-0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,0x6F89,0x6F8D,
-0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6FC9,0x6FA7,0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE,0x6FDE,
-0x6FE0,0x6FEF,0x701A,0x7023,0x701B,0x7039,0x7035,0x704F,
-0x705E,0x5B80,0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8,0x752F,
-0x9A9E,0x6434,0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47,0x8B07,
-0x8FB6,0x8FD3,0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9,0x8FE6,
-0x8FF3,0x8FE8,0x9005,0x9004,0x900B,0x9026,0x9011,0x900D,
-0x9016,0x9021,0x9035,0x9036,0x902D,0x902F,0x9044,0x9051,
-0x9052,0x9050,0x9068,0x9058,0x9062,0x905B,0x66B9,0x9074,
-0x907D,0x9082,0x9088,0x9083,0x908B,0x5F50,0x5F57,0x5F56,
-0x5F58,0x5C3B,0x54AB,0x5C50,0x5C59,0x5B71,0x5C63,0x5C66,
-0x7FBC,0x5F2A,0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B,0x5C6E,
-0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5997,0x59CA,0x59AB,0x599E,0x59A4,0x59D2,0x59B2,0x59AF,
-0x59D7,0x59BE,0x5A05,0x5A06,0x59DD,0x5A08,0x59E3,0x59D8,
-0x59F9,0x5A0C,0x5A09,0x5A32,0x5A34,0x5A11,0x5A23,0x5A13,
-0x5A40,0x5A67,0x5A4A,0x5A55,0x5A3C,0x5A62,0x5A75,0x80EC,
-0x5AAA,0x5A9B,0x5A77,0x5A7A,0x5ABE,0x5AEB,0x5AB2,0x5AD2,
-0x5AD4,0x5AB8,0x5AE0,0x5AE3,0x5AF1,0x5AD6,0x5AE6,0x5AD8,
-0x5ADC,0x5B09,0x5B17,0x5B16,0x5B32,0x5B37,0x5B40,0x5C15,
-0x5C1C,0x5B5A,0x5B65,0x5B73,0x5B51,0x5B53,0x5B62,0x9A75,
-0x9A77,0x9A78,0x9A7A,0x9A7F,0x9A7D,0x9A80,0x9A81,0x9A85,
-0x9A88,0x9A8A,0x9A90,0x9A92,0x9A93,0x9A96,0x9A98,0x9A9B,
-0x9A9C,0x9A9D,0x9A9F,0x9AA0,0x9AA2,0x9AA3,0x9AA5,0x9AA7,
-0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7EAD,0x7EB0,0x7EBE,0x7EC0,0x7EC1,0x7EC2,0x7EC9,0x7ECB,
-0x7ECC,0x7ED0,0x7ED4,0x7ED7,0x7EDB,0x7EE0,0x7EE1,0x7EE8,
-0x7EEB,0x7EEE,0x7EEF,0x7EF1,0x7EF2,0x7F0D,0x7EF6,0x7EFA,
-0x7EFB,0x7EFE,0x7F01,0x7F02,0x7F03,0x7F07,0x7F08,0x7F0B,
-0x7F0C,0x7F0F,0x7F11,0x7F12,0x7F17,0x7F19,0x7F1C,0x7F1B,
-0x7F1F,0x7F21,0x7F22,0x7F23,0x7F24,0x7F25,0x7F26,0x7F27,
-0x7F2A,0x7F2B,0x7F2C,0x7F2D,0x7F2F,0x7F30,0x7F31,0x7F32,
-0x7F33,0x7F35,0x5E7A,0x757F,0x5DDB,0x753E,0x9095,0x738E,
-0x7391,0x73AE,0x73A2,0x739F,0x73CF,0x73C2,0x73D1,0x73B7,
-0x73B3,0x73C0,0x73C9,0x73C8,0x73E5,0x73D9,0x987C,0x740A,
-0x73E9,0x73E7,0x73DE,0x73BA,0x73F2,0x740F,0x742A,0x745B,
-0x7426,0x7425,0x7428,0x7430,0x742E,0x742C, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,0x7459,0x7477,
-0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,0x7487,0x748B,
-0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,0x74BA,0x97EA,
-0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,0x6769,0x67A5,
-0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,0x67A8,0x679E,
-0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,0x67D8,0x680A,
-0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,0x67B3,0x67DD,
-0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,0x67FD,0x6832,
-0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,0x6864,0x6883,
-0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,0x683E,0x684A,
-0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,0x6893,0x686B,
-0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6924,0x68F0,0x690B,0x6901,0x6957,0x68E3,0x6910,0x6971,
-0x6939,0x6960,0x6942,0x695D,0x6984,0x696B,0x6980,0x6998,
-0x6978,0x6934,0x69CC,0x6987,0x6988,0x69CE,0x6989,0x6966,
-0x6963,0x6979,0x699B,0x69A7,0x69BB,0x69AB,0x69AD,0x69D4,
-0x69B1,0x69C1,0x69CA,0x69DF,0x6995,0x69E0,0x698D,0x69FF,
-0x6A2F,0x69ED,0x6A17,0x6A18,0x6A65,0x69F2,0x6A44,0x6A3E,
-0x6AA0,0x6A50,0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D,0x6A28,
-0x6A58,0x6A7C,0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB,0x7337,
-0x7352,0x6B81,0x6B82,0x6B87,0x6B84,0x6B92,0x6B93,0x6B8D,
-0x6B9A,0x6B9B,0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71,0x8F72,
-0x8F73,0x8F75,0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A,0x8F7C,
-0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8F8D,0x8F8E,0x8F8F,0x8F98,0x8F9A,0x8ECE,0x620B,0x6217,
-0x621B,0x621F,0x6222,0x6221,0x6225,0x6224,0x622C,0x81E7,
-0x74EF,0x74F4,0x74FF,0x750F,0x7511,0x7513,0x6534,0x65EE,
-0x65EF,0x65F0,0x660A,0x6619,0x6772,0x6603,0x6615,0x6600,
-0x7085,0x66F7,0x661D,0x6634,0x6631,0x6636,0x6635,0x8006,
-0x665F,0x6654,0x6641,0x664F,0x6656,0x6661,0x6657,0x6677,
-0x6684,0x668C,0x66A7,0x669D,0x66BE,0x66DB,0x66DC,0x66E6,
-0x66E9,0x8D32,0x8D33,0x8D36,0x8D3B,0x8D3D,0x8D40,0x8D45,
-0x8D46,0x8D48,0x8D49,0x8D47,0x8D4D,0x8D55,0x8D59,0x89C7,
-0x89CA,0x89CB,0x89CC,0x89CE,0x89CF,0x89D0,0x89D1,0x726E,
-0x729F,0x725D,0x7266,0x726F,0x727E,0x727F,0x7284,0x728B,
-0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x643F,0x64D8,0x8004,0x6BEA,0x6BF3,0x6BFD,0x6BF5,0x6BF9,
-0x6C05,0x6C07,0x6C06,0x6C0D,0x6C15,0x6C18,0x6C19,0x6C1A,
-0x6C21,0x6C29,0x6C24,0x6C2A,0x6C32,0x6535,0x6555,0x656B,
-0x724D,0x7252,0x7256,0x7230,0x8662,0x5216,0x809F,0x809C,
-0x8093,0x80BC,0x670A,0x80BD,0x80B1,0x80AB,0x80AD,0x80B4,
-0x80B7,0x80E7,0x80E8,0x80E9,0x80EA,0x80DB,0x80C2,0x80C4,
-0x80D9,0x80CD,0x80D7,0x6710,0x80DD,0x80EB,0x80F1,0x80F4,
-0x80ED,0x810D,0x810E,0x80F2,0x80FC,0x6715,0x8112,0x8C5A,
-0x8136,0x811E,0x812C,0x8118,0x8132,0x8148,0x814C,0x8153,
-0x8174,0x8159,0x815A,0x8171,0x8160,0x8169,0x817C,0x817D,
-0x816D,0x8167,0x584D,0x5AB5,0x8188,0x8182,0x8191,0x6ED5,
-0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,0x6B46,0x6B59,
-0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,0x6BB3,0x5F40,
-0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,0x65C6,0x65C4,
-0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,0x709C,0x7096,
-0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,0x70E8,0x70CA,
-0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,0x715C,0x7168,
-0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,0x71B3,0x71B5,
-0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,0x721D,0x7228,
-0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,0x6243,0x6248,
-0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,0x795C,0x7953,
-0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,0x797A,0x7985,
-0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x603C,0x605D,0x605A,0x6067,0x6041,0x6059,0x6063,0x60AB,
-0x6106,0x610D,0x615D,0x61A9,0x619D,0x61CB,0x61D1,0x6206,
-0x8080,0x807F,0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8,0x7800,
-0x7809,0x7817,0x7818,0x7811,0x65AB,0x782D,0x781C,0x781D,
-0x7839,0x783A,0x783B,0x781F,0x783C,0x7825,0x782C,0x7823,
-0x7829,0x784E,0x786D,0x7856,0x7857,0x7826,0x7850,0x7847,
-0x784C,0x786A,0x789B,0x7893,0x789A,0x7887,0x789C,0x78A1,
-0x78A3,0x78B2,0x78B9,0x78A5,0x78D4,0x78D9,0x78C9,0x78EC,
-0x78F2,0x7905,0x78F4,0x7913,0x7924,0x791E,0x7934,0x9F9B,
-0x9EF9,0x9EFB,0x9EFC,0x76F1,0x7704,0x770D,0x76F9,0x7707,
-0x7708,0x771A,0x7722,0x7719,0x772D,0x7726,0x7735,0x7738,
-0x7750,0x7751,0x7747,0x7743,0x775A,0x7768, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7762,0x7765,0x777F,0x778D,0x777D,0x7780,0x778C,0x7791,
-0x779F,0x77A0,0x77B0,0x77B5,0x77BD,0x753A,0x7540,0x754E,
-0x754B,0x7548,0x755B,0x7572,0x7579,0x7583,0x7F58,0x7F61,
-0x7F5F,0x8A48,0x7F68,0x7F74,0x7F71,0x7F79,0x7F81,0x7F7E,
-0x76CD,0x76E5,0x8832,0x9485,0x9486,0x9487,0x948B,0x948A,
-0x948C,0x948D,0x948F,0x9490,0x9494,0x9497,0x9495,0x949A,
-0x949B,0x949C,0x94A3,0x94A4,0x94AB,0x94AA,0x94AD,0x94AC,
-0x94AF,0x94B0,0x94B2,0x94B4,0x94B6,0x94B7,0x94B8,0x94B9,
-0x94BA,0x94BC,0x94BD,0x94BF,0x94C4,0x94C8,0x94C9,0x94CA,
-0x94CB,0x94CC,0x94CD,0x94CE,0x94D0,0x94D1,0x94D2,0x94D5,
-0x94D6,0x94D7,0x94D9,0x94D8,0x94DB,0x94DE,0x94DF,0x94E0,
-0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x94E9,0x94EB,0x94EE,0x94EF,0x94F3,0x94F4,0x94F5,0x94F7,
-0x94F9,0x94FC,0x94FD,0x94FF,0x9503,0x9502,0x9506,0x9507,
-0x9509,0x950A,0x950D,0x950E,0x950F,0x9512,0x9513,0x9514,
-0x9515,0x9516,0x9518,0x951B,0x951D,0x951E,0x951F,0x9522,
-0x952A,0x952B,0x9529,0x952C,0x9531,0x9532,0x9534,0x9536,
-0x9537,0x9538,0x953C,0x953E,0x953F,0x9542,0x9535,0x9544,
-0x9545,0x9546,0x9549,0x954C,0x954E,0x954F,0x9552,0x9553,
-0x9554,0x9556,0x9557,0x9558,0x9559,0x955B,0x955E,0x955F,
-0x955D,0x9561,0x9562,0x9564,0x9565,0x9566,0x9567,0x9568,
-0x9569,0x956A,0x956B,0x956C,0x956F,0x9571,0x9572,0x9573,
-0x953A,0x77E7,0x77EC,0x96C9,0x79D5,0x79ED,0x79E3,0x79EB,
-0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,0x7688,0x768E,
-0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,0x9E20,0x9E22,
-0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,0x9E31,0x9E36,
-0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,0x9E42,0x9E44,
-0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,0x9E4E,0x9E51,
-0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,0x9E63,0x9E66,
-0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E71,0x9E6D,
-0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,0x75AC,0x75A3,
-0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,0x75C3,0x75C2,
-0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,0x75EB,0x75E7,
-0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,0x7605,0x760C,
-0x7617,0x760A,0x7625,0x7618,0x7615,0x7619, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x761B,0x763C,0x7622,0x7620,0x7640,0x762D,0x7630,0x763F,
-0x7635,0x7643,0x763E,0x7633,0x764D,0x765E,0x7654,0x765C,
-0x7656,0x766B,0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79,0x7A80,
-0x7A86,0x7A88,0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8,0x7AAD,
-0x7AB3,0x8864,0x8869,0x8872,0x887D,0x887F,0x8882,0x88A2,
-0x88C6,0x88B7,0x88BC,0x88C9,0x88E2,0x88CE,0x88E3,0x88E5,
-0x88F1,0x891A,0x88FC,0x88E8,0x88FE,0x88F0,0x8921,0x8919,
-0x8913,0x891B,0x890A,0x8934,0x892B,0x8936,0x8941,0x8966,
-0x897B,0x758B,0x80E5,0x76B2,0x76B4,0x77DC,0x8012,0x8014,
-0x8016,0x801C,0x8020,0x8022,0x8025,0x8026,0x8027,0x8029,
-0x8028,0x8031,0x800B,0x8035,0x8043,0x8046,0x804D,0x8052,
-0x8069,0x8071,0x8983,0x9878,0x9880,0x9883, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9889,0x988C,0x988D,0x988F,0x9894,0x989A,0x989B,0x989E,
-0x989F,0x98A1,0x98A2,0x98A5,0x98A6,0x864D,0x8654,0x866C,
-0x866E,0x867F,0x867A,0x867C,0x867B,0x86A8,0x868D,0x868B,
-0x86AC,0x869D,0x86A7,0x86A3,0x86AA,0x8693,0x86A9,0x86B6,
-0x86C4,0x86B5,0x86CE,0x86B0,0x86BA,0x86B1,0x86AF,0x86C9,
-0x86CF,0x86B4,0x86E9,0x86F1,0x86F2,0x86ED,0x86F3,0x86D0,
-0x8713,0x86DE,0x86F4,0x86DF,0x86D8,0x86D1,0x8703,0x8707,
-0x86F8,0x8708,0x870A,0x870D,0x8709,0x8723,0x873B,0x871E,
-0x8725,0x872E,0x871A,0x873E,0x8748,0x8734,0x8731,0x8729,
-0x8737,0x873F,0x8782,0x8722,0x877D,0x877E,0x877B,0x8760,
-0x8770,0x874C,0x876E,0x878B,0x8753,0x8763,0x877C,0x8764,
-0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x87C6,0x8788,0x8785,0x87AD,0x8797,0x8783,0x87AB,0x87E5,
-0x87AC,0x87B5,0x87B3,0x87CB,0x87D3,0x87BD,0x87D1,0x87C0,
-0x87CA,0x87DB,0x87EA,0x87E0,0x87EE,0x8816,0x8813,0x87FE,
-0x880A,0x881B,0x8821,0x8839,0x883C,0x7F36,0x7F42,0x7F44,
-0x7F45,0x8210,0x7AFA,0x7AFD,0x7B08,0x7B03,0x7B04,0x7B15,
-0x7B0A,0x7B2B,0x7B0F,0x7B47,0x7B38,0x7B2A,0x7B19,0x7B2E,
-0x7B31,0x7B20,0x7B25,0x7B24,0x7B33,0x7B3E,0x7B1E,0x7B58,
-0x7B5A,0x7B45,0x7B75,0x7B4C,0x7B5D,0x7B60,0x7B6E,0x7B7B,
-0x7B62,0x7B72,0x7B71,0x7B90,0x7BA6,0x7BA7,0x7BB8,0x7BAC,
-0x7B9D,0x7BA8,0x7B85,0x7BAA,0x7B9C,0x7BA2,0x7BAB,0x7BB4,
-0x7BD1,0x7BC1,0x7BCC,0x7BDD,0x7BDA,0x7BE5,0x7BE6,0x7BEA,
-0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,0x81FE,0x8201,
-0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,0x8223,0x822D,
-0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,0x8234,0x823E,
-0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,0x8268,0x887E,
-0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,0x7F9F,0x7FA7,
-0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,0x7C9D,0x7C9C,
-0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,0x7CC7,0x7CCC,
-0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,0x66A8,0x7FBF,
-0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,0x7FEE,0x7FF3,
-0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,0x9EB8,0x9EB4,
-0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,0x8D6D,0x8C47,
-0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9162,0x9161,0x9170,0x9169,0x916F,0x917D,0x917E,0x9172,
-0x9174,0x9179,0x918C,0x9185,0x9190,0x918D,0x9191,0x91A2,
-0x91A3,0x91AA,0x91AD,0x91AE,0x91AF,0x91B5,0x91B4,0x91BA,
-0x8C55,0x9E7E,0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69,0x8DB5,
-0x8DBF,0x8DBC,0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA,0x8DDE,
-0x8DCE,0x8DCF,0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8,0x8DE3,
-0x8DF9,0x8DFB,0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D,0x8E1F,
-0x8E2C,0x8E2E,0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39,0x8E35,
-0x8E3D,0x8E31,0x8E49,0x8E41,0x8E42,0x8E51,0x8E52,0x8E4A,
-0x8E70,0x8E76,0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F,0x8E94,
-0x8E90,0x8E9C,0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85,0x8C98,
-0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x89E5,0x89EB,0x89EF,0x8A3E,0x8B26,0x9753,0x96E9,0x96F3,
-0x96EF,0x9706,0x9701,0x9708,0x970F,0x970E,0x972A,0x972D,
-0x9730,0x973E,0x9F80,0x9F83,0x9F85,0x9F86,0x9F87,0x9F88,
-0x9F89,0x9F8A,0x9F8C,0x9EFE,0x9F0B,0x9F0D,0x96B9,0x96BC,
-0x96BD,0x96CE,0x96D2,0x77BF,0x96E0,0x928E,0x92AE,0x92C8,
-0x933E,0x936A,0x93CA,0x938F,0x943E,0x946B,0x9C7F,0x9C82,
-0x9C85,0x9C86,0x9C87,0x9C88,0x7A23,0x9C8B,0x9C8E,0x9C90,
-0x9C91,0x9C92,0x9C94,0x9C95,0x9C9A,0x9C9B,0x9C9E,0x9C9F,
-0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA5,0x9CA6,0x9CA7,0x9CA8,
-0x9CA9,0x9CAB,0x9CAD,0x9CAE,0x9CB0,0x9CB1,0x9CB2,0x9CB3,
-0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CBA,0x9CBB,0x9CBC,0x9CBD,
-0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9CCC,0x9CCD,0x9CCE,0x9CCF,0x9CD0,0x9CD3,0x9CD4,0x9CD5,
-0x9CD7,0x9CD8,0x9CD9,0x9CDC,0x9CDD,0x9CDF,0x9CE2,0x977C,
-0x9785,0x9791,0x9792,0x9794,0x97AF,0x97AB,0x97A3,0x97B2,
-0x97B4,0x9AB1,0x9AB0,0x9AB7,0x9E58,0x9AB6,0x9ABA,0x9ABC,
-0x9AC1,0x9AC0,0x9AC5,0x9AC2,0x9ACB,0x9ACC,0x9AD1,0x9B45,
-0x9B43,0x9B47,0x9B49,0x9B48,0x9B4D,0x9B51,0x98E8,0x990D,
-0x992E,0x9955,0x9954,0x9ADF,0x9AE1,0x9AE6,0x9AEF,0x9AEB,
-0x9AFB,0x9AED,0x9AF9,0x9B08,0x9B0F,0x9B13,0x9B1F,0x9B23,
-0x9EBD,0x9EBE,0x7E3B,0x9E82,0x9E87,0x9E88,0x9E8B,0x9E92,
-0x93D6,0x9E9D,0x9E9F,0x9EDB,0x9EDC,0x9EDD,0x9EE0,0x9EDF,
-0x9EE2,0x9EE9,0x9EE7,0x9EE5,0x9EEA,0x9EEF,0x9F22,0x9F2C,
-0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44};
-
-static int func_gb2312_uni_onechar(int code){
- if ((code>=0x2121)&&(code<=0x2658))
- return(tab_gb2312_uni0[code-0x2121]);
- if ((code>=0x2721)&&(code<=0x296F))
- return(tab_gb2312_uni1[code-0x2721]);
- if ((code>=0x3021)&&(code<=0x777E))
- return(tab_gb2312_uni2[code-0x3021]);
- return(0);
-}
-
-
-/* page 0 0x00A4-0x01DC */
-static uint16 tab_uni_gb23120[]={
-0x2168, 0, 0,0x216C,0x2127, 0, 0, 0,
- 0, 0, 0, 0,0x2163,0x2140, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x2141, 0, 0, 0, 0,
- 0, 0, 0, 0,0x2824,0x2822, 0, 0,
- 0, 0, 0, 0,0x2828,0x2826,0x283A, 0,
-0x282C,0x282A, 0, 0, 0, 0,0x2830,0x282E,
- 0, 0, 0,0x2142, 0,0x2834,0x2832, 0,
-0x2839, 0, 0, 0, 0,0x2821, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x2825,
- 0, 0, 0, 0, 0, 0, 0,0x2827,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x2829,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x282D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x2831,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x2823, 0,0x282B, 0,0x282F, 0,
-0x2833, 0,0x2835, 0,0x2836, 0,0x2837, 0,
-0x2838};
-
-/* page 1 0x02C7-0x0451 */
-static uint16 tab_uni_gb23121[]={
-0x2126, 0,0x2125, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x2621,0x2622,0x2623,0x2624,0x2625,0x2626,
-0x2627,0x2628,0x2629,0x262A,0x262B,0x262C,0x262D,0x262E,
-0x262F,0x2630,0x2631, 0,0x2632,0x2633,0x2634,0x2635,
-0x2636,0x2637,0x2638, 0, 0, 0, 0, 0,
- 0, 0,0x2641,0x2642,0x2643,0x2644,0x2645,0x2646,
-0x2647,0x2648,0x2649,0x264A,0x264B,0x264C,0x264D,0x264E,
-0x264F,0x2650,0x2651, 0,0x2652,0x2653,0x2654,0x2655,
-0x2656,0x2657,0x2658, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x2727, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x2721,0x2722,0x2723,0x2724,0x2725,0x2726,0x2728,
-0x2729,0x272A,0x272B,0x272C,0x272D,0x272E,0x272F,0x2730,
-0x2731,0x2732,0x2733,0x2734,0x2735,0x2736,0x2737,0x2738,
-0x2739,0x273A,0x273B,0x273C,0x273D,0x273E,0x273F,0x2740,
-0x2741,0x2751,0x2752,0x2753,0x2754,0x2755,0x2756,0x2758,
-0x2759,0x275A,0x275B,0x275C,0x275D,0x275E,0x275F,0x2760,
-0x2761,0x2762,0x2763,0x2764,0x2765,0x2766,0x2767,0x2768,
-0x2769,0x276A,0x276B,0x276C,0x276D,0x276E,0x276F,0x2770,
-0x2771, 0,0x2757};
-
-/* page 2 0x2015-0x2312 */
-static uint16 tab_uni_gb23122[]={
-0x212A,0x212C, 0,0x212E,0x212F, 0, 0,0x2130,
-0x2131, 0, 0, 0, 0, 0, 0, 0,
- 0,0x212D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x216B, 0,0x2164,0x2165, 0,
- 0, 0, 0, 0, 0, 0,0x2179, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x2166, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x216D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x2271,0x2272,0x2273,0x2274,0x2275,
-0x2276,0x2277,0x2278,0x2279,0x227A,0x227B,0x227C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x217B,0x217C,0x217A,0x217D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x214A, 0, 0, 0, 0,
- 0, 0,0x2147, 0,0x2146, 0, 0, 0,
- 0, 0, 0, 0, 0,0x214C, 0, 0,
-0x2158,0x215E, 0,0x214F, 0, 0, 0, 0,
-0x214E, 0,0x2144,0x2145,0x2149,0x2148,0x2152, 0,
- 0,0x2153, 0, 0, 0, 0, 0,0x2160,
-0x215F,0x2143,0x214B, 0, 0, 0, 0, 0,
-0x2157, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x2156, 0, 0, 0,0x2155,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x2159,0x2154, 0, 0,0x215C,
-0x215D, 0, 0, 0, 0, 0, 0, 0,
- 0,0x215A,0x215B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x2151, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x214D, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x2150};
-
-/* page 3 0x2460-0x2642 */
-static uint16 tab_uni_gb23123[]={
-0x2259,0x225A,0x225B,0x225C,0x225D,0x225E,0x225F,0x2260,
-0x2261,0x2262, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x2245,0x2246,0x2247,0x2248,
-0x2249,0x224A,0x224B,0x224C,0x224D,0x224E,0x224F,0x2250,
-0x2251,0x2252,0x2253,0x2254,0x2255,0x2256,0x2257,0x2258,
-0x2231,0x2232,0x2233,0x2234,0x2235,0x2236,0x2237,0x2238,
-0x2239,0x223A,0x223B,0x223C,0x223D,0x223E,0x223F,0x2240,
-0x2241,0x2242,0x2243,0x2244, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x2924,0x2925,0x2926,0x2927,0x2928,0x2929,0x292A,0x292B,
-0x292C,0x292D,0x292E,0x292F,0x2930,0x2931,0x2932,0x2933,
-0x2934,0x2935,0x2936,0x2937,0x2938,0x2939,0x293A,0x293B,
-0x293C,0x293D,0x293E,0x293F,0x2940,0x2941,0x2942,0x2943,
-0x2944,0x2945,0x2946,0x2947,0x2948,0x2949,0x294A,0x294B,
-0x294C,0x294D,0x294E,0x294F,0x2950,0x2951,0x2952,0x2953,
-0x2954,0x2955,0x2956,0x2957,0x2958,0x2959,0x295A,0x295B,
-0x295C,0x295D,0x295E,0x295F,0x2960,0x2961,0x2962,0x2963,
-0x2964,0x2965,0x2966,0x2967,0x2968,0x2969,0x296A,0x296B,
-0x296C,0x296D,0x296E,0x296F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x2176,0x2175, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x2178,0x2177, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x2174,0x2173,
- 0, 0, 0,0x2170, 0, 0,0x2172,0x2171,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x216F,0x216E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x2162, 0,0x2161};
-
-/* page 4 0x3000-0x3129 */
-static uint16 tab_uni_gb23124[]={
-0x2121,0x2122,0x2123,0x2128, 0,0x2129, 0, 0,
-0x2134,0x2135,0x2136,0x2137,0x2138,0x2139,0x213A,0x213B,
-0x213E,0x213F, 0,0x217E,0x2132,0x2133,0x213C,0x213D,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x2421,0x2422,0x2423,0x2424,0x2425,0x2426,0x2427,
-0x2428,0x2429,0x242A,0x242B,0x242C,0x242D,0x242E,0x242F,
-0x2430,0x2431,0x2432,0x2433,0x2434,0x2435,0x2436,0x2437,
-0x2438,0x2439,0x243A,0x243B,0x243C,0x243D,0x243E,0x243F,
-0x2440,0x2441,0x2442,0x2443,0x2444,0x2445,0x2446,0x2447,
-0x2448,0x2449,0x244A,0x244B,0x244C,0x244D,0x244E,0x244F,
-0x2450,0x2451,0x2452,0x2453,0x2454,0x2455,0x2456,0x2457,
-0x2458,0x2459,0x245A,0x245B,0x245C,0x245D,0x245E,0x245F,
-0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,
-0x2468,0x2469,0x246A,0x246B,0x246C,0x246D,0x246E,0x246F,
-0x2470,0x2471,0x2472,0x2473, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x2521,0x2522,0x2523,0x2524,0x2525,0x2526,0x2527,
-0x2528,0x2529,0x252A,0x252B,0x252C,0x252D,0x252E,0x252F,
-0x2530,0x2531,0x2532,0x2533,0x2534,0x2535,0x2536,0x2537,
-0x2538,0x2539,0x253A,0x253B,0x253C,0x253D,0x253E,0x253F,
-0x2540,0x2541,0x2542,0x2543,0x2544,0x2545,0x2546,0x2547,
-0x2548,0x2549,0x254A,0x254B,0x254C,0x254D,0x254E,0x254F,
-0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,0x2557,
-0x2558,0x2559,0x255A,0x255B,0x255C,0x255D,0x255E,0x255F,
-0x2560,0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,
-0x2568,0x2569,0x256A,0x256B,0x256C,0x256D,0x256E,0x256F,
-0x2570,0x2571,0x2572,0x2573,0x2574,0x2575,0x2576, 0,
- 0, 0, 0,0x2124, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x2845,0x2846,0x2847,
-0x2848,0x2849,0x284A,0x284B,0x284C,0x284D,0x284E,0x284F,
-0x2850,0x2851,0x2852,0x2853,0x2854,0x2855,0x2856,0x2857,
-0x2858,0x2859,0x285A,0x285B,0x285C,0x285D,0x285E,0x285F,
-0x2860,0x2861,0x2862,0x2863,0x2864,0x2865,0x2866,0x2867,
-0x2868,0x2869};
-
-/* page 5 0x3220-0x3229 */
-static uint16 tab_uni_gb23125[]={
-0x2265,0x2266,0x2267,0x2268,0x2269,0x226A,0x226B,0x226C,
-0x226D,0x226E};
-
-/* page 6 0x4E00-0x9B54 */
-static uint16 tab_uni_gb23126[]={
-0x523B,0x3621, 0,0x465F, 0, 0, 0,0x4D72,
-0x5549,0x487D,0x494F,0x4F42,0x5822,0x323B,0x536B, 0,
-0x5824,0x3373, 0,0x5728,0x4752,0x5827,0x4A40, 0,
-0x4770,0x317B,0x5235,0x3454,0x362B,0x4B3F,0x5829, 0,
- 0, 0,0x362A, 0,0x413D,0x514F, 0,0x4925,
-0x582D, 0,0x3876,0x513E,0x635C,0x5650, 0, 0,
-0x3761, 0,0x342E, 0,0x4159, 0,0x583C, 0,
-0x4D68,0x3524,0x4E2A,0x5677, 0,0x4076,0x3E59,0x582F,
- 0, 0, 0,0x444B, 0,0x3E43, 0,0x5831,
-0x4334,0x5265, 0,0x562E,0x4E5A,0x5527,0x3A75,0x3726,
-0x4056, 0,0x4639,0x4552,0x4747, 0,0x3954, 0,
-0x334B,0x5252, 0, 0,0x583F,0x3E45,0x4672,0x5232,
-0x4F30,0x4F67, 0, 0, 0, 0,0x4A69, 0,
- 0,0x5840, 0, 0, 0, 0, 0, 0,
-0x4272,0x4252, 0,0x4869, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x472C, 0,
- 0, 0, 0, 0, 0, 0,0x414B, 0,
-0x5368,0x5579, 0,0x4A42,0x367E,0x5821,0x535A,0x3F77,
- 0,0x5446,0x3B25,0x5841,0x4E65,0x3E2E, 0, 0,
-0x5828, 0,0x5147,0x5029, 0, 0, 0,0x583D,
-0x596F,0x4D76,0x3F3A, 0,0x3D3B,0x3A25,0x5260,0x327A,
-0x3A60,0x4436, 0,0x4F6D,0x3E29,0x4D24,0x4141, 0,
- 0, 0,0x4757,0x5971, 0,0x5974, 0, 0,
- 0, 0,0x484B,0x5869, 0, 0, 0,0x525A,
-0x4A32,0x484A,0x586C,0x586A,0x5846,0x3D76,0x464D,0x3370,
- 0,0x586B,0x3D71,0x3D69, 0,0x4854,0x3453, 0,
- 0,0x4258, 0,0x3256,0x5750,0x4A4B,0x4B7B,0x554C,
-0x3836,0x4F49, 0, 0, 0,0x595A,0x5870,0x472A,
- 0,0x586E, 0,0x347A,0x416E,0x5254, 0, 0,
-0x586D, 0,0x5247,0x586F,0x4347, 0, 0, 0,
-0x5176, 0,0x5659,0x5872, 0,0x5875,0x3C7E,0x3C5B,
- 0, 0, 0,0x484E, 0,0x375D, 0,0x3742,
- 0,0x4673, 0, 0, 0, 0, 0, 0,
- 0,0x5878,0x5241, 0, 0,0x4E69,0x3C3F,0x377C,
-0x3725,0x505D, 0, 0, 0, 0, 0,0x565A,
-0x5345,0x3B6F,0x3B61,0x5871, 0, 0,0x4921,0x4E30,
-0x342B, 0,0x5873, 0,0x494B,0x5876,0x4257,0x5877,
- 0, 0,0x4E31,0x5879, 0, 0, 0,0x322E,
-0x3940, 0,0x5923, 0,0x3069, 0,0x4166, 0,
-0x496C, 0,0x4B45, 0,0x4B46,0x5924, 0, 0,
- 0, 0, 0,0x3568, 0, 0,0x352B, 0,
- 0, 0, 0, 0, 0,0x4E3B,0x354D,0x5721,
-0x5774,0x5353, 0,0x4C65, 0,0x3A4E, 0,0x5922,
-0x595C,0x5360,0x587D,0x3770,0x5777,0x587E,0x587A,0x5921,
-0x4463, 0, 0,0x5336,0x5874,0x595D, 0,0x587B,
- 0,0x4565, 0, 0,0x4050, 0, 0,0x5170,
-0x305B, 0, 0,0x3C51,0x5926, 0,0x5925, 0,
- 0, 0, 0,0x592C,0x592E, 0,0x592B,0x4A39,
- 0, 0, 0,0x5929,0x5636, 0, 0, 0,
-0x335E,0x5928, 0,0x407D, 0,0x4A4C, 0,0x592A,
- 0,0x5927, 0, 0,0x5930, 0, 0,0x3631,
- 0, 0, 0,0x3929, 0,0x5240, 0, 0,
-0x4F40, 0, 0,0x4242, 0,0x3D44,0x556C,0x3260,
-0x4748,0x3F6B,0x592D, 0,0x592F, 0,0x4E6A,0x3A6E,
- 0, 0, 0, 0, 0,0x4756, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3163,
- 0, 0, 0,0x3459,0x366D,0x5934, 0, 0,
- 0, 0,0x3F21, 0, 0, 0,0x595E,0x474E,
-0x407E,0x5938, 0, 0, 0, 0, 0,0x4B57,
-0x377D, 0,0x5935, 0,0x5937,0x3123,0x5361,0x5939,
- 0,0x5045, 0,0x5936, 0, 0,0x5931, 0,
-0x5932,0x4129,0x5933, 0, 0,0x3C73,0x505E,0x3829,
- 0,0x3E63, 0,0x593D, 0, 0, 0, 0,
-0x593A, 0,0x3033, 0, 0, 0,0x5942, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5944,0x3136, 0,0x593F,
- 0, 0,0x3539, 0,0x3E73, 0, 0, 0,
-0x4C48,0x3A72,0x5250, 0,0x5943, 0, 0,0x3D68,
- 0,0x332B, 0, 0, 0,0x5945,0x3E6B, 0,
-0x5946,0x593B,0x445F, 0,0x593E,0x5941,0x5940, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x552E, 0,0x5635, 0,0x4763, 0,
- 0, 0, 0,0x5948, 0, 0, 0,0x3C59,
-0x594A, 0, 0, 0,0x593C, 0,0x594B,0x462B,
- 0, 0, 0, 0, 0,0x5949, 0, 0,
- 0, 0,0x5776, 0,0x4D23, 0, 0, 0,
- 0, 0, 0, 0, 0,0x3D21, 0, 0,
- 0, 0, 0, 0,0x594C, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x453C,0x4D35,
- 0, 0, 0,0x594D, 0, 0,0x5947,0x3325,
-0x3F7E, 0, 0, 0, 0,0x3835, 0, 0,
-0x407C, 0, 0, 0, 0,0x3078, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3476, 0,0x594E, 0,0x594F,
-0x3422,0x5950, 0, 0,0x345F, 0, 0, 0,
- 0, 0,0x3041, 0, 0, 0, 0, 0,
- 0, 0,0x5951,0x4935, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x4F71,
- 0, 0, 0, 0, 0, 0,0x5952, 0,
- 0, 0,0x4145, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5956,0x492E,
- 0, 0, 0, 0,0x5955,0x5954,0x5957, 0,
- 0, 0, 0,0x4B5B, 0,0x3D29, 0, 0,
- 0, 0, 0,0x4627, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5953,0x5958,
- 0, 0, 0,0x5959, 0, 0, 0, 0,
- 0, 0,0x4865, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x405C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3679,
-0x5823,0x544A, 0,0x542A,0x5056,0x3364,0x5557, 0,
-0x4F48,0x3962, 0,0x3F4B, 0,0x4362, 0, 0,
- 0,0x3652, 0, 0,0x4D43,0x596E,0x5970, 0,
- 0, 0,0x3533, 0,0x3635, 0, 0, 0,
- 0, 0,0x3E24, 0, 0,0x486B, 0, 0,
-0x482B, 0, 0,0x304B,0x392B,0x4179,0x5962, 0,
-0x403C,0x3932, 0,0x3958,0x504B,0x3178,0x4664,0x3E5F,
-0x3564,0x5748, 0,0x5178,0x3C66,0x4A5E, 0, 0,
-0x3C3D,0x5966,0x5867, 0, 0,0x445A, 0, 0,
-0x3854,0x483D, 0, 0,0x3261,0x5459, 0, 0,
- 0, 0,0x4330, 0, 0,0x4361,0x5A22,0x485F,
- 0,0x5034, 0,0x3E7C,0x4529, 0, 0, 0,
-0x395A, 0,0x5A23, 0,0x5429,0x5A24, 0, 0,
- 0, 0, 0,0x597B,0x362C, 0, 0,0x376B,
-0x3179,0x597C,0x3365,0x3E76, 0,0x3F76,0x5231,0x4064,
- 0, 0, 0,0x3633,0x597E,0x597D, 0, 0,
-0x3E3B, 0, 0, 0,0x4660, 0,0x573C,0x5A21,
- 0,0x4139, 0,0x3572,0x4168, 0, 0,0x3C75,
- 0,0x3455, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x415D, 0,0x447D, 0, 0,
-0x3C38,0x3732, 0, 0,0x376F, 0, 0, 0,
- 0, 0, 0,0x596C, 0,0x463E, 0,0x3F2D,
-0x3B4B, 0, 0,0x354A, 0,0x5B49,0x5057, 0,
-0x4D39,0x303C,0x3376,0x3B77,0x5B4A,0x3A2F, 0,0x5464,
-0x3536,0x3573,0x5856,0x4850, 0, 0,0x3756,0x4750,
-0x5857, 0,0x3F2F, 0, 0,0x5B3B,0x5858, 0,
- 0,0x504C,0x3B2E, 0, 0, 0,0x6B3E,0x4150,
-0x4175,0x5472,0x3855,0x3434, 0,0x3375, 0, 0,
-0x493E, 0, 0, 0,0x4550, 0, 0, 0,
-0x4559,0x407B, 0,0x3170, 0,0x5859,0x394E, 0,
-0x353D, 0, 0,0x585A, 0, 0,0x5646,0x4B22,
-0x482F,0x4932,0x344C,0x3F4C, 0,0x3974, 0,0x585B,
-0x585C,0x3667,0x3C41,0x4C6A, 0, 0, 0, 0,
- 0, 0,0x4F77, 0,0x585D,0x4730, 0, 0,
-0x3950,0x3D23, 0, 0,0x4C5E, 0,0x464A, 0,
- 0, 0, 0, 0,0x5860, 0,0x585E, 0,
- 0,0x585F, 0, 0, 0,0x307E, 0,0x3E67,
- 0,0x4A23,0x3C74, 0, 0, 0, 0,0x3831,
- 0, 0,0x386E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5862, 0,0x3D4B,
- 0,0x5864,0x5863, 0, 0, 0, 0, 0,
-0x457C, 0, 0, 0, 0, 0, 0, 0,
-0x5865, 0, 0,0x5866, 0, 0, 0, 0,
- 0, 0, 0,0x4126, 0,0x4830,0x306C,0x3926,
-0x3C53,0x4E71,0x5B3D,0x4153, 0, 0, 0, 0,
-0x362F,0x567A,0x452C,0x3D59,0x5B3E,0x5B3F, 0, 0,
- 0,0x4078,0x3E22,0x404D, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5B40,0x4A46,
- 0, 0, 0,0x322A, 0, 0, 0,0x5342,
- 0,0x4363, 0,0x512B, 0, 0, 0, 0,
-0x5B42, 0,0x4055, 0, 0, 0,0x5B43, 0,
-0x3F31, 0, 0, 0, 0, 0, 0,0x443C,
- 0, 0, 0, 0,0x475A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5B44, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5968,0x4957, 0, 0, 0,0x3934,0x4E70,
-0x5448, 0, 0, 0, 0,0x307C,0x3452, 0,
-0x5059, 0, 0, 0, 0,0x5969, 0,0x5E4B,
-0x596B, 0, 0, 0, 0,0x5830,0x3B2F,0x3131,
- 0,0x3357,0x584E, 0, 0,0x5451, 0, 0,
-0x3D33,0x3F6F, 0,0x4F3B, 0, 0,0x5850, 0,
- 0, 0,0x374B, 0, 0, 0,0x5851, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x4625,0x4778,0x523D, 0, 0,0x5852,0x4464,
- 0,0x4A2E, 0,0x4727, 0,0x5826, 0,0x497D,
-0x4E67,0x3B5C,0x306B, 0, 0, 0,0x3B2A,0x502D,
- 0,0x3130,0x5764,0x573F, 0,0x3525,0x4274,0x444F,
- 0, 0,0x3229, 0,0x3237, 0,0x3165,0x5F32,
-0x553C,0x3F28,0x422C,0x5855,0x4231, 0,0x5854,0x4E54,
- 0,0x5A60, 0,0x4E40, 0, 0,0x5834,0x432E,
-0x5321,0x4E23, 0,0x3C34,0x4834,0x4251, 0,0x3E6D,
-0x5036, 0,0x5A61, 0, 0, 0, 0,0x4764,
- 0, 0,0x3327, 0,0x3672,0x4C7C,0x407A, 0,
- 0,0x4077, 0,0x5139,0x5161,0x5847, 0, 0,
- 0, 0, 0, 0, 0,0x325E, 0, 0,
-0x4065, 0,0x3A71, 0, 0,0x5848, 0,0x542D,
- 0, 0,0x4F61,0x5849, 0,0x584A,0x4F43, 0,
-0x3378,0x3E47, 0, 0, 0, 0,0x584B, 0,
- 0, 0, 0, 0, 0, 0,0x5B4C, 0,
- 0, 0, 0,0x4825, 0, 0, 0,0x4F58,
- 0,0x487E,0x324E, 0, 0, 0, 0, 0,
-0x5356,0x3266,0x3C30,0x5351,0x4B2B,0x3734, 0, 0,
- 0,0x3722, 0, 0,0x4A65, 0,0x4821,0x4A5C,
-0x3164,0x5070, 0,0x4551, 0, 0, 0,0x5B45,
-0x357E, 0, 0,0x3F5A,0x3945,0x3E64,0x416D, 0,
-0x5F36,0x5F35,0x563B,0x3D50,0x5559,0x3048,0x3623,0x3F49,
-0x4C28,0x5F33,0x4A37,0x5352, 0,0x584F,0x5236,0x3A45,
-0x4B3E,0x4C3E, 0,0x5F37,0x3570,0x5F34, 0, 0,
- 0,0x5375, 0,0x3354,0x3877, 0,0x5F3A, 0,
-0x3A4F,0x3C2A,0x3575, 0,0x4D2C,0x437B,0x3A73,0x4074,
-0x4D42,0x4F72,0x5F38,0x4F45, 0,0x4240,0x5F39,0x4270,
- 0, 0, 0,0x3E7D, 0,0x415F,0x4D4C,0x5277,
-0x374D,0x5F41, 0,0x5F44, 0, 0,0x3771,0x3049,
-0x3656,0x3754, 0,0x3A2C,0x4C7D,0x3F54,0x4B31,0x4674,
- 0,0x5628,0x5F45, 0,0x4E62,0x3333, 0, 0,
-0x4E7C,0x3435, 0,0x4E47,0x3A70, 0,0x4E61, 0,
-0x513D, 0, 0,0x5F40, 0, 0,0x3474, 0,
-0x334A, 0,0x3866,0x5F3B, 0, 0, 0, 0,
-0x4445, 0,0x5F3C,0x5F3D,0x5F3E,0x453B,0x5F3F,0x5F42,
-0x5431,0x5F43, 0,0x473A,0x4E58, 0, 0, 0,
- 0, 0,0x4458, 0,0x5F4A, 0,0x5F4F, 0,
-0x565C, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5F49,0x5F5A,0x4E36, 0,0x3A47,0x5F4E,0x5F48,
-0x455E, 0, 0,0x496B,0x3A74,0x437C, 0, 0,
-0x3E57, 0,0x5F46, 0,0x5F4D, 0,0x4558, 0,
- 0, 0, 0,0x5526,0x3A4D, 0,0x3E4C,0x533D,
-0x3840, 0,0x5664, 0,0x5F47,0x393E,0x3F27, 0,
- 0,0x417C,0x5F4B,0x5F4C, 0,0x5F50, 0, 0,
- 0, 0, 0,0x5F5B,0x5F65, 0,0x5F57,0x5F56,
-0x5749,0x5F63,0x5F64,0x656B,0x5227,0x5F52, 0,0x3F29,
- 0,0x545B, 0,0x3F48,0x5F54, 0, 0, 0,
-0x4F4C, 0, 0,0x5F5D, 0,0x514A, 0,0x5F5E,
-0x3027,0x4637,0x5F53, 0,0x3A65, 0,0x365F,0x4D5B,
-0x397E,0x5455, 0, 0,0x5F5F,0x4F6C,0x3025,0x5F67,
-0x5F51,0x5146,0x5F55,0x5F58,0x5F59,0x5F5C, 0,0x3B29,
- 0,0x5F60,0x5F61, 0,0x5F62,0x5F66,0x5F68,0x5334,
- 0, 0, 0, 0, 0,0x3867,0x4536,0x5F6A,
-0x495A,0x4128,0x4444, 0, 0,0x3F5E,0x4F78, 0,
- 0, 0,0x555C,0x5F6E, 0, 0, 0, 0,
- 0, 0,0x3238, 0,0x3A5F,0x5F6C, 0,0x5B41,
- 0,0x5164, 0, 0, 0, 0,0x4B74,0x343D,
- 0,0x3026, 0, 0, 0, 0, 0,0x5F71,
-0x4C46,0x5F72, 0, 0,0x5F6D, 0, 0, 0,
- 0, 0, 0,0x5F69, 0, 0, 0, 0,
-0x5F6B, 0,0x5F6F,0x5F70,0x3B3D, 0, 0,0x5F73,
- 0, 0,0x5F74, 0,0x3B23, 0,0x4A5B,0x4E28,
-0x6027,0x332A, 0,0x6026, 0, 0, 0,0x6021,
- 0, 0, 0, 0,0x5F7E, 0,0x4D59,0x5F7C,
- 0,0x5F7A, 0,0x3F50,0x5744, 0,0x494C, 0,
- 0,0x5F78,0x3021, 0, 0, 0, 0, 0,
-0x5F7D, 0, 0, 0, 0,0x5F7B,0x6022, 0,
- 0, 0, 0, 0,0x6028, 0, 0, 0,
- 0,0x3748, 0, 0,0x4621,0x4936,0x4032,0x5F75,
- 0, 0,0x453E, 0,0x5844,0x5F79,0x4476, 0,
- 0, 0, 0, 0, 0,0x6023,0x6024,0x6025,
-0x5025, 0, 0,0x6034,0x4C64, 0,0x6031, 0,
-0x3F26,0x602F,0x4E39,0x602B,0x4946, 0, 0,0x402E,
-0x602E,0x3A6D,0x3A30,0x6029, 0, 0, 0,0x5F76,
- 0,0x6033, 0, 0,0x6038, 0, 0, 0,
-0x342D,0x6039, 0, 0,0x4F32,0x3A48, 0,0x6030,
- 0, 0, 0, 0, 0, 0, 0,0x507A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x602C, 0,0x547B, 0,0x5F77, 0,0x4567,
- 0,0x602D, 0,0x5377, 0,0x6036,0x6037, 0,
- 0, 0, 0, 0,0x6044,0x5061, 0, 0,
- 0,0x603C, 0, 0,0x6049,0x604A, 0, 0,
- 0,0x603E,0x602A,0x4924,0x6041, 0,0x6032, 0,
- 0, 0, 0, 0,0x4A48,0x6043, 0,0x6035,
- 0,0x4E4B, 0,0x4B43,0x604D,0x6046,0x6042, 0,
-0x604B, 0,0x603A,0x603F,0x6040, 0, 0,0x6045,
- 0, 0,0x6047,0x6048, 0,0x604C, 0,0x603B,
- 0, 0, 0, 0, 0,0x4B54,0x6055, 0,
-0x6056,0x6052, 0, 0, 0, 0, 0, 0,
-0x6050,0x3C4E, 0, 0,0x6051, 0,0x3842,0x5845,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x506A, 0, 0,0x426F, 0, 0,0x604F,0x603D,
- 0, 0, 0,0x6054,0x6053, 0, 0,0x6057,
- 0, 0, 0, 0,0x605C,0x6058, 0, 0,
- 0,0x5676,0x3330, 0,0x576C, 0,0x4B3B, 0,
- 0,0x605A, 0,0x4E7B, 0, 0, 0,0x3A59,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6061,0x605D,0x522D, 0,
- 0, 0, 0, 0,0x6062, 0, 0,0x605B,
-0x6059,0x605F, 0, 0,0x6060, 0, 0, 0,
- 0, 0,0x605E, 0,0x6064, 0, 0, 0,
-0x4677,0x582C,0x546B,0x6066,0x4A49, 0, 0, 0,
- 0,0x6065, 0, 0, 0, 0,0x3841, 0,
- 0, 0, 0,0x6067,0x6068, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6069,0x6063, 0,
- 0, 0, 0, 0, 0, 0,0x3A3F,0x4C67,
- 0, 0, 0,0x606A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4F79, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x606B,
- 0, 0, 0, 0, 0, 0, 0,0x4842,
- 0, 0, 0, 0,0x3D40, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x4452, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x606C, 0, 0,0x606D,
- 0, 0,0x4774,0x4B44, 0,0x606E,0x3B58,0x5836,
-0x5272,0x606F,0x4D45, 0,0x365A, 0, 0, 0,
- 0, 0, 0,0x6071, 0,0x5430, 0, 0,
-0x4027,0x3451, 0, 0,0x4E27,0x6070, 0, 0,
- 0,0x6072,0x394C, 0, 0,0x397A,0x4D3C,0x6073,
- 0, 0, 0,0x4654,0x6074, 0,0x5432, 0,
-0x4826,0x6076,0x6075, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6077, 0, 0,0x4D41,
- 0, 0, 0,0x4A25, 0, 0, 0, 0,
-0x545A,0x5B57,0x5B59, 0,0x5B58,0x3967,0x5B5C,0x5B5D,
-0x3558, 0, 0,0x5B5A, 0, 0, 0, 0,
- 0,0x5B5B,0x3321,0x5B5F, 0, 0,0x3B78, 0,
-0x5637, 0,0x5B60, 0, 0, 0, 0,0x3E79,
- 0, 0,0x373B, 0,0x5B50,0x4C2E,0x3F32,0x3B35,
-0x5778,0x3F53, 0, 0, 0, 0, 0,0x3F69,
- 0, 0,0x3C61,0x4C33,0x5B5E,0x3053,0x4E6B,0x3758,
-0x5739,0x4642, 0, 0,0x4024, 0,0x4C39, 0,
-0x5B67,0x5B61,0x463A,0x5B63, 0,0x5B68, 0,0x4577,
- 0, 0, 0,0x5B6A, 0, 0,0x5B69,0x3F40,
- 0, 0, 0,0x5B66,0x5B65, 0, 0, 0,
- 0, 0,0x3439,0x402C,0x4222,0x5B62,0x5B64, 0,
- 0, 0, 0,0x504D,0x5B6D, 0, 0, 0,
- 0, 0,0x405D,0x5B72, 0, 0, 0, 0,
- 0, 0, 0,0x3662, 0, 0, 0, 0,
-0x5B73,0x5B52,0x3938,0x542B,0x5B6C, 0,0x3F51,0x5B70,
- 0,0x5B51, 0,0x3566, 0,0x5B6B,0x3F65, 0,
- 0, 0,0x5B6E, 0,0x5B71, 0, 0, 0,
-0x5B79, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x3921,0x3023, 0, 0, 0, 0,
- 0, 0, 0,0x4271, 0, 0,0x3347,0x5B6F,
- 0, 0,0x5B78, 0,0x4652,0x5B74, 0, 0,
-0x5B75,0x5B77,0x5B76, 0, 0,0x5B7E, 0,0x5372,
-0x323A, 0, 0, 0,0x5B7D, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5C24, 0,0x5B7B,
- 0, 0, 0, 0,0x5B7A, 0, 0, 0,
-0x5B7C,0x4560,0x3B79, 0, 0,0x5C23, 0, 0,
-0x5C25, 0,0x4C43, 0, 0, 0,0x3651,0x5D40,
- 0, 0, 0,0x5C21, 0,0x5C22, 0, 0,
- 0,0x4735, 0, 0, 0,0x3669, 0, 0,
- 0,0x5C27, 0, 0, 0, 0,0x5C26, 0,
-0x5C29,0x3124, 0, 0,0x354C, 0, 0, 0,
- 0, 0,0x3F30, 0, 0, 0, 0, 0,
-0x515F, 0, 0, 0, 0,0x3642, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5C28, 0, 0, 0,
- 0, 0, 0, 0,0x4B7A,0x6B73, 0, 0,
- 0,0x4B5C, 0, 0,0x4B7E, 0, 0, 0,
-0x4C41, 0, 0, 0, 0, 0,0x487B, 0,
- 0, 0, 0, 0, 0,0x5C2A, 0, 0,
- 0, 0, 0,0x4C6E,0x5C2B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5B53, 0,
-0x5C2F,0x5C2C, 0,0x3E33, 0,0x4A7B, 0, 0,
- 0,0x5C2D, 0, 0, 0, 0, 0, 0,
- 0, 0,0x494A,0x4439, 0, 0, 0, 0,
- 0,0x473D,0x5C2E, 0, 0, 0,0x5476,0x5066,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x442B,0x3655, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5B54, 0, 0, 0,
- 0,0x315A, 0, 0, 0,0x5B55, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5B56, 0, 0, 0,0x3A3E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x4840, 0, 0, 0,
- 0, 0, 0,0x4A3F,0x4849, 0,0x5733, 0,
-0x4979, 0, 0,0x3F47, 0, 0,0x3A78, 0,
- 0,0x523C, 0, 0, 0, 0, 0, 0,
- 0, 0,0x623A, 0,0x3426, 0, 0,0x3138,
- 0, 0, 0, 0, 0,0x3834, 0,0x4F44,
- 0, 0, 0, 0,0x5967,0x4F26,0x4D62, 0,
- 0,0x596D,0x3660, 0,0x5239, 0, 0,0x393B,
- 0, 0, 0, 0,0x6239,0x6237, 0,0x3473,
- 0,0x4C6C,0x4C2B,0x3772, 0,0x5832,0x516B,0x3A3B,
- 0,0x4A27, 0, 0,0x4D37, 0, 0,0x5244,
-0x3F64,0x3C50,0x3661, 0,0x5E45, 0, 0, 0,
- 0,0x5E46,0x5B3C, 0,0x5159, 0, 0,0x4666,
-0x444E,0x376E, 0,0x375C, 0, 0,0x3F7C,0x5760,
- 0,0x4675, 0, 0,0x313C,0x5E48,0x3D31,0x4C57,
-0x5E4A, 0,0x5E49, 0, 0, 0, 0, 0,
-0x356C, 0,0x495D, 0, 0,0x3042, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x452E,0x452B, 0,0x444C, 0,
-0x3C69,0x4B7D, 0, 0, 0,0x3A43, 0, 0,
- 0,0x6579,0x4867,0x657A,0x4D7D, 0,0x5731,0x383E,
-0x4268, 0,0x4851, 0, 0,0x657B, 0, 0,
- 0, 0,0x364A,0x3C4B, 0, 0,0x517D,0x6621,
- 0,0x436E, 0, 0, 0, 0,0x6624, 0,
- 0, 0, 0,0x657E,0x6625,0x4D57, 0, 0,
-0x3741,0x657C,0x657D,0x6623, 0, 0,0x445D,0x6628,
- 0, 0,0x6627, 0, 0, 0, 0, 0,
- 0,0x4343, 0,0x465E, 0, 0,0x662A, 0,
- 0, 0, 0, 0, 0, 0,0x4437, 0,
- 0, 0,0x6622,0x4A3C, 0, 0, 0, 0,
-0x3D63,0x3943,0x6626,0x5055,0x4E2F, 0, 0,0x6629,
-0x6630, 0,0x5226, 0,0x3D2A,0x662D, 0, 0,
- 0, 0, 0,0x662F, 0,0x4051, 0, 0,
-0x524C, 0, 0, 0,0x3C27, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6631, 0,0x5276, 0, 0, 0,0x574B,
- 0,0x4D7E, 0,0x4D5E,0x4226,0x662B,0x662C,0x3D3F,
-0x662E,0x6633, 0, 0,0x6632, 0, 0, 0,
- 0,0x6636, 0,0x6638, 0, 0, 0, 0,
-0x446F, 0, 0, 0,0x4448, 0, 0,0x3E6A,
-0x496F, 0, 0,0x6637, 0,0x3670, 0, 0,
- 0,0x4364, 0, 0, 0, 0, 0, 0,
- 0,0x5369,0x6634, 0,0x6635, 0,0x4822, 0,
- 0, 0, 0, 0,0x663D, 0, 0, 0,
-0x6639, 0, 0, 0, 0, 0,0x4645, 0,
- 0,0x4D71,0x663B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x663C, 0, 0,
- 0, 0,0x3B69, 0, 0, 0, 0, 0,
- 0, 0,0x663E, 0, 0, 0, 0,0x663A,
- 0, 0,0x4037, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5324,0x663F,0x4974,0x6643,
- 0, 0,0x6644, 0, 0, 0, 0,0x5076,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x433D, 0, 0, 0, 0, 0,
- 0, 0,0x4344,0x6642, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6641, 0, 0, 0, 0, 0,
- 0, 0,0x6647,0x4F31, 0,0x6B74, 0, 0,
-0x664A, 0, 0, 0, 0, 0,0x6645, 0,
- 0,0x3C5E,0x4929, 0, 0, 0, 0, 0,
- 0,0x3C35, 0, 0,0x4F53, 0, 0, 0,
- 0, 0,0x6648, 0,0x6649, 0,0x664E, 0,
-0x6650, 0, 0, 0,0x6651, 0, 0, 0,
-0x664B,0x3555, 0,0x664C, 0, 0,0x664F, 0,
- 0,0x445B, 0,0x6646, 0, 0, 0, 0,
- 0,0x664D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6652, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6654,0x6653,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6655, 0,0x5978, 0, 0,0x6656,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6657, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5753,0x665D, 0,0x665E,0x3F57,0x5450, 0,0x5756,
-0x3466,0x4B6F,0x665A,0x5843,0x574E,0x5022, 0,0x434F,
- 0, 0,0x665F,0x3C3E,0x3942,0x665B,0x5127, 0,
- 0,0x3A22,0x424F, 0,0x582B, 0, 0, 0,
-0x4A6B,0x656E, 0,0x665C, 0,0x3775, 0, 0,
- 0, 0,0x4866, 0, 0,0x4475, 0, 0,
-0x6532,0x447E, 0,0x4B7C,0x6533,0x552C, 0,0x536E,
-0x4A58,0x3032, 0,0x4B4E,0x4D6A, 0, 0,0x3A6A,
- 0, 0, 0,0x6535, 0,0x6534, 0,0x575A,
-0x3959,0x5666,0x3628,0x4D70,0x524B,0x3126,0x4A35, 0,
-0x3368,0x4973,0x3F4D,0x507B,0x4A52,0x6536,0x3B42, 0,
- 0, 0,0x4F5C,0x392C, 0, 0, 0, 0,
-0x5457, 0, 0,0x3A26,0x5167,0x4F7C,0x3C52, 0,
-0x6537,0x485D, 0, 0, 0,0x3F6D,0x3176,0x4B5E,
- 0, 0,0x3C45, 0,0x3C44,0x527A,0x435C,0x3F5C,
- 0, 0, 0, 0,0x383B, 0, 0, 0,
-0x4342, 0,0x3A2E,0x5422, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x475E,0x442F,0x326C,
- 0,0x3951, 0, 0,0x653B,0x4148, 0, 0,
-0x552F, 0, 0, 0, 0, 0,0x653C, 0,
-0x653E, 0, 0, 0, 0, 0, 0, 0,
-0x3467,0x3654,0x4B42,0x5130,0x353C, 0, 0,0x4A59,
- 0,0x3762, 0, 0,0x4964, 0,0x3D2B, 0,
- 0,0x4E3E,0x5770, 0, 0, 0, 0,0x5021,
- 0,0x4959, 0, 0,0x367B,0x6658,0x3C62, 0,
-0x333E, 0,0x4950, 0,0x6659,0x3322, 0, 0,
- 0, 0,0x5E4C, 0,0x5348,0x5E4D, 0,0x5222,
- 0, 0, 0, 0,0x5E4E, 0, 0, 0,
- 0,0x3E4D, 0, 0,0x5E4F, 0, 0, 0,
-0x4A2C,0x527C,0x335F,0x656A,0x4461,0x3E21,0x4E32,0x4472,
-0x3E56,0x4628,0x3263, 0, 0,0x3E53, 0, 0,
-0x477C,0x4C6B,0x3D6C,0x4E5D, 0, 0,0x4A3A,0x4641,
-0x656C,0x503C, 0, 0, 0,0x5539, 0, 0,
- 0,0x656D, 0, 0, 0, 0,0x4A74, 0,
-0x4D40,0x4245, 0,0x656F, 0,0x4244,0x6570, 0,
- 0, 0, 0, 0, 0, 0,0x6578,0x4D4D,
- 0,0x493D, 0, 0, 0, 0, 0, 0,
- 0,0x5259,0x6128, 0, 0, 0, 0,0x536C,
- 0,0x4B6A,0x4671, 0, 0, 0, 0, 0,
-0x612C, 0, 0, 0,0x6127,0x6129, 0, 0,
-0x612A,0x612F, 0, 0,0x326D, 0,0x612B,0x385A,
-0x612D,0x612E,0x6130,0x353A,0x6131, 0, 0, 0,
- 0, 0,0x6133,0x6138, 0, 0, 0, 0,
- 0,0x5152, 0,0x6136,0x6135,0x416B, 0, 0,
- 0,0x6137, 0,0x5440, 0,0x6132, 0,0x613A,
-0x3036, 0, 0, 0, 0,0x6134, 0,0x3F79,
- 0,0x6139, 0, 0,0x613B, 0, 0, 0,
- 0, 0, 0,0x613E, 0, 0, 0, 0,
- 0, 0,0x613C, 0, 0, 0, 0, 0,
- 0,0x5645, 0, 0, 0, 0, 0, 0,
- 0,0x4F3F, 0, 0,0x613D,0x613F,0x424D, 0,
-0x366B, 0,0x5378, 0, 0,0x474D, 0, 0,
-0x3765, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3E7E, 0, 0, 0, 0,
- 0, 0,0x6140,0x6141, 0, 0,0x6147,0x3367,
- 0, 0, 0, 0, 0, 0,0x4669, 0,
- 0, 0, 0, 0,0x345E, 0,0x5142, 0,
- 0, 0, 0,0x6148, 0, 0,0x6146, 0,
- 0, 0, 0, 0,0x6145, 0,0x6143,0x6142,
- 0,0x3140, 0, 0, 0,0x5538,0x6144, 0,
- 0, 0, 0, 0,0x614B, 0, 0, 0,
- 0, 0, 0, 0, 0,0x614C,0x614A, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6F7A,
- 0, 0,0x6153,0x6152,0x4736, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6149, 0, 0,0x614E, 0,0x6150, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6154, 0,0x6151,0x614D, 0, 0,0x614F,
- 0, 0, 0, 0,0x6155, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6156, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6157, 0, 0, 0,0x6158, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x615A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x615B, 0, 0,
- 0, 0, 0, 0, 0,0x4E21, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x675D, 0,0x3428,0x565D, 0,
- 0,0x5132,0x3332, 0, 0,0x3924,0x5773,0x4749,
-0x3E5E,0x392E, 0,0x4E57, 0, 0,0x326E,0x5B4F,
- 0,0x3C3A,0x5251,0x4B48,0x304D, 0, 0,0x4F6F,
- 0, 0, 0, 0, 0,0x5963,0x3D6D, 0,
- 0,0x3152,0x4A50,0x323C, 0,0x4B27,0x372B, 0,
-0x4A26, 0, 0, 0,0x4F23, 0, 0,0x6078,
-0x554A,0x607B, 0, 0,0x607A,0x4541,0x4C7B, 0,
-0x4131,0x6079,0x5663,0x322F,0x5644,0x355B, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3478,0x5621,
- 0, 0, 0, 0, 0,0x4F2F,0x306F, 0,
- 0,0x607C, 0, 0, 0, 0, 0,0x6121,
-0x3323, 0, 0,0x607D,0x607E,0x4331, 0, 0,
- 0, 0,0x435D, 0,0x6122,0x3779, 0, 0,
- 0, 0, 0, 0,0x3B4F, 0, 0, 0,
- 0, 0, 0, 0,0x6123,0x443B, 0, 0,
- 0, 0, 0,0x6124, 0, 0,0x6125, 0,
- 0,0x6126,0x3431, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x3849,0x463D,0x446A, 0,0x3222, 0,
-0x5052, 0,0x675B,0x3B43,0x5357,0x5344, 0,0x3963,
-0x624F, 0, 0, 0,0x572F, 0,0x476C,0x3153,
- 0, 0,0x3432,0x6251, 0, 0, 0,0x5072,
-0x422E,0x6250, 0,0x3F62,0x5326,0x3557,0x6252,0x356A,
- 0,0x436D,0x387D, 0,0x382E, 0,0x4553,0x374F,
-0x6254, 0, 0, 0, 0,0x6253,0x3648,0x5779,
- 0, 0, 0, 0, 0,0x4D25, 0, 0,
- 0, 0, 0,0x6258, 0,0x6256,0x4A7C,0x3F35,
-0x5339,0x6255, 0, 0, 0, 0,0x6257, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x412E,0x4048, 0, 0, 0, 0, 0,
- 0,0x625B,0x625A,0x402A, 0, 0,0x414E, 0,
- 0, 0, 0,0x625C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x625D, 0,0x625E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5B48, 0,0x5153,0x4D22,
- 0, 0,0x3D28, 0, 0, 0,0x5E43,0x5825,
-0x3F2A,0x5B4D,0x526C,0x467A,0x452A, 0, 0, 0,
-0x5E44, 0,0x3157,0x5F2E, 0, 0, 0,0x4A3D,
- 0,0x5F31, 0,0x392D, 0,0x527D, 0,0x3825,
-0x3A6B, 0, 0,0x335A, 0, 0, 0,0x355C,
-0x5545, 0, 0, 0, 0,0x4356,0x4F52,0x3B21,
- 0,0x6573,0x6572, 0, 0,0x6574, 0,0x4D64,
- 0,0x4875, 0, 0, 0, 0, 0, 0,
- 0,0x352F,0x473F, 0,0x6576, 0, 0, 0,
-0x6C30, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6566, 0,0x3969,0x3531, 0,0x423C,0x6568,0x6567,
-0x6569, 0, 0, 0, 0,0x524D, 0, 0,
- 0,0x616A,0x504E, 0,0x4D2E, 0,0x5165, 0,
- 0,0x324A,0x316B, 0,0x3172,0x456D, 0, 0,
-0x5543,0x5330, 0,0x615C, 0, 0, 0,0x615D,
- 0,0x525B, 0,0x3339,0x314B, 0, 0, 0,
-0x4D79,0x5577,0x615E, 0,0x3E36,0x347D, 0,0x615F,
-0x3A5C,0x6160,0x3B32,0x4249,0x6161, 0, 0, 0,
-0x506C, 0,0x4D3D, 0, 0,0x6162, 0,0x3543,
-0x4547,0x6163, 0, 0,0x6164, 0, 0, 0,
- 0,0x5379, 0, 0, 0, 0, 0, 0,
-0x6165, 0,0x512D, 0, 0,0x6166,0x4E22, 0,
- 0, 0, 0, 0, 0,0x6167, 0,0x3542,
- 0, 0, 0, 0,0x6168,0x3B55, 0, 0,
- 0, 0, 0,0x5044,0x6260,0x3158,0x5264, 0,
- 0,0x6261, 0, 0,0x3C49,0x484C, 0,0x6263,
-0x6C7E,0x6C7D,0x5F2F, 0, 0, 0,0x6262,0x563E,
-0x4D7C,0x4326, 0, 0, 0,0x6343, 0, 0,
-0x5652,0x6267, 0, 0,0x6268, 0, 0,0x5347,
- 0, 0,0x626C,0x3F6C, 0,0x626D,0x6265, 0,
- 0,0x3340, 0, 0, 0,0x446E, 0, 0,
-0x626E, 0, 0,0x5043, 0,0x3A76,0x6269,0x375E,
-0x3B33,0x4C2C,0x4B4B,0x6264,0x6266,0x626A,0x626B, 0,
- 0, 0,0x6277, 0, 0,0x6274,0x5475,0x6273,
- 0, 0,0x452D, 0,0x557A,0x4542,0x3240, 0,
- 0,0x626F, 0,0x6272,0x412F,0x4B3C, 0, 0,
-0x3521,0x6279, 0, 0, 0,0x3C31,0x6271,0x5054,
-0x5439,0x6275,0x3956,0x6276, 0, 0, 0,0x4753,
- 0, 0, 0, 0, 0,0x6270, 0, 0,
- 0, 0, 0,0x575C,0x6D21, 0, 0,0x6278,
- 0,0x6D25,0x627E,0x4A51, 0, 0, 0, 0,
- 0, 0, 0,0x4135, 0,0x3B50, 0, 0,
-0x3F56, 0,0x3A63, 0, 0,0x4B21, 0, 0,
- 0,0x6D26,0x6D23, 0, 0,0x6D22, 0, 0,
- 0, 0,0x3B56,0x6D27,0x5074, 0, 0,0x6D24,
-0x3A5E,0x3677,0x6321,0x3632,0x4C71,0x3927, 0,0x4F22,
-0x4721, 0, 0,0x3F52, 0, 0,0x3671, 0,
-0x627A,0x627B,0x627D,0x627C,0x4455,0x6322, 0,0x5341,
- 0, 0, 0,0x6327,0x4744, 0, 0, 0,
- 0,0x4F24, 0, 0,0x6329,0x3A37, 0, 0,
- 0, 0,0x6328, 0,0x3B5A, 0,0x6323, 0,
- 0, 0,0x6324,0x632A, 0,0x6326, 0,0x4E72,
-0x5346, 0, 0,0x3B3C, 0, 0,0x5443, 0,
-0x447A, 0, 0,0x6D28,0x507C,0x6325, 0,0x4375,
- 0,0x632D,0x312F, 0,0x6332, 0, 0, 0,
-0x3C42, 0, 0,0x632C,0x353F, 0, 0, 0,
- 0, 0, 0, 0, 0,0x4769,0x6330, 0,
- 0, 0,0x3E2A,0x4D6F, 0, 0, 0, 0,
- 0,0x3B73, 0, 0, 0,0x4C68, 0, 0,
-0x632F, 0,0x6331, 0,0x4F27,0x632E, 0,0x4E29,
-0x3B5D, 0, 0, 0, 0, 0,0x356B,0x3E65,
-0x3252,0x334D, 0,0x3139,0x632B,0x3251,0x352C,0x395F,
-0x3668, 0, 0,0x4F6B,0x6337, 0,0x3B4C, 0,
- 0,0x4847,0x504A, 0, 0, 0, 0, 0,
-0x6338,0x336E, 0, 0, 0, 0,0x6D29, 0,
-0x537A,0x5364, 0, 0, 0,0x6D2A,0x6339,0x5262,
- 0, 0, 0, 0, 0,0x6335, 0, 0,
- 0, 0,0x535E, 0, 0, 0, 0,0x3850,
-0x6333, 0, 0,0x6336,0x375F, 0,0x6334,0x4022,
- 0, 0, 0,0x633A, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5438,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x3448, 0,0x633B, 0,0x3B45, 0,0x4977, 0,
- 0,0x4965, 0, 0, 0,0x443D, 0, 0,
- 0, 0, 0, 0, 0,0x6D2B, 0, 0,
- 0, 0,0x427D, 0, 0, 0, 0,0x3B5B,
-0x3F2E, 0, 0, 0, 0, 0, 0, 0,
-0x4E3F, 0, 0, 0, 0,0x633C, 0,0x3F36,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x316F, 0, 0,0x5477, 0,
- 0, 0, 0, 0,0x633E, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6D2D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x633F,
-0x3A29,0x6D2C, 0, 0,0x633D, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6340,
- 0, 0, 0, 0, 0, 0,0x3A36, 0,
- 0, 0,0x362E, 0, 0, 0, 0, 0,
-0x5038, 0,0x3043,0x6D2E, 0, 0, 0, 0,
- 0,0x6D2F,0x4041, 0,0x6341, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4533, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6342, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5C32,
- 0, 0, 0, 0, 0, 0,0x6D30, 0,
-0x386A, 0,0x4E6C,0x6A27,0x5067,0x4A79,0x4856,0x4F37,
-0x3349,0x4E52,0x3D64, 0, 0,0x635E,0x3B72,0x6A28,
-0x553D, 0,0x465D,0x6A29, 0, 0, 0,0x6A2A,
- 0,0x6A2C,0x6A2B, 0,0x6A2E,0x6A2D, 0, 0,
- 0, 0,0x3D58, 0,0x6A2F, 0,0x423E, 0,
- 0, 0, 0,0x3441,0x3477, 0, 0,0x3B27,
- 0, 0, 0, 0, 0,0x6C66,0x6C65,0x373F,
-0x4B79,0x3162, 0,0x6C67, 0, 0, 0,0x4948,
-0x6C68,0x6C69, 0,0x4A56,0x5E50,0x3245,0x547A, 0,
- 0,0x464B,0x3047,0x3472,0x4853, 0, 0, 0,
-0x4D50, 0, 0,0x3F38, 0, 0, 0, 0,
- 0, 0, 0,0x3F5B, 0, 0,0x4724,0x5634,
- 0,0x4029,0x5E51,0x4928,0x516F,0x4524,0x3067,0x3336,
-0x4845, 0, 0,0x3062, 0, 0,0x3776, 0,
- 0,0x457A, 0, 0,0x3673, 0,0x5552,0x3350,
-0x3C3C, 0, 0, 0,0x332D, 0, 0, 0,
- 0,0x3E71,0x3051, 0, 0, 0, 0, 0,
- 0,0x5256,0x4A63,0x5725, 0,0x4D36,0x3636,0x3F39,
-0x555B, 0,0x3827,0x4557, 0, 0, 0,0x5E52,
-0x3F59,0x4255,0x4740, 0,0x3B24,0x3128, 0, 0,
-0x456A, 0, 0,0x457B,0x4C27, 0, 0, 0,
- 0,0x3127, 0, 0, 0,0x3556, 0, 0,
- 0,0x4428, 0,0x5E53,0x513A,0x3369, 0,0x4372,
- 0, 0,0x3777, 0,0x5674,0x3523,0x3270,0x4434,
-0x4469,0x402D,0x5E54, 0,0x3068,0x4544,0x4160, 0,
-0x3955, 0,0x3E5C,0x4D58,0x304E, 0,0x4D4F,0x5E56,
-0x3E50,0x573E,0x5E55,0x5550,0x305D, 0, 0,0x4462,
- 0, 0,0x4223,0x3C70, 0,0x5335,0x4039,0x4521,
-0x3226,0x5471, 0, 0,0x4028,0x4A43,0x5E57,0x557C,
- 0,0x3930, 0,0x482D,0x4B29, 0,0x5E59,0x3F3D,
- 0, 0, 0, 0,0x4634,0x5727,0x4A30,0x4443,
- 0,0x3356,0x3952, 0, 0, 0, 0,0x5638,
-0x6A7C,0x3034, 0, 0, 0, 0,0x3F66, 0,
- 0,0x4C74, 0, 0, 0, 0,0x4D5A, 0,
- 0, 0,0x563F,0x424E, 0,0x4E4E,0x4C22,0x502E,
-0x4453,0x3532,0x5E58,0x5575,0x3C37,0x3B53, 0, 0,
-0x3024, 0,0x4532,0x346C, 0, 0, 0,0x5571,
- 0, 0,0x6A7D, 0, 0, 0, 0, 0,
- 0,0x5E5A,0x4D26, 0, 0,0x4D6C, 0, 0,
- 0, 0,0x4E66,0x5E5C, 0,0x4D31,0x4026, 0,
- 0,0x573D, 0,0x5E5B,0x3046,0x3A34,0x4953,0x4473,
-0x3E68, 0, 0, 0, 0,0x3236, 0, 0,
- 0, 0, 0, 0, 0, 0,0x404C,0x4B70,
- 0,0x3C71,0x3B3B,0x3537, 0, 0, 0,0x4575,
- 0,0x5E66, 0, 0, 0,0x5E63,0x3E5D, 0,
- 0,0x5E5F, 0, 0, 0, 0,0x3437,0x3D5D,
- 0, 0,0x5E60,0x446D, 0, 0, 0, 0,
-0x4F46, 0,0x3560, 0, 0, 0, 0,0x365E,
-0x4A5A,0x3574,0x5E65, 0,0x5546, 0,0x5E61,0x4C4D,
-0x467E, 0,0x4545, 0, 0, 0,0x5234, 0,
-0x3E72, 0, 0, 0, 0, 0, 0, 0,
-0x4253, 0,0x4C3D,0x3338, 0,0x3D53, 0,0x3F58,
-0x4D46,0x515A,0x346B, 0,0x5E64,0x5E5D,0x5E67, 0,
-0x6A7E, 0, 0,0x4230,0x5E62, 0, 0,0x5640,
-0x3527, 0,0x3274, 0,0x5E68, 0,0x5E72, 0,
- 0, 0, 0, 0,0x5E6D, 0,0x5E71, 0,
- 0,0x4860, 0, 0, 0,0x5761,0x5E6F,0x4368,
-0x4C61, 0,0x3265, 0, 0, 0,0x523E, 0,
- 0, 0, 0, 0, 0, 0,0x5E6E, 0,
-0x5E6B,0x4E55, 0,0x3427, 0, 0, 0, 0,
- 0,0x3F2B,0x3E3E, 0, 0,0x3D52, 0, 0,
- 0, 0,0x5E69, 0,0x542E, 0,0x5E5E, 0,
-0x5E6A, 0, 0, 0, 0,0x403F, 0,0x5E6C,
-0x3273,0x3869,0x4227, 0, 0,0x3D41, 0, 0,
- 0, 0, 0,0x5E75,0x5E78, 0, 0,0x322B,
-0x3424, 0, 0,0x346A,0x4926, 0, 0, 0,
- 0, 0, 0,0x5E76,0x4B51, 0,0x3863, 0,
-0x5E77,0x5E7A, 0, 0, 0, 0,0x5E79, 0,
- 0, 0,0x4C42, 0,0x3061,0x346E, 0, 0,
- 0, 0, 0, 0,0x653A, 0, 0, 0,
- 0, 0,0x502F, 0, 0,0x326B, 0,0x6B21,
- 0,0x5E74, 0, 0,0x4963,0x5E73,0x305A,0x5221,
-0x3177, 0,0x4C2F, 0, 0, 0, 0, 0,
- 0, 0,0x5E70, 0,0x4B24, 0, 0, 0,
-0x552A, 0, 0, 0, 0, 0,0x5E7B, 0,
- 0, 0, 0, 0, 0, 0, 0,0x345D,
- 0,0x4426, 0, 0, 0,0x5E7D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x437E,0x4421,0x5F21, 0, 0, 0, 0, 0,
- 0, 0,0x414C, 0,0x5E7C,0x3E6F, 0,0x4632,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3345,0x4876, 0, 0,0x4B3A,0x5E7E, 0,
- 0,0x5F24, 0, 0, 0, 0,0x5732, 0,
- 0, 0, 0, 0,0x3337, 0, 0, 0,
- 0,0x4143, 0, 0,0x474B,0x3225,0x3469, 0,
-0x572B, 0, 0, 0, 0,0x446C, 0,0x5F22,
-0x5F23, 0,0x5F25, 0,0x3A33, 0, 0, 0,
-0x5F26, 0,0x405E, 0, 0,0x4943, 0, 0,
- 0, 0, 0, 0, 0,0x3259,0x4766, 0,
-0x5F27, 0,0x475C, 0, 0, 0, 0,0x5F28,
-0x6B22, 0, 0, 0, 0, 0,0x4B53, 0,
- 0, 0,0x5F2A, 0,0x5F29, 0,0x3241, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x454A, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5F2B, 0, 0, 0, 0, 0, 0,
- 0, 0,0x545C, 0, 0, 0, 0, 0,
-0x4841, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5F2C, 0, 0,
- 0, 0, 0,0x3E70, 0, 0,0x5F2D,0x5627,
- 0, 0, 0, 0,0x6A37,0x6B36,0x4A55, 0,
-0x587C,0x3844, 0,0x3925, 0, 0,0x3745,0x557E,
- 0, 0, 0, 0, 0,0x394A, 0, 0,
-0x5027,0x744D, 0, 0,0x3550, 0, 0,0x4374,
- 0,0x3E48, 0, 0, 0,0x6B37,0x303D, 0,
- 0,0x3D4C, 0,0x4132, 0,0x3156,0x3328, 0,
- 0, 0,0x3852,0x4922, 0, 0,0x3658, 0,
- 0, 0, 0,0x6B38,0x3E34, 0, 0, 0,
-0x4A7D, 0,0x4743, 0,0x557B, 0, 0,0x3773,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x4E44,
- 0, 0, 0,0x552B,0x3173, 0, 0, 0,
-0x6C33,0x305F, 0,0x6C35, 0, 0, 0,0x3637,
- 0,0x414F, 0,0x757A,0x5031, 0, 0,0x5565,
- 0,0x4E53, 0, 0,0x3D6F,0x3362, 0,0x382B,
- 0,0x5536, 0,0x6D3D, 0,0x364F, 0,0x4B39,
-0x5042, 0, 0, 0, 0, 0, 0, 0,
- 0,0x373D, 0, 0,0x6C36,0x4A29, 0, 0,
- 0,0x4554, 0,0x6C39,0x6C38,0x4243,0x6C37, 0,
- 0, 0, 0,0x507D,0x6C3A, 0,0x6C3B,0x5765,
- 0, 0,0x6C3C, 0, 0, 0,0x6C3D,0x466C,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4E5E, 0,0x3C48, 0, 0,0x4855,0x3529,0x3E49,
-0x563C,0x5467, 0, 0,0x512E,0x5071,0x6A38,0x6A39,
-0x6A3A,0x3A35, 0, 0, 0, 0,0x4A31,0x3F75,
- 0, 0,0x4D7A, 0, 0, 0, 0, 0,
-0x6A40, 0,0x303A,0x6A3E, 0, 0,0x4025, 0,
- 0, 0,0x6A3B, 0,0x327D, 0,0x4377,0x3B68,
- 0, 0, 0,0x5257,0x4E74,0x6A3F, 0, 0,
- 0,0x6A3C, 0, 0, 0,0x6A43, 0,0x5047,
-0x5333, 0, 0, 0, 0,0x343A, 0,0x4341,
-0x5772, 0, 0, 0, 0,0x5551, 0,0x4A47,
- 0,0x6A45, 0, 0,0x6A44,0x6A47,0x6A46, 0,
- 0, 0, 0, 0,0x5667, 0,0x4F54, 0,
- 0,0x6A4B, 0,0x3B4E, 0, 0, 0, 0,
- 0, 0, 0,0x3D7A,0x494E, 0, 0,0x6A4C,
- 0, 0,0x4939,0x4F7E,0x6A4A,0x544E,0x6A4D,0x6A4F,
- 0, 0,0x4D6D, 0, 0, 0, 0,0x6A49,
- 0,0x6A4E, 0, 0,0x4E6E, 0,0x3B5E, 0,
-0x333F, 0, 0, 0, 0, 0,0x4655,0x3E30,
-0x4E7A, 0, 0, 0,0x4767, 0,0x3E27,0x6A50,
- 0, 0,0x5647, 0, 0, 0,0x4140, 0,
- 0, 0,0x545D, 0,0x6A51, 0, 0,0x4F3E,
- 0, 0, 0, 0,0x6A52, 0, 0, 0,
- 0,0x4A6E, 0, 0, 0, 0,0x452F,0x3035,
- 0, 0, 0, 0, 0,0x6A54, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6A53,
-0x745F, 0, 0, 0, 0, 0,0x443A, 0,
- 0, 0, 0, 0,0x3129, 0, 0, 0,
- 0,0x655F, 0, 0, 0, 0,0x6A55, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x4A6F, 0,0x6A56,0x6A57,0x4658, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6A58, 0,
- 0,0x6A59, 0, 0, 0, 0, 0, 0,
-0x543B, 0,0x477A,0x5237,0x387C, 0, 0,0x6A42,
- 0,0x325C, 0, 0,0x427C, 0,0x5478,0x4C66,
-0x576E, 0, 0, 0, 0, 0, 0, 0,
-0x5442,0x5350,0x6B43,0x4573, 0,0x377E, 0, 0,
-0x6B54, 0, 0, 0,0x4B37,0x6B5E, 0,0x404A,
- 0, 0, 0,0x4D7B, 0,0x332F, 0,0x465A,
- 0, 0, 0, 0, 0, 0,0x6B7C, 0,
-0x443E, 0,0x4E34,0x4429,0x313E,0x547D, 0,0x4A75,
- 0,0x566C, 0, 0,0x4653,0x3664, 0, 0,
- 0, 0,0x3B7A, 0, 0,0x5060, 0, 0,
-0x4931, 0,0x5453,0x4828, 0, 0,0x384B, 0,
-0x683E,0x493C, 0, 0,0x683B, 0,0x406E,0x5053,
-0x3244,0x3465, 0,0x683C, 0, 0,0x5548, 0,
- 0, 0, 0, 0,0x3645, 0,0x683D,0x4A78,
-0x385C,0x4C75, 0, 0, 0,0x4034, 0, 0,
-0x516E,0x683F,0x6842, 0, 0,0x3A3C, 0,0x312D,
-0x3D5C, 0,0x6A3D,0x6843, 0,0x6846, 0,0x684B,
- 0, 0, 0, 0,0x684C, 0,0x4B49,0x3065,
- 0,0x3C2B, 0, 0,0x3939, 0, 0,0x6841,
- 0,0x4D77, 0,0x684A, 0, 0, 0, 0,
-0x4E76, 0, 0, 0, 0,0x556D, 0,0x4156,
-0x6844, 0,0x4336, 0,0x397B,0x5626,0x6848, 0,
- 0, 0,0x4A60,0x5466, 0,0x6840, 0,0x6845,
-0x6847, 0,0x4739,0x3763, 0,0x6849, 0,0x3F5D,
-0x6852, 0, 0,0x6857, 0,0x6855,0x3C5C,0x3C4F,
-0x685B, 0, 0, 0, 0, 0, 0, 0,
- 0,0x685E, 0,0x685A,0x317A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3058,
-0x4433,0x384C,0x4662,0x483E,0x4861, 0, 0, 0,
-0x684F,0x6854,0x6856, 0,0x3971,0x6858,0x5775, 0,
-0x447B, 0,0x685C, 0, 0,0x3269, 0, 0,
- 0,0x6851, 0, 0,0x3C6D, 0, 0,0x3F42,
-0x684D,0x5679, 0,0x4178,0x3271, 0, 0, 0,
- 0, 0, 0, 0, 0,0x685F, 0,0x4A41,
-0x6859, 0, 0, 0, 0,0x5524, 0,0x316A,
-0x553B,0x684E,0x6850,0x3630,0x6853, 0,0x685D,0x4038,
- 0,0x4A77, 0,0x4B28, 0, 0,0x465C,0x4075,
- 0, 0, 0, 0, 0,0x6869, 0, 0,
- 0,0x5023, 0, 0, 0, 0, 0, 0,
- 0,0x6872,0x566A, 0, 0, 0, 0, 0,
- 0, 0,0x6860,0x6861, 0, 0, 0,0x5179,
-0x3A4B,0x3879, 0, 0,0x3871,0x5454,0x686F, 0,
-0x686E,0x686C,0x3970,0x4C52,0x6866,0x4E26,0x3F72, 0,
-0x3038,0x6871,0x6870, 0,0x5740, 0,0x6864, 0,
-0x4D29,0x4923, 0,0x3B38,0x3D5B,0x686A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6862,0x6863,0x6865,0x3535,0x6867,0x4745,0x686B,0x686D,
-0x3D30,0x572E, 0,0x6878, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6875, 0,0x4D30,0x6876,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x413A, 0,0x6868, 0,0x4337,0x3070, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6874,
- 0, 0, 0,0x6877, 0, 0, 0,0x3923,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x4952, 0, 0, 0,0x434E,0x4E60,
-0x4066, 0, 0, 0, 0,0x4B73, 0,0x4C5D,
-0x5035, 0, 0,0x4A61, 0,0x6873, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x3C6C, 0,0x6879, 0, 0, 0, 0, 0,
- 0,0x435E, 0,0x4665, 0,0x3977, 0, 0,
- 0, 0,0x3074, 0, 0,0x5758, 0, 0,
-0x3C2C, 0,0x456F, 0, 0, 0, 0, 0,
-0x4C44, 0, 0,0x6926, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x492D, 0,
-0x6922,0x4062, 0, 0, 0,0x3F43, 0, 0,
- 0,0x687E,0x3957, 0,0x687B, 0, 0, 0,
- 0,0x6924, 0, 0, 0,0x524E, 0, 0,
- 0, 0, 0,0x6923, 0,0x5632,0x5735, 0,
-0x6927, 0,0x3D37, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x687C,
-0x687D, 0, 0, 0,0x6921, 0, 0, 0,
- 0, 0, 0, 0, 0,0x4D56, 0, 0,
-0x522C, 0, 0, 0,0x6932, 0, 0, 0,
- 0,0x6929, 0, 0, 0,0x342A, 0,0x343B,
- 0, 0,0x692B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5028, 0, 0,0x6925,
- 0, 0,0x337E, 0, 0,0x692C,0x4063, 0,
-0x692A, 0, 0,0x6939, 0, 0,0x6938, 0,
- 0, 0, 0,0x692E, 0, 0,0x687A, 0,
- 0,0x6928, 0, 0, 0, 0, 0,0x3F2C,
-0x6931,0x693A, 0, 0,0x4225, 0, 0, 0,
-0x692F, 0,0x3845, 0,0x692D, 0,0x535C,0x6934,
-0x6935,0x6937, 0, 0, 0,0x6947, 0, 0,
- 0, 0, 0, 0,0x4046,0x6945, 0, 0,
-0x6930, 0, 0,0x693B,0x3071, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x693C,
-0x5525, 0, 0,0x693E, 0,0x693F, 0, 0,
- 0,0x6941, 0, 0,0x4171, 0, 0,0x4836,
- 0, 0, 0,0x693D, 0, 0, 0, 0,
- 0,0x6942, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6943, 0,0x6933, 0,0x6936, 0,
-0x3B31, 0, 0, 0,0x6940, 0, 0, 0,
- 0, 0, 0,0x3C77, 0, 0, 0,0x6944,
-0x6946, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x694A, 0, 0,
- 0, 0,0x694E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x325B, 0,0x6948,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x372E, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x694B,
-0x694C, 0, 0, 0, 0, 0, 0,0x5541,
- 0,0x4423, 0, 0, 0, 0, 0, 0,
-0x6958, 0,0x3A61, 0, 0, 0, 0,0x6949,
- 0,0x5323, 0, 0, 0,0x6954, 0, 0,
- 0, 0, 0, 0, 0,0x6957,0x6950, 0,
- 0, 0, 0, 0,0x694F, 0, 0,0x4741,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6952, 0, 0, 0, 0, 0, 0, 0,
-0x6959,0x3348, 0,0x6953, 0, 0, 0, 0,
- 0,0x4F70, 0, 0, 0,0x694D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3377, 0, 0, 0, 0, 0, 0,
- 0,0x6956, 0, 0,0x695A, 0, 0, 0,
-0x4C34, 0, 0, 0,0x4F2D, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6955, 0,
-0x695C,0x695B, 0, 0, 0, 0, 0,0x695E,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6951, 0, 0, 0, 0, 0, 0, 0,
- 0,0x695D, 0,0x695F,0x434A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4737,0x344E,0x3B36,0x5040,0x6C23, 0, 0,0x4537,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x537B, 0, 0, 0, 0,0x6C24,
- 0,0x6C25,0x465B, 0, 0, 0,0x3F6E, 0,
- 0, 0, 0,0x6C26, 0, 0,0x6C27,0x502A,
- 0,0x4738, 0, 0,0x3868, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6C28, 0, 0, 0, 0, 0, 0,
- 0, 0,0x5639,0x557D,0x344B,0x323D,0x4E64,0x4667,
- 0, 0,0x4D61, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3475, 0,0x4B40,0x3C5F, 0, 0, 0,
- 0,0x6962,0x6963,0x516A,0x6965, 0,0x3479,0x6964,
- 0,0x5133,0x4A62,0x3250, 0,0x6968, 0, 0,
- 0, 0,0x6966,0x6967, 0, 0,0x5633, 0,
- 0, 0,0x6969,0x696A, 0, 0, 0, 0,
- 0,0x696B, 0, 0, 0, 0, 0, 0,
- 0, 0,0x696C, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6C2F,0x4539,0x364E, 0,0x5273,
- 0, 0, 0, 0, 0, 0, 0,0x356E,
- 0,0x3B59,0x6C31, 0, 0,0x5263, 0, 0,
- 0, 0, 0,0x4E63, 0,0x4438, 0,0x433F,
- 0, 0,0x363E,0x5839,0x3148,0x314F,0x3151,0x457E,
- 0,0x3150, 0,0x432B, 0, 0, 0, 0,
- 0,0x5531, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6B24,0x3A41, 0, 0, 0,0x4C3A,
- 0, 0, 0,0x6B25, 0,0x6B27, 0, 0,
- 0,0x6B28, 0, 0, 0,0x6B26, 0, 0,
- 0, 0, 0, 0, 0,0x6B29,0x6B2B,0x6B2A,
- 0, 0, 0, 0, 0,0x6B2C, 0,0x4A4F,
-0x5835,0x4371, 0,0x4325,0x4678,0x6B2D,0x444A, 0,
-0x6B2E,0x6B2F,0x6B30,0x3755, 0, 0, 0,0x377A,
- 0,0x6B31,0x4762, 0,0x6B33, 0,0x3A24,0x5175,
-0x3031,0x6B32,0x6B34, 0, 0, 0,0x352A,0x4248,
-0x4768, 0,0x6B35, 0,0x4B2E,0x635F, 0, 0,
-0x5340, 0, 0, 0, 0,0x595B, 0, 0,
-0x4D21,0x562D,0x4773, 0, 0, 0,0x5960,0x3B63,
- 0,0x3A3A,0x6362, 0, 0, 0, 0, 0,
-0x4F2B, 0, 0, 0,0x6360,0x4947, 0,0x3A39,
- 0, 0, 0,0x5134,0x6361,0x486A,0x392F,0x3D2D,
-0x3358,0x4E5B, 0, 0,0x4C40, 0, 0, 0,
-0x6368,0x6369,0x4D74, 0, 0, 0, 0, 0,
-0x4C2D, 0,0x3C33, 0,0x636A, 0,0x636B, 0,
- 0,0x505A, 0, 0, 0,0x467B,0x375A, 0,
- 0,0x475F,0x524A,0x4E56, 0,0x6364,0x636C, 0,
-0x4972,0x3341, 0, 0,0x6367, 0, 0,0x4663,
-0x6365, 0, 0,0x6D33,0x6366, 0, 0, 0,
- 0,0x4933, 0,0x4566, 0, 0, 0,0x3935,
- 0,0x433B, 0,0x6363,0x453D,0x4124,0x4259,0x3257,
- 0,0x636D,0x3B26,0x442D, 0,0x6370,0x3E5A, 0,
- 0,0x637B,0x6375,0x3A53, 0, 0, 0, 0,
-0x3750,0x534D, 0,0x564E,0x5553,0x3941,0x5534,0x5158,
- 0, 0, 0, 0,0x5039,0x4776, 0, 0,
- 0,0x482A,0x3234, 0,0x435A, 0, 0, 0,
-0x636E, 0, 0,0x637C,0x636F,0x3728,0x6377,0x6374,
- 0, 0, 0,0x373A, 0, 0,0x4522, 0,
-0x6376,0x455D,0x3228,0x467C, 0,0x4460, 0, 0,
-0x5722, 0,0x4061,0x6379, 0, 0,0x637A,0x637D,
-0x4C29,0x6373, 0,0x533E, 0,0x3143,0x6D34,0x6371,
-0x6372, 0,0x6378,0x503A,0x4643,0x5473,0x637E, 0,
- 0,0x3D60, 0, 0,0x6427, 0, 0,0x6426,
- 0, 0, 0,0x5173,0x6423, 0,0x6429, 0,
- 0, 0,0x4877, 0, 0, 0, 0,0x4F34,
- 0,0x6428,0x642E,0x4265, 0, 0,0x3634, 0,
- 0, 0, 0, 0, 0,0x3D72, 0,0x6422,
- 0, 0,0x3A69,0x642A, 0, 0,0x642C, 0,
- 0,0x367D,0x565E,0x6432, 0,0x642D, 0, 0,
- 0,0x6421, 0,0x3B6E,0x4D5D,0x4722,0x4549, 0,
- 0,0x4177, 0,0x6424, 0,0x4733,0x3D2C,0x3D3D,
-0x6425, 0,0x5747,0x3262, 0,0x642B,0x3C43,0x642F,
- 0,0x3B6B,0x6430,0x4528,0x6431, 0, 0, 0,
- 0,0x5563,0x3F23, 0,0x643A, 0,0x6437, 0,
-0x643B, 0, 0,0x643D, 0, 0,0x4656, 0,
- 0,0x3A46,0x404B, 0, 0, 0,0x3821,0x6434,
- 0, 0, 0, 0,0x5421, 0, 0,0x3A23,
-0x3D7E, 0, 0, 0,0x643C, 0, 0, 0,
- 0, 0,0x4D3F, 0, 0,0x4479, 0, 0,
-0x4F7B,0x4966, 0, 0,0x533F, 0,0x4F51, 0,
- 0,0x6433, 0,0x6438,0x6439,0x4C69, 0, 0,
- 0, 0, 0,0x4C4E, 0,0x4054,0x6435,0x4130,
-0x6436,0x4E50, 0,0x3B41,0x3553, 0,0x4873,0x3D27,
-0x5547,0x492C,0x3822,0x644A, 0, 0,0x644C,0x5144,
- 0, 0,0x523A, 0, 0,0x3A2D, 0, 0,
-0x3A54, 0, 0, 0, 0, 0, 0,0x6443,
-0x356D, 0, 0, 0,0x574D,0x6440,0x4F7D,0x643F,
- 0, 0, 0,0x415C,0x4C4A, 0, 0, 0,
- 0,0x4A67, 0, 0, 0, 0,0x4457, 0,
-0x4C54,0x6448, 0, 0, 0,0x6447,0x6441, 0,
-0x6444,0x352D, 0, 0,0x5359, 0,0x6446, 0,
- 0, 0, 0,0x5279,0x3463, 0,0x3B34, 0,
- 0,0x496E, 0,0x343E, 0, 0, 0,0x3B6C,
- 0,0x514D, 0,0x4C6D,0x6D35, 0, 0, 0,
- 0, 0, 0, 0, 0,0x4765, 0, 0,
- 0, 0,0x5428, 0,0x644B,0x5755,0x6442, 0,
-0x3D25,0x6445, 0, 0,0x5366, 0,0x6449,0x4978,
- 0, 0,0x643E, 0, 0,0x5365, 0, 0,
-0x477E,0x3649, 0,0x547C,0x3233,0x6457, 0, 0,
- 0,0x4E42, 0,0x644D, 0,0x4E3C, 0,0x385B,
- 0, 0,0x6456, 0,0x3F4A, 0, 0, 0,
-0x534E, 0,0x436C, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4548,0x6458, 0, 0, 0,
- 0, 0, 0, 0, 0,0x4D44,0x644F, 0,
- 0, 0, 0,0x6454,0x6455, 0,0x3A7E, 0,
-0x4F66, 0, 0,0x553F, 0, 0, 0,0x6452,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6450, 0, 0,0x644E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4D65,0x4A2A,
- 0, 0, 0,0x4023, 0,0x3D26,0x6453, 0,
- 0,0x3848, 0, 0, 0, 0, 0,0x6467,
-0x5434, 0, 0, 0, 0, 0, 0, 0,
-0x645B, 0, 0, 0,0x416F, 0, 0,0x6469,
- 0, 0,0x5267, 0, 0,0x645F, 0,0x6460,
- 0, 0,0x4F2A, 0, 0, 0, 0,0x4B5D,
- 0,0x645A,0x6451, 0,0x6465, 0,0x485C,0x6463,
- 0, 0,0x4467,0x6462, 0,0x6461, 0, 0,
- 0,0x337C,0x6468, 0, 0, 0, 0,0x3561,
- 0, 0, 0,0x574C, 0, 0, 0,0x6466,
- 0,0x3B2C, 0,0x5752,0x4C4F,0x6B78, 0,0x6464,
- 0, 0,0x3976, 0, 0, 0,0x564D,0x6459,
-0x645C,0x427A,0x645E, 0,0x424B,0x4044,0x4250, 0,
-0x3175,0x4C32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x354E, 0, 0, 0,
- 0,0x646F, 0, 0, 0, 0, 0, 0,
- 0, 0,0x462F, 0, 0, 0,0x4661, 0,
- 0,0x6475, 0, 0, 0, 0, 0,0x4229,
- 0, 0, 0,0x406C,0x515D,0x646E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x442E, 0, 0, 0,0x646D, 0, 0, 0,
- 0,0x6476,0x6474,0x427E, 0,0x645D, 0,0x6470,
- 0,0x4A7E, 0,0x5544, 0, 0,0x6471, 0,
- 0, 0, 0, 0, 0, 0,0x517A, 0,
- 0, 0, 0, 0, 0, 0,0x646B,0x646C,
- 0, 0, 0,0x6472, 0,0x4E2B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x454B, 0, 0, 0,0x4731, 0,0x423A, 0,
- 0, 0,0x646A, 0, 0, 0,0x414A, 0,
- 0, 0, 0, 0, 0,0x4C36,0x3331, 0,
- 0, 0,0x647B, 0,0x6473, 0, 0, 0,
-0x647A, 0,0x647D, 0,0x647C, 0, 0, 0,
- 0, 0, 0, 0,0x334E, 0, 0, 0,
-0x333A,0x6477, 0, 0,0x6479,0x6478,0x456C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x403D, 0, 0, 0,
- 0,0x5468, 0, 0, 0, 0, 0,0x6522,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3044, 0, 0,0x6524, 0,
- 0,0x6523, 0, 0, 0, 0, 0, 0,
-0x3C24, 0,0x6525, 0, 0, 0, 0, 0,
- 0,0x6521, 0, 0, 0, 0, 0, 0,
- 0,0x647E,0x3174, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6528, 0,
-0x6529,0x6526, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6527,0x652A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x4659, 0, 0, 0, 0, 0, 0,
- 0, 0,0x652B,0x652D, 0, 0, 0, 0,
- 0, 0, 0,0x652C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x652F, 0, 0,
- 0,0x652E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x3960, 0, 0,0x6530,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6531, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3B70,0x6C61,0x4370, 0,0x3546,
-0x3B52, 0, 0, 0, 0,0x4169,0x546E, 0,
-0x3E44, 0, 0, 0,0x5746, 0,0x5456,0x3253,
-0x6C3E, 0, 0, 0, 0,0x6A41, 0, 0,
- 0,0x422F,0x3436, 0, 0, 0,0x5157, 0,
- 0, 0,0x3334, 0,0x4832,0x3F3B,0x6C40, 0,
- 0,0x564B, 0, 0,0x6C3F,0x6C41, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6C45,0x3E66,0x4C3F,0x455A,0x3E3C,
- 0,0x6C46, 0,0x317E, 0, 0, 0,0x6C44,
-0x5528,0x3563, 0,0x6C42,0x4136,0x3363, 0, 0,
-0x6C43,0x4B38,0x4043,0x4C7E, 0, 0, 0, 0,
-0x4152, 0,0x6C48, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x3A66,0x4053, 0,0x5672, 0, 0, 0,0x514C,
- 0, 0, 0, 0,0x3F3E, 0,0x3733,0x4955,
-0x6C47,0x3B62, 0,0x4C4C,0x3D7D,0x4848, 0,0x4F29,
- 0, 0, 0, 0, 0, 0, 0,0x4D69,
- 0,0x456B, 0, 0, 0,0x3769, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5149,0x3A38, 0, 0, 0, 0, 0,
-0x6C49, 0, 0,0x6C4A, 0,0x3B40,0x6C4B, 0,
-0x6C62,0x313A,0x3759, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3D39, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6C4C,
-0x5166,0x6C4D, 0, 0, 0, 0,0x483B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6C51, 0, 0,
- 0, 0,0x6C53, 0,0x3B4D, 0,0x3C65, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6C4F, 0,0x4937, 0,
- 0, 0, 0, 0,0x433A, 0,0x6C63,0x5555,
-0x6C50, 0, 0, 0, 0, 0,0x5673, 0,
- 0, 0,0x6C52,0x6C4E, 0, 0, 0, 0,
-0x6C54, 0,0x6C55, 0, 0,0x493F, 0, 0,
- 0, 0, 0, 0,0x4F28, 0, 0, 0,
- 0, 0,0x505C, 0, 0, 0, 0,0x512C,
- 0, 0, 0, 0,0x485B, 0, 0, 0,
-0x6C56,0x4E75, 0, 0, 0, 0, 0,0x4A6C,
-0x6C5A, 0, 0, 0, 0, 0, 0, 0,
-0x6C59, 0, 0, 0,0x303E, 0, 0, 0,
- 0, 0, 0,0x6C57, 0,0x6C58, 0, 0,
- 0,0x6C64, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x483C, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4147, 0,
- 0, 0, 0, 0,0x6C5C,0x5160, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C5B, 0, 0, 0, 0,0x546F, 0,0x6C5D,
- 0, 0, 0, 0, 0, 0,0x5B46, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6C5E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x312C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6C5F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C60, 0,0x5726, 0,0x4540, 0, 0, 0,
-0x6B3C,0x302E, 0, 0, 0,0x3E74,0x3838,0x522F,
-0x3056,0x3579, 0,0x5833, 0,0x4B2C, 0,0x635D,
- 0, 0, 0, 0, 0, 0, 0,0x462C,
-0x3066, 0, 0, 0,0x4546,0x6B39, 0, 0,
- 0, 0,0x6B3A, 0, 0, 0,0x6B3B, 0,
- 0,0x5140, 0,0x4523, 0,0x6A72, 0,0x4432,
- 0,0x4435,0x404E, 0, 0, 0,0x6A73,0x4441,
- 0,0x4E6F, 0, 0, 0, 0,0x6A70,0x6A74,
- 0, 0,0x497C, 0, 0,0x4723, 0, 0,
- 0,0x4C58,0x4E7E, 0, 0, 0,0x6A75,0x6A76,
-0x4F2C,0x4067, 0, 0,0x6A77, 0, 0, 0,
- 0, 0,0x363F,0x6A78, 0,0x6A79, 0,0x6A7A,
- 0, 0,0x6A7B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6A71,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x482E,0x616B, 0,0x3738,
-0x616C, 0, 0, 0,0x616D, 0,0x5734,0x616E,
-0x616F,0x534C, 0, 0, 0, 0, 0, 0,
- 0,0x6171,0x3F71,0x6170,0x3552, 0, 0, 0,
-0x3137, 0, 0, 0, 0,0x6173,0x6172, 0,
-0x3A7C, 0,0x6174, 0, 0, 0, 0,0x3937,
- 0,0x3E51, 0, 0, 0, 0,0x447C, 0,
-0x3A5D,0x3D46, 0, 0, 0, 0, 0, 0,
-0x6175,0x6177, 0, 0,0x3640,0x4F41,0x4A28,0x6176,
-0x5578,0x537C,0x6178,0x617C,0x6179, 0, 0,0x617A,
-0x406A, 0,0x617E,0x6221,0x4047, 0, 0, 0,
- 0,0x617B, 0,0x617D, 0, 0, 0, 0,
- 0, 0,0x6225, 0, 0, 0,0x4154, 0,
- 0, 0, 0,0x6223, 0,0x6228,0x327E,0x6222,
- 0, 0, 0,0x434D,0x3242,0x6227,0x6226, 0,
- 0,0x6224,0x6229, 0, 0,0x622B, 0, 0,
- 0,0x5049,0x566D,0x4328,0x622C, 0,0x4F57, 0,
- 0,0x622E, 0, 0,0x3A6F, 0, 0,0x6960,
-0x622D,0x622A, 0, 0, 0, 0,0x3B2B,0x5433,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6230, 0, 0,
-0x622F, 0,0x6961, 0, 0, 0, 0,0x6231,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6232, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6233,0x4C21, 0,0x6234,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6235, 0,
- 0, 0, 0, 0,0x507E, 0, 0,0x424A,
- 0,0x5371, 0,0x4D75, 0, 0,0x6760, 0,
- 0,0x6761, 0, 0, 0, 0,0x3E41, 0,
- 0, 0, 0,0x426A, 0, 0, 0,0x6764,
- 0, 0,0x6763, 0, 0, 0, 0, 0,
- 0,0x4D66, 0,0x4335, 0, 0,0x6762,0x3B37,
-0x4F56, 0,0x4161,0x6769, 0, 0, 0,0x6768,
- 0, 0,0x6774,0x3223, 0, 0, 0, 0,
-0x676A, 0,0x6766, 0, 0, 0, 0, 0,
-0x676C,0x676B,0x493A, 0, 0,0x5564, 0,0x6765,
-0x3729,0x6767, 0, 0, 0, 0, 0, 0,
- 0,0x676E, 0, 0, 0, 0,0x6773, 0,
-0x5669, 0, 0, 0, 0,0x676D, 0,0x6772,
- 0,0x6771, 0, 0, 0,0x3060, 0, 0,
- 0, 0,0x6775, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4772, 0,0x4045,0x406D, 0,
- 0,0x4170,0x6770, 0, 0, 0, 0,0x6776,
-0x4B76, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6822,0x6821, 0, 0, 0, 0,
- 0, 0,0x5741, 0, 0,0x677A,0x6779, 0,
-0x677B, 0,0x6777, 0,0x677E, 0,0x677D, 0,
-0x677C, 0, 0,0x4155,0x4759,0x457D,0x4543, 0,
- 0, 0, 0, 0,0x476D, 0, 0, 0,
- 0,0x6823, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6826, 0,0x6825,
- 0,0x6827,0x3A77,0x6778,0x6824, 0,0x4870,0x492A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6829, 0, 0,
-0x3965, 0, 0, 0, 0, 0,0x517E,0x6828,
- 0, 0, 0, 0, 0, 0,0x682A, 0,
-0x682D,0x682E, 0,0x4127, 0, 0, 0,0x682F,
- 0, 0, 0,0x6830, 0, 0,0x682C, 0,
-0x6834, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x682B, 0,0x6831, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6835,
-0x6832,0x6833, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6837, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6836, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x394F, 0,0x702C, 0,
-0x702D, 0,0x4630,0x306A,0x483F, 0,0x4D5F, 0,
- 0, 0, 0, 0, 0, 0,0x4E4D,0x6A31,
- 0, 0, 0, 0,0x6A32, 0,0x463F,0x3449,
- 0, 0, 0, 0, 0, 0, 0,0x6A33,
- 0, 0, 0, 0,0x5567, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5D79, 0,0x6A34,
- 0,0x6A35, 0,0x6A36, 0, 0, 0, 0,
-0x384A,0x5F30,0x4975, 0,0x4C70, 0, 0,0x497A,
- 0, 0, 0, 0, 0,0x497B, 0, 0,
-0x5343,0x4B26, 0,0x3826,0x702E,0x3142, 0,0x6538,
-0x4C6F,0x5349,0x3C57,0x496A, 0,0x3567, 0,0x4450,
-0x3569, 0,0x6E2E,0x3B2D, 0, 0,0x675E, 0,
-0x6E2F, 0, 0, 0, 0,0x3329, 0, 0,
-0x6E32, 0, 0,0x6E31,0x3D67, 0,0x6E30,0x4E37,
- 0, 0, 0, 0,0x454F, 0, 0, 0,
- 0,0x4174,0x5B4E,0x6E33,0x5073, 0, 0, 0,
- 0, 0, 0, 0, 0,0x4254,0x4668, 0,
- 0, 0,0x372C, 0, 0, 0, 0, 0,
- 0, 0,0x6E34, 0,0x336B, 0, 0, 0,
-0x3B7B,0x6E35, 0, 0, 0, 0, 0,0x675C,
- 0, 0, 0,0x6E36, 0, 0,0x3D2E, 0,
- 0, 0, 0,0x7162, 0, 0, 0,0x4A68,
- 0,0x5249,0x705A, 0,0x705B, 0,0x705C,0x4146,
- 0,0x386D,0x3E4E, 0, 0,0x705E, 0,0x4531,
-0x705D,0x5171, 0,0x7060,0x304C,0x3D6A, 0, 0,
- 0, 0, 0,0x525F,0x705F, 0,0x342F,0x3768,
-0x7066,0x7065,0x4623,0x7061,0x7062,0x3443, 0, 0,
-0x7063,0x556E, 0, 0,0x4C5B,0x3E52,0x3C32, 0,
- 0, 0,0x7068,0x7067,0x7064,0x3221, 0,0x5622,
-0x5338,0x3E37,0x482C, 0, 0,0x706A, 0, 0,
- 0, 0,0x5177, 0,0x564C,0x3A5B,0x7069, 0,
-0x363B, 0, 0,0x4D34, 0, 0,0x4626, 0,
- 0, 0,0x4121,0x706B,0x706E, 0,0x706D,0x7070,
-0x706C, 0,0x3B3E,0x706F, 0, 0, 0, 0,
-0x4C35,0x7072, 0, 0,0x3355, 0, 0, 0,
- 0,0x3154, 0, 0,0x7073, 0, 0,0x7074,
-0x7076,0x3461, 0,0x7071, 0,0x7077, 0, 0,
- 0, 0,0x707A, 0,0x7078, 0, 0, 0,
-0x7075, 0, 0, 0, 0,0x707D, 0,0x7079,
-0x707C,0x707E, 0,0x7121, 0, 0, 0,0x4E41,
-0x7124, 0,0x7123, 0,0x4176,0x707B,0x4A5D, 0,
- 0,0x3471,0x3171,0x4C31, 0,0x7126, 0, 0,
-0x7127, 0, 0,0x712C,0x554E,0x7129, 0, 0,
-0x4833, 0, 0, 0,0x7122, 0,0x712B,0x7128,
-0x7125, 0, 0,0x712A, 0, 0, 0, 0,
- 0, 0, 0, 0,0x3029,0x712D, 0, 0,
- 0, 0, 0, 0,0x712F, 0,0x7131, 0,
- 0, 0, 0, 0,0x7130, 0,0x712E, 0,
- 0, 0, 0,0x5122, 0, 0, 0, 0,
- 0, 0, 0,0x7132, 0, 0, 0,0x7133,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x396F, 0, 0,0x3547, 0,0x3057,0x3059, 0,
- 0, 0,0x546D, 0,0x3544, 0,0x3D54,0x3B4A,
-0x7027, 0, 0,0x385E, 0, 0,0x7028, 0,
- 0,0x3028, 0,0x7029, 0, 0,0x4D6E, 0,
- 0,0x702A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x702B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4624, 0,
- 0,0x5665,0x7164, 0,0x7165, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x4373,
- 0, 0,0x535B, 0, 0,0x5651,0x4568, 0,
-0x532F, 0,0x5266, 0, 0,0x6E41,0x303B,0x5535,
-0x514E,0x3C60,0x3A50, 0,0x3F78, 0,0x3847,0x3541,
-0x454C, 0, 0,0x4A22, 0, 0, 0,0x434B,
- 0, 0, 0, 0, 0,0x6E42, 0, 0,
- 0, 0, 0, 0, 0, 0,0x443F,0x3622,
- 0,0x6D6C,0x4324, 0,0x5631, 0, 0, 0,
-0x4F60,0x6D6F, 0, 0,0x454E, 0,0x365C, 0,
- 0,0x4A21, 0, 0,0x6D6D, 0, 0,0x6D70,
-0x6D71,0x433C, 0,0x3F34, 0,0x6D6E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x6D74,0x6D72, 0, 0, 0, 0,0x5566,
-0x435F, 0,0x6D73, 0, 0, 0,0x6D76, 0,
-0x5523,0x5123, 0, 0, 0,0x6D75, 0,0x4350,
- 0, 0, 0, 0, 0,0x6D77,0x3F74,0x3E6C,
-0x6D78, 0,0x4C77, 0,0x515B, 0, 0, 0,
-0x5745,0x5576, 0,0x6D7C, 0, 0, 0,0x6D7B,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6D79,0x6D7A, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6D7D,0x3E26, 0, 0, 0, 0,
- 0,0x4B2F,0x6E21,0x363D, 0,0x6E22,0x4440, 0,
-0x6D7E, 0, 0,0x3D5E,0x3247, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3643, 0, 0, 0,0x6E25,0x583A,0x6E23,
-0x6E26, 0, 0, 0,0x4369,0x3372, 0, 0,
- 0, 0, 0, 0,0x6E27,0x6E24,0x4F39, 0,
- 0,0x6E28,0x4277, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6E29,
-0x6E2A, 0,0x5E2B, 0, 0,0x4633, 0,0x4746,
- 0,0x5675,0x3549, 0,0x4B32, 0, 0, 0,
-0x6E2B, 0, 0,0x4D2B, 0,0x6E2C, 0, 0,
- 0, 0, 0,0x5530, 0,0x6E2D, 0,0x7644,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5B47, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3423,
- 0, 0, 0,0x432C,0x7166, 0, 0, 0,
- 0, 0,0x4A38,0x5253, 0,0x562A, 0,0x6F72,
- 0,0x3E58, 0,0x3D43,0x6F73,0x364C,0x302B, 0,
- 0, 0, 0,0x4A2F, 0, 0,0x6D36, 0,
-0x6D37, 0, 0, 0, 0,0x4E79,0x372F,0x3F73,
-0x6D38,0x426B,0x4930, 0, 0, 0, 0, 0,
- 0,0x6D39, 0, 0,0x4676,0x3F33, 0, 0,
- 0,0x6D3C,0x4578, 0,0x5150, 0,0x5729,0x6D3A,
-0x6D3B, 0,0x5162, 0,0x6D3F,0x6D40, 0,0x6D44,
- 0, 0, 0,0x6D48, 0,0x6D46,0x6D4E,0x5568,
- 0,0x6D49, 0, 0,0x6D47,0x6D3E, 0, 0,
-0x4569, 0, 0, 0,0x4646, 0, 0,0x4969,
-0x5452,0x6D41,0x6D42,0x6D43,0x6D45, 0,0x4079, 0,
-0x3421, 0, 0, 0, 0,0x3968, 0,0x6D50,
- 0, 0, 0, 0,0x6D51, 0,0x6D4A, 0,
-0x6D4F, 0,0x4E78, 0, 0,0x4B36,0x6D4C,0x6D4D,
- 0, 0, 0, 0, 0,0x4F75, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6D52,0x4172,0x5332,0x6D4B,0x4837, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3C6F,
- 0, 0, 0, 0,0x4570, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6D56,
- 0,0x356F, 0, 0,0x4235,0x302D,0x4B69, 0,
- 0,0x312E, 0,0x6D54, 0, 0, 0,0x4D6B,
-0x3562, 0,0x6D55,0x6D53,0x6D57, 0, 0,0x357A,
- 0,0x6D58, 0,0x6D59, 0,0x6D5C, 0,0x314C,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4576,0x3C6E,0x6D5A,0x4C3C,0x326A, 0, 0, 0,
- 0,0x6D5B, 0, 0, 0, 0,0x446B, 0,
- 0,0x3445, 0, 0, 0,0x3075, 0, 0,
- 0,0x6D5F,0x405A,0x3468, 0, 0, 0, 0,
-0x454D, 0, 0, 0,0x6D5D,0x3F44, 0, 0,
- 0,0x6D5E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4425, 0, 0, 0,0x6D60, 0, 0, 0,
- 0, 0,0x6D61, 0,0x6D63, 0, 0,0x4157,
- 0, 0,0x3B47, 0, 0, 0, 0, 0,
- 0,0x3D38, 0, 0, 0,0x6D62, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6D64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6D66, 0,
- 0, 0, 0, 0,0x6D65, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6D67, 0, 0, 0,
- 0, 0,0x4A3E,0x6C6A,0x4071, 0,0x4967, 0,
-0x6C6B,0x466E, 0, 0, 0, 0,0x6C6C, 0,
-0x466D,0x6C6D, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6C70, 0, 0,0x5766,0x6C73,
- 0, 0,0x6C71,0x6C6E,0x6C6F,0x5723,0x4971,0x4B6E,
-0x6C74, 0,0x6C72, 0, 0,0x4F69, 0,0x6C76,
-0x4631, 0, 0, 0, 0,0x3C40, 0,0x6C75,
- 0, 0, 0, 0, 0, 0, 0,0x353B,
-0x3B76, 0,0x6C77, 0, 0, 0, 0, 0,
-0x5977,0x3D7B, 0, 0,0x423B,0x6C78, 0, 0,
- 0, 0,0x6C79, 0, 0, 0, 0,0x3823,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6C7A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6C7B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6C7C, 0, 0, 0, 0,
- 0,0x536D,0x582E,0x406B, 0,0x475D,0x3A4C, 0,
-0x5063,0x4B3D, 0,0x4D3A, 0, 0,0x3851, 0,
- 0,0x317C, 0,0x476F, 0,0x5656, 0, 0,
- 0,0x3F46,0x436B, 0, 0,0x6F75, 0, 0,
-0x4358, 0, 0, 0, 0, 0, 0,0x5762,
- 0, 0, 0,0x6F77,0x3353, 0,0x4758,0x516D,
- 0,0x5648, 0,0x6F78, 0,0x6F76, 0,0x3B7D,
-0x3346, 0, 0, 0, 0, 0, 0, 0,
-0x3D55, 0, 0,0x5246, 0,0x3B60, 0, 0,
-0x4F21, 0,0x6F7C,0x6F7B, 0, 0,0x6F79, 0,
- 0, 0, 0,0x334C, 0,0x4954,0x4B30, 0,
- 0, 0, 0, 0,0x6F7E, 0, 0,0x305E,
- 0, 0,0x5649, 0, 0, 0,0x6F7D, 0,
-0x336D, 0, 0,0x7655, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4E48, 0, 0, 0,0x7022,
- 0,0x7021, 0,0x353E,0x3C5A,0x3B7C, 0,0x3865,
- 0, 0, 0, 0, 0, 0,0x4442, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7023, 0, 0, 0, 0, 0,0x4B6B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7026, 0, 0, 0,0x5128, 0,0x3E3F,0x476E,
-0x7136,0x7137,0x3F55, 0, 0, 0, 0,0x3429,
-0x7138,0x4D3B, 0,0x4754,0x552D, 0,0x7139, 0,
-0x713A, 0, 0, 0, 0,0x474F, 0, 0,
- 0,0x5224,0x564F, 0, 0,0x713B,0x3D51,0x3430,
-0x3E3D, 0, 0, 0,0x345C,0x4E51, 0,0x3F5F,
-0x713D, 0, 0, 0, 0,0x3F7A,0x713C, 0,
-0x713F, 0, 0, 0,0x713E,0x7140, 0, 0,
- 0, 0, 0,0x7141, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x417E,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4122, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4A7A, 0,
- 0,0x553E, 0, 0, 0, 0,0x3E3A,0x3E39,
-0x5542, 0, 0,0x3F22, 0,0x4D2F,0x7135, 0,
- 0, 0, 0, 0, 0,0x3D5F, 0,0x364B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5671,0x7343, 0, 0,0x7344, 0,0x384D,
- 0, 0, 0,0x7346,0x7347, 0,0x304A, 0,
-0x7345, 0,0x7349,0x4B71, 0, 0, 0,0x734B,
- 0,0x5026, 0, 0,0x314A,0x7348, 0, 0,
- 0,0x734F, 0,0x3551, 0, 0,0x7357, 0,
-0x7352, 0, 0, 0,0x7354,0x7353,0x377B, 0,
-0x313F, 0,0x734E,0x734A,0x355A, 0,0x7350, 0,
- 0,0x7351, 0,0x7355, 0, 0, 0, 0,
-0x734D, 0,0x3C63, 0,0x417D, 0,0x7356, 0,
- 0, 0, 0, 0, 0,0x735A, 0,0x734C,
- 0,0x3548, 0,0x3D6E,0x735C, 0, 0,0x3724,
-0x3F70,0x567E,0x4D32, 0,0x3470, 0,0x325F, 0,
-0x7358, 0,0x7359,0x4938, 0,0x735D, 0, 0,
-0x735E, 0,0x7361, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x735F, 0,
- 0,0x7363,0x7362, 0, 0,0x735B, 0,0x3F6A,
- 0,0x336F, 0,0x7360, 0, 0,0x4729, 0,
-0x3C72, 0, 0, 0, 0,0x736B, 0, 0,
- 0, 0, 0, 0, 0,0x393F, 0, 0,
-0x7364, 0, 0, 0,0x322D,0x3B7E, 0,0x4B63,
- 0, 0, 0, 0,0x736D,0x7369, 0, 0,
- 0,0x395C,0x736E, 0, 0, 0,0x7365,0x7366,
-0x736A,0x4261,0x736C,0x736F,0x7368,0x3C7D, 0, 0,
- 0,0x4F64, 0, 0,0x7370, 0, 0, 0,
-0x7367, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7372, 0, 0, 0, 0,0x572D,0x462A,
- 0, 0, 0, 0,0x7373, 0, 0, 0,
- 0,0x7371, 0,0x4228, 0, 0, 0, 0,
- 0,0x385D,0x7375, 0, 0,0x7374, 0, 0,
- 0,0x345B, 0, 0, 0,0x7376,0x7377, 0,
- 0, 0,0x7378, 0, 0, 0,0x403A, 0,
- 0,0x4069, 0, 0, 0, 0, 0,0x4571,
- 0, 0, 0, 0,0x737B, 0,0x737A, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3458,
- 0, 0, 0,0x737E,0x7379, 0, 0,0x737C,
- 0, 0, 0, 0, 0, 0,0x737D, 0,
- 0, 0, 0, 0, 0, 0, 0,0x7421,
- 0, 0, 0, 0, 0, 0,0x7423,0x3B49,
- 0, 0,0x7422, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7424, 0, 0, 0, 0, 0, 0,0x323E,
-0x7426,0x7425, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x3C2E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4357,0x5961, 0, 0, 0,
- 0, 0, 0,0x4060,0x744C,0x5751, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x375B, 0, 0, 0, 0, 0, 0,
- 0,0x744E,0x4123, 0, 0,0x4649, 0,0x3456,
-0x5533, 0, 0, 0,0x7450,0x744F,0x7451,0x4B5A,
- 0, 0,0x7452, 0,0x5441,0x5660, 0, 0,
- 0, 0,0x3760, 0, 0, 0,0x4138, 0,
- 0,0x413B,0x7453,0x3E2C, 0, 0, 0, 0,
- 0,0x3462, 0, 0,0x7454,0x7455,0x3E2B, 0,
- 0,0x7456, 0, 0, 0,0x745B, 0,0x7457,
-0x745A, 0,0x3A7D, 0,0x7458,0x7459, 0, 0,
- 0, 0, 0, 0, 0,0x3862,0x4C47,0x745C,
- 0,0x325A, 0, 0,0x4353, 0, 0,0x5463,
-0x3F37, 0, 0, 0, 0, 0, 0, 0,
-0x745D, 0, 0, 0, 0, 0, 0,0x4534,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7469, 0, 0,0x4F35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x4E49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4B58, 0,0x4B77, 0, 0, 0, 0,0x3D74,
- 0, 0, 0,0x574F, 0, 0, 0,0x405B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5075, 0,
- 0, 0, 0, 0, 0, 0, 0,0x746A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x746B, 0,
- 0, 0, 0, 0, 0, 0,0x746C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x7763, 0, 0, 0, 0,
- 0,0x3731, 0, 0, 0, 0, 0,0x746D,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x576B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x746E, 0, 0, 0,0x6679,
-0x3E40,0x667A,0x3A6C,0x667B,0x4F4B,0x667C,0x543C,0x3C36,
-0x667D,0x667E,0x3C4D,0x4852,0x4E33,0x6721, 0,0x343F,
-0x6722,0x4934,0x3859,0x4449, 0,0x575D,0x425A,0x3757,
-0x563D,0x4E46,0x3744, 0, 0,0x4526,0x6723,0x4F5F,
-0x6724,0x6725,0x6726,0x4137,0x5769,0x4970,0x4F38,0x562F,
-0x5655,0x6727,0x306D,0x6728,0x6729,0x495C,0x526F,0x3E2D,
-0x672A,0x3073,0x485E,0x3D61,0x672B,0x4846, 0,0x672C,
-0x3B66,0x3878,0x5124,0x672D,0x4267,0x3E78,0x3D4A,0x4D33,
-0x672E,0x672F,0x3E6E,0x5065, 0,0x4B67,0x4C50,0x3C4C,
-0x6730,0x3C28,0x5077,0x6731, 0,0x5078,0x6732,0x6733,
-0x3442,0x6734,0x6735,0x497E,0x4E2C,0x4360,0x6737,0x3141,
-0x3371, 0,0x6738,0x6739,0x575B,0x5540,0x673A,0x424C,
-0x573A,0x673B,0x673C,0x673D,0x3C6A,0x4365,0x4042,0x673E,
-0x673F,0x3C29, 0,0x6740,0x6741,0x6736,0x3650,0x6742,
- 0,0x6743,0x6744,0x3B3A,0x355E,0x4246,0x3160,0x6745,
-0x5435,0x6746,0x383F,0x6748,0x6747,0x376C, 0,0x6749,
-0x3278,0x674A,0x674B,0x674C,0x674D,0x674E,0x674F,0x6750,
-0x5327,0x4B75,0x6751,0x6752,0x6753,0x6754,0x4949,0x6755,
-0x6756,0x6757,0x6758,0x6759,0x3D49,0x675A,0x733E, 0,
-0x3857, 0,0x4831, 0, 0, 0, 0, 0,
- 0, 0,0x733F, 0,0x7340,0x7341, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x395E,0x4D78, 0, 0,0x5868,0x3A31, 0,0x425E,
-0x6E37, 0,0x3723, 0, 0, 0, 0,0x6E39,
- 0,0x6E38,0x3055, 0, 0, 0, 0, 0,
-0x6E3B,0x5556,0x576F, 0, 0, 0,0x5643, 0,
- 0,0x6E3D,0x4A70, 0,0x6E3C, 0, 0, 0,
- 0,0x6E3E, 0, 0, 0, 0,0x6E40, 0,
- 0,0x6E3F, 0, 0, 0, 0, 0, 0,
- 0, 0,0x5172, 0,0x473C, 0,0x4340, 0,
- 0, 0, 0, 0,0x3861, 0, 0, 0,
- 0, 0,0x4167, 0, 0,0x7446,0x505F,0x7447,
- 0,0x4F5B, 0, 0,0x483A, 0, 0,0x7448,
- 0, 0, 0, 0, 0, 0, 0,0x7449,
-0x744A, 0,0x744B, 0, 0, 0, 0, 0,
-0x597A,0x387E, 0, 0,0x6571,0x5370, 0,0x7460,
- 0,0x4E4C, 0, 0, 0,0x3361, 0, 0,
- 0, 0,0x7134, 0,0x526E, 0,0x7461, 0,
- 0, 0, 0, 0,0x4F68,0x7462, 0, 0,
-0x474C, 0, 0, 0, 0, 0, 0,0x3554,
-0x3464,0x7464, 0, 0, 0,0x7463,0x7465, 0,
- 0,0x7466, 0, 0, 0, 0,0x7467, 0,
-0x3A32,0x303F, 0,0x7468, 0, 0, 0, 0,
- 0, 0, 0,0x372D,0x526D, 0, 0, 0,
-0x522B,0x404F, 0,0x3F3C,0x6B23,0x555F,0x6A48, 0,
- 0, 0, 0,0x7173,0x3678,0x4B23, 0, 0,
-0x444D, 0,0x7167, 0,0x7168,0x387B,0x7169,0x3A44,
-0x5445,0x3052, 0, 0,0x716A, 0, 0, 0,
-0x716B, 0,0x716C, 0, 0,0x716D,0x716E,0x716F,
-0x7171,0x7170,0x4555, 0, 0, 0, 0, 0,
- 0,0x7172, 0,0x367A, 0,0x7174,0x522E,0x5E47,
-0x4B4A, 0, 0,0x335C, 0,0x3522, 0,0x3922,
- 0, 0,0x4474,0x7175, 0, 0,0x7176, 0,
- 0, 0,0x4144,0x417B,0x5630,0x7177, 0, 0,
- 0, 0,0x7178, 0,0x412A, 0, 0, 0,
-0x4638, 0,0x3E5B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7179,0x344F, 0, 0, 0, 0, 0,
- 0,0x717A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6D32,
-0x6D31, 0, 0,0x4B60,0x525E, 0,0x4B41,0x5558,
- 0,0x4862, 0,0x405F,0x3C21, 0, 0, 0,
- 0, 0, 0,0x6B41, 0, 0,0x5024, 0,
-0x5662, 0,0x3647,0x3858,0x6B40,0x384E, 0,0x6B3F,
-0x3326,0x3949,0x562B, 0,0x3774,0x374A, 0, 0,
- 0,0x3C67,0x373E,0x6B46, 0,0x6B47,0x3039,0x3F4F,
- 0,0x6B45,0x537D, 0,0x6B48, 0, 0,0x6B49,
- 0, 0,0x374E, 0,0x6B42,0x6B44,0x4976,0x5657,
-0x554D,0x5032,0x6B4F,0x4E38,0x6B50, 0,0x3528, 0,
- 0, 0, 0, 0,0x3133,0x6B52,0x4C25, 0,
- 0, 0, 0, 0, 0, 0,0x4556,0x6B53,
- 0,0x6B51,0x455F,0x6B4E,0x4A24,0x6B55,0x307B, 0,
- 0,0x3A7A, 0, 0,0x5837,0x7163, 0,0x6B4A,
-0x6B4B,0x6B4C,0x6B4D,0x6B56,0x6640,0x6B59, 0,0x3F68,
-0x5248,0x6B57,0x6B5C,0x386C,0x6B58, 0,0x3D3A, 0,
-0x5058, 0,0x3037, 0,0x6B5D,0x445C, 0, 0,
- 0, 0,0x562C, 0, 0, 0,0x3460, 0,
- 0,0x4276,0x3C39, 0, 0,0x6B5A,0x6B5B,0x5460,
-0x466A,0x4454,0x6B5F,0x4527,0x5975, 0,0x3231, 0,
-0x6B64, 0,0x3D45, 0, 0, 0,0x6B62, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x6B63, 0, 0,0x382C,
- 0,0x4D51,0x6B65, 0, 0, 0,0x6B61, 0,
-0x4133, 0, 0, 0, 0, 0,0x4622, 0,
- 0, 0, 0, 0, 0, 0,0x4C73, 0,
-0x6B66, 0,0x4030,0x5238,0x6B67, 0, 0, 0,
-0x382F,0x382D, 0,0x6B68,0x473B,0x4D73, 0, 0,
- 0,0x6B6A,0x6B6B, 0, 0, 0, 0, 0,
-0x6B6D, 0, 0, 0, 0,0x5048, 0,0x6B72,
- 0,0x6B6E, 0, 0, 0,0x6B71,0x4879, 0,
-0x517C,0x6B6C, 0, 0,0x6B69, 0, 0, 0,
- 0,0x3839,0x4F59,0x4465,0x6B6F,0x6B70,0x4C5A,0x4D48,
-0x3072, 0,0x6B76, 0, 0, 0, 0, 0,
-0x6B75, 0,0x3232, 0, 0, 0, 0,0x3860,
- 0,0x6B77, 0, 0, 0, 0, 0, 0,
-0x316C, 0, 0,0x4C45,0x4424,0x4F25, 0, 0,
- 0, 0, 0,0x6B79, 0, 0,0x6C22, 0,
-0x4572, 0,0x6B7A, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4945, 0, 0, 0, 0,
- 0, 0,0x625F,0x6B7E, 0, 0, 0, 0,
-0x4D4E,0x6C21,0x315B,0x5337, 0, 0,0x525C, 0,
- 0, 0,0x6B7D, 0,0x6B7B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x333C, 0, 0, 0,0x6A30,
- 0, 0,0x5754, 0,0x742B,0x3374, 0, 0,
- 0, 0, 0,0x5641,0x5642, 0, 0, 0,
- 0, 0, 0,0x5569,0x3E4A, 0,0x7427, 0,
-0x5228,0x7428,0x7429, 0,0x742A,0x3E4B,0x535F, 0,
- 0, 0, 0, 0,0x4960,0x4961, 0, 0,
-0x7342, 0,0x4A66, 0,0x4C72, 0, 0, 0,
- 0, 0, 0,0x6236,0x4B34, 0,0x4E68,0x565B,
- 0,0x742D,0x742E,0x742F, 0, 0, 0, 0,
-0x7432, 0,0x3A3D,0x7433,0x3063,0x7430, 0,0x7431,
-0x3D22,0x3255, 0,0x7436,0x7437,0x3666,0x3230,0x4F4F,
-0x7434,0x342C, 0,0x7435, 0, 0,0x7438, 0,
- 0, 0, 0, 0,0x7439, 0, 0,0x4D27,
- 0,0x743A, 0,0x743B, 0, 0, 0,0x743C,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4B52, 0,0x743D, 0, 0, 0, 0,0x743E,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x743F, 0, 0, 0, 0, 0,0x745E,0x413C,
-0x3C68, 0,0x492B,0x515E,0x6575, 0, 0, 0,
- 0,0x5C33,0x5255, 0, 0,0x5C34,0x302C,0x5C35,
- 0, 0,0x3D5A, 0,0x5C39, 0, 0, 0,
-0x5842, 0,0x5C37,0x5373, 0,0x4956,0x5C3A,0x5C36,
- 0,0x5C3B,0x4322, 0, 0, 0, 0,0x5C3C,
-0x5C45,0x5C3D, 0, 0,0x4E5F,0x5625, 0,0x5C4F,
- 0,0x5C4D, 0, 0,0x5C52,0x3D66,0x422B, 0,
-0x5C38,0x5C4B,0x5C4E,0x5C3E,0x3752,0x3045,0x5C47,0x503E,
-0x5C41,0x3B28, 0,0x373C,0x5C4C, 0, 0,0x5C46,
-0x5C3F,0x475B, 0, 0, 0,0x513F,0x5C40, 0,
- 0,0x5C4A, 0, 0,0x5C50, 0, 0,0x4E2D,
-0x5C42, 0,0x5C43,0x5C48,0x5C49,0x3254,0x5C51,0x4B55,
- 0,0x5437,0x5C5B,0x5C5F,0x4C26,0x5C66, 0,0x4367,
-0x5C5C, 0, 0,0x3F41,0x5C59, 0,0x307A,0x3936,
-0x5C65,0x5C53, 0,0x5C44,0x5C56,0x4874,0x3F60, 0,
- 0, 0, 0,0x493B, 0, 0, 0,0x313D,
- 0,0x5322, 0, 0,0x5C5A, 0, 0,0x5C55,
- 0,0x463B, 0,0x5C5E, 0, 0, 0, 0,
- 0,0x5742,0x432F,0x3736,0x4751,0x4329,0x5C62,0x5C58,
-0x5C6B,0x5C54, 0, 0,0x5C5D, 0,0x3E25,0x5C57,
- 0,0x5C60, 0, 0,0x5C63,0x5C64, 0,0x5C78,
- 0, 0,0x5C61,0x5D22,0x5C67, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3C6B,
-0x3444, 0, 0,0x4323,0x3267,0x5C7A, 0,0x5C72,
- 0,0x5C6F, 0,0x5C7C,0x5C6E,0x5270,0x3268, 0,
-0x4857,0x4863,0x5C7B, 0,0x5C6D, 0, 0, 0,
-0x5C77, 0, 0,0x5C75, 0, 0,0x3E23,0x5C74,
- 0,0x325D, 0, 0, 0, 0, 0,0x5C73,
-0x3C76,0x5C68,0x3B44, 0,0x4073, 0, 0, 0,
- 0, 0,0x3C54,0x5C69,0x5C6A, 0,0x5C71,0x5C76,
-0x5C79,0x3534, 0,0x4859,0x3B67,0x5C7E,0x5C7D,0x532B,
-0x5D21,0x5D23,0x5D25,0x5271,0x5D24,0x5D26,0x5D27,0x5229,
- 0, 0, 0, 0, 0, 0, 0,0x3A49,
-0x5D29, 0, 0,0x5D36,0x5D31,0x5D34, 0, 0,
- 0, 0, 0, 0, 0,0x5D30,0x464E, 0,
- 0,0x4072, 0, 0, 0, 0,0x492F, 0,
- 0, 0,0x5C6C,0x5D2E, 0, 0, 0, 0,
-0x5D37, 0, 0,0x5C70,0x5D2F, 0,0x5D38, 0,
-0x5D2C, 0, 0, 0, 0, 0, 0, 0,
-0x5D39,0x5D33,0x5D2D,0x442A, 0, 0, 0, 0,
-0x5D28,0x4033,0x412B,0x5D2A,0x5D2B, 0,0x5D32,0x3B71,
-0x5D35,0x5328,0x5D3A, 0,0x5D3B,0x4327, 0, 0,
-0x5D52,0x5D3C, 0, 0, 0,0x5D51, 0,0x393D,
- 0, 0,0x3E55, 0,0x3E7A, 0, 0,0x3A4A,
- 0, 0, 0, 0,0x5D4A, 0,0x5D45, 0,
-0x5D3F, 0, 0, 0,0x324B,0x5D43, 0,0x5D4B,
-0x3224,0x5D55, 0, 0, 0,0x5D3E, 0, 0,
- 0,0x4650,0x5D50, 0, 0, 0, 0, 0,
-0x5D54,0x4162,0x3746, 0, 0, 0, 0, 0,
-0x5D4E,0x5D4F, 0, 0, 0,0x5D44, 0, 0,
- 0,0x5D3D, 0,0x5D4D,0x4C51, 0,0x5D49, 0,
- 0, 0, 0,0x5D42,0x4348,0x463C,0x4E2E,0x5D4C,
- 0,0x5D48, 0, 0, 0, 0, 0, 0,
-0x5D41, 0, 0, 0,0x5D46,0x425C, 0, 0,
- 0, 0, 0, 0,0x5329,0x532A,0x5D53,0x4F74,
-0x4878, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5D66, 0, 0, 0, 0, 0, 0,
-0x5D47, 0, 0, 0,0x5D60,0x4264, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5D61, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5D57, 0, 0, 0, 0, 0,0x5678,
- 0,0x5D59,0x5D58,0x3870,0x5D56, 0, 0, 0,
- 0,0x464F, 0,0x362D, 0, 0, 0, 0,
- 0,0x5D62, 0,0x3A79,0x5461,0x5D67, 0, 0,
- 0,0x3450, 0,0x5D5A, 0,0x3F7B,0x5D63, 0,
-0x5D5F, 0,0x5D5D, 0, 0, 0, 0, 0,
- 0, 0,0x3559, 0, 0, 0, 0,0x5D5B,
-0x5D5C,0x5D5E, 0,0x3D2F,0x5D64, 0,0x5D65, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5D75,
- 0,0x4349, 0, 0,0x4B62, 0, 0, 0,
- 0,0x5D72, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5861,
- 0, 0,0x4651, 0,0x5D74, 0, 0, 0,
-0x5574,0x5D73,0x5D70, 0, 0,0x5D6C, 0,0x5D6F,
- 0,0x5D68, 0, 0,0x506E, 0, 0, 0,
- 0,0x4858,0x5D6E, 0, 0,0x5D69, 0, 0,
-0x5D6A,0x4B72, 0,0x5D6D, 0, 0,0x314D, 0,
- 0, 0, 0, 0, 0,0x4036, 0,0x3C3B,
-0x5D71, 0, 0,0x5D77, 0,0x5D76,0x5D6B, 0,
- 0, 0, 0, 0,0x456E, 0, 0, 0,
-0x5D7B, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5E24, 0, 0,0x5E23,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x5D78, 0, 0, 0,
- 0,0x436F, 0,0x427B, 0, 0, 0,0x5561,
- 0, 0,0x4E35, 0, 0, 0, 0,0x5D7D,
- 0,0x324C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4468,0x4A5F, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x473E,
-0x5D7A,0x5D7C,0x5D7E,0x5E22,0x302A,0x314E, 0, 0,
- 0, 0, 0,0x5E2C, 0, 0, 0, 0,
-0x5E26,0x3D36,0x486F, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x5E21, 0,
- 0,0x5E25, 0, 0, 0, 0,0x5E29, 0,
- 0, 0, 0, 0,0x5E28, 0, 0, 0,
-0x5E27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x5E2D, 0,0x544C, 0, 0, 0,
- 0,0x5E33,0x5E2A,0x5E2E, 0, 0,0x4059, 0,
- 0, 0, 0, 0,0x3121,0x5E36, 0,0x5E31,
- 0, 0, 0, 0, 0, 0, 0,0x5E32,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x5126,0x5E35, 0, 0, 0,
- 0, 0, 0, 0,0x5E2F, 0, 0, 0,
-0x5E30, 0,0x503D, 0, 0, 0,0x5E34,0x4A6D,
-0x5E39, 0, 0, 0, 0, 0, 0,0x5E38,
- 0,0x5E37, 0, 0, 0, 0, 0, 0,
- 0,0x5E3B, 0, 0, 0, 0, 0, 0,
- 0,0x3D65, 0, 0, 0, 0, 0,0x3258,
-0x436A, 0, 0,0x5E3A, 0,0x453A, 0, 0,
- 0, 0, 0, 0,0x5E3C, 0, 0, 0,
- 0, 0, 0, 0,0x4C59, 0, 0, 0,
- 0,0x372A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x5465, 0, 0, 0,0x5E3D,
- 0, 0, 0, 0, 0,0x5E3F, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x4422, 0, 0, 0, 0,0x5E41, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5E3E,
- 0,0x5E40, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x553A, 0, 0, 0,0x5E42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x722E,0x3B22,0x4232,
-0x4530,0x4247, 0, 0,0x722F, 0, 0, 0,
- 0, 0,0x5069, 0, 0, 0,0x535D, 0,
- 0, 0,0x6B3D, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3366,0x7230, 0,0x7231, 0,
- 0,0x4A2D, 0, 0, 0, 0, 0, 0,
- 0,0x3A67,0x7233,0x7235,0x7234,0x4B64,0x4F3A,0x7232,
-0x4A34,0x524F,0x426C, 0, 0, 0, 0, 0,
- 0, 0,0x4E43,0x7238,0x3076,0x7237, 0, 0,
- 0, 0, 0,0x723E, 0,0x324F, 0, 0,
- 0, 0, 0, 0,0x5141,0x723A, 0, 0,
- 0, 0, 0,0x723C,0x5469, 0, 0,0x723B,
-0x7236,0x723F,0x723D, 0,0x7239, 0, 0,0x7247,
-0x7244,0x7246, 0, 0,0x724A,0x7242,0x7240, 0,
- 0, 0,0x7245, 0, 0, 0, 0, 0,
-0x567B, 0, 0, 0,0x7241, 0,0x4779,0x495F,
- 0,0x7248,0x3946,0x3530, 0, 0,0x7243,0x7249,
-0x7250,0x7256, 0, 0,0x3B57, 0, 0, 0,
-0x7255,0x4D5C, 0,0x566B, 0, 0,0x7252,0x7254,
- 0, 0, 0, 0,0x3872, 0, 0, 0,
- 0,0x724B, 0, 0, 0,0x724E,0x4279, 0,
-0x555D,0x724C,0x724D,0x724F,0x7253, 0, 0, 0,
-0x7259,0x533C, 0, 0, 0, 0,0x366A, 0,
-0x4A71, 0,0x3764,0x7257, 0, 0, 0,0x7258,
-0x725A,0x725D,0x725B, 0, 0,0x725C, 0, 0,
- 0, 0,0x5151,0x7251, 0,0x4D49, 0,0x4E4F,
-0x5629, 0,0x7263, 0,0x435B, 0,0x7260, 0,
- 0,0x402F,0x726C,0x725E, 0,0x7261, 0, 0,
- 0,0x7268, 0, 0, 0, 0,0x7262, 0,
- 0,0x7267, 0, 0,0x7266, 0, 0,0x7269,
- 0, 0, 0,0x725F, 0, 0,0x7264,0x726A,
- 0, 0, 0, 0, 0, 0, 0,0x532C,
-0x7265,0x3275, 0, 0,0x7272, 0,0x502B, 0,
- 0, 0, 0,0x7275, 0, 0, 0,0x3B48,
- 0,0x7279, 0, 0, 0, 0, 0, 0,
-0x7270, 0, 0,0x7276,0x7278,0x727A, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7273, 0,
-0x7271, 0, 0, 0,0x3A7B, 0,0x357B, 0,
- 0, 0, 0,0x726F,0x7277,0x726D,0x726E, 0,
- 0, 0,0x726B,0x7326, 0,0x7323, 0, 0,
-0x7322, 0, 0,0x7274, 0,0x485A, 0, 0,
- 0, 0, 0,0x727B, 0, 0, 0,0x7325,
- 0, 0, 0, 0, 0, 0, 0,0x4378,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x727D, 0, 0,0x7327,0x7329,0x7324, 0,0x727C,
- 0, 0, 0,0x732B, 0,0x732A, 0, 0,
- 0, 0,0x425D, 0, 0,0x732E, 0, 0,
-0x7330, 0, 0, 0, 0, 0,0x7321, 0,
- 0, 0,0x7331,0x732C, 0, 0, 0, 0,
- 0,0x732F,0x727E,0x732D, 0, 0, 0, 0,
- 0, 0, 0,0x7332, 0, 0, 0, 0,
-0x7334, 0, 0, 0, 0,0x7328, 0, 0,
- 0, 0,0x7333, 0, 0, 0,0x7335, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5037, 0, 0, 0, 0,0x7338, 0,
- 0, 0, 0,0x5979, 0, 0, 0, 0,
- 0, 0,0x7339, 0, 0, 0, 0, 0,
- 0, 0, 0,0x7337, 0,0x4864,0x7336, 0,
- 0, 0, 0,0x733A, 0, 0, 0, 0,
- 0,0x733B,0x3440, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6E43, 0, 0, 0, 0, 0,
- 0,0x733C, 0, 0,0x733D, 0, 0, 0,
-0x512A, 0, 0, 0,0x742C,0x5046, 0, 0,
- 0, 0, 0, 0,0x5050,0x515C, 0, 0,
- 0, 0, 0, 0,0x4F4E, 0, 0,0x3D56,
- 0,0x5143, 0, 0, 0, 0, 0, 0,
- 0,0x3A62,0x6169,0x5242,0x7142,0x3239, 0, 0,
-0x316D,0x7143, 0,0x4940,0x3344, 0,0x5972, 0,
-0x4B25, 0,0x7144, 0, 0, 0, 0,0x5654,
- 0, 0, 0, 0, 0,0x7145,0x7440,0x7146,
- 0,0x542C,0x7147, 0,0x3040,0x7441, 0, 0,
-0x7442, 0, 0,0x347C, 0,0x455B, 0, 0,
- 0, 0,0x4C3B, 0, 0, 0,0x5064, 0,
- 0, 0, 0, 0,0x4D60, 0, 0, 0,
- 0, 0,0x7148, 0,0x5973, 0, 0, 0,
- 0, 0, 0,0x313B, 0,0x4F2E, 0, 0,
- 0,0x3824, 0, 0, 0, 0, 0,0x714A,
- 0, 0, 0, 0,0x714B, 0, 0, 0,
- 0,0x3243,0x4151, 0, 0,0x5730,0x7149, 0,
- 0,0x714C, 0, 0, 0, 0,0x714E, 0,
- 0, 0,0x5976, 0,0x5261,0x5423, 0, 0,
-0x7443,0x4839, 0, 0, 0, 0, 0,0x7444,
- 0, 0,0x714D,0x714F,0x3F63,0x7150, 0, 0,
-0x7154, 0, 0, 0, 0, 0, 0, 0,
-0x7156,0x7151, 0,0x4951,0x4561, 0, 0, 0,
-0x4263,0x397C, 0, 0,0x7153, 0,0x7155, 0,
- 0, 0,0x3953, 0, 0, 0, 0, 0,
- 0, 0,0x715B, 0, 0, 0, 0, 0,
-0x3A56, 0,0x307D,0x7159, 0, 0, 0, 0,
- 0,0x7158,0x7152,0x715A, 0, 0, 0, 0,
- 0,0x7157, 0, 0, 0,0x486C, 0, 0,
- 0, 0,0x4D4A,0x715D, 0, 0, 0, 0,
-0x653D, 0, 0, 0,0x715C, 0,0x715E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x715F, 0, 0,0x4F65, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7445,0x3D73,
- 0, 0, 0, 0, 0, 0,0x7160, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x7161, 0, 0, 0,0x4E77,
- 0,0x522A, 0,0x717B, 0, 0,0x3832, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3C7B,0x395B, 0,0x3966,0x4359,0x4A53,0x6A68,
-0x4040,0x3E75,0x6A69,0x6A6A,0x6A6B, 0,0x6A6C,0x6A6D,
-0x6A6E,0x6A6F,0x3D47, 0, 0, 0,0x757B, 0,
- 0, 0,0x757D, 0,0x757E, 0,0x757C, 0,
- 0, 0, 0,0x3D62, 0,0x7621,0x3425, 0,
- 0, 0, 0,0x7622, 0, 0, 0,0x7623,
- 0, 0, 0,0x6C32, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5154, 0, 0, 0, 0, 0, 0,0x596A,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7624, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6E3A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x5532, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x537E,0x4C5C, 0, 0, 0, 0, 0,
- 0, 0, 0,0x4A44, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x6540,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7625, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3E2F, 0,
- 0, 0, 0, 0,0x4629, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5A25,0x3C46,0x3629,0x383C,0x484F,0x3C25,0x5A26,0x5A27,
-0x4C56,0x4843,0x5A28,0x467D, 0,0x5135,0x5269,0x5136,
-0x3C47, 0,0x3D32,0x3B64,0x5A29,0x5A2A,0x5148,0x5A2B,
-0x506D,0x366F,0x425B, 0,0x4B4F,0x376D,0x4968,0x3743,
-0x3E77,0x5624,0x5A2C,0x5A2D,0x4640,0x5767,0x4A36, 0,
-0x5529,0x4B5F,0x556F,0x5A2E,0x565F,0x344A,0x5A30,0x5A2F,
- 0,0x526B,0x5A31,0x5A32,0x5A33,0x4A54,0x5A34,0x4A2B,
-0x5A35,0x5A36,0x334F,0x566F,0x5A37,0x3B30,0x352E,0x5A38,
-0x5A39,0x396E,0x512F,0x5268,0x5A3A,0x3843,0x4F6A,0x326F,
-0x5A3B,0x5A3C, 0,0x3D6B,0x4E5C,0x536F,0x5A3D,0x4E73,
-0x5A3E,0x5355,0x3B65,0x5A3F,0x4B35,0x4B50,0x5A40,0x476B,
-0x566E,0x5A41,0x4535,0x3641,0x5A42,0x374C,0x3F4E,0x5A43,
-0x5A44,0x4B2D,0x5A45,0x3577,0x5A46,0x4142,0x573B,0x5A47,
-0x4C38, 0,0x526A,0x4431,0x5A48,0x357D,0x3B51,0x5A49,
-0x5033,0x5A4A,0x5A4B,0x4E3D,0x5A4C,0x5A4D,0x5A4E,0x3277,
-0x5A51,0x5A4F,0x5168,0x5A50,0x4355,0x5A52, 0,0x5A53,
-0x5A54,0x5A55,0x503B,0x5225,0x3079,0x5A56,0x472B,0x5A57,
-0x3D77,0x4321,0x5A58,0x5A59,0x437D,0x4C37,0x5A5A,0x5A5B,
-0x403E,0x4657,0x5A5C,0x5A5D,0x4734,0x5A5E,0x5A5F,0x3948,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3B6D, 0, 0, 0, 0,0x3639,0x7478,
- 0,0x7479, 0, 0,0x4D63, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7539, 0, 0,
- 0, 0,0x6B60, 0, 0, 0, 0, 0,
- 0,0x4F73,0x3B3F, 0, 0, 0, 0, 0,
- 0, 0,0x3A40,0x5425, 0, 0, 0, 0,
- 0, 0, 0,0x6159, 0, 0, 0, 0,
-0x7574,0x312A,0x3272, 0, 0, 0, 0, 0,
- 0, 0,0x7575, 0, 0,0x7577, 0, 0,
- 0,0x3A51,0x7576, 0,0x4332, 0, 0, 0,
- 0, 0, 0, 0,0x7579, 0, 0, 0,
-0x7578, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x3134,0x556A,0x383A,
- 0,0x3931,0x3246,0x5470,0x4F4D,0x305C,0x554B,0x3B75,
-0x564A,0x3737,0x4C30,0x4636,0x3161,0x393A,0x567C,0x3961,
-0x3721,0x3C7A,0x6A5A,0x6A5B,0x4C79,0x3973,0x6A5C,0x347B,
-0x4333,0x3751,0x3A58,0x6A5D,0x5474,0x6A5E,0x3C56,0x3B5F,
-0x6A5F,0x415E,0x4238,0x545F,0x574A,0x6A60,0x6A61,0x6A64,
-0x6A62,0x6A63,0x495E,0x3833,0x3644,0x6A65,0x4A6A,0x494D,
-0x344D, 0, 0,0x6259,0x4562,0x6A66,0x4035, 0,
-0x5738,0x6A67,0x572C,0x487C,0x5853,0x584D,0x545E, 0,
-0x5479,0x4944,0x532E,0x3853,0x3360, 0,0x4962,0x7476,
- 0, 0, 0,0x3A55, 0,0x7477, 0, 0,
-0x575F, 0, 0,0x7471,0x3830,0x5554,0x384F,0x4670,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3343, 0, 0,0x7472,0x332C, 0, 0,
- 0, 0,0x543D,0x4777, 0, 0, 0, 0,
- 0,0x7474, 0, 0,0x7473, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x4C4B,
- 0, 0, 0,0x4824, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x7475, 0,0x5763,0x453F,0x7540, 0, 0,
-0x753B, 0,0x7543, 0,0x7542, 0,0x563A,0x7541,
- 0, 0, 0,0x543E,0x7544, 0,0x754C, 0,
- 0, 0, 0,0x304F,0x3578, 0,0x7549,0x754A,
- 0,0x455C, 0, 0, 0, 0,0x7545,0x7546,
- 0, 0,0x7547,0x754B, 0,0x3E60,0x7548,0x387A,
- 0, 0, 0,0x7550,0x7553, 0, 0, 0,
-0x3F67, 0,0x3972,0x753C,0x754D, 0, 0,0x4237,
- 0, 0, 0,0x4C78, 0,0x3C79, 0,0x754E,
-0x754F,0x7551,0x3665,0x7552, 0,0x7555, 0, 0,
- 0, 0, 0, 0, 0,0x753D, 0, 0,
- 0,0x7554,0x533B, 0,0x336C, 0, 0,0x4C24,
- 0, 0, 0, 0,0x7556, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7557,0x3E61,0x7558,
- 0, 0,0x4C5F,0x755B, 0, 0, 0, 0,
- 0,0x3248,0x5759, 0,0x7559, 0,0x755A,0x755C,
- 0,0x7562, 0, 0, 0,0x7560, 0, 0,
- 0,0x755F,0x755D, 0, 0,0x7561, 0, 0,
-0x755E,0x7564,0x7565, 0,0x4C63, 0, 0,0x653F,
-0x3538,0x7563,0x7568,0x4C23, 0, 0, 0, 0,
- 0,0x7566,0x7567, 0, 0, 0, 0, 0,
- 0,0x753E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3144, 0,
- 0,0x753F, 0, 0,0x3545,0x3264, 0,0x756C,
-0x7569, 0,0x3657, 0,0x756D, 0,0x756A, 0,
- 0, 0, 0, 0,0x756B, 0, 0,0x345A,
- 0,0x546A, 0, 0, 0,0x756E, 0,0x3379,
- 0, 0, 0, 0, 0, 0, 0,0x756F,
-0x7571, 0, 0, 0,0x7570, 0, 0, 0,
- 0, 0, 0, 0,0x7572, 0,0x7573, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x496D,0x392A, 0, 0,0x477B,
- 0, 0,0x3663, 0, 0, 0, 0, 0,
- 0, 0,0x4C49, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x6A26, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3335,0x547E,
-0x396C,0x5079, 0,0x696D,0x572A,0x696E,0x4256,0x486D,
-0x3A64,0x696F,0x6970,0x6971,0x5661,0x6972,0x6973,0x6975,
-0x6974,0x6976,0x6977,0x4761,0x6978,0x5458,0x6979,0x3D4E,
- 0,0x697A,0x697B,0x3D4F,0x697C,0x3828,0x413E,0x697D,
-0x3132,0x3B54,0x3975,0x697E, 0,0x6A21,0x6A22,0x6A23,
-0x3778,0x3C2D, 0,0x4A64,0x604E,0x542F,0x4F3D,0x5537,
-0x6A24,0x555E,0x6A25,0x5041,0x393C, 0,0x3447,0x3159,
- 0, 0, 0,0x4031, 0, 0, 0, 0,
-0x3166,0x3167, 0,0x3168, 0, 0, 0, 0,
-0x333D,0x4868, 0, 0, 0, 0,0x6541, 0,
- 0,0x315F, 0, 0, 0,0x4149,0x346F, 0,
- 0,0x4728,0x5358, 0,0x4679,0x5138, 0,0x397D,
-0x4275, 0, 0, 0, 0, 0,0x532D, 0,
-0x544B,0x3D7C, 0,0x6542,0x3735,0x6543, 0, 0,
-0x3B39,0x5562, 0,0x3D78,0x5436,0x4E25,0x412C,0x3359,
- 0, 0,0x4C76, 0,0x6546,0x6544,0x6548, 0,
-0x654A,0x6547,0x354F,0x4648, 0,0x357C,0x6545, 0,
-0x4A76, 0, 0,0x6549, 0, 0, 0,0x4354,
-0x3145,0x3C23, 0, 0, 0,0x5737, 0, 0,
-0x4D4B,0x4B4D,0x4A4A,0x4C53,0x654C,0x654B,0x4466, 0,
- 0,0x5121,0x5137,0x654D, 0,0x6550, 0,0x4D38,
-0x5670,0x654F,0x355D, 0,0x4D3E, 0,0x6551,0x363A,
- 0, 0,0x4D28,0x3964, 0,0x4A45,0x3351,0x4B59,
-0x546C,0x6552,0x376A, 0, 0, 0,0x654E, 0,
- 0, 0, 0, 0, 0,0x6555,0x347E,0x6556,
- 0, 0, 0, 0, 0,0x6553,0x6554, 0,
-0x525D, 0, 0,0x425F,0x3146, 0,0x5362, 0,
- 0,0x365D,0x4B6C, 0,0x6557, 0, 0,0x5376,
- 0, 0, 0, 0, 0,0x3169, 0,0x3674,
-0x655A,0x6558,0x6559,0x3540, 0, 0, 0,0x5245,
-0x655C, 0, 0,0x655E, 0, 0, 0, 0,
- 0, 0,0x655D,0x4732, 0,0x5223, 0, 0,
-0x655B, 0, 0, 0, 0,0x5462,0x555A, 0,
- 0, 0, 0, 0,0x6560,0x5771, 0, 0,
- 0, 0, 0, 0, 0,0x6561, 0,0x315C,
-0x517B, 0,0x6562,0x6564, 0, 0, 0, 0,
-0x6563, 0, 0,0x6565, 0, 0, 0, 0,
- 0,0x5258, 0,0x354B, 0,0x675F, 0,0x5A75,
- 0,0x5A78, 0,0x5A76, 0,0x5A77, 0, 0,
- 0,0x5A7A,0x504F,0x4447, 0, 0,0x306E, 0,
- 0, 0,0x5030, 0,0x5A79, 0,0x534A,0x3A2A,
-0x5B22,0x4771, 0,0x5A7C,0x5A7B,0x495B,0x5A7D, 0,
-0x5B21,0x575E,0x5A7E,0x415A, 0, 0,0x5B25, 0,
- 0,0x5374, 0, 0,0x5B27,0x5B24, 0,0x5B28,
- 0, 0,0x3D3C, 0, 0, 0,0x4049,0x5B23,
-0x5B26,0x5623, 0,0x5B29, 0, 0, 0,0x5B2D,
- 0, 0, 0,0x5B2E,0x5B2C,0x3A42, 0, 0,
- 0,0x3F24,0x5B2B, 0, 0, 0,0x5B2A,0x5447,
-0x323F, 0, 0,0x5B2F, 0,0x3979, 0,0x5B30,
- 0, 0, 0, 0,0x333B, 0, 0, 0,
-0x3526, 0, 0, 0, 0,0x363C,0x5B31, 0,
- 0, 0,0x3675, 0,0x5B32, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3149, 0, 0, 0, 0,0x5B34, 0,
- 0, 0,0x5B33,0x5B35, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5B37,
- 0,0x5B36, 0, 0, 0, 0, 0, 0,
- 0,0x5B38, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x5B39, 0, 0,0x5B3A, 0,
- 0,0x534F,0x747A,0x4775,0x5743,0x4564,0x747C,0x747D,
-0x747B, 0,0x3E46, 0, 0, 0, 0,0x506F,
- 0, 0,0x3753, 0, 0,0x544D,0x4C2A, 0,
- 0,0x7522,0x7521,0x3A28,0x747E,0x4B56, 0, 0,
- 0,0x7524,0x4052, 0,0x336A, 0,0x4D2A,0x7525,
-0x7523,0x3D34,0x7528, 0,0x7529,0x3D4D,0x4338,0x3F61,
-0x4B61,0x752A, 0, 0, 0,0x7526,0x7527,0x4470,
- 0, 0, 0, 0, 0,0x752C, 0,0x343C,
- 0,0x576D, 0,0x3457,0x752B,0x752E, 0, 0,
-0x752D,0x752F,0x5051, 0, 0, 0, 0, 0,
- 0, 0,0x4351,0x4829, 0, 0, 0, 0,
- 0, 0,0x7530,0x7531, 0, 0, 0, 0,
- 0, 0,0x7532, 0, 0,0x7533,0x7534,0x7535,
- 0, 0, 0, 0,0x7537,0x7536, 0, 0,
- 0, 0,0x7538, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3249,
- 0,0x5354,0x4A4D, 0,0x406F,0x5658,0x5230,0x413F,
- 0,0x3D70, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x382A, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x3C78, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7646, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7647, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7648, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7649, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x764A, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x764C,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x764B, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7769, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x764D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x764E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x6E44,0x6E45,0x6E46,
-0x556B,0x3624,0x6E48,0x6E47,0x6E49,0x6E4A,0x4725,0x6E4B,
-0x6E4C, 0,0x3730,0x3576,0x6E4D,0x6E4F, 0,0x6E4E,
- 0,0x3846,0x6E50,0x6E51,0x6E52,0x365B,0x332E,0x5653,
-0x4446,0x3135,0x3856,0x6E53,0x6E54,0x543F,0x4755,0x3E7B,
-0x4E59,0x3933,0x6E56,0x6E55,0x6E58,0x6E57,0x4525,0x6E59,
-0x6E5A,0x472E,0x6E5B,0x472F,0x6E5C,0x3227,0x6E5D,0x6E5E,
-0x6E5F,0x6E60,0x6E61,0x576A,0x6E62,0x6E63,0x3C58,0x6E64,
-0x534B,0x4C7A,0x322C,0x4165,0x6E65,0x4726,0x432D, 0,
-0x6E66,0x6E67,0x6E68,0x6E69,0x6E6A,0x6E6B,0x6E6C, 0,
-0x6E6D,0x6E6E,0x6E6F, 0, 0,0x6E70,0x6E71,0x6E72,
-0x6E74,0x6E73, 0,0x6E75,0x4D2D,0x4241,0x6E76,0x6E77,
-0x6E78,0x5521,0x6E79,0x4F33,0x6E7A,0x6E7B, 0,0x6E7C,
-0x6E7D,0x6F21,0x6E7E,0x6F22,0x3875,0x437A,0x6F23,0x6F24,
-0x3D42,0x523F,0x3279,0x6F25,0x6F26,0x6F27,0x5278,0x6F28,
-0x567D,0x6F29,0x464C, 0,0x6F2A,0x6F2B,0x4134,0x6F2C,
-0x4F7A,0x4B78,0x6F2E,0x6F2D,0x337A,0x3978,0x6F2F,0x6F30,
-0x5062,0x6F31,0x6F32,0x3766,0x503F,0x6F33,0x6F34,0x6F35,
-0x4871,0x4C60,0x6F36,0x6F37,0x6F38,0x6F39,0x6F3A,0x5560,
-0x6F3B,0x346D,0x432A,0x6F3C, 0,0x6F3D,0x6F3E,0x6F3F,
- 0,0x4E7D,0x6F40,0x4260,0x3438,0x5736,0x3D75, 0,
-0x4F47,0x6F43,0x6F41,0x6F42,0x6F44,0x3627,0x3C7C,0x3E62,
-0x434C,0x6F45,0x6F46, 0,0x6F47,0x6F4F,0x6F48,0x6F49,
-0x6F4A,0x4742,0x6F71,0x364D,0x6F4B, 0,0x6F4C,0x6F4D,
-0x3646,0x433E,0x6F4E, 0,0x6F50,0x6F51,0x6F52,0x5572,
- 0,0x6F53,0x4477, 0,0x6F54,0x4478,0x6F55,0x6F56,
-0x3864,0x3077,0x6F57,0x6F58,0x6F59, 0,0x6F5A,0x6F5B,
-0x6F5C,0x6F5D, 0,0x6F5E,0x3E35,0x6F61,0x6F5F,0x6F60,
- 0,0x6F62,0x6F63,0x414D,0x6F64,0x6F65,0x6F66,0x6F67,
-0x6F68,0x6F69,0x6F6A,0x6F6B,0x6F6C,0x4058, 0,0x6F6D,
-0x412D,0x6F6E,0x6F6F,0x6F70, 0, 0,0x4F62, 0,
- 0, 0, 0, 0, 0, 0, 0,0x3324,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4345,0x6345,0x4941,0x6346, 0,0x3155,0x4E4A,0x3433,
-0x4872,0x6347,0x4F50,0x6348,0x3C64,0x6349,0x634A,0x4346,
-0x5522,0x4456,0x396B,0x4E45,0x634B,0x4376,0x634C, 0,
-0x3727,0x3873,0x3A52,0x634D,0x634E,0x5444,0x634F, 0,
-0x6350,0x514B,0x6351,0x6352,0x6353,0x6354,0x5156,0x6355,
-0x327B,0x403B,0x6356, 0,0x402B,0x6357,0x6358,0x6359,
- 0,0x635A,0x635B, 0,0x3837,0x5A62, 0,0x3653,
- 0,0x5A64,0x5A63, 0, 0, 0, 0, 0,
- 0, 0,0x5A66, 0, 0, 0,0x486E, 0,
- 0,0x5A65,0x3740,0x5174,0x5275,0x5573,0x3D57, 0,
- 0, 0, 0,0x5768,0x5A68,0x5A67, 0,0x3022,
-0x4D53, 0,0x5A69, 0,0x383D,0x3C4A,0x423D,0x4224,
-0x3342,0x5A6A, 0,0x422A,0x4430,0x3D35, 0, 0,
-0x4F5E, 0, 0, 0,0x5A6B,0x4942, 0, 0,
- 0, 0, 0,0x315D, 0, 0, 0,0x5A6C,
- 0,0x3638,0x543A, 0,0x337D, 0, 0,0x5A6D,
-0x5449,0x4F55,0x4563, 0,0x5A6E, 0, 0, 0,
- 0, 0,0x5A6F, 0,0x5A70,0x416A,0x4C55,0x4F5D,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5367,0x4221, 0,
-0x5A71, 0, 0,0x4B65, 0,0x5A72, 0,0x4B66,
-0x527E, 0, 0, 0,0x3874, 0, 0,0x5A73,
-0x302F,0x4F36, 0, 0,0x554F, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x4B6D,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5A74, 0, 0,0x6344, 0, 0,0x4125, 0,
- 0,0x763F, 0, 0,0x7640,0x7641,0x4451, 0,
-0x4838,0x5163, 0, 0,0x505B,0x5145,0x3C2F,0x394D,
- 0,0x6F74, 0, 0,0x3446,0x533A,0x7642,0x337B,
- 0, 0,0x7643, 0, 0,0x3571, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7645, 0, 0, 0, 0, 0, 0, 0,
-0x536A,0x7627,0x5129, 0, 0, 0, 0,0x7629,
- 0, 0, 0,0x7628, 0, 0,0x4163,0x4057,
- 0,0x3122, 0, 0, 0, 0,0x4E6D, 0,
-0x5068,0x762B, 0, 0,0x4F76, 0,0x762A,0x5570,
-0x762C,0x4339, 0, 0, 0,0x3B74,0x762E,0x762D,
- 0, 0, 0,0x445E, 0, 0,0x4158, 0,
- 0, 0, 0, 0,0x4B2A, 0,0x4F3C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x762F, 0, 0,0x7630, 0, 0,
-0x7631, 0,0x4236, 0, 0, 0, 0, 0,
-0x3054,0x4579, 0, 0, 0, 0,0x7632, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x4760,0x7626, 0, 0,0x3E38, 0,
- 0,0x3E32, 0,0x3565, 0, 0,0x3747, 0,
-0x3F3F,0x4352,0x4366, 0, 0,0x584C, 0, 0,
- 0,0x386F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x3D79,0x5125, 0,0x3050, 0,
- 0, 0, 0, 0,0x7730, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7731, 0, 0,
- 0, 0, 0,0x502C, 0,0x3030, 0, 0,
- 0,0x7732,0x7733, 0,0x7734, 0, 0, 0,
-0x474A, 0, 0, 0, 0, 0, 0, 0,
-0x3E4F, 0, 0,0x7737, 0, 0, 0, 0,
- 0, 0, 0,0x7736, 0,0x315E, 0,0x7735,
- 0, 0,0x7738, 0,0x7739, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x4E24,0x484D,
- 0,0x3A2B,0x6838,0x6839,0x683A,0x3E42, 0, 0,
- 0, 0, 0,0x5274, 0,0x544F,0x4958, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x5233,0x3625,0x476A,
-0x717C,0x4F6E,0x4B33,0x506B,0x676F,0x4D67,0x394B,0x3659,
-0x717D,0x3064,0x4B4C,0x717E,0x5424,0x422D,0x416C,0x4644,
-0x3E31,0x7221,0x3C55, 0,0x7222,0x7223, 0,0x7224,
-0x5243,0x4635, 0,0x4D47,0x7225, 0,0x5331,0x3F45,
-0x4C62, 0,0x7226,0x7227,0x5155,0x366E,0x7228,0x7229,
-0x355F,0x722A,0x722B, 0,0x327C,0x722C,0x722D,0x4827,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3767, 0,
- 0,0x6C29,0x6C2A,0x6C2B, 0,0x6C2C, 0, 0,
-0x462E,0x6C2D,0x6C2E, 0, 0, 0,0x3749,0x4A33,
- 0, 0, 0, 0, 0, 0, 0,0x6238,
-0x774F, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7750, 0, 0,
-0x324D, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x7751, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x7753,0x7752, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0x623B, 0,0x3C22, 0,0x623C,
-0x623D,0x623E,0x623F,0x6240,0x6241,0x3739,0x527B,0x3D24,
-0x4A4E,0x3125,0x4B47, 0,0x6242,0x367C,0x4844,0x6243,
- 0, 0,0x3D48, 0,0x317D,0x6244, 0,0x3676,
-0x6245,0x4459, 0, 0,0x6246,0x4F5A,0x395D,0x6247,
-0x4021, 0,0x6248,0x3276, 0,0x6249, 0,0x4173,
-0x624A,0x624B,0x4278,0x624C,0x624D,0x624E,0x4A57,0x5838,
-0x5965,0x4F63, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7025, 0, 0,
-0x5C30, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x426D,0x5426,0x4D54,0x5131,
-0x335B,0x477D, 0,0x3235,0x423F,0x6660,0x4A3B,0x6661,
-0x6662,0x3E54,0x6663,0x5724,0x4D55,0x6665,0x3C5D,0x6664,
-0x6666,0x6667,0x426E, 0,0x3D3E,0x6668,0x4266,0x3A27,
-0x6669, 0,0x666A,0x3352,0x5169, 0, 0,0x3F25,
-0x666B,0x466F,0x666C,0x666D, 0, 0,0x666E,0x462D,
-0x666F, 0,0x4927,0x6670,0x6671,0x6672,0x6539,0x6673,
-0x6674,0x4262,0x6675,0x6676,0x5668,0x6677, 0,0x6678,
-0x3947, 0, 0, 0, 0, 0, 0, 0,
-0x773B,0x773A, 0, 0, 0, 0,0x773E,0x773C,
-0x3A21, 0,0x773F, 0,0x7740, 0, 0, 0,
-0x7742,0x7741,0x7744, 0, 0,0x7743, 0, 0,
- 0, 0, 0,0x7745,0x7746, 0, 0, 0,
- 0,0x7747, 0,0x4B68, 0, 0, 0, 0,
-0x385F, 0, 0, 0, 0, 0, 0,0x7754,
- 0,0x7755, 0, 0, 0, 0,0x7756, 0,
- 0, 0, 0,0x7758, 0,0x775A, 0,0x7757,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x775B, 0,0x7759, 0, 0, 0, 0,
- 0, 0, 0,0x5757, 0, 0, 0, 0,
-0x775C, 0, 0, 0, 0, 0, 0,0x775D,
- 0, 0, 0,0x775E, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x775F,
- 0, 0, 0,0x7760, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x5B4B,
- 0, 0,0x582A, 0, 0, 0, 0, 0,
- 0, 0, 0,0x6577,0x396D, 0, 0, 0,
- 0,0x3F7D,0x3B6A,0x7749,0x4647,0x7748, 0,0x774A,
-0x774C,0x774B, 0, 0, 0,0x774D, 0,0x4E3A,
- 0,0x774E, 0, 0,0x4427};
-
-/* page 7 0x9C7C-0x9CE2 */
-static uint16 tab_uni_gb23127[]={
-0x5363, 0, 0,0x764F, 0,0x4233,0x7650, 0,
- 0,0x7651,0x7652,0x7653,0x7654, 0, 0,0x7656,
- 0,0x312B,0x7657, 0,0x7658,0x7659,0x765A, 0,
-0x765B,0x765C, 0, 0, 0, 0,0x765D,0x765E,
-0x4F4A, 0,0x765F,0x7660,0x7661,0x7662,0x7663,0x7664,
-0x4070,0x7665,0x7666,0x7667,0x7668,0x7669, 0,0x766A,
- 0,0x766B,0x766C, 0,0x766D,0x766E,0x766F,0x7670,
-0x7671,0x7672,0x7673,0x7674,0x3E28, 0,0x7675,0x7676,
-0x7677,0x7678, 0, 0, 0, 0, 0,0x487A,
-0x7679,0x767A,0x767B,0x767C, 0, 0,0x767D,0x767E,
-0x7721,0x7722,0x7723,0x7724,0x7725, 0, 0,0x7726,
-0x7727,0x7728,0x316E,0x7729,0x772A,0x772B, 0, 0,
-0x772C,0x772D,0x415B,0x772E, 0, 0,0x772F};
-
-/* page 8 0x9E1F-0x9FA0 */
-static uint16 tab_uni_gb23128[]={
-0x4471,0x702F,0x3C26,0x7030,0x4379, 0,0x4538,0x513B,
- 0,0x7031,0x7032,0x7033,0x7034,0x7035,0x513C, 0,
-0x516C, 0,0x7037,0x7036,0x5427, 0,0x4D52,0x7038,
-0x703A,0x7039,0x703B,0x703C, 0, 0,0x386B,0x703D,
-0x3A68, 0,0x703E,0x703F,0x3E69,0x7040,0x366C,0x7041,
-0x7042,0x7043,0x7044,0x4835,0x7045,0x7046, 0,0x7047,
-0x4574, 0,0x7048, 0, 0, 0,0x7049, 0,
-0x704A,0x773D, 0,0x704B,0x704C,0x704D, 0,0x704E,
- 0, 0, 0, 0,0x704F,0x3A57, 0,0x7050,
-0x7051,0x7052,0x7053,0x7054,0x7055,0x7056,0x7058, 0,
- 0,0x5325,0x7057, 0,0x7059, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x753A,
-0x4239, 0, 0,0x7764, 0, 0, 0, 0,
-0x7765,0x7766, 0, 0,0x7767, 0, 0, 0,
- 0, 0, 0,0x7768,0x4234, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x776A, 0,
-0x776B, 0, 0, 0, 0, 0, 0,0x4273,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7470, 0, 0,
- 0,0x746F, 0, 0,0x4269, 0,0x7761,0x7762,
- 0, 0, 0, 0, 0,0x3B46, 0, 0,
- 0, 0,0x5964, 0, 0, 0,0x4A72,0x4068,
-0x7024, 0,0x3A5A, 0, 0,0x472D, 0, 0,
- 0,0x442C, 0, 0,0x776C,0x776D,0x776E, 0,
-0x7770,0x776F, 0,0x7771, 0, 0,0x7774, 0,
-0x7773, 0,0x7772,0x7775, 0, 0, 0, 0,
-0x7776, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x6D69, 0,0x6D6A,0x6D6B, 0,0x763C,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x763D, 0,0x763E,0x3626,
- 0,0x583E, 0, 0,0x3944, 0, 0, 0,
-0x583B, 0,0x5C31, 0, 0, 0, 0, 0,
- 0,0x4A73, 0,0x7777, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0x7778, 0, 0,
-0x7779, 0, 0, 0, 0, 0, 0, 0,
-0x777B, 0,0x777A, 0,0x3147, 0,0x777C,0x777D,
- 0, 0, 0, 0, 0,0x777E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x466B,0x6C34, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x335D,0x7633, 0, 0,0x7634,0x4164,0x7635,0x7636,
-0x7637,0x7638,0x7639,0x763A,0x4823,0x763B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0x417A,0x3928,0x6D68, 0, 0, 0,
-0x396A,0x595F};
-
-/* page 9 0xFF01-0xFFE5 */
-static uint16 tab_uni_gb23129[]={
-0x2321,0x2322,0x2323,0x2167,0x2325,0x2326,0x2327,0x2328,
-0x2329,0x232A,0x232B,0x232C,0x232D,0x232E,0x232F,0x2330,
-0x2331,0x2332,0x2333,0x2334,0x2335,0x2336,0x2337,0x2338,
-0x2339,0x233A,0x233B,0x233C,0x233D,0x233E,0x233F,0x2340,
-0x2341,0x2342,0x2343,0x2344,0x2345,0x2346,0x2347,0x2348,
-0x2349,0x234A,0x234B,0x234C,0x234D,0x234E,0x234F,0x2350,
-0x2351,0x2352,0x2353,0x2354,0x2355,0x2356,0x2357,0x2358,
-0x2359,0x235A,0x235B,0x235C,0x235D,0x235E,0x235F,0x2360,
-0x2361,0x2362,0x2363,0x2364,0x2365,0x2366,0x2367,0x2368,
-0x2369,0x236A,0x236B,0x236C,0x236D,0x236E,0x236F,0x2370,
-0x2371,0x2372,0x2373,0x2374,0x2375,0x2376,0x2377,0x2378,
-0x2379,0x237A,0x237B,0x237C,0x237D,0x212B, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0x2169,
-0x216A, 0,0x237E, 0,0x2324};
-
-static int func_uni_gb2312_onechar(int code){
- if ((code>=0x00A4)&&(code<=0x01DC))
- return(tab_uni_gb23120[code-0x00A4]);
- if ((code>=0x02C7)&&(code<=0x0451))
- return(tab_uni_gb23121[code-0x02C7]);
- if ((code>=0x2015)&&(code<=0x2312))
- return(tab_uni_gb23122[code-0x2015]);
- if ((code>=0x2460)&&(code<=0x2642))
- return(tab_uni_gb23123[code-0x2460]);
- if ((code>=0x3000)&&(code<=0x3129))
- return(tab_uni_gb23124[code-0x3000]);
- if ((code>=0x3220)&&(code<=0x3229))
- return(tab_uni_gb23125[code-0x3220]);
- if ((code>=0x4E00)&&(code<=0x9B54))
- return(tab_uni_gb23126[code-0x4E00]);
- if ((code>=0x9C7C)&&(code<=0x9CE2))
- return(tab_uni_gb23127[code-0x9C7C]);
- if ((code>=0x9E1F)&&(code<=0x9FA0))
- return(tab_uni_gb23128[code-0x9E1F]);
- if ((code>=0xFF01)&&(code<=0xFFE5))
- return(tab_uni_gb23129[code-0xFF01]);
- return(0);
-}
-
-
-static int
-my_wc_mb_gb2312(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- int code;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((uint) wc < 0x80)
- {
- s[0]= (uchar) wc;
- return 1;
- }
-
- if (!(code=func_uni_gb2312_onechar(wc)))
- return MY_CS_ILUNI;
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- code|=0x8080;
- s[0]=code>>8;
- s[1]=code&0xFF;
- return 2;
-}
-
-
-static int
-my_mb_wc_gb2312(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e){
- int hi;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((hi= s[0]) < 0x80)
- {
- pwc[0]=hi;
- return 1;
- }
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- if (!(pwc[0]=func_gb2312_uni_onechar(((hi<<8)+s[1])&0x7F7F)))
- return -2;
-
- return 2;
-}
-
-
-/*
- Returns well formed length of a EUC-KR string.
-*/
-static size_t
-my_well_formed_len_gb2312(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
-
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (b < emb && isgb2312head(*b) && isgb2312tail(b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_simple, /* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
- my_strnxfrmlen_simple,
- my_like_range_mb, /* like_range */
- my_wildcmp_mb, /* wildcmp */
- my_strcasecmp_mb, /* instr */
- my_instr_mb,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- ismbchar_gb2312,
- mbcharlen_gb2312,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_gb2312,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_gb2312, /* mb_wc */
- my_wc_mb_gb2312, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb,
- my_casedn_str_mb,
- my_caseup_mb,
- my_casedn_mb,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_gb2312_chinese_ci=
-{
- 24,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY, /* state */
- "gb2312", /* cs name */
- "gb2312_chinese_ci",/* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_gb2312,
- to_lower_gb2312,
- to_upper_gb2312,
- sort_order_gb2312,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_gb2312, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xF7FE, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_ci_handler
-};
-
-CHARSET_INFO my_charset_gb2312_bin=
-{
- 86,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "gb2312", /* cs name */
- "gb2312_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_gb2312,
- to_lower_gb2312,
- to_upper_gb2312,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_gb2312, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xF7FE, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_mb_bin_handler
-};
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-gbk.c b/dep/mysqllite/strings/ctype-gbk.c
deleted file mode 100644
index 547c8821229..00000000000
--- a/dep/mysqllite/strings/ctype-gbk.c
+++ /dev/null
@@ -1,10869 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* This file is for Chinese character sets GBK, created by Wei He
- (hewei@mail.ied.ac.cn)
-*/
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_gbk=1
- * .configure. mbmaxlen_gbk=2
- */
-
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_CHARSET_gbk
-
-
-/* Support for Chinese(GBK) characters, by hewei@mail.ied.ac.cn */
-
-#define isgbkhead(c) (0x81<=(uchar)(c) && (uchar)(c)<=0xfe)
-#define isgbktail(c) ((0x40<=(uchar)(c) && (uchar)(c)<=0x7e) || \
- (0x80<=(uchar)(c) && (uchar)(c)<=0xfe))
-
-#define isgbkcode(c,d) (isgbkhead(c) && isgbktail(d))
-#define gbkcode(c,d) ((((uint) (uchar) (c)) <<8) | (uchar)(d))
-#define gbkhead(e) ((uchar)(e>>8))
-#define gbktail(e) ((uchar)(e&0xff))
-
-static uchar ctype_gbk[257] =
-{
- 0, /* For standard library */
- 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32,
- 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
- 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16,
- 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,
- 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
- 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,
-};
-
-static uchar to_lower_gbk[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar to_upper_gbk[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-
-static MY_UNICASE_INFO cA2[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA240,0xA240,0x003F}, /* A240 */
- {0xA241,0xA241,0x003F},
- {0xA242,0xA242,0x003F},
- {0xA243,0xA243,0x003F},
- {0xA244,0xA244,0x003F},
- {0xA245,0xA245,0x003F},
- {0xA246,0xA246,0x003F},
- {0xA247,0xA247,0x003F},
- {0xA248,0xA248,0x003F},
- {0xA249,0xA249,0x003F},
- {0xA24A,0xA24A,0x003F},
- {0xA24B,0xA24B,0x003F},
- {0xA24C,0xA24C,0x003F},
- {0xA24D,0xA24D,0x003F},
- {0xA24E,0xA24E,0x003F},
- {0xA24F,0xA24F,0x003F},
- {0xA250,0xA250,0x003F}, /* A250 */
- {0xA251,0xA251,0x003F},
- {0xA252,0xA252,0x003F},
- {0xA253,0xA253,0x003F},
- {0xA254,0xA254,0x003F},
- {0xA255,0xA255,0x003F},
- {0xA256,0xA256,0x003F},
- {0xA257,0xA257,0x003F},
- {0xA258,0xA258,0x003F},
- {0xA259,0xA259,0x003F},
- {0xA25A,0xA25A,0x003F},
- {0xA25B,0xA25B,0x003F},
- {0xA25C,0xA25C,0x003F},
- {0xA25D,0xA25D,0x003F},
- {0xA25E,0xA25E,0x003F},
- {0xA25F,0xA25F,0x003F},
- {0xA260,0xA260,0x003F}, /* A260 */
- {0xA261,0xA261,0x003F},
- {0xA262,0xA262,0x003F},
- {0xA263,0xA263,0x003F},
- {0xA264,0xA264,0x003F},
- {0xA265,0xA265,0x003F},
- {0xA266,0xA266,0x003F},
- {0xA267,0xA267,0x003F},
- {0xA268,0xA268,0x003F},
- {0xA269,0xA269,0x003F},
- {0xA26A,0xA26A,0x003F},
- {0xA26B,0xA26B,0x003F},
- {0xA26C,0xA26C,0x003F},
- {0xA26D,0xA26D,0x003F},
- {0xA26E,0xA26E,0x003F},
- {0xA26F,0xA26F,0x003F},
- {0xA270,0xA270,0x003F}, /* A270 */
- {0xA271,0xA271,0x003F},
- {0xA272,0xA272,0x003F},
- {0xA273,0xA273,0x003F},
- {0xA274,0xA274,0x003F},
- {0xA275,0xA275,0x003F},
- {0xA276,0xA276,0x003F},
- {0xA277,0xA277,0x003F},
- {0xA278,0xA278,0x003F},
- {0xA279,0xA279,0x003F},
- {0xA27A,0xA27A,0x003F},
- {0xA27B,0xA27B,0x003F},
- {0xA27C,0xA27C,0x003F},
- {0xA27D,0xA27D,0x003F},
- {0xA27E,0xA27E,0x003F},
- {0xA27F,0xA27F,0xA27F},
- {0xA280,0xA280,0x003F}, /* A280 */
- {0xA281,0xA281,0x003F},
- {0xA282,0xA282,0x003F},
- {0xA283,0xA283,0x003F},
- {0xA284,0xA284,0x003F},
- {0xA285,0xA285,0x003F},
- {0xA286,0xA286,0x003F},
- {0xA287,0xA287,0x003F},
- {0xA288,0xA288,0x003F},
- {0xA289,0xA289,0x003F},
- {0xA28A,0xA28A,0x003F},
- {0xA28B,0xA28B,0x003F},
- {0xA28C,0xA28C,0x003F},
- {0xA28D,0xA28D,0x003F},
- {0xA28E,0xA28E,0x003F},
- {0xA28F,0xA28F,0x003F},
- {0xA290,0xA290,0x003F}, /* A290 */
- {0xA291,0xA291,0x003F},
- {0xA292,0xA292,0x003F},
- {0xA293,0xA293,0x003F},
- {0xA294,0xA294,0x003F},
- {0xA295,0xA295,0x003F},
- {0xA296,0xA296,0x003F},
- {0xA297,0xA297,0x003F},
- {0xA298,0xA298,0x003F},
- {0xA299,0xA299,0x003F},
- {0xA29A,0xA29A,0x003F},
- {0xA29B,0xA29B,0x003F},
- {0xA29C,0xA29C,0x003F},
- {0xA29D,0xA29D,0x003F},
- {0xA29E,0xA29E,0x003F},
- {0xA29F,0xA29F,0x003F},
- {0xA2A0,0xA2A0,0x003F}, /* A2A0 */
- {0xA2F1,0xA2A1,0x2170},
- {0xA2F2,0xA2A2,0x2171},
- {0xA2F3,0xA2A3,0x2172},
- {0xA2F4,0xA2A4,0x2173},
- {0xA2F5,0xA2A5,0x2174},
- {0xA2F6,0xA2A6,0x2175},
- {0xA2F7,0xA2A7,0x2176},
- {0xA2F8,0xA2A8,0x2177},
- {0xA2F9,0xA2A9,0x2178},
- {0xA2FA,0xA2AA,0x2179},
- {0xA2AB,0xA2AB,0x003F},
- {0xA2AC,0xA2AC,0x003F},
- {0xA2AD,0xA2AD,0x003F},
- {0xA2AE,0xA2AE,0x003F},
- {0xA2AF,0xA2AF,0x003F},
- {0xA2B0,0xA2B0,0x003F}, /* A2B0 */
- {0xA2B1,0xA2B1,0x2488},
- {0xA2B2,0xA2B2,0x2489},
- {0xA2B3,0xA2B3,0x248A},
- {0xA2B4,0xA2B4,0x248B},
- {0xA2B5,0xA2B5,0x248C},
- {0xA2B6,0xA2B6,0x248D},
- {0xA2B7,0xA2B7,0x248E},
- {0xA2B8,0xA2B8,0x248F},
- {0xA2B9,0xA2B9,0x2490},
- {0xA2BA,0xA2BA,0x2491},
- {0xA2BB,0xA2BB,0x2492},
- {0xA2BC,0xA2BC,0x2493},
- {0xA2BD,0xA2BD,0x2494},
- {0xA2BE,0xA2BE,0x2495},
- {0xA2BF,0xA2BF,0x2496},
- {0xA2C0,0xA2C0,0x2497}, /* A2C0 */
- {0xA2C1,0xA2C1,0x2498},
- {0xA2C2,0xA2C2,0x2499},
- {0xA2C3,0xA2C3,0x249A},
- {0xA2C4,0xA2C4,0x249B},
- {0xA2C5,0xA2C5,0x2474},
- {0xA2C6,0xA2C6,0x2475},
- {0xA2C7,0xA2C7,0x2476},
- {0xA2C8,0xA2C8,0x2477},
- {0xA2C9,0xA2C9,0x2478},
- {0xA2CA,0xA2CA,0x2479},
- {0xA2CB,0xA2CB,0x247A},
- {0xA2CC,0xA2CC,0x247B},
- {0xA2CD,0xA2CD,0x247C},
- {0xA2CE,0xA2CE,0x247D},
- {0xA2CF,0xA2CF,0x247E},
- {0xA2D0,0xA2D0,0x247F}, /* A2D0 */
- {0xA2D1,0xA2D1,0x2480},
- {0xA2D2,0xA2D2,0x2481},
- {0xA2D3,0xA2D3,0x2482},
- {0xA2D4,0xA2D4,0x2483},
- {0xA2D5,0xA2D5,0x2484},
- {0xA2D6,0xA2D6,0x2485},
- {0xA2D7,0xA2D7,0x2486},
- {0xA2D8,0xA2D8,0x2487},
- {0xA2D9,0xA2D9,0x2460},
- {0xA2DA,0xA2DA,0x2461},
- {0xA2DB,0xA2DB,0x2462},
- {0xA2DC,0xA2DC,0x2463},
- {0xA2DD,0xA2DD,0x2464},
- {0xA2DE,0xA2DE,0x2465},
- {0xA2DF,0xA2DF,0x2466},
- {0xA2E0,0xA2E0,0x2467}, /* A2E0 */
- {0xA2E1,0xA2E1,0x2468},
- {0xA2E2,0xA2E2,0x2469},
- {0xA2E3,0xA2E3,0x003F},
- {0xA2E4,0xA2E4,0x003F},
- {0xA2E5,0xA2E5,0x3220},
- {0xA2E6,0xA2E6,0x3221},
- {0xA2E7,0xA2E7,0x3222},
- {0xA2E8,0xA2E8,0x3223},
- {0xA2E9,0xA2E9,0x3224},
- {0xA2EA,0xA2EA,0x3225},
- {0xA2EB,0xA2EB,0x3226},
- {0xA2EC,0xA2EC,0x3227},
- {0xA2ED,0xA2ED,0x3228},
- {0xA2EE,0xA2EE,0x3229},
- {0xA2EF,0xA2EF,0x003F},
- {0xA2F0,0xA2F0,0x003F}, /* A2F0 */
- {0xA2F1,0xA2A1,0x2160},
- {0xA2F2,0xA2A2,0x2161},
- {0xA2F3,0xA2A3,0x2162},
- {0xA2F4,0xA2A4,0x2163},
- {0xA2F5,0xA2A5,0x2164},
- {0xA2F6,0xA2A6,0x2165},
- {0xA2F7,0xA2A7,0x2166},
- {0xA2F8,0xA2A8,0x2167},
- {0xA2F9,0xA2A9,0x2168},
- {0xA2FA,0xA2AA,0x2169},
- {0xA2FB,0xA2FB,0x216A},
- {0xA2FC,0xA2FC,0x216B},
- {0xA2FD,0xA2FD,0x003F},
- {0xA2FE,0xA2FE,0x003F},
- {0xA2FF,0xA2FF,0xA2FF}
-};
-
-static MY_UNICASE_INFO cA3[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA340,0xA340,0x003F}, /* A340 */
- {0xA341,0xA341,0x003F},
- {0xA342,0xA342,0x003F},
- {0xA343,0xA343,0x003F},
- {0xA344,0xA344,0x003F},
- {0xA345,0xA345,0x003F},
- {0xA346,0xA346,0x003F},
- {0xA347,0xA347,0x003F},
- {0xA348,0xA348,0x003F},
- {0xA349,0xA349,0x003F},
- {0xA34A,0xA34A,0x003F},
- {0xA34B,0xA34B,0x003F},
- {0xA34C,0xA34C,0x003F},
- {0xA34D,0xA34D,0x003F},
- {0xA34E,0xA34E,0x003F},
- {0xA34F,0xA34F,0x003F},
- {0xA350,0xA350,0x003F}, /* A350 */
- {0xA351,0xA351,0x003F},
- {0xA352,0xA352,0x003F},
- {0xA353,0xA353,0x003F},
- {0xA354,0xA354,0x003F},
- {0xA355,0xA355,0x003F},
- {0xA356,0xA356,0x003F},
- {0xA357,0xA357,0x003F},
- {0xA358,0xA358,0x003F},
- {0xA359,0xA359,0x003F},
- {0xA35A,0xA35A,0x003F},
- {0xA35B,0xA35B,0x003F},
- {0xA35C,0xA35C,0x003F},
- {0xA35D,0xA35D,0x003F},
- {0xA35E,0xA35E,0x003F},
- {0xA35F,0xA35F,0x003F},
- {0xA360,0xA360,0x003F}, /* A360 */
- {0xA361,0xA361,0x003F},
- {0xA362,0xA362,0x003F},
- {0xA363,0xA363,0x003F},
- {0xA364,0xA364,0x003F},
- {0xA365,0xA365,0x003F},
- {0xA366,0xA366,0x003F},
- {0xA367,0xA367,0x003F},
- {0xA368,0xA368,0x003F},
- {0xA369,0xA369,0x003F},
- {0xA36A,0xA36A,0x003F},
- {0xA36B,0xA36B,0x003F},
- {0xA36C,0xA36C,0x003F},
- {0xA36D,0xA36D,0x003F},
- {0xA36E,0xA36E,0x003F},
- {0xA36F,0xA36F,0x003F},
- {0xA370,0xA370,0x003F}, /* A370 */
- {0xA371,0xA371,0x003F},
- {0xA372,0xA372,0x003F},
- {0xA373,0xA373,0x003F},
- {0xA374,0xA374,0x003F},
- {0xA375,0xA375,0x003F},
- {0xA376,0xA376,0x003F},
- {0xA377,0xA377,0x003F},
- {0xA378,0xA378,0x003F},
- {0xA379,0xA379,0x003F},
- {0xA37A,0xA37A,0x003F},
- {0xA37B,0xA37B,0x003F},
- {0xA37C,0xA37C,0x003F},
- {0xA37D,0xA37D,0x003F},
- {0xA37E,0xA37E,0x003F},
- {0xA37F,0xA37F,0xA37F},
- {0xA380,0xA380,0x003F}, /* A380 */
- {0xA381,0xA381,0x003F},
- {0xA382,0xA382,0x003F},
- {0xA383,0xA383,0x003F},
- {0xA384,0xA384,0x003F},
- {0xA385,0xA385,0x003F},
- {0xA386,0xA386,0x003F},
- {0xA387,0xA387,0x003F},
- {0xA388,0xA388,0x003F},
- {0xA389,0xA389,0x003F},
- {0xA38A,0xA38A,0x003F},
- {0xA38B,0xA38B,0x003F},
- {0xA38C,0xA38C,0x003F},
- {0xA38D,0xA38D,0x003F},
- {0xA38E,0xA38E,0x003F},
- {0xA38F,0xA38F,0x003F},
- {0xA390,0xA390,0x003F}, /* A390 */
- {0xA391,0xA391,0x003F},
- {0xA392,0xA392,0x003F},
- {0xA393,0xA393,0x003F},
- {0xA394,0xA394,0x003F},
- {0xA395,0xA395,0x003F},
- {0xA396,0xA396,0x003F},
- {0xA397,0xA397,0x003F},
- {0xA398,0xA398,0x003F},
- {0xA399,0xA399,0x003F},
- {0xA39A,0xA39A,0x003F},
- {0xA39B,0xA39B,0x003F},
- {0xA39C,0xA39C,0x003F},
- {0xA39D,0xA39D,0x003F},
- {0xA39E,0xA39E,0x003F},
- {0xA39F,0xA39F,0x003F},
- {0xA3A0,0xA3A0,0x003F}, /* A3A0 */
- {0xA3A1,0xA3A1,0xFF01},
- {0xA3A2,0xA3A2,0xFF02},
- {0xA3A3,0xA3A3,0xFF03},
- {0xA3A4,0xA3A4,0xFFE5},
- {0xA3A5,0xA3A5,0xFF05},
- {0xA3A6,0xA3A6,0xFF06},
- {0xA3A7,0xA3A7,0xFF07},
- {0xA3A8,0xA3A8,0xFF08},
- {0xA3A9,0xA3A9,0xFF09},
- {0xA3AA,0xA3AA,0xFF0A},
- {0xA3AB,0xA3AB,0xFF0B},
- {0xA3AC,0xA3AC,0xFF0C},
- {0xA3AD,0xA3AD,0xFF0D},
- {0xA3AE,0xA3AE,0xFF0E},
- {0xA3AF,0xA3AF,0xFF0F},
- {0xA3B0,0xA3B0,0xFF10}, /* A3B0 */
- {0xA3B1,0xA3B1,0xFF11},
- {0xA3B2,0xA3B2,0xFF12},
- {0xA3B3,0xA3B3,0xFF13},
- {0xA3B4,0xA3B4,0xFF14},
- {0xA3B5,0xA3B5,0xFF15},
- {0xA3B6,0xA3B6,0xFF16},
- {0xA3B7,0xA3B7,0xFF17},
- {0xA3B8,0xA3B8,0xFF18},
- {0xA3B9,0xA3B9,0xFF19},
- {0xA3BA,0xA3BA,0xFF1A},
- {0xA3BB,0xA3BB,0xFF1B},
- {0xA3BC,0xA3BC,0xFF1C},
- {0xA3BD,0xA3BD,0xFF1D},
- {0xA3BE,0xA3BE,0xFF1E},
- {0xA3BF,0xA3BF,0xFF1F},
- {0xA3C0,0xA3C0,0xFF20}, /* A3C0 */
- {0xA3C1,0xA3E1,0xFF21},
- {0xA3C2,0xA3E2,0xFF22},
- {0xA3C3,0xA3E3,0xFF23},
- {0xA3C4,0xA3E4,0xFF24},
- {0xA3C5,0xA3E5,0xFF25},
- {0xA3C6,0xA3E6,0xFF26},
- {0xA3C7,0xA3E7,0xFF27},
- {0xA3C8,0xA3E8,0xFF28},
- {0xA3C9,0xA3E9,0xFF29},
- {0xA3CA,0xA3EA,0xFF2A},
- {0xA3CB,0xA3EB,0xFF2B},
- {0xA3CC,0xA3EC,0xFF2C},
- {0xA3CD,0xA3ED,0xFF2D},
- {0xA3CE,0xA3EE,0xFF2E},
- {0xA3CF,0xA3EF,0xFF2F},
- {0xA3D0,0xA3F0,0xFF30}, /* A3D0 */
- {0xA3D1,0xA3F1,0xFF31},
- {0xA3D2,0xA3F2,0xFF32},
- {0xA3D3,0xA3F3,0xFF33},
- {0xA3D4,0xA3F4,0xFF34},
- {0xA3D5,0xA3F5,0xFF35},
- {0xA3D6,0xA3F6,0xFF36},
- {0xA3D7,0xA3F7,0xFF37},
- {0xA3D8,0xA3F8,0xFF38},
- {0xA3D9,0xA3F9,0xFF39},
- {0xA3DA,0xA3FA,0xFF3A},
- {0xA3DB,0xA3DB,0xFF3B},
- {0xA3DC,0xA3DC,0xFF3C},
- {0xA3DD,0xA3DD,0xFF3D},
- {0xA3DE,0xA3DE,0xFF3E},
- {0xA3DF,0xA3DF,0xFF3F},
- {0xA3E0,0xA3E0,0xFF40}, /* A3E0 */
- {0xA3C1,0xA3E1,0xFF41},
- {0xA3C2,0xA3E2,0xFF42},
- {0xA3C3,0xA3E3,0xFF43},
- {0xA3C4,0xA3E4,0xFF44},
- {0xA3C5,0xA3E5,0xFF45},
- {0xA3C6,0xA3E6,0xFF46},
- {0xA3C7,0xA3E7,0xFF47},
- {0xA3C8,0xA3E8,0xFF48},
- {0xA3C9,0xA3E9,0xFF49},
- {0xA3CA,0xA3EA,0xFF4A},
- {0xA3CB,0xA3EB,0xFF4B},
- {0xA3CC,0xA3EC,0xFF4C},
- {0xA3CD,0xA3ED,0xFF4D},
- {0xA3CE,0xA3EE,0xFF4E},
- {0xA3CF,0xA3EF,0xFF4F},
- {0xA3D0,0xA3F0,0xFF50}, /* A3F0 */
- {0xA3D1,0xA3F1,0xFF51},
- {0xA3D2,0xA3F2,0xFF52},
- {0xA3D3,0xA3F3,0xFF53},
- {0xA3D4,0xA3F4,0xFF54},
- {0xA3D5,0xA3F5,0xFF55},
- {0xA3D6,0xA3F6,0xFF56},
- {0xA3D7,0xA3F7,0xFF57},
- {0xA3D8,0xA3F8,0xFF58},
- {0xA3D9,0xA3F9,0xFF59},
- {0xA3DA,0xA3FA,0xFF5A},
- {0xA3FB,0xA3FB,0xFF5B},
- {0xA3FC,0xA3FC,0xFF5C},
- {0xA3FD,0xA3FD,0xFF5D},
- {0xA3FE,0xA3FE,0xFFE3},
- {0xA3FF,0xA3FF,0xA3FF}
-};
-
-
-static MY_UNICASE_INFO cA6[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA640,0xA640,0x003F}, /* A640 */
- {0xA641,0xA641,0x003F},
- {0xA642,0xA642,0x003F},
- {0xA643,0xA643,0x003F},
- {0xA644,0xA644,0x003F},
- {0xA645,0xA645,0x003F},
- {0xA646,0xA646,0x003F},
- {0xA647,0xA647,0x003F},
- {0xA648,0xA648,0x003F},
- {0xA649,0xA649,0x003F},
- {0xA64A,0xA64A,0x003F},
- {0xA64B,0xA64B,0x003F},
- {0xA64C,0xA64C,0x003F},
- {0xA64D,0xA64D,0x003F},
- {0xA64E,0xA64E,0x003F},
- {0xA64F,0xA64F,0x003F},
- {0xA650,0xA650,0x003F}, /* A650 */
- {0xA651,0xA651,0x003F},
- {0xA652,0xA652,0x003F},
- {0xA653,0xA653,0x003F},
- {0xA654,0xA654,0x003F},
- {0xA655,0xA655,0x003F},
- {0xA656,0xA656,0x003F},
- {0xA657,0xA657,0x003F},
- {0xA658,0xA658,0x003F},
- {0xA659,0xA659,0x003F},
- {0xA65A,0xA65A,0x003F},
- {0xA65B,0xA65B,0x003F},
- {0xA65C,0xA65C,0x003F},
- {0xA65D,0xA65D,0x003F},
- {0xA65E,0xA65E,0x003F},
- {0xA65F,0xA65F,0x003F},
- {0xA660,0xA660,0x003F}, /* A660 */
- {0xA661,0xA661,0x003F},
- {0xA662,0xA662,0x003F},
- {0xA663,0xA663,0x003F},
- {0xA664,0xA664,0x003F},
- {0xA665,0xA665,0x003F},
- {0xA666,0xA666,0x003F},
- {0xA667,0xA667,0x003F},
- {0xA668,0xA668,0x003F},
- {0xA669,0xA669,0x003F},
- {0xA66A,0xA66A,0x003F},
- {0xA66B,0xA66B,0x003F},
- {0xA66C,0xA66C,0x003F},
- {0xA66D,0xA66D,0x003F},
- {0xA66E,0xA66E,0x003F},
- {0xA66F,0xA66F,0x003F},
- {0xA670,0xA670,0x003F}, /* A670 */
- {0xA671,0xA671,0x003F},
- {0xA672,0xA672,0x003F},
- {0xA673,0xA673,0x003F},
- {0xA674,0xA674,0x003F},
- {0xA675,0xA675,0x003F},
- {0xA676,0xA676,0x003F},
- {0xA677,0xA677,0x003F},
- {0xA678,0xA678,0x003F},
- {0xA679,0xA679,0x003F},
- {0xA67A,0xA67A,0x003F},
- {0xA67B,0xA67B,0x003F},
- {0xA67C,0xA67C,0x003F},
- {0xA67D,0xA67D,0x003F},
- {0xA67E,0xA67E,0x003F},
- {0xA67F,0xA67F,0xA67F},
- {0xA680,0xA680,0x003F}, /* A680 */
- {0xA681,0xA681,0x003F},
- {0xA682,0xA682,0x003F},
- {0xA683,0xA683,0x003F},
- {0xA684,0xA684,0x003F},
- {0xA685,0xA685,0x003F},
- {0xA686,0xA686,0x003F},
- {0xA687,0xA687,0x003F},
- {0xA688,0xA688,0x003F},
- {0xA689,0xA689,0x003F},
- {0xA68A,0xA68A,0x003F},
- {0xA68B,0xA68B,0x003F},
- {0xA68C,0xA68C,0x003F},
- {0xA68D,0xA68D,0x003F},
- {0xA68E,0xA68E,0x003F},
- {0xA68F,0xA68F,0x003F},
- {0xA690,0xA690,0x003F}, /* A690 */
- {0xA691,0xA691,0x003F},
- {0xA692,0xA692,0x003F},
- {0xA693,0xA693,0x003F},
- {0xA694,0xA694,0x003F},
- {0xA695,0xA695,0x003F},
- {0xA696,0xA696,0x003F},
- {0xA697,0xA697,0x003F},
- {0xA698,0xA698,0x003F},
- {0xA699,0xA699,0x003F},
- {0xA69A,0xA69A,0x003F},
- {0xA69B,0xA69B,0x003F},
- {0xA69C,0xA69C,0x003F},
- {0xA69D,0xA69D,0x003F},
- {0xA69E,0xA69E,0x003F},
- {0xA69F,0xA69F,0x003F},
- {0xA6A0,0xA6A0,0x003F}, /* A6A0 */
- {0xA6A1,0xA6C1,0x0391},
- {0xA6A2,0xA6C2,0x0392},
- {0xA6A3,0xA6C3,0x0393},
- {0xA6A4,0xA6C4,0x0394},
- {0xA6A5,0xA6C5,0x0395},
- {0xA6A6,0xA6C6,0x0396},
- {0xA6A7,0xA6C7,0x0397},
- {0xA6A8,0xA6C8,0x0398},
- {0xA6A9,0xA6C9,0x0399},
- {0xA6AA,0xA6CA,0x039A},
- {0xA6AB,0xA6CB,0x039B},
- {0xA6AC,0xA6CC,0x039C},
- {0xA6AD,0xA6CD,0x039D},
- {0xA6AE,0xA6CE,0x039E},
- {0xA6AF,0xA6CF,0x039F},
- {0xA6B0,0xA6D0,0x03A0}, /* A6B0 */
- {0xA6B1,0xA6D1,0x03A1},
- {0xA6B2,0xA6D2,0x03A3},
- {0xA6B3,0xA6D3,0x03A4},
- {0xA6B4,0xA6D4,0x03A5},
- {0xA6B5,0xA6D5,0x03A6},
- {0xA6B6,0xA6D6,0x03A7},
- {0xA6B7,0xA6D7,0x03A8},
- {0xA6B8,0xA6D8,0x03A9},
- {0xA6B9,0xA6B9,0x003F},
- {0xA6BA,0xA6BA,0x003F},
- {0xA6BB,0xA6BB,0x003F},
- {0xA6BC,0xA6BC,0x003F},
- {0xA6BD,0xA6BD,0x003F},
- {0xA6BE,0xA6BE,0x003F},
- {0xA6BF,0xA6BF,0x003F},
- {0xA6C0,0xA6C0,0x003F}, /* A6C0 */
- {0xA6A1,0xA6C1,0x03B1},
- {0xA6A2,0xA6C2,0x03B2},
- {0xA6A3,0xA6C3,0x03B3},
- {0xA6A4,0xA6C4,0x03B4},
- {0xA6A5,0xA6C5,0x03B5},
- {0xA6A6,0xA6C6,0x03B6},
- {0xA6A7,0xA6C7,0x03B7},
- {0xA6A8,0xA6C8,0x03B8},
- {0xA6A9,0xA6C9,0x03B9},
- {0xA6AA,0xA6CA,0x03BA},
- {0xA6AB,0xA6CB,0x03BB},
- {0xA6AC,0xA6CC,0x03BC},
- {0xA6AD,0xA6CD,0x03BD},
- {0xA6AE,0xA6CE,0x03BE},
- {0xA6AF,0xA6CF,0x03BF},
- {0xA6B0,0xA6D0,0x03C0}, /* A6D0 */
- {0xA6B1,0xA6D1,0x03C1},
- {0xA6B2,0xA6D2,0x03C3},
- {0xA6B3,0xA6D3,0x03C4},
- {0xA6B4,0xA6D4,0x03C5},
- {0xA6B5,0xA6D5,0x03C6},
- {0xA6B6,0xA6D6,0x03C7},
- {0xA6B7,0xA6D7,0x03C8},
- {0xA6B8,0xA6D8,0x03C9},
- {0xA6D9,0xA6D9,0x003F},
- {0xA6DA,0xA6DA,0x003F},
- {0xA6DB,0xA6DB,0x003F},
- {0xA6DC,0xA6DC,0x003F},
- {0xA6DD,0xA6DD,0x003F},
- {0xA6DE,0xA6DE,0x003F},
- {0xA6DF,0xA6DF,0x003F},
- {0xA6E0,0xA6E0,0xFE35}, /* A6E0 */
- {0xA6E1,0xA6E1,0xFE36},
- {0xA6E2,0xA6E2,0xFE39},
- {0xA6E3,0xA6E3,0xFE3A},
- {0xA6E4,0xA6E4,0xFE3F},
- {0xA6E5,0xA6E5,0xFE40},
- {0xA6E6,0xA6E6,0xFE3D},
- {0xA6E7,0xA6E7,0xFE3E},
- {0xA6E8,0xA6E8,0xFE41},
- {0xA6E9,0xA6E9,0xFE42},
- {0xA6EA,0xA6EA,0xFE43},
- {0xA6EB,0xA6EB,0xFE44},
- {0xA6EC,0xA6EC,0x003F},
- {0xA6ED,0xA6ED,0x003F},
- {0xA6EE,0xA6EE,0xFE3B},
- {0xA6EF,0xA6EF,0xFE3C},
- {0xA6F0,0xA6F0,0xFE37}, /* A6F0 */
- {0xA6F1,0xA6F1,0xFE38},
- {0xA6F2,0xA6F2,0xFE31},
- {0xA6F3,0xA6F3,0x003F},
- {0xA6F4,0xA6F4,0xFE33},
- {0xA6F5,0xA6F5,0xFE34},
- {0xA6F6,0xA6F6,0x003F},
- {0xA6F7,0xA6F7,0x003F},
- {0xA6F8,0xA6F8,0x003F},
- {0xA6F9,0xA6F9,0x003F},
- {0xA6FA,0xA6FA,0x003F},
- {0xA6FB,0xA6FB,0x003F},
- {0xA6FC,0xA6FC,0x003F},
- {0xA6FD,0xA6FD,0x003F},
- {0xA6FE,0xA6FE,0x003F},
- {0xA6FF,0xA6FF,0xA6FF}
-};
-
-
-static MY_UNICASE_INFO cA7[256]=
-{
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx10 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx20 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx30 */
- {0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
- {0xA740,0xA740,0x003F}, /* A740 */
- {0xA741,0xA741,0x003F},
- {0xA742,0xA742,0x003F},
- {0xA743,0xA743,0x003F},
- {0xA744,0xA744,0x003F},
- {0xA745,0xA745,0x003F},
- {0xA746,0xA746,0x003F},
- {0xA747,0xA747,0x003F},
- {0xA748,0xA748,0x003F},
- {0xA749,0xA749,0x003F},
- {0xA74A,0xA74A,0x003F},
- {0xA74B,0xA74B,0x003F},
- {0xA74C,0xA74C,0x003F},
- {0xA74D,0xA74D,0x003F},
- {0xA74E,0xA74E,0x003F},
- {0xA74F,0xA74F,0x003F},
- {0xA750,0xA750,0x003F}, /* A750 */
- {0xA751,0xA751,0x003F},
- {0xA752,0xA752,0x003F},
- {0xA753,0xA753,0x003F},
- {0xA754,0xA754,0x003F},
- {0xA755,0xA755,0x003F},
- {0xA756,0xA756,0x003F},
- {0xA757,0xA757,0x003F},
- {0xA758,0xA758,0x003F},
- {0xA759,0xA759,0x003F},
- {0xA75A,0xA75A,0x003F},
- {0xA75B,0xA75B,0x003F},
- {0xA75C,0xA75C,0x003F},
- {0xA75D,0xA75D,0x003F},
- {0xA75E,0xA75E,0x003F},
- {0xA75F,0xA75F,0x003F},
- {0xA760,0xA760,0x003F}, /* A760 */
- {0xA761,0xA761,0x003F},
- {0xA762,0xA762,0x003F},
- {0xA763,0xA763,0x003F},
- {0xA764,0xA764,0x003F},
- {0xA765,0xA765,0x003F},
- {0xA766,0xA766,0x003F},
- {0xA767,0xA767,0x003F},
- {0xA768,0xA768,0x003F},
- {0xA769,0xA769,0x003F},
- {0xA76A,0xA76A,0x003F},
- {0xA76B,0xA76B,0x003F},
- {0xA76C,0xA76C,0x003F},
- {0xA76D,0xA76D,0x003F},
- {0xA76E,0xA76E,0x003F},
- {0xA76F,0xA76F,0x003F},
- {0xA770,0xA770,0x003F}, /* A770 */
- {0xA771,0xA771,0x003F},
- {0xA772,0xA772,0x003F},
- {0xA773,0xA773,0x003F},
- {0xA774,0xA774,0x003F},
- {0xA775,0xA775,0x003F},
- {0xA776,0xA776,0x003F},
- {0xA777,0xA777,0x003F},
- {0xA778,0xA778,0x003F},
- {0xA779,0xA779,0x003F},
- {0xA77A,0xA77A,0x003F},
- {0xA77B,0xA77B,0x003F},
- {0xA77C,0xA77C,0x003F},
- {0xA77D,0xA77D,0x003F},
- {0xA77E,0xA77E,0x003F},
- {0xA77F,0xA77F,0xA77F},
- {0xA780,0xA780,0x003F}, /* A780 */
- {0xA781,0xA781,0x003F},
- {0xA782,0xA782,0x003F},
- {0xA783,0xA783,0x003F},
- {0xA784,0xA784,0x003F},
- {0xA785,0xA785,0x003F},
- {0xA786,0xA786,0x003F},
- {0xA787,0xA787,0x003F},
- {0xA788,0xA788,0x003F},
- {0xA789,0xA789,0x003F},
- {0xA78A,0xA78A,0x003F},
- {0xA78B,0xA78B,0x003F},
- {0xA78C,0xA78C,0x003F},
- {0xA78D,0xA78D,0x003F},
- {0xA78E,0xA78E,0x003F},
- {0xA78F,0xA78F,0x003F},
- {0xA790,0xA790,0x003F}, /* A790 */
- {0xA791,0xA791,0x003F},
- {0xA792,0xA792,0x003F},
- {0xA793,0xA793,0x003F},
- {0xA794,0xA794,0x003F},
- {0xA795,0xA795,0x003F},
- {0xA796,0xA796,0x003F},
- {0xA797,0xA797,0x003F},
- {0xA798,0xA798,0x003F},
- {0xA799,0xA799,0x003F},
- {0xA79A,0xA79A,0x003F},
- {0xA79B,0xA79B,0x003F},
- {0xA79C,0xA79C,0x003F},
- {0xA79D,0xA79D,0x003F},
- {0xA79E,0xA79E,0x003F},
- {0xA79F,0xA79F,0x003F},
- {0xA7A0,0xA7A0,0x003F}, /* A7A0 */
- {0xA7A1,0xA7D1,0x0410},
- {0xA7A2,0xA7D2,0x0411},
- {0xA7A3,0xA7D3,0x0412},
- {0xA7A4,0xA7D4,0x0413},
- {0xA7A5,0xA7D5,0x0414},
- {0xA7A6,0xA7D6,0x0415},
- {0xA7A7,0xA7D7,0x0401},
- {0xA7A8,0xA7D8,0x0416},
- {0xA7A9,0xA7D9,0x0417},
- {0xA7AA,0xA7DA,0x0418},
- {0xA7AB,0xA7DB,0x0419},
- {0xA7AC,0xA7DC,0x041A},
- {0xA7AD,0xA7DD,0x041B},
- {0xA7AE,0xA7DE,0x041C},
- {0xA7AF,0xA7DF,0x041D},
- {0xA7B0,0xA7E0,0x041E}, /* A7B0 */
- {0xA7B1,0xA7E1,0x041F},
- {0xA7B2,0xA7E2,0x0420},
- {0xA7B3,0xA7E3,0x0421},
- {0xA7B4,0xA7E4,0x0422},
- {0xA7B5,0xA7E5,0x0423},
- {0xA7B6,0xA7E6,0x0424},
- {0xA7B7,0xA7E7,0x0425},
- {0xA7B8,0xA7E8,0x0426},
- {0xA7B9,0xA7E9,0x0427},
- {0xA7BA,0xA7EA,0x0428},
- {0xA7BB,0xA7EB,0x0429},
- {0xA7BC,0xA7EC,0x042A},
- {0xA7BD,0xA7ED,0x042B},
- {0xA7BE,0xA7EE,0x042C},
- {0xA7BF,0xA7EF,0x042D},
- {0xA7C0,0xA7F0,0x042E}, /* A7C0 */
- {0xA7C1,0xA7F1,0x042F},
- {0xA7C2,0xA7C2,0x003F},
- {0xA7C3,0xA7C3,0x003F},
- {0xA7C4,0xA7C4,0x003F},
- {0xA7C5,0xA7C5,0x003F},
- {0xA7C6,0xA7C6,0x003F},
- {0xA7C7,0xA7C7,0x003F},
- {0xA7C8,0xA7C8,0x003F},
- {0xA7C9,0xA7C9,0x003F},
- {0xA7CA,0xA7CA,0x003F},
- {0xA7CB,0xA7CB,0x003F},
- {0xA7CC,0xA7CC,0x003F},
- {0xA7CD,0xA7CD,0x003F},
- {0xA7CE,0xA7CE,0x003F},
- {0xA7CF,0xA7CF,0x003F},
- {0xA7D0,0xA7D0,0x003F}, /* A7D0 */
- {0xA7A1,0xA7D1,0x0430},
- {0xA7A2,0xA7D2,0x0431},
- {0xA7A3,0xA7D3,0x0432},
- {0xA7A4,0xA7D4,0x0433},
- {0xA7A5,0xA7D5,0x0434},
- {0xA7A6,0xA7D6,0x0435},
- {0xA7A7,0xA7D7,0x0451},
- {0xA7A8,0xA7D8,0x0436},
- {0xA7A9,0xA7D9,0x0437},
- {0xA7AA,0xA7DA,0x0438},
- {0xA7AB,0xA7DB,0x0439},
- {0xA7AC,0xA7DC,0x043A},
- {0xA7AD,0xA7DD,0x043B},
- {0xA7AE,0xA7DE,0x043C},
- {0xA7AF,0xA7DF,0x043D},
- {0xA7B0,0xA7E0,0x043E}, /* A7E0 */
- {0xA7B1,0xA7E1,0x043F},
- {0xA7B2,0xA7E2,0x0440},
- {0xA7B3,0xA7E3,0x0441},
- {0xA7B4,0xA7E4,0x0442},
- {0xA7B5,0xA7E5,0x0443},
- {0xA7B6,0xA7E6,0x0444},
- {0xA7B7,0xA7E7,0x0445},
- {0xA7B8,0xA7E8,0x0446},
- {0xA7B9,0xA7E9,0x0447},
- {0xA7BA,0xA7EA,0x0448},
- {0xA7BB,0xA7EB,0x0449},
- {0xA7BC,0xA7EC,0x044A},
- {0xA7BD,0xA7ED,0x044B},
- {0xA7BE,0xA7EE,0x044C},
- {0xA7BF,0xA7EF,0x044D},
- {0xA7C0,0xA7F0,0x044E}, /* A7F0 */
- {0xA7C1,0xA7F1,0x044F},
- {0xA7F2,0xA7F2,0x003F},
- {0xA7F3,0xA7F3,0x003F},
- {0xA7F4,0xA7F4,0x003F},
- {0xA7F5,0xA7F5,0x003F},
- {0xA7F6,0xA7F6,0x003F},
- {0xA7F7,0xA7F7,0x003F},
- {0xA7F8,0xA7F8,0x003F},
- {0xA7F9,0xA7F9,0x003F},
- {0xA7FA,0xA7FA,0x003F},
- {0xA7FB,0xA7FB,0x003F},
- {0xA7FC,0xA7FC,0x003F},
- {0xA7FD,0xA7FD,0x003F},
- {0xA7FE,0xA7FE,0x003F},
- {0xA7FF,0xA7FF,0xA7FF}
-};
-
-
-static MY_UNICASE_INFO *my_caseinfo_gbk[256]=
-{
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 1 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 2 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 3 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 4 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 5 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 6 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 7 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 8 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 9 */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, cA2, cA3, NULL, NULL, cA6, cA7, /* A */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* B */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* C */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* D */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* E */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
-};
-
-
-
-static uchar sort_order_gbk[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '\\', ']', '[', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uint16 gbk_order[]=
-{
-8653,14277,17116,11482,11160,2751,14613,3913,13337,9827,
-19496,1759,8105,7103,7836,5638,2223,21433,5878,8006,
-4851,18766,18879,16728,8129,6200,19133,6389,2500,19084,
-16228,5074,8130,5900,6201,3985,14597,11566,8588,8769,
-15885,11411,11965,1961,18012,18303,12242,14118,11490,12911,
-15015,4367,3184,2093,20937,5710,5108,10560,9993,18982,
-8393,10697,14620,19558,14970,15193,5359,18189,12666,18192,
-3310,18659,17358,7973,18673,19537,3404,9723,4221,16486,
-7023,13648,16310,1049,1726,4799,15534,4366,17133,4192,
-6219,5118,1804,2360,2279,14279,13740,4511,2361,12906,
-16650,18590,4723,2001,16313,3594,21026,12146,19561,3800,
-4161,16774,18892,17657,7025,892,7917,12245,3394,4813,
-11902,3189,20002,2365,12964,18115,17660,20227,17182,11907,
-11671,17562,17864,21131,13423,1361,12246,18897,14978,18848,
-20727,5902,10726,21241,1906,13424,1408,20519,3038,18495,
-20446,1431,17138,13464,14558,1221,6720,6137,17348,5268,
-4448,11313,1760,6172,6870,5744,13541,3044,17701,14368,
-16114,5051,9142,18776,5669,19089,11088,17867,925,10395,
-4372,10578,2138,2554,18118,21087,13862,7461,14983,3322,
-15305,11844,7924,8087,2542,20701,21772,2754,10490,8218,
-14800,15869,14436,16119,1814,11543,17398,16069,19659,17020,
-17844,5694,8833,16744,18925,4957,9812,6852,8036,12966,
-14038,12145,16833,11165,17076,17756,3673,2367,20916,9143,
-14927,6885,17486,7469,1661,2827,4627,18198,1307,19711,
-17637,2595,2262,20807,1764,8150,18547,3192,9711,16262,
-9144,2006,21629,5311,15743,14733,10991,15402,2916,17724,
-12195,12622,5141,8039,15169,7780,4568,20835,21575,10580,
-15022,9470,6853,3926,21563,1342,16745,8181,11526,1947,
-7402,18641,14145,13149,19222,2468,12920,13916,21077,2968,
-16438,19667,1768,15632,18374,4738,15517,16655,4309,2374,
-14492,8602,3679,2103,1312,18681,6613,18604,20451,2755,
-18218,19473,17854,20316,3003,4998,1391,20938,11169,7049,
-18861,17577,18091,1937,4085,2059,20633,15948,1313,20138,
-7785,16439,15081,20955,15117,17065,19924,13831,11913,20062,
-7568,10703,3717,15480,6047,7790,16867,14223,12971,8429,
-2008,2833,14026,1317,17493,19411,18551,15452,15257,18504,
-4441,1769,7249,20128,5509,1970,9420,19365,20190,21617,
-12202,15041,2871,19676,20388,21674,14258,2901,8058,5970,
-20472,13257,18226,3694,17591,10279,1318,12409,7901,9794,
-10416,10769,12876,17154,15455,19298,3970,21327,14228,13095,
-8096,16072,21748,12581,9326,2311,5683,12641,3583,2184,
-16464,6969,1795,6778,2880,15819,3433,7674,4713,17297,
-8231,4333,9995,1841,5558,17155,17298,11283,18694,7946,
-7311,13129,4753,21149,905,14010,18821,8532,11873,2190,
-19006,3456,8874,7433,2841,7680,14143,20130,1993,1699,
-976,15361,2736,2154,9202,11685,7951,12982,11008,16763,
-11829,13327,11686,2299,9940,10507,8917,1277,19790,1636,
-20143,21002,15011,19443,6026,13299,2455,9667,15612,16477,
-10261,2811,2202,13674,14760,6818,9691,10624,20145,11940,
-15524,18349,9437,11578,20132,17736,4121,4122,16023,2280,
-4371,4373,7873,18307,14602,14695,13054,5410,6065,14389,
-3979,1137,5411,6672,16311,11632,9829,19575,5901,15708,
-12553,7165,18983,10860,13664,18242,10848,2049,8075,5579,
-8083,10863,21136,5445,17851,19132,8597,18771,11054,14631,
-10997,8292,8803,11246,4999,17559,11134,15369,5155,6407,
-12054,4857,11265,12834,7322,15057,10937,15984,5544,8040,
-13291,3961,5142,19101,869,9631,2009,11315,21404,3172,
-14941,4204,7947,9997,16906,4035,4476,4477,8171,2818,
-20725,4724,11453,20868,4725,4729,8565,5109,12490,8862,
-5920,13737,2888,6930,12963,3223,6934,3395,16243,8397,
-9475,4858,13515,3777,11266,10029,21028,1671,7765,7766,
-14169,2221,5328,2907,8951,4225,4416,7770,3046,8014,
-3975,10636,20236,19825,3248,8717,2140,2908,3249,9477,
-4628,2225,12676,2909,21564,5167,1225,4186,13266,4017,
-7471,7146,18214,6890,4195,16037,16688,5583,14497,7476,
-3286,8566,2910,2862,2232,16038,10417,9492,12234,14190,
-8793,5573,6486,20322,21455,9734,8317,10143,5781,7681,
-5782,7500,7501,15466,7188,7511,7512,21003,2203,21693,
-11350,9540,21212,18183,7918,8754,17511,20869,18899,21160,
-11356,9315,8364,8798,18460,16189,17483,11415,8897,7771,
-9917,8718,7926,5228,11270,2644,9269,19404,8719,8367,
-13267,10400,1914,2157,8584,11171,3964,17881,16785,18951,
-18052,16616,14500,9323,10418,12410,14661,6963,7570,7668,
-13601,17386,18995,8437,4460,8346,15920,8318,3387,10734,
-18057,18058,10525,9654,2390,13675,13603,20000,8106,1260,
-10824,1426,5075,5076,18887,12175,8174,15558,5269,4304,
-5380,3287,8156,5386,11605,8142,18768,7580,8641,6319,
-13425,4478,13147,2019,8900,6331,19668,5756,6769,3381,
-9009,9730,9735,15160,4036,8167,13489,17009,8667,18308,
-13439,18112,11735,21667,14617,17010,16290,16291,17515,3368,
-7050,14841,5636,16826,17573,7760,18493,13306,14312,2619,
-17868,13609,8991,7038,4310,16881,14020,16422,20565,5941,
-18174,3642,20346,12080,856,13144,18158,20908,10800,15630,
-14340,15837,21707,4629,2060,19870,9632,3718,7902,994,
-5762,18391,9647,2312,9199,9648,18281,18342,19911,5367,
-9950,13834,13513,8771,9414,4057,21302,1963,1964,1967,
-902,3349,14697,5602,1071,13959,14621,21428,7288,15079,
-7039,16495,13949,3111,5580,13365,2615,4109,6202,11213,
-10792,17918,21538,3226,18658,11985,6862,18734,2752,13232,
-7838,1907,4252,6223,16703,11495,18037,3974,6301,5226,
-8514,10487,5267,10892,12763,16706,7702,20003,2616,14457,
-16083,16587,4296,14513,8355,12171,16590,10670,13651,3646,
-14626,21132,15826,17015,18911,12792,12461,21545,17848,18912,
-17396,3277,13516,5918,16115,12548,1673,4864,18438,6078,
-5880,3263,16211,21784,1909,15296,17183,6884,12796,4417,
-4299,17021,21137,14801,17484,8852,6512,15560,4300,17921,
-5819,9342,15900,17742,19525,3869,11715,17703,12554,6040,
-19865,10267,12549,10804,21670,6091,17277,9319,12531,9840,
-1060,11215,10514,15170,4892,5904,14898,19534,5469,5470,
-1128,5922,18937,7270,15971,17189,16263,9474,13382,2369,
-20210,18177,3976,12767,3618,13236,10885,5397,15621,8770,
-9830,9310,14121,21573,16634,19148,12803,4381,13051,956,
-20237,3755,19551,15744,9169,16852,866,11893,21439,3680,
-6197,17412,17324,16086,16747,16602,3834,5510,12770,12771,
-3420,16198,21552,1421,3198,6097,18178,12772,20576,9831,
-17200,19226,5584,20226,5822,10609,11641,3599,13550,15387,
-5361,15481,952,3426,19731,20581,21103,2153,16223,19719,
-20139,18533,11172,6356,20044,6584,6585,6954,21058,16397,
-14150,17888,6618,4199,11775,9843,19732,14051,2564,13093,
-18379,3377,12174,1968,19359,16350,19294,12243,1294,5362,
-20214,6898,15645,18557,6146,13005,14084,19366,6272,17534,
-10713,2104,5894,13900,16200,6964,12093,16692,12975,21496,
-9358,16216,7314,15280,3056,14008,5363,11510,13001,1474,
-997,9724,21709,20612,11383,15441,7715,2684,7622,8585,
-15456,14192,872,17497,10281,17428,6338,6779,5831,11989,
-17156,20245,2293,12512,3560,10705,6367,5040,15465,18663,
-14003,7716,17498,6462,10721,13660,9327,17501,6973,9010,
-17433,6024,10669,13098,2842,15393,3436,18133,4283,21749,
-4461,2571,6707,1986,2900,3138,3434,19771,9090,16900,
-12816,6022,9736,17830,6708,19167,18099,11781,14950,18337,
-19249,3270,20404,21152,11875,6791,17596,7723,19933,884,
-19376,8877,19687,12164,3544,17647,4150,3457,17648,12338,
-19127,21715,11831,3635,9259,15329,6901,17127,18710,4191,
-12352,21112,7195,7956,2300,18061,10887,15701,10319,6808,
-1859,19445,11794,19170,6436,10969,6216,20594,9522,10157,
-5898,11567,11326,18410,9674,10340,10229,11345,3447,2456,
-12439,12340,17368,10889,17057,4224,8845,18285,2207,19263,
-3872,9117,15331,17456,2995,6523,6919,21337,11803,17457,
-1936,9533,2248,2161,9697,19072,10607,20163,15100,6199,
-20287,7392,20107,21238,9225,11809,13650,10203,6717,19085,
-11816,16035,8643,19823,8084,12359,20004,3059,6719,4253,
-5838,15886,15982,5839,13638,13780,5840,15341,5842,19140,
-6854,5923,10582,5843,2868,16398,19872,13534,8824,12598,
-19879,19880,18208,16051,16004,16005,16039,10567,6783,19020,
-10539,10550,18184,16018,15868,12573,10392,8863,8172,19697,
-12845,12846,21424,3476,12833,17119,14167,11764,11357,7264,
-20873,18048,18901,13220,4667,8756,16106,4705,1432,8009,
-3665,7966,7128,2587,7967,12053,15477,13430,20832,5587,
-15350,8076,18496,4801,10396,13339,5438,18013,1074,10032,
-21247,4985,6322,20909,989,3323,12104,11235,7138,6138,
-10512,3008,2621,19090,6306,4110,20541,4877,5674,18543,
-4231,5748,2116,18465,17517,14702,1762,6233,3281,8548,
-3479,6000,954,17677,17278,1186,4803,1097,18938,19207,
-5954,17874,2917,13191,1374,4557,13610,19406,8518,7240,
-3675,9306,8357,7882,20573,9913,6446,1915,8078,18661,
-3600,18200,13551,15199,13252,16268,8298,10602,20739,8775,
-2704,3928,15450,1948,2829,1375,8603,4214,18952,20841,
-21403,12685,8299,11653,8726,9031,11701,7331,5169,19721,
-4311,5546,9471,4548,18163,9032,972,14386,11607,15974,
-2517,6540,1462,9789,5823,21324,1244,19595,10838,7744,
-13909,18685,5360,21578,19596,6619,4318,18552,1268,3013,
-10906,2309,16148,12551,4773,21079,7858,7887,6198,5174,
-2935,8605,12479,9418,17729,6610,4093,16233,17928,17030,
-7062,8871,19299,19417,8569,15122,14579,11123,16618,2526,
-15997,13618,21060,9639,12203,1209,20185,4112,15728,16751,
-20767,18053,20711,898,5381,18272,8607,16540,17592,10190,
-5887,9300,2294,12204,1384,2426,10427,10374,11972,12978,
-10920,11384,16040,14865,10301,1622,2072,20975,20512,8617,
-3765,2439,20849,7172,5829,13045,7943,3700,3174,18392,
-15307,20290,12928,16506,21383,13068,14230,14231,1088,12583,
-8875,3942,4462,13626,4146,3217,3701,14505,4242,4245,
-15413,3587,11432,4684,6631,15414,3271,18690,21282,7502,
-1039,13032,13072,8748,19021,12316,3766,7551,18665,1852,
-15419,9243,8322,6513,3492,13684,12987,18062,9260,16999,
-906,18151,3529,13911,7957,9427,8940,10341,18286,15427,
-16481,6514,10263,10264,13950,9675,9985,2208,18070,18291,
-9406,1106,16240,14024,21355,18735,10727,21254,21358,6353,
-9064,6357,17889,9070,14715,10820,4147,14718,18755,5496,
-7582,4769,20373,1592,15166,13637,10033,3251,17753,17613,
-11596,17130,19916,10850,4182,13264,11964,5447,12805,11003,
-11047,2440,20269,5601,5209,15535,15370,18300,1406,6926,
-20037,7229,1056,4359,3596,12118,8363,17518,3735,18497,
-6573,8553,20360,1351,6662,4610,3780,18127,1363,1032,
-16617,12536,16800,1037,7571,9731,4203,19993,7572,14677,
-4715,6902,1527,10540,2376,3886,12847,8131,11926,2135,
-17136,4517,7104,6221,3365,4816,8031,5875,16599,21029,
-11997,5995,21069,20005,4807,2552,8400,21341,18361,11496,
-17629,4669,4726,16292,4072,1075,21429,20521,11523,19918,
-15958,17185,18913,4247,11358,1436,14370,4248,6080,17849,
-4434,20728,11236,1173,4817,10034,21539,13666,14173,18439,
-10741,21482,8275,13754,3952,7040,5056,17377,6456,8339,
-5443,7327,7328,11738,20834,20673,17273,6182,5675,8491,
-8847,18364,11314,9918,12150,4302,19527,18255,14375,14566,
-5749,13543,15020,6234,17279,14316,2502,17574,10805,4827,
-11443,8723,2979,2980,15870,17708,11546,19581,12503,11626,
-20926,5924,21344,12472,16076,17280,16710,18256,16748,16841,
-18260,19582,14989,9609,8190,21375,12628,17194,21440,3929,
-10404,879,4249,10275,11146,3095,12550,8191,1949,10054,
-17413,14766,12773,6692,5001,16647,16648,15405,4581,4582,
-15709,11654,13552,8046,7979,12868,3756,17726,6421,16231,
-9150,19109,21097,11614,5002,10583,973,9033,19149,18201,
-8192,9622,3737,17195,6447,6480,3483,18605,11564,13964,
-7294,15949,19734,16351,3689,13838,10941,3378,13918,13178,
-6693,16657,12924,2936,11189,5005,7831,4086,18806,21080,
-6620,11148,932,19228,17929,7745,16352,20747,13345,15635,
-17584,16171,9790,10871,13670,14932,12361,16502,16199,3132,
-6358,7791,1245,17817,15950,5715,21662,18558,19882,13796,
-13901,10132,10944,12039,1026,10672,9002,13206,20689,19883,
-7746,13800,11302,19235,15124,11752,15542,12085,9276,11609,
-1235,12346,18996,19759,17966,10773,18749,8627,19370,11703,
-5719,7905,21307,20246,5908,9361,20563,6426,6427,1034,
-13922,10677,12423,5487,16758,13099,16174,20438,11193,17210,
-17211,11392,9864,9712,6490,5723,3572,20852,17832,18753,
-6482,16901,9011,13705,18396,2181,7625,10946,4534,4463,
-17161,19022,6168,7724,4536,14680,15209,13033,9774,17945,
-17649,11755,3943,19023,1971,907,11742,11832,10673,15800,
-2738,7958,3028,19632,12437,13822,13876,11528,18236,15363,
-19255,12988,19972,11154,1403,14431,17732,11711,4037,10186,
-19849,9247,18411,10100,7696,11743,9249,17172,19264,14855,
-6822,13579,11104,9538,10541,18292,21213,9251,8394,21477,
-17662,14984,15342,19522,21318,15232,11216,3096,12869,18145,
-11682,21506,9501,18022,1877,11517,11798,19265,10542,13830,
-13303,7230,13858,18591,18772,8010,21395,21223,6229,14563,
-18794,15793,14603,2503,13642,5375,17403,20364,3516,14419,
-6659,11115,8804,1950,20141,19831,13343,6142,20637,7482,
-11825,1770,6541,13226,14576,11826,7938,11847,20963,19677,
-1247,8885,11827,8312,13229,6339,14584,11828,14425,16469,
-17560,8886,6784,8533,19039,18830,1257,13187,2705,1258,
-4762,10511,4124,12519,21303,4828,8724,7588,21305,18092,
-14812,4131,3527,7762,4393,4394,14764,14280,11327,9907,
-17242,17243,9046,16304,9904,10796,16305,16306,16307,18541,
-4232,8998,21059,5110,5515,16061,5115,5116,17012,1390,
-7844,15716,3798,14519,20669,17576,11649,16842,16843,10758,
-10309,12474,15684,4631,17585,10500,2084,17597,8329,8391,
-9883,8392,21237,17624,11692,16188,17134,9579,4288,3503,
-6742,10206,13743,16775,5949,14364,2765,18725,19947,1157,
-18592,981,16777,7768,4290,4670,16248,12907,12663,7839,
-21769,21770,18498,8276,5161,18015,12501,9591,15773,13432,
-4865,16137,12288,1030,8924,13433,12525,15774,10036,2589,
-12463,2091,1185,15898,18016,1588,6083,8721,10649,4303,
-4990,3826,10399,4363,4375,5057,13530,18786,11438,14567,
-926,16386,6533,11113,9552,7139,3954,16387,19529,5502,
-9919,18545,7610,4258,17519,1884,13639,4736,11585,9555,
-19464,17281,13793,3517,14382,2504,15985,5349,5231,17082,
-19141,19665,9307,8616,17234,13611,2695,15316,9955,6478,
-8193,9151,11248,9034,9035,21671,5547,18164,5179,10584,
-10585,10055,4187,20740,19151,3965,5926,20741,16440,12301,
-7787,21672,8823,3930,19152,21490,20275,6621,19597,18474,
-4742,13395,18475,15636,18862,20956,14654,4319,21271,8594,
-10518,18318,10942,5932,6955,6586,15855,16795,19598,21579,
-9193,8712,18267,18268,16447,21580,2121,15200,8679,13179,
-12699,15998,4113,16882,16619,2010,15485,13801,7795,870,
-10133,16801,13060,1368,3719,12950,19418,11778,3238,14580,
-13968,15043,21588,7596,9858,8628,2233,3853,2076,3890,
-15978,10302,20433,20434,998,2031,13447,13009,3175,21713,
-3524,3525,16958,19760,12160,10221,17387,2085,1796,13182,
-7626,18232,9328,20458,9866,9867,7890,4243,21738,7721,
-8441,18574,7627,18575,8442,20405,19024,18023,11593,18705,
-18706,18824,11788,17251,7074,17601,8707,5724,3710,1040,
-21730,16369,13823,3530,10114,7818,19688,19975,19196,13859,
-7823,9660,5732,10230,10231,19319,16937,8244,2209,19345,
-8961,18287,11599,13580,2359,3159,10543,3729,3730,11805,
-18293,18294,18354,8989,18295,8861,6605,7968,2341,9938,
-8768,12561,12562,13406,20792,20522,18795,7897,15252,13598,
-12240,4852,20087,3876,11763,4648,12010,20874,6409,3412,
-3325,11359,4866,11367,18927,18928,12467,12835,8356,13863,
-14839,14878,13123,20625,14523,13643,3336,5707,12475,20508,
-7408,16232,3339,14148,12687,4061,6287,20780,17818,16400,
-18969,1192,12480,3839,5382,12040,15543,11124,7309,15602,
-6704,21044,14193,1623,5847,20247,11469,1193,8019,2236,
-20985,6342,1492,1504,20496,11136,13073,2171,4685,11015,
-1195,2739,11224,2793,7816,17258,9214,7318,1761,5147,
-7112,15831,20270,5689,10886,13188,4163,18175,1124,7840,
-21342,18140,3047,15899,18853,20918,15766,20919,17405,15986,
-5754,8835,10998,19501,1885,1763,2547,9152,7051,15026,
-14808,13284,19736,11210,15061,2064,17327,4633,8155,4327,
-16448,10191,17124,15062,20964,1923,13258,8159,8160,10282,
-19210,3348,10428,18997,2788,16006,14951,17645,11211,2313,
-16759,4637,5691,8789,8878,1513,13034,9999,9884,10342,
-7208,19346,17173,15845,19387,9539,15847,18074,3612,12524,
-6721,11524,6722,4706,8251,18309,20183,18728,4413,14016,
-4414,14663,3799,6402,16674,3664,7583,1095,14412,20469,
-15536,4954,3649,2329,20674,18787,8365,14285,19827,8041,
-3781,20470,7589,13024,12198,1463,14347,15407,7422,5256,
-4428,1475,8794,7429,1682,17439,3437,5832,7552,6264,
-11065,5836,16239,8476,7122,10397,6770,6771,18825,18826,
-18836,19941,19942,16558,18365,19706,2556,3782,19419,12386,
-2582,21425,16167,7028,21030,16314,3597,10037,4867,16320,
-16834,16192,2543,20927,8042,3094,20798,3097,16984,7154,
-20939,3065,21098,9153,17578,7857,7477,14656,7295,1595,
-5007,16449,1210,16883,20750,12413,15649,3561,20754,1676,
-2686,2387,18576,6792,10927,10271,17338,1280,13490,9371,
-13717,3895,5069,13719,5093,18895,14619,16819,4457,19220,
-11238,16588,16780,7029,17016,7841,16249,3061,19702,12664,
-3190,15371,16092,12908,6842,17740,16318,17139,8623,8277,
-18915,1238,11239,12128,8801,1174,11583,15810,5542,8283,
-19457,3670,15969,19460,4821,17017,1437,19436,17979,3064,
-1738,6656,18038,12251,14802,16835,15386,19400,11360,8772,
-14633,17022,9344,6183,8902,11416,20884,17520,15767,3827,
-6041,5750,12620,17485,14929,6328,13340,6723,2645,18788,
-17743,5604,10010,2624,14282,13531,19953,12179,3554,6754,
-17406,10801,19407,19828,12258,19955,19722,15988,7855,20577,
-10011,6042,13150,15685,1916,12969,16845,10742,18954,6179,
-2544,16786,9484,9295,3066,18955,9610,11603,4312,16788,
-3098,3557,2322,10985,9623,5646,5641,12629,8777,15745,
-10586,16868,8604,5796,11702,4142,5857,20398,19836,7885,
-7161,9956,19723,6106,13553,15406,15689,11772,2981,6832,
-17639,4282,15278,21613,7332,19412,3558,11608,20063,3840,
-2970,13315,2065,1573,6835,21581,15637,1324,17930,16353,
-5277,16450,1465,17931,6587,11173,19413,12806,14256,19110,
-2421,10875,12840,8731,900,13156,18319,13919,21614,13998,
-19229,13624,5383,20021,15132,12707,18560,15042,6665,7064,
-5516,8313,2911,11704,17535,8570,20769,19420,2042,18131,
-14446,1834,8586,17035,6859,19422,18507,9640,14053,15544,
-19118,17896,15382,20067,11316,5407,3101,12414,11470,5848,
-2665,1985,1980,1978,3176,11284,20476,15945,1035,14866,
-5648,13627,20215,8161,9726,11995,15044,7944,19212,10523,
-14260,16041,10744,12882,14352,13297,3707,20853,10283,8383,
-12648,12643,19772,12491,9860,3115,19442,2687,20986,15946,
-2474,12817,13449,12214,1335,13328,7628,2661,9737,12494,
-9012,6786,2533,19214,19215,16992,16993,3438,15415,4244,
-4177,15139,8454,2074,17434,4465,4714,9329,9362,17212,
-11285,9868,16760,1987,8443,3139,17304,15442,14485,12280,
-19025,17162,11876,3439,15443,8022,15032,6985,16515,6520,
-13218,13213,8323,2043,8750,19256,19026,10001,14089,8534,
-6504,908,18238,9098,17128,2669,19633,19217,3316,11048,
-910,11016,4136,12731,11353,9205,10989,2740,21004,11955,
-2792,18512,1860,21010,8942,8918,19446,4850,10158,11225,
-2540,6809,2254,9248,6506,17972,13691,2256,7209,8336,
-6524,14358,9808,11563,11076,15525,8477,21363,5186,19944,
-5244,7323,3962,3835,1943,7276,20814,8973,20456,13010,
-5259,7430,19761,18334,17044,20461,17050,17052,13492,6403,
-6405,4289,14622,15676,10851,3752,14272,18796,18858,18320,
-13367,9372,4512,13896,20126,20502,3797,19543,8815,5950,
-14365,2095,16110,5497,16776,3566,13744,2096,12909,7265,
-19564,1029,16825,20875,20905,3567,18301,8908,1583,8173,
-16589,6347,19948,13234,14413,20763,20038,16250,11622,12542,
-12543,1073,1020,20229,20006,1739,20880,11540,12559,18593,
-20671,20312,18440,6068,11675,18672,2642,12253,7231,10952,
-13434,2822,7233,20423,12100,11484,12910,16116,1125,3651,
-8284,9079,12829,12861,6169,11818,5398,3221,2622,17521,
-2054,6683,1109,20920,9081,4212,4213,11887,20702,5270,
-7704,3956,11486,9920,20313,10367,3828,8407,9912,8256,
-18196,17190,19661,16120,1820,5350,15671,2509,14122,8758,
-10939,11888,8182,12193,7403,14178,13957,17523,2101,4770,
-7655,8183,6886,15989,12544,20274,15038,18649,8414,16254,
-1917,21752,18677,20375,10368,15058,16121,1188,16434,16294,
-13198,14335,11249,10977,4962,3511,16649,8358,19962,21612,
-15746,15973,1355,13958,21757,16656,12631,2512,14067,10572,
-13292,5170,3655,6855,12688,14737,12872,10056,18202,20742,
-9832,5590,11679,6891,18375,20766,1952,1731,15687,21643,
-8751,12006,7737,11319,5333,10992,14052,12235,11944,7413,
-20748,8118,7414,18273,11558,6209,12344,16354,13999,11761,
-14657,21615,20712,18094,6624,1596,18476,6588,18321,21705,
-17819,8705,7046,15690,9113,9121,2422,8120,15995,6694,
-5325,2707,17426,17586,12922,2106,1289,18553,16355,3565,
-16605,21616,5326,5451,13240,13802,13619,2711,15246,15234,
-13803,12205,8685,18561,3522,20817,11914,9109,13419,17244,
-7939,11219,4328,2922,14191,15318,20350,12042,9641,15545,
-6359,20965,16202,17095,16606,13043,15730,20641,4329,11939,
-13563,20368,16752,14349,8638,13804,13990,2234,15265,8122,
-2685,2894,5849,4775,3702,12812,15070,9770,2475,2568,
-5649,10429,10303,21619,5080,6428,20369,13046,15531,6487,
-11516,7546,5720,19339,1004,20987,11782,10745,2253,8795,
-2767,14353,16042,7675,2169,12884,1662,7594,18566,5458,
-12885,6974,12417,9313,4151,17301,13910,5783,20142,19007,
-17213,2477,11592,6276,5697,3272,11727,9998,20770,6709,
-7682,7117,2025,15459,3406,1797,2375,8390,17435,1358,
-4973,21451,16175,12569,13241,4148,6463,7683,15325,13131,
-16643,7435,19378,11574,10380,21452,20254,12571,2992,6993,
-3467,14090,13276,7756,8860,3388,17543,18699,1043,8324,
-18700,4343,10993,11066,7118,15364,3531,9246,8267,18656,
-13908,18715,18711,11688,6903,7819,1717,11833,5263,21005,
-7817,9093,11343,7524,17550,9943,15396,1121,15086,10320,
-10570,13706,21006,18513,9453,1932,14761,3157,11732,17259,
-8542,9676,9130,6569,19320,10343,10265,12893,12894,12899,
-9215,17174,19266,10930,2173,19321,3154,17554,14359,10645,
-10933,11077,2580,20146,10544,15397,9698,3731,16207,3470,
-7698,9252,9704,5767,5771,6957,18101,8654,18849,5096,
-1140,12527,3715,8802,11271,16783,6092,2057,2828,5274,
-17882,7710,2416,20634,4197,19671,1129,17883,4198,11776,
-3738,4188,18970,8713,18381,6958,15960,17494,4200,18478,
-17067,11280,873,874,3633,20715,14821,9870,13450,17754,
-18870,7685,14235,7686,21462,19040,9775,1521,9528,17504,
-17505,18011,12669,12677,8419,20377,20378,1147,19690,9221,
-16487,14459,7291,7296,19678,7717,15962,4011,19137,12994,
-13466,20429,21443,21447,21453,13211,9972,21463,2846,4106,
-21215,7846,5998,12151,19461,11481,12678,12263,10127,4830,
-4569,7982,20546,18863,14293,7483,4368,20996,4466,12391,
-4467,20414,8881,15223,19646,7123,7156,6895,17513,15764,
-15348,3667,17805,2222,18456,14564,11240,11241,16084,2931,
-16740,1302,1158,7769,14460,6416,4564,5768,17920,4651,
-13221,6324,18251,20273,4565,14437,8285,18467,1742,17981,
-12528,20675,10041,6038,11368,1593,17872,6829,21627,14637,
-4625,3870,16539,3924,878,1743,983,10210,8927,15794,
-14574,6661,17923,8964,8848,7656,7929,20929,15903,6271,
-5059,17362,5957,8521,17282,9030,21142,16846,14496,20578,
-20579,5961,6045,16271,15748,21444,21722,21126,14210,11681,
-16870,12775,20768,18971,961,16277,9958,2268,16325,17473,
-4602,17975,18813,20068,6698,17857,11253,18643,19350,14773,
-16456,13275,10876,11552,7423,18479,2937,18567,15281,12600,
-7676,8573,5236,16622,2324,12813,6052,18393,9649,7183,
-10986,20150,17598,6053,11393,3076,11708,20482,6787,5977,
-17968,2874,9874,15444,8023,12418,9973,16994,19027,7189,
-6675,3350,18695,18696,9655,15420,15927,17477,4639,14429,
-20556,6027,19041,17388,17691,14198,7688,1278,8067,18405,
-911,18712,13881,11019,9668,2434,8943,3863,3864,18635,
-6920,10483,13827,10236,10646,10545,14163,15526,18355,21216,
-19936,18904,6325,14734,2028,14470,20288,1984,17891,6772,
-19191,13158,4664,12324,1141,10042,4606,13468,11921,15795,
-9298,21708,11298,6609,16087,12635,19232,21586,16342,15928,
-9305,9330,10237,12445,14794,15622,13718,1053,4209,3505,
-9582,13370,8108,1407,2494,3042,13898,12854,19565,16680,
-18079,4479,21541,13747,16113,3668,10797,2553,18905,5077,
-5370,18773,7584,14171,16293,8133,10798,16977,19860,4621,
-3922,17141,2932,14727,6475,17634,11859,2753,15018,19951,
-7925,6942,10831,1438,984,4672,18918,4818,11541,6417,
-18159,3988,17654,18530,4279,20540,20056,21718,14461,3671,
-10325,15019,11542,17145,14990,16978,5598,4878,11369,18930,
-18674,18679,14638,11766,1414,18789,11678,9105,6085,12036,
-4480,21036,3332,3009,18518,4822,14731,14306,15021,14376,
-11545,19408,20921,20314,3416,5467,12563,990,4879,1816,
-4233,1400,20361,14991,21256,12130,14627,5599,2118,18599,
-8149,10174,10898,9600,13786,20199,13996,19405,18087,12800,
-20626,18797,17351,20707,9612,14076,8590,1730,13728,1115,
-13729,1765,21485,2719,18941,3049,7472,21719,4379,4400,
-19713,4440,5399,20394,9613,19097,18942,14643,4893,13865,
-18798,8821,13311,14040,18042,4234,2918,11418,20093,11959,
-19223,7782,10175,20449,18088,13977,20635,1287,15839,9083,
-8048,1826,1356,13929,16855,9278,10177,4739,12632,16593,
-8497,5125,15113,13389,19504,10268,12182,21359,3681,17925,
-15994,20213,19535,1457,3622,5928,20813,13761,1314,7409,
-6581,16272,11937,7244,15777,7157,17414,10492,8890,2079,
-4675,15024,14993,4001,13223,19335,8195,9065,21441,2164,
-16441,8049,9485,1732,17122,4802,15566,20941,9154,9720,
-21415,9489,12807,1750,10589,3067,12973,12700,1958,2177,
-20582,4613,12019,1206,6836,2519,20201,9633,19738,19739,
-5551,5813,3967,5172,16326,3257,4489,2466,20454,12776,
-19839,18322,19740,13535,18972,13732,12637,21417,4914,9159,
-21645,21646,4658,2395,13272,11658,16278,10412,6019,7748,
-2723,8257,8226,2520,21758,13002,18147,12304,21445,21499,
-1690,12201,3903,2804,2269,10970,6448,7415,5716,17031,
-3539,5774,3739,20815,13600,11483,4965,5335,12236,14225,
-18807,14390,4216,5014,16457,16361,7297,21587,7347,18814,
-16955,18388,18328,7348,19679,6110,16663,12369,1476,18535,
-5825,17823,13967,18480,9122,18274,1353,6699,8975,7859,
-8976,14937,4748,16173,7052,11471,10877,8831,6364,15860,
-19611,19481,3070,17992,18505,20643,12370,18691,7796,18692,
-14887,19602,16362,10915,15692,7058,7797,13854,6628,9380,
-13564,17332,14606,15409,16542,14408,2779,12309,7300,18998,
-20435,4929,11948,11127,5527,7497,15300,18609,14133,19889,
-21557,11307,15133,7310,18568,7806,6674,5148,12929,10706,
-19890,13809,14585,20820,16547,15861,13805,15490,20380,14943,
-14506,8690,16890,5522,12644,5215,15238,12043,15547,5289,
-2939,20652,11894,7070,5455,13011,12953,10921,17901,5184,
-21420,16154,13096,18523,3721,7301,20976,3526,10222,14042,
-16962,6975,9771,6788,19373,12983,5864,5087,5088,16043,
-6488,14108,3179,12211,19513,7574,6431,6596,5784,11783,
-19008,5199,8631,5725,5726,10747,20588,21351,9382,9302,
-2427,3077,9502,17769,13277,14867,15892,5652,20250,15140,
-9392,10377,9824,11135,10286,2347,15141,8693,1628,10435,
-8123,20614,20325,14755,10748,11476,18525,15782,12212,21285,
-14134,13572,7358,3078,6976,18233,18030,4423,18102,20856,
-21710,3109,12603,14824,6489,9018,20659,14236,16908,2943,
-3767,4430,11338,16764,13698,10016,10150,13104,17305,13956,
-4494,20440,9353,20031,14892,4152,2480,15500,11009,15148,
-8456,15421,6793,6986,11941,16176,11841,13935,15929,20295,
-4689,13329,13672,6191,12935,5489,10184,9364,5200,16995,
-14508,21558,14031,7083,3981,7995,7513,2845,3312,14758,
-7555,10004,11581,19193,6801,14199,21731,17970,2484,5149,
-8239,21734,19042,12606,4757,6738,3493,7196,15214,12496,
-2537,2812,21294,6802,7084,7835,7303,14686,7436,13036,
-3547,18872,1660,15033,14328,9661,19171,15580,15366,11155,
-12734,16046,1734,6907,7202,12892,11690,11836,18759,5223,
-7525,19218,11897,13288,18340,12735,11140,20559,5788,2945,
-7000,8981,12517,3592,2794,5299,11156,19448,21012,6670,
-12895,9430,9397,13995,10385,9669,3158,10527,11228,6814,
-11979,10481,21007,5204,4039,19906,9677,4643,21465,15088,
-9750,7602,2798,13302,21190,10348,18289,9683,21191,2458,
-7824,4352,15099,6508,11800,19802,10238,9134,7646,17260,
-5738,8268,17458,10103,19270,7384,19200,19492,19326,17341,
-11884,1869,2211,9222,8270,14857,14362,21736,3113,13582,
-13493,2022,8170,19809,10630,9701,3160,10546,3472,8481,
-18296,9253,9228,21217,9411,9575,1108,11572,19816,10106,
-5687,6517,12857,17808,2331,2825,12804,8582,18943,8415,
-17025,17875,6069,9000,9273,8891,14905,862,17820,2629,
-13239,8606,8893,8608,2873,5568,19113,19613,17429,18697,
-16694,15460,7948,11973,6343,15695,6518,17833,12166,16996,
-17502,17837,16910,9776,2847,19043,4350,19637,2994,6526,
-1911,1912,8286,12915,2596,14082,2630,14086,21061,15203,
-15204,9650,20251,19624,9656,5733,4287,20567,11361,11362,
-18595,14464,17876,8421,12838,13390,15114,13269,18973,15961,
-18686,1977,6837,3849,20653,20047,16543,2763,15696,7949,
-14264,19168,3788,8162,9019,3165,3389,4080,7556,9803,
-1719,4040,7378,7385,21257,13293,18956,14123,8704,13125,
-18554,18129,6773,13628,6970,11974,6737,4103,18760,17463,
-5637,10935,877,7830,12293,2197,10829,10830,12290,9911,
-7237,13997,11460,16169,18089,4401,13794,17235,8221,13391,
-4002,11963,12138,8227,4189,1392,14019,10878,14001,14749,
-16184,6111,15323,14021,10479,11433,9507,15930,13816,20410,
-14071,20411,11022,10386,3868,8398,12785,18461,11633,1712,
-14377,12801,16847,13253,18205,3934,18508,20026,20762,1727,
-3474,14876,9373,11693,4515,5741,1683,20271,11161,3776,
-19946,2881,16244,4518,3320,16111,10794,13371,12447,12849,
-16675,16676,16020,8132,20793,20876,12855,8011,8012,13939,
-8490,6225,13589,1584,5137,21027,12072,8402,6390,11853,
-17866,17869,20007,18302,3413,19454,6411,6881,11856,10893,
-11109,2678,12073,1411,20877,12056,21372,20089,10122,20230,
-4728,10953,20092,16118,9594,11089,18779,4425,15717,14926,
-8925,8085,8177,18919,7234,21033,6746,1340,20232,21196,
-19437,5466,6326,12178,3039,2590,15105,2462,14981,8217,
-18039,14462,8404,4871,7106,5640,3414,19139,21089,18675,
-6685,20127,2505,16388,6308,7465,14994,4376,17705,4881,
-14075,20887,19205,16712,8657,10654,967,15679,11417,9442,
-18739,11091,13545,12529,17465,17570,15107,8903,13152,8279,
-12469,17744,20923,5676,11294,16683,13435,18931,8037,14521,
-12239,2224,7927,9925,13383,16435,5925,10806,19465,1821,
-3996,6240,18944,19334,9236,5943,9556,5331,9787,2951,
-4771,18945,15905,9322,7242,2680,8090,15171,2467,12153,
-17283,14440,9076,12453,5958,7977,11723,15972,17490,15872,
-4259,16085,9614,14879,14995,9444,14880,4024,20015,6180,
-17728,14711,2982,20493,8778,16273,16125,3931,16635,8196,
-14343,9816,6833,15317,13154,3556,8372,5511,5858,5962,
-21099,12232,6046,2264,12633,4546,2598,10405,8222,9445,
-20611,12476,15747,19725,11655,10406,11118,8050,10058,10587,
-13473,19726,11725,1619,6334,19837,9155,13254,12949,20890,
-19184,1827,1343,19832,16603,13965,4583,19833,8711,7158,
-14344,14079,12690,12343,16858,19835,13840,6589,7416,11927,
-13397,15856,4743,16636,15639,16356,13868,2066,6099,18323,
-6248,11097,10835,19230,18324,6210,14493,10943,20116,6845,
-11533,5758,2653,4321,9791,12808,12809,10910,15727,3118,
-16401,1969,6764,1831,17856,7060,7411,4788,18974,19208,
-14577,7749,20638,15453,19603,1467,11277,14526,15975,14474,
-19414,8228,3968,16054,7670,13398,15464,10220,6896,19874,
-11559,1178,19508,13557,21347,9845,2178,17201,2956,6144,
-21500,10759,19295,9119,4744,10277,16402,17092,19296,12506,
-7940,5777,15282,19885,9727,18607,11004,21405,2527,15381,
-3290,16203,5419,14055,20320,14581,10603,10688,16363,20117,
-16802,16544,13006,20243,14529,871,20023,19114,15127,15290,
-14530,863,12065,2837,16620,2011,11220,5286,6049,6673,
-17036,3626,20966,19240,7798,5258,15176,7713,6775,19158,
-5194,14849,2958,17495,19750,17782,6429,1478,1624,20977,
-7595,8809,14451,14261,11128,1000,10375,6397,19441,2235,
-4533,19372,5803,10762,13286,19619,7174,18171,2345,16989,
-7175,10304,10223,7907,5850,3102,20854,5089,13030,7718,
-3071,2961,16044,11996,15605,18664,16959,11129,15491,14262,
-5975,9728,16204,2609,5113,12206,21572,8630,12187,20495,
-2697,17902,6879,7499,18230,2902,9861,3185,15650,7549,
-3103,19341,6258,17658,14820,5650,3104,9047,17903,20978,
-12349,8444,7722,12508,3487,6789,7811,16761,12009,7075,
-16410,15146,12956,17045,17046,15253,4178,11286,13955,15142,
-20657,3105,18999,20988,16237,15394,18100,9013,18645,16007,
-13982,6167,1505,2192,14780,12602,9969,16411,14095,14088,
-2534,8099,6491,7629,9363,3218,6277,5938,20028,10192,
-6278,4935,6054,6122,17214,7503,14197,17047,1038,10378,
-11848,19634,10003,14486,3458,6599,20255,17604,19780,14681,
-18024,10085,10782,21520,19379,6794,1994,9801,3768,18707,
-6550,20660,10783,3407,19029,15210,12351,8325,15326,13215,
-21459,11877,5833,7953,12165,14091,7085,16516,2810,15332,
-15034,15884,14092,21234,9744,11102,14544,14825,11137,11849,
-19312,19313,11017,7959,12732,7197,21716,16667,15553,19197,
-19128,4133,3029,6904,13300,9261,8537,885,16413,1701,
-5533,12941,19314,1702,9094,4642,2014,10888,7526,16478,
-10666,20155,10454,9662,19447,18514,10384,15013,20997,19355,
-4038,16334,6715,17614,12048,14432,1638,2200,11226,10159,
-7375,14097,2539,5536,1706,6914,17311,10344,13242,13826,
-9678,8070,17452,19323,15190,16484,6507,18047,21188,10232,
-9181,4137,4537,6383,9182,14762,10097,19324,11103,7217,
-9806,7528,19267,9986,19065,7382,2210,3359,13676,7450,
-9216,4504,14870,19851,21470,4763,14360,9433,9217,3112,
-13491,19388,12943,4452,8473,18429,19327,13983,20164,10547,
-18419,9534,11105,14250,15398,3471,7699,2249,19329,6064,
-21214,9266,9226,11577,16241,10551,18111,17265,18432,5152,
-18436,19820,5668,17394,17395,6679,6203,21322,20357,17563,
-2639,20109,12794,21034,4673,11860,16561,12560,18920,12254,
-8580,12058,8581,12097,11457,9905,5670,17663,5671,5672,
-1567,3282,17079,20734,21198,8710,20525,4882,1078,17571,
-17572,10118,21411,12108,15354,18500,15887,14207,16389,6658,
-21091,7657,17877,6186,13592,6579,17760,17761,17236,19142,
-16686,21093,18548,14644,16345,15906,18043,20114,8583,17083,
-17974,20736,12532,6727,5679,2381,6689,2412,6757,9927,
-4902,8091,2382,12596,15840,21435,15874,5886,9299,14182,
-17884,2650,13795,6355,16860,14740,6143,18051,8837,8422,
-17415,16861,21360,8525,3682,17580,7053,16793,10493,18376,
-8223,10013,9039,6857,16088,16871,3203,16719,6211,8304,
-4966,16661,3068,4789,12481,13316,13966,16872,13317,17669,
-18975,7618,19741,5182,12305,5517,16327,14475,5569,14290,
-14291,11634,5336,16357,2424,6147,8993,21062,17068,6700,
-4790,9796,17681,7671,1479,19233,21230,16458,16032,14211,
-16885,11929,11930,2182,18227,8092,8097,10963,16505,20340,
-7936,13322,13855,6591,4490,13402,15205,18481,9934,7752,
-20216,5570,19990,11554,14664,9847,5456,15492,2357,4362,
-1842,6667,17539,17041,16805,19992,6118,6149,16892,20027,
-11515,14213,13323,18623,11130,9732,19304,16753,5408,18394,
-13052,1494,1629,3079,10436,7359,10287,12213,15178,19011,
-15893,8445,21592,6432,18822,20989,16509,10181,5978,11975,
-13712,8098,9051,3163,20296,7366,16912,16913,19012,17503,
-2668,6635,2240,18698,18103,18400,18104,13075,8536,3573,
-4179,14399,7632,4690,14958,19781,9974,8100,14299,4691,
-18105,9258,10947,15533,19030,8101,10987,8024,8025,19309,
-19044,18025,9206,15383,1996,16919,13631,21622,9751,6739,
-21208,10093,16371,19045,17549,20557,6803,3299,11934,1757,
-13882,6156,18066,7961,2742,3549,18631,6157,9262,1641,
-13824,9670,11406,13972,10528,9131,992,18071,8944,14917,
-9891,9684,10349,8463,9900,18415,16939,17617,10239,18716,
-1999,13688,19981,9263,3114,2702,5658,8338,2392,11075,
-15527,9264,21218,9254,10107,19822,20533,20731,12109,2465,
-16403,5936,8446,18652,21685,4404,2899,8671,20171,3850,
-13012,19374,13037,12060,2338,7339,2893,19614,20341,1553,
-1200,1843,2895,19515,4041,2471,11852,8109,15294,13748,
-10790,4544,5162,18363,5246,1303,14992,19530,5248,11439,
-3653,13599,13548,21566,10808,8760,12870,9490,12552,5173,
-15593,1345,13558,2957,7254,4749,8686,8229,2786,17042,
-1329,10661,7863,10679,14022,16510,9508,4153,15931,13105,
-16920,9671,4042,9945,12024,12395,1866,16940,2714,16419,
-13701,2715,1072,7105,2148,21426,5242,8645,1807,6302,
-18190,19135,4458,21357,8910,21070,11455,12255,8219,18780,
-17675,16139,10039,12256,11676,18596,19523,18040,3396,1811,
-23007,23008,23009,23010,23011,23012,23013,23014,23015,23016,
-23017,23018,23019,23020,23021,23022,23023,23024,23025,23026,
-23027,23028,23029,23030,23031,23032,23033,23034,23035,23036,
-23037,23038,23039,23040,23041,23042,23043,23044,23045,23046,
-23047,23048,23049,23050,23051,23052,23053,23054,23055,23056,
-23057,23058,23059,23060,23061,23062,23063,23064,23065,23066,
-23067,23068,23069,23070,23071,23072,23073,23074,23075,23076,
-23077,23078,23079,23080,23081,23082,23083,23084,23085,23086,
-23087,23088,23089,23090,23091,23092,23093,23094,23095,23096,
-23097,23098,23099,23100,23101,23102,11,34,37,328,
-70,72,68,118,23934,6,66,74,330,75,
-76,77,78,109,112,88,90,92,94,96,
-98,100,102,114,115,104,106,131,132,133,
-151,143,144,136,135,146,145,134,152,137,
-165,142,140,167,124,147,148,158,155,154,
-153,138,157,163,164,159,160,431,150,149,
-339,338,327,79,80,443,18,323,321,322,
-331,325,491,335,336,176,178,177,175,174,
-169,168,171,170,332,185,189,183,187,334,
-23103,23104,23105,23106,23107,23108,23109,23110,23111,23112,
-23113,23114,23115,23116,23117,23118,23119,23120,23121,23122,
-23123,23124,23125,23126,23127,23128,23129,23130,23131,23132,
-23133,23134,23135,23136,23137,23138,23139,23140,23141,23142,
-23143,23144,23145,23146,23147,23148,23149,23150,23151,23152,
-23153,23154,23155,23156,23157,23158,23159,23160,23161,23162,
-23163,23164,23165,23166,23167,23168,23169,23170,23171,23172,
-23173,23174,23175,23176,23177,23178,23179,23180,23181,23182,
-23183,23184,23185,23186,23187,23188,23189,23190,23191,23192,
-23193,23194,23195,23196,23197,23198,345,352,359,366,
-373,380,387,394,401,407,23679,23680,23681,23682,
-23683,23684,344,351,358,365,372,379,386,393,
-400,406,410,413,416,418,420,422,424,426,
-428,430,343,350,357,364,371,378,385,392,
-399,405,409,412,415,417,419,421,423,425,
-427,429,342,349,356,363,370,377,384,391,
-398,404,23685,23686,18727,4412,14015,14972,16730,10188,
-12616,1048,8127,14553,23687,23688,346,353,360,367,
-374,381,388,395,402,408,411,414,23689,23690,
-23199,23200,23201,23202,23203,23204,23205,23206,23207,23208,
-23209,23210,23211,23212,23213,23214,23215,23216,23217,23218,
-23219,23220,23221,23222,23223,23224,23225,23226,23227,23228,
-23229,23230,23231,23232,23233,23234,23235,23236,23237,23238,
-23239,23240,23241,23242,23243,23244,23245,23246,23247,23248,
-23249,23250,23251,23252,23253,23254,23255,23256,23257,23258,
-23259,23260,23261,23262,23263,23264,23265,23266,23267,23268,
-23269,23270,23271,23272,23273,23274,23275,23276,23277,23278,
-23279,23280,23281,23282,23283,23284,23285,23286,23287,23288,
-23289,23290,23291,23292,23293,23294,13,14,16,324,
-20,22,1,24,27,30,121,32,3,36,
-38,340,341,348,355,362,369,376,383,390,
-397,40,43,126,128,130,45,47,432,439,
-441,447,449,456,459,462,464,470,472,477,
-481,487,492,498,500,502,504,506,509,520,
-522,524,526,528,48,50,51,52,53,57,
-433,440,442,448,450,457,460,463,465,471,
-473,478,482,488,493,499,501,503,505,507,
-510,521,523,525,527,529,60,62,64,69,
-23295,23296,23297,23298,23299,23300,23301,23302,23303,23304,
-23305,23306,23307,23308,23309,23310,23311,23312,23313,23314,
-23315,23316,23317,23318,23319,23320,23321,23322,23323,23324,
-23325,23326,23327,23328,23329,23330,23331,23332,23333,23334,
-23335,23336,23337,23338,23339,23340,23341,23342,23343,23344,
-23345,23346,23347,23348,23349,23350,23351,23352,23353,23354,
-23355,23356,23357,23358,23359,23360,23361,23362,23363,23364,
-23365,23366,23367,23368,23369,23370,23371,23372,23373,23374,
-23375,23376,23377,23378,23379,23380,23381,23382,23383,23384,
-23385,23386,23387,23388,23389,23390,645,647,649,651,
-653,655,658,660,662,664,667,669,671,673,
-675,677,680,682,684,686,688,690,692,694,
-696,698,700,702,704,706,708,710,712,714,
-716,718,720,722,724,726,728,730,732,734,
-736,738,740,742,744,746,748,750,752,754,
-756,758,760,762,764,766,768,770,772,774,
-776,778,780,782,784,786,788,790,792,794,
-796,798,800,802,804,806,808,810,812,23691,
-23692,23693,23694,23695,23696,23697,23698,23699,23700,23701,
-23391,23392,23393,23394,23395,23396,23397,23398,23399,23400,
-23401,23402,23403,23404,23405,23406,23407,23408,23409,23410,
-23411,23412,23413,23414,23415,23416,23417,23418,23419,23420,
-23421,23422,23423,23424,23425,23426,23427,23428,23429,23430,
-23431,23432,23433,23434,23435,23436,23437,23438,23439,23440,
-23441,23442,23443,23444,23445,23446,23447,23448,23449,23450,
-23451,23452,23453,23454,23455,23456,23457,23458,23459,23460,
-23461,23462,23463,23464,23465,23466,23467,23468,23469,23470,
-23471,23472,23473,23474,23475,23476,23477,23478,23479,23480,
-23481,23482,23483,23484,23485,23486,644,646,648,650,
-652,654,657,659,661,663,666,668,670,672,
-674,676,679,681,683,685,687,689,691,693,
-695,697,699,701,703,705,707,709,711,713,
-715,717,719,721,723,725,727,729,731,733,
-735,737,739,741,743,745,747,749,751,753,
-755,757,759,761,763,765,767,769,771,773,
-775,777,779,781,783,785,787,789,791,793,
-795,797,799,801,803,805,807,809,811,656,
-665,678,23702,23703,23704,23705,23706,23707,23708,23709,
-23487,23488,23489,23490,23491,23492,23493,23494,23495,23496,
-23497,23498,23499,23500,23501,23502,23503,23504,23505,23506,
-23507,23508,23509,23510,23511,23512,23513,23514,23515,23516,
-23517,23518,23519,23520,23521,23522,23523,23524,23525,23526,
-23527,23528,23529,23530,23531,23532,23533,23534,23535,23536,
-23537,23538,23539,23540,23541,23542,23543,23544,23545,23546,
-23547,23548,23549,23550,23551,23552,23553,23554,23555,23556,
-23557,23558,23559,23560,23561,23562,23563,23564,23565,23566,
-23567,23568,23569,23570,23571,23572,23573,23574,23575,23576,
-23577,23578,23579,23580,23581,23582,530,532,534,536,
-538,540,542,544,546,548,550,552,554,556,
-558,560,562,564,566,568,570,572,574,576,
-23710,23711,23712,23713,23714,23715,23716,23717,531,533,
-535,537,539,541,543,545,547,549,551,553,
-555,557,559,561,563,565,567,569,571,573,
-575,577,23718,23719,23720,23721,23722,23723,23724,25,
-28,110,113,89,91,93,95,97,99,101,
-103,23725,23726,105,107,61,65,8,23727,82,
-87,23728,23729,23730,23731,23732,23733,23734,23735,23736,
-23583,23584,23585,23586,23587,23588,23589,23590,23591,23592,
-23593,23594,23595,23596,23597,23598,23599,23600,23601,23602,
-23603,23604,23605,23606,23607,23608,23609,23610,23611,23612,
-23613,23614,23615,23616,23617,23618,23619,23620,23621,23622,
-23623,23624,23625,23626,23627,23628,23629,23630,23631,23632,
-23633,23634,23635,23636,23637,23638,23639,23640,23641,23642,
-23643,23644,23645,23646,23647,23648,23649,23650,23651,23652,
-23653,23654,23655,23656,23657,23658,23659,23660,23661,23662,
-23663,23664,23665,23666,23667,23668,23669,23670,23671,23672,
-23673,23674,23675,23676,23677,23678,578,580,582,584,
-586,588,590,592,594,596,598,600,602,604,
-606,608,610,612,614,616,618,620,622,624,
-626,628,630,632,634,636,638,640,642,23737,
-23738,23739,23740,23741,23742,23743,23744,23745,23746,23747,
-23748,23749,23750,23751,579,581,583,585,587,589,
-591,593,595,597,599,601,603,605,607,609,
-611,613,615,617,619,621,623,625,627,629,
-631,633,635,637,639,641,643,23752,23753,23754,
-23755,23756,23757,23758,23759,23760,23761,23762,23763,23764,
-71,58,73,5,7,329,81,446,458,190,
-184,186,188,123,139,141,156,161,162,166,
-197,204,209,210,211,217,218,219,225,226,
-227,233,234,235,245,246,247,256,257,258,
-267,268,269,278,279,280,297,298,299,212,
-220,236,228,300,301,302,303,307,309,311,
-313,315,317,319,318,316,314,312,310,308,
-304,320,305,306,172,173,179,180,181,182,
-337,122,333,116,117,23765,23766,23767,23768,23769,
-23770,23771,23772,23773,23774,23775,437,434,436,435,
-455,451,454,452,469,466,468,467,497,494,
-496,495,515,511,514,512,519,516,518,517,
-513,453,438,23776,489,490,23777,461,23778,23779,
-23780,23781,813,814,815,816,817,818,819,820,
-821,822,823,824,825,826,827,828,829,830,
-831,832,833,834,835,836,837,838,839,840,
-841,842,843,844,845,846,847,848,849,23782,
-23783,23784,23785,23786,23787,23788,23789,23790,23791,23792,
-23793,23794,23795,23796,23797,23798,23799,23800,23801,23802,
-347,354,361,368,375,382,389,396,403,20773,
-484,474,486,445,475,483,444,476,479,480,
-485,41,326,67,23803,508,21167,23804,4,23805,
-23806,23807,23935,9,10,23936,23937,119,23938,23939,
-83,84,85,86,54,55,56,31,33,35,
-42,39,44,12,23,26,59,63,108,111,
-15,21,29,120,2,125,129,127,49,17,
-19,46,23808,23809,23810,23811,23812,23813,23814,23815,
-23816,23817,23818,23819,23820,0,23821,23822,23823,23824,
-23825,23826,23827,23828,23829,23830,23831,23832,23833,191,
-192,198,199,193,194,200,201,195,196,202,
-203,205,206,207,208,213,214,215,216,221,
-222,223,224,229,230,231,232,237,238,239,
-240,241,242,243,244,248,249,250,251,252,
-253,254,255,259,260,261,262,263,264,265,
-266,270,271,272,273,274,275,276,277,281,
-282,283,284,285,286,287,288,289,290,291,
-292,293,294,295,296,23834,23835,23836,23837,23838,
-23839,23840,23841,23842,23843,23844,23845,23846,23847,23848,
-8829,17231,6535,6086,20542,7042,18120,14179,15314,15901,
-9317,10807,16850,17084,1310,20931,18257,14124,5959,7983,
-12018,4587,17416,1130,12691,1620,19209,9156,7333,12998,
-9036,18384,21630,20942,20743,18167,9930,2092,21583,5037,
-4745,16637,19875,2869,16031,18206,17531,7250,1549,19478,
-18563,15235,1836,11304,15065,10689,19887,3315,19763,14531,
-6021,13003,18986,20644,2012,6025,10777,7575,11431,2185,
-1002,5217,3180,1359,1506,1495,6633,1901,9970,17909,
-15926,18626,14914,17436,14719,4149,7725,5316,8386,4033,
-6795,8879,17252,17253,11834,1558,21785,21786,21787,21788,
-21789,21790,21791,21792,21793,21794,21795,21796,21797,21798,
-21799,21800,21801,21802,21803,21804,21805,21806,21807,21808,
-21809,21810,21811,21812,21813,21814,21815,21816,21817,21818,
-21819,21820,21821,21822,21823,21824,21825,21826,21827,21828,
-21829,21830,21831,21832,21833,21834,21835,21836,21837,21838,
-21839,21840,21841,21842,21843,21844,21845,21846,21847,21848,
-21849,21850,21851,21852,21853,21854,21855,21856,21857,21858,
-21859,21860,21861,21862,21863,21864,21865,21866,21867,21868,
-21869,21870,21871,21872,21873,21874,21875,21876,21877,21878,
-6905,11896,11018,9944,11594,5692,14720,10345,15311,17313,
-11073,13677,11600,10627,17262,12754,8479,11208,21486,10333,
-15102,13369,5048,9375,1054,6226,3669,2883,5098,19567,
-12765,19568,2317,6231,16742,4819,7847,18193,10973,1202,
-19952,8405,20040,8406,7324,3397,12430,12996,18932,951,
-12470,4883,17960,3000,5431,7289,14307,3007,13669,14466,
-14378,15344,21686,10176,1444,20623,7883,7706,7474,9616,
-5680,17147,21094,18216,17786,18471,17853,15109,13192,19144,
-18090,1242,17380,17085,5708,2681,17878,12154,9347,3452,
-19224,16567,4261,2513,15633,16750,21879,21880,21881,21882,
-21883,21884,21885,21886,21887,21888,21889,21890,21891,21892,
-21893,21894,21895,21896,21897,21898,21899,21900,21901,21902,
-21903,21904,21905,21906,21907,21908,21909,21910,21911,21912,
-21913,21914,21915,21916,21917,21918,21919,21920,21921,21922,
-21923,21924,21925,21926,21927,21928,21929,21930,21931,21932,
-21933,21934,21935,21936,21937,21938,21939,21940,21941,21942,
-21943,21944,21945,21946,21947,21948,21949,21950,21951,21952,
-21953,21954,21955,21956,21957,21958,21959,21960,21961,21962,
-21963,21964,21965,21966,21967,21968,21969,21970,21971,21972,
-16716,2510,8526,10903,1315,15875,17286,2830,5964,17964,
-18262,17987,17789,4903,16862,10059,9624,7886,15277,4741,
-16257,3760,12433,20430,14083,11250,19742,9160,11251,14501,
-16404,15749,2834,1377,2472,4330,2270,1378,10413,5626,
-3784,1321,12999,21418,13200,4454,7888,4062,7860,6701,
-19680,10917,2940,17937,15646,17682,3347,13842,11254,7350,
-16459,13920,6592,17537,2863,7424,21326,2323,9797,13565,
-4098,18168,6630,10141,14536,13811,15283,18569,16545,16756,
-20654,7945,19306,10691,15548,10144,9651,9282,15761,13013,
-3229,8438,20536,1694,14752,2296,21973,21974,21975,21976,
-21977,21978,21979,21980,21981,21982,21983,21984,21985,21986,
-21987,21988,21989,21990,21991,21992,21993,21994,21995,21996,
-21997,21998,21999,22000,22001,22002,22003,22004,22005,22006,
-22007,22008,22009,22010,22011,22012,22013,22014,22015,22016,
-22017,22018,22019,22020,22021,22022,22023,22024,22025,22026,
-22027,22028,22029,22030,22031,22032,22033,22034,22035,22036,
-22037,22038,22039,22040,22041,22042,22043,22044,22045,22046,
-22047,22048,22049,22050,22051,22052,22053,22054,22055,22056,
-22057,22058,22059,22060,22061,22062,22063,22064,22065,22066,
-9052,21308,3080,18756,12724,8021,20202,13409,1006,9772,
-10979,19169,6464,16517,16723,3574,17793,20297,18106,13480,
-3494,9975,9876,13330,15149,5727,8026,4496,7891,10151,
-6988,6796,8027,912,20204,3459,7689,5816,15446,6804,
-6553,14096,15216,15737,2813,19638,7962,10346,1705,14771,
-21717,9211,17004,7203,17971,13927,16668,5090,9398,4043,
-9679,21013,13850,9709,20158,13332,15702,5736,15188,9135,
-10240,10350,9685,9265,19271,11078,17342,13335,5659,3552,
-20166,6564,1812,1822,20848,9705,14696,17347,13055,1161,
-12167,4566,3398,4797,11233,16212,22067,22068,22069,22070,
-22071,22072,22073,22074,22075,22076,22077,22078,22079,22080,
-22081,22082,22083,22084,22085,22086,22087,22088,22089,22090,
-22091,22092,22093,22094,22095,22096,22097,22098,22099,22100,
-22101,22102,22103,22104,22105,22106,22107,22108,22109,22110,
-22111,22112,22113,22114,22115,22116,22117,22118,22119,22120,
-22121,22122,22123,22124,22125,22126,22127,22128,22129,22130,
-22131,22132,22133,22134,22135,22136,22137,22138,22139,22140,
-22141,22142,22143,22144,22145,22146,22147,22148,22149,22150,
-22151,22152,22153,22154,22155,22156,22157,22158,22159,22160,
-6350,18790,1138,8373,2289,2560,10201,3484,11035,21378,
-12482,1554,21148,10202,3018,19241,12814,17208,10305,3708,
-11976,21309,10017,16765,3445,16627,19259,18343,15724,5934,
-2291,13265,14383,2227,2228,13930,15091,14397,10393,4786,
-20334,4856,12451,3878,13590,10995,1440,8146,15241,10123,
-11440,20011,4884,5330,7849,4885,15720,11441,15587,7543,
-16196,4895,11547,11444,11445,2058,15723,5061,1451,3266,
-20943,10563,12032,18741,6481,19604,19605,11447,8527,18957,
-10129,3842,6483,3455,21380,7592,2530,2325,16105,9393,
-2111,10152,3859,10020,7559,2744,22161,22162,22163,22164,
-22165,22166,22167,22168,22169,22170,22171,22172,22173,22174,
-22175,22176,22177,22178,22179,22180,22181,22182,22183,22184,
-22185,22186,22187,22188,22189,22190,22191,22192,22193,22194,
-22195,22196,22197,22198,22199,22200,22201,22202,22203,22204,
-22205,22206,22207,22208,22209,22210,22211,22212,22213,22214,
-22215,22216,22217,22218,22219,22220,22221,22222,22223,22224,
-22225,22226,22227,22228,22229,22230,22231,22232,22233,22234,
-22235,22236,22237,22238,22239,22240,22241,22242,22243,22244,
-22245,22246,22247,22248,22249,22250,22251,22252,22253,22254,
-12354,3866,3867,7773,3417,14744,20979,11522,1412,5163,
-21124,17120,17806,2446,18041,12674,17062,3191,1445,21628,
-18004,20808,4436,20891,4630,8185,14183,11699,15601,15889,
-7738,16442,6730,15388,2651,10960,8055,17418,15976,10812,
-17419,15158,12565,4201,14713,18987,1369,20510,5627,10676,
-9961,7166,15752,935,2656,1481,11255,4114,8681,18181,
-3134,14449,21064,20980,19764,4751,18483,2428,15999,5830,
-16571,6595,8842,19119,8448,16903,5616,19013,2896,6780,
-11925,3722,20516,14453,3142,19031,21634,15089,14093,3815,
-10313,10314,13216,4943,9879,13106,22255,22256,22257,22258,
-22259,22260,22261,22262,22263,22264,22265,22266,22267,22268,
-22269,22270,22271,22272,22273,22274,22275,22276,22277,22278,
-22279,22280,22281,22282,22283,22284,22285,22286,22287,22288,
-22289,22290,22291,22292,22293,22294,22295,22296,22297,22298,
-22299,22300,22301,22302,22303,22304,22305,22306,22307,22308,
-22309,22310,22311,22312,22313,22314,22315,22316,22317,22318,
-22319,22320,22321,22322,22323,22324,22325,22326,22327,22328,
-22329,22330,22331,22332,22333,22334,22335,22336,22337,22338,
-22339,22340,22341,22342,22343,22344,22345,22346,22347,22348,
-10154,9331,17220,4640,3390,19213,6155,17221,5617,16373,
-11889,19795,16417,19383,9428,9663,14784,3446,10006,10007,
-1681,7210,2577,18515,7757,20761,10891,9692,6922,9185,
-7009,17978,19348,19201,19392,15399,3732,10647,10554,10555,
-1775,1778,1079,4426,4427,13140,1389,20208,10861,11998,
-3040,10047,11370,7043,12233,5191,4263,5968,1468,2727,
-12976,875,17476,6055,6676,6056,20256,3188,6057,17480,
-18701,6059,7691,916,17694,6671,9686,12406,6134,7731,
-5119,12121,13399,13620,20323,5528,8503,8504,21150,20327,
-20328,20443,4044,12766,19283,1286,852,851,860,861,
-857,859,858,868,876,882,881,891,901,893,
-896,941,928,924,955,966,974,965,970,969,
-979,982,985,987,993,1005,1009,1023,1031,1033,
-1042,1041,1058,1061,1052,1051,1055,1062,1047,1059,
-1050,1076,1084,1093,1090,12005,1094,1105,1098,1096,
-1111,1114,1112,1120,1113,1126,1127,1131,1145,1142,
-1146,1139,1143,1144,1159,1160,1172,1175,1171,1183,
-1170,1169,1176,1184,1187,1189,1199,1201,1197,1205,
-1214,1203,1215,1204,1208,1223,1224,1220,1230,1780,
-20526,6087,6094,1781,16266,19553,4527,4967,13400,3540,
-10420,20432,9504,7908,17904,7356,12044,942,10339,17862,
-21113,3495,947,5537,9687,5138,16340,12795,19913,15721,
-17636,17023,4733,11245,11295,14640,20012,12031,4567,10866,
-17275,14645,18444,20737,18600,14384,6887,3311,20680,8930,
-8186,14441,10957,11371,21261,20628,14646,3832,11700,21568,
-2356,1747,11093,10214,15909,3871,3683,11623,11299,17988,
-20709,18472,11377,21078,11372,10912,13094,5969,6565,2548,
-3240,8376,4264,10760,17289,16874,9077,14212,15753,5814,
-16235,9473,14665,13324,9935,20751,1853,1236,1240,1243,
-1239,1237,1262,1261,1273,1263,1270,1279,1285,1290,
-1288,1284,1295,1323,1305,1297,1306,1308,1298,1301,
-1319,1320,1311,1339,1350,1349,1357,1364,1365,1373,
-1380,1387,1381,1393,1402,1405,1423,1417,1413,1496,
-1483,1501,1429,1449,1443,1427,1433,1480,1430,1456,
-1493,1428,1488,1511,1523,1519,1448,1563,1546,1550,
-1568,1569,1590,1591,1580,1605,1606,1608,1598,1615,
-1614,1630,1654,1666,1665,1672,1680,1687,1689,1700,
-1691,1686,1713,1729,1728,1744,1735,1740,1746,1745,
-9494,9172,15206,8380,12347,6839,10421,5195,21127,19620,
-6840,10704,17125,17716,6705,5815,20118,2971,7351,10964,
-6291,17939,15762,17905,4443,16666,5780,11053,16623,8812,
-3489,2399,13325,11395,4702,20257,20518,19032,3789,8796,
-11396,14893,3085,10290,2572,10750,5728,6600,14894,16921,
-12586,14430,9909,2391,7518,18702,17913,11423,5785,7519,
-18713,917,6810,7442,20560,10929,2758,14072,11842,18068,
-18634,6910,11023,11157,12440,11158,9431,8945,17951,11159,
-6923,10352,11028,10241,5660,10767,17006,15528,8622,21239,
-13193,19743,14907,20244,8482,14416,1766,1758,1779,1791,
-1798,1776,1785,1777,1829,1815,1835,1825,1844,1805,
-1809,1828,1790,1845,1830,1810,1808,1898,1894,1897,
-1896,1920,1904,1905,1908,1929,1919,1910,1931,1938,
-1944,1940,1939,1941,1953,1956,1946,1951,1957,1959,
-1972,1962,1975,1974,1976,1983,1991,2004,2007,2000,
-2003,2021,2026,2027,2034,2029,2041,2052,2067,2051,
-2050,2055,2083,2088,2105,2094,2119,2120,2117,2128,
-2122,2127,2137,2142,2139,2145,2150,2152,2166,2165,
-2186,2180,2175,2183,2229,2220,2230,2255,2261,2265,
-6285,19332,21100,7690,20298,19940,1104,3897,12790,21542,
-16782,20568,8817,5164,3370,8409,9603,4823,16562,4280,
-8624,20888,7851,1685,4297,20569,15195,16213,7878,11373,
-8187,19715,10638,16144,4306,11446,21225,11910,12454,10048,
-12122,9378,1782,12534,19430,8931,8759,13555,21171,5682,
-4313,12839,10408,16443,895,17287,18263,12184,9348,6244,
-13270,16498,13091,2089,8761,13614,2252,9283,6212,19606,
-17421,17093,1207,10269,19415,2371,2385,18385,14130,9067,
-5518,2090,6449,10371,2437,11932,15030,21448,8763,18329,
-21381,8779,2528,12708,21631,13294,2306,2285,2287,2278,
-2286,2281,2305,2310,2318,2321,2319,2335,2328,2332,
-2342,2346,2348,2340,2354,2355,2364,2373,2388,2384,
-2378,2389,2394,2404,2407,2403,2417,2405,2406,2408,
-2449,2445,2478,2447,2501,2536,2493,2495,2507,2521,
-2518,2535,2498,2496,2545,2546,2550,2551,2569,2592,
-2597,2585,2588,2584,2586,2625,2620,2618,2614,2640,
-2648,2638,2646,2675,2676,2693,2694,2703,2709,2733,
-2724,2735,2728,2726,2729,2716,2721,2756,2750,2760,
-2766,2764,2791,2774,2796,2778,2785,2775,2772,2808,
-9962,8501,1793,11256,7352,6148,13621,9465,19159,16754,
-12709,10591,11591,13923,18276,3907,16152,19236,8734,16465,
-14913,20655,4100,17099,3488,15648,11612,15732,12815,4175,
-4752,13629,13069,10692,5387,15143,4269,10146,14954,15497,
-6465,12273,8996,15734,17102,12649,9738,16511,20050,4115,
-9114,12030,18577,21312,2195,12820,1008,12190,10193,10382,
-8620,2903,2441,19121,9424,12390,12821,12822,3181,21599,
-2993,10596,6994,14238,9332,20299,7520,17053,3911,3770,
-1800,20104,13077,3608,9664,7521,16922,20497,13108,7443,
-19791,21391,6128,8738,20260,9454,2803,2805,2851,2836,
-2838,2819,2854,2859,2861,2872,2864,2867,2879,2882,
-2890,2892,21361,2898,2444,2905,2912,2913,2920,2926,
-2915,2933,2938,2963,2950,2954,2948,2974,2976,2983,
-3001,3012,3021,3022,3019,3017,3014,3006,3037,3045,
-3053,3043,3084,3069,2889,3058,3057,3093,3117,3123,
-3141,3143,3130,3153,3164,3162,3177,3170,3171,3196,
-3204,3205,3200,3207,3215,3220,3225,3231,3232,3228,
-3255,3252,3260,3267,3274,3291,3295,3308,3309,3313,
-3317,3318,3354,3329,3333,3319,3335,3342,3330,3344,
-7820,2814,18717,13633,3496,18873,12281,12282,19642,12426,
-12824,919,8701,7379,19796,13928,12125,3032,1861,18516,
-10710,17224,8946,9400,9432,21017,9680,9688,4505,13636,
-12126,19272,9693,10242,10243,11408,14858,5661,9223,1934,
-18297,13775,19949,15295,10699,17566,18531,12671,1362,4125,
-21071,21072,18737,14570,19531,20924,15776,4991,11114,15161,
-10955,2151,10494,19666,16717,21262,5755,17086,20809,5232,
-5233,14881,7934,14443,5062,9066,3684,15570,5552,5647,
-21724,10070,10414,3520,20845,1469,2807,6702,19510,19115,
-21507,6897,20646,19928,16720,17245,3331,3372,3367,3364,
-3366,3373,3403,3399,3410,3427,3411,3422,3423,3415,
-3421,3425,3451,3464,3465,3480,3481,3500,3518,3532,
-3515,3513,3519,3512,3534,3545,3535,3541,3537,3562,
-3555,3564,3579,3568,3569,3580,3589,3584,3582,3603,
-3595,3606,3617,3619,3623,3613,3620,20383,3628,3650,
-3648,3663,3693,3685,3674,3666,3677,3692,3723,3716,
-3720,3740,3736,3734,3769,3751,3745,3746,3747,3750,
-3757,3759,3758,3761,3786,3775,3790,3779,3774,3806,
-3801,3802,3805,3821,3820,3854,3858,3824,3836,3848,
-18482,20818,18748,10918,14938,3695,1326,20656,19424,7176,
-5237,15494,14944,10707,15324,5018,17941,12725,19792,6989,
-15008,2196,3441,5786,15217,9568,11879,11071,3533,9672,
-19982,20829,20167,9459,13835,17581,15967,13720,21543,2115,
-18921,17143,11714,13342,4709,6039,20013,20801,7974,20802,
-19709,8836,1177,12259,11650,9619,19466,12260,1823,10049,
-11716,21755,20810,8288,6872,15910,20945,6873,6101,19102,
-21492,20946,13731,4075,21265,11871,5008,5212,20276,14882,
-9068,5127,7987,15640,15996,18209,10599,10423,5555,21760,
-21408,1211,6966,20967,9071,9466,3873,3880,3875,3881,
-3887,3889,3906,3898,3894,3914,3918,3919,3941,3944,
-3948,3957,3950,3955,3949,3958,3978,3987,3984,3990,
-3994,3998,4005,3977,4020,4023,4029,4058,4025,4060,
-4064,4063,4070,4078,4071,4073,4076,4069,4087,4090,
-4101,4091,4092,4094,4111,4123,4119,4120,4145,4141,
-4155,4143,4170,4162,4169,4166,4171,4196,4184,4181,
-4193,4211,4219,4208,4240,4236,4226,4237,4235,4268,
-4257,4267,4255,4273,4251,4256,4305,4286,4293,4326,
-4316,4308,4360,4370,4369,4396,4395,4399,4398,4411,
-12208,9994,21675,19752,10565,10566,18751,17043,1575,7177,
-4930,1497,11949,7753,21065,21589,17827,2452,3542,9799,
-21513,19773,17910,20990,5218,5529,13812,15211,13833,7190,
-8632,1988,10980,21008,7178,10445,15095,6990,19343,16596,
-13353,9102,19033,6642,13165,7119,17444,12587,7635,21421,
-15934,21735,10508,15219,11881,14098,6811,13673,11957,19797,
-12427,7211,16066,16597,2486,6911,8947,10510,1645,14100,
-21422,9542,3161,18186,19547,14379,8015,18615,9318,18601,
-1234,1748,16197,21202,7707,3803,16689,5712,2891,18619,
-17422,2514,8807,3431,21449,17824,4418,4424,4437,4442,
-4433,4432,4439,4449,4453,4469,4456,4459,4468,4492,
-4481,4483,4499,4475,4485,4510,4514,4521,4522,4516,
-4520,4519,4541,4542,4539,4556,4555,4553,4554,4560,
-4561,4563,4575,4585,4578,4580,4576,4600,4608,4609,
-4619,4624,4620,4622,4626,4650,4661,4647,4652,4646,
-4649,4668,4680,4671,4701,4707,4704,4708,4711,4712,
-4721,4731,4730,4750,4737,4747,4722,4732,4740,4772,
-4768,4777,4780,4785,4784,4800,4806,4812,4843,4820,
-4841,4860,4869,4924,4913,4880,4904,4854,4876,4870,
-15094,5614,21419,16641,16205,18210,13326,18578,18579,15799,
-2349,15735,3816,8326,9877,16914,16809,8957,2897,20531,
-8894,8895,2485,3210,9880,20221,3168,13134,13333,4013,
-20225,10266,13170,2820,14560,4986,12858,2826,6236,12675,
-6016,14467,4654,11209,13505,21263,10050,10216,1767,1117,
-15001,6249,8056,3810,18988,14815,8052,13509,12456,9505,
-21320,2086,3575,3219,16224,8072,8612,8073,9377,12194,
-2593,10802,21199,16252,7658,15162,13222,18161,21374,19867,
-6002,2081,12295,18859,3932,14186,17088,21204,11505,5473,
-13155,11275,1226,2061,12156,10060,4894,4901,4919,4912,
-4853,4952,4951,4964,4959,4960,4956,4963,4968,4953,
-4971,4994,5000,5034,5013,4989,5004,4980,4987,4978,
-5016,4982,5006,4979,4983,4981,5015,4984,5045,5044,
-5052,5070,5085,5078,5079,5081,5091,5092,5097,5103,
-5104,5099,5123,5128,5120,5124,5150,5153,5156,5166,
-5165,5160,5159,5158,5180,5181,5201,5187,5190,5198,
-5188,5202,5213,5220,5219,5227,5250,5257,5255,5240,
-5253,5251,5247,5254,5273,5279,5275,5281,5272,5283,
-5313,5308,5309,5317,5319,5320,5332,5327,5329,5344,
-11905,4905,4487,5126,4528,14605,10857,14651,13312,11276,
-10656,5775,13442,2602,19111,18620,1422,9084,7665,15245,
-13869,6960,6007,21081,9161,3454,2069,4838,16000,9495,
-9286,8258,5628,7425,5935,15941,17098,20969,2522,15163,
-21278,21761,15857,2070,5235,5112,8905,20024,11962,17475,
-12547,9163,21648,12021,1499,5314,15358,5600,19556,7357,
-20552,6398,20755,14154,21128,10431,9963,8529,4931,20324,
-5486,12886,8530,2927,2073,21676,1875,17942,1555,15248,
-17248,12492,17686,6371,14539,19939,2941,10524,16696,3945,
-14915,7077,7800,17687,10967,4535,5348,5352,5354,5364,
-5369,5368,5376,5379,5371,5378,5366,5374,5365,5394,
-5395,5396,5404,5403,5415,5412,5414,5429,5428,5442,
-5439,5441,5446,5481,5474,5462,5485,5461,5465,5464,
-5463,5524,5495,5513,5504,5500,5501,5543,5545,5541,
-5553,5564,5563,5582,5585,5589,5594,5596,5597,5603,
-5612,5605,5607,5608,5606,5629,5625,5663,5642,5657,
-5639,5667,5688,5695,5717,5702,5699,5711,5698,5701,
-5706,5742,5753,5746,5751,5773,5769,5779,5772,5765,
-5799,5800,5812,5828,5821,5841,5856,5868,5872,5879,
-2875,4754,21288,6262,13163,13350,11202,12984,5488,14588,
-20032,6124,15501,19974,2713,13971,20758,11789,12986,17478,
-5388,12086,4067,21460,2789,14159,21289,13016,10227,7367,
-1927,6805,1515,3634,3086,18237,14110,3166,12318,12404,
-19798,16045,20258,14160,5787,18832,6434,2241,8813,12497,
-20219,6995,10307,2075,11731,15268,3167,3793,15269,9383,
-9810,17445,1862,11141,14161,3497,9885,3392,4975,7444,
-11287,9022,3357,7639,15249,9333,17453,10460,14689,20135,
-12781,12023,12736,12321,5133,8333,10461,10455,18288,3461,
-14012,21296,5424,12896,9758,14690,5883,5882,5884,5893,
-5890,5892,5891,5906,5910,5916,5933,5915,5929,5931,
-5917,5944,5942,5983,5982,5956,5953,5981,5955,5963,
-5951,5948,5993,5999,6003,6029,6028,6023,6018,6035,
-6034,6044,6036,6043,6067,6070,6096,6102,6093,6074,
-6079,6076,6075,6100,6114,6089,6081,6098,6151,6150,
-6152,6139,6166,6165,6170,6173,6174,6176,6178,6177,
-6190,6192,6184,6204,6205,6207,6239,6247,6235,6224,
-6220,6222,6286,6284,6288,6300,6305,6310,6303,6321,
-6318,6323,6366,6352,6363,6351,6373,6349,6372,6360,
-9218,9024,19647,19977,6031,20667,15367,15704,11801,2745,
-18839,12746,15615,21338,21157,4472,14789,21156,12944,21473,
-15617,10469,10353,7389,16187,19328,19812,9187,10246,13171,
-9764,9227,12904,19984,21054,13495,9765,1566,4108,21702,
-9543,14550,10632,19331,19986,21475,19821,4482,14371,20570,
-14380,11917,6088,11647,3227,20507,12863,20374,1418,1163,
-16789,14125,8625,13837,1419,15197,19145,20574,11094,15377,
-6420,5107,8294,11378,21145,2563,15115,6250,15913,2062,
-9960,21348,1118,9312,4384,13443,6107,17294,4920,9561,
-19968,10432,8232,12716,1132,20479,6348,6391,6393,6410,
-6401,6412,6404,6444,6455,6454,6461,6460,6476,6474,
-6473,6477,6501,6499,6498,6500,6511,6516,6531,6537,
-6530,6566,6576,6580,6575,6590,6593,6582,6578,6574,
-6570,6607,6611,6617,6641,6639,6644,6612,6614,6623,
-6629,6660,6664,6657,6663,6678,6684,6696,6713,6682,
-6731,6718,6774,6735,6785,6741,6763,6760,6758,6761,
-6744,6756,6743,6745,6752,6749,6830,6828,6831,6846,
-6843,6856,6867,6871,6875,6874,6888,6882,6894,6906,
-6883,6892,6929,6935,6952,6936,6965,6978,6949,6971,
-5865,6450,14029,15498,1577,11182,21633,7505,9509,17606,
-4847,11952,1336,5531,17783,7259,21352,15505,14032,4717,
-7598,11340,14033,14034,11956,2670,9826,8882,1880,6558,
-14787,7212,17314,16048,11806,9689,21783,3638,11807,15809,
-9267,14923,8111,5372,20764,8113,19524,7143,2143,21139,
-18085,19938,6237,19549,5249,16253,13755,16564,13384,11502,
-21487,15959,11862,4804,7147,14736,2952,12261,20708,14126,
-6241,20892,7045,4656,20016,13758,3402,7884,4570,3193,
-8138,20094,1064,4831,20948,12639,2710,6245,20095,17027,
-4906,17582,14388,1788,21266,13507,6938,6932,6944,6987,
-6928,6941,6947,6953,6961,7026,7033,7057,7069,7092,
-7061,7024,7041,7047,7030,7032,7063,7031,7108,7101,
-7109,7102,7168,7131,7187,7136,7126,7159,7135,7155,
-7142,7153,7152,7124,7125,7140,7130,7134,7129,7148,
-7127,7257,7236,7228,7232,7241,7227,7268,7278,7292,
-7287,7293,7307,7312,7304,7306,7305,7308,7320,7330,
-7319,7317,7334,7321,7349,7329,7325,7326,7316,7341,
-7401,7410,7400,7432,7418,7397,7404,7426,7399,7407,
-7406,7467,7498,7494,7491,7468,7458,7495,7504,7459,
-10061,21267,14318,5144,18503,4907,16147,20682,3340,2831,
-14524,21042,17196,21688,8079,1179,13475,11379,14809,21720,
-8933,7984,13763,6008,17588,7792,21174,2725,5592,1119,
-8431,8934,6362,3051,6542,5337,15540,17532,8840,7666,
-13560,5071,10657,17991,1366,17290,4915,5318,15914,13798,
-15804,19112,9419,17589,8377,5063,3843,15940,14934,7591,
-17353,6765,8432,7427,8381,2570,16607,20713,10498,2523,
-13403,14750,1198,15942,17427,6544,13180,5355,17781,15647,
-17792,17538,6255,17038,4921,15841,15186,4130,9072,4839,
-7991,6424,20819,18270,8095,4776,7470,7475,7464,7463,
-7478,7486,7473,7462,7548,7539,7540,7542,7538,7561,
-7569,7567,7566,7565,7581,7593,7585,7631,7616,7634,
-7617,7615,7606,7607,7611,7614,7609,8468,7663,7662,
-7660,7650,7661,7652,7648,7654,7687,7653,7667,7711,
-7719,7708,7709,7701,7712,7747,7736,7735,7739,7751,
-7733,7805,7767,7763,8220,7772,7788,7799,7808,7777,
-7778,7832,7829,7842,7867,7843,7848,7854,7837,7850,
-7853,7845,7869,7889,7871,7874,7870,7876,7894,7898,
-7904,7895,7903,7923,7942,7930,7941,7922,7932,7931,
-7167,17898,13734,21590,2398,4220,9652,10521,9822,2734,
-13594,14319,12717,21406,12719,16283,12980,17299,14717,16407,
-15572,16284,5175,16330,1371,21384,1955,5866,3206,10592,
-10180,12779,20457,1500,2988,10080,11150,12647,13160,15733,
-21591,5804,21649,16894,21514,17730,9835,7909,4590,13931,
-11258,19765,21620,4491,10522,17906,19242,14284,12720,17911,
-17335,7360,8735,17302,13924,11151,6979,4102,2699,3709,
-11259,10841,19892,17599,1253,14955,13351,1556,6568,5340,
-3082,11178,16512,5021,16470,15956,5421,11203,17544,9800,
-21593,1601,5807,19122,15651,5574,7919,7920,7975,7992,
-7972,7989,7986,7996,7969,7980,7993,7990,7971,8005,
-8030,8017,8016,8064,8060,8054,8068,8034,8043,8059,
-8051,8044,8032,8088,8093,8119,8110,8107,8135,8137,
-8128,8134,8126,8139,8152,8153,8143,8144,8157,8145,
-8154,8147,8213,8176,8178,8184,8175,8180,8224,8216,
-8250,8254,8253,8252,8315,8278,8301,8273,8282,8303,
-8320,8311,8290,8272,8300,8287,8293,8341,8345,8340,
-8366,8374,8354,8370,8389,8478,8401,8418,8413,8458,
-8412,8396,8399,8410,8489,8499,8494,8487,8488,8519,
-20998,20073,2479,2194,3351,17103,19893,21621,17834,14484,
-16366,5341,14114,19310,7954,19034,21386,11709,1194,5530,
-12046,21153,7368,3004,13574,14868,20076,17105,3182,7191,
-13817,15551,5027,20033,20693,5221,13907,6376,20131,15608,
-17306,15147,20694,21635,15552,6668,1960,1516,4779,3144,
-9516,15270,18339,17000,21637,9395,21332,12989,10785,20858,
-10509,11400,12392,9745,18000,21623,6996,14200,15220,10526,
-1372,18758,14058,11323,13047,6848,17166,7198,14144,17799,
-13663,18001,15224,13080,20301,21765,20826,14241,14035,9981,
-19799,4501,9886,2337,21741,7527,8515,8528,8522,8516,
-8524,8545,8544,8546,10204,8552,8554,8571,8559,8567,
-8589,8593,8591,8598,8600,8614,8626,8629,8633,8637,
-8644,8639,8647,8655,8656,8659,8664,8668,8669,8670,
-8680,8695,8692,8673,8702,8703,8708,8714,8715,8716,
-8720,8725,8741,8745,8743,8744,8757,8755,8773,8786,
-8785,8787,8790,8797,8800,8805,8819,8820,8826,8830,
-8843,8832,8841,8846,8853,8855,8857,8856,8864,8872,
-8866,8865,8884,8892,8896,8904,8909,8929,8926,8932,
-8923,8922,8950,8954,8952,8955,8971,8963,8977,8992,
-13709,2243,13936,17800,6812,6495,21698,16928,13049,20034,
-3300,14487,6815,7213,14099,7445,7562,6559,13081,3089,
-7868,7694,1531,2204,19057,11885,15225,19058,14141,13884,
-7218,1708,12959,9219,12590,18072,12747,12225,18637,11409,
-9457,17555,21701,8948,19449,17915,9401,17176,2212,7697,
-10354,2213,19276,1945,13689,17180,21712,21703,10667,17007,
-9255,9412,9809,6227,13749,21244,20700,3829,17026,19231,
-15568,20065,17291,3173,17568,4808,4809,12626,1789,12483,
-17382,20548,5176,19250,5654,21742,15425,2017,12825,16628,
-19268,9402,15432,10355,14973,5154,9008,9004,9005,9028,
-9029,9062,9075,9080,9078,9089,9088,9103,9104,9115,
-9124,9120,9127,9106,9148,9141,9173,9196,9192,9191,
-9190,9204,9195,9188,9200,9198,9237,9235,9244,9238,
-9256,9257,9279,9281,9274,9277,9270,9296,9308,9311,
-9314,9316,9340,9341,9343,9360,9357,9356,9379,9369,
-9388,9396,9425,9422,9446,9426,9417,9451,9440,9443,
-9441,9463,9464,9469,9476,9478,9486,9514,9515,9479,
-9480,9493,9558,9549,9550,9566,9547,9482,9605,9581,
-9611,9583,9578,9585,9618,9577,9584,9630,9590,9598,
-13649,14373,5471,21226,8188,10999,11247,5591,15642,8378,
-4916,14394,5593,21450,19753,962,4444,14945,10708,10182,
-1101,4446,2350,16518,1507,7199,2690,10185,8387,11142,
-20561,10621,12322,7014,7020,10548,11086,3283,18469,19502,
-19500,4676,1065,18521,5506,12997,20172,5189,18958,21268,
-18808,13799,13645,13044,6545,17295,18990,18509,13014,12933,
-19625,5342,19899,4502,14203,4694,14204,9780,11891,13053,
-5405,2682,4657,6242,2647,3194,4908,17089,12172,9107,
-12264,10189,20949,13476,16951,17533,16878,8706,6767,6695,
-17423,14153,6256,7547,3543,14155,9634,9580,9626,9588,
-9597,9576,9503,9553,9710,9721,9718,9714,9757,9725,
-9716,9717,9715,9766,9768,9793,9786,9785,9783,9819,
-9813,9815,9820,9811,9828,9842,9846,9844,9839,9841,
-9869,9855,9856,9854,9875,9857,9853,9352,9902,9908,
-9881,9859,9906,9914,9933,9926,9915,9929,9959,9952,
-9979,9977,9953,9951,9988,9957,9996,10012,10009,10027,
-10044,10067,10078,10079,10051,10028,10063,10046,10030,10052,
-10035,10112,10116,10115,10119,10128,10140,10130,10138,10126,
-10121,10145,10125,10173,10187,10205,10218,10207,10217,10226,
-2662,17943,2667,21594,16297,6710,6295,6153,12393,9746,
-13485,1012,9982,12173,13135,1014,6816,17952,3550,9339,
-5432,5435,5433,3833,13915,4377,4084,15836,12265,2599,
-13519,7246,8295,2780,10600,7071,20259,10291,7001,9365,
-6915,19450,6509,18906,13195,20018,3371,6243,20837,20838,
-20683,2383,20745,19505,16215,15770,4385,18207,15813,14106,
-6050,14504,9936,7994,1424,3660,5851,16572,17907,12484,
-3072,3908,3909,15864,8264,3083,8956,9739,9740,16624,
-9016,9747,9752,3087,14478,15045,15843,9023,11795,20859,
-3393,11837,13142,7531,15844,15846,10219,10258,10260,10257,
-10280,10273,10300,10306,10310,10308,10323,10321,10335,10322,
-10327,10369,10365,10366,10372,10466,10422,10316,10425,10401,
-10411,10444,10415,10398,10394,10434,10474,10486,10496,10488,
-10491,10505,10497,10499,10515,10519,10513,10516,10419,10517,
-10531,10532,10530,10536,10557,10558,10561,10562,10571,10579,
-10574,10573,10576,10577,10601,10612,10620,10608,10613,10616,
-10617,10618,10640,10658,10650,10653,10651,10671,10675,10684,
-10685,10686,10682,10701,10714,10712,10715,10718,10728,10729,
-10725,10730,10749,10746,10743,10761,10780,10768,10775,10776,
-10247,20545,14996,15128,20554,18888,13372,8740,2045,5245,
-3614,6572,2617,13750,13891,19917,2099,5919,4674,12129,
-12074,19459,13652,16591,12673,12291,16831,16832,8742,3830,
-1446,1080,1817,13469,15722,21544,4607,20803,11696,12180,
-21570,4824,17192,11442,13437,8674,2623,18443,12075,2557,
-17745,4380,6188,21571,5709,2511,15796,3195,10900,17524,
-17525,10731,17526,11815,16604,16594,17764,8053,19506,6181,
-9931,14184,15876,10904,2955,14444,7274,15592,8343,7054,
-17763,17666,16126,2515,16070,4003,11606,12332,5512,9461,
-20509,15201,7750,9833,14872,1621,10770,10795,10803,10799,
-10994,10793,10817,10825,10833,10840,10827,10828,10856,10849,
-10864,10865,10872,10881,10867,10890,10896,10895,10902,10922,
-10926,10916,10894,10899,10907,10945,10936,10938,10954,10959,
-10951,10958,10971,10983,10990,11001,11036,11021,11005,11037,
-11034,11046,11045,11096,11064,11072,11067,11057,11060,11055,
-11085,11116,11112,11111,11132,11117,11121,11149,11145,11147,
-11170,11162,11166,11168,11175,11181,11188,11190,11191,11204,
-11198,11200,11207,11206,11221,11217,11234,11268,11264,11274,
-11273,11272,11292,11311,11293,11300,11291,11318,11321,11325,
-10590,12368,5874,13561,2924,3428,11628,11514,13764,14445,
-2985,8199,3969,12308,5846,16664,10919,13921,4173,2657,
-10615,11988,3696,936,11611,14847,20069,21063,13843,16001,
-16461,7672,7255,4099,1482,2292,12954,16218,14714,15495,
-15134,21382,19001,9862,7072,12312,17540,10502,11977,2297,
-10437,5853,12078,2853,7577,4844,21310,10438,7630,19353,
-10480,18031,2077,15932,11710,9878,3209,5729,17440,15598,
-4497,20857,7633,6344,3208,18724,17336,15189,4716,21295,
-3409,8880,11880,8459,2848,8361,9129,9777,16103,12737,
-3213,1720,18067,11618,16669,20188,11331,11346,11332,11333,
-11339,11336,11349,11352,11355,11376,11391,11401,11364,11386,
-11385,11366,11420,11413,11428,11437,11435,11434,11436,11429,
-11467,11475,11468,11464,11474,11450,11452,11472,11458,11479,
-11485,11491,11621,11501,11494,11499,11497,11521,11518,11519,
-11531,11529,11544,11539,11549,11568,11584,11604,11602,11613,
-11615,11625,11627,11493,11635,11636,11642,11665,11648,11646,
-11643,11674,11673,11698,11707,11697,11705,18231,11712,11713,
-11729,11728,11724,11737,11741,11744,11747,11758,11760,11769,
-11799,11771,11786,11787,11768,11817,11823,11822,11830,11819,
-17312,1642,17733,9056,9132,18239,10351,6921,20098,10644,
-13496,20189,10549,11670,20099,12859,16654,5696,9980,5693,
-7647,7162,5193,2761,11152,11790,5278,7488,3845,20816,
-17766,15359,17271,2100,13616,19682,17688,8265,8163,17671,
-14339,8136,15389,14673,15458,12611,12612,5631,6496,15763,
-17100,3507,4484,12000,15378,4486,2866,10331,10066,17090,
-13319,12084,8849,4922,20217,4778,9497,19616,9287,15880,
-1846,11740,8205,6638,21595,1602,11477,3857,3983,1216,
-2110,19035,2015,10292,3355,18032,18632,3577,3462,13039,
-10387,18874,7091,7532,6916,12748,11821,11845,11851,11855,
-11861,11858,11870,11869,11866,11886,11901,11908,11912,11915,
-11928,11924,11923,11936,11954,11958,11942,11961,11968,11971,
-11969,11992,11986,11987,11994,12001,11999,12004,12011,12012,
-12007,12014,12017,12020,12016,12027,12026,12034,12033,12037,
-12045,12061,12062,12055,12059,12071,12081,12083,12094,12098,
-12099,12103,12102,12107,12110,12117,12119,12127,12131,12137,
-12141,12139,12135,12155,12148,12147,12163,12168,12181,12177,
-12183,12215,12199,12209,12200,12207,12217,12218,12192,12210,
-12231,12237,12250,12257,12284,12247,12252,12272,12306,12292,
-10389,10356,2216,14861,7370,12455,18412,18428,2040,9374,
-15833,15771,7605,12191,18896,2097,11144,5094,19700,6408,
-21561,6750,15167,20902,16093,16427,12791,16560,13721,4862,
-21245,6445,8403,7133,1021,2773,10862,13776,5996,19136,
-19498,18907,13139,12331,3672,3616,9596,19429,1304,18852,
-21250,11677,1813,1741,17779,18597,17144,6232,20347,3923,
-3823,11765,6327,10897,14463,5565,1441,16492,4875,21479,
-20882,7144,3063,11749,18017,5271,9604,13789,2155,2410,
-19710,6011,21562,9922,16714,4185,5705,3048,5444,5677,
-7613,19579,21484,4438,10819,21073,12299,12307,12294,12285,
-12327,12333,12350,12341,12355,12363,12360,12358,12381,12389,
-12387,12399,12408,12416,12419,12425,12435,12431,12443,12449,
-12450,12462,12464,12477,12458,12460,12473,12459,12466,12500,
-12502,12505,12511,12533,12539,12526,12535,12540,12558,12566,
-12555,12575,12578,12576,12580,12594,12592,12593,12597,12595,
-12601,12614,12613,12636,12638,12624,12630,12619,12615,12623,
-12646,12621,12618,12667,12701,12668,12670,12692,12686,12680,
-12660,12715,12672,12659,12698,12769,12760,12756,12758,12762,
-12797,12798,12818,12783,12787,12788,12789,12793,12784,12827,
-12856,21200,6536,4825,5058,3284,2878,7976,4378,968,
-13088,2594,12471,7879,9345,14805,21343,3285,2056,19580,
-4074,16436,9481,3997,4829,13730,19146,1918,20042,15173,
-2506,2413,16715,1674,16851,5353,21264,11375,21346,21756,
-16122,13385,15256,2414,12196,11000,17725,7978,2370,8495,
-18259,3253,5960,3254,7272,16315,19468,11863,14289,17284,
-16601,7783,11548,11461,16026,11637,10818,3050,3686,13470,
-3933,21644,9108,10409,16499,11773,9037,12577,20115,5211,
-5860,10588,2722,2921,20453,10978,9487,1266,13237,8359,
-13196,3656,7740,7900,13092,15355,12836,12837,12862,12848,
-12860,12867,12842,12851,12878,12843,12873,12919,12937,12917,
-12918,12912,12932,12952,12947,12957,12970,12972,12962,12979,
-12995,12990,13004,12991,13026,13028,13025,13041,13074,13067,
-13065,13056,13090,13107,13086,13087,13115,13132,13130,13126,
-13122,13119,13124,13138,13141,13143,13146,13148,13174,13173,
-13172,13194,13199,13204,13190,13210,13201,13228,13235,13245,
-13247,13246,13248,13249,13255,13278,13271,13273,13268,13282,
-13283,13290,13318,13308,13341,13336,13338,13392,13373,13366,
-13381,13375,13446,13421,13440,13422,13441,13431,13429,13474,
-5334,6458,13177,930,16324,1376,21125,7336,9992,15438,
-15726,3538,6394,6103,2934,2290,6538,4632,9157,14149,
-18315,18805,14308,7160,5611,2063,20684,16182,8116,1459,
-18961,11002,1282,12123,3902,13346,8682,17383,16296,19673,
-19674,5009,9792,17934,11560,2068,16638,2969,17424,1551,
-11465,933,19297,9085,9086,7545,11176,21759,21780,21665,
-13841,16985,18688,934,13477,7342,4917,10520,7343,12170,
-6251,6252,6289,18386,15977,21503,13274,11098,6626,14391,
-5082,21146,7489,16452,1832,16358,7163,4095,18621,15175,
-13562,20639,6838,14528,9194,21585,13504,13506,13511,13522,
-13514,13533,13585,13540,13575,13544,13539,13554,13547,13588,
-13597,13596,13605,13604,13607,13608,13623,13625,13615,13613,
-13644,13646,13658,13662,13665,13668,13680,13686,13687,13685,
-13690,13695,13702,13707,13710,13711,13716,13715,13713,13726,
-13752,13742,13738,13736,13746,13745,13772,13773,13778,13784,
-13790,13807,13791,13818,13810,13806,13792,13788,13829,13839,
-13836,13857,13864,13885,13873,13877,13861,13893,13892,13890,
-13895,13906,13914,13912,13933,13944,13943,13951,13952,13960,
-13962,13978,13979,13988,14002,14005,14000,14009,14014,14017,
-18534,19838,10913,19989,14810,21325,5613,13671,18005,9007,
-16453,19509,15066,19116,14532,2959,14582,19991,20647,13870,
-9643,13606,19888,9644,8261,16887,2776,17846,16002,10135,
-6899,3741,12977,21666,12537,3242,19840,2781,19754,12041,
-12579,11511,16956,4681,20025,13969,2013,11061,15236,11305,
-15067,10136,16957,5477,9280,5086,3259,15488,10639,17938,
-18608,5778,21618,5801,21781,15779,2071,12157,9197,14395,
-9301,10074,3811,15780,10858,15891,21207,938,9729,3073,
-12485,13348,7910,2962,7809,16408,16057,2033,19774,19002,
-8233,1484,10376,1924,20480,9391,14025,14027,14041,14043,
-14050,14054,14056,14066,14068,14085,14074,14077,14107,14111,
-14127,14120,14115,14119,14116,14117,14142,14147,14152,14158,
-14162,14180,14218,14170,14164,14168,14194,14175,14205,14206,
-14234,14240,14237,14224,14216,14220,14232,14259,14253,14255,
-14274,14273,14278,14281,14270,14287,14286,14292,14288,14304,
-14303,14309,14310,14315,14313,14314,14321,14323,14332,14329,
-14334,14346,14350,14341,14348,14342,14338,14337,14385,14363,
-14369,14366,14367,14387,14381,14372,14407,14414,14415,14422,
-14438,14435,14447,14442,14458,14455,14476,14465,14454,14483,
-13031,10779,18277,10081,7164,1625,5805,5945,3629,10433,
-14354,14263,3630,18056,1883,3704,3243,14398,17996,6368,
-1007,11100,10284,21045,12513,7573,11131,3074,11754,6781,
-8384,19162,14195,19117,5852,2425,6430,14131,8810,12981,
-10678,2020,20249,9510,16471,7078,12934,14507,11011,11991,
-2237,3742,13934,9423,19626,13101,2787,6466,7361,10722,
-20029,1229,19487,10446,13697,4337,15652,4616,8449,4638,
-13872,4686,9017,14891,18182,17835,5022,3490,16722,3946,
-14956,17441,17048,10224,20074,14298,7362,15239,10086,19783,
-17104,15010,11878,17946,20077,19775,14490,14498,14499,14468,
-14494,14512,14511,14522,14520,14527,14516,14510,14514,14552,
-14556,14568,14559,14555,14572,14571,14562,14561,14595,14596,
-14599,14604,14601,14600,14618,14616,14609,14612,14639,14623,
-14635,14675,14649,14625,14636,14662,14679,14642,14614,14624,
-14660,14630,14610,14615,14634,14632,14628,14629,14698,14699,
-14703,14701,14705,14710,14709,14706,14716,14708,14756,14728,
-14738,14735,14724,14751,14726,14746,14739,14745,14722,14768,
-14767,14770,14782,14774,14783,14776,14779,14775,14777,21229,
-14795,14799,14803,14797,14796,14804,14818,14807,14814,14819,
-16964,6058,909,6797,6798,7192,3030,17333,16299,11222,
-9468,7554,1995,14400,13035,9748,8691,19900,3297,15698,
-15469,20407,15240,17163,4498,3892,17607,5532,14781,7514,
-6015,13994,18059,18628,1134,4134,12438,16476,11835,2741,
-10716,12400,12823,20205,2432,20662,4408,11689,19315,3110,
-17446,12733,4447,7437,17912,8982,1579,3818,11138,9207,
-7960,13331,13166,17249,17222,15151,10482,19052,17914,17561,
-19053,9116,9429,7726,3636,20898,1292,18633,11403,6601,
-1639,15087,15426,16058,13334,13109,16528,10160,6806,11980,
-5224,20082,1256,9681,14785,21189,14806,14831,14833,14836,
-14835,14837,14838,14845,14843,14851,14848,14864,14871,14875,
-14885,14883,14886,14895,14888,14889,14897,14906,14903,14902,
-14933,14952,14949,14928,14924,14922,14921,14968,15004,14974,
-15003,14971,14976,14977,14986,14969,15017,15039,15036,15051,
-15050,15048,15047,15049,15063,15072,15084,14911,15090,15092,
-15101,15110,15111,15118,15131,15123,15126,15112,15104,15106,
-15159,15164,15165,15168,15183,15184,15182,15192,15207,15194,
-15218,15202,15208,15196,15229,15242,15243,15264,15260,15254,
-15266,15276,15275,15279,15273,15299,15292,15293,7828,15306,
-887,10021,17953,13243,9184,16186,16814,13937,13938,12741,
-10347,15097,16067,10816,20085,12498,19692,18069,7214,8082,
-17954,13359,15098,8104,4796,1882,13678,19066,17261,19804,
-8245,9781,9782,19199,13040,19269,10233,15964,6453,19979,
-10101,18587,10931,5991,8962,9220,7219,3498,10789,9458,
-9403,6497,4764,20827,16533,8987,6510,9535,7221,9435,
-6515,10628,7015,8988,10471,7393,14013,15618,9409,13595,
-17464,19080,10552,10982,1669,14930,17409,2832,6335,17814,
-3236,4911,17821,10373,6396,6051,7623,8309,1275,18279,
-20462,20463,8958,1703,17054,14830,15308,15313,15333,15328,
-15345,15352,15351,15347,15376,15379,15368,15373,15372,15384,
-15391,15385,15395,15392,15400,15423,15410,15416,15412,15403,
-15435,15439,15436,15457,15451,15448,15449,15462,15484,15486,
-15479,15482,15499,15478,15502,15516,15521,15518,15532,15530,
-15539,15537,15546,15538,15569,15563,15562,15567,15564,15584,
-15585,15590,15613,15603,15600,15604,15624,15623,15626,15625,
-15638,15654,15656,15634,15670,15691,15699,15686,15682,15678,
-15677,15707,15710,15729,15715,15725,15718,15754,15750,15768,
-15772,15775,15801,15807,15811,15816,15827,15830,15834,15838,
-3778,13376,2463,14515,8411,20571,14331,19550,5921,21548,
-17360,4547,4307,1066,2626,12865,16565,19957,19958,8496,
-12681,15908,12682,19868,8416,6728,13197,12683,21076,11462,
-16316,4677,4678,6004,4995,13655,12112,11657,3341,12478,
-2600,8296,9628,5003,20338,5436,12302,1873,17198,3783,
-1675,1749,20396,15817,5514,19293,5280,3052,6732,10813,
-5010,9932,18747,17203,9635,18976,12486,7793,14333,18809,
-16328,11381,13157,5759,13321,9350,17684,7861,13404,7279,
-16078,2372,1328,5971,17965,20714,4970,17246,9288,1485,
-19841,19511,7801,3429,3762,6733,15832,15849,15853,15850,
-15851,15871,15878,15888,15904,15917,15933,15895,15911,15897,
-15912,15938,15937,15939,15936,15944,15947,15954,15953,15965,
-15966,15968,15970,15983,15987,15992,15990,15993,16017,16019,
-16025,16030,16034,16056,16059,16071,16079,16080,16075,16082,
-16091,16102,16117,16109,16127,16146,16134,16132,16141,16172,
-16168,16179,16181,16193,16190,16201,16194,16191,16208,16214,
-16222,16226,16238,16229,16234,16251,16255,16242,16256,16247,
-16282,16264,16265,16280,16270,16261,16269,16289,16295,16308,
-16312,16309,16321,16317,16319,16339,16341,16337,16336,16344,
-15031,8206,12721,19766,8531,14946,10593,9653,3855,15573,
-9048,5937,5976,1213,4604,16466,4144,19845,15291,12955,
-13945,11661,16467,9836,3935,4334,1166,3705,16331,1979,
-11099,2187,9125,7067,15865,10883,17836,11153,7755,14586,
-17944,18335,13845,16367,5023,19894,10968,16513,13925,17546,
-17071,19245,14540,2700,15468,21180,21596,15653,19895,11012,
-9128,4032,13352,16963,16644,19994,13510,19307,7550,1150,
-14959,3054,16917,16613,9749,1151,13819,7086,16697,17798,
-5984,18827,1395,6467,18871,4079,11536,6126,6377,6736,
-10693,19037,16577,19311,15609,21047,16374,16360,16343,16379,
-16384,16391,16381,16393,16395,16378,16406,16396,16428,16444,
-16429,16423,16424,16425,16426,16489,16507,16491,16493,16494,
-16501,16527,16490,16503,16500,16497,16508,16488,16548,16541,
-16566,16557,16563,16559,16586,16595,16592,16598,16611,16610,
-16625,16630,16642,16632,16640,16646,16665,16653,16659,16651,
-16681,16679,16685,16672,16677,16684,16682,16701,16707,16711,
-16705,16704,16702,16741,16729,16746,16731,16757,16733,16743,
-16734,16772,16803,16791,16781,16770,16771,16787,16784,16827,
-16893,16828,16821,16863,16829,16869,16899,16823,16888,16849,
-2016,15014,12728,15788,14266,3713,10452,16524,21009,2430,
-13482,12319,19639,7522,10293,13231,19198,7557,16580,17447,
-10786,20593,20616,10681,5837,10155,3088,9519,10765,17448,
-2301,11404,21711,14961,13356,15597,20860,12222,7692,13486,
-1678,9887,5764,17002,7120,21314,4605,9334,8461,8462,
-19172,2201,7640,11595,17454,11427,2701,18108,14962,2795,
-2487,3463,9570,14243,18875,8029,3301,12826,3033,17369,
-14355,13219,19325,2160,9673,20280,17955,21209,20264,17510,
-10823,17619,12749,13828,7451,6032,21471,7826,1709,6073,
-4508,9434,7825,9138,11289,9690,16875,16844,16824,16853,
-16904,16817,16854,16891,16859,16884,16820,16873,16966,16952,
-16950,16948,16954,16983,16982,16979,17013,17034,17011,17018,
-17070,17063,17073,17110,17101,17096,17077,17074,17080,17117,
-17123,17121,17118,17149,17153,17135,17132,17158,17137,17188,
-17187,17199,17197,17184,17191,17186,17206,17232,17233,17269,
-17293,17266,17296,17288,17292,17274,17285,17272,17270,17320,
-17323,17343,17321,17334,17337,17328,17318,17354,17352,17349,
-17364,17359,17357,17379,17378,17389,17385,17376,17381,17417,
-17420,17438,17399,17487,17451,17425,17407,17404,17468,17472,
-13417,11808,10357,4082,17461,21194,10248,9537,10249,12092,
-18646,12326,11569,5540,19277,14790,16944,1981,13498,13584,
-1982,10757,7827,21219,21423,6608,11919,12132,21082,10733,
-4420,8555,11230,17060,8615,19923,13471,10069,17989,14811,
-15915,10270,17207,6374,16514,3546,2689,16519,3548,21401,
-5121,19572,18781,4826,4655,7774,21038,3400,18935,21074,
-7852,20805,17527,13653,20806,8492,2158,6687,13654,16145,
-10111,1267,18618,21778,1452,14317,8297,6140,18019,20681,
-18801,12013,1783,3598,4996,5798,20934,20950,13656,18947,
-16123,11503,5416,17985,20575,13438,17471,17481,17489,17482,
-17492,17491,17488,17507,17506,17508,17509,17547,17512,17522,
-17536,17514,17529,17516,17530,17558,17579,17569,17618,17603,
-17564,17565,17590,17575,17650,17631,17642,17635,17632,17643,
-17630,17627,17664,17667,17676,17683,17680,17679,17674,17696,
-17704,17699,17698,17697,17717,17721,17719,17722,17720,17735,
-17734,17746,17737,17741,17749,17750,17755,17757,17762,17780,
-17895,17790,17784,17788,17787,17831,17804,17828,17815,17826,
-17811,17845,17847,17899,17887,17870,17863,17865,17879,17871,
-17893,17890,17885,17886,17919,17927,17922,17962,17963,17959,
-19727,11058,1784,1792,2631,2627,8838,13762,7590,7479,
-11380,7789,4382,13866,21172,5713,19103,8550,17710,14105,
-9038,11753,14813,7252,9069,9562,8344,14392,5282,20685,
-10131,7169,18993,1899,21350,14884,13647,9559,17794,2168,
-9042,15571,19930,10075,2632,2271,2730,9834,12142,4589,
-5802,18331,4030,20981,12777,12710,5863,8753,12640,15694,
-14674,4932,2698,17595,3856,9049,4088,17795,17796,19931,
-5019,19623,16055,18333,6706,12115,3383,20048,15303,5422,
-6502,13814,19932,11535,8102,2129,1152,14046,11756,19251,
-7865,6505,8844,9741,9511,14542,17973,17977,17984,17983,
-18006,18007,18014,18010,18029,18036,18049,18054,18093,18077,
-18080,18075,18078,18076,18123,18116,18113,18114,18122,18117,
-18138,18141,18142,18144,18139,18137,18157,18154,18162,18165,
-18170,18166,18180,18176,18185,18188,18221,18212,18223,18215,
-18220,18261,18245,18258,18271,18250,18243,18248,18278,18266,
-18253,18252,18305,18313,18314,18310,18332,18371,18380,18401,
-18360,18367,18387,18368,18366,18382,18369,18377,18373,18442,
-18437,18446,18445,18457,18452,18459,18462,18453,18468,18455,
-18501,18494,18502,18499,18520,18524,18538,18536,18529,18570,
-10506,19038,3822,17611,17167,16525,1658,2035,7193,14109,
-1232,1508,4944,7438,21333,7439,3211,7088,3391,20105,
-4500,1857,17390,18107,1677,13699,10764,9208,1027,20261,
-5789,2047,15221,11882,2172,9779,3460,14786,15447,1533,
-9212,4947,20899,15340,14788,16219,14691,1122,17552,1870,
-2459,9186,10244,16974,17178,9224,20600,3361,8271,20168,
-14549,7456,19077,9231,18187,16822,4781,5011,4798,1103,
-6132,7017,7022,7460,5609,1594,18372,5714,8423,12377,
-10870,11119,11120,11218,14652,15002,2167,20686,8433,11125,
-15805,9733,18624,20982,8505,16960,18562,18540,18565,18550,
-18555,18544,18598,18603,18616,18617,18636,18642,18644,18648,
-18647,18662,18660,18657,18669,18682,18666,18667,18668,18687,
-18671,18683,18726,18744,18733,18745,18743,18736,18731,18732,
-18818,18770,18812,18804,18767,18800,18820,18774,18777,18785,
-18835,18864,18855,18857,18844,18843,18850,18845,18885,18903,
-18917,18909,18893,18881,18902,19048,18966,18991,18933,18891,
-18992,18984,19009,18884,18880,18946,18985,18923,18889,18948,
-18908,18894,19047,18960,18922,19093,19094,19086,19098,19095,
-19088,19091,19134,19155,19153,19150,19181,19178,19179,19183,
-14214,16368,17049,15756,19635,9245,4344,4065,13183,12095,
-7200,11312,19316,5459,13526,20464,7963,5618,3578,7529,
-10622,13527,7380,16418,8470,13529,10625,9250,14433,3639,
-5623,18362,15751,13378,7881,3124,20951,2363,7048,3430,
-3657,6484,13566,5287,14667,5760,7833,6860,13407,17685,
-11662,6980,10439,20326,1518,17692,14267,5390,21014,18026,
-2850,16932,18840,10470,8475,16942,18422,16946,18249,3899,
-4992,13379,13380,7705,7145,4524,18124,3804,6274,2102,
-15586,17812,7784,3418,13759,18125,19147,14221,12802,16124,
-7150,18126,19163,4262,4659,18203,19203,19221,19247,19227,
-19261,19219,19243,19289,19290,19291,19288,19305,19284,19318,
-19286,19340,19338,19351,19349,19357,19361,19360,19382,19362,
-19364,19368,19423,19421,19399,19401,19409,19397,19410,19403,
-19428,19438,19432,19439,19433,19452,19453,19456,19472,19455,
-19458,19477,19499,19495,19494,19518,19520,19539,19532,19517,
-19519,19545,19552,19557,19570,19612,19617,19610,19622,19562,
-19574,19608,19573,19600,19554,19588,19592,19559,19583,19658,
-19653,19656,19662,19655,19663,19657,19694,19720,19699,19705,
-19696,19745,19733,19712,19737,19749,19724,19708,19704,19756,
-18532,15052,14424,19154,17640,8425,17469,11624,2418,19475,
-20893,17747,4572,17668,2333,14345,18264,13980,21407,17855,
-18962,18963,15119,2565,6071,14393,6108,17894,20687,21273,
-20781,5448,21556,20399,5519,5012,7420,3846,10071,3658,
-18522,11590,12064,21147,5145,18977,8302,18622,20367,16149,
-18810,13508,20549,12487,1471,17752,13445,1083,3292,21689,
-15541,21232,3015,20584,19416,17858,18095,18994,6666,6112,
-14668,2126,17496,14534,6175,2144,5452,5761,13567,6776,
-7802,6485,5065,17355,16365,14396,2731,3971,11062,11320,
-4332,6703,18275,17748,5595,4422,19714,19735,19744,19717,
-19776,19695,19830,19834,19826,19854,19861,19869,19864,19873,
-19891,19858,19857,19866,19886,19884,19876,19912,19919,19929,
-19920,19921,19935,19937,19966,19964,19954,19950,19965,19943,
-19956,19961,20017,19999,20014,20001,20041,20035,20055,20075,
-20061,20059,20071,20054,20088,20101,20100,20113,20112,20110,
-20120,20121,20124,20125,20137,20144,20149,20152,20173,20184,
-20186,20191,20192,20195,20206,20198,20197,20203,20200,20224,
-20218,20212,20209,20207,20220,20234,20231,20228,20233,20277,
-20283,20292,20293,20289,20307,20332,20317,20319,20333,20335,
-1772,15798,18815,9421,21176,8906,8850,16693,7179,20983,
-13770,3136,9303,4270,8914,16896,15881,3432,1331,2188,
-19541,8764,13127,13181,14834,939,19683,17499,2529,7864,
-17300,16695,16806,5238,15054,1890,6782,8062,14899,20716,
-14900,4031,6451,2326,14873,7813,8736,13451,3106,17470,
-15212,16332,17215,4617,2573,15327,19014,11487,19164,3814,
-12335,21456,2238,2400,21400,7185,12650,15417,21387,16472,
-8207,13287,3947,20783,20252,21650,12887,21457,9849,7506,
-2843,17126,10604,14426,1657,6492,12372,19628,3860,17838,
-12380,14682,17947,14683,6861,6493,20339,20337,20348,20362,
-20370,20311,20356,20363,20358,20379,20376,20382,20384,20386,
-20389,20412,20392,20401,20395,20391,20427,20424,20436,20428,
-20426,20466,20448,20445,20447,20450,20455,20452,20483,20471,
-20475,20477,20468,20494,20492,20504,20500,20503,20506,20501,
-20505,20517,20511,20523,20524,20534,20535,20543,20550,20551,
-20538,20553,20537,20564,20566,20572,20583,20592,20602,20603,
-20613,20607,20609,20622,20642,20629,20645,20630,20661,20618,
-20619,20620,20672,20679,20670,20720,20705,20719,20699,20752,
-20733,20744,20729,20735,20726,20730,20771,20765,20772,20778,
-4345,21083,3711,17548,4939,12605,15866,7515,12780,19784,
-21521,21313,16998,6799,19124,943,17217,11555,2431,4783,
-21183,18484,18402,6643,17948,5296,11950,12652,11422,18708,
-16520,17689,15611,21114,14239,12516,9020,6669,6908,5264,
-19317,11063,17479,11139,17001,13038,2402,18046,15658,15152,
-1217,2613,12890,14688,7578,19902,17612,17449,15554,18582,
-18583,20824,19643,1640,3116,9520,11341,11342,14268,20595,
-11324,7446,20262,21692,9755,10294,1998,11981,5817,16967,
-21466,1013,1044,7915,20596,18837,6345,7603,10787,2353,
-5988,6469,2245,17839,20302,14103,20777,20779,20776,20774,
-20790,20794,20787,20791,20821,20795,20797,20811,20789,20786,
-20796,20842,20833,20843,20844,20830,20836,20831,20872,20885,
-20866,20894,20867,20870,20878,20903,20928,20940,20901,20933,
-20970,20911,20917,20907,20958,20932,20968,20914,20913,20944,
-20959,20912,20947,21025,21037,21032,21039,21041,21035,21056,
-21055,21075,21067,21068,21085,21088,21084,21090,21086,21104,
-21119,21122,21123,21133,21143,21134,21138,21154,21168,21166,
-21175,21159,21170,21169,21162,21203,21195,21201,21231,21224,
-21236,21233,21222,21269,21255,21243,21270,21251,21277,21272,
-16933,20329,4138,20785,11597,9213,4278,19356,8464,7003,
-21751,7695,1881,6817,21335,11347,20285,20345,14592,13110,
-15428,20286,12608,14488,17956,20222,15431,3468,15227,17175,
-7006,7730,9760,11892,18763,888,20415,6740,6819,19067,
-19068,14244,13692,11900,12960,4140,15338,6438,21117,6033,
-920,19273,7386,19805,7455,6826,4047,20599,17958,20165,
-9436,14434,16535,2250,9702,18841,1611,20601,18423,4355,
-2748,16537,2749,18639,2217,13693,19202,9229,2460,17556,
-11810,6528,20169,19082,3473,20422,18433,4056,16108,13741,
-17739,17751,1434,21092,14421,17816,21242,21249,21259,21253,
-21293,21298,21299,21301,21304,21317,21329,21328,21330,21345,
-21340,21349,21339,21362,21354,21356,21367,21368,21365,21385,
-21373,21376,21399,21402,21413,21410,21409,21414,21446,21430,
-21437,21438,21442,21427,21432,21480,21481,21489,21483,21501,
-21491,21478,21553,21476,21536,21554,21537,21560,21567,21559,
-21603,21582,21598,21574,21576,21610,21626,21638,21658,21660,
-21661,21663,21668,21669,21673,21687,21681,21682,21683,21704,
-21700,21714,21729,21723,21725,21737,21739,21754,21763,21764,
-21773,21779,21766,21767,21777,23849,23850,23851,23852,23853,
-12866,6246,17064,7055,6257,5909,6213,16924,16925,9888,
-5946,4048,10251,12768,9563,3570,1394,14823,17309,4758,
-21018,21024,18434,18435,2824,6691,16095,18964,18965,7337,
-1068,6313,4323,2777,7355,8746,5066,8310,4842,16897,
-1695,21184,7260,4692,16926,1858,16549,6554,3637,21600,
-4696,19059,971,12303,11506,12266,5437,11508,19538,11382,
-15005,6546,8747,6113,975,9506,11663,1425,19689,7261,
-16033,10826,16927,19049,8332,2769,15429,6527,8484,1299,
-20624,19863,4993,1942,5406,15591,18949,6006,16258,12432,
-6893,4529,15390,5645,20242,20952,2817,6927,16768,5073,
-11736,13984,12244,5322,2492,5276,11580,4342,5794,19576,
-12420,1404,16107,18527,18539,20788,3641,17661,19206,8968,
-19762,5197,15583,21221,7034,11534,11212,6933,12658,11087,
-1806,14078,5526,20268,14336,3250,18312,8430,14942,18704,
-18403,4538,12518,5745,8999,1571,20253,5586,19497,3501,
-18883,16585,8008,8816,5766,8560,9118,6945,14219,16230,
-8859,12385,8436,13064,6865,19019,8074,16322,13714,3874,
-20491,9367,13976,18886,11451,13739,19654,12329,18155,16209,
-16732,2260,2002,8640,21240,11843,8547,19434,18898,5413,
-4419,21274,14659,1472,21509,4421,5776,12379,1572,10720,
-3345,14502,8935,4634,15814,18811,2603,10873,6145,1346,
-10424,10014,6777,5067,12371,21510,7298,17900,20278,7673,
-5068,20174,7493,19246,18132,20717,14326,1696,1697,13408,
-14327,2886,20176,21108,9174,20151,3055,2401,14275,15757,
-12143,5343,17216,10735,7507,15213,5025,15461,3107,3108,
-20993,6981,20515,4066,7955,11260,2972,20078,1255,20119,
-9176,4795,2024,6998,14509,913,21334,5030,5460,14011,
-20263,9889,19054,1135,2443,16301,21011,21392,1643,19998,
-20308,3448,20159,18413,12589,14245,15896,16133,11672,5039,
-7035,4415,19521,8851,8599,21161,18910,15765,2149,7649,
-11867,11414,2717,18306,9599,13377,9551,19660,12452,19402,
-14988,4787,12968,13961,12015,21412,14732,10637,16631,1416,
-15680,5610,8774,8291,4710,18311,17528,7151,16346,21611,
-10274,15519,1688,11938,2655,16889,8018,7496,7621,8158,
-15919,17940,3386,15894,16104,14330,12852,21684,19976,3150,
-3615,16818,18128,6267,5855,2242,8986,1219,12574,6206,
-4899,4855,15103,14979,15952,18304,1819,5795,10869,17583,
-10535,12546,1751,19308,10643,9399,1725,6406,9916,17230,
-16303,19330,7964,5409,17225,20177,1540,4049,14772,18420,
-18421,18003,10272,5151,20179,19855,1473,21105,4791,19995,
-16865,15916,17039,2473,2482,17106,15507,21657,9606,14222,
-13314,13224,17240,21495,8426,13225,2601,3002,2450,3847,
-3604,17033,20400,8434,7068,2605,2783,5572,18045,15806,
-4217,5130,15267,3137,16961,20555,15137,19192,8235,7508,
-13630,2989,3187,10440,3491,13354,21522,15655,13456,2671,
-6649,13111,13082,7727,20223,15706,4410,20148,16687,8677,
-8427,2436,4549,19963,1099,12694,16183,18978,7490,10072,
-10961,8825,3041,12830,21275,8201,15023,11106,21057,11297,
-18241,7764,6273,14215,11967,8274,11620,5499,6066,3643,
-20539,13427,18775,8898,9416,5588,7775,6680,14374,5440,
-13542,20775,6851,17850,13120,5229,8911,16836,21640,21436,
-16437,19585,14420,2226,15198,2419,7480,18044,18684,4314,
-19728,17926,931,3687,21494,12378,11328,3466,15120,14658,
-11122,20585,7428,20284,13097,8439,18397,20403,2457,7759,
-7896,4977,16773,12844,8007,1155,3748,21768,1283,17700,
-5054,20925,11767,21642,2919,12298,16349,6615,16445,16965,
-5914,13307,8919,10791,16678,4540,1736,12249,1300,18670,
-15815,12038,8306,11659,18816,7170,4238,4239,21177,13568,
-21300,17356,2658,1383,20971,7280,1954,3294,8234,14753,
-16008,2839,8063,11780,17432,1925,3222,11449,14754,7677,
-13066,11051,7509,12727,16645,16473,7814,7080,11784,8208,
-11785,10594,10441,9467,16286,13573,21677,13164,12651,3140,
-21597,12238,20757,19636,4180,2973,19426,3712,20353,2442,
-16156,15504,4940,21678,11951,2132,16073,13018,20441,3724,
-15659,7089,10195,20156,1524,2692,10456,9890,15471,3358,
-15153,17003,8997,7204,20861,13020,20862,12050,21601,9754,
-20193,11733,16068,8242,17171,21052,3644,15349,7267,20915,
-21163,8867,17019,6532,20057,9608,19333,5230,16837,4889,
-12297,15404,18316,8375,18228,19160,20473,12514,14229,21651,
-10098,4761,2771,6571,10724,13465,14311,6077,5306,11033,
-17880,17541,15080,17610,8469,19177,12946,3475,2320,14919,
-1581,1352,13396,1354,4301,4435,14769,6984,19377,6154,
-16380,16673,5241,20698,8920,12330,18769,9587,12661,1156,
-5100,10259,3749,10324,2379,3647,16136,11644,11456,988,
-18194,3825,3951,8561,14177,14271,11601,5055,19138,2508,
-14573,5820,18050,9924,19922,20840,957,18953,12300,11739,
-1801,3148,8466,10022,15304,13083,13084,9852,4156,5634,
-3303,1537,1538,8334,13137,4160,2746,7010,16767,19983,
-11734,20864,9699,21021,2801,4107,16536,10252,10024,17179,
-16538,9230,13682,17623,11811,15339,13500,7098,3155,21696,
-17008,8990,8485,10025,3375,4660,15672,4218,5385,9291,
-13735,10641,883,6982,8236,8781,8782,18338,10948,8634,
-13458,10295,9366,4222,20863,18414,15674,3551,19279,19817,
-2366,20336,5752,8493,19959,17665,3337,17924,4525,13760,
-14185,8912,14742,16097,2420,3343,4315,11507,12695,10836,
-13917,8913,12923,21319,6208,6336,12197,16027,14069,3338,
-8822,3838,19108,9462,6312,5285,19881,10772,19369,9821,
-2608,17651,12325,19076,2039,7604,11520,4068,12850,6939,
-16246,17738,12761,17319,4861,18247,20009,4863,7132,9589,
-4294,8280,12287,20879,13940,17268,2282,3060,13189,16779,
-12965,12665,14172,1586,21246,8791,18851,11365,5102,12421,
-10209,1077,11459,8179,13667,13281,2591,4874,10040,11748,
-19204,10854,19285,13310,11243,14305,12967,18791,13694,1447,
-3011,8255,15902,6725,21165,15852,13089,4888,13727,17723,
-13546,6751,18086,11296,12799,7612,2679,7541,10652,19287,
-13478,8936,3659,10073,3346,991,20688,4530,8907,18506,
-12185,1322,5479,5480,12113,21276,13832,4324,1085,21120,
-20895,18556,8683,18979,13256,14669,12488,4386,5401,8230,
-7714,5684,10426,8572,13569,21106,20123,20972,14325,9848,
-19768,14297,19485,6567,13641,20587,16285,4972,13260,21109,
-11664,10082,20590,20459,9850,21518,6711,16333,2990,5869,
-8609,18869,12216,12985,5808,11730,12493,5630,1333,10595,
-12022,9825,13926,13847,7087,18485,17218,2876,3122,2944,
-5297,19490,6215,14757,5028,21523,4941,16550,1360,20442,
-19640,16551,8610,5492,20664,17108,12913,5324,7928,10719,
-15231,6238,21141,8601,1401,14575,16633,19503,4260,10901,
-19467,9620,15991,17148,4897,15172,19469,3621,17638,16267,
-9275,19225,2953,7985,12693,16864,15028,7899,11532,12634,
-1082,14741,2266,15812,19589,6539,1458,4910,16028,3424,
-3201,18222,21664,3482,7335,16276,19292,5475,5965,12828,
-4746,13765,17330,16359,2231,8568,12810,9006,16986,4322,
-1246,12002,15858,10278,12028,17933,7251,20648,14533,13904,
-11387,4361,1327,16621,6012,7066,9498,1212,7354,14910,
-9309,19302,19755,15135,11007,3980,16990,9773,3135,10015,
-19903,10457,7641,2351,21321,16529,6849,18033,20598,7728,
-20465,1892,9355,4697,4470,9984,5302,14101,8613,6560,
-18877,7093,21393,4392,19806,7533,6218,9405,12162,9700,
-9703,10358,10026,3321,21095,9818,16546,3016,21726,1600,
-9126,3025,18008,1182,1604,1607,1154,3034,1609,1610,
-11872,11874,20695,2978,18729,13774,4513,14557,13897,2162,
-5095,19546,18846,12617,20310,16338,16024,21396,3275,5997,
-3276,4254,21031,2380,11694,2643,2409,21252,15559,16140,
-13517,6726,3960,19533,11525,18793,7779,9923,18121,4168,
-8089,19470,13386,3678,8045,18860,13479,8811,17917,9899,
-6790,18134,8450,13932,21728,7079,11010,4493,12726,6265,
-17608,6214,16370,19036,16626,15085,1517,6014,15365,13879,
-18064,17254,5222,9523,6917,13488,6195,4506,11802,11079,
-5393,18929,8916,9713,3265,18926,16840,20182,12111,19451,
-9903,5049,5111,14700,10972,16036,2393,4955,1589,1022,
-7776,7651,20091,18940,10605,8520,15760,18650,867,11504,
-7110,5845,1116,8194,12545,9928,12921,5643,3841,20318,
-18204,13238,19601,960,17932,1771,8970,19926,14747,4364,
-2852,7346,14909,20431,11946,14044,10659,19239,20850,5974,
-20610,16790,9719,15289,6729,5507,9158,1344,3256,8428,
-1382,19476,21101,7935,19729,2984,15688,3289,19914,11945,
-3485,15185,18326,2604,15643,14578,20640,19479,20066,4325,
-5873,3293,16405,11551,18564,2762,18130,15319,3697,2606,
-19915,15129,10690,5651,20481,14676,1935,2663,15138,4176,
-3706,10285,2611,3230,13708,12888,17976,19777,18823,4338,
-9873,14684,10736,6552,20408,15607,4409,1559,1562,9524,
-19907,19493,10629,9573,15848,12757,14166,19560,13860,16260,
-4814,8642,1684,17628,14411,19856,3214,6876,1191,8281,
-1435,16210,8899,5703,14517,8818,20586,17542,10318,21750,
-3151,5132,6598,12337,17718,21461,6868,21706,11576,18882,
-15589,3326,14655,1895,2637,6931,8799,3502,9370,20309,
-850,18528,4815,4950,18900,3314,9586,4292,1409,1123,
-5818,13233,19180,20090,8543,17061,5581,10117,3920,11820,
-4183,11582,19435,14925,8901,6943,14417,6681,3264,9910,
-18784,17400,1442,2999,5673,6747,17758,18738,12025,8868,
-4210,7137,11214,11052,20359,11868,5321,11412,10702,2555,
-9320,5347,16709,20315,15274,20211,16839,21776,6946,4782,
-20238,11943,11187,9954,21323,20528,15565,6332,3197,14146,
-5053,6082,7036,6304,17702,16949,5718,11935,9289,18254,
-2499,3995,10489,4958,16708,9272,7269,5346,1818,17024,
-13518,17466,12627,13250,21096,21641,12465,9149,11651,19471,
-1926,17322,8225,19380,13058,18742,10905,13963,1316,14743,
-19672,20060,6311,8966,17325,17326,15059,15483,11301,16880,
-13894,2835,21505,21647,18689,16691,17331,20019,13059,19367,
-10874,2343,4840,9898,21306,6425,13062,10771,13063,17859,
-3585,1529,18097,1502,20291,16409,20782,10882,9965,3384,
-11013,18703,2046,8876,4755,11014,8939,9778,20154,2198,
-19444,6999,18407,2206,20157,6522,19358,3419,1787,3901,
-9268,9621,14832,2855,3837,3268,11550,9488,8969,7742,
-19393,9001,8117,15060,19107,2652,7743,10276,8839,16639,
-6762,13205,996,15121,4019,8730,11777,6072,2397,15262,
-5284,855,11638,6020,3714,880,897,14908,5881,15890,
-2566,12158,9460,2030,12411,12642,19238,1370,15082,3605,
-11126,12188,8388,9863,12568,2856,7720,11960,13209,10317,
-2082,3571,6013,7952,8453,18754,14004,12276,13875,1930,
-6913,11565,16377,7396,11538,10575,6346,10031,19526,19664,
-13251,19669,19897,16382,20910,12149,15515,2718,20239,5844,
-16941,20162,9694,19586,18317,21721,10837,3376,4004,20636,
-19871,4833,15711,12831,12507,2732,20129,2987,19540,19211,
-12582,21727,5888,16412,10443,9242,18234,15575,20439,15418,
-21388,17219,4021,15445,13412,2964,20079,4431,8698,15074,
-2757,3234,20080,19431,986,20372,7599,12405,2244,19800,
-9521,20194,18761,7601,15430,12509,11883,19069,18416,19070,
-11745,13887,2747,18424,10104,11081,11082,11746,17673,7732,
-14551,11084,18430,1587,14653,14692,9525,7875,5043,18856,
-9897,3508,20527,3884,12504,13388,1081,20632,20839,1067,
-10559,4961,11527,3807,14187,13116,16394,16658,10774,20514,
-4934,4464,7027,12759,12853,12662,13426,18156,17267,1028,
-2078,9189,1057,6413,8709,3921,7266,17785,3324,5427,
-10852,11237,18914,3953,7703,18081,20732,9321,9145,15025,
-18219,5548,17467,5824,8776,8417,13797,18606,16225,20122,
-16399,19599,3237,10299,21498,10908,14503,15029,7114,20513,
-9968,3588,1704,18831,3725,2636,4562,3128,18119,18466,
-6307,9146,16981,2288,6622,18559,20756,7684,13499,14165,
-13587,13368,964,5690,10683,11857,20039,17075,12106,4623,
-13787,8869,14707,15230,1450,8369,9615,19584,17237,19143,
-8806,2885,21551,4488,19590,16690,5966,5171,12696,10810,
-13781,3688,15000,17028,18967,2147,14525,16022,16866,11918,
-12871,13394,7481,12267,18653,19185,1092,4550,2423,17712,
-3993,19967,12874,4837,1922,11509,17641,4265,8435,4172,
-5418,19186,12925,1165,13989,13722,2336,11864,4662,20045,
-18865,13202,12268,5827,6253,19156,8500,3809,18980,21043,
-16987,5083,13782,6878,15380,8649,19877,10336,11639,16569,
-4202,21515,11660,16003,14670,11257,5484,8689,10076,1752,
-3020,5523,1837,12269,19757,15006,21762,1889,19483,3763,
-7299,20649,14607,14671,15818,8307,15157,18740,5859,10610,
-11656,14322,3131,11059,6361,2123,16451,16504,10911,11588,
-20478,8061,8447,9871,17605,18063,6525,2877,6880,15233,
-19161,20865,14554,15476,16094,17014,13753,19703,2641,18783,
-17361,1786,19587,6844,2107,15068,11330,17768,7911,14030,
-21331,11571,12328,16736,5743,12105,17759,17350,16170,929,
-19670,1455,5338,999,7906,2191,17602,10000,19257,17626,
-3504,3224,2251,16738,20904,11993,2677,16737,8579,2316,
-2906,15016,1582,11854,6414,2821,12176,3279,18517,21771,
-11645,4868,2330,18916,18778,15943,18213,2053,8562,18082,
-12926,14535,15302,17994,20529,1269,6115,1489,14477,2784,
-14583,1838,21279,2659,20096,12522,15918,12927,4925,20385,
-10859,12879,4926,9645,19969,12270,18447,1180,1794,7803,
-5420,14817,20753,11448,11683,11779,3698,7256,11473,15440,
-14409,18866,14939,8937,8551,1296,15921,17713,6259,7678,
-2633,4405,5315,1753,14587,11421,5877,19165,8506,21107,
-2708,17365,15922,11389,9448,6972,19769,17908,13724,21753,
-20984,14226,2664,16991,17714,13571,12271,15820,21181,6292,
-11308,8854,18571,17157,17209,17770,8507,2108,9351,7073,
-12334,13871,11101,18752,19120,5685,8722,20058,1309,15037,
-12864,8953,9061,18939,15681,13532,13153,17727,4611,2308,
-16323,2720,6333,3199,20064,9003,4320,9472,21377,13117,
-1466,15125,12951,19371,8020,13100,2688,2844,10002,11041,
-15741,6714,14842,18244,16385,6228,11267,8646,15315,10475,
-9063,8115,9297,19730,2267,17029,16568,6834,4317,13520,
-13617,6116,15731,13622,8618,21353,12035,12992,14874,12786,
-14975,2136,4727,19859,11454,11163,4164,11108,5498,1585,
-16600,6010,16383,9376,5101,14798,10208,10326,18441,14985,
-4227,10038,10853,10648,17980,12057,16138,6230,11269,7970,
-963,3917,19512,14087,8662,12931,14947,11640,3812,5979,
-13947,14678,8765,13411,17437,20591,17797,20187,15627,3261,
-5575,6279,19375,4009,10504,10925,9292,16298,17646,20030,
-1334,15144,19778,2189,15882,1850,5980,7282,6263,8347,
-4756,2170,16287,20995,14957,8348,6468,19685,15784,8938,
-21458,10568,17715,13230,14452,5939,10569,18654,2790,20305,
-8209,17303,4271,10814,12570,9512,12067,13948,2532,5239,
-9565,15596,1733,21286,20718,15979,10183,21732,8328,2315,
-19847,7369,5177,3817,15577,2298,10597,8737,10087,12277,
-10447,9518,13017,12144,8362,11261,6534,16432,9921,7238,
-20621,19092,6724,21164,7141,17873,6748,15561,18083,7586,
-10124,6392,18084,13899,15108,16713,9147,16392,21434,8342,
-2080,1190,16848,10940,6577,21228,12689,16857,15027,4026,
-21416,12342,14482,5143,4601,3099,14423,5644,10407,14846,
-17587,18224,11174,7664,15064,6625,17892,12169,7338,17990,
-16660,10909,18389,13207,8732,14351,10821,19301,12599,9642,
-13902,15301,6858,1477,17791,4969,15487,12077,11303,6632,
-19303,17430,9240,2032,6340,10660,6594,9798,21179,18750,
-10430,17967,5129,14822,14953,14196,14320,15925,2193,9175,
-21733,12219,977,12278,17307,18149,21369,9452,854,8783,
-15330,9054,4034,16521,2928,21524,20759,1348,11791,21636,
-2965,15422,3910,12729,12936,21389,6991,19785,7914,5632,
-10845,2273,15758,16918,9802,15578,5559,3262,14826,20663,
-10448,11040,10449,6452,1659,5046,9164,8749,4551,16762,
-11537,16300,6399,3563,17164,17165,6866,9851,4451,10981,
-8575,18450,3609,9804,5835,17255,4081,16011,16414,16288,
-5031,13848,7090,4348,8510,20665,15660,20344,6435,18486,
-4105,17109,19641,8766,14479,6646,16479,5032,20532,2112,
-13167,14545,6217,8983,11953,13078,15179,9567,3440,20406,
-9743,13878,12585,1522,6030,21464,5990,17616,19322,19978,
-4719,6061,1107,11143,5740,3477,11110,19528,2411,11846,
-12880,12883,16804,9865,12889,6549,7441,7440,2977,18191,
-16739,8086,20235,18782,4397,7235,8035,3328,6309,12082,
-1886,9557,13387,17410,15683,13640,8965,16347,6583,10410,
-2870,6627,13401,17094,1003,5453,15320,10137,17159,9971,
-8327,17609,11205,15222,9110,7121,6759,16053,20957,8651,
-20883,6948,4250,2176,16988,8319,2257,8033,11909,11090,
-4909,1464,19811,2377,14901,4577,18246,16735,19701,1410,
-13079,6297,15951,21624,6555,18714,11263,7523,4089,7516,
-14960,8984,6381,17949,20606,7821,20666,1560,21050,21527,
-17773,18655,10949,12029,865,5072,12938,10928,2113,3302,
-1218,17111,9756,15284,8587,18584,18718,11898,16614,13825,
-15510,15285,13021,5300,14916,2929,1863,12051,3273,1397,
-14048,5178,21528,16699,19260,6677,15790,10162,8576,15250,
-14138,15075,16302,5225,20722,20723,9293,19055,19905,15523,
-11796,16968,7262,5266,10694,8350,15056,21691,15286,15287,
-4759,16553,11489,10388,15288,11982,21680,16047,17777,5656,
-18002,9805,14721,10766,11405,10623,7921,21540,5700,11850,
-19563,14980,3278,21118,14174,13145,18195,13703,14730,9784,
-7608,12424,2141,9554,12448,16195,17193,15255,3676,16433,
-4281,8047,1655,7786,2263,1454,2174,11911,1024,19925,
-15854,16794,5449,11329,12345,899,12434,2567,9500,18229,
-13027,12412,2295,9389,20474,16902,14233,1512,11757,10674,
-14853,5047,5042,4859,11903,21497,7761,8395,1222,20180,
-14987,4988,21639,18924,11904,15343,17402,6457,12366,9483,
-12697,8728,21366,1966,20962,16799,1036,10139,14227,1627,
-3075,20460,7215,17339,14920,19544,21130,5243,16245,8921,
-1534,16530,10165,3611,14036,21625,18838,10462,8767,13022,
-3183,12656,2303,15472,10788,19385,2246,4760,8071,1644,
-14827,10315,17801,3090,10234,20160,7530,2038,9529,17131,
-16935,8635,14869,1388,20487,12897,2488,10467,6470,7094,
-12591,6820,13023,12510,9987,14102,17802,17315,2489,9025,
-14965,10167,11598,6651,12422,15226,4507,13112,13538,18489,
-15473,17392,8471,7642,21744,9892,13169,9336,4139,17656,
-20136,7007,7452,21053,3593,18153,19347,4118,8472,11899,
-15705,12610,15822,15823,20499,3893,14246,8558,7453,4644,
-15228,10390,8352,6823,19807,9762,20008,12248,14725,5140,
-17567,4872,21135,4873,2823,3327,8834,6001,7587,5351,
-17408,15631,10062,12774,4584,14283,5797,4215,14712,10178,
-13593,16274,21493,8729,17329,15641,11201,6766,14935,1597,
-5417,21379,11252,7937,20690,13903,5214,9496,18989,7353,
-1692,12388,10778,9390,11322,14057,17545,9872,20294,7553,
-12958,13076,6551,21699,18526,6977,2858,20111,19363,3877,
-6937,16431,4653,11242,8408,8672,10212,3753,3334,12530,
-11244,7239,4402,5400,17813,18160,6187,18549,10655,16980,
-6690,9767,12703,19234,12702,6395,9040,18325,3100,16279,
-21468,13085,12901,21472,9404,1541,15824,6562,17553,4207,
-5871,2491,8337,4698,3304,19073,921,21609,18136,3819,
-21292,6196,21394,7016,11691,6135,6924,13263,1710,19275,
-9027,11838,17842,7534,7535,12961,2134,21023,11231,9541,
-9407,7018,21695,8949,14276,12230,9139,4052,14918,2997,
-10529,1652,1281,10391,17226,8888,10253,4356,10359,7536,
-9232,1872,7394,18640,2218,17345,7537,16947,5664,2023,
-11812,9438,3156,13502,12070,10633,21697,10553,20196,11814,
-8486,15529,21220,9233,13985,18463,17706,1265,17711,10811,
-18146,20953,17150,19675,12711,2272,2396,8198,10879,19615,
-19927,17097,11610,904,15493,7913,6636,19248,3186,3081,
-17969,20484,12584,1997,13484,10450,1528,20161,16609,16463,
-20070,15549,16778,1613,12764,2098,10698,9593,12289,11196,
-18594,13941,7398,2802,2497,3062,17397,4543,12003,21248,
-11530,20922,20608,10211,8148,12468,10328,17078,17401,19462,
-20886,16180,20799,10043,5430,3652,9601,16142,2464,8658,
-9346,18143,13696,20930,20627,5678,12625,15873,9082,8151,
-6479,6185,6755,7781,10533,8368,927,17852,4526,5549,
-4900,8420,21550,15259,10057,2806,4679,4027,12974,20547,
-20973,19237,6634,21516,1851,15522,13815,1386,10153,6556,
-9136,2215,2283,2284,8140,1025,3852,8457,9901,11080,
-10975,10700,14844,14209,6889,10976,18265,1460,5967,1461,
-14188,8557,8650,1367,6254,13953,14039,17204,7492,7344,
-11278,17066,14877,4006,20342,11616,20402,12186,17115,10077,
-1599,1490,13954,6119,5615,5291,5260,4445,2840,6275,
-5721,11282,14113,9073,9304,10477,15862,14156,8237,19970,
-19971,2239,13523,10019,2274,14137,9074,18235,16578,18280,
-4346,6841,19786,16579,6280,1231,6281,13525,18611,16581,
-1168,944,16415,19129,9095,13632,10614,2923,9817,5862,
-7484,3690,8197,3119,14448,11553,20321,9795,9239,7065,
-12444,8260,13347,4096,2925,2451,10476,2125,8259,17993,
-10914,19300,20651,4614,15322,15247,17594,5196,3178,5216,
-14912,1693,13808,21178,17593,7912,13029,12645,2768,15496,
-21182,6370,5131,19973,13279,16159,8455,13103,13214,10381,
-21740,16907,8238,19898,9394,18282,10005,1879,2130,19482,
-1001,11363,3129,14254,15742,20043,9788,12402,3379,7059,
-1714,19028,13751,4298,5468,8675,10330,20889,18936,20677,
-6330,9607,18546,14648,20936,13549,10402,20580,11726,16329,
-9210,4022,13576,12241,15738,11797,15335,8577,6129,13634,
-2904,5619,4012,12782,8959,15512,5621,12401,8621,17058,
-6821,2247,12283,3499,6561,15337,16583,16584,5952,8563,
-4018,6768,15321,6548,9368,17659,18890,20900,19087,18454,
-3986,4291,14456,12134,5157,20036,20871,12286,2461,4295,
-13428,3645,10110,16135,1737,4228,14729,4229,4374,5747,
-19548,8517,13121,17707,2949,4997,17081,14208,14469,12564,
-20703,17276,3514,12136,18950,4127,10581,19100,8189,2415,
-10403,14471,17239,19105,21227,18473,13777,17091,2696,18378,
-19106,19591,3602,16348,11774,4128,2986,21504,3121,10442,
-9976,16496,7315,12993,7273,7113,7056,8595,3581,5084,
-7431,20175,11970,10045,1921,1385,20306,12353,12556,5038,
-9111,5136,6037,15401,5210,20272,17633,20010,5770,6084,
-20140,10855,19707,2307,11695,12679,14495,18678,2339,18370,
-6688,1888,5927,5757,17935,8974,903,11306,16089,18065,
-18630,16938,11575,1341,14641,8928,18792,20935,21488,5060,
-7933,20710,9170,13393,6962,15454,5020,2163,7149,16953,
-3624,19618,5457,7950,13521,7466,7597,12446,10832,5503,
-16749,5550,6959,8305,7340,12362,8661,13151,15258,1110,
-959,7741,5064,18327,6697,20046,16797,15489,7171,3523,
-995,17040,19188,13991,13704,9966,16060,3586,12314,15187,
-19770,17250,4683,11687,4388,6992,3528,19195,20999,10262,
-16936,9658,9665,6141,20812,18968,13203,12875,6543,5454,
-8379,6341,20103,19629,2737,15181,5989,6909,14852,5655,
-2797,20106,19384,7002,16929,10197,9526,11556,18027,20108,
-7099,7100,11492,4810,14081,11466,4663,12076,20020,2660,
-18448,953,11006,3764,3486,6337,3813,11478,2429,20343,
-10083,12653,21110,6266,20409,19125,21290,16101,10088,3973,
-19252,16810,10094,10095,6268,19130,5288,1878,10868,11430,
-3202,7485,14018,14748,2314,10473,12604,13494,12415,3506,
-17140,2860,3925,18199,19099,8727,20022,12557,2649,7669,
-4028,3851,19514,19862,5854,19945,16652,13785,6606,8013,
-13913,15374,5373,21397,11498,18542,12948,10213,3959,8549,
-10329,7290,14439,21140,21775,5566,20676,13467,20804,8038,
-5681,3963,18217,8870,13987,5885,12367,20706,11095,16096,
-10611,3247,12101,16275,11759,7988,18225,4603,19607,21584,
-3904,7487,3120,11561,11177,16217,4331,14816,2525,19352,
-5290,10501,1715,15606,20991,20371,5534,11020,14059,14201,
-10737,10738,20051,10196,11049,1707,16812,16531,9099,16969,
-19060,3449,15620,19808,10235,3360,7095,12079,18491,16420,
-16421,17059,7222,11050,11029,9408,9706,6925,890,4645,
-3363,10254,10105,923,4765,9708,1259,6160,6161,6163,
-1774,13244,15712,20650,2476,13296,8066,8069,15714,4588,
-11180,1271,15759,6824,18721,3885,2124,7345,13766,3625,
-4077,16798,13767,13208,11865,19189,13981,11512,11390,21690,
-1181,19004,18625,15574,1133,7754,6260,12114,1754,19123,
-5293,15576,7081,940,6171,5402,12832,15842,19354,15180,
-15785,17998,8788,1379,15334,20498,9753,10018,19566,16856,
-18746,14151,17644,16909,1616,13986,8308,15069,1634,1635,
-14723,5450,5483,6380,4612,6983,9203,19569,12152,10834,
-20393,7981,11680,10134,18868,18458,16430,4165,13050,14569,
-6329,21258,17982,15353,18680,18470,16792,5930,10984,2334,
-18383,6365,19751,16364,4097,1227,17936,1552,16077,10120,
-10781,14265,20072,19010,19782,4495,15215,17256,8474,3169,
-1612,3536,17897,16911,9592,6415,8077,6422,4586,14611,
-14982,17142,20881,13436,6418,4886,21774,11056,20800,3010,
-20631,15769,12704,2179,17037,21454,16997,13679,15588,15434,
-1525,9096,9140,17615,1196,4365,13357,13358,6130,13136,
-11480,7371,3610,11966,15555,15336,17551,12052,5303,1535,
-9100,15474,10297,5791,13113,18009,7011,7390,7563,2258,
-3305,6440,17263,12905,4053,16220,7395,9234,16390,13768,
-4933,10965,13602,5294,16474,13133,5940,2327,9097,13856,
-20083,14356,16482,5301,1136,15556,5426,20084,5205,1536,
-16485,6825,4050,16221,4054,4890,8141,17160,17600,17168,
-7004,20102,9381,12220,6650,19258,20086,12226,949,19131,
-17372,6441,18676,3888,13285,8967,17384,14890,5907,17822,
-18817,17825,5557,15053,8995,12712,4126,7271,6753,11920,
-13757,18519,21565,13612,12877,11279,15595,12819,4132,10884,
-10988,5185,11762,19698,3280,18018,11199,6940,5139,3478,
-17809,2368,4167,18197,21431,1547,4734,4450,894,9617,
-10215,20349,15907,3654,9112,16143,4896,17709,10809,17087,
-13057,20387,3966,11586,5312,16662,12811,4129,1325,3905,
-2438,21121,7807,3703,17995,1574,20589,5806,14045,13298,
-13481,4154,3590,7560,1933,11024,1871,8592,20896,4946,
-4976,17807,11167,8792,4158,11197,3369,14491,19829,18799,
-15174,21569,2561,11419,9171,7417,3691,15261,18169,11706,
-6009,19758,16259,1148,4174,3631,3385,12066,12538,10113,
-2386,8065,9449,6123,13070,4339,4272,16475,7815,9091,
-14427,18828,18829,8697,4116,1603,12457,9450,15808,7283,
-15957,6800,8980,7284,10606,15883,2483,19344,19996,6379,
-5985,8028,16062,16063,12436,9177,16064,21529,21530,2930,
-3912,9178,15424,5986,12891,8699,3212,8103,13184,18833,
-14006,15663,4275,4351,18283,16608,8611,19395,21315,18284,
-17257,17672,18876,19934,14049,3726,3727,7579,8960,9456,
-9337,12407,16227,10740,3149,18588,6062,13114,5562,18135,
-18352,6827,2259,13888,11031,1711,15177,12348,13946,15083,
-8978,10880,8694,11310,12403,2481,8619,9978,5538,15835,
-1439,13591,15719,4523,20678,14324,16281,16052,4887,5168,
-5505,9636,18330,12311,9241,9517,6997,20300,6095,5653,
-8353,7872,5041,18847,12499,20520,9896,16021,2884,14176,
-10974,2146,11916,1913,15375,8289,1162,12914,4545,8648,
-3989,6877,1091,19716,20738,5508,8678,12520,1887,1824,
-19960,11463,15437,3754,14904,14650,17986,15298,1453,11652,
-12262,4194,8660,9349,4403,19507,2516,7275,11587,18651,
-2470,3808,19104,8564,21173,15877,3915,6459,13556,5876,
-17264,12442,10360,10008,11813,13586,15879,8094,12541,19337,
-19394,9455,4735,3916,5571,4927,17069,20437,1626,13993,
-1086,15360,9939,5576,17999,14300,8330,1637,14963,16483,
-18488,18586,15077,8578,14061,4471,10166,16971,10198,12396,
-12397,10169,1647,1648,1649,9894,1650,14104,4766,17778,
-18464,20425,14940,18572,10142,4579,4473,4599,14565,1965,
-6951,3900,14997,16128,20397,16098,13769,19746,8382,2654,
-19190,4531,4532,15237,19187,21280,18819,21782,1491,7834,
-15550,1248,3026,15828,15007,1249,14672,4241,5895,13771,
-15755,7679,7281,1755,18573,15923,14128,15803,20746,14080,
-2706,15463,958,13867,9325,9162,15594,8762,20304,9560,
-5234,4266,3258,10564,10179,8556,7421,9285,13227,8202,
-853,13008,11947,1347,3559,8733,9043,5556,6864,12140,
-8360,15411,21512,13161,8574,14948,4335,2109,15071,6547,
-864,10312,13015,4636,10923,11397,5292,8349,11488,10147,
-19015,7258,1698,1633,15470,10784,10619,19381,21679,17997,
-3607,2199,8460,12588,10383,4135,9209,12607,3152,13019,
-3591,6912,21467,19056,2133,1646,21046,14418,3241,20974,
-1415,21546,11374,14765,10495,6956,4835,9284,8687,13733,
-3027,17366,18510,8385,4406,9387,16898,1799,11629,4341,
-1891,8535,4010,15145,19630,16905,18580,6847,5870,14685,
-7517,21390,1756,17308,1928,18709,3442,4594,20485,16522,
-5633,4347,11931,20081,6382,6647,6807,7372,6298,914,
-15509,4665,16526,5535,2114,15055,15511,1864,5203,17055,
-9021,10163,15076,15581,18719,16554,11344,15513,10752,1530,
-19803,17776,7916,14037,9026,21336,14247,2672,3450,19071,
-7008,13700,2490,16534,17373,20416,4666,5899,11030,18425,
-11351,2219,17374,10634,20170,11573,3896,16112,4230,6090,
-9386,16838,3999,8523,5861,5520,20691,7184,14094,11721,
-5035,13681,5704,7659,6048,16886,12515,3831,6423,19398,
-8112,19824,1241,20704,5472,3927,10332,13472,2559,14931,
-4383,20954,5567,17765,10534,1833,9491,5521,19748,17205,
-15644,16755,11192,937,1291,2960,6369,4336,3023,10924,
-16807,18627,7365,19254,20615,10194,9882,7638,8164,19794,
-6437,10459,5662,11619,3879,7734,9595,14217,9602,19463,
-5105,8676,3401,20365,12120,21260,17961,7243,18179,18803,
-20960,9324,16796,3239,17202,14129,21206,4635,5554,16460,
-19681,19555,3380,9123,19000,6290,2159,10311,7302,14070,
-18693,1839,4682,1847,11684,1503,1854,16010,5911,4595,
-7373,945,918,17170,19997,4699,12428,17653,10687,19747,
-4774,5973,3699,16153,16129,2607,18096,21281,20822,12159,
-17670,13783,13992,20049,16573,20851,3405,10478,19486,1848,
-1251,8440,16155,19005,13448,12567,13452,8080,12523,20530,
-19846,12189,21151,8316,21287,11906,8210,12274,20181,7313,
-10084,20692,15346,5026,18511,14608,1509,16157,16158,15009,
-10148,10709,12375,15579,21000,13820,15610,3972,18060,13536,
-14401,8081,4407,5896,1855,21185,19126,10663,21111,3443,
-5897,10156,8240,15046,13185,10815,2666,11394,1149,7076,
-6640,1632,10642,19342,20390,10225,19194,2712,1153,9179,
-19051,3771,12339,3728,13497,18959,15040,16830,13309,21398,
-1570,18602,15797,4007,8688,19621,18055,8314,19684,18730,
-2131,11500,13756,7880,10956,12063,3453,7248,5252,8752,
-9722,2524,9769,7419,1656,2809,15693,1486,8203,4190,
-3269,1330,1250,10503,1576,9201,2634,20605,13048,13883,
-12069,18173,17810,8498,3216,7877,9415,21547,2362,14999,
-6863,9359,15520,11990,10288,7576,11895,11410,3844,3882,
-3374,10065,11824,5826,9015,1010,15408,5903,12684,6005,
-9294,5987,16012,17950,16081,8538,4284,2549,17693,15012,
-10458,21370,21116,14357,12376,9057,15582,9165,21602,8739,
-12738,12739,18408,4596,14062,18409,5304,18612,16815,12383,
-3091,12384,12942,4597,6652,12940,6869,19648,15666,13537,
-17113,21604,8985,13851,14964,5578,16163,5735,15078,12900,
-2541,21015,10168,12228,15614,16972,2044,4045,18417,19908,
-21655,14063,14248,12751,21019,14856,10468,16973,10626,20488,
-11407,1046,1973,1651,3092,13461,1542,21020,19810,17841,
-6471,1802,15154,17462,9989,20467,4157,10172,16165,2087,
-3773,7643,15825,18426,10635,20418,7794,6109,19336,8684,
-5972,4340,21311,11792,10739,14047,6060,13886,12441,6320,
-12916,13374,7107,2156,6686,5310,10996,4898,12296,13942,
-17238,6017,7856,5377,3991,19182,2558,5905,5476,6104,
-9629,19474,13657,20366,13344,10068,2469,19536,13320,7277,
-11589,20961,14936,13444,15859,9087,12705,7619,18477,10839,
-14450,20562,14296,16721,9499,2782,4923,13007,13259,12722,
-16895,19767,4591,5867,5834,19003,12313,15783,13570,16236,
-9290,11039,2942,13813,11562,4936,8979,8696,5024,15073,
-19627,19488,10289,13410,1557,10843,13217,1011,10763,10822,
-8003,19078,18722,16131,12429,21158,18431,10255,10485,15619,
-17346,7226,14862,8249,16976,6529,9544,1653,13779,19096,
-1617,17678,13176,21577,15116,8972,14854,16446,16454,16455,
-19609,5146,18981,980,1272,1332,3005,15673,13071,8858,
-16074,5357,12373,19644,15191,1867,17455,12096,1868,3235,
-11348,9893,10298,17459,20178,15675,1723,8889,10361,5192,
-13128,8652,13118,9338,14073,9041,3627,4573,17771,13659,
-3435,9050,1716,4429,12275,4455,15697,1274,1510,10844,
-4937,4389,13821,13454,5389,9092,12221,21297,14301,15271,
-15700,9666,1718,15703,12224,15035,10680,19901,16916,2574,
-15503,12087,14687,6645,2037,12394,15506,16923,17391,21049,
-20486,14840,10846,12223,6813,12049,14242,6918,11042,2205,
-9759,11229,9536,4083,13501,4805,19244,13301,17129,14647,
-21197,19577,7044,4059,6950,7405,20544,21549,6419,13313,
-12521,3288,14472,20240,5434,9625,14998,15778,7245,1548,
-2562,8808,1470,17241,18269,13559,20749,8502,14666,5183,
-12008,14294,17474,13295,20248,13159,21283,13970,12930,16185,
-1498,3382,8780,19843,17431,20658,9014,6637,6293,5423,
-4618,9657,1514,2612,15150,11227,3982,10451,4104,5763,
-20760,21605,14896,7447,4223,6384,9133,12750,9761,20696,
-12229,10711,14023,10754,10755,14112,17843,9947,12902,12903,
-11570,9101,11839,1724,13683,4000,4008,11617,6282,17056,
-4014,5947,4015,4016,8125,19818,19819,18404,4974,17655,
-5734,21606,10199,5737,14269,10962,12713,12714,5050,17829,
-19793,16065,12655,9838,5117,12398,1539,12752,17840,2759,
-18356,20419,19594,3510,13723,7804,1070,6261,16130,3632,
-7116,19631,4274,13162,14135,5994,16100,11398,7866,14428,
-1167,19896,12315,10379,16574,6375,10338,20097,4559,4687,
-11513,19489,12382,11337,6127,17107,3772,20134,3576,1876,
-9183,21155,19571,19578,2683,17032,11770,11922,2865,14181,
-18854,1420,21040,1164,4571,5307,10334,21205,20241,16879,
-14295,16462,11038,14704,2036,2691,11026,13175,11750,7247,
-13405,14132,1532,3601,13042,15263,7812,15467,16915,17146,
-11092,1063,9627,15802,16876,21502,1992,9964,21632,14028,
-6294,20133,3024,17860,13844,13420,7600,5323,7173,18934,
-10064,16877,21284,4615,7434,12364,6125,19046,11107,20846,
-12718,12778,18581,3553,4834,13459,8114,8200,9937,21511,
-20147,11557,20604,7544,2628,3883,5106,21144,18802,5482,
-13455,5912,12279,10089,16160,1102,13413,12495,4942,1520,
-7201,16523,8211,3791,1856,19491,5810,12317,11718,17690,
-15362,1276,5029,20354,8321,5490,14590,3936,3352,15309,
-7822,14759,6316,17370,4390,946,16416,20558,21186,19216,
-9941,10664,15935,18834,19050,1773,16480,7636,8828,5730,
-17169,5298,6734,9354,4945,8665,17774,4206,8511,15664,
-11179,14302,20355,15272,13186,19645,11630,20597,5811,5358,
-15096,16725,13415,14202,12572,6602,15789,9569,14139,14140,
-8666,11025,2538,9527,21659,16930,19427,14403,21531,12742,
-13262,17371,11631,2966,7216,3795,3133,16151,17152,11317,
-20897,18395,14537,2531,16009,9447,9053,12133,6378,15657,
-17861,5889,15508,9335,1893,7729,16934,8335,9571,18073,
-14598,3244,4159,13304,18021,3145,1679,1264,15297,7412,
-4832,13000,20847,4836,14189,9637,16150,7253,1874,15356,
-8994,13061,1487,17247,17151,6967,7620,9823,7180,2975,
-6503,2610,20994,3743,1849,20855,7510,3861,2857,21066,
-8266,4205,3233,12374,13846,11793,12047,12654,2799,8465,
-12609,4503,3147,21210,10023,2214,9946,21694,17625,20906,
-3785,11388,17767,11402,12320,6354,8424,14257,5478,21508,
-13168,5561,21129,3938,9166,4598,11667,19061,9058,10463,
-8165,2276,7998,10598,10099,21653,9530,11043,21607,21016,
-11722,6400,19649,3662,14546,14405,6603,15667,6299,17695,
-21193,9137,21608,7205,1564,1565,6604,13581,20281,16375,
-16376,19650,2946,13852,3865,6653,9807,18344,13360,13361,
-7448,1399,4353,18490,5036,14007,7383,17072,16178,6385,
-14693,13973,17957,16555,7387,6063,16700,12091,14064,10170,
-10696,14594,14547,5622,21534,15616,15312,18589,5305,19396,
-12945,12753,16556,13974,14410,9763,1017,9385,6716,11290,
-7223,15792,13462,7391,14406,10756,5384,15136,20992,21555,
-13289,8057,19593,9638,16570,15863,7181,12161,4592,14157,
-19173,889,17316,10717,2448,8262,1228,15781,21517,19166,
-19686,2991,16670,11164,19878,16164,21364,15244,8371,8204,
-10662,8331,2743,13305,10537,16808,20153,11424,1045,10161,
-1338,17652,19480,4558,1100,12489,11717,10337,15093,5017,
-6314,15357,5722,7810,16468,4387,7182,7624,17367,18098,
-5356,9513,9742,7363,14589,15787,5809,14136,6597,7186,
-13261,10090,21652,4593,9055,2275,5560,11666,11719,3792,
-14543,21526,4718,3862,4349,13355,5033,6648,1561,14060,
-16975,13418,1664,7224,7220,21211,7564,13363,21316,19390,
-20489,8636,18035,1667,19813,13463,17393,1803,7700,18109,
-15155,6654,21746,14251,14252,4474,5792,9991,18110,11195,
-17005,20303,17344,4720,5624,6317,8883,20282,14065,20420,
-5135,5793,14489,9574,2304,9410,14791,922,13889,7225,
-17916,6442,14793,9707,9949,10668,11232,20668,17375,4358,
-10362,5666,9545,17181,3509,7111,16099,1069,6117,19484,
-20351,1840,12310,8663,15924,20279,6315,8873,20352,8508,
-19425,12730,14402,1396,2302,15661,16552,16372,13577,7558,
-12088,7377,16532,16970,6439,5134,1015,12740,15310,5620,
-18585,9384,1663,18034,10753,11288,19386,5790,14249,21745,
-9572,3296,18449,3298,13102,10751,7376,8214,13849,5425,
-1337,7862,15955,8827,5493,3661,6296,5295,8700,1526,
-10296,12841,8887,1721,4051,10966,1087,18336,9837,17442,
-16335,2578,17363,18398,15829,15557,19389,1618,9044,10842,
-13661,15786,7194,21525,17772,13578,8124,1722,6563,9948,
-11335,6712,11068,7115,8509,21235,11070,12745,1016,14361,
-9990,3356,2849,19516,17112,18762,13460,4046,9532,13280,
-1989,978,4693,19542,16726,18357,16943,13414,5913,20330,
-20417,5635,11751,18867,4928,9646,8121,1900,18390,4891,
-3787,6968,4792,13905,5114,14538,4793,11309,1252,19844,
-20823,6433,13212,4845,4688,16575,7364,14541,19779,4811,
-18537,8451,8452,12336,6519,20721,1254,18399,18148,20784,
-4552,4794,16576,11978,3353,5261,13874,10091,11223,4938,
-16161,11262,9659,1578,21001,5262,19848,3031,13483,17443,
-2575,3444,8212,18610,5491,21048,19787,18451,19788,18150,
-15821,19789,15736,19253,4117,16698,4391,5577,915,20825,
-18406,6193,17450,7285,9942,21187,18487,15662,6269,10453,
-13880,11425,5265,13725,7637,17775,22349,22350,22351,22352,
-22353,22354,22355,22356,22357,22358,22359,22360,22361,22362,
-22363,22364,22365,22366,22367,22368,22369,22370,22371,22372,
-22373,22374,22375,22376,22377,22378,22379,22380,22381,22382,
-22383,22384,22385,22386,22387,22388,22389,22390,22391,22392,
-22393,22394,22395,22396,22397,22398,22399,22400,22401,22402,
-22403,22404,22405,22406,22407,22408,22409,22410,22411,22412,
-22413,22414,22415,22416,22417,22418,22419,22420,22421,22422,
-22423,22424,22425,22426,22427,22428,22429,22430,22431,22432,
-22433,22434,22435,22436,22437,22438,22439,22440,22441,22442,
-21115,2576,10665,6194,11720,4285,10538,7286,7206,16013,
-6521,16177,1902,16724,8351,19801,1865,8539,8540,1398,
-16931,8541,8241,15980,7997,15665,4276,4277,8915,5539,
-16766,14404,9180,7693,12068,10464,12323,14763,4948,948,
-21469,12227,13416,12898,1293,3796,10465,13635,7381,8243,
-16029,18152,19850,12743,9531,18720,21371,8784,4246,9059,
-14481,12744,7999,19062,19063,8000,21532,9167,3939,12657,
-2967,5345,8215,8467,19064,21743,7005,14828,14829,2673,
-11194,13853,950,13362,15668,6386,15669,4354,7758,10847,
-4949,2947,16014,18345,6133,19909,22443,22444,22445,22446,
-22447,22448,22449,22450,22451,22452,22453,22454,22455,22456,
-22457,22458,22459,22460,22461,22462,22463,22464,22465,22466,
-22467,22468,22469,22470,22471,22472,22473,22474,22475,22476,
-22477,22478,22479,22480,22481,22482,22483,22484,22485,22486,
-22487,22488,22489,22490,22491,22492,22493,22494,22495,22496,
-22497,22498,22499,22500,22501,22502,22503,22504,22505,22506,
-22507,22508,22509,22510,22511,22512,22513,22514,22515,22516,
-22517,22518,22519,22520,22521,22522,22523,22524,22525,22526,
-22527,22528,22529,22530,22531,22532,22533,22534,22535,22536,
-12365,9060,10932,6387,19262,2887,16816,8246,3940,2018,
-4574,6388,19274,19910,17177,16615,14548,6158,2800,15514,
-17114,13975,10171,7096,5494,7388,15251,5992,3035,3036,
-19074,18638,18418,7012,9695,15739,8814,15628,15629,19075,
-16015,10695,17460,5206,15740,2435,7097,16049,20617,1018,
-18614,18764,11983,2674,21022,10200,19391,10484,1543,14859,
-21474,19651,16727,8480,19176,15433,14966,7644,19079,6472,
-1544,19278,15156,6655,4509,7645,9895,18427,5208,8169,
-17227,17228,16016,10723,21747,19814,19280,10472,16050,17229,
-18028,19081,12356,14792,10631,16945,22537,22538,22539,22540,
-22541,22542,22543,22544,22545,22546,22547,22548,22549,22550,
-22551,22552,22553,22554,22555,22556,22557,22558,22559,22560,
-22561,22562,22563,22564,22565,22566,22567,22568,22569,22570,
-22571,22572,22573,22574,22575,22576,22577,22578,22579,22580,
-22581,22582,22583,22584,22585,22586,22587,22588,22589,22590,
-22591,22592,22593,22594,22595,22596,22597,22598,22599,22600,
-22601,22602,22603,22604,22605,22606,22607,22608,22609,22610,
-22611,22612,22613,22614,22615,22616,22617,22618,22619,22620,
-22621,22622,22623,22624,22625,22626,22627,22628,22629,22630,
-18842,7021,20267,19652,20421,18723,18492,12357,11840,6443,
-11083,19281,11032,3640,19985,19815,9439,1903,10363,6162,
-10256,14863,19988,19282,5665,13503,9546,10556,14518,2005,
-17411,10053,18020,6189,21102,16718,9045,12881,5339,19842,
-15130,6120,13349,19016,16612,10149,7082,19017,18757,6557,
-20413,11027,14860,10370,7892,10092,7449,17223,3245,7454,
-7457,18298,19440,3125,1631,3126,12116,21291,7374,11069,
-19691,10164,2433,8512,9983,11668,8166,8513,8001,9682,
-17340,18290,7263,11074,9696,20490,8004,12755,10108,18299,
-3127,10732,6121,2358,4846,11183,22631,22632,22633,22634,
-22635,22636,22637,22638,22639,22640,22641,22642,22643,22644,
-22645,22646,22647,22648,22649,22650,22651,22652,22653,22654,
-22655,22656,22657,22658,22659,22660,22661,22662,22663,22664,
-22665,22666,22667,22668,22669,22670,22671,22672,22673,22674,
-22675,22676,22677,22678,22679,22680,22681,22682,22683,22684,
-22685,22686,22687,22688,22689,22690,22691,22692,22693,22694,
-22695,22696,22697,22698,22699,22700,22701,22702,22703,22704,
-22705,22706,22707,22708,22709,22710,22711,22712,22713,22714,
-22715,22716,22717,22718,22719,22720,22721,22722,22723,22724,
-11184,4848,12124,13524,13457,11426,4849,17310,9168,11186,
-2581,4767,13453,11185,11334,11354,21654,11933,4700,6616,
-7893,5686,15713,15963,6494,8941,6270,2583,6164,19018,
-3408,17051,16090,11399,12939,3744,18341,10950,18346,19980,
-3469,18240,18350,18351,20724,20697,3362,1990,18765,10934,
-20444,18359,4055,10364,4703,11281,19904,3146,13528,2352,
-16206,21192,20828,11044,1019,1668,16166,1545,2344,11133,
-3891,21519,5525,3937,4695,19852,2277,5207,2048,19853,
-15475,15599,14778,4641,16582,1089,3794,16162,21051,13487,
-14480,14591,14593,15867,8247,8002,22725,22726,22727,22728,
-22729,22730,22731,22732,22733,22734,22735,22736,22737,22738,
-22739,22740,22741,22742,22743,22744,22745,22746,22747,22748,
-22749,22750,22751,22752,22753,22754,22755,22756,22757,22758,
-22759,22760,22761,22762,22763,22764,22765,22766,22767,22768,
-22769,22770,22771,22772,22773,22774,22775,22776,22777,22778,
-22779,22780,22781,22782,22783,22784,22785,22786,22787,22788,
-22789,22790,22791,22792,22793,22794,22795,22796,22797,22798,
-22799,22800,22801,22802,22803,22804,22805,22806,22807,22808,
-22809,22810,22811,22812,22813,22814,22815,22816,22817,22818,
-6850,8248,18353,15981,14967,17317,9413,18629,16811,16813,
-6283,17622,6159,17803,16629,20331,11890,11579,12723,20381,
-7207,21533,7013,7019,2635,2453,2454,6131,18172,19174,
-17620,1233,20265,14694,21535,2579,18347,8269,15791,10102,
-10096,2770,13583,17621,19175,11804,8168,18613,2996,20052,
-19693,2815,18878,11669,20266,2998,13512,20053,18358,11984,
-4357,16671,19083,3246,21656,3733,2816,7965,18211,6105,
-19157,10228,12089,5391,12090,18348,10245,10250,5392,8596,
-3306,10109,3307,5731,13364,1670,2914,6136,8483,17557,
-19987,9271,9814,5122,9564,9967,22819,22820,22821,22822,
-22823,22824,22825,22826,22827,22828,22829,22830,22831,22832,
-22833,22834,22835,22836,22837,22838,22839,22840,22841,22842,
-22843,22844,22845,22846,22847,22848,22849,22850,22851,22852,
-22853,22854,22855,22856,22857,22858,22859,22860,22861,22862,
-22863,22864,22865,22866,22867,22868,22869,22870,22871,22872,
-22873,22874,22875,22876,22877,22878,22879,22880,22881,22882,
-22883,22884,22885,22886,22887,22888,22889,22890,22891,22892,
-22893,22894,22895,22896,22897,22898,22899,22900,22901,22902,
-22903,22904,22905,22906,22907,22908,22909,22910,22911,22912,
-16769,6900,14850,19718,12706,4918,8263,9548,886,5739,
-14473,3992,7037,17500,17731,3521,23854,23855,23856,23857,
-23858,23859,23860,23861,23862,23863,23864,23865,23866,23867,
-23868,23869,23870,23871,23872,23873,23874,23875,23876,23877,
-23878,23879,23880,23881,23882,23883,23884,23885,23886,23887,
-23888,23889,23890,23891,23892,23893,23894,23895,23896,23897,
-23898,23899,23900,23901,23902,23903,23904,23905,23906,23907,
-23908,23909,23910,23911,23912,23913,23914,23915,23916,23917,
-23918,23919,23920,23921,23922,23923,23924,23925,23926,23927,
-23928,23929,23930,23931,23932,23933,22913,22914,22915,22916,
-22917,22918,22919,22920,22921,22922,22923,22924,22925,22926,
-22927,22928,22929,22930,22931,22932,22933,22934,22935,22936,
-22937,22938,22939,22940,22941,22942,22943,22944,22945,22946,
-22947,22948,22949,22950,22951,22952,22953,22954,22955,22956,
-22957,22958,22959,22960,22961,22962,22963,22964,22965,22966,
-22967,22968,22969,22970,22971,22972,22973,22974,22975,22976,
-22977,22978,22979,22980,22981,22982,22983,22984,22985,22986,
-22987,22988,22989,22990,22991,22992,22993,22994,22995,22996,
-22997,22998,22999,23000,23001,23002,23003,23004,23005,23006
-};
-
-static uint16 gbksortorder(uint16 i)
-{
- uint idx=gbktail(i);
- if (idx>0x7f) idx-=0x41;
- else idx-=0x40;
- idx+=(gbkhead(i)-0x81)*0xbe;
- return 0x8100+gbk_order[idx];
-}
-
-
-int my_strnncoll_gbk_internal(const uchar **a_res, const uchar **b_res,
- size_t length)
-{
- const uchar *a= *a_res, *b= *b_res;
- uint a_char,b_char;
-
- while (length--)
- {
- if ((length > 0) && isgbkcode(*a,*(a+1)) && isgbkcode(*b, *(b+1)))
- {
- a_char= gbkcode(*a,*(a+1));
- b_char= gbkcode(*b,*(b+1));
- if (a_char != b_char)
- return ((int) gbksortorder((uint16) a_char) -
- (int) gbksortorder((uint16) b_char));
- a+= 2;
- b+= 2;
- length--;
- }
- else if (sort_order_gbk[*a++] != sort_order_gbk[*b++])
- return ((int) sort_order_gbk[a[-1]] -
- (int) sort_order_gbk[b[-1]]);
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-
-int my_strnncoll_gbk(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_gbk_internal(&a, &b, length);
- return res ? res : (int) ((b_is_prefix ? length : a_length) - b_length);
-}
-
-
-static int my_strnncollsp_gbk(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_gbk_internal(&a, &b, length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && a_length != b_length)
- {
- const uchar *end;
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put shorter key in a */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uint16 e;
- size_t dstlen= len;
- uchar *dest_end= dest + dstlen;
-
- len = srclen;
- while (len-- && dest < dest_end)
- {
- if ((len > 0) && isgbkcode(*src, *(src+1)))
- {
- e = gbksortorder((uint16) gbkcode(*src, *(src+1)));
- *dest++ = gbkhead(e);
- if (dest < dest_end)
- *dest++ = gbktail(e);
- src+=2;
- len--;
- } else
- *dest++ = sort_order_gbk[(uchar) *src++];
- }
- if (dstlen > srclen)
- bfill(dest, dstlen - srclen, ' ');
- return dstlen;
-}
-
-
-static uint ismbchar_gbk(CHARSET_INFO *cs __attribute__((unused)),
- const char* p, const char *e)
-{
- return (isgbkhead(*(p)) && (e)-(p)>1 && isgbktail(*((p)+1))? 2: 0);
-}
-
-static uint mbcharlen_gbk(CHARSET_INFO *cs __attribute__((unused)),uint c)
-{
- return (isgbkhead(c)? 2 : 1);
-}
-
-/* page 0 0x8140-0xFE4F */
-static uint16 tab_gbk_uni0[]={
-0x4E02,0x4E04,0x4E05,0x4E06,0x4E0F,0x4E12,0x4E17,0x4E1F,
-0x4E20,0x4E21,0x4E23,0x4E26,0x4E29,0x4E2E,0x4E2F,0x4E31,
-0x4E33,0x4E35,0x4E37,0x4E3C,0x4E40,0x4E41,0x4E42,0x4E44,
-0x4E46,0x4E4A,0x4E51,0x4E55,0x4E57,0x4E5A,0x4E5B,0x4E62,
-0x4E63,0x4E64,0x4E65,0x4E67,0x4E68,0x4E6A,0x4E6B,0x4E6C,
-0x4E6D,0x4E6E,0x4E6F,0x4E72,0x4E74,0x4E75,0x4E76,0x4E77,
-0x4E78,0x4E79,0x4E7A,0x4E7B,0x4E7C,0x4E7D,0x4E7F,0x4E80,
-0x4E81,0x4E82,0x4E83,0x4E84,0x4E85,0x4E87,0x4E8A, 0,
-0x4E90,0x4E96,0x4E97,0x4E99,0x4E9C,0x4E9D,0x4E9E,0x4EA3,
-0x4EAA,0x4EAF,0x4EB0,0x4EB1,0x4EB4,0x4EB6,0x4EB7,0x4EB8,
-0x4EB9,0x4EBC,0x4EBD,0x4EBE,0x4EC8,0x4ECC,0x4ECF,0x4ED0,
-0x4ED2,0x4EDA,0x4EDB,0x4EDC,0x4EE0,0x4EE2,0x4EE6,0x4EE7,
-0x4EE9,0x4EED,0x4EEE,0x4EEF,0x4EF1,0x4EF4,0x4EF8,0x4EF9,
-0x4EFA,0x4EFC,0x4EFE,0x4F00,0x4F02,0x4F03,0x4F04,0x4F05,
-0x4F06,0x4F07,0x4F08,0x4F0B,0x4F0C,0x4F12,0x4F13,0x4F14,
-0x4F15,0x4F16,0x4F1C,0x4F1D,0x4F21,0x4F23,0x4F28,0x4F29,
-0x4F2C,0x4F2D,0x4F2E,0x4F31,0x4F33,0x4F35,0x4F37,0x4F39,
-0x4F3B,0x4F3E,0x4F3F,0x4F40,0x4F41,0x4F42,0x4F44,0x4F45,
-0x4F47,0x4F48,0x4F49,0x4F4A,0x4F4B,0x4F4C,0x4F52,0x4F54,
-0x4F56,0x4F61,0x4F62,0x4F66,0x4F68,0x4F6A,0x4F6B,0x4F6D,
-0x4F6E,0x4F71,0x4F72,0x4F75,0x4F77,0x4F78,0x4F79,0x4F7A,
-0x4F7D,0x4F80,0x4F81,0x4F82,0x4F85,0x4F86,0x4F87,0x4F8A,
-0x4F8C,0x4F8E,0x4F90,0x4F92,0x4F93,0x4F95,0x4F96,0x4F98,
-0x4F99,0x4F9A,0x4F9C,0x4F9E,0x4F9F,0x4FA1,0x4FA2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x4FA4,0x4FAB,0x4FAD,0x4FB0,0x4FB1,0x4FB2,0x4FB3,0x4FB4,
-0x4FB6,0x4FB7,0x4FB8,0x4FB9,0x4FBA,0x4FBB,0x4FBC,0x4FBD,
-0x4FBE,0x4FC0,0x4FC1,0x4FC2,0x4FC6,0x4FC7,0x4FC8,0x4FC9,
-0x4FCB,0x4FCC,0x4FCD,0x4FD2,0x4FD3,0x4FD4,0x4FD5,0x4FD6,
-0x4FD9,0x4FDB,0x4FE0,0x4FE2,0x4FE4,0x4FE5,0x4FE7,0x4FEB,
-0x4FEC,0x4FF0,0x4FF2,0x4FF4,0x4FF5,0x4FF6,0x4FF7,0x4FF9,
-0x4FFB,0x4FFC,0x4FFD,0x4FFF,0x5000,0x5001,0x5002,0x5003,
-0x5004,0x5005,0x5006,0x5007,0x5008,0x5009,0x500A, 0,
-0x500B,0x500E,0x5010,0x5011,0x5013,0x5015,0x5016,0x5017,
-0x501B,0x501D,0x501E,0x5020,0x5022,0x5023,0x5024,0x5027,
-0x502B,0x502F,0x5030,0x5031,0x5032,0x5033,0x5034,0x5035,
-0x5036,0x5037,0x5038,0x5039,0x503B,0x503D,0x503F,0x5040,
-0x5041,0x5042,0x5044,0x5045,0x5046,0x5049,0x504A,0x504B,
-0x504D,0x5050,0x5051,0x5052,0x5053,0x5054,0x5056,0x5057,
-0x5058,0x5059,0x505B,0x505D,0x505E,0x505F,0x5060,0x5061,
-0x5062,0x5063,0x5064,0x5066,0x5067,0x5068,0x5069,0x506A,
-0x506B,0x506D,0x506E,0x506F,0x5070,0x5071,0x5072,0x5073,
-0x5074,0x5075,0x5078,0x5079,0x507A,0x507C,0x507D,0x5081,
-0x5082,0x5083,0x5084,0x5086,0x5087,0x5089,0x508A,0x508B,
-0x508C,0x508E,0x508F,0x5090,0x5091,0x5092,0x5093,0x5094,
-0x5095,0x5096,0x5097,0x5098,0x5099,0x509A,0x509B,0x509C,
-0x509D,0x509E,0x509F,0x50A0,0x50A1,0x50A2,0x50A4,0x50A6,
-0x50AA,0x50AB,0x50AD,0x50AE,0x50AF,0x50B0,0x50B1,0x50B3,
-0x50B4,0x50B5,0x50B6,0x50B7,0x50B8,0x50B9,0x50BC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x50BD,0x50BE,0x50BF,0x50C0,0x50C1,0x50C2,0x50C3,0x50C4,
-0x50C5,0x50C6,0x50C7,0x50C8,0x50C9,0x50CA,0x50CB,0x50CC,
-0x50CD,0x50CE,0x50D0,0x50D1,0x50D2,0x50D3,0x50D4,0x50D5,
-0x50D7,0x50D8,0x50D9,0x50DB,0x50DC,0x50DD,0x50DE,0x50DF,
-0x50E0,0x50E1,0x50E2,0x50E3,0x50E4,0x50E5,0x50E8,0x50E9,
-0x50EA,0x50EB,0x50EF,0x50F0,0x50F1,0x50F2,0x50F4,0x50F6,
-0x50F7,0x50F8,0x50F9,0x50FA,0x50FC,0x50FD,0x50FE,0x50FF,
-0x5100,0x5101,0x5102,0x5103,0x5104,0x5105,0x5108, 0,
-0x5109,0x510A,0x510C,0x510D,0x510E,0x510F,0x5110,0x5111,
-0x5113,0x5114,0x5115,0x5116,0x5117,0x5118,0x5119,0x511A,
-0x511B,0x511C,0x511D,0x511E,0x511F,0x5120,0x5122,0x5123,
-0x5124,0x5125,0x5126,0x5127,0x5128,0x5129,0x512A,0x512B,
-0x512C,0x512D,0x512E,0x512F,0x5130,0x5131,0x5132,0x5133,
-0x5134,0x5135,0x5136,0x5137,0x5138,0x5139,0x513A,0x513B,
-0x513C,0x513D,0x513E,0x5142,0x5147,0x514A,0x514C,0x514E,
-0x514F,0x5150,0x5152,0x5153,0x5157,0x5158,0x5159,0x515B,
-0x515D,0x515E,0x515F,0x5160,0x5161,0x5163,0x5164,0x5166,
-0x5167,0x5169,0x516A,0x516F,0x5172,0x517A,0x517E,0x517F,
-0x5183,0x5184,0x5186,0x5187,0x518A,0x518B,0x518E,0x518F,
-0x5190,0x5191,0x5193,0x5194,0x5198,0x519A,0x519D,0x519E,
-0x519F,0x51A1,0x51A3,0x51A6,0x51A7,0x51A8,0x51A9,0x51AA,
-0x51AD,0x51AE,0x51B4,0x51B8,0x51B9,0x51BA,0x51BE,0x51BF,
-0x51C1,0x51C2,0x51C3,0x51C5,0x51C8,0x51CA,0x51CD,0x51CE,
-0x51D0,0x51D2,0x51D3,0x51D4,0x51D5,0x51D6,0x51D7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x51D8,0x51D9,0x51DA,0x51DC,0x51DE,0x51DF,0x51E2,0x51E3,
-0x51E5,0x51E6,0x51E7,0x51E8,0x51E9,0x51EA,0x51EC,0x51EE,
-0x51F1,0x51F2,0x51F4,0x51F7,0x51FE,0x5204,0x5205,0x5209,
-0x520B,0x520C,0x520F,0x5210,0x5213,0x5214,0x5215,0x521C,
-0x521E,0x521F,0x5221,0x5222,0x5223,0x5225,0x5226,0x5227,
-0x522A,0x522C,0x522F,0x5231,0x5232,0x5234,0x5235,0x523C,
-0x523E,0x5244,0x5245,0x5246,0x5247,0x5248,0x5249,0x524B,
-0x524E,0x524F,0x5252,0x5253,0x5255,0x5257,0x5258, 0,
-0x5259,0x525A,0x525B,0x525D,0x525F,0x5260,0x5262,0x5263,
-0x5264,0x5266,0x5268,0x526B,0x526C,0x526D,0x526E,0x5270,
-0x5271,0x5273,0x5274,0x5275,0x5276,0x5277,0x5278,0x5279,
-0x527A,0x527B,0x527C,0x527E,0x5280,0x5283,0x5284,0x5285,
-0x5286,0x5287,0x5289,0x528A,0x528B,0x528C,0x528D,0x528E,
-0x528F,0x5291,0x5292,0x5294,0x5295,0x5296,0x5297,0x5298,
-0x5299,0x529A,0x529C,0x52A4,0x52A5,0x52A6,0x52A7,0x52AE,
-0x52AF,0x52B0,0x52B4,0x52B5,0x52B6,0x52B7,0x52B8,0x52B9,
-0x52BA,0x52BB,0x52BC,0x52BD,0x52C0,0x52C1,0x52C2,0x52C4,
-0x52C5,0x52C6,0x52C8,0x52CA,0x52CC,0x52CD,0x52CE,0x52CF,
-0x52D1,0x52D3,0x52D4,0x52D5,0x52D7,0x52D9,0x52DA,0x52DB,
-0x52DC,0x52DD,0x52DE,0x52E0,0x52E1,0x52E2,0x52E3,0x52E5,
-0x52E6,0x52E7,0x52E8,0x52E9,0x52EA,0x52EB,0x52EC,0x52ED,
-0x52EE,0x52EF,0x52F1,0x52F2,0x52F3,0x52F4,0x52F5,0x52F6,
-0x52F7,0x52F8,0x52FB,0x52FC,0x52FD,0x5301,0x5302,0x5303,
-0x5304,0x5307,0x5309,0x530A,0x530B,0x530C,0x530E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5311,0x5312,0x5313,0x5314,0x5318,0x531B,0x531C,0x531E,
-0x531F,0x5322,0x5324,0x5325,0x5327,0x5328,0x5329,0x532B,
-0x532C,0x532D,0x532F,0x5330,0x5331,0x5332,0x5333,0x5334,
-0x5335,0x5336,0x5337,0x5338,0x533C,0x533D,0x5340,0x5342,
-0x5344,0x5346,0x534B,0x534C,0x534D,0x5350,0x5354,0x5358,
-0x5359,0x535B,0x535D,0x5365,0x5368,0x536A,0x536C,0x536D,
-0x5372,0x5376,0x5379,0x537B,0x537C,0x537D,0x537E,0x5380,
-0x5381,0x5383,0x5387,0x5388,0x538A,0x538E,0x538F, 0,
-0x5390,0x5391,0x5392,0x5393,0x5394,0x5396,0x5397,0x5399,
-0x539B,0x539C,0x539E,0x53A0,0x53A1,0x53A4,0x53A7,0x53AA,
-0x53AB,0x53AC,0x53AD,0x53AF,0x53B0,0x53B1,0x53B2,0x53B3,
-0x53B4,0x53B5,0x53B7,0x53B8,0x53B9,0x53BA,0x53BC,0x53BD,
-0x53BE,0x53C0,0x53C3,0x53C4,0x53C5,0x53C6,0x53C7,0x53CE,
-0x53CF,0x53D0,0x53D2,0x53D3,0x53D5,0x53DA,0x53DC,0x53DD,
-0x53DE,0x53E1,0x53E2,0x53E7,0x53F4,0x53FA,0x53FE,0x53FF,
-0x5400,0x5402,0x5405,0x5407,0x540B,0x5414,0x5418,0x5419,
-0x541A,0x541C,0x5422,0x5424,0x5425,0x542A,0x5430,0x5433,
-0x5436,0x5437,0x543A,0x543D,0x543F,0x5441,0x5442,0x5444,
-0x5445,0x5447,0x5449,0x544C,0x544D,0x544E,0x544F,0x5451,
-0x545A,0x545D,0x545E,0x545F,0x5460,0x5461,0x5463,0x5465,
-0x5467,0x5469,0x546A,0x546B,0x546C,0x546D,0x546E,0x546F,
-0x5470,0x5474,0x5479,0x547A,0x547E,0x547F,0x5481,0x5483,
-0x5485,0x5487,0x5488,0x5489,0x548A,0x548D,0x5491,0x5493,
-0x5497,0x5498,0x549C,0x549E,0x549F,0x54A0,0x54A1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x54A2,0x54A5,0x54AE,0x54B0,0x54B2,0x54B5,0x54B6,0x54B7,
-0x54B9,0x54BA,0x54BC,0x54BE,0x54C3,0x54C5,0x54CA,0x54CB,
-0x54D6,0x54D8,0x54DB,0x54E0,0x54E1,0x54E2,0x54E3,0x54E4,
-0x54EB,0x54EC,0x54EF,0x54F0,0x54F1,0x54F4,0x54F5,0x54F6,
-0x54F7,0x54F8,0x54F9,0x54FB,0x54FE,0x5500,0x5502,0x5503,
-0x5504,0x5505,0x5508,0x550A,0x550B,0x550C,0x550D,0x550E,
-0x5512,0x5513,0x5515,0x5516,0x5517,0x5518,0x5519,0x551A,
-0x551C,0x551D,0x551E,0x551F,0x5521,0x5525,0x5526, 0,
-0x5528,0x5529,0x552B,0x552D,0x5532,0x5534,0x5535,0x5536,
-0x5538,0x5539,0x553A,0x553B,0x553D,0x5540,0x5542,0x5545,
-0x5547,0x5548,0x554B,0x554C,0x554D,0x554E,0x554F,0x5551,
-0x5552,0x5553,0x5554,0x5557,0x5558,0x5559,0x555A,0x555B,
-0x555D,0x555E,0x555F,0x5560,0x5562,0x5563,0x5568,0x5569,
-0x556B,0x556F,0x5570,0x5571,0x5572,0x5573,0x5574,0x5579,
-0x557A,0x557D,0x557F,0x5585,0x5586,0x558C,0x558D,0x558E,
-0x5590,0x5592,0x5593,0x5595,0x5596,0x5597,0x559A,0x559B,
-0x559E,0x55A0,0x55A1,0x55A2,0x55A3,0x55A4,0x55A5,0x55A6,
-0x55A8,0x55A9,0x55AA,0x55AB,0x55AC,0x55AD,0x55AE,0x55AF,
-0x55B0,0x55B2,0x55B4,0x55B6,0x55B8,0x55BA,0x55BC,0x55BF,
-0x55C0,0x55C1,0x55C2,0x55C3,0x55C6,0x55C7,0x55C8,0x55CA,
-0x55CB,0x55CE,0x55CF,0x55D0,0x55D5,0x55D7,0x55D8,0x55D9,
-0x55DA,0x55DB,0x55DE,0x55E0,0x55E2,0x55E7,0x55E9,0x55ED,
-0x55EE,0x55F0,0x55F1,0x55F4,0x55F6,0x55F8,0x55F9,0x55FA,
-0x55FB,0x55FC,0x55FF,0x5602,0x5603,0x5604,0x5605, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5606,0x5607,0x560A,0x560B,0x560D,0x5610,0x5611,0x5612,
-0x5613,0x5614,0x5615,0x5616,0x5617,0x5619,0x561A,0x561C,
-0x561D,0x5620,0x5621,0x5622,0x5625,0x5626,0x5628,0x5629,
-0x562A,0x562B,0x562E,0x562F,0x5630,0x5633,0x5635,0x5637,
-0x5638,0x563A,0x563C,0x563D,0x563E,0x5640,0x5641,0x5642,
-0x5643,0x5644,0x5645,0x5646,0x5647,0x5648,0x5649,0x564A,
-0x564B,0x564F,0x5650,0x5651,0x5652,0x5653,0x5655,0x5656,
-0x565A,0x565B,0x565D,0x565E,0x565F,0x5660,0x5661, 0,
-0x5663,0x5665,0x5666,0x5667,0x566D,0x566E,0x566F,0x5670,
-0x5672,0x5673,0x5674,0x5675,0x5677,0x5678,0x5679,0x567A,
-0x567D,0x567E,0x567F,0x5680,0x5681,0x5682,0x5683,0x5684,
-0x5687,0x5688,0x5689,0x568A,0x568B,0x568C,0x568D,0x5690,
-0x5691,0x5692,0x5694,0x5695,0x5696,0x5697,0x5698,0x5699,
-0x569A,0x569B,0x569C,0x569D,0x569E,0x569F,0x56A0,0x56A1,
-0x56A2,0x56A4,0x56A5,0x56A6,0x56A7,0x56A8,0x56A9,0x56AA,
-0x56AB,0x56AC,0x56AD,0x56AE,0x56B0,0x56B1,0x56B2,0x56B3,
-0x56B4,0x56B5,0x56B6,0x56B8,0x56B9,0x56BA,0x56BB,0x56BD,
-0x56BE,0x56BF,0x56C0,0x56C1,0x56C2,0x56C3,0x56C4,0x56C5,
-0x56C6,0x56C7,0x56C8,0x56C9,0x56CB,0x56CC,0x56CD,0x56CE,
-0x56CF,0x56D0,0x56D1,0x56D2,0x56D3,0x56D5,0x56D6,0x56D8,
-0x56D9,0x56DC,0x56E3,0x56E5,0x56E6,0x56E7,0x56E8,0x56E9,
-0x56EA,0x56EC,0x56EE,0x56EF,0x56F2,0x56F3,0x56F6,0x56F7,
-0x56F8,0x56FB,0x56FC,0x5700,0x5701,0x5702,0x5705,0x5707,
-0x570B,0x570C,0x570D,0x570E,0x570F,0x5710,0x5711, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5712,0x5713,0x5714,0x5715,0x5716,0x5717,0x5718,0x5719,
-0x571A,0x571B,0x571D,0x571E,0x5720,0x5721,0x5722,0x5724,
-0x5725,0x5726,0x5727,0x572B,0x5731,0x5732,0x5734,0x5735,
-0x5736,0x5737,0x5738,0x573C,0x573D,0x573F,0x5741,0x5743,
-0x5744,0x5745,0x5746,0x5748,0x5749,0x574B,0x5752,0x5753,
-0x5754,0x5755,0x5756,0x5758,0x5759,0x5762,0x5763,0x5765,
-0x5767,0x576C,0x576E,0x5770,0x5771,0x5772,0x5774,0x5775,
-0x5778,0x5779,0x577A,0x577D,0x577E,0x577F,0x5780, 0,
-0x5781,0x5787,0x5788,0x5789,0x578A,0x578D,0x578E,0x578F,
-0x5790,0x5791,0x5794,0x5795,0x5796,0x5797,0x5798,0x5799,
-0x579A,0x579C,0x579D,0x579E,0x579F,0x57A5,0x57A8,0x57AA,
-0x57AC,0x57AF,0x57B0,0x57B1,0x57B3,0x57B5,0x57B6,0x57B7,
-0x57B9,0x57BA,0x57BB,0x57BC,0x57BD,0x57BE,0x57BF,0x57C0,
-0x57C1,0x57C4,0x57C5,0x57C6,0x57C7,0x57C8,0x57C9,0x57CA,
-0x57CC,0x57CD,0x57D0,0x57D1,0x57D3,0x57D6,0x57D7,0x57DB,
-0x57DC,0x57DE,0x57E1,0x57E2,0x57E3,0x57E5,0x57E6,0x57E7,
-0x57E8,0x57E9,0x57EA,0x57EB,0x57EC,0x57EE,0x57F0,0x57F1,
-0x57F2,0x57F3,0x57F5,0x57F6,0x57F7,0x57FB,0x57FC,0x57FE,
-0x57FF,0x5801,0x5803,0x5804,0x5805,0x5808,0x5809,0x580A,
-0x580C,0x580E,0x580F,0x5810,0x5812,0x5813,0x5814,0x5816,
-0x5817,0x5818,0x581A,0x581B,0x581C,0x581D,0x581F,0x5822,
-0x5823,0x5825,0x5826,0x5827,0x5828,0x5829,0x582B,0x582C,
-0x582D,0x582E,0x582F,0x5831,0x5832,0x5833,0x5834,0x5836,
-0x5837,0x5838,0x5839,0x583A,0x583B,0x583C,0x583D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x583E,0x583F,0x5840,0x5841,0x5842,0x5843,0x5845,0x5846,
-0x5847,0x5848,0x5849,0x584A,0x584B,0x584E,0x584F,0x5850,
-0x5852,0x5853,0x5855,0x5856,0x5857,0x5859,0x585A,0x585B,
-0x585C,0x585D,0x585F,0x5860,0x5861,0x5862,0x5863,0x5864,
-0x5866,0x5867,0x5868,0x5869,0x586A,0x586D,0x586E,0x586F,
-0x5870,0x5871,0x5872,0x5873,0x5874,0x5875,0x5876,0x5877,
-0x5878,0x5879,0x587A,0x587B,0x587C,0x587D,0x587F,0x5882,
-0x5884,0x5886,0x5887,0x5888,0x588A,0x588B,0x588C, 0,
-0x588D,0x588E,0x588F,0x5890,0x5891,0x5894,0x5895,0x5896,
-0x5897,0x5898,0x589B,0x589C,0x589D,0x58A0,0x58A1,0x58A2,
-0x58A3,0x58A4,0x58A5,0x58A6,0x58A7,0x58AA,0x58AB,0x58AC,
-0x58AD,0x58AE,0x58AF,0x58B0,0x58B1,0x58B2,0x58B3,0x58B4,
-0x58B5,0x58B6,0x58B7,0x58B8,0x58B9,0x58BA,0x58BB,0x58BD,
-0x58BE,0x58BF,0x58C0,0x58C2,0x58C3,0x58C4,0x58C6,0x58C7,
-0x58C8,0x58C9,0x58CA,0x58CB,0x58CC,0x58CD,0x58CE,0x58CF,
-0x58D0,0x58D2,0x58D3,0x58D4,0x58D6,0x58D7,0x58D8,0x58D9,
-0x58DA,0x58DB,0x58DC,0x58DD,0x58DE,0x58DF,0x58E0,0x58E1,
-0x58E2,0x58E3,0x58E5,0x58E6,0x58E7,0x58E8,0x58E9,0x58EA,
-0x58ED,0x58EF,0x58F1,0x58F2,0x58F4,0x58F5,0x58F7,0x58F8,
-0x58FA,0x58FB,0x58FC,0x58FD,0x58FE,0x58FF,0x5900,0x5901,
-0x5903,0x5905,0x5906,0x5908,0x5909,0x590A,0x590B,0x590C,
-0x590E,0x5910,0x5911,0x5912,0x5913,0x5917,0x5918,0x591B,
-0x591D,0x591E,0x5920,0x5921,0x5922,0x5923,0x5926,0x5928,
-0x592C,0x5930,0x5932,0x5933,0x5935,0x5936,0x593B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x593D,0x593E,0x593F,0x5940,0x5943,0x5945,0x5946,0x594A,
-0x594C,0x594D,0x5950,0x5952,0x5953,0x5959,0x595B,0x595C,
-0x595D,0x595E,0x595F,0x5961,0x5963,0x5964,0x5966,0x5967,
-0x5968,0x5969,0x596A,0x596B,0x596C,0x596D,0x596E,0x596F,
-0x5970,0x5971,0x5972,0x5975,0x5977,0x597A,0x597B,0x597C,
-0x597E,0x597F,0x5980,0x5985,0x5989,0x598B,0x598C,0x598E,
-0x598F,0x5990,0x5991,0x5994,0x5995,0x5998,0x599A,0x599B,
-0x599C,0x599D,0x599F,0x59A0,0x59A1,0x59A2,0x59A6, 0,
-0x59A7,0x59AC,0x59AD,0x59B0,0x59B1,0x59B3,0x59B4,0x59B5,
-0x59B6,0x59B7,0x59B8,0x59BA,0x59BC,0x59BD,0x59BF,0x59C0,
-0x59C1,0x59C2,0x59C3,0x59C4,0x59C5,0x59C7,0x59C8,0x59C9,
-0x59CC,0x59CD,0x59CE,0x59CF,0x59D5,0x59D6,0x59D9,0x59DB,
-0x59DE,0x59DF,0x59E0,0x59E1,0x59E2,0x59E4,0x59E6,0x59E7,
-0x59E9,0x59EA,0x59EB,0x59ED,0x59EE,0x59EF,0x59F0,0x59F1,
-0x59F2,0x59F3,0x59F4,0x59F5,0x59F6,0x59F7,0x59F8,0x59FA,
-0x59FC,0x59FD,0x59FE,0x5A00,0x5A02,0x5A0A,0x5A0B,0x5A0D,
-0x5A0E,0x5A0F,0x5A10,0x5A12,0x5A14,0x5A15,0x5A16,0x5A17,
-0x5A19,0x5A1A,0x5A1B,0x5A1D,0x5A1E,0x5A21,0x5A22,0x5A24,
-0x5A26,0x5A27,0x5A28,0x5A2A,0x5A2B,0x5A2C,0x5A2D,0x5A2E,
-0x5A2F,0x5A30,0x5A33,0x5A35,0x5A37,0x5A38,0x5A39,0x5A3A,
-0x5A3B,0x5A3D,0x5A3E,0x5A3F,0x5A41,0x5A42,0x5A43,0x5A44,
-0x5A45,0x5A47,0x5A48,0x5A4B,0x5A4C,0x5A4D,0x5A4E,0x5A4F,
-0x5A50,0x5A51,0x5A52,0x5A53,0x5A54,0x5A56,0x5A57,0x5A58,
-0x5A59,0x5A5B,0x5A5C,0x5A5D,0x5A5E,0x5A5F,0x5A60, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5A61,0x5A63,0x5A64,0x5A65,0x5A66,0x5A68,0x5A69,0x5A6B,
-0x5A6C,0x5A6D,0x5A6E,0x5A6F,0x5A70,0x5A71,0x5A72,0x5A73,
-0x5A78,0x5A79,0x5A7B,0x5A7C,0x5A7D,0x5A7E,0x5A80,0x5A81,
-0x5A82,0x5A83,0x5A84,0x5A85,0x5A86,0x5A87,0x5A88,0x5A89,
-0x5A8A,0x5A8B,0x5A8C,0x5A8D,0x5A8E,0x5A8F,0x5A90,0x5A91,
-0x5A93,0x5A94,0x5A95,0x5A96,0x5A97,0x5A98,0x5A99,0x5A9C,
-0x5A9D,0x5A9E,0x5A9F,0x5AA0,0x5AA1,0x5AA2,0x5AA3,0x5AA4,
-0x5AA5,0x5AA6,0x5AA7,0x5AA8,0x5AA9,0x5AAB,0x5AAC, 0,
-0x5AAD,0x5AAE,0x5AAF,0x5AB0,0x5AB1,0x5AB4,0x5AB6,0x5AB7,
-0x5AB9,0x5ABA,0x5ABB,0x5ABC,0x5ABD,0x5ABF,0x5AC0,0x5AC3,
-0x5AC4,0x5AC5,0x5AC6,0x5AC7,0x5AC8,0x5ACA,0x5ACB,0x5ACD,
-0x5ACE,0x5ACF,0x5AD0,0x5AD1,0x5AD3,0x5AD5,0x5AD7,0x5AD9,
-0x5ADA,0x5ADB,0x5ADD,0x5ADE,0x5ADF,0x5AE2,0x5AE4,0x5AE5,
-0x5AE7,0x5AE8,0x5AEA,0x5AEC,0x5AED,0x5AEE,0x5AEF,0x5AF0,
-0x5AF2,0x5AF3,0x5AF4,0x5AF5,0x5AF6,0x5AF7,0x5AF8,0x5AF9,
-0x5AFA,0x5AFB,0x5AFC,0x5AFD,0x5AFE,0x5AFF,0x5B00,0x5B01,
-0x5B02,0x5B03,0x5B04,0x5B05,0x5B06,0x5B07,0x5B08,0x5B0A,
-0x5B0B,0x5B0C,0x5B0D,0x5B0E,0x5B0F,0x5B10,0x5B11,0x5B12,
-0x5B13,0x5B14,0x5B15,0x5B18,0x5B19,0x5B1A,0x5B1B,0x5B1C,
-0x5B1D,0x5B1E,0x5B1F,0x5B20,0x5B21,0x5B22,0x5B23,0x5B24,
-0x5B25,0x5B26,0x5B27,0x5B28,0x5B29,0x5B2A,0x5B2B,0x5B2C,
-0x5B2D,0x5B2E,0x5B2F,0x5B30,0x5B31,0x5B33,0x5B35,0x5B36,
-0x5B38,0x5B39,0x5B3A,0x5B3B,0x5B3C,0x5B3D,0x5B3E,0x5B3F,
-0x5B41,0x5B42,0x5B43,0x5B44,0x5B45,0x5B46,0x5B47, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5B48,0x5B49,0x5B4A,0x5B4B,0x5B4C,0x5B4D,0x5B4E,0x5B4F,
-0x5B52,0x5B56,0x5B5E,0x5B60,0x5B61,0x5B67,0x5B68,0x5B6B,
-0x5B6D,0x5B6E,0x5B6F,0x5B72,0x5B74,0x5B76,0x5B77,0x5B78,
-0x5B79,0x5B7B,0x5B7C,0x5B7E,0x5B7F,0x5B82,0x5B86,0x5B8A,
-0x5B8D,0x5B8E,0x5B90,0x5B91,0x5B92,0x5B94,0x5B96,0x5B9F,
-0x5BA7,0x5BA8,0x5BA9,0x5BAC,0x5BAD,0x5BAE,0x5BAF,0x5BB1,
-0x5BB2,0x5BB7,0x5BBA,0x5BBB,0x5BBC,0x5BC0,0x5BC1,0x5BC3,
-0x5BC8,0x5BC9,0x5BCA,0x5BCB,0x5BCD,0x5BCE,0x5BCF, 0,
-0x5BD1,0x5BD4,0x5BD5,0x5BD6,0x5BD7,0x5BD8,0x5BD9,0x5BDA,
-0x5BDB,0x5BDC,0x5BE0,0x5BE2,0x5BE3,0x5BE6,0x5BE7,0x5BE9,
-0x5BEA,0x5BEB,0x5BEC,0x5BED,0x5BEF,0x5BF1,0x5BF2,0x5BF3,
-0x5BF4,0x5BF5,0x5BF6,0x5BF7,0x5BFD,0x5BFE,0x5C00,0x5C02,
-0x5C03,0x5C05,0x5C07,0x5C08,0x5C0B,0x5C0C,0x5C0D,0x5C0E,
-0x5C10,0x5C12,0x5C13,0x5C17,0x5C19,0x5C1B,0x5C1E,0x5C1F,
-0x5C20,0x5C21,0x5C23,0x5C26,0x5C28,0x5C29,0x5C2A,0x5C2B,
-0x5C2D,0x5C2E,0x5C2F,0x5C30,0x5C32,0x5C33,0x5C35,0x5C36,
-0x5C37,0x5C43,0x5C44,0x5C46,0x5C47,0x5C4C,0x5C4D,0x5C52,
-0x5C53,0x5C54,0x5C56,0x5C57,0x5C58,0x5C5A,0x5C5B,0x5C5C,
-0x5C5D,0x5C5F,0x5C62,0x5C64,0x5C67,0x5C68,0x5C69,0x5C6A,
-0x5C6B,0x5C6C,0x5C6D,0x5C70,0x5C72,0x5C73,0x5C74,0x5C75,
-0x5C76,0x5C77,0x5C78,0x5C7B,0x5C7C,0x5C7D,0x5C7E,0x5C80,
-0x5C83,0x5C84,0x5C85,0x5C86,0x5C87,0x5C89,0x5C8A,0x5C8B,
-0x5C8E,0x5C8F,0x5C92,0x5C93,0x5C95,0x5C9D,0x5C9E,0x5C9F,
-0x5CA0,0x5CA1,0x5CA4,0x5CA5,0x5CA6,0x5CA7,0x5CA8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5CAA,0x5CAE,0x5CAF,0x5CB0,0x5CB2,0x5CB4,0x5CB6,0x5CB9,
-0x5CBA,0x5CBB,0x5CBC,0x5CBE,0x5CC0,0x5CC2,0x5CC3,0x5CC5,
-0x5CC6,0x5CC7,0x5CC8,0x5CC9,0x5CCA,0x5CCC,0x5CCD,0x5CCE,
-0x5CCF,0x5CD0,0x5CD1,0x5CD3,0x5CD4,0x5CD5,0x5CD6,0x5CD7,
-0x5CD8,0x5CDA,0x5CDB,0x5CDC,0x5CDD,0x5CDE,0x5CDF,0x5CE0,
-0x5CE2,0x5CE3,0x5CE7,0x5CE9,0x5CEB,0x5CEC,0x5CEE,0x5CEF,
-0x5CF1,0x5CF2,0x5CF3,0x5CF4,0x5CF5,0x5CF6,0x5CF7,0x5CF8,
-0x5CF9,0x5CFA,0x5CFC,0x5CFD,0x5CFE,0x5CFF,0x5D00, 0,
-0x5D01,0x5D04,0x5D05,0x5D08,0x5D09,0x5D0A,0x5D0B,0x5D0C,
-0x5D0D,0x5D0F,0x5D10,0x5D11,0x5D12,0x5D13,0x5D15,0x5D17,
-0x5D18,0x5D19,0x5D1A,0x5D1C,0x5D1D,0x5D1F,0x5D20,0x5D21,
-0x5D22,0x5D23,0x5D25,0x5D28,0x5D2A,0x5D2B,0x5D2C,0x5D2F,
-0x5D30,0x5D31,0x5D32,0x5D33,0x5D35,0x5D36,0x5D37,0x5D38,
-0x5D39,0x5D3A,0x5D3B,0x5D3C,0x5D3F,0x5D40,0x5D41,0x5D42,
-0x5D43,0x5D44,0x5D45,0x5D46,0x5D48,0x5D49,0x5D4D,0x5D4E,
-0x5D4F,0x5D50,0x5D51,0x5D52,0x5D53,0x5D54,0x5D55,0x5D56,
-0x5D57,0x5D59,0x5D5A,0x5D5C,0x5D5E,0x5D5F,0x5D60,0x5D61,
-0x5D62,0x5D63,0x5D64,0x5D65,0x5D66,0x5D67,0x5D68,0x5D6A,
-0x5D6D,0x5D6E,0x5D70,0x5D71,0x5D72,0x5D73,0x5D75,0x5D76,
-0x5D77,0x5D78,0x5D79,0x5D7A,0x5D7B,0x5D7C,0x5D7D,0x5D7E,
-0x5D7F,0x5D80,0x5D81,0x5D83,0x5D84,0x5D85,0x5D86,0x5D87,
-0x5D88,0x5D89,0x5D8A,0x5D8B,0x5D8C,0x5D8D,0x5D8E,0x5D8F,
-0x5D90,0x5D91,0x5D92,0x5D93,0x5D94,0x5D95,0x5D96,0x5D97,
-0x5D98,0x5D9A,0x5D9B,0x5D9C,0x5D9E,0x5D9F,0x5DA0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5DA1,0x5DA2,0x5DA3,0x5DA4,0x5DA5,0x5DA6,0x5DA7,0x5DA8,
-0x5DA9,0x5DAA,0x5DAB,0x5DAC,0x5DAD,0x5DAE,0x5DAF,0x5DB0,
-0x5DB1,0x5DB2,0x5DB3,0x5DB4,0x5DB5,0x5DB6,0x5DB8,0x5DB9,
-0x5DBA,0x5DBB,0x5DBC,0x5DBD,0x5DBE,0x5DBF,0x5DC0,0x5DC1,
-0x5DC2,0x5DC3,0x5DC4,0x5DC6,0x5DC7,0x5DC8,0x5DC9,0x5DCA,
-0x5DCB,0x5DCC,0x5DCE,0x5DCF,0x5DD0,0x5DD1,0x5DD2,0x5DD3,
-0x5DD4,0x5DD5,0x5DD6,0x5DD7,0x5DD8,0x5DD9,0x5DDA,0x5DDC,
-0x5DDF,0x5DE0,0x5DE3,0x5DE4,0x5DEA,0x5DEC,0x5DED, 0,
-0x5DF0,0x5DF5,0x5DF6,0x5DF8,0x5DF9,0x5DFA,0x5DFB,0x5DFC,
-0x5DFF,0x5E00,0x5E04,0x5E07,0x5E09,0x5E0A,0x5E0B,0x5E0D,
-0x5E0E,0x5E12,0x5E13,0x5E17,0x5E1E,0x5E1F,0x5E20,0x5E21,
-0x5E22,0x5E23,0x5E24,0x5E25,0x5E28,0x5E29,0x5E2A,0x5E2B,
-0x5E2C,0x5E2F,0x5E30,0x5E32,0x5E33,0x5E34,0x5E35,0x5E36,
-0x5E39,0x5E3A,0x5E3E,0x5E3F,0x5E40,0x5E41,0x5E43,0x5E46,
-0x5E47,0x5E48,0x5E49,0x5E4A,0x5E4B,0x5E4D,0x5E4E,0x5E4F,
-0x5E50,0x5E51,0x5E52,0x5E53,0x5E56,0x5E57,0x5E58,0x5E59,
-0x5E5A,0x5E5C,0x5E5D,0x5E5F,0x5E60,0x5E63,0x5E64,0x5E65,
-0x5E66,0x5E67,0x5E68,0x5E69,0x5E6A,0x5E6B,0x5E6C,0x5E6D,
-0x5E6E,0x5E6F,0x5E70,0x5E71,0x5E75,0x5E77,0x5E79,0x5E7E,
-0x5E81,0x5E82,0x5E83,0x5E85,0x5E88,0x5E89,0x5E8C,0x5E8D,
-0x5E8E,0x5E92,0x5E98,0x5E9B,0x5E9D,0x5EA1,0x5EA2,0x5EA3,
-0x5EA4,0x5EA8,0x5EA9,0x5EAA,0x5EAB,0x5EAC,0x5EAE,0x5EAF,
-0x5EB0,0x5EB1,0x5EB2,0x5EB4,0x5EBA,0x5EBB,0x5EBC,0x5EBD,
-0x5EBF,0x5EC0,0x5EC1,0x5EC2,0x5EC3,0x5EC4,0x5EC5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x5EC6,0x5EC7,0x5EC8,0x5ECB,0x5ECC,0x5ECD,0x5ECE,0x5ECF,
-0x5ED0,0x5ED4,0x5ED5,0x5ED7,0x5ED8,0x5ED9,0x5EDA,0x5EDC,
-0x5EDD,0x5EDE,0x5EDF,0x5EE0,0x5EE1,0x5EE2,0x5EE3,0x5EE4,
-0x5EE5,0x5EE6,0x5EE7,0x5EE9,0x5EEB,0x5EEC,0x5EED,0x5EEE,
-0x5EEF,0x5EF0,0x5EF1,0x5EF2,0x5EF3,0x5EF5,0x5EF8,0x5EF9,
-0x5EFB,0x5EFC,0x5EFD,0x5F05,0x5F06,0x5F07,0x5F09,0x5F0C,
-0x5F0D,0x5F0E,0x5F10,0x5F12,0x5F14,0x5F16,0x5F19,0x5F1A,
-0x5F1C,0x5F1D,0x5F1E,0x5F21,0x5F22,0x5F23,0x5F24, 0,
-0x5F28,0x5F2B,0x5F2C,0x5F2E,0x5F30,0x5F32,0x5F33,0x5F34,
-0x5F35,0x5F36,0x5F37,0x5F38,0x5F3B,0x5F3D,0x5F3E,0x5F3F,
-0x5F41,0x5F42,0x5F43,0x5F44,0x5F45,0x5F46,0x5F47,0x5F48,
-0x5F49,0x5F4A,0x5F4B,0x5F4C,0x5F4D,0x5F4E,0x5F4F,0x5F51,
-0x5F54,0x5F59,0x5F5A,0x5F5B,0x5F5C,0x5F5E,0x5F5F,0x5F60,
-0x5F63,0x5F65,0x5F67,0x5F68,0x5F6B,0x5F6E,0x5F6F,0x5F72,
-0x5F74,0x5F75,0x5F76,0x5F78,0x5F7A,0x5F7D,0x5F7E,0x5F7F,
-0x5F83,0x5F86,0x5F8D,0x5F8E,0x5F8F,0x5F91,0x5F93,0x5F94,
-0x5F96,0x5F9A,0x5F9B,0x5F9D,0x5F9E,0x5F9F,0x5FA0,0x5FA2,
-0x5FA3,0x5FA4,0x5FA5,0x5FA6,0x5FA7,0x5FA9,0x5FAB,0x5FAC,
-0x5FAF,0x5FB0,0x5FB1,0x5FB2,0x5FB3,0x5FB4,0x5FB6,0x5FB8,
-0x5FB9,0x5FBA,0x5FBB,0x5FBE,0x5FBF,0x5FC0,0x5FC1,0x5FC2,
-0x5FC7,0x5FC8,0x5FCA,0x5FCB,0x5FCE,0x5FD3,0x5FD4,0x5FD5,
-0x5FDA,0x5FDB,0x5FDC,0x5FDE,0x5FDF,0x5FE2,0x5FE3,0x5FE5,
-0x5FE6,0x5FE8,0x5FE9,0x5FEC,0x5FEF,0x5FF0,0x5FF2,0x5FF3,
-0x5FF4,0x5FF6,0x5FF7,0x5FF9,0x5FFA,0x5FFC,0x6007, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6008,0x6009,0x600B,0x600C,0x6010,0x6011,0x6013,0x6017,
-0x6018,0x601A,0x601E,0x601F,0x6022,0x6023,0x6024,0x602C,
-0x602D,0x602E,0x6030,0x6031,0x6032,0x6033,0x6034,0x6036,
-0x6037,0x6038,0x6039,0x603A,0x603D,0x603E,0x6040,0x6044,
-0x6045,0x6046,0x6047,0x6048,0x6049,0x604A,0x604C,0x604E,
-0x604F,0x6051,0x6053,0x6054,0x6056,0x6057,0x6058,0x605B,
-0x605C,0x605E,0x605F,0x6060,0x6061,0x6065,0x6066,0x606E,
-0x6071,0x6072,0x6074,0x6075,0x6077,0x607E,0x6080, 0,
-0x6081,0x6082,0x6085,0x6086,0x6087,0x6088,0x608A,0x608B,
-0x608E,0x608F,0x6090,0x6091,0x6093,0x6095,0x6097,0x6098,
-0x6099,0x609C,0x609E,0x60A1,0x60A2,0x60A4,0x60A5,0x60A7,
-0x60A9,0x60AA,0x60AE,0x60B0,0x60B3,0x60B5,0x60B6,0x60B7,
-0x60B9,0x60BA,0x60BD,0x60BE,0x60BF,0x60C0,0x60C1,0x60C2,
-0x60C3,0x60C4,0x60C7,0x60C8,0x60C9,0x60CC,0x60CD,0x60CE,
-0x60CF,0x60D0,0x60D2,0x60D3,0x60D4,0x60D6,0x60D7,0x60D9,
-0x60DB,0x60DE,0x60E1,0x60E2,0x60E3,0x60E4,0x60E5,0x60EA,
-0x60F1,0x60F2,0x60F5,0x60F7,0x60F8,0x60FB,0x60FC,0x60FD,
-0x60FE,0x60FF,0x6102,0x6103,0x6104,0x6105,0x6107,0x610A,
-0x610B,0x610C,0x6110,0x6111,0x6112,0x6113,0x6114,0x6116,
-0x6117,0x6118,0x6119,0x611B,0x611C,0x611D,0x611E,0x6121,
-0x6122,0x6125,0x6128,0x6129,0x612A,0x612C,0x612D,0x612E,
-0x612F,0x6130,0x6131,0x6132,0x6133,0x6134,0x6135,0x6136,
-0x6137,0x6138,0x6139,0x613A,0x613B,0x613C,0x613D,0x613E,
-0x6140,0x6141,0x6142,0x6143,0x6144,0x6145,0x6146, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6147,0x6149,0x614B,0x614D,0x614F,0x6150,0x6152,0x6153,
-0x6154,0x6156,0x6157,0x6158,0x6159,0x615A,0x615B,0x615C,
-0x615E,0x615F,0x6160,0x6161,0x6163,0x6164,0x6165,0x6166,
-0x6169,0x616A,0x616B,0x616C,0x616D,0x616E,0x616F,0x6171,
-0x6172,0x6173,0x6174,0x6176,0x6178,0x6179,0x617A,0x617B,
-0x617C,0x617D,0x617E,0x617F,0x6180,0x6181,0x6182,0x6183,
-0x6184,0x6185,0x6186,0x6187,0x6188,0x6189,0x618A,0x618C,
-0x618D,0x618F,0x6190,0x6191,0x6192,0x6193,0x6195, 0,
-0x6196,0x6197,0x6198,0x6199,0x619A,0x619B,0x619C,0x619E,
-0x619F,0x61A0,0x61A1,0x61A2,0x61A3,0x61A4,0x61A5,0x61A6,
-0x61AA,0x61AB,0x61AD,0x61AE,0x61AF,0x61B0,0x61B1,0x61B2,
-0x61B3,0x61B4,0x61B5,0x61B6,0x61B8,0x61B9,0x61BA,0x61BB,
-0x61BC,0x61BD,0x61BF,0x61C0,0x61C1,0x61C3,0x61C4,0x61C5,
-0x61C6,0x61C7,0x61C9,0x61CC,0x61CD,0x61CE,0x61CF,0x61D0,
-0x61D3,0x61D5,0x61D6,0x61D7,0x61D8,0x61D9,0x61DA,0x61DB,
-0x61DC,0x61DD,0x61DE,0x61DF,0x61E0,0x61E1,0x61E2,0x61E3,
-0x61E4,0x61E5,0x61E7,0x61E8,0x61E9,0x61EA,0x61EB,0x61EC,
-0x61ED,0x61EE,0x61EF,0x61F0,0x61F1,0x61F2,0x61F3,0x61F4,
-0x61F6,0x61F7,0x61F8,0x61F9,0x61FA,0x61FB,0x61FC,0x61FD,
-0x61FE,0x6200,0x6201,0x6202,0x6203,0x6204,0x6205,0x6207,
-0x6209,0x6213,0x6214,0x6219,0x621C,0x621D,0x621E,0x6220,
-0x6223,0x6226,0x6227,0x6228,0x6229,0x622B,0x622D,0x622F,
-0x6230,0x6231,0x6232,0x6235,0x6236,0x6238,0x6239,0x623A,
-0x623B,0x623C,0x6242,0x6244,0x6245,0x6246,0x624A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x624F,0x6250,0x6255,0x6256,0x6257,0x6259,0x625A,0x625C,
-0x625D,0x625E,0x625F,0x6260,0x6261,0x6262,0x6264,0x6265,
-0x6268,0x6271,0x6272,0x6274,0x6275,0x6277,0x6278,0x627A,
-0x627B,0x627D,0x6281,0x6282,0x6283,0x6285,0x6286,0x6287,
-0x6288,0x628B,0x628C,0x628D,0x628E,0x628F,0x6290,0x6294,
-0x6299,0x629C,0x629D,0x629E,0x62A3,0x62A6,0x62A7,0x62A9,
-0x62AA,0x62AD,0x62AE,0x62AF,0x62B0,0x62B2,0x62B3,0x62B4,
-0x62B6,0x62B7,0x62B8,0x62BA,0x62BE,0x62C0,0x62C1, 0,
-0x62C3,0x62CB,0x62CF,0x62D1,0x62D5,0x62DD,0x62DE,0x62E0,
-0x62E1,0x62E4,0x62EA,0x62EB,0x62F0,0x62F2,0x62F5,0x62F8,
-0x62F9,0x62FA,0x62FB,0x6300,0x6303,0x6304,0x6305,0x6306,
-0x630A,0x630B,0x630C,0x630D,0x630F,0x6310,0x6312,0x6313,
-0x6314,0x6315,0x6317,0x6318,0x6319,0x631C,0x6326,0x6327,
-0x6329,0x632C,0x632D,0x632E,0x6330,0x6331,0x6333,0x6334,
-0x6335,0x6336,0x6337,0x6338,0x633B,0x633C,0x633E,0x633F,
-0x6340,0x6341,0x6344,0x6347,0x6348,0x634A,0x6351,0x6352,
-0x6353,0x6354,0x6356,0x6357,0x6358,0x6359,0x635A,0x635B,
-0x635C,0x635D,0x6360,0x6364,0x6365,0x6366,0x6368,0x636A,
-0x636B,0x636C,0x636F,0x6370,0x6372,0x6373,0x6374,0x6375,
-0x6378,0x6379,0x637C,0x637D,0x637E,0x637F,0x6381,0x6383,
-0x6384,0x6385,0x6386,0x638B,0x638D,0x6391,0x6393,0x6394,
-0x6395,0x6397,0x6399,0x639A,0x639B,0x639C,0x639D,0x639E,
-0x639F,0x63A1,0x63A4,0x63A6,0x63AB,0x63AF,0x63B1,0x63B2,
-0x63B5,0x63B6,0x63B9,0x63BB,0x63BD,0x63BF,0x63C0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x63C1,0x63C2,0x63C3,0x63C5,0x63C7,0x63C8,0x63CA,0x63CB,
-0x63CC,0x63D1,0x63D3,0x63D4,0x63D5,0x63D7,0x63D8,0x63D9,
-0x63DA,0x63DB,0x63DC,0x63DD,0x63DF,0x63E2,0x63E4,0x63E5,
-0x63E6,0x63E7,0x63E8,0x63EB,0x63EC,0x63EE,0x63EF,0x63F0,
-0x63F1,0x63F3,0x63F5,0x63F7,0x63F9,0x63FA,0x63FB,0x63FC,
-0x63FE,0x6403,0x6404,0x6406,0x6407,0x6408,0x6409,0x640A,
-0x640D,0x640E,0x6411,0x6412,0x6415,0x6416,0x6417,0x6418,
-0x6419,0x641A,0x641D,0x641F,0x6422,0x6423,0x6424, 0,
-0x6425,0x6427,0x6428,0x6429,0x642B,0x642E,0x642F,0x6430,
-0x6431,0x6432,0x6433,0x6435,0x6436,0x6437,0x6438,0x6439,
-0x643B,0x643C,0x643E,0x6440,0x6442,0x6443,0x6449,0x644B,
-0x644C,0x644D,0x644E,0x644F,0x6450,0x6451,0x6453,0x6455,
-0x6456,0x6457,0x6459,0x645A,0x645B,0x645C,0x645D,0x645F,
-0x6460,0x6461,0x6462,0x6463,0x6464,0x6465,0x6466,0x6468,
-0x646A,0x646B,0x646C,0x646E,0x646F,0x6470,0x6471,0x6472,
-0x6473,0x6474,0x6475,0x6476,0x6477,0x647B,0x647C,0x647D,
-0x647E,0x647F,0x6480,0x6481,0x6483,0x6486,0x6488,0x6489,
-0x648A,0x648B,0x648C,0x648D,0x648E,0x648F,0x6490,0x6493,
-0x6494,0x6497,0x6498,0x649A,0x649B,0x649C,0x649D,0x649F,
-0x64A0,0x64A1,0x64A2,0x64A3,0x64A5,0x64A6,0x64A7,0x64A8,
-0x64AA,0x64AB,0x64AF,0x64B1,0x64B2,0x64B3,0x64B4,0x64B6,
-0x64B9,0x64BB,0x64BD,0x64BE,0x64BF,0x64C1,0x64C3,0x64C4,
-0x64C6,0x64C7,0x64C8,0x64C9,0x64CA,0x64CB,0x64CC,0x64CF,
-0x64D1,0x64D3,0x64D4,0x64D5,0x64D6,0x64D9,0x64DA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x64DB,0x64DC,0x64DD,0x64DF,0x64E0,0x64E1,0x64E3,0x64E5,
-0x64E7,0x64E8,0x64E9,0x64EA,0x64EB,0x64EC,0x64ED,0x64EE,
-0x64EF,0x64F0,0x64F1,0x64F2,0x64F3,0x64F4,0x64F5,0x64F6,
-0x64F7,0x64F8,0x64F9,0x64FA,0x64FB,0x64FC,0x64FD,0x64FE,
-0x64FF,0x6501,0x6502,0x6503,0x6504,0x6505,0x6506,0x6507,
-0x6508,0x650A,0x650B,0x650C,0x650D,0x650E,0x650F,0x6510,
-0x6511,0x6513,0x6514,0x6515,0x6516,0x6517,0x6519,0x651A,
-0x651B,0x651C,0x651D,0x651E,0x651F,0x6520,0x6521, 0,
-0x6522,0x6523,0x6524,0x6526,0x6527,0x6528,0x6529,0x652A,
-0x652C,0x652D,0x6530,0x6531,0x6532,0x6533,0x6537,0x653A,
-0x653C,0x653D,0x6540,0x6541,0x6542,0x6543,0x6544,0x6546,
-0x6547,0x654A,0x654B,0x654D,0x654E,0x6550,0x6552,0x6553,
-0x6554,0x6557,0x6558,0x655A,0x655C,0x655F,0x6560,0x6561,
-0x6564,0x6565,0x6567,0x6568,0x6569,0x656A,0x656D,0x656E,
-0x656F,0x6571,0x6573,0x6575,0x6576,0x6578,0x6579,0x657A,
-0x657B,0x657C,0x657D,0x657E,0x657F,0x6580,0x6581,0x6582,
-0x6583,0x6584,0x6585,0x6586,0x6588,0x6589,0x658A,0x658D,
-0x658E,0x658F,0x6592,0x6594,0x6595,0x6596,0x6598,0x659A,
-0x659D,0x659E,0x65A0,0x65A2,0x65A3,0x65A6,0x65A8,0x65AA,
-0x65AC,0x65AE,0x65B1,0x65B2,0x65B3,0x65B4,0x65B5,0x65B6,
-0x65B7,0x65B8,0x65BA,0x65BB,0x65BE,0x65BF,0x65C0,0x65C2,
-0x65C7,0x65C8,0x65C9,0x65CA,0x65CD,0x65D0,0x65D1,0x65D3,
-0x65D4,0x65D5,0x65D8,0x65D9,0x65DA,0x65DB,0x65DC,0x65DD,
-0x65DE,0x65DF,0x65E1,0x65E3,0x65E4,0x65EA,0x65EB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x65F2,0x65F3,0x65F4,0x65F5,0x65F8,0x65F9,0x65FB,0x65FC,
-0x65FD,0x65FE,0x65FF,0x6601,0x6604,0x6605,0x6607,0x6608,
-0x6609,0x660B,0x660D,0x6610,0x6611,0x6612,0x6616,0x6617,
-0x6618,0x661A,0x661B,0x661C,0x661E,0x6621,0x6622,0x6623,
-0x6624,0x6626,0x6629,0x662A,0x662B,0x662C,0x662E,0x6630,
-0x6632,0x6633,0x6637,0x6638,0x6639,0x663A,0x663B,0x663D,
-0x663F,0x6640,0x6642,0x6644,0x6645,0x6646,0x6647,0x6648,
-0x6649,0x664A,0x664D,0x664E,0x6650,0x6651,0x6658, 0,
-0x6659,0x665B,0x665C,0x665D,0x665E,0x6660,0x6662,0x6663,
-0x6665,0x6667,0x6669,0x666A,0x666B,0x666C,0x666D,0x6671,
-0x6672,0x6673,0x6675,0x6678,0x6679,0x667B,0x667C,0x667D,
-0x667F,0x6680,0x6681,0x6683,0x6685,0x6686,0x6688,0x6689,
-0x668A,0x668B,0x668D,0x668E,0x668F,0x6690,0x6692,0x6693,
-0x6694,0x6695,0x6698,0x6699,0x669A,0x669B,0x669C,0x669E,
-0x669F,0x66A0,0x66A1,0x66A2,0x66A3,0x66A4,0x66A5,0x66A6,
-0x66A9,0x66AA,0x66AB,0x66AC,0x66AD,0x66AF,0x66B0,0x66B1,
-0x66B2,0x66B3,0x66B5,0x66B6,0x66B7,0x66B8,0x66BA,0x66BB,
-0x66BC,0x66BD,0x66BF,0x66C0,0x66C1,0x66C2,0x66C3,0x66C4,
-0x66C5,0x66C6,0x66C7,0x66C8,0x66C9,0x66CA,0x66CB,0x66CC,
-0x66CD,0x66CE,0x66CF,0x66D0,0x66D1,0x66D2,0x66D3,0x66D4,
-0x66D5,0x66D6,0x66D7,0x66D8,0x66DA,0x66DE,0x66DF,0x66E0,
-0x66E1,0x66E2,0x66E3,0x66E4,0x66E5,0x66E7,0x66E8,0x66EA,
-0x66EB,0x66EC,0x66ED,0x66EE,0x66EF,0x66F1,0x66F5,0x66F6,
-0x66F8,0x66FA,0x66FB,0x66FD,0x6701,0x6702,0x6703, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6704,0x6705,0x6706,0x6707,0x670C,0x670E,0x670F,0x6711,
-0x6712,0x6713,0x6716,0x6718,0x6719,0x671A,0x671C,0x671E,
-0x6720,0x6721,0x6722,0x6723,0x6724,0x6725,0x6727,0x6729,
-0x672E,0x6730,0x6732,0x6733,0x6736,0x6737,0x6738,0x6739,
-0x673B,0x673C,0x673E,0x673F,0x6741,0x6744,0x6745,0x6747,
-0x674A,0x674B,0x674D,0x6752,0x6754,0x6755,0x6757,0x6758,
-0x6759,0x675A,0x675B,0x675D,0x6762,0x6763,0x6764,0x6766,
-0x6767,0x676B,0x676C,0x676E,0x6771,0x6774,0x6776, 0,
-0x6778,0x6779,0x677A,0x677B,0x677D,0x6780,0x6782,0x6783,
-0x6785,0x6786,0x6788,0x678A,0x678C,0x678D,0x678E,0x678F,
-0x6791,0x6792,0x6793,0x6794,0x6796,0x6799,0x679B,0x679F,
-0x67A0,0x67A1,0x67A4,0x67A6,0x67A9,0x67AC,0x67AE,0x67B1,
-0x67B2,0x67B4,0x67B9,0x67BA,0x67BB,0x67BC,0x67BD,0x67BE,
-0x67BF,0x67C0,0x67C2,0x67C5,0x67C6,0x67C7,0x67C8,0x67C9,
-0x67CA,0x67CB,0x67CC,0x67CD,0x67CE,0x67D5,0x67D6,0x67D7,
-0x67DB,0x67DF,0x67E1,0x67E3,0x67E4,0x67E6,0x67E7,0x67E8,
-0x67EA,0x67EB,0x67ED,0x67EE,0x67F2,0x67F5,0x67F6,0x67F7,
-0x67F8,0x67F9,0x67FA,0x67FB,0x67FC,0x67FE,0x6801,0x6802,
-0x6803,0x6804,0x6806,0x680D,0x6810,0x6812,0x6814,0x6815,
-0x6818,0x6819,0x681A,0x681B,0x681C,0x681E,0x681F,0x6820,
-0x6822,0x6823,0x6824,0x6825,0x6826,0x6827,0x6828,0x682B,
-0x682C,0x682D,0x682E,0x682F,0x6830,0x6831,0x6834,0x6835,
-0x6836,0x683A,0x683B,0x683F,0x6847,0x684B,0x684D,0x684F,
-0x6852,0x6856,0x6857,0x6858,0x6859,0x685A,0x685B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x685C,0x685D,0x685E,0x685F,0x686A,0x686C,0x686D,0x686E,
-0x686F,0x6870,0x6871,0x6872,0x6873,0x6875,0x6878,0x6879,
-0x687A,0x687B,0x687C,0x687D,0x687E,0x687F,0x6880,0x6882,
-0x6884,0x6887,0x6888,0x6889,0x688A,0x688B,0x688C,0x688D,
-0x688E,0x6890,0x6891,0x6892,0x6894,0x6895,0x6896,0x6898,
-0x6899,0x689A,0x689B,0x689C,0x689D,0x689E,0x689F,0x68A0,
-0x68A1,0x68A3,0x68A4,0x68A5,0x68A9,0x68AA,0x68AB,0x68AC,
-0x68AE,0x68B1,0x68B2,0x68B4,0x68B6,0x68B7,0x68B8, 0,
-0x68B9,0x68BA,0x68BB,0x68BC,0x68BD,0x68BE,0x68BF,0x68C1,
-0x68C3,0x68C4,0x68C5,0x68C6,0x68C7,0x68C8,0x68CA,0x68CC,
-0x68CE,0x68CF,0x68D0,0x68D1,0x68D3,0x68D4,0x68D6,0x68D7,
-0x68D9,0x68DB,0x68DC,0x68DD,0x68DE,0x68DF,0x68E1,0x68E2,
-0x68E4,0x68E5,0x68E6,0x68E7,0x68E8,0x68E9,0x68EA,0x68EB,
-0x68EC,0x68ED,0x68EF,0x68F2,0x68F3,0x68F4,0x68F6,0x68F7,
-0x68F8,0x68FB,0x68FD,0x68FE,0x68FF,0x6900,0x6902,0x6903,
-0x6904,0x6906,0x6907,0x6908,0x6909,0x690A,0x690C,0x690F,
-0x6911,0x6913,0x6914,0x6915,0x6916,0x6917,0x6918,0x6919,
-0x691A,0x691B,0x691C,0x691D,0x691E,0x6921,0x6922,0x6923,
-0x6925,0x6926,0x6927,0x6928,0x6929,0x692A,0x692B,0x692C,
-0x692E,0x692F,0x6931,0x6932,0x6933,0x6935,0x6936,0x6937,
-0x6938,0x693A,0x693B,0x693C,0x693E,0x6940,0x6941,0x6943,
-0x6944,0x6945,0x6946,0x6947,0x6948,0x6949,0x694A,0x694B,
-0x694C,0x694D,0x694E,0x694F,0x6950,0x6951,0x6952,0x6953,
-0x6955,0x6956,0x6958,0x6959,0x695B,0x695C,0x695F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6961,0x6962,0x6964,0x6965,0x6967,0x6968,0x6969,0x696A,
-0x696C,0x696D,0x696F,0x6970,0x6972,0x6973,0x6974,0x6975,
-0x6976,0x697A,0x697B,0x697D,0x697E,0x697F,0x6981,0x6983,
-0x6985,0x698A,0x698B,0x698C,0x698E,0x698F,0x6990,0x6991,
-0x6992,0x6993,0x6996,0x6997,0x6999,0x699A,0x699D,0x699E,
-0x699F,0x69A0,0x69A1,0x69A2,0x69A3,0x69A4,0x69A5,0x69A6,
-0x69A9,0x69AA,0x69AC,0x69AE,0x69AF,0x69B0,0x69B2,0x69B3,
-0x69B5,0x69B6,0x69B8,0x69B9,0x69BA,0x69BC,0x69BD, 0,
-0x69BE,0x69BF,0x69C0,0x69C2,0x69C3,0x69C4,0x69C5,0x69C6,
-0x69C7,0x69C8,0x69C9,0x69CB,0x69CD,0x69CF,0x69D1,0x69D2,
-0x69D3,0x69D5,0x69D6,0x69D7,0x69D8,0x69D9,0x69DA,0x69DC,
-0x69DD,0x69DE,0x69E1,0x69E2,0x69E3,0x69E4,0x69E5,0x69E6,
-0x69E7,0x69E8,0x69E9,0x69EA,0x69EB,0x69EC,0x69EE,0x69EF,
-0x69F0,0x69F1,0x69F3,0x69F4,0x69F5,0x69F6,0x69F7,0x69F8,
-0x69F9,0x69FA,0x69FB,0x69FC,0x69FE,0x6A00,0x6A01,0x6A02,
-0x6A03,0x6A04,0x6A05,0x6A06,0x6A07,0x6A08,0x6A09,0x6A0B,
-0x6A0C,0x6A0D,0x6A0E,0x6A0F,0x6A10,0x6A11,0x6A12,0x6A13,
-0x6A14,0x6A15,0x6A16,0x6A19,0x6A1A,0x6A1B,0x6A1C,0x6A1D,
-0x6A1E,0x6A20,0x6A22,0x6A23,0x6A24,0x6A25,0x6A26,0x6A27,
-0x6A29,0x6A2B,0x6A2C,0x6A2D,0x6A2E,0x6A30,0x6A32,0x6A33,
-0x6A34,0x6A36,0x6A37,0x6A38,0x6A39,0x6A3A,0x6A3B,0x6A3C,
-0x6A3F,0x6A40,0x6A41,0x6A42,0x6A43,0x6A45,0x6A46,0x6A48,
-0x6A49,0x6A4A,0x6A4B,0x6A4C,0x6A4D,0x6A4E,0x6A4F,0x6A51,
-0x6A52,0x6A53,0x6A54,0x6A55,0x6A56,0x6A57,0x6A5A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6A5C,0x6A5D,0x6A5E,0x6A5F,0x6A60,0x6A62,0x6A63,0x6A64,
-0x6A66,0x6A67,0x6A68,0x6A69,0x6A6A,0x6A6B,0x6A6C,0x6A6D,
-0x6A6E,0x6A6F,0x6A70,0x6A72,0x6A73,0x6A74,0x6A75,0x6A76,
-0x6A77,0x6A78,0x6A7A,0x6A7B,0x6A7D,0x6A7E,0x6A7F,0x6A81,
-0x6A82,0x6A83,0x6A85,0x6A86,0x6A87,0x6A88,0x6A89,0x6A8A,
-0x6A8B,0x6A8C,0x6A8D,0x6A8F,0x6A92,0x6A93,0x6A94,0x6A95,
-0x6A96,0x6A98,0x6A99,0x6A9A,0x6A9B,0x6A9C,0x6A9D,0x6A9E,
-0x6A9F,0x6AA1,0x6AA2,0x6AA3,0x6AA4,0x6AA5,0x6AA6, 0,
-0x6AA7,0x6AA8,0x6AAA,0x6AAD,0x6AAE,0x6AAF,0x6AB0,0x6AB1,
-0x6AB2,0x6AB3,0x6AB4,0x6AB5,0x6AB6,0x6AB7,0x6AB8,0x6AB9,
-0x6ABA,0x6ABB,0x6ABC,0x6ABD,0x6ABE,0x6ABF,0x6AC0,0x6AC1,
-0x6AC2,0x6AC3,0x6AC4,0x6AC5,0x6AC6,0x6AC7,0x6AC8,0x6AC9,
-0x6ACA,0x6ACB,0x6ACC,0x6ACD,0x6ACE,0x6ACF,0x6AD0,0x6AD1,
-0x6AD2,0x6AD3,0x6AD4,0x6AD5,0x6AD6,0x6AD7,0x6AD8,0x6AD9,
-0x6ADA,0x6ADB,0x6ADC,0x6ADD,0x6ADE,0x6ADF,0x6AE0,0x6AE1,
-0x6AE2,0x6AE3,0x6AE4,0x6AE5,0x6AE6,0x6AE7,0x6AE8,0x6AE9,
-0x6AEA,0x6AEB,0x6AEC,0x6AED,0x6AEE,0x6AEF,0x6AF0,0x6AF1,
-0x6AF2,0x6AF3,0x6AF4,0x6AF5,0x6AF6,0x6AF7,0x6AF8,0x6AF9,
-0x6AFA,0x6AFB,0x6AFC,0x6AFD,0x6AFE,0x6AFF,0x6B00,0x6B01,
-0x6B02,0x6B03,0x6B04,0x6B05,0x6B06,0x6B07,0x6B08,0x6B09,
-0x6B0A,0x6B0B,0x6B0C,0x6B0D,0x6B0E,0x6B0F,0x6B10,0x6B11,
-0x6B12,0x6B13,0x6B14,0x6B15,0x6B16,0x6B17,0x6B18,0x6B19,
-0x6B1A,0x6B1B,0x6B1C,0x6B1D,0x6B1E,0x6B1F,0x6B25,0x6B26,
-0x6B28,0x6B29,0x6B2A,0x6B2B,0x6B2C,0x6B2D,0x6B2E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6B2F,0x6B30,0x6B31,0x6B33,0x6B34,0x6B35,0x6B36,0x6B38,
-0x6B3B,0x6B3C,0x6B3D,0x6B3F,0x6B40,0x6B41,0x6B42,0x6B44,
-0x6B45,0x6B48,0x6B4A,0x6B4B,0x6B4D,0x6B4E,0x6B4F,0x6B50,
-0x6B51,0x6B52,0x6B53,0x6B54,0x6B55,0x6B56,0x6B57,0x6B58,
-0x6B5A,0x6B5B,0x6B5C,0x6B5D,0x6B5E,0x6B5F,0x6B60,0x6B61,
-0x6B68,0x6B69,0x6B6B,0x6B6C,0x6B6D,0x6B6E,0x6B6F,0x6B70,
-0x6B71,0x6B72,0x6B73,0x6B74,0x6B75,0x6B76,0x6B77,0x6B78,
-0x6B7A,0x6B7D,0x6B7E,0x6B7F,0x6B80,0x6B85,0x6B88, 0,
-0x6B8C,0x6B8E,0x6B8F,0x6B90,0x6B91,0x6B94,0x6B95,0x6B97,
-0x6B98,0x6B99,0x6B9C,0x6B9D,0x6B9E,0x6B9F,0x6BA0,0x6BA2,
-0x6BA3,0x6BA4,0x6BA5,0x6BA6,0x6BA7,0x6BA8,0x6BA9,0x6BAB,
-0x6BAC,0x6BAD,0x6BAE,0x6BAF,0x6BB0,0x6BB1,0x6BB2,0x6BB6,
-0x6BB8,0x6BB9,0x6BBA,0x6BBB,0x6BBC,0x6BBD,0x6BBE,0x6BC0,
-0x6BC3,0x6BC4,0x6BC6,0x6BC7,0x6BC8,0x6BC9,0x6BCA,0x6BCC,
-0x6BCE,0x6BD0,0x6BD1,0x6BD8,0x6BDA,0x6BDC,0x6BDD,0x6BDE,
-0x6BDF,0x6BE0,0x6BE2,0x6BE3,0x6BE4,0x6BE5,0x6BE6,0x6BE7,
-0x6BE8,0x6BE9,0x6BEC,0x6BED,0x6BEE,0x6BF0,0x6BF1,0x6BF2,
-0x6BF4,0x6BF6,0x6BF7,0x6BF8,0x6BFA,0x6BFB,0x6BFC,0x6BFE,
-0x6BFF,0x6C00,0x6C01,0x6C02,0x6C03,0x6C04,0x6C08,0x6C09,
-0x6C0A,0x6C0B,0x6C0C,0x6C0E,0x6C12,0x6C17,0x6C1C,0x6C1D,
-0x6C1E,0x6C20,0x6C23,0x6C25,0x6C2B,0x6C2C,0x6C2D,0x6C31,
-0x6C33,0x6C36,0x6C37,0x6C39,0x6C3A,0x6C3B,0x6C3C,0x6C3E,
-0x6C3F,0x6C43,0x6C44,0x6C45,0x6C48,0x6C4B,0x6C4C,0x6C4D,
-0x6C4E,0x6C4F,0x6C51,0x6C52,0x6C53,0x6C56,0x6C58, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6C59,0x6C5A,0x6C62,0x6C63,0x6C65,0x6C66,0x6C67,0x6C6B,
-0x6C6C,0x6C6D,0x6C6E,0x6C6F,0x6C71,0x6C73,0x6C75,0x6C77,
-0x6C78,0x6C7A,0x6C7B,0x6C7C,0x6C7F,0x6C80,0x6C84,0x6C87,
-0x6C8A,0x6C8B,0x6C8D,0x6C8E,0x6C91,0x6C92,0x6C95,0x6C96,
-0x6C97,0x6C98,0x6C9A,0x6C9C,0x6C9D,0x6C9E,0x6CA0,0x6CA2,
-0x6CA8,0x6CAC,0x6CAF,0x6CB0,0x6CB4,0x6CB5,0x6CB6,0x6CB7,
-0x6CBA,0x6CC0,0x6CC1,0x6CC2,0x6CC3,0x6CC6,0x6CC7,0x6CC8,
-0x6CCB,0x6CCD,0x6CCE,0x6CCF,0x6CD1,0x6CD2,0x6CD8, 0,
-0x6CD9,0x6CDA,0x6CDC,0x6CDD,0x6CDF,0x6CE4,0x6CE6,0x6CE7,
-0x6CE9,0x6CEC,0x6CED,0x6CF2,0x6CF4,0x6CF9,0x6CFF,0x6D00,
-0x6D02,0x6D03,0x6D05,0x6D06,0x6D08,0x6D09,0x6D0A,0x6D0D,
-0x6D0F,0x6D10,0x6D11,0x6D13,0x6D14,0x6D15,0x6D16,0x6D18,
-0x6D1C,0x6D1D,0x6D1F,0x6D20,0x6D21,0x6D22,0x6D23,0x6D24,
-0x6D26,0x6D28,0x6D29,0x6D2C,0x6D2D,0x6D2F,0x6D30,0x6D34,
-0x6D36,0x6D37,0x6D38,0x6D3A,0x6D3F,0x6D40,0x6D42,0x6D44,
-0x6D49,0x6D4C,0x6D50,0x6D55,0x6D56,0x6D57,0x6D58,0x6D5B,
-0x6D5D,0x6D5F,0x6D61,0x6D62,0x6D64,0x6D65,0x6D67,0x6D68,
-0x6D6B,0x6D6C,0x6D6D,0x6D70,0x6D71,0x6D72,0x6D73,0x6D75,
-0x6D76,0x6D79,0x6D7A,0x6D7B,0x6D7D,0x6D7E,0x6D7F,0x6D80,
-0x6D81,0x6D83,0x6D84,0x6D86,0x6D87,0x6D8A,0x6D8B,0x6D8D,
-0x6D8F,0x6D90,0x6D92,0x6D96,0x6D97,0x6D98,0x6D99,0x6D9A,
-0x6D9C,0x6DA2,0x6DA5,0x6DAC,0x6DAD,0x6DB0,0x6DB1,0x6DB3,
-0x6DB4,0x6DB6,0x6DB7,0x6DB9,0x6DBA,0x6DBB,0x6DBC,0x6DBD,
-0x6DBE,0x6DC1,0x6DC2,0x6DC3,0x6DC8,0x6DC9,0x6DCA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6DCD,0x6DCE,0x6DCF,0x6DD0,0x6DD2,0x6DD3,0x6DD4,0x6DD5,
-0x6DD7,0x6DDA,0x6DDB,0x6DDC,0x6DDF,0x6DE2,0x6DE3,0x6DE5,
-0x6DE7,0x6DE8,0x6DE9,0x6DEA,0x6DED,0x6DEF,0x6DF0,0x6DF2,
-0x6DF4,0x6DF5,0x6DF6,0x6DF8,0x6DFA,0x6DFD,0x6DFE,0x6DFF,
-0x6E00,0x6E01,0x6E02,0x6E03,0x6E04,0x6E06,0x6E07,0x6E08,
-0x6E09,0x6E0B,0x6E0F,0x6E12,0x6E13,0x6E15,0x6E18,0x6E19,
-0x6E1B,0x6E1C,0x6E1E,0x6E1F,0x6E22,0x6E26,0x6E27,0x6E28,
-0x6E2A,0x6E2C,0x6E2E,0x6E30,0x6E31,0x6E33,0x6E35, 0,
-0x6E36,0x6E37,0x6E39,0x6E3B,0x6E3C,0x6E3D,0x6E3E,0x6E3F,
-0x6E40,0x6E41,0x6E42,0x6E45,0x6E46,0x6E47,0x6E48,0x6E49,
-0x6E4A,0x6E4B,0x6E4C,0x6E4F,0x6E50,0x6E51,0x6E52,0x6E55,
-0x6E57,0x6E59,0x6E5A,0x6E5C,0x6E5D,0x6E5E,0x6E60,0x6E61,
-0x6E62,0x6E63,0x6E64,0x6E65,0x6E66,0x6E67,0x6E68,0x6E69,
-0x6E6A,0x6E6C,0x6E6D,0x6E6F,0x6E70,0x6E71,0x6E72,0x6E73,
-0x6E74,0x6E75,0x6E76,0x6E77,0x6E78,0x6E79,0x6E7A,0x6E7B,
-0x6E7C,0x6E7D,0x6E80,0x6E81,0x6E82,0x6E84,0x6E87,0x6E88,
-0x6E8A,0x6E8B,0x6E8C,0x6E8D,0x6E8E,0x6E91,0x6E92,0x6E93,
-0x6E94,0x6E95,0x6E96,0x6E97,0x6E99,0x6E9A,0x6E9B,0x6E9D,
-0x6E9E,0x6EA0,0x6EA1,0x6EA3,0x6EA4,0x6EA6,0x6EA8,0x6EA9,
-0x6EAB,0x6EAC,0x6EAD,0x6EAE,0x6EB0,0x6EB3,0x6EB5,0x6EB8,
-0x6EB9,0x6EBC,0x6EBE,0x6EBF,0x6EC0,0x6EC3,0x6EC4,0x6EC5,
-0x6EC6,0x6EC8,0x6EC9,0x6ECA,0x6ECC,0x6ECD,0x6ECE,0x6ED0,
-0x6ED2,0x6ED6,0x6ED8,0x6ED9,0x6EDB,0x6EDC,0x6EDD,0x6EE3,
-0x6EE7,0x6EEA,0x6EEB,0x6EEC,0x6EED,0x6EEE,0x6EEF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6EF0,0x6EF1,0x6EF2,0x6EF3,0x6EF5,0x6EF6,0x6EF7,0x6EF8,
-0x6EFA,0x6EFB,0x6EFC,0x6EFD,0x6EFE,0x6EFF,0x6F00,0x6F01,
-0x6F03,0x6F04,0x6F05,0x6F07,0x6F08,0x6F0A,0x6F0B,0x6F0C,
-0x6F0D,0x6F0E,0x6F10,0x6F11,0x6F12,0x6F16,0x6F17,0x6F18,
-0x6F19,0x6F1A,0x6F1B,0x6F1C,0x6F1D,0x6F1E,0x6F1F,0x6F21,
-0x6F22,0x6F23,0x6F25,0x6F26,0x6F27,0x6F28,0x6F2C,0x6F2E,
-0x6F30,0x6F32,0x6F34,0x6F35,0x6F37,0x6F38,0x6F39,0x6F3A,
-0x6F3B,0x6F3C,0x6F3D,0x6F3F,0x6F40,0x6F41,0x6F42, 0,
-0x6F43,0x6F44,0x6F45,0x6F48,0x6F49,0x6F4A,0x6F4C,0x6F4E,
-0x6F4F,0x6F50,0x6F51,0x6F52,0x6F53,0x6F54,0x6F55,0x6F56,
-0x6F57,0x6F59,0x6F5A,0x6F5B,0x6F5D,0x6F5F,0x6F60,0x6F61,
-0x6F63,0x6F64,0x6F65,0x6F67,0x6F68,0x6F69,0x6F6A,0x6F6B,
-0x6F6C,0x6F6F,0x6F70,0x6F71,0x6F73,0x6F75,0x6F76,0x6F77,
-0x6F79,0x6F7B,0x6F7D,0x6F7E,0x6F7F,0x6F80,0x6F81,0x6F82,
-0x6F83,0x6F85,0x6F86,0x6F87,0x6F8A,0x6F8B,0x6F8F,0x6F90,
-0x6F91,0x6F92,0x6F93,0x6F94,0x6F95,0x6F96,0x6F97,0x6F98,
-0x6F99,0x6F9A,0x6F9B,0x6F9D,0x6F9E,0x6F9F,0x6FA0,0x6FA2,
-0x6FA3,0x6FA4,0x6FA5,0x6FA6,0x6FA8,0x6FA9,0x6FAA,0x6FAB,
-0x6FAC,0x6FAD,0x6FAE,0x6FAF,0x6FB0,0x6FB1,0x6FB2,0x6FB4,
-0x6FB5,0x6FB7,0x6FB8,0x6FBA,0x6FBB,0x6FBC,0x6FBD,0x6FBE,
-0x6FBF,0x6FC1,0x6FC3,0x6FC4,0x6FC5,0x6FC6,0x6FC7,0x6FC8,
-0x6FCA,0x6FCB,0x6FCC,0x6FCD,0x6FCE,0x6FCF,0x6FD0,0x6FD3,
-0x6FD4,0x6FD5,0x6FD6,0x6FD7,0x6FD8,0x6FD9,0x6FDA,0x6FDB,
-0x6FDC,0x6FDD,0x6FDF,0x6FE2,0x6FE3,0x6FE4,0x6FE5, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x6FE6,0x6FE7,0x6FE8,0x6FE9,0x6FEA,0x6FEB,0x6FEC,0x6FED,
-0x6FF0,0x6FF1,0x6FF2,0x6FF3,0x6FF4,0x6FF5,0x6FF6,0x6FF7,
-0x6FF8,0x6FF9,0x6FFA,0x6FFB,0x6FFC,0x6FFD,0x6FFE,0x6FFF,
-0x7000,0x7001,0x7002,0x7003,0x7004,0x7005,0x7006,0x7007,
-0x7008,0x7009,0x700A,0x700B,0x700C,0x700D,0x700E,0x700F,
-0x7010,0x7012,0x7013,0x7014,0x7015,0x7016,0x7017,0x7018,
-0x7019,0x701C,0x701D,0x701E,0x701F,0x7020,0x7021,0x7022,
-0x7024,0x7025,0x7026,0x7027,0x7028,0x7029,0x702A, 0,
-0x702B,0x702C,0x702D,0x702E,0x702F,0x7030,0x7031,0x7032,
-0x7033,0x7034,0x7036,0x7037,0x7038,0x703A,0x703B,0x703C,
-0x703D,0x703E,0x703F,0x7040,0x7041,0x7042,0x7043,0x7044,
-0x7045,0x7046,0x7047,0x7048,0x7049,0x704A,0x704B,0x704D,
-0x704E,0x7050,0x7051,0x7052,0x7053,0x7054,0x7055,0x7056,
-0x7057,0x7058,0x7059,0x705A,0x705B,0x705C,0x705D,0x705F,
-0x7060,0x7061,0x7062,0x7063,0x7064,0x7065,0x7066,0x7067,
-0x7068,0x7069,0x706A,0x706E,0x7071,0x7072,0x7073,0x7074,
-0x7077,0x7079,0x707A,0x707B,0x707D,0x7081,0x7082,0x7083,
-0x7084,0x7086,0x7087,0x7088,0x708B,0x708C,0x708D,0x708F,
-0x7090,0x7091,0x7093,0x7097,0x7098,0x709A,0x709B,0x709E,
-0x709F,0x70A0,0x70A1,0x70A2,0x70A3,0x70A4,0x70A5,0x70A6,
-0x70A7,0x70A8,0x70A9,0x70AA,0x70B0,0x70B2,0x70B4,0x70B5,
-0x70B6,0x70BA,0x70BE,0x70BF,0x70C4,0x70C5,0x70C6,0x70C7,
-0x70C9,0x70CB,0x70CC,0x70CD,0x70CE,0x70CF,0x70D0,0x70D1,
-0x70D2,0x70D3,0x70D4,0x70D5,0x70D6,0x70D7,0x70DA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x70DC,0x70DD,0x70DE,0x70E0,0x70E1,0x70E2,0x70E3,0x70E5,
-0x70EA,0x70EE,0x70F0,0x70F1,0x70F2,0x70F3,0x70F4,0x70F5,
-0x70F6,0x70F8,0x70FA,0x70FB,0x70FC,0x70FE,0x70FF,0x7100,
-0x7101,0x7102,0x7103,0x7104,0x7105,0x7106,0x7107,0x7108,
-0x710B,0x710C,0x710D,0x710E,0x710F,0x7111,0x7112,0x7114,
-0x7117,0x711B,0x711C,0x711D,0x711E,0x711F,0x7120,0x7121,
-0x7122,0x7123,0x7124,0x7125,0x7127,0x7128,0x7129,0x712A,
-0x712B,0x712C,0x712D,0x712E,0x7132,0x7133,0x7134, 0,
-0x7135,0x7137,0x7138,0x7139,0x713A,0x713B,0x713C,0x713D,
-0x713E,0x713F,0x7140,0x7141,0x7142,0x7143,0x7144,0x7146,
-0x7147,0x7148,0x7149,0x714B,0x714D,0x714F,0x7150,0x7151,
-0x7152,0x7153,0x7154,0x7155,0x7156,0x7157,0x7158,0x7159,
-0x715A,0x715B,0x715D,0x715F,0x7160,0x7161,0x7162,0x7163,
-0x7165,0x7169,0x716A,0x716B,0x716C,0x716D,0x716F,0x7170,
-0x7171,0x7174,0x7175,0x7176,0x7177,0x7179,0x717B,0x717C,
-0x717E,0x717F,0x7180,0x7181,0x7182,0x7183,0x7185,0x7186,
-0x7187,0x7188,0x7189,0x718B,0x718C,0x718D,0x718E,0x7190,
-0x7191,0x7192,0x7193,0x7195,0x7196,0x7197,0x719A,0x719B,
-0x719C,0x719D,0x719E,0x71A1,0x71A2,0x71A3,0x71A4,0x71A5,
-0x71A6,0x71A7,0x71A9,0x71AA,0x71AB,0x71AD,0x71AE,0x71AF,
-0x71B0,0x71B1,0x71B2,0x71B4,0x71B6,0x71B7,0x71B8,0x71BA,
-0x71BB,0x71BC,0x71BD,0x71BE,0x71BF,0x71C0,0x71C1,0x71C2,
-0x71C4,0x71C5,0x71C6,0x71C7,0x71C8,0x71C9,0x71CA,0x71CB,
-0x71CC,0x71CD,0x71CF,0x71D0,0x71D1,0x71D2,0x71D3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x71D6,0x71D7,0x71D8,0x71D9,0x71DA,0x71DB,0x71DC,0x71DD,
-0x71DE,0x71DF,0x71E1,0x71E2,0x71E3,0x71E4,0x71E6,0x71E8,
-0x71E9,0x71EA,0x71EB,0x71EC,0x71ED,0x71EF,0x71F0,0x71F1,
-0x71F2,0x71F3,0x71F4,0x71F5,0x71F6,0x71F7,0x71F8,0x71FA,
-0x71FB,0x71FC,0x71FD,0x71FE,0x71FF,0x7200,0x7201,0x7202,
-0x7203,0x7204,0x7205,0x7207,0x7208,0x7209,0x720A,0x720B,
-0x720C,0x720D,0x720E,0x720F,0x7210,0x7211,0x7212,0x7213,
-0x7214,0x7215,0x7216,0x7217,0x7218,0x7219,0x721A, 0,
-0x721B,0x721C,0x721E,0x721F,0x7220,0x7221,0x7222,0x7223,
-0x7224,0x7225,0x7226,0x7227,0x7229,0x722B,0x722D,0x722E,
-0x722F,0x7232,0x7233,0x7234,0x723A,0x723C,0x723E,0x7240,
-0x7241,0x7242,0x7243,0x7244,0x7245,0x7246,0x7249,0x724A,
-0x724B,0x724E,0x724F,0x7250,0x7251,0x7253,0x7254,0x7255,
-0x7257,0x7258,0x725A,0x725C,0x725E,0x7260,0x7263,0x7264,
-0x7265,0x7268,0x726A,0x726B,0x726C,0x726D,0x7270,0x7271,
-0x7273,0x7274,0x7276,0x7277,0x7278,0x727B,0x727C,0x727D,
-0x7282,0x7283,0x7285,0x7286,0x7287,0x7288,0x7289,0x728C,
-0x728E,0x7290,0x7291,0x7293,0x7294,0x7295,0x7296,0x7297,
-0x7298,0x7299,0x729A,0x729B,0x729C,0x729D,0x729E,0x72A0,
-0x72A1,0x72A2,0x72A3,0x72A4,0x72A5,0x72A6,0x72A7,0x72A8,
-0x72A9,0x72AA,0x72AB,0x72AE,0x72B1,0x72B2,0x72B3,0x72B5,
-0x72BA,0x72BB,0x72BC,0x72BD,0x72BE,0x72BF,0x72C0,0x72C5,
-0x72C6,0x72C7,0x72C9,0x72CA,0x72CB,0x72CC,0x72CF,0x72D1,
-0x72D3,0x72D4,0x72D5,0x72D6,0x72D8,0x72DA,0x72DB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3000,0x3001,0x3002,0x00B7,0x02C9,0x02C7,0x00A8,
-0x3003,0x3005,0x2014,0xFF5E,0x2016,0x2026,0x2018,0x2019,
-0x201C,0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,
-0x300C,0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011,
-0x00B1,0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F,
-0x222A,0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220,
-0x2312,0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D,
-0x221D,0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235,
-0x2234,0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04,
-0x00A4,0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605,
-0x25CB,0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3,
-0x25B2,0x203B,0x2192,0x2190,0x2191,0x2193,0x3013, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x2170,0x2171,0x2172,0x2173,0x2174,0x2175,0x2176,
-0x2177,0x2178,0x2179, 0, 0, 0, 0, 0,
- 0,0x2488,0x2489,0x248A,0x248B,0x248C,0x248D,0x248E,
-0x248F,0x2490,0x2491,0x2492,0x2493,0x2494,0x2495,0x2496,
-0x2497,0x2498,0x2499,0x249A,0x249B,0x2474,0x2475,0x2476,
-0x2477,0x2478,0x2479,0x247A,0x247B,0x247C,0x247D,0x247E,
-0x247F,0x2480,0x2481,0x2482,0x2483,0x2484,0x2485,0x2486,
-0x2487,0x2460,0x2461,0x2462,0x2463,0x2464,0x2465,0x2466,
-0x2467,0x2468,0x2469, 0, 0,0x3220,0x3221,0x3222,
-0x3223,0x3224,0x3225,0x3226,0x3227,0x3228,0x3229, 0,
- 0,0x2160,0x2161,0x2162,0x2163,0x2164,0x2165,0x2166,
-0x2167,0x2168,0x2169,0x216A,0x216B, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFF01,0xFF02,0xFF03,0xFFE5,0xFF05,0xFF06,0xFF07,
-0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,0xFF0D,0xFF0E,0xFF0F,
-0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,0xFF15,0xFF16,0xFF17,
-0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,0xFF1D,0xFF1E,0xFF1F,
-0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,0xFF25,0xFF26,0xFF27,
-0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,0xFF2D,0xFF2E,0xFF2F,
-0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,0xFF35,0xFF36,0xFF37,
-0xFF38,0xFF39,0xFF3A,0xFF3B,0xFF3C,0xFF3D,0xFF3E,0xFF3F,
-0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,0xFF45,0xFF46,0xFF47,
-0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,0xFF4D,0xFF4E,0xFF4F,
-0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,0xFF55,0xFF56,0xFF57,
-0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,0xFF5D,0xFFE3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,0x3047,
-0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,0x304F,
-0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,
-0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,0x305F,
-0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,0x3067,
-0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,0x306F,
-0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,0x3077,
-0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,0x307F,
-0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,0x3087,
-0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,0x308F,
-0x3090,0x3091,0x3092,0x3093, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,
-0x30A8,0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,
-0x30B0,0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,
-0x30B8,0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,
-0x30C0,0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,
-0x30C8,0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,
-0x30D0,0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,
-0x30D8,0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,
-0x30E0,0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,
-0x30E8,0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,
-0x30F0,0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x0391,0x0392,0x0393,0x0394,0x0395,0x0396,0x0397,
-0x0398,0x0399,0x039A,0x039B,0x039C,0x039D,0x039E,0x039F,
-0x03A0,0x03A1,0x03A3,0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,
-0x03A9, 0, 0, 0, 0, 0, 0, 0,
- 0,0x03B1,0x03B2,0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,
-0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,
-0x03C0,0x03C1,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,
-0x03C9, 0, 0, 0, 0, 0, 0, 0,
-0xFE35,0xFE36,0xFE39,0xFE3A,0xFE3F,0xFE40,0xFE3D,0xFE3E,
-0xFE41,0xFE42,0xFE43,0xFE44, 0, 0,0xFE3B,0xFE3C,
-0xFE37,0xFE38,0xFE31, 0,0xFE33,0xFE34, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0401,
-0x0416,0x0417,0x0418,0x0419,0x041A,0x041B,0x041C,0x041D,
-0x041E,0x041F,0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,
-0x0426,0x0427,0x0428,0x0429,0x042A,0x042B,0x042C,0x042D,
-0x042E,0x042F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0451,
-0x0436,0x0437,0x0438,0x0439,0x043A,0x043B,0x043C,0x043D,
-0x043E,0x043F,0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,
-0x0446,0x0447,0x0448,0x0449,0x044A,0x044B,0x044C,0x044D,
-0x044E,0x044F, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x02CA,0x02CB,0x02D9,0x2013,0x2015,0x2025,0x2035,0x2105,
-0x2109,0x2196,0x2197,0x2198,0x2199,0x2215,0x221F,0x2223,
-0x2252,0x2266,0x2267,0x22BF,0x2550,0x2551,0x2552,0x2553,
-0x2554,0x2555,0x2556,0x2557,0x2558,0x2559,0x255A,0x255B,
-0x255C,0x255D,0x255E,0x255F,0x2560,0x2561,0x2562,0x2563,
-0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256A,0x256B,
-0x256C,0x256D,0x256E,0x256F,0x2570,0x2571,0x2572,0x2573,
-0x2581,0x2582,0x2583,0x2584,0x2585,0x2586,0x2587, 0,
-0x2588,0x2589,0x258A,0x258B,0x258C,0x258D,0x258E,0x258F,
-0x2593,0x2594,0x2595,0x25BC,0x25BD,0x25E2,0x25E3,0x25E4,
-0x25E5,0x2609,0x2295,0x3012,0x301D,0x301E, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,0x011B,
-0x00E8,0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,0x01D2,
-0x00F2,0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,0x01DA,
-0x01DC,0x00FC,0x00EA,0x0251, 0,0x0144,0x0148, 0,
-0x0261, 0, 0, 0, 0,0x3105,0x3106,0x3107,
-0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,0x310F,
-0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,0x3117,
-0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,0x311F,
-0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,0x3127,
-0x3128,0x3129, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x3021,0x3022,0x3023,0x3024,0x3025,0x3026,0x3027,0x3028,
-0x3029,0x32A3,0x338E,0x338F,0x339C,0x339D,0x339E,0x33A1,
-0x33C4,0x33CE,0x33D1,0x33D2,0x33D5,0xFE30,0xFFE2,0xFFE4,
- 0,0x2121,0x3231, 0,0x2010, 0, 0, 0,
-0x30FC,0x309B,0x309C,0x30FD,0x30FE,0x3006,0x309D,0x309E,
-0xFE49,0xFE4A,0xFE4B,0xFE4C,0xFE4D,0xFE4E,0xFE4F,0xFE50,
-0xFE51,0xFE52,0xFE54,0xFE55,0xFE56,0xFE57,0xFE59,0xFE5A,
-0xFE5B,0xFE5C,0xFE5D,0xFE5E,0xFE5F,0xFE60,0xFE61, 0,
-0xFE62,0xFE63,0xFE64,0xFE65,0xFE66,0xFE68,0xFE69,0xFE6A,
-0xFE6B, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0x3007, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0x2500,0x2501,0x2502,0x2503,
-0x2504,0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B,
-0x250C,0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513,
-0x2514,0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B,
-0x251C,0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523,
-0x2524,0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B,
-0x252C,0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533,
-0x2534,0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,
-0x253C,0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543,
-0x2544,0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x72DC,0x72DD,0x72DF,0x72E2,0x72E3,0x72E4,0x72E5,0x72E6,
-0x72E7,0x72EA,0x72EB,0x72F5,0x72F6,0x72F9,0x72FD,0x72FE,
-0x72FF,0x7300,0x7302,0x7304,0x7305,0x7306,0x7307,0x7308,
-0x7309,0x730B,0x730C,0x730D,0x730F,0x7310,0x7311,0x7312,
-0x7314,0x7318,0x7319,0x731A,0x731F,0x7320,0x7323,0x7324,
-0x7326,0x7327,0x7328,0x732D,0x732F,0x7330,0x7332,0x7333,
-0x7335,0x7336,0x733A,0x733B,0x733C,0x733D,0x7340,0x7341,
-0x7342,0x7343,0x7344,0x7345,0x7346,0x7347,0x7348, 0,
-0x7349,0x734A,0x734B,0x734C,0x734E,0x734F,0x7351,0x7353,
-0x7354,0x7355,0x7356,0x7358,0x7359,0x735A,0x735B,0x735C,
-0x735D,0x735E,0x735F,0x7361,0x7362,0x7363,0x7364,0x7365,
-0x7366,0x7367,0x7368,0x7369,0x736A,0x736B,0x736E,0x7370,
-0x7371, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7372,0x7373,0x7374,0x7375,0x7376,0x7377,0x7378,0x7379,
-0x737A,0x737B,0x737C,0x737D,0x737F,0x7380,0x7381,0x7382,
-0x7383,0x7385,0x7386,0x7388,0x738A,0x738C,0x738D,0x738F,
-0x7390,0x7392,0x7393,0x7394,0x7395,0x7397,0x7398,0x7399,
-0x739A,0x739C,0x739D,0x739E,0x73A0,0x73A1,0x73A3,0x73A4,
-0x73A5,0x73A6,0x73A7,0x73A8,0x73AA,0x73AC,0x73AD,0x73B1,
-0x73B4,0x73B5,0x73B6,0x73B8,0x73B9,0x73BC,0x73BD,0x73BE,
-0x73BF,0x73C1,0x73C3,0x73C4,0x73C5,0x73C6,0x73C7, 0,
-0x73CB,0x73CC,0x73CE,0x73D2,0x73D3,0x73D4,0x73D5,0x73D6,
-0x73D7,0x73D8,0x73DA,0x73DB,0x73DC,0x73DD,0x73DF,0x73E1,
-0x73E2,0x73E3,0x73E4,0x73E6,0x73E8,0x73EA,0x73EB,0x73EC,
-0x73EE,0x73EF,0x73F0,0x73F1,0x73F3,0x73F4,0x73F5,0x73F6,
-0x73F7, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x73F8,0x73F9,0x73FA,0x73FB,0x73FC,0x73FD,0x73FE,0x73FF,
-0x7400,0x7401,0x7402,0x7404,0x7407,0x7408,0x740B,0x740C,
-0x740D,0x740E,0x7411,0x7412,0x7413,0x7414,0x7415,0x7416,
-0x7417,0x7418,0x7419,0x741C,0x741D,0x741E,0x741F,0x7420,
-0x7421,0x7423,0x7424,0x7427,0x7429,0x742B,0x742D,0x742F,
-0x7431,0x7432,0x7437,0x7438,0x7439,0x743A,0x743B,0x743D,
-0x743E,0x743F,0x7440,0x7442,0x7443,0x7444,0x7445,0x7446,
-0x7447,0x7448,0x7449,0x744A,0x744B,0x744C,0x744D, 0,
-0x744E,0x744F,0x7450,0x7451,0x7452,0x7453,0x7454,0x7456,
-0x7458,0x745D,0x7460,0x7461,0x7462,0x7463,0x7464,0x7465,
-0x7466,0x7467,0x7468,0x7469,0x746A,0x746B,0x746C,0x746E,
-0x746F,0x7471,0x7472,0x7473,0x7474,0x7475,0x7478,0x7479,
-0x747A, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x747B,0x747C,0x747D,0x747F,0x7482,0x7484,0x7485,0x7486,
-0x7488,0x7489,0x748A,0x748C,0x748D,0x748F,0x7491,0x7492,
-0x7493,0x7494,0x7495,0x7496,0x7497,0x7498,0x7499,0x749A,
-0x749B,0x749D,0x749F,0x74A0,0x74A1,0x74A2,0x74A3,0x74A4,
-0x74A5,0x74A6,0x74AA,0x74AB,0x74AC,0x74AD,0x74AE,0x74AF,
-0x74B0,0x74B1,0x74B2,0x74B3,0x74B4,0x74B5,0x74B6,0x74B7,
-0x74B8,0x74B9,0x74BB,0x74BC,0x74BD,0x74BE,0x74BF,0x74C0,
-0x74C1,0x74C2,0x74C3,0x74C4,0x74C5,0x74C6,0x74C7, 0,
-0x74C8,0x74C9,0x74CA,0x74CB,0x74CC,0x74CD,0x74CE,0x74CF,
-0x74D0,0x74D1,0x74D3,0x74D4,0x74D5,0x74D6,0x74D7,0x74D8,
-0x74D9,0x74DA,0x74DB,0x74DD,0x74DF,0x74E1,0x74E5,0x74E7,
-0x74E8,0x74E9,0x74EA,0x74EB,0x74EC,0x74ED,0x74F0,0x74F1,
-0x74F2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x74F3,0x74F5,0x74F8,0x74F9,0x74FA,0x74FB,0x74FC,0x74FD,
-0x74FE,0x7500,0x7501,0x7502,0x7503,0x7505,0x7506,0x7507,
-0x7508,0x7509,0x750A,0x750B,0x750C,0x750E,0x7510,0x7512,
-0x7514,0x7515,0x7516,0x7517,0x751B,0x751D,0x751E,0x7520,
-0x7521,0x7522,0x7523,0x7524,0x7526,0x7527,0x752A,0x752E,
-0x7534,0x7536,0x7539,0x753C,0x753D,0x753F,0x7541,0x7542,
-0x7543,0x7544,0x7546,0x7547,0x7549,0x754A,0x754D,0x7550,
-0x7551,0x7552,0x7553,0x7555,0x7556,0x7557,0x7558, 0,
-0x755D,0x755E,0x755F,0x7560,0x7561,0x7562,0x7563,0x7564,
-0x7567,0x7568,0x7569,0x756B,0x756C,0x756D,0x756E,0x756F,
-0x7570,0x7571,0x7573,0x7575,0x7576,0x7577,0x757A,0x757B,
-0x757C,0x757D,0x757E,0x7580,0x7581,0x7582,0x7584,0x7585,
-0x7587, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7588,0x7589,0x758A,0x758C,0x758D,0x758E,0x7590,0x7593,
-0x7595,0x7598,0x759B,0x759C,0x759E,0x75A2,0x75A6,0x75A7,
-0x75A8,0x75A9,0x75AA,0x75AD,0x75B6,0x75B7,0x75BA,0x75BB,
-0x75BF,0x75C0,0x75C1,0x75C6,0x75CB,0x75CC,0x75CE,0x75CF,
-0x75D0,0x75D1,0x75D3,0x75D7,0x75D9,0x75DA,0x75DC,0x75DD,
-0x75DF,0x75E0,0x75E1,0x75E5,0x75E9,0x75EC,0x75ED,0x75EE,
-0x75EF,0x75F2,0x75F3,0x75F5,0x75F6,0x75F7,0x75F8,0x75FA,
-0x75FB,0x75FD,0x75FE,0x7602,0x7604,0x7606,0x7607, 0,
-0x7608,0x7609,0x760B,0x760D,0x760E,0x760F,0x7611,0x7612,
-0x7613,0x7614,0x7616,0x761A,0x761C,0x761D,0x761E,0x7621,
-0x7623,0x7627,0x7628,0x762C,0x762E,0x762F,0x7631,0x7632,
-0x7636,0x7637,0x7639,0x763A,0x763B,0x763D,0x7641,0x7642,
-0x7644, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7645,0x7646,0x7647,0x7648,0x7649,0x764A,0x764B,0x764E,
-0x764F,0x7650,0x7651,0x7652,0x7653,0x7655,0x7657,0x7658,
-0x7659,0x765A,0x765B,0x765D,0x765F,0x7660,0x7661,0x7662,
-0x7664,0x7665,0x7666,0x7667,0x7668,0x7669,0x766A,0x766C,
-0x766D,0x766E,0x7670,0x7671,0x7672,0x7673,0x7674,0x7675,
-0x7676,0x7677,0x7679,0x767A,0x767C,0x767F,0x7680,0x7681,
-0x7683,0x7685,0x7689,0x768A,0x768C,0x768D,0x768F,0x7690,
-0x7692,0x7694,0x7695,0x7697,0x7698,0x769A,0x769B, 0,
-0x769C,0x769D,0x769E,0x769F,0x76A0,0x76A1,0x76A2,0x76A3,
-0x76A5,0x76A6,0x76A7,0x76A8,0x76A9,0x76AA,0x76AB,0x76AC,
-0x76AD,0x76AF,0x76B0,0x76B3,0x76B5,0x76B6,0x76B7,0x76B8,
-0x76B9,0x76BA,0x76BB,0x76BC,0x76BD,0x76BE,0x76C0,0x76C1,
-0x76C3,0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,0x54C0,
-0x7691,0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698,
-0x978D,0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,0x80FA,
-0x6848,0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1,
-0x8884,0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252,
-0x53ED,0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB,
-0x9776,0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D,
-0x67CF,0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591,
-0x73ED,0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E,
-0x62CC,0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E,
-0x6886,0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551,
-0x508D,0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x76C4,0x76C7,0x76C9,0x76CB,0x76CC,0x76D3,0x76D5,0x76D9,
-0x76DA,0x76DC,0x76DD,0x76DE,0x76E0,0x76E1,0x76E2,0x76E3,
-0x76E4,0x76E6,0x76E7,0x76E8,0x76E9,0x76EA,0x76EB,0x76EC,
-0x76ED,0x76F0,0x76F3,0x76F5,0x76F6,0x76F7,0x76FA,0x76FB,
-0x76FD,0x76FF,0x7700,0x7702,0x7703,0x7705,0x7706,0x770A,
-0x770C,0x770E,0x770F,0x7710,0x7711,0x7712,0x7713,0x7714,
-0x7715,0x7716,0x7717,0x7718,0x771B,0x771C,0x771D,0x771E,
-0x7721,0x7723,0x7724,0x7725,0x7727,0x772A,0x772B, 0,
-0x772C,0x772E,0x7730,0x7731,0x7732,0x7733,0x7734,0x7739,
-0x773B,0x773D,0x773E,0x773F,0x7742,0x7744,0x7745,0x7746,
-0x7748,0x7749,0x774A,0x774B,0x774C,0x774D,0x774E,0x774F,
-0x7752,0x7753,0x7754,0x7755,0x7756,0x7757,0x7758,0x7759,
-0x775C,0x8584,0x96F9,0x4FDD,0x5821,0x9971,0x5B9D,0x62B1,
-0x62A5,0x66B4,0x8C79,0x9C8D,0x7206,0x676F,0x7891,0x60B2,
-0x5351,0x5317,0x8F88,0x80CC,0x8D1D,0x94A1,0x500D,0x72C8,
-0x5907,0x60EB,0x7119,0x88AB,0x5954,0x82EF,0x672C,0x7B28,
-0x5D29,0x7EF7,0x752D,0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B,
-0x6BD4,0x9119,0x7B14,0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5,
-0x6BD9,0x6BD6,0x5E01,0x5E87,0x75F9,0x95ED,0x655D,0x5F0A,
-0x5FC5,0x8F9F,0x58C1,0x81C2,0x907F,0x965B,0x97AD,0x8FB9,
-0x7F16,0x8D2C,0x6241,0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9,
-0x8FAB,0x904D,0x6807,0x5F6A,0x8198,0x8868,0x9CD6,0x618B,
-0x522B,0x762A,0x5F6C,0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448,
-0x5175,0x51B0,0x67C4,0x4E19,0x79C9,0x997C,0x70B3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x775D,0x775E,0x775F,0x7760,0x7764,0x7767,0x7769,0x776A,
-0x776D,0x776E,0x776F,0x7770,0x7771,0x7772,0x7773,0x7774,
-0x7775,0x7776,0x7777,0x7778,0x777A,0x777B,0x777C,0x7781,
-0x7782,0x7783,0x7786,0x7787,0x7788,0x7789,0x778A,0x778B,
-0x778F,0x7790,0x7793,0x7794,0x7795,0x7796,0x7797,0x7798,
-0x7799,0x779A,0x779B,0x779C,0x779D,0x779E,0x77A1,0x77A3,
-0x77A4,0x77A6,0x77A8,0x77AB,0x77AD,0x77AE,0x77AF,0x77B1,
-0x77B2,0x77B4,0x77B6,0x77B7,0x77B8,0x77B9,0x77BA, 0,
-0x77BC,0x77BE,0x77C0,0x77C1,0x77C2,0x77C3,0x77C4,0x77C5,
-0x77C6,0x77C7,0x77C8,0x77C9,0x77CA,0x77CB,0x77CC,0x77CE,
-0x77CF,0x77D0,0x77D1,0x77D2,0x77D3,0x77D4,0x77D5,0x77D6,
-0x77D8,0x77D9,0x77DA,0x77DD,0x77DE,0x77DF,0x77E0,0x77E1,
-0x77E4,0x75C5,0x5E76,0x73BB,0x83E0,0x64AD,0x62E8,0x94B5,
-0x6CE2,0x535A,0x52C3,0x640F,0x94C2,0x7B94,0x4F2F,0x5E1B,
-0x8236,0x8116,0x818A,0x6E24,0x6CCA,0x9A73,0x6355,0x535C,
-0x54FA,0x8865,0x57E0,0x4E0D,0x5E03,0x6B65,0x7C3F,0x90E8,
-0x6016,0x64E6,0x731C,0x88C1,0x6750,0x624D,0x8D22,0x776C,
-0x8E29,0x91C7,0x5F69,0x83DC,0x8521,0x9910,0x53C2,0x8695,
-0x6B8B,0x60ED,0x60E8,0x707F,0x82CD,0x8231,0x4ED3,0x6CA7,
-0x85CF,0x64CD,0x7CD9,0x69FD,0x66F9,0x8349,0x5395,0x7B56,
-0x4FA7,0x518C,0x6D4B,0x5C42,0x8E6D,0x63D2,0x53C9,0x832C,
-0x8336,0x67E5,0x78B4,0x643D,0x5BDF,0x5C94,0x5DEE,0x8BE7,
-0x62C6,0x67F4,0x8C7A,0x6400,0x63BA,0x8749,0x998B,0x8C17,
-0x7F20,0x94F2,0x4EA7,0x9610,0x98A4,0x660C,0x7316, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x77E6,0x77E8,0x77EA,0x77EF,0x77F0,0x77F1,0x77F2,0x77F4,
-0x77F5,0x77F7,0x77F9,0x77FA,0x77FB,0x77FC,0x7803,0x7804,
-0x7805,0x7806,0x7807,0x7808,0x780A,0x780B,0x780E,0x780F,
-0x7810,0x7813,0x7815,0x7819,0x781B,0x781E,0x7820,0x7821,
-0x7822,0x7824,0x7828,0x782A,0x782B,0x782E,0x782F,0x7831,
-0x7832,0x7833,0x7835,0x7836,0x783D,0x783F,0x7841,0x7842,
-0x7843,0x7844,0x7846,0x7848,0x7849,0x784A,0x784B,0x784D,
-0x784F,0x7851,0x7853,0x7854,0x7858,0x7859,0x785A, 0,
-0x785B,0x785C,0x785E,0x785F,0x7860,0x7861,0x7862,0x7863,
-0x7864,0x7865,0x7866,0x7867,0x7868,0x7869,0x786F,0x7870,
-0x7871,0x7872,0x7873,0x7874,0x7875,0x7876,0x7878,0x7879,
-0x787A,0x787B,0x787D,0x787E,0x787F,0x7880,0x7881,0x7882,
-0x7883,0x573A,0x5C1D,0x5E38,0x957F,0x507F,0x80A0,0x5382,
-0x655E,0x7545,0x5531,0x5021,0x8D85,0x6284,0x949E,0x671D,
-0x5632,0x6F6E,0x5DE2,0x5435,0x7092,0x8F66,0x626F,0x64A4,
-0x63A3,0x5F7B,0x6F88,0x90F4,0x81E3,0x8FB0,0x5C18,0x6668,
-0x5FF1,0x6C89,0x9648,0x8D81,0x886C,0x6491,0x79F0,0x57CE,
-0x6A59,0x6210,0x5448,0x4E58,0x7A0B,0x60E9,0x6F84,0x8BDA,
-0x627F,0x901E,0x9A8B,0x79E4,0x5403,0x75F4,0x6301,0x5319,
-0x6C60,0x8FDF,0x5F1B,0x9A70,0x803B,0x9F7F,0x4F88,0x5C3A,
-0x8D64,0x7FC5,0x65A5,0x70BD,0x5145,0x51B2,0x866B,0x5D07,
-0x5BA0,0x62BD,0x916C,0x7574,0x8E0C,0x7A20,0x6101,0x7B79,
-0x4EC7,0x7EF8,0x7785,0x4E11,0x81ED,0x521D,0x51FA,0x6A71,
-0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7884,0x7885,0x7886,0x7888,0x788A,0x788B,0x788F,0x7890,
-0x7892,0x7894,0x7895,0x7896,0x7899,0x789D,0x789E,0x78A0,
-0x78A2,0x78A4,0x78A6,0x78A8,0x78A9,0x78AA,0x78AB,0x78AC,
-0x78AD,0x78AE,0x78AF,0x78B5,0x78B6,0x78B7,0x78B8,0x78BA,
-0x78BB,0x78BC,0x78BD,0x78BF,0x78C0,0x78C2,0x78C3,0x78C4,
-0x78C6,0x78C7,0x78C8,0x78CC,0x78CD,0x78CE,0x78CF,0x78D1,
-0x78D2,0x78D3,0x78D6,0x78D7,0x78D8,0x78DA,0x78DB,0x78DC,
-0x78DD,0x78DE,0x78DF,0x78E0,0x78E1,0x78E2,0x78E3, 0,
-0x78E4,0x78E5,0x78E6,0x78E7,0x78E9,0x78EA,0x78EB,0x78ED,
-0x78EE,0x78EF,0x78F0,0x78F1,0x78F3,0x78F5,0x78F6,0x78F8,
-0x78F9,0x78FB,0x78FC,0x78FD,0x78FE,0x78FF,0x7900,0x7902,
-0x7903,0x7904,0x7906,0x7907,0x7908,0x7909,0x790A,0x790B,
-0x790C,0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,0x63E3,
-0x5DDD,0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,0x75AE,
-0x7A97,0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,0x6376,
-0x9524,0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,0x7EAF,
-0x8822,0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,0x8F9E,
-0x6148,0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,0x806A,
-0x8471,0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,0x918B,
-0x7C07,0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,0x50AC,
-0x8106,0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,0x5BF8,
-0x78CB,0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,0x8FBE,
-0x7B54,0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,0x6234,
-0x5E26,0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x790D,0x790E,0x790F,0x7910,0x7911,0x7912,0x7914,0x7915,
-0x7916,0x7917,0x7918,0x7919,0x791A,0x791B,0x791C,0x791D,
-0x791F,0x7920,0x7921,0x7922,0x7923,0x7925,0x7926,0x7927,
-0x7928,0x7929,0x792A,0x792B,0x792C,0x792D,0x792E,0x792F,
-0x7930,0x7931,0x7932,0x7933,0x7935,0x7936,0x7937,0x7938,
-0x7939,0x793D,0x793F,0x7942,0x7943,0x7944,0x7945,0x7947,
-0x794A,0x794B,0x794C,0x794D,0x794E,0x794F,0x7950,0x7951,
-0x7952,0x7954,0x7955,0x7958,0x7959,0x7961,0x7963, 0,
-0x7964,0x7966,0x7969,0x796A,0x796B,0x796C,0x796E,0x7970,
-0x7971,0x7972,0x7973,0x7974,0x7975,0x7976,0x7979,0x797B,
-0x797C,0x797D,0x797E,0x797F,0x7982,0x7983,0x7986,0x7987,
-0x7988,0x7989,0x798B,0x798C,0x798D,0x798E,0x7990,0x7991,
-0x7992,0x6020,0x803D,0x62C5,0x4E39,0x5355,0x90F8,0x63B8,
-0x80C6,0x65E6,0x6C2E,0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39,
-0x86CB,0x5F53,0x6321,0x515A,0x8361,0x6863,0x5200,0x6363,
-0x8E48,0x5012,0x5C9B,0x7977,0x5BFC,0x5230,0x7A3B,0x60BC,
-0x9053,0x76D7,0x5FB7,0x5F97,0x7684,0x8E6C,0x706F,0x767B,
-0x7B49,0x77AA,0x51F3,0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA,
-0x654C,0x7B1B,0x72C4,0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95,
-0x5730,0x8482,0x7B2C,0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0,
-0x6382,0x6EC7,0x7898,0x70B9,0x5178,0x975B,0x57AB,0x7535,
-0x4F43,0x7538,0x5E97,0x60E6,0x5960,0x6DC0,0x6BBF,0x7889,
-0x53FC,0x96D5,0x51CB,0x5201,0x6389,0x540A,0x9493,0x8C03,
-0x8DCC,0x7239,0x789F,0x8776,0x8FED,0x8C0D,0x53E0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7993,0x7994,0x7995,0x7996,0x7997,0x7998,0x7999,0x799B,
-0x799C,0x799D,0x799E,0x799F,0x79A0,0x79A1,0x79A2,0x79A3,
-0x79A4,0x79A5,0x79A6,0x79A8,0x79A9,0x79AA,0x79AB,0x79AC,
-0x79AD,0x79AE,0x79AF,0x79B0,0x79B1,0x79B2,0x79B4,0x79B5,
-0x79B6,0x79B7,0x79B8,0x79BC,0x79BF,0x79C2,0x79C4,0x79C5,
-0x79C7,0x79C8,0x79CA,0x79CC,0x79CE,0x79CF,0x79D0,0x79D3,
-0x79D4,0x79D6,0x79D7,0x79D9,0x79DA,0x79DB,0x79DC,0x79DD,
-0x79DE,0x79E0,0x79E1,0x79E2,0x79E5,0x79E8,0x79EA, 0,
-0x79EC,0x79EE,0x79F1,0x79F2,0x79F3,0x79F4,0x79F5,0x79F6,
-0x79F7,0x79F9,0x79FA,0x79FC,0x79FE,0x79FF,0x7A01,0x7A04,
-0x7A05,0x7A07,0x7A08,0x7A09,0x7A0A,0x7A0C,0x7A0F,0x7A10,
-0x7A11,0x7A12,0x7A13,0x7A15,0x7A16,0x7A18,0x7A19,0x7A1B,
-0x7A1C,0x4E01,0x76EF,0x53EE,0x9489,0x9876,0x9F0E,0x952D,
-0x5B9A,0x8BA2,0x4E22,0x4E1C,0x51AC,0x8463,0x61C2,0x52A8,
-0x680B,0x4F97,0x606B,0x51BB,0x6D1E,0x515C,0x6296,0x6597,
-0x9661,0x8C46,0x9017,0x75D8,0x90FD,0x7763,0x6BD2,0x728A,
-0x72EC,0x8BFB,0x5835,0x7779,0x8D4C,0x675C,0x9540,0x809A,
-0x5EA6,0x6E21,0x5992,0x7AEF,0x77ED,0x953B,0x6BB5,0x65AD,
-0x7F0E,0x5806,0x5151,0x961F,0x5BF9,0x58A9,0x5428,0x8E72,
-0x6566,0x987F,0x56E4,0x949D,0x76FE,0x9041,0x6387,0x54C6,
-0x591A,0x593A,0x579B,0x8EB2,0x6735,0x8DFA,0x8235,0x5241,
-0x60F0,0x5815,0x86FE,0x5CE8,0x9E45,0x4FC4,0x989D,0x8BB9,
-0x5A25,0x6076,0x5384,0x627C,0x904F,0x9102,0x997F,0x6069,
-0x800C,0x513F,0x8033,0x5C14,0x9975,0x6D31,0x4E8C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7A1D,0x7A1F,0x7A21,0x7A22,0x7A24,0x7A25,0x7A26,0x7A27,
-0x7A28,0x7A29,0x7A2A,0x7A2B,0x7A2C,0x7A2D,0x7A2E,0x7A2F,
-0x7A30,0x7A31,0x7A32,0x7A34,0x7A35,0x7A36,0x7A38,0x7A3A,
-0x7A3E,0x7A40,0x7A41,0x7A42,0x7A43,0x7A44,0x7A45,0x7A47,
-0x7A48,0x7A49,0x7A4A,0x7A4B,0x7A4C,0x7A4D,0x7A4E,0x7A4F,
-0x7A50,0x7A52,0x7A53,0x7A54,0x7A55,0x7A56,0x7A58,0x7A59,
-0x7A5A,0x7A5B,0x7A5C,0x7A5D,0x7A5E,0x7A5F,0x7A60,0x7A61,
-0x7A62,0x7A63,0x7A64,0x7A65,0x7A66,0x7A67,0x7A68, 0,
-0x7A69,0x7A6A,0x7A6B,0x7A6C,0x7A6D,0x7A6E,0x7A6F,0x7A71,
-0x7A72,0x7A73,0x7A75,0x7A7B,0x7A7C,0x7A7D,0x7A7E,0x7A82,
-0x7A85,0x7A87,0x7A89,0x7A8A,0x7A8B,0x7A8C,0x7A8E,0x7A8F,
-0x7A90,0x7A93,0x7A94,0x7A99,0x7A9A,0x7A9B,0x7A9E,0x7AA1,
-0x7AA2,0x8D30,0x53D1,0x7F5A,0x7B4F,0x4F10,0x4E4F,0x9600,
-0x6CD5,0x73D0,0x85E9,0x5E06,0x756A,0x7FFB,0x6A0A,0x77FE,
-0x9492,0x7E41,0x51E1,0x70E6,0x53CD,0x8FD4,0x8303,0x8D29,
-0x72AF,0x996D,0x6CDB,0x574A,0x82B3,0x65B9,0x80AA,0x623F,
-0x9632,0x59A8,0x4EFF,0x8BBF,0x7EBA,0x653E,0x83F2,0x975E,
-0x5561,0x98DE,0x80A5,0x532A,0x8BFD,0x5420,0x80BA,0x5E9F,
-0x6CB8,0x8D39,0x82AC,0x915A,0x5429,0x6C1B,0x5206,0x7EB7,
-0x575F,0x711A,0x6C7E,0x7C89,0x594B,0x4EFD,0x5FFF,0x6124,
-0x7CAA,0x4E30,0x5C01,0x67AB,0x8702,0x5CF0,0x950B,0x98CE,
-0x75AF,0x70FD,0x9022,0x51AF,0x7F1D,0x8BBD,0x5949,0x51E4,
-0x4F5B,0x5426,0x592B,0x6577,0x80A4,0x5B75,0x6276,0x62C2,
-0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7AA3,0x7AA4,0x7AA7,0x7AA9,0x7AAA,0x7AAB,0x7AAE,0x7AAF,
-0x7AB0,0x7AB1,0x7AB2,0x7AB4,0x7AB5,0x7AB6,0x7AB7,0x7AB8,
-0x7AB9,0x7ABA,0x7ABB,0x7ABC,0x7ABD,0x7ABE,0x7AC0,0x7AC1,
-0x7AC2,0x7AC3,0x7AC4,0x7AC5,0x7AC6,0x7AC7,0x7AC8,0x7AC9,
-0x7ACA,0x7ACC,0x7ACD,0x7ACE,0x7ACF,0x7AD0,0x7AD1,0x7AD2,
-0x7AD3,0x7AD4,0x7AD5,0x7AD7,0x7AD8,0x7ADA,0x7ADB,0x7ADC,
-0x7ADD,0x7AE1,0x7AE2,0x7AE4,0x7AE7,0x7AE8,0x7AE9,0x7AEA,
-0x7AEB,0x7AEC,0x7AEE,0x7AF0,0x7AF1,0x7AF2,0x7AF3, 0,
-0x7AF4,0x7AF5,0x7AF6,0x7AF7,0x7AF8,0x7AFB,0x7AFC,0x7AFE,
-0x7B00,0x7B01,0x7B02,0x7B05,0x7B07,0x7B09,0x7B0C,0x7B0D,
-0x7B0E,0x7B10,0x7B12,0x7B13,0x7B16,0x7B17,0x7B18,0x7B1A,
-0x7B1C,0x7B1D,0x7B1F,0x7B21,0x7B22,0x7B23,0x7B27,0x7B29,
-0x7B2D,0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,0x629A,
-0x8F85,0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,0x8150,
-0x8D74,0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,0x961C,
-0x7236,0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,0x7F1A,
-0x5490,0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,0x76D6,
-0x6E89,0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,0x8D76,
-0x611F,0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,0x7F38,
-0x809B,0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,0x9AD8,
-0x818F,0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,0x54E5,
-0x6B4C,0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,0x9769,
-0x845B,0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,0x5404,
-0x7ED9,0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7B2F,0x7B30,0x7B32,0x7B34,0x7B35,0x7B36,0x7B37,0x7B39,
-0x7B3B,0x7B3D,0x7B3F,0x7B40,0x7B41,0x7B42,0x7B43,0x7B44,
-0x7B46,0x7B48,0x7B4A,0x7B4D,0x7B4E,0x7B53,0x7B55,0x7B57,
-0x7B59,0x7B5C,0x7B5E,0x7B5F,0x7B61,0x7B63,0x7B64,0x7B65,
-0x7B66,0x7B67,0x7B68,0x7B69,0x7B6A,0x7B6B,0x7B6C,0x7B6D,
-0x7B6F,0x7B70,0x7B73,0x7B74,0x7B76,0x7B78,0x7B7A,0x7B7C,
-0x7B7D,0x7B7F,0x7B81,0x7B82,0x7B83,0x7B84,0x7B86,0x7B87,
-0x7B88,0x7B89,0x7B8A,0x7B8B,0x7B8C,0x7B8E,0x7B8F, 0,
-0x7B91,0x7B92,0x7B93,0x7B96,0x7B98,0x7B99,0x7B9A,0x7B9B,
-0x7B9E,0x7B9F,0x7BA0,0x7BA3,0x7BA4,0x7BA5,0x7BAE,0x7BAF,
-0x7BB0,0x7BB2,0x7BB3,0x7BB5,0x7BB6,0x7BB7,0x7BB9,0x7BBA,
-0x7BBB,0x7BBC,0x7BBD,0x7BBE,0x7BBF,0x7BC0,0x7BC2,0x7BC3,
-0x7BC4,0x57C2,0x803F,0x6897,0x5DE5,0x653B,0x529F,0x606D,
-0x9F9A,0x4F9B,0x8EAC,0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E,
-0x62F1,0x8D21,0x5171,0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7,
-0x57A2,0x6784,0x8D2D,0x591F,0x8F9C,0x83C7,0x5495,0x7B8D,
-0x4F30,0x6CBD,0x5B64,0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8,
-0x8C37,0x80A1,0x6545,0x987E,0x56FA,0x96C7,0x522E,0x74DC,
-0x5250,0x5BE1,0x6302,0x8902,0x4E56,0x62D0,0x602A,0x68FA,
-0x5173,0x5B98,0x51A0,0x89C2,0x7BA1,0x9986,0x7F50,0x60EF,
-0x704C,0x8D2F,0x5149,0x5E7F,0x901B,0x7470,0x89C4,0x572D,
-0x7845,0x5F52,0x9F9F,0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678,
-0x6842,0x67DC,0x8DEA,0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD,
-0x9505,0x90ED,0x56FD,0x679C,0x88F9,0x8FC7,0x54C8, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7BC5,0x7BC8,0x7BC9,0x7BCA,0x7BCB,0x7BCD,0x7BCE,0x7BCF,
-0x7BD0,0x7BD2,0x7BD4,0x7BD5,0x7BD6,0x7BD7,0x7BD8,0x7BDB,
-0x7BDC,0x7BDE,0x7BDF,0x7BE0,0x7BE2,0x7BE3,0x7BE4,0x7BE7,
-0x7BE8,0x7BE9,0x7BEB,0x7BEC,0x7BED,0x7BEF,0x7BF0,0x7BF2,
-0x7BF3,0x7BF4,0x7BF5,0x7BF6,0x7BF8,0x7BF9,0x7BFA,0x7BFB,
-0x7BFD,0x7BFF,0x7C00,0x7C01,0x7C02,0x7C03,0x7C04,0x7C05,
-0x7C06,0x7C08,0x7C09,0x7C0A,0x7C0D,0x7C0E,0x7C10,0x7C11,
-0x7C12,0x7C13,0x7C14,0x7C15,0x7C17,0x7C18,0x7C19, 0,
-0x7C1A,0x7C1B,0x7C1C,0x7C1D,0x7C1E,0x7C20,0x7C21,0x7C22,
-0x7C23,0x7C24,0x7C25,0x7C28,0x7C29,0x7C2B,0x7C2C,0x7C2D,
-0x7C2E,0x7C2F,0x7C30,0x7C31,0x7C32,0x7C33,0x7C34,0x7C35,
-0x7C36,0x7C37,0x7C39,0x7C3A,0x7C3B,0x7C3C,0x7C3D,0x7C3E,
-0x7C42,0x9AB8,0x5B69,0x6D77,0x6C26,0x4EA5,0x5BB3,0x9A87,
-0x9163,0x61A8,0x90AF,0x97E9,0x542B,0x6DB5,0x5BD2,0x51FD,
-0x558A,0x7F55,0x7FF0,0x64BC,0x634D,0x65F1,0x61BE,0x608D,
-0x710A,0x6C57,0x6C49,0x592F,0x676D,0x822A,0x58D5,0x568E,
-0x8C6A,0x6BEB,0x90DD,0x597D,0x8017,0x53F7,0x6D69,0x5475,
-0x559D,0x8377,0x83CF,0x6838,0x79BE,0x548C,0x4F55,0x5408,
-0x76D2,0x8C89,0x9602,0x6CB3,0x6DB8,0x8D6B,0x8910,0x9E64,
-0x8D3A,0x563F,0x9ED1,0x75D5,0x5F88,0x72E0,0x6068,0x54FC,
-0x4EA8,0x6A2A,0x8861,0x6052,0x8F70,0x54C4,0x70D8,0x8679,
-0x9E3F,0x6D2A,0x5B8F,0x5F18,0x7EA2,0x5589,0x4FAF,0x7334,
-0x543C,0x539A,0x5019,0x540E,0x547C,0x4E4E,0x5FFD,0x745A,
-0x58F6,0x846B,0x80E1,0x8774,0x72D0,0x7CCA,0x6E56, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7C43,0x7C44,0x7C45,0x7C46,0x7C47,0x7C48,0x7C49,0x7C4A,
-0x7C4B,0x7C4C,0x7C4E,0x7C4F,0x7C50,0x7C51,0x7C52,0x7C53,
-0x7C54,0x7C55,0x7C56,0x7C57,0x7C58,0x7C59,0x7C5A,0x7C5B,
-0x7C5C,0x7C5D,0x7C5E,0x7C5F,0x7C60,0x7C61,0x7C62,0x7C63,
-0x7C64,0x7C65,0x7C66,0x7C67,0x7C68,0x7C69,0x7C6A,0x7C6B,
-0x7C6C,0x7C6D,0x7C6E,0x7C6F,0x7C70,0x7C71,0x7C72,0x7C75,
-0x7C76,0x7C77,0x7C78,0x7C79,0x7C7A,0x7C7E,0x7C7F,0x7C80,
-0x7C81,0x7C82,0x7C83,0x7C84,0x7C85,0x7C86,0x7C87, 0,
-0x7C88,0x7C8A,0x7C8B,0x7C8C,0x7C8D,0x7C8E,0x7C8F,0x7C90,
-0x7C93,0x7C94,0x7C96,0x7C99,0x7C9A,0x7C9B,0x7CA0,0x7CA1,
-0x7CA3,0x7CA6,0x7CA7,0x7CA8,0x7CA9,0x7CAB,0x7CAC,0x7CAD,
-0x7CAF,0x7CB0,0x7CB4,0x7CB5,0x7CB6,0x7CB7,0x7CB8,0x7CBA,
-0x7CBB,0x5F27,0x864E,0x552C,0x62A4,0x4E92,0x6CAA,0x6237,
-0x82B1,0x54D7,0x534E,0x733E,0x6ED1,0x753B,0x5212,0x5316,
-0x8BDD,0x69D0,0x5F8A,0x6000,0x6DEE,0x574F,0x6B22,0x73AF,
-0x6853,0x8FD8,0x7F13,0x6362,0x60A3,0x5524,0x75EA,0x8C62,
-0x7115,0x6DA3,0x5BA6,0x5E7B,0x8352,0x614C,0x9EC4,0x78FA,
-0x8757,0x7C27,0x7687,0x51F0,0x60F6,0x714C,0x6643,0x5E4C,
-0x604D,0x8C0E,0x7070,0x6325,0x8F89,0x5FBD,0x6062,0x86D4,
-0x56DE,0x6BC1,0x6094,0x6167,0x5349,0x60E0,0x6666,0x8D3F,
-0x79FD,0x4F1A,0x70E9,0x6C47,0x8BB3,0x8BF2,0x7ED8,0x8364,
-0x660F,0x5A5A,0x9B42,0x6D51,0x6DF7,0x8C41,0x6D3B,0x4F19,
-0x706B,0x83B7,0x6216,0x60D1,0x970D,0x8D27,0x7978,0x51FB,
-0x573E,0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7CBF,0x7CC0,0x7CC2,0x7CC3,0x7CC4,0x7CC6,0x7CC9,0x7CCB,
-0x7CCE,0x7CCF,0x7CD0,0x7CD1,0x7CD2,0x7CD3,0x7CD4,0x7CD8,
-0x7CDA,0x7CDB,0x7CDD,0x7CDE,0x7CE1,0x7CE2,0x7CE3,0x7CE4,
-0x7CE5,0x7CE6,0x7CE7,0x7CE9,0x7CEA,0x7CEB,0x7CEC,0x7CED,
-0x7CEE,0x7CF0,0x7CF1,0x7CF2,0x7CF3,0x7CF4,0x7CF5,0x7CF6,
-0x7CF7,0x7CF9,0x7CFA,0x7CFC,0x7CFD,0x7CFE,0x7CFF,0x7D00,
-0x7D01,0x7D02,0x7D03,0x7D04,0x7D05,0x7D06,0x7D07,0x7D08,
-0x7D09,0x7D0B,0x7D0C,0x7D0D,0x7D0E,0x7D0F,0x7D10, 0,
-0x7D11,0x7D12,0x7D13,0x7D14,0x7D15,0x7D16,0x7D17,0x7D18,
-0x7D19,0x7D1A,0x7D1B,0x7D1C,0x7D1D,0x7D1E,0x7D1F,0x7D21,
-0x7D23,0x7D24,0x7D25,0x7D26,0x7D28,0x7D29,0x7D2A,0x7D2C,
-0x7D2D,0x7D2E,0x7D30,0x7D31,0x7D32,0x7D33,0x7D34,0x7D35,
-0x7D36,0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,0x59EC,
-0x7EE9,0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,0x96C6,
-0x53CA,0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,0x6324,
-0x51E0,0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,0x4F0E,
-0x796D,0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,0x8BB0,
-0x65E2,0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,0x67B7,
-0x5939,0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,0x7532,
-0x94BE,0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,0x6B7C,
-0x76D1,0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,0x80A9,
-0x8270,0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,0x7877,
-0x62E3,0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,0x69DB,
-0x9274,0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7D37,0x7D38,0x7D39,0x7D3A,0x7D3B,0x7D3C,0x7D3D,0x7D3E,
-0x7D3F,0x7D40,0x7D41,0x7D42,0x7D43,0x7D44,0x7D45,0x7D46,
-0x7D47,0x7D48,0x7D49,0x7D4A,0x7D4B,0x7D4C,0x7D4D,0x7D4E,
-0x7D4F,0x7D50,0x7D51,0x7D52,0x7D53,0x7D54,0x7D55,0x7D56,
-0x7D57,0x7D58,0x7D59,0x7D5A,0x7D5B,0x7D5C,0x7D5D,0x7D5E,
-0x7D5F,0x7D60,0x7D61,0x7D62,0x7D63,0x7D64,0x7D65,0x7D66,
-0x7D67,0x7D68,0x7D69,0x7D6A,0x7D6B,0x7D6C,0x7D6D,0x7D6F,
-0x7D70,0x7D71,0x7D72,0x7D73,0x7D74,0x7D75,0x7D76, 0,
-0x7D78,0x7D79,0x7D7A,0x7D7B,0x7D7C,0x7D7D,0x7D7E,0x7D7F,
-0x7D80,0x7D81,0x7D82,0x7D83,0x7D84,0x7D85,0x7D86,0x7D87,
-0x7D88,0x7D89,0x7D8A,0x7D8B,0x7D8C,0x7D8D,0x7D8E,0x7D8F,
-0x7D90,0x7D91,0x7D92,0x7D93,0x7D94,0x7D95,0x7D96,0x7D97,
-0x7D98,0x5065,0x8230,0x5251,0x996F,0x6E10,0x6E85,0x6DA7,
-0x5EFA,0x50F5,0x59DC,0x5C06,0x6D46,0x6C5F,0x7586,0x848B,
-0x6868,0x5956,0x8BB2,0x5320,0x9171,0x964D,0x8549,0x6912,
-0x7901,0x7126,0x80F6,0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07,
-0x56BC,0x6405,0x94F0,0x77EB,0x4FA5,0x811A,0x72E1,0x89D2,
-0x997A,0x7F34,0x7EDE,0x527F,0x6559,0x9175,0x8F7F,0x8F83,
-0x53EB,0x7A96,0x63ED,0x63A5,0x7686,0x79F8,0x8857,0x9636,
-0x622A,0x52AB,0x8282,0x6854,0x6770,0x6377,0x776B,0x7AED,
-0x6D01,0x7ED3,0x89E3,0x59D0,0x6212,0x85C9,0x82A5,0x754C,
-0x501F,0x4ECB,0x75A5,0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4,
-0x91D1,0x4ECA,0x6D25,0x895F,0x7D27,0x9526,0x4EC5,0x8C28,
-0x8FDB,0x9773,0x664B,0x7981,0x8FD1,0x70EC,0x6D78, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7D99,0x7D9A,0x7D9B,0x7D9C,0x7D9D,0x7D9E,0x7D9F,0x7DA0,
-0x7DA1,0x7DA2,0x7DA3,0x7DA4,0x7DA5,0x7DA7,0x7DA8,0x7DA9,
-0x7DAA,0x7DAB,0x7DAC,0x7DAD,0x7DAF,0x7DB0,0x7DB1,0x7DB2,
-0x7DB3,0x7DB4,0x7DB5,0x7DB6,0x7DB7,0x7DB8,0x7DB9,0x7DBA,
-0x7DBB,0x7DBC,0x7DBD,0x7DBE,0x7DBF,0x7DC0,0x7DC1,0x7DC2,
-0x7DC3,0x7DC4,0x7DC5,0x7DC6,0x7DC7,0x7DC8,0x7DC9,0x7DCA,
-0x7DCB,0x7DCC,0x7DCD,0x7DCE,0x7DCF,0x7DD0,0x7DD1,0x7DD2,
-0x7DD3,0x7DD4,0x7DD5,0x7DD6,0x7DD7,0x7DD8,0x7DD9, 0,
-0x7DDA,0x7DDB,0x7DDC,0x7DDD,0x7DDE,0x7DDF,0x7DE0,0x7DE1,
-0x7DE2,0x7DE3,0x7DE4,0x7DE5,0x7DE6,0x7DE7,0x7DE8,0x7DE9,
-0x7DEA,0x7DEB,0x7DEC,0x7DED,0x7DEE,0x7DEF,0x7DF0,0x7DF1,
-0x7DF2,0x7DF3,0x7DF4,0x7DF5,0x7DF6,0x7DF7,0x7DF8,0x7DF9,
-0x7DFA,0x5C3D,0x52B2,0x8346,0x5162,0x830E,0x775B,0x6676,
-0x9CB8,0x4EAC,0x60CA,0x7CBE,0x7CB3,0x7ECF,0x4E95,0x8B66,
-0x666F,0x9888,0x9759,0x5883,0x656C,0x955C,0x5F84,0x75C9,
-0x9756,0x7ADF,0x7ADE,0x51C0,0x70AF,0x7A98,0x63EA,0x7A76,
-0x7EA0,0x7396,0x97ED,0x4E45,0x7078,0x4E5D,0x9152,0x53A9,
-0x6551,0x65E7,0x81FC,0x8205,0x548E,0x5C31,0x759A,0x97A0,
-0x62D8,0x72D9,0x75BD,0x5C45,0x9A79,0x83CA,0x5C40,0x5480,
-0x77E9,0x4E3E,0x6CAE,0x805A,0x62D2,0x636E,0x5DE8,0x5177,
-0x8DDD,0x8E1E,0x952F,0x4FF1,0x53E5,0x60E7,0x70AC,0x5267,
-0x6350,0x9E43,0x5A1F,0x5026,0x7737,0x5377,0x7EE2,0x6485,
-0x652B,0x6289,0x6398,0x5014,0x7235,0x89C9,0x51B3,0x8BC0,
-0x7EDD,0x5747,0x83CC,0x94A7,0x519B,0x541B,0x5CFB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7DFB,0x7DFC,0x7DFD,0x7DFE,0x7DFF,0x7E00,0x7E01,0x7E02,
-0x7E03,0x7E04,0x7E05,0x7E06,0x7E07,0x7E08,0x7E09,0x7E0A,
-0x7E0B,0x7E0C,0x7E0D,0x7E0E,0x7E0F,0x7E10,0x7E11,0x7E12,
-0x7E13,0x7E14,0x7E15,0x7E16,0x7E17,0x7E18,0x7E19,0x7E1A,
-0x7E1B,0x7E1C,0x7E1D,0x7E1E,0x7E1F,0x7E20,0x7E21,0x7E22,
-0x7E23,0x7E24,0x7E25,0x7E26,0x7E27,0x7E28,0x7E29,0x7E2A,
-0x7E2B,0x7E2C,0x7E2D,0x7E2E,0x7E2F,0x7E30,0x7E31,0x7E32,
-0x7E33,0x7E34,0x7E35,0x7E36,0x7E37,0x7E38,0x7E39, 0,
-0x7E3A,0x7E3C,0x7E3D,0x7E3E,0x7E3F,0x7E40,0x7E42,0x7E43,
-0x7E44,0x7E45,0x7E46,0x7E48,0x7E49,0x7E4A,0x7E4B,0x7E4C,
-0x7E4D,0x7E4E,0x7E4F,0x7E50,0x7E51,0x7E52,0x7E53,0x7E54,
-0x7E55,0x7E56,0x7E57,0x7E58,0x7E59,0x7E5A,0x7E5B,0x7E5C,
-0x7E5D,0x4FCA,0x7AE3,0x6D5A,0x90E1,0x9A8F,0x5580,0x5496,
-0x5361,0x54AF,0x5F00,0x63E9,0x6977,0x51EF,0x6168,0x520A,
-0x582A,0x52D8,0x574E,0x780D,0x770B,0x5EB7,0x6177,0x7CE0,
-0x625B,0x6297,0x4EA2,0x7095,0x8003,0x62F7,0x70E4,0x9760,
-0x5777,0x82DB,0x67EF,0x68F5,0x78D5,0x9897,0x79D1,0x58F3,
-0x54B3,0x53EF,0x6E34,0x514B,0x523B,0x5BA2,0x8BFE,0x80AF,
-0x5543,0x57A6,0x6073,0x5751,0x542D,0x7A7A,0x6050,0x5B54,
-0x63A7,0x62A0,0x53E3,0x6263,0x5BC7,0x67AF,0x54ED,0x7A9F,
-0x82E6,0x9177,0x5E93,0x88E4,0x5938,0x57AE,0x630E,0x8DE8,
-0x80EF,0x5757,0x7B77,0x4FA9,0x5FEB,0x5BBD,0x6B3E,0x5321,
-0x7B50,0x72C2,0x6846,0x77FF,0x7736,0x65F7,0x51B5,0x4E8F,
-0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7E5E,0x7E5F,0x7E60,0x7E61,0x7E62,0x7E63,0x7E64,0x7E65,
-0x7E66,0x7E67,0x7E68,0x7E69,0x7E6A,0x7E6B,0x7E6C,0x7E6D,
-0x7E6E,0x7E6F,0x7E70,0x7E71,0x7E72,0x7E73,0x7E74,0x7E75,
-0x7E76,0x7E77,0x7E78,0x7E79,0x7E7A,0x7E7B,0x7E7C,0x7E7D,
-0x7E7E,0x7E7F,0x7E80,0x7E81,0x7E83,0x7E84,0x7E85,0x7E86,
-0x7E87,0x7E88,0x7E89,0x7E8A,0x7E8B,0x7E8C,0x7E8D,0x7E8E,
-0x7E8F,0x7E90,0x7E91,0x7E92,0x7E93,0x7E94,0x7E95,0x7E96,
-0x7E97,0x7E98,0x7E99,0x7E9A,0x7E9C,0x7E9D,0x7E9E, 0,
-0x7EAE,0x7EB4,0x7EBB,0x7EBC,0x7ED6,0x7EE4,0x7EEC,0x7EF9,
-0x7F0A,0x7F10,0x7F1E,0x7F37,0x7F39,0x7F3B,0x7F3C,0x7F3D,
-0x7F3E,0x7F3F,0x7F40,0x7F41,0x7F43,0x7F46,0x7F47,0x7F48,
-0x7F49,0x7F4A,0x7F4B,0x7F4C,0x7F4D,0x7F4E,0x7F4F,0x7F52,
-0x7F53,0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,0x56F0,
-0x62EC,0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,0x8721,
-0x814A,0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,0x5A6A,
-0x680F,0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,0x63FD,
-0x89C8,0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,0x72FC,
-0x5ECA,0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,0x8001,
-0x4F6C,0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,0x96F7,
-0x956D,0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,0x808B,
-0x7C7B,0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,0x7281,
-0x9ECE,0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,0x91CC,
-0x9CA4,0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,0x5389,
-0x52B1,0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7F56,0x7F59,0x7F5B,0x7F5C,0x7F5D,0x7F5E,0x7F60,0x7F63,
-0x7F64,0x7F65,0x7F66,0x7F67,0x7F6B,0x7F6C,0x7F6D,0x7F6F,
-0x7F70,0x7F73,0x7F75,0x7F76,0x7F77,0x7F78,0x7F7A,0x7F7B,
-0x7F7C,0x7F7D,0x7F7F,0x7F80,0x7F82,0x7F83,0x7F84,0x7F85,
-0x7F86,0x7F87,0x7F88,0x7F89,0x7F8B,0x7F8D,0x7F8F,0x7F90,
-0x7F91,0x7F92,0x7F93,0x7F95,0x7F96,0x7F97,0x7F98,0x7F99,
-0x7F9B,0x7F9C,0x7FA0,0x7FA2,0x7FA3,0x7FA5,0x7FA6,0x7FA8,
-0x7FA9,0x7FAA,0x7FAB,0x7FAC,0x7FAD,0x7FAE,0x7FB1, 0,
-0x7FB3,0x7FB4,0x7FB5,0x7FB6,0x7FB7,0x7FBA,0x7FBB,0x7FBE,
-0x7FC0,0x7FC2,0x7FC3,0x7FC4,0x7FC6,0x7FC7,0x7FC8,0x7FC9,
-0x7FCB,0x7FCD,0x7FCF,0x7FD0,0x7FD1,0x7FD2,0x7FD3,0x7FD6,
-0x7FD7,0x7FD9,0x7FDA,0x7FDB,0x7FDC,0x7FDD,0x7FDE,0x7FE2,
-0x7FE3,0x75E2,0x7ACB,0x7C92,0x6CA5,0x96B6,0x529B,0x7483,
-0x54E9,0x4FE9,0x8054,0x83B2,0x8FDE,0x9570,0x5EC9,0x601C,
-0x6D9F,0x5E18,0x655B,0x8138,0x94FE,0x604B,0x70BC,0x7EC3,
-0x7CAE,0x51C9,0x6881,0x7CB1,0x826F,0x4E24,0x8F86,0x91CF,
-0x667E,0x4EAE,0x8C05,0x64A9,0x804A,0x50DA,0x7597,0x71CE,
-0x5BE5,0x8FBD,0x6F66,0x4E86,0x6482,0x9563,0x5ED6,0x6599,
-0x5217,0x88C2,0x70C8,0x52A3,0x730E,0x7433,0x6797,0x78F7,
-0x9716,0x4E34,0x90BB,0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D,
-0x62CE,0x73B2,0x83F1,0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A,
-0x51CC,0x7075,0x9675,0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C,
-0x7409,0x69B4,0x786B,0x998F,0x7559,0x5218,0x7624,0x6D41,
-0x67F3,0x516D,0x9F99,0x804B,0x5499,0x7B3C,0x7ABF, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x7FE4,0x7FE7,0x7FE8,0x7FEA,0x7FEB,0x7FEC,0x7FED,0x7FEF,
-0x7FF2,0x7FF4,0x7FF5,0x7FF6,0x7FF7,0x7FF8,0x7FF9,0x7FFA,
-0x7FFD,0x7FFE,0x7FFF,0x8002,0x8007,0x8008,0x8009,0x800A,
-0x800E,0x800F,0x8011,0x8013,0x801A,0x801B,0x801D,0x801E,
-0x801F,0x8021,0x8023,0x8024,0x802B,0x802C,0x802D,0x802E,
-0x802F,0x8030,0x8032,0x8034,0x8039,0x803A,0x803C,0x803E,
-0x8040,0x8041,0x8044,0x8045,0x8047,0x8048,0x8049,0x804E,
-0x804F,0x8050,0x8051,0x8053,0x8055,0x8056,0x8057, 0,
-0x8059,0x805B,0x805C,0x805D,0x805E,0x805F,0x8060,0x8061,
-0x8062,0x8063,0x8064,0x8065,0x8066,0x8067,0x8068,0x806B,
-0x806C,0x806D,0x806E,0x806F,0x8070,0x8072,0x8073,0x8074,
-0x8075,0x8076,0x8077,0x8078,0x8079,0x807A,0x807B,0x807C,
-0x807D,0x9686,0x5784,0x62E2,0x9647,0x697C,0x5A04,0x6402,
-0x7BD3,0x6F0F,0x964B,0x82A6,0x5362,0x9885,0x5E90,0x7089,
-0x63B3,0x5364,0x864F,0x9C81,0x9E93,0x788C,0x9732,0x8DEF,
-0x8D42,0x9E7F,0x6F5E,0x7984,0x5F55,0x9646,0x622E,0x9A74,
-0x5415,0x94DD,0x4FA3,0x65C5,0x5C65,0x5C61,0x7F15,0x8651,
-0x6C2F,0x5F8B,0x7387,0x6EE4,0x7EFF,0x5CE6,0x631B,0x5B6A,
-0x6EE6,0x5375,0x4E71,0x63A0,0x7565,0x62A1,0x8F6E,0x4F26,
-0x4ED1,0x6CA6,0x7EB6,0x8BBA,0x841D,0x87BA,0x7F57,0x903B,
-0x9523,0x7BA9,0x9AA1,0x88F8,0x843D,0x6D1B,0x9A86,0x7EDC,
-0x5988,0x9EBB,0x739B,0x7801,0x8682,0x9A6C,0x9A82,0x561B,
-0x5417,0x57CB,0x4E70,0x9EA6,0x5356,0x8FC8,0x8109,0x7792,
-0x9992,0x86EE,0x6EE1,0x8513,0x66FC,0x6162,0x6F2B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x807E,0x8081,0x8082,0x8085,0x8088,0x808A,0x808D,0x808E,
-0x808F,0x8090,0x8091,0x8092,0x8094,0x8095,0x8097,0x8099,
-0x809E,0x80A3,0x80A6,0x80A7,0x80A8,0x80AC,0x80B0,0x80B3,
-0x80B5,0x80B6,0x80B8,0x80B9,0x80BB,0x80C5,0x80C7,0x80C8,
-0x80C9,0x80CA,0x80CB,0x80CF,0x80D0,0x80D1,0x80D2,0x80D3,
-0x80D4,0x80D5,0x80D8,0x80DF,0x80E0,0x80E2,0x80E3,0x80E6,
-0x80EE,0x80F5,0x80F7,0x80F9,0x80FB,0x80FE,0x80FF,0x8100,
-0x8101,0x8103,0x8104,0x8105,0x8107,0x8108,0x810B, 0,
-0x810C,0x8115,0x8117,0x8119,0x811B,0x811C,0x811D,0x811F,
-0x8120,0x8121,0x8122,0x8123,0x8124,0x8125,0x8126,0x8127,
-0x8128,0x8129,0x812A,0x812B,0x812D,0x812E,0x8130,0x8133,
-0x8134,0x8135,0x8137,0x8139,0x813A,0x813B,0x813C,0x813D,
-0x813F,0x8C29,0x8292,0x832B,0x76F2,0x6C13,0x5FD9,0x83BD,
-0x732B,0x8305,0x951A,0x6BDB,0x77DB,0x94C6,0x536F,0x8302,
-0x5192,0x5E3D,0x8C8C,0x8D38,0x4E48,0x73AB,0x679A,0x6885,
-0x9176,0x9709,0x7164,0x6CA1,0x7709,0x5A92,0x9541,0x6BCF,
-0x7F8E,0x6627,0x5BD0,0x59B9,0x5A9A,0x95E8,0x95F7,0x4EEC,
-0x840C,0x8499,0x6AAC,0x76DF,0x9530,0x731B,0x68A6,0x5B5F,
-0x772F,0x919A,0x9761,0x7CDC,0x8FF7,0x8C1C,0x5F25,0x7C73,
-0x79D8,0x89C5,0x6CCC,0x871C,0x5BC6,0x5E42,0x68C9,0x7720,
-0x7EF5,0x5195,0x514D,0x52C9,0x5A29,0x7F05,0x9762,0x82D7,
-0x63CF,0x7784,0x85D0,0x79D2,0x6E3A,0x5E99,0x5999,0x8511,
-0x706D,0x6C11,0x62BF,0x76BF,0x654F,0x60AF,0x95FD,0x660E,
-0x879F,0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8140,0x8141,0x8142,0x8143,0x8144,0x8145,0x8147,0x8149,
-0x814D,0x814E,0x814F,0x8152,0x8156,0x8157,0x8158,0x815B,
-0x815C,0x815D,0x815E,0x815F,0x8161,0x8162,0x8163,0x8164,
-0x8166,0x8168,0x816A,0x816B,0x816C,0x816F,0x8172,0x8173,
-0x8175,0x8176,0x8177,0x8178,0x8181,0x8183,0x8184,0x8185,
-0x8186,0x8187,0x8189,0x818B,0x818C,0x818D,0x818E,0x8190,
-0x8192,0x8193,0x8194,0x8195,0x8196,0x8197,0x8199,0x819A,
-0x819E,0x819F,0x81A0,0x81A1,0x81A2,0x81A4,0x81A5, 0,
-0x81A7,0x81A9,0x81AB,0x81AC,0x81AD,0x81AE,0x81AF,0x81B0,
-0x81B1,0x81B2,0x81B4,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9,
-0x81BC,0x81BD,0x81BE,0x81BF,0x81C4,0x81C5,0x81C7,0x81C8,
-0x81C9,0x81CB,0x81CD,0x81CE,0x81CF,0x81D0,0x81D1,0x81D2,
-0x81D3,0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,0x9B54,
-0x62B9,0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,0x5BDE,
-0x964C,0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,0x59C6,
-0x6BCD,0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,0x76EE,
-0x7766,0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,0x90A3,
-0x5A1C,0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,0x5357,
-0x7537,0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,0x6DD6,
-0x5462,0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,0x502A,
-0x6CE5,0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,0x6EBA,
-0x852B,0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,0x5A18,
-0x917F,0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,0x954A,
-0x954D,0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x81D4,0x81D5,0x81D6,0x81D7,0x81D8,0x81D9,0x81DA,0x81DB,
-0x81DC,0x81DD,0x81DE,0x81DF,0x81E0,0x81E1,0x81E2,0x81E4,
-0x81E5,0x81E6,0x81E8,0x81E9,0x81EB,0x81EE,0x81EF,0x81F0,
-0x81F1,0x81F2,0x81F5,0x81F6,0x81F7,0x81F8,0x81F9,0x81FA,
-0x81FD,0x81FF,0x8203,0x8207,0x8208,0x8209,0x820A,0x820B,
-0x820E,0x820F,0x8211,0x8213,0x8215,0x8216,0x8217,0x8218,
-0x8219,0x821A,0x821D,0x8220,0x8224,0x8225,0x8226,0x8227,
-0x8229,0x822E,0x8232,0x823A,0x823C,0x823D,0x823F, 0,
-0x8240,0x8241,0x8242,0x8243,0x8245,0x8246,0x8248,0x824A,
-0x824C,0x824D,0x824E,0x8250,0x8251,0x8252,0x8253,0x8254,
-0x8255,0x8256,0x8257,0x8259,0x825B,0x825C,0x825D,0x825E,
-0x8260,0x8261,0x8262,0x8263,0x8264,0x8265,0x8266,0x8267,
-0x8269,0x62E7,0x6CDE,0x725B,0x626D,0x94AE,0x7EBD,0x8113,
-0x6D53,0x519C,0x5F04,0x5974,0x52AA,0x6012,0x5973,0x6696,
-0x8650,0x759F,0x632A,0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27,
-0x9E25,0x6BB4,0x85D5,0x5455,0x5076,0x6CA4,0x556A,0x8DB4,
-0x722C,0x5E15,0x6015,0x7436,0x62CD,0x6392,0x724C,0x5F98,
-0x6E43,0x6D3E,0x6500,0x6F58,0x76D8,0x78D0,0x76FC,0x7554,
-0x5224,0x53DB,0x4E53,0x5E9E,0x65C1,0x802A,0x80D6,0x629B,
-0x5486,0x5228,0x70AE,0x888D,0x8DD1,0x6CE1,0x5478,0x80DA,
-0x57F9,0x88F4,0x8D54,0x966A,0x914D,0x4F69,0x6C9B,0x55B7,
-0x76C6,0x7830,0x62A8,0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA,
-0x787C,0x7BF7,0x81A8,0x670B,0x9E4F,0x6367,0x78B0,0x576F,
-0x7812,0x9739,0x6279,0x62AB,0x5288,0x7435,0x6BD7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x826A,0x826B,0x826C,0x826D,0x8271,0x8275,0x8276,0x8277,
-0x8278,0x827B,0x827C,0x8280,0x8281,0x8283,0x8285,0x8286,
-0x8287,0x8289,0x828C,0x8290,0x8293,0x8294,0x8295,0x8296,
-0x829A,0x829B,0x829E,0x82A0,0x82A2,0x82A3,0x82A7,0x82B2,
-0x82B5,0x82B6,0x82BA,0x82BB,0x82BC,0x82BF,0x82C0,0x82C2,
-0x82C3,0x82C5,0x82C6,0x82C9,0x82D0,0x82D6,0x82D9,0x82DA,
-0x82DD,0x82E2,0x82E7,0x82E8,0x82E9,0x82EA,0x82EC,0x82ED,
-0x82EE,0x82F0,0x82F2,0x82F3,0x82F5,0x82F6,0x82F8, 0,
-0x82FA,0x82FC,0x82FD,0x82FE,0x82FF,0x8300,0x830A,0x830B,
-0x830D,0x8310,0x8312,0x8313,0x8316,0x8318,0x8319,0x831D,
-0x831E,0x831F,0x8320,0x8321,0x8322,0x8323,0x8324,0x8325,
-0x8326,0x8329,0x832A,0x832E,0x8330,0x8332,0x8337,0x833B,
-0x833D,0x5564,0x813E,0x75B2,0x76AE,0x5339,0x75DE,0x50FB,
-0x5C41,0x8B6C,0x7BC7,0x504F,0x7247,0x9A97,0x98D8,0x6F02,
-0x74E2,0x7968,0x6487,0x77A5,0x62FC,0x9891,0x8D2B,0x54C1,
-0x8058,0x4E52,0x576A,0x82F9,0x840D,0x5E73,0x51ED,0x74F6,
-0x8BC4,0x5C4F,0x5761,0x6CFC,0x9887,0x5A46,0x7834,0x9B44,
-0x8FEB,0x7C95,0x5256,0x6251,0x94FA,0x4EC6,0x8386,0x8461,
-0x83E9,0x84B2,0x57D4,0x6734,0x5703,0x666E,0x6D66,0x8C31,
-0x66DD,0x7011,0x671F,0x6B3A,0x6816,0x621A,0x59BB,0x4E03,
-0x51C4,0x6F06,0x67D2,0x6C8F,0x5176,0x68CB,0x5947,0x6B67,
-0x7566,0x5D0E,0x8110,0x9F50,0x65D7,0x7948,0x7941,0x9A91,
-0x8D77,0x5C82,0x4E5E,0x4F01,0x542F,0x5951,0x780C,0x5668,
-0x6C14,0x8FC4,0x5F03,0x6C7D,0x6CE3,0x8BAB,0x6390, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x833E,0x833F,0x8341,0x8342,0x8344,0x8345,0x8348,0x834A,
-0x834B,0x834C,0x834D,0x834E,0x8353,0x8355,0x8356,0x8357,
-0x8358,0x8359,0x835D,0x8362,0x8370,0x8371,0x8372,0x8373,
-0x8374,0x8375,0x8376,0x8379,0x837A,0x837E,0x837F,0x8380,
-0x8381,0x8382,0x8383,0x8384,0x8387,0x8388,0x838A,0x838B,
-0x838C,0x838D,0x838F,0x8390,0x8391,0x8394,0x8395,0x8396,
-0x8397,0x8399,0x839A,0x839D,0x839F,0x83A1,0x83A2,0x83A3,
-0x83A4,0x83A5,0x83A6,0x83A7,0x83AC,0x83AD,0x83AE, 0,
-0x83AF,0x83B5,0x83BB,0x83BE,0x83BF,0x83C2,0x83C3,0x83C4,
-0x83C6,0x83C8,0x83C9,0x83CB,0x83CD,0x83CE,0x83D0,0x83D1,
-0x83D2,0x83D3,0x83D5,0x83D7,0x83D9,0x83DA,0x83DB,0x83DE,
-0x83E2,0x83E3,0x83E4,0x83E6,0x83E7,0x83E8,0x83EB,0x83EC,
-0x83ED,0x6070,0x6D3D,0x7275,0x6266,0x948E,0x94C5,0x5343,
-0x8FC1,0x7B7E,0x4EDF,0x8C26,0x4E7E,0x9ED4,0x94B1,0x94B3,
-0x524D,0x6F5C,0x9063,0x6D45,0x8C34,0x5811,0x5D4C,0x6B20,
-0x6B49,0x67AA,0x545B,0x8154,0x7F8C,0x5899,0x8537,0x5F3A,
-0x62A2,0x6A47,0x9539,0x6572,0x6084,0x6865,0x77A7,0x4E54,
-0x4FA8,0x5DE7,0x9798,0x64AC,0x7FD8,0x5CED,0x4FCF,0x7A8D,
-0x5207,0x8304,0x4E14,0x602F,0x7A83,0x94A6,0x4FB5,0x4EB2,
-0x79E6,0x7434,0x52E4,0x82B9,0x64D2,0x79BD,0x5BDD,0x6C81,
-0x9752,0x8F7B,0x6C22,0x503E,0x537F,0x6E05,0x64CE,0x6674,
-0x6C30,0x60C5,0x9877,0x8BF7,0x5E86,0x743C,0x7A77,0x79CB,
-0x4E18,0x90B1,0x7403,0x6C42,0x56DA,0x914B,0x6CC5,0x8D8B,
-0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x83EE,0x83EF,0x83F3,0x83F4,0x83F5,0x83F6,0x83F7,0x83FA,
-0x83FB,0x83FC,0x83FE,0x83FF,0x8400,0x8402,0x8405,0x8407,
-0x8408,0x8409,0x840A,0x8410,0x8412,0x8413,0x8414,0x8415,
-0x8416,0x8417,0x8419,0x841A,0x841B,0x841E,0x841F,0x8420,
-0x8421,0x8422,0x8423,0x8429,0x842A,0x842B,0x842C,0x842D,
-0x842E,0x842F,0x8430,0x8432,0x8433,0x8434,0x8435,0x8436,
-0x8437,0x8439,0x843A,0x843B,0x843E,0x843F,0x8440,0x8441,
-0x8442,0x8443,0x8444,0x8445,0x8447,0x8448,0x8449, 0,
-0x844A,0x844B,0x844C,0x844D,0x844E,0x844F,0x8450,0x8452,
-0x8453,0x8454,0x8455,0x8456,0x8458,0x845D,0x845E,0x845F,
-0x8460,0x8462,0x8464,0x8465,0x8466,0x8467,0x8468,0x846A,
-0x846E,0x846F,0x8470,0x8472,0x8474,0x8477,0x8479,0x847B,
-0x847C,0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,0x98A7,
-0x6743,0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,0x5238,
-0x529D,0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,0x786E,
-0x96C0,0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,0x74E4,
-0x58E4,0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,0x60F9,
-0x70ED,0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,0x8BA4,
-0x5203,0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,0x8338,
-0x84C9,0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,0x5197,
-0x63C9,0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,0x5982,
-0x8FB1,0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,0x854A,
-0x745E,0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,0x6D12,
-0x8428,0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x847D,0x847E,0x847F,0x8480,0x8481,0x8483,0x8484,0x8485,
-0x8486,0x848A,0x848D,0x848F,0x8490,0x8491,0x8492,0x8493,
-0x8494,0x8495,0x8496,0x8498,0x849A,0x849B,0x849D,0x849E,
-0x849F,0x84A0,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,0x84A7,
-0x84A8,0x84A9,0x84AA,0x84AB,0x84AC,0x84AD,0x84AE,0x84B0,
-0x84B1,0x84B3,0x84B5,0x84B6,0x84B7,0x84BB,0x84BC,0x84BE,
-0x84C0,0x84C2,0x84C3,0x84C5,0x84C6,0x84C7,0x84C8,0x84CB,
-0x84CC,0x84CE,0x84CF,0x84D2,0x84D4,0x84D5,0x84D7, 0,
-0x84D8,0x84D9,0x84DA,0x84DB,0x84DC,0x84DE,0x84E1,0x84E2,
-0x84E4,0x84E7,0x84E8,0x84E9,0x84EA,0x84EB,0x84ED,0x84EE,
-0x84EF,0x84F1,0x84F2,0x84F3,0x84F4,0x84F5,0x84F6,0x84F7,
-0x84F8,0x84F9,0x84FA,0x84FB,0x84FD,0x84FE,0x8500,0x8501,
-0x8502,0x4F1E,0x6563,0x6851,0x55D3,0x4E27,0x6414,0x9A9A,
-0x626B,0x5AC2,0x745F,0x8272,0x6DA9,0x68EE,0x50E7,0x838E,
-0x7802,0x6740,0x5239,0x6C99,0x7EB1,0x50BB,0x5565,0x715E,
-0x7B5B,0x6652,0x73CA,0x82EB,0x6749,0x5C71,0x5220,0x717D,
-0x886B,0x95EA,0x9655,0x64C5,0x8D61,0x81B3,0x5584,0x6C55,
-0x6247,0x7F2E,0x5892,0x4F24,0x5546,0x8D4F,0x664C,0x4E0A,
-0x5C1A,0x88F3,0x68A2,0x634E,0x7A0D,0x70E7,0x828D,0x52FA,
-0x97F6,0x5C11,0x54E8,0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7,
-0x820C,0x820D,0x8D66,0x6444,0x5C04,0x6151,0x6D89,0x793E,
-0x8BBE,0x7837,0x7533,0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20,
-0x7EC5,0x795E,0x6C88,0x5BA1,0x5A76,0x751A,0x80BE,0x614E,
-0x6E17,0x58F0,0x751F,0x7525,0x7272,0x5347,0x7EF3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8503,0x8504,0x8505,0x8506,0x8507,0x8508,0x8509,0x850A,
-0x850B,0x850D,0x850E,0x850F,0x8510,0x8512,0x8514,0x8515,
-0x8516,0x8518,0x8519,0x851B,0x851C,0x851D,0x851E,0x8520,
-0x8522,0x8523,0x8524,0x8525,0x8526,0x8527,0x8528,0x8529,
-0x852A,0x852D,0x852E,0x852F,0x8530,0x8531,0x8532,0x8533,
-0x8534,0x8535,0x8536,0x853E,0x853F,0x8540,0x8541,0x8542,
-0x8544,0x8545,0x8546,0x8547,0x854B,0x854C,0x854D,0x854E,
-0x854F,0x8550,0x8551,0x8552,0x8553,0x8554,0x8555, 0,
-0x8557,0x8558,0x855A,0x855B,0x855C,0x855D,0x855F,0x8560,
-0x8561,0x8562,0x8563,0x8565,0x8566,0x8567,0x8569,0x856A,
-0x856B,0x856C,0x856D,0x856E,0x856F,0x8570,0x8571,0x8573,
-0x8575,0x8576,0x8577,0x8578,0x857C,0x857D,0x857F,0x8580,
-0x8581,0x7701,0x76DB,0x5269,0x80DC,0x5723,0x5E08,0x5931,
-0x72EE,0x65BD,0x6E7F,0x8BD7,0x5C38,0x8671,0x5341,0x77F3,
-0x62FE,0x65F6,0x4EC0,0x98DF,0x8680,0x5B9E,0x8BC6,0x53F2,
-0x77E2,0x4F7F,0x5C4E,0x9A76,0x59CB,0x5F0F,0x793A,0x58EB,
-0x4E16,0x67FF,0x4E8B,0x62ED,0x8A93,0x901D,0x52BF,0x662F,
-0x55DC,0x566C,0x9002,0x4ED5,0x4F8D,0x91CA,0x9970,0x6C0F,
-0x5E02,0x6043,0x5BA4,0x89C6,0x8BD5,0x6536,0x624B,0x9996,
-0x5B88,0x5BFF,0x6388,0x552E,0x53D7,0x7626,0x517D,0x852C,
-0x67A2,0x68B3,0x6B8A,0x6292,0x8F93,0x53D4,0x8212,0x6DD1,
-0x758F,0x4E66,0x8D4E,0x5B70,0x719F,0x85AF,0x6691,0x66D9,
-0x7F72,0x8700,0x9ECD,0x9F20,0x5C5E,0x672F,0x8FF0,0x6811,
-0x675F,0x620D,0x7AD6,0x5885,0x5EB6,0x6570,0x6F31, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8582,0x8583,0x8586,0x8588,0x8589,0x858A,0x858B,0x858C,
-0x858D,0x858E,0x8590,0x8591,0x8592,0x8593,0x8594,0x8595,
-0x8596,0x8597,0x8598,0x8599,0x859A,0x859D,0x859E,0x859F,
-0x85A0,0x85A1,0x85A2,0x85A3,0x85A5,0x85A6,0x85A7,0x85A9,
-0x85AB,0x85AC,0x85AD,0x85B1,0x85B2,0x85B3,0x85B4,0x85B5,
-0x85B6,0x85B8,0x85BA,0x85BB,0x85BC,0x85BD,0x85BE,0x85BF,
-0x85C0,0x85C2,0x85C3,0x85C4,0x85C5,0x85C6,0x85C7,0x85C8,
-0x85CA,0x85CB,0x85CC,0x85CD,0x85CE,0x85D1,0x85D2, 0,
-0x85D4,0x85D6,0x85D7,0x85D8,0x85D9,0x85DA,0x85DB,0x85DD,
-0x85DE,0x85DF,0x85E0,0x85E1,0x85E2,0x85E3,0x85E5,0x85E6,
-0x85E7,0x85E8,0x85EA,0x85EB,0x85EC,0x85ED,0x85EE,0x85EF,
-0x85F0,0x85F1,0x85F2,0x85F3,0x85F4,0x85F5,0x85F6,0x85F7,
-0x85F8,0x6055,0x5237,0x800D,0x6454,0x8870,0x7529,0x5E05,
-0x6813,0x62F4,0x971C,0x53CC,0x723D,0x8C01,0x6C34,0x7761,
-0x7A0E,0x542E,0x77AC,0x987A,0x821C,0x8BF4,0x7855,0x6714,
-0x70C1,0x65AF,0x6495,0x5636,0x601D,0x79C1,0x53F8,0x4E1D,
-0x6B7B,0x8086,0x5BFA,0x55E3,0x56DB,0x4F3A,0x4F3C,0x9972,
-0x5DF3,0x677E,0x8038,0x6002,0x9882,0x9001,0x5B8B,0x8BBC,
-0x8BF5,0x641C,0x8258,0x64DE,0x55FD,0x82CF,0x9165,0x4FD7,
-0x7D20,0x901F,0x7C9F,0x50F3,0x5851,0x6EAF,0x5BBF,0x8BC9,
-0x8083,0x9178,0x849C,0x7B97,0x867D,0x968B,0x968F,0x7EE5,
-0x9AD3,0x788E,0x5C81,0x7A57,0x9042,0x96A7,0x795F,0x5B59,
-0x635F,0x7B0B,0x84D1,0x68AD,0x5506,0x7F29,0x7410,0x7D22,
-0x9501,0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x85F9,0x85FA,0x85FC,0x85FD,0x85FE,0x8600,0x8601,0x8602,
-0x8603,0x8604,0x8606,0x8607,0x8608,0x8609,0x860A,0x860B,
-0x860C,0x860D,0x860E,0x860F,0x8610,0x8612,0x8613,0x8614,
-0x8615,0x8617,0x8618,0x8619,0x861A,0x861B,0x861C,0x861D,
-0x861E,0x861F,0x8620,0x8621,0x8622,0x8623,0x8624,0x8625,
-0x8626,0x8628,0x862A,0x862B,0x862C,0x862D,0x862E,0x862F,
-0x8630,0x8631,0x8632,0x8633,0x8634,0x8635,0x8636,0x8637,
-0x8639,0x863A,0x863B,0x863D,0x863E,0x863F,0x8640, 0,
-0x8641,0x8642,0x8643,0x8644,0x8645,0x8646,0x8647,0x8648,
-0x8649,0x864A,0x864B,0x864C,0x8652,0x8653,0x8655,0x8656,
-0x8657,0x8658,0x8659,0x865B,0x865C,0x865D,0x865F,0x8660,
-0x8661,0x8663,0x8664,0x8665,0x8666,0x8667,0x8668,0x8669,
-0x866A,0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,0x62AC,
-0x53F0,0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,0x644A,
-0x8D2A,0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,0x8C2D,
-0x8C08,0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,0x70AD,
-0x6C64,0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,0x7CD6,
-0x5018,0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,0x6ED4,
-0x7EE6,0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,0x5957,
-0x7279,0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,0x8E22,
-0x9511,0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,0x568F,
-0x60D5,0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,0x7530,
-0x751C,0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,0x773A,
-0x8DF3,0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x866D,0x866F,0x8670,0x8672,0x8673,0x8674,0x8675,0x8676,
-0x8677,0x8678,0x8683,0x8684,0x8685,0x8686,0x8687,0x8688,
-0x8689,0x868E,0x868F,0x8690,0x8691,0x8692,0x8694,0x8696,
-0x8697,0x8698,0x8699,0x869A,0x869B,0x869E,0x869F,0x86A0,
-0x86A1,0x86A2,0x86A5,0x86A6,0x86AB,0x86AD,0x86AE,0x86B2,
-0x86B3,0x86B7,0x86B8,0x86B9,0x86BB,0x86BC,0x86BD,0x86BE,
-0x86BF,0x86C1,0x86C2,0x86C3,0x86C5,0x86C8,0x86CC,0x86CD,
-0x86D2,0x86D3,0x86D5,0x86D6,0x86D7,0x86DA,0x86DC, 0,
-0x86DD,0x86E0,0x86E1,0x86E2,0x86E3,0x86E5,0x86E6,0x86E7,
-0x86E8,0x86EA,0x86EB,0x86EC,0x86EF,0x86F5,0x86F6,0x86F7,
-0x86FA,0x86FB,0x86FC,0x86FD,0x86FF,0x8701,0x8704,0x8705,
-0x8706,0x870B,0x870C,0x870E,0x870F,0x8710,0x8711,0x8714,
-0x8716,0x6C40,0x5EF7,0x505C,0x4EAD,0x5EAD,0x633A,0x8247,
-0x901A,0x6850,0x916E,0x77B3,0x540C,0x94DC,0x5F64,0x7AE5,
-0x6876,0x6345,0x7B52,0x7EDF,0x75DB,0x5077,0x6295,0x5934,
-0x900F,0x51F8,0x79C3,0x7A81,0x56FE,0x5F92,0x9014,0x6D82,
-0x5C60,0x571F,0x5410,0x5154,0x6E4D,0x56E2,0x63A8,0x9893,
-0x817F,0x8715,0x892A,0x9000,0x541E,0x5C6F,0x81C0,0x62D6,
-0x6258,0x8131,0x9E35,0x9640,0x9A6E,0x9A7C,0x692D,0x59A5,
-0x62D3,0x553E,0x6316,0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6,
-0x889C,0x6B6A,0x5916,0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D,
-0x4E38,0x70F7,0x5B8C,0x7897,0x633D,0x665A,0x7696,0x60CB,
-0x5B9B,0x5A49,0x4E07,0x8155,0x6C6A,0x738B,0x4EA1,0x6789,
-0x7F51,0x5F80,0x65FA,0x671B,0x5FD8,0x5984,0x5A01, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8719,0x871B,0x871D,0x871F,0x8720,0x8724,0x8726,0x8727,
-0x8728,0x872A,0x872B,0x872C,0x872D,0x872F,0x8730,0x8732,
-0x8733,0x8735,0x8736,0x8738,0x8739,0x873A,0x873C,0x873D,
-0x8740,0x8741,0x8742,0x8743,0x8744,0x8745,0x8746,0x874A,
-0x874B,0x874D,0x874F,0x8750,0x8751,0x8752,0x8754,0x8755,
-0x8756,0x8758,0x875A,0x875B,0x875C,0x875D,0x875E,0x875F,
-0x8761,0x8762,0x8766,0x8767,0x8768,0x8769,0x876A,0x876B,
-0x876C,0x876D,0x876F,0x8771,0x8772,0x8773,0x8775, 0,
-0x8777,0x8778,0x8779,0x877A,0x877F,0x8780,0x8781,0x8784,
-0x8786,0x8787,0x8789,0x878A,0x878C,0x878E,0x878F,0x8790,
-0x8791,0x8792,0x8794,0x8795,0x8796,0x8798,0x8799,0x879A,
-0x879B,0x879C,0x879D,0x879E,0x87A0,0x87A1,0x87A2,0x87A3,
-0x87A4,0x5DCD,0x5FAE,0x5371,0x97E6,0x8FDD,0x6845,0x56F4,
-0x552F,0x60DF,0x4E3A,0x6F4D,0x7EF4,0x82C7,0x840E,0x59D4,
-0x4F1F,0x4F2A,0x5C3E,0x7EAC,0x672A,0x851A,0x5473,0x754F,
-0x80C3,0x5582,0x9B4F,0x4F4D,0x6E2D,0x8C13,0x5C09,0x6170,
-0x536B,0x761F,0x6E29,0x868A,0x6587,0x95FB,0x7EB9,0x543B,
-0x7A33,0x7D0A,0x95EE,0x55E1,0x7FC1,0x74EE,0x631D,0x8717,
-0x6DA1,0x7A9D,0x6211,0x65A1,0x5367,0x63E1,0x6C83,0x5DEB,
-0x545C,0x94A8,0x4E4C,0x6C61,0x8BEC,0x5C4B,0x65E0,0x829C,
-0x68A7,0x543E,0x5434,0x6BCB,0x6B66,0x4E94,0x6342,0x5348,
-0x821E,0x4F0D,0x4FAE,0x575E,0x620A,0x96FE,0x6664,0x7269,
-0x52FF,0x52A1,0x609F,0x8BEF,0x6614,0x7199,0x6790,0x897F,
-0x7852,0x77FD,0x6670,0x563B,0x5438,0x9521,0x727A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x87A5,0x87A6,0x87A7,0x87A9,0x87AA,0x87AE,0x87B0,0x87B1,
-0x87B2,0x87B4,0x87B6,0x87B7,0x87B8,0x87B9,0x87BB,0x87BC,
-0x87BE,0x87BF,0x87C1,0x87C2,0x87C3,0x87C4,0x87C5,0x87C7,
-0x87C8,0x87C9,0x87CC,0x87CD,0x87CE,0x87CF,0x87D0,0x87D4,
-0x87D5,0x87D6,0x87D7,0x87D8,0x87D9,0x87DA,0x87DC,0x87DD,
-0x87DE,0x87DF,0x87E1,0x87E2,0x87E3,0x87E4,0x87E6,0x87E7,
-0x87E8,0x87E9,0x87EB,0x87EC,0x87ED,0x87EF,0x87F0,0x87F1,
-0x87F2,0x87F3,0x87F4,0x87F5,0x87F6,0x87F7,0x87F8, 0,
-0x87FA,0x87FB,0x87FC,0x87FD,0x87FF,0x8800,0x8801,0x8802,
-0x8804,0x8805,0x8806,0x8807,0x8808,0x8809,0x880B,0x880C,
-0x880D,0x880E,0x880F,0x8810,0x8811,0x8812,0x8814,0x8817,
-0x8818,0x8819,0x881A,0x881C,0x881D,0x881E,0x881F,0x8820,
-0x8823,0x7A00,0x606F,0x5E0C,0x6089,0x819D,0x5915,0x60DC,
-0x7184,0x70EF,0x6EAA,0x6C50,0x7280,0x6A84,0x88AD,0x5E2D,
-0x4E60,0x5AB3,0x559C,0x94E3,0x6D17,0x7CFB,0x9699,0x620F,
-0x7EC6,0x778E,0x867E,0x5323,0x971E,0x8F96,0x6687,0x5CE1,
-0x4FA0,0x72ED,0x4E0B,0x53A6,0x590F,0x5413,0x6380,0x9528,
-0x5148,0x4ED9,0x9C9C,0x7EA4,0x54B8,0x8D24,0x8854,0x8237,
-0x95F2,0x6D8E,0x5F26,0x5ACC,0x663E,0x9669,0x73B0,0x732E,
-0x53BF,0x817A,0x9985,0x7FA1,0x5BAA,0x9677,0x9650,0x7EBF,
-0x76F8,0x53A2,0x9576,0x9999,0x7BB1,0x8944,0x6E58,0x4E61,
-0x7FD4,0x7965,0x8BE6,0x60F3,0x54CD,0x4EAB,0x9879,0x5DF7,
-0x6A61,0x50CF,0x5411,0x8C61,0x8427,0x785D,0x9704,0x524A,
-0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8824,0x8825,0x8826,0x8827,0x8828,0x8829,0x882A,0x882B,
-0x882C,0x882D,0x882E,0x882F,0x8830,0x8831,0x8833,0x8834,
-0x8835,0x8836,0x8837,0x8838,0x883A,0x883B,0x883D,0x883E,
-0x883F,0x8841,0x8842,0x8843,0x8846,0x8847,0x8848,0x8849,
-0x884A,0x884B,0x884E,0x884F,0x8850,0x8851,0x8852,0x8853,
-0x8855,0x8856,0x8858,0x885A,0x885B,0x885C,0x885D,0x885E,
-0x885F,0x8860,0x8866,0x8867,0x886A,0x886D,0x886F,0x8871,
-0x8873,0x8874,0x8875,0x8876,0x8878,0x8879,0x887A, 0,
-0x887B,0x887C,0x8880,0x8883,0x8886,0x8887,0x8889,0x888A,
-0x888C,0x888E,0x888F,0x8890,0x8891,0x8893,0x8894,0x8895,
-0x8897,0x8898,0x8899,0x889A,0x889B,0x889D,0x889E,0x889F,
-0x88A0,0x88A1,0x88A3,0x88A5,0x88A6,0x88A7,0x88A8,0x88A9,
-0x88AA,0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,0x6548,
-0x6954,0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,0x643A,
-0x90AA,0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,0x87F9,
-0x61C8,0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,0x950C,
-0x6B23,0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,0x661F,
-0x8165,0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,0x90A2,
-0x884C,0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,0x51F6,
-0x80F8,0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,0x7F9E,
-0x673D,0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,0x620C,
-0x9700,0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,0x9157,
-0x53D9,0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,0x7EEA,
-0x7EED,0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x88AC,0x88AE,0x88AF,0x88B0,0x88B2,0x88B3,0x88B4,0x88B5,
-0x88B6,0x88B8,0x88B9,0x88BA,0x88BB,0x88BD,0x88BE,0x88BF,
-0x88C0,0x88C3,0x88C4,0x88C7,0x88C8,0x88CA,0x88CB,0x88CC,
-0x88CD,0x88CF,0x88D0,0x88D1,0x88D3,0x88D6,0x88D7,0x88DA,
-0x88DB,0x88DC,0x88DD,0x88DE,0x88E0,0x88E1,0x88E6,0x88E7,
-0x88E9,0x88EA,0x88EB,0x88EC,0x88ED,0x88EE,0x88EF,0x88F2,
-0x88F5,0x88F6,0x88F7,0x88FA,0x88FB,0x88FD,0x88FF,0x8900,
-0x8901,0x8903,0x8904,0x8905,0x8906,0x8907,0x8908, 0,
-0x8909,0x890B,0x890C,0x890D,0x890E,0x890F,0x8911,0x8914,
-0x8915,0x8916,0x8917,0x8918,0x891C,0x891D,0x891E,0x891F,
-0x8920,0x8922,0x8923,0x8924,0x8926,0x8927,0x8928,0x8929,
-0x892C,0x892D,0x892E,0x892F,0x8931,0x8932,0x8933,0x8935,
-0x8937,0x9009,0x7663,0x7729,0x7EDA,0x9774,0x859B,0x5B66,
-0x7A74,0x96EA,0x8840,0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2,
-0x5BFB,0x9A6F,0x5DE1,0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A,
-0x8FC5,0x538B,0x62BC,0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD,
-0x7259,0x869C,0x5D16,0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A,
-0x8BB6,0x7109,0x54BD,0x9609,0x70DF,0x6DF9,0x76D0,0x4E25,
-0x7814,0x8712,0x5CA9,0x5EF6,0x8A00,0x989C,0x960E,0x708E,
-0x6CBF,0x5944,0x63A9,0x773C,0x884D,0x6F14,0x8273,0x5830,
-0x71D5,0x538C,0x781A,0x96C1,0x5501,0x5F66,0x7130,0x5BB4,
-0x8C1A,0x9A8C,0x6B83,0x592E,0x9E2F,0x79E7,0x6768,0x626C,
-0x4F6F,0x75A1,0x7F8A,0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2,
-0x517B,0x6837,0x6F3E,0x9080,0x8170,0x5996,0x7476, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8938,0x8939,0x893A,0x893B,0x893C,0x893D,0x893E,0x893F,
-0x8940,0x8942,0x8943,0x8945,0x8946,0x8947,0x8948,0x8949,
-0x894A,0x894B,0x894C,0x894D,0x894E,0x894F,0x8950,0x8951,
-0x8952,0x8953,0x8954,0x8955,0x8956,0x8957,0x8958,0x8959,
-0x895A,0x895B,0x895C,0x895D,0x8960,0x8961,0x8962,0x8963,
-0x8964,0x8965,0x8967,0x8968,0x8969,0x896A,0x896B,0x896C,
-0x896D,0x896E,0x896F,0x8970,0x8971,0x8972,0x8973,0x8974,
-0x8975,0x8976,0x8977,0x8978,0x8979,0x897A,0x897C, 0,
-0x897D,0x897E,0x8980,0x8982,0x8984,0x8985,0x8987,0x8988,
-0x8989,0x898A,0x898B,0x898C,0x898D,0x898E,0x898F,0x8990,
-0x8991,0x8992,0x8993,0x8994,0x8995,0x8996,0x8997,0x8998,
-0x8999,0x899A,0x899B,0x899C,0x899D,0x899E,0x899F,0x89A0,
-0x89A1,0x6447,0x5C27,0x9065,0x7A91,0x8C23,0x59DA,0x54AC,
-0x8200,0x836F,0x8981,0x8000,0x6930,0x564E,0x8036,0x7237,
-0x91CE,0x51B6,0x4E5F,0x9875,0x6396,0x4E1A,0x53F6,0x66F3,
-0x814B,0x591C,0x6DB2,0x4E00,0x58F9,0x533B,0x63D6,0x94F1,
-0x4F9D,0x4F0A,0x8863,0x9890,0x5937,0x9057,0x79FB,0x4EEA,
-0x80F0,0x7591,0x6C82,0x5B9C,0x59E8,0x5F5D,0x6905,0x8681,
-0x501A,0x5DF2,0x4E59,0x77E3,0x4EE5,0x827A,0x6291,0x6613,
-0x9091,0x5C79,0x4EBF,0x5F79,0x81C6,0x9038,0x8084,0x75AB,
-0x4EA6,0x88D4,0x610F,0x6BC5,0x5FC6,0x4E49,0x76CA,0x6EA2,
-0x8BE3,0x8BAE,0x8C0A,0x8BD1,0x5F02,0x7FFC,0x7FCC,0x7ECE,
-0x8335,0x836B,0x56E0,0x6BB7,0x97F3,0x9634,0x59FB,0x541F,
-0x94F6,0x6DEB,0x5BC5,0x996E,0x5C39,0x5F15,0x9690, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x89A2,0x89A3,0x89A4,0x89A5,0x89A6,0x89A7,0x89A8,0x89A9,
-0x89AA,0x89AB,0x89AC,0x89AD,0x89AE,0x89AF,0x89B0,0x89B1,
-0x89B2,0x89B3,0x89B4,0x89B5,0x89B6,0x89B7,0x89B8,0x89B9,
-0x89BA,0x89BB,0x89BC,0x89BD,0x89BE,0x89BF,0x89C0,0x89C3,
-0x89CD,0x89D3,0x89D4,0x89D5,0x89D7,0x89D8,0x89D9,0x89DB,
-0x89DD,0x89DF,0x89E0,0x89E1,0x89E2,0x89E4,0x89E7,0x89E8,
-0x89E9,0x89EA,0x89EC,0x89ED,0x89EE,0x89F0,0x89F1,0x89F2,
-0x89F4,0x89F5,0x89F6,0x89F7,0x89F8,0x89F9,0x89FA, 0,
-0x89FB,0x89FC,0x89FD,0x89FE,0x89FF,0x8A01,0x8A02,0x8A03,
-0x8A04,0x8A05,0x8A06,0x8A08,0x8A09,0x8A0A,0x8A0B,0x8A0C,
-0x8A0D,0x8A0E,0x8A0F,0x8A10,0x8A11,0x8A12,0x8A13,0x8A14,
-0x8A15,0x8A16,0x8A17,0x8A18,0x8A19,0x8A1A,0x8A1B,0x8A1C,
-0x8A1D,0x5370,0x82F1,0x6A31,0x5A74,0x9E70,0x5E94,0x7F28,
-0x83B9,0x8424,0x8425,0x8367,0x8747,0x8FCE,0x8D62,0x76C8,
-0x5F71,0x9896,0x786C,0x6620,0x54DF,0x62E5,0x4F63,0x81C3,
-0x75C8,0x5EB8,0x96CD,0x8E0A,0x86F9,0x548F,0x6CF3,0x6D8C,
-0x6C38,0x607F,0x52C7,0x7528,0x5E7D,0x4F18,0x60A0,0x5FE7,
-0x5C24,0x7531,0x90AE,0x94C0,0x72B9,0x6CB9,0x6E38,0x9149,
-0x6709,0x53CB,0x53F3,0x4F51,0x91C9,0x8BF1,0x53C8,0x5E7C,
-0x8FC2,0x6DE4,0x4E8E,0x76C2,0x6986,0x865E,0x611A,0x8206,
-0x4F59,0x4FDE,0x903E,0x9C7C,0x6109,0x6E1D,0x6E14,0x9685,
-0x4E88,0x5A31,0x96E8,0x4E0E,0x5C7F,0x79B9,0x5B87,0x8BED,
-0x7FBD,0x7389,0x57DF,0x828B,0x90C1,0x5401,0x9047,0x55BB,
-0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8A1E,0x8A1F,0x8A20,0x8A21,0x8A22,0x8A23,0x8A24,0x8A25,
-0x8A26,0x8A27,0x8A28,0x8A29,0x8A2A,0x8A2B,0x8A2C,0x8A2D,
-0x8A2E,0x8A2F,0x8A30,0x8A31,0x8A32,0x8A33,0x8A34,0x8A35,
-0x8A36,0x8A37,0x8A38,0x8A39,0x8A3A,0x8A3B,0x8A3C,0x8A3D,
-0x8A3F,0x8A40,0x8A41,0x8A42,0x8A43,0x8A44,0x8A45,0x8A46,
-0x8A47,0x8A49,0x8A4A,0x8A4B,0x8A4C,0x8A4D,0x8A4E,0x8A4F,
-0x8A50,0x8A51,0x8A52,0x8A53,0x8A54,0x8A55,0x8A56,0x8A57,
-0x8A58,0x8A59,0x8A5A,0x8A5B,0x8A5C,0x8A5D,0x8A5E, 0,
-0x8A5F,0x8A60,0x8A61,0x8A62,0x8A63,0x8A64,0x8A65,0x8A66,
-0x8A67,0x8A68,0x8A69,0x8A6A,0x8A6B,0x8A6C,0x8A6D,0x8A6E,
-0x8A6F,0x8A70,0x8A71,0x8A72,0x8A73,0x8A74,0x8A75,0x8A76,
-0x8A77,0x8A78,0x8A7A,0x8A7B,0x8A7C,0x8A7D,0x8A7E,0x8A7F,
-0x8A80,0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,0x9E33,
-0x6E0A,0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,0x8F95,
-0x56ED,0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,0x82D1,
-0x613F,0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,0x94A5,
-0x5CB3,0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,0x90E7,
-0x5300,0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,0x97F5,
-0x5B55,0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,0x5BB0,
-0x8F7D,0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,0x8D43,
-0x810F,0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,0x65E9,
-0x6FA1,0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,0x71E5,
-0x8D23,0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,0x618E,
-0x66FE,0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8A81,0x8A82,0x8A83,0x8A84,0x8A85,0x8A86,0x8A87,0x8A88,
-0x8A8B,0x8A8C,0x8A8D,0x8A8E,0x8A8F,0x8A90,0x8A91,0x8A92,
-0x8A94,0x8A95,0x8A96,0x8A97,0x8A98,0x8A99,0x8A9A,0x8A9B,
-0x8A9C,0x8A9D,0x8A9E,0x8A9F,0x8AA0,0x8AA1,0x8AA2,0x8AA3,
-0x8AA4,0x8AA5,0x8AA6,0x8AA7,0x8AA8,0x8AA9,0x8AAA,0x8AAB,
-0x8AAC,0x8AAD,0x8AAE,0x8AAF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,
-0x8AB4,0x8AB5,0x8AB6,0x8AB7,0x8AB8,0x8AB9,0x8ABA,0x8ABB,
-0x8ABC,0x8ABD,0x8ABE,0x8ABF,0x8AC0,0x8AC1,0x8AC2, 0,
-0x8AC3,0x8AC4,0x8AC5,0x8AC6,0x8AC7,0x8AC8,0x8AC9,0x8ACA,
-0x8ACB,0x8ACC,0x8ACD,0x8ACE,0x8ACF,0x8AD0,0x8AD1,0x8AD2,
-0x8AD3,0x8AD4,0x8AD5,0x8AD6,0x8AD7,0x8AD8,0x8AD9,0x8ADA,
-0x8ADB,0x8ADC,0x8ADD,0x8ADE,0x8ADF,0x8AE0,0x8AE1,0x8AE2,
-0x8AE3,0x94E1,0x95F8,0x7728,0x6805,0x69A8,0x548B,0x4E4D,
-0x70B8,0x8BC8,0x6458,0x658B,0x5B85,0x7A84,0x503A,0x5BE8,
-0x77BB,0x6BE1,0x8A79,0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97,
-0x5D2D,0x5C55,0x8638,0x6808,0x5360,0x6218,0x7AD9,0x6E5B,
-0x7EFD,0x6A1F,0x7AE0,0x5F70,0x6F33,0x5F20,0x638C,0x6DA8,
-0x6756,0x4E08,0x5E10,0x8D26,0x4ED7,0x80C0,0x7634,0x969C,
-0x62DB,0x662D,0x627E,0x6CBC,0x8D75,0x7167,0x7F69,0x5146,
-0x8087,0x53EC,0x906E,0x6298,0x54F2,0x86F0,0x8F99,0x8005,
-0x9517,0x8517,0x8FD9,0x6D59,0x73CD,0x659F,0x771F,0x7504,
-0x7827,0x81FB,0x8D1E,0x9488,0x4FA6,0x6795,0x75B9,0x8BCA,
-0x9707,0x632F,0x9547,0x9635,0x84B8,0x6323,0x7741,0x5F81,
-0x72F0,0x4E89,0x6014,0x6574,0x62EF,0x6B63,0x653F, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8AE4,0x8AE5,0x8AE6,0x8AE7,0x8AE8,0x8AE9,0x8AEA,0x8AEB,
-0x8AEC,0x8AED,0x8AEE,0x8AEF,0x8AF0,0x8AF1,0x8AF2,0x8AF3,
-0x8AF4,0x8AF5,0x8AF6,0x8AF7,0x8AF8,0x8AF9,0x8AFA,0x8AFB,
-0x8AFC,0x8AFD,0x8AFE,0x8AFF,0x8B00,0x8B01,0x8B02,0x8B03,
-0x8B04,0x8B05,0x8B06,0x8B08,0x8B09,0x8B0A,0x8B0B,0x8B0C,
-0x8B0D,0x8B0E,0x8B0F,0x8B10,0x8B11,0x8B12,0x8B13,0x8B14,
-0x8B15,0x8B16,0x8B17,0x8B18,0x8B19,0x8B1A,0x8B1B,0x8B1C,
-0x8B1D,0x8B1E,0x8B1F,0x8B20,0x8B21,0x8B22,0x8B23, 0,
-0x8B24,0x8B25,0x8B27,0x8B28,0x8B29,0x8B2A,0x8B2B,0x8B2C,
-0x8B2D,0x8B2E,0x8B2F,0x8B30,0x8B31,0x8B32,0x8B33,0x8B34,
-0x8B35,0x8B36,0x8B37,0x8B38,0x8B39,0x8B3A,0x8B3B,0x8B3C,
-0x8B3D,0x8B3E,0x8B3F,0x8B40,0x8B41,0x8B42,0x8B43,0x8B44,
-0x8B45,0x5E27,0x75C7,0x90D1,0x8BC1,0x829D,0x679D,0x652F,
-0x5431,0x8718,0x77E5,0x80A2,0x8102,0x6C41,0x4E4B,0x7EC7,
-0x804C,0x76F4,0x690D,0x6B96,0x6267,0x503C,0x4F84,0x5740,
-0x6307,0x6B62,0x8DBE,0x53EA,0x65E8,0x7EB8,0x5FD7,0x631A,
-0x63B7,0x81F3,0x81F4,0x7F6E,0x5E1C,0x5CD9,0x5236,0x667A,
-0x79E9,0x7A1A,0x8D28,0x7099,0x75D4,0x6EDE,0x6CBB,0x7A92,
-0x4E2D,0x76C5,0x5FE0,0x949F,0x8877,0x7EC8,0x79CD,0x80BF,
-0x91CD,0x4EF2,0x4F17,0x821F,0x5468,0x5DDE,0x6D32,0x8BCC,
-0x7CA5,0x8F74,0x8098,0x5E1A,0x5492,0x76B1,0x5B99,0x663C,
-0x9AA4,0x73E0,0x682A,0x86DB,0x6731,0x732A,0x8BF8,0x8BDB,
-0x9010,0x7AF9,0x70DB,0x716E,0x62C4,0x77A9,0x5631,0x4E3B,
-0x8457,0x67F1,0x52A9,0x86C0,0x8D2E,0x94F8,0x7B51, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8B46,0x8B47,0x8B48,0x8B49,0x8B4A,0x8B4B,0x8B4C,0x8B4D,
-0x8B4E,0x8B4F,0x8B50,0x8B51,0x8B52,0x8B53,0x8B54,0x8B55,
-0x8B56,0x8B57,0x8B58,0x8B59,0x8B5A,0x8B5B,0x8B5C,0x8B5D,
-0x8B5E,0x8B5F,0x8B60,0x8B61,0x8B62,0x8B63,0x8B64,0x8B65,
-0x8B67,0x8B68,0x8B69,0x8B6A,0x8B6B,0x8B6D,0x8B6E,0x8B6F,
-0x8B70,0x8B71,0x8B72,0x8B73,0x8B74,0x8B75,0x8B76,0x8B77,
-0x8B78,0x8B79,0x8B7A,0x8B7B,0x8B7C,0x8B7D,0x8B7E,0x8B7F,
-0x8B80,0x8B81,0x8B82,0x8B83,0x8B84,0x8B85,0x8B86, 0,
-0x8B87,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0x8B8D,0x8B8E,
-0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,0x8B94,0x8B95,0x8B96,
-0x8B97,0x8B98,0x8B99,0x8B9A,0x8B9B,0x8B9C,0x8B9D,0x8B9E,
-0x8B9F,0x8BAC,0x8BB1,0x8BBB,0x8BC7,0x8BD0,0x8BEA,0x8C09,
-0x8C1E,0x4F4F,0x6CE8,0x795D,0x9A7B,0x6293,0x722A,0x62FD,
-0x4E13,0x7816,0x8F6C,0x64B0,0x8D5A,0x7BC6,0x6869,0x5E84,
-0x88C5,0x5986,0x649E,0x58EE,0x72B6,0x690E,0x9525,0x8FFD,
-0x8D58,0x5760,0x7F00,0x8C06,0x51C6,0x6349,0x62D9,0x5353,
-0x684C,0x7422,0x8301,0x914C,0x5544,0x7740,0x707C,0x6D4A,
-0x5179,0x54A8,0x8D44,0x59FF,0x6ECB,0x6DC4,0x5B5C,0x7D2B,
-0x4ED4,0x7C7D,0x6ED3,0x5B50,0x81EA,0x6E0D,0x5B57,0x9B03,
-0x68D5,0x8E2A,0x5B97,0x7EFC,0x603B,0x7EB5,0x90B9,0x8D70,
-0x594F,0x63CD,0x79DF,0x8DB3,0x5352,0x65CF,0x7956,0x8BC5,
-0x963B,0x7EC4,0x94BB,0x7E82,0x5634,0x9189,0x6700,0x7F6A,
-0x5C0A,0x9075,0x6628,0x5DE6,0x4F50,0x67DE,0x505A,0x4F5C,
-0x5750,0x5EA7, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8C38,0x8C39,0x8C3A,0x8C3B,0x8C3C,0x8C3D,0x8C3E,0x8C3F,
-0x8C40,0x8C42,0x8C43,0x8C44,0x8C45,0x8C48,0x8C4A,0x8C4B,
-0x8C4D,0x8C4E,0x8C4F,0x8C50,0x8C51,0x8C52,0x8C53,0x8C54,
-0x8C56,0x8C57,0x8C58,0x8C59,0x8C5B,0x8C5C,0x8C5D,0x8C5E,
-0x8C5F,0x8C60,0x8C63,0x8C64,0x8C65,0x8C66,0x8C67,0x8C68,
-0x8C69,0x8C6C,0x8C6D,0x8C6E,0x8C6F,0x8C70,0x8C71,0x8C72,
-0x8C74,0x8C75,0x8C76,0x8C77,0x8C7B,0x8C7C,0x8C7D,0x8C7E,
-0x8C7F,0x8C80,0x8C81,0x8C83,0x8C84,0x8C86,0x8C87, 0,
-0x8C88,0x8C8B,0x8C8D,0x8C8E,0x8C8F,0x8C90,0x8C91,0x8C92,
-0x8C93,0x8C95,0x8C96,0x8C97,0x8C99,0x8C9A,0x8C9B,0x8C9C,
-0x8C9D,0x8C9E,0x8C9F,0x8CA0,0x8CA1,0x8CA2,0x8CA3,0x8CA4,
-0x8CA5,0x8CA6,0x8CA7,0x8CA8,0x8CA9,0x8CAA,0x8CAB,0x8CAC,
-0x8CAD,0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,0x4E15,
-0x4E98,0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,0x4E3F,
-0x5315,0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,0x80E4,
-0x9997,0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,0x4E5C,
-0x4E69,0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,0x538D,
-0x539D,0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,0x53F5,
-0x5326,0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,0x5208,
-0x520E,0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,0x5261,
-0x525C,0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,0x5182,
-0x7F54,0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,0x4EEB,
-0x4EDE,0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,0x4F27,
-0x4F09,0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8CAE,0x8CAF,0x8CB0,0x8CB1,0x8CB2,0x8CB3,0x8CB4,0x8CB5,
-0x8CB6,0x8CB7,0x8CB8,0x8CB9,0x8CBA,0x8CBB,0x8CBC,0x8CBD,
-0x8CBE,0x8CBF,0x8CC0,0x8CC1,0x8CC2,0x8CC3,0x8CC4,0x8CC5,
-0x8CC6,0x8CC7,0x8CC8,0x8CC9,0x8CCA,0x8CCB,0x8CCC,0x8CCD,
-0x8CCE,0x8CCF,0x8CD0,0x8CD1,0x8CD2,0x8CD3,0x8CD4,0x8CD5,
-0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,0x8CDB,0x8CDC,0x8CDD,
-0x8CDE,0x8CDF,0x8CE0,0x8CE1,0x8CE2,0x8CE3,0x8CE4,0x8CE5,
-0x8CE6,0x8CE7,0x8CE8,0x8CE9,0x8CEA,0x8CEB,0x8CEC, 0,
-0x8CED,0x8CEE,0x8CEF,0x8CF0,0x8CF1,0x8CF2,0x8CF3,0x8CF4,
-0x8CF5,0x8CF6,0x8CF7,0x8CF8,0x8CF9,0x8CFA,0x8CFB,0x8CFC,
-0x8CFD,0x8CFE,0x8CFF,0x8D00,0x8D01,0x8D02,0x8D03,0x8D04,
-0x8D05,0x8D06,0x8D07,0x8D08,0x8D09,0x8D0A,0x8D0B,0x8D0C,
-0x8D0D,0x4F5F,0x4F57,0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91,
-0x4F89,0x4F83,0x4F8F,0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC,
-0x4F94,0x4FE6,0x4FE8,0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC,
-0x4FD1,0x4FDF,0x4FF8,0x5029,0x504C,0x4FF3,0x502C,0x500F,
-0x502E,0x502D,0x4FFE,0x501C,0x500C,0x5025,0x5028,0x507E,
-0x5043,0x5055,0x5048,0x504E,0x506C,0x507B,0x50A5,0x50A7,
-0x50A9,0x50BA,0x50D6,0x5106,0x50ED,0x50EC,0x50E6,0x50EE,
-0x5107,0x510B,0x4EDD,0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0,
-0x6C46,0x7C74,0x516E,0x5DFD,0x9EC9,0x9998,0x5181,0x5914,
-0x52F9,0x530D,0x8A07,0x5310,0x51EB,0x5919,0x5155,0x4EA0,
-0x5156,0x4EB3,0x886E,0x88A4,0x4EB5,0x8114,0x88D2,0x7980,
-0x5B34,0x8803,0x7FB8,0x51AB,0x51B1,0x51BD,0x51BC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8D0E,0x8D0F,0x8D10,0x8D11,0x8D12,0x8D13,0x8D14,0x8D15,
-0x8D16,0x8D17,0x8D18,0x8D19,0x8D1A,0x8D1B,0x8D1C,0x8D20,
-0x8D51,0x8D52,0x8D57,0x8D5F,0x8D65,0x8D68,0x8D69,0x8D6A,
-0x8D6C,0x8D6E,0x8D6F,0x8D71,0x8D72,0x8D78,0x8D79,0x8D7A,
-0x8D7B,0x8D7C,0x8D7D,0x8D7E,0x8D7F,0x8D80,0x8D82,0x8D83,
-0x8D86,0x8D87,0x8D88,0x8D89,0x8D8C,0x8D8D,0x8D8E,0x8D8F,
-0x8D90,0x8D92,0x8D93,0x8D95,0x8D96,0x8D97,0x8D98,0x8D99,
-0x8D9A,0x8D9B,0x8D9C,0x8D9D,0x8D9E,0x8DA0,0x8DA1, 0,
-0x8DA2,0x8DA4,0x8DA5,0x8DA6,0x8DA7,0x8DA8,0x8DA9,0x8DAA,
-0x8DAB,0x8DAC,0x8DAD,0x8DAE,0x8DAF,0x8DB0,0x8DB2,0x8DB6,
-0x8DB7,0x8DB9,0x8DBB,0x8DBD,0x8DC0,0x8DC1,0x8DC2,0x8DC5,
-0x8DC7,0x8DC8,0x8DC9,0x8DCA,0x8DCD,0x8DD0,0x8DD2,0x8DD3,
-0x8DD4,0x51C7,0x5196,0x51A2,0x51A5,0x8BA0,0x8BA6,0x8BA7,
-0x8BAA,0x8BB4,0x8BB5,0x8BB7,0x8BC2,0x8BC3,0x8BCB,0x8BCF,
-0x8BCE,0x8BD2,0x8BD3,0x8BD4,0x8BD6,0x8BD8,0x8BD9,0x8BDC,
-0x8BDF,0x8BE0,0x8BE4,0x8BE8,0x8BE9,0x8BEE,0x8BF0,0x8BF3,
-0x8BF6,0x8BF9,0x8BFC,0x8BFF,0x8C00,0x8C02,0x8C04,0x8C07,
-0x8C0C,0x8C0F,0x8C11,0x8C12,0x8C14,0x8C15,0x8C16,0x8C19,
-0x8C1B,0x8C18,0x8C1D,0x8C1F,0x8C20,0x8C21,0x8C25,0x8C27,
-0x8C2A,0x8C2B,0x8C2E,0x8C2F,0x8C32,0x8C33,0x8C35,0x8C36,
-0x5369,0x537A,0x961D,0x9622,0x9621,0x9631,0x962A,0x963D,
-0x963C,0x9642,0x9649,0x9654,0x965F,0x9667,0x966C,0x9672,
-0x9674,0x9688,0x968D,0x9697,0x96B0,0x9097,0x909B,0x909D,
-0x9099,0x90AC,0x90A1,0x90B4,0x90B3,0x90B6,0x90BA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8DD5,0x8DD8,0x8DD9,0x8DDC,0x8DE0,0x8DE1,0x8DE2,0x8DE5,
-0x8DE6,0x8DE7,0x8DE9,0x8DED,0x8DEE,0x8DF0,0x8DF1,0x8DF2,
-0x8DF4,0x8DF6,0x8DFC,0x8DFE,0x8DFF,0x8E00,0x8E01,0x8E02,
-0x8E03,0x8E04,0x8E06,0x8E07,0x8E08,0x8E0B,0x8E0D,0x8E0E,
-0x8E10,0x8E11,0x8E12,0x8E13,0x8E15,0x8E16,0x8E17,0x8E18,
-0x8E19,0x8E1A,0x8E1B,0x8E1C,0x8E20,0x8E21,0x8E24,0x8E25,
-0x8E26,0x8E27,0x8E28,0x8E2B,0x8E2D,0x8E30,0x8E32,0x8E33,
-0x8E34,0x8E36,0x8E37,0x8E38,0x8E3B,0x8E3C,0x8E3E, 0,
-0x8E3F,0x8E43,0x8E45,0x8E46,0x8E4C,0x8E4D,0x8E4E,0x8E4F,
-0x8E50,0x8E53,0x8E54,0x8E55,0x8E56,0x8E57,0x8E58,0x8E5A,
-0x8E5B,0x8E5C,0x8E5D,0x8E5E,0x8E5F,0x8E60,0x8E61,0x8E62,
-0x8E63,0x8E64,0x8E65,0x8E67,0x8E68,0x8E6A,0x8E6B,0x8E6E,
-0x8E71,0x90B8,0x90B0,0x90CF,0x90C5,0x90BE,0x90D0,0x90C4,
-0x90C7,0x90D3,0x90E6,0x90E2,0x90DC,0x90D7,0x90DB,0x90EB,
-0x90EF,0x90FE,0x9104,0x9122,0x911E,0x9123,0x9131,0x912F,
-0x9139,0x9143,0x9146,0x520D,0x5942,0x52A2,0x52AC,0x52AD,
-0x52BE,0x54FF,0x52D0,0x52D6,0x52F0,0x53DF,0x71EE,0x77CD,
-0x5EF4,0x51F5,0x51FC,0x9B2F,0x53B6,0x5F01,0x755A,0x5DEF,
-0x574C,0x57A9,0x57A1,0x587E,0x58BC,0x58C5,0x58D1,0x5729,
-0x572C,0x572A,0x5733,0x5739,0x572E,0x572F,0x575C,0x573B,
-0x5742,0x5769,0x5785,0x576B,0x5786,0x577C,0x577B,0x5768,
-0x576D,0x5776,0x5773,0x57AD,0x57A4,0x578C,0x57B2,0x57CF,
-0x57A7,0x57B4,0x5793,0x57A0,0x57D5,0x57D8,0x57DA,0x57D9,
-0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8E73,0x8E75,0x8E77,0x8E78,0x8E79,0x8E7A,0x8E7B,0x8E7D,
-0x8E7E,0x8E80,0x8E82,0x8E83,0x8E84,0x8E86,0x8E88,0x8E89,
-0x8E8A,0x8E8B,0x8E8C,0x8E8D,0x8E8E,0x8E91,0x8E92,0x8E93,
-0x8E95,0x8E96,0x8E97,0x8E98,0x8E99,0x8E9A,0x8E9B,0x8E9D,
-0x8E9F,0x8EA0,0x8EA1,0x8EA2,0x8EA3,0x8EA4,0x8EA5,0x8EA6,
-0x8EA7,0x8EA8,0x8EA9,0x8EAA,0x8EAD,0x8EAE,0x8EB0,0x8EB1,
-0x8EB3,0x8EB4,0x8EB5,0x8EB6,0x8EB7,0x8EB8,0x8EB9,0x8EBB,
-0x8EBC,0x8EBD,0x8EBE,0x8EBF,0x8EC0,0x8EC1,0x8EC2, 0,
-0x8EC3,0x8EC4,0x8EC5,0x8EC6,0x8EC7,0x8EC8,0x8EC9,0x8ECA,
-0x8ECB,0x8ECC,0x8ECD,0x8ECF,0x8ED0,0x8ED1,0x8ED2,0x8ED3,
-0x8ED4,0x8ED5,0x8ED6,0x8ED7,0x8ED8,0x8ED9,0x8EDA,0x8EDB,
-0x8EDC,0x8EDD,0x8EDE,0x8EDF,0x8EE0,0x8EE1,0x8EE2,0x8EE3,
-0x8EE4,0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,0x5819,
-0x5844,0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,0x5880,
-0x99A8,0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,0x828A,
-0x82A8,0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,0x82B8,
-0x82BE,0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,0x82AE,
-0x82CB,0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,0x829F,
-0x82C4,0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,0x830F,
-0x8307,0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,0x82D3,
-0x8311,0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,0x831C,
-0x8351,0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,0x8331,
-0x839B,0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,0x8340,
-0x8317,0x8360,0x832D,0x833A,0x8333,0x8366,0x8365, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8EE5,0x8EE6,0x8EE7,0x8EE8,0x8EE9,0x8EEA,0x8EEB,0x8EEC,
-0x8EED,0x8EEE,0x8EEF,0x8EF0,0x8EF1,0x8EF2,0x8EF3,0x8EF4,
-0x8EF5,0x8EF6,0x8EF7,0x8EF8,0x8EF9,0x8EFA,0x8EFB,0x8EFC,
-0x8EFD,0x8EFE,0x8EFF,0x8F00,0x8F01,0x8F02,0x8F03,0x8F04,
-0x8F05,0x8F06,0x8F07,0x8F08,0x8F09,0x8F0A,0x8F0B,0x8F0C,
-0x8F0D,0x8F0E,0x8F0F,0x8F10,0x8F11,0x8F12,0x8F13,0x8F14,
-0x8F15,0x8F16,0x8F17,0x8F18,0x8F19,0x8F1A,0x8F1B,0x8F1C,
-0x8F1D,0x8F1E,0x8F1F,0x8F20,0x8F21,0x8F22,0x8F23, 0,
-0x8F24,0x8F25,0x8F26,0x8F27,0x8F28,0x8F29,0x8F2A,0x8F2B,
-0x8F2C,0x8F2D,0x8F2E,0x8F2F,0x8F30,0x8F31,0x8F32,0x8F33,
-0x8F34,0x8F35,0x8F36,0x8F37,0x8F38,0x8F39,0x8F3A,0x8F3B,
-0x8F3C,0x8F3D,0x8F3E,0x8F3F,0x8F40,0x8F41,0x8F42,0x8F43,
-0x8F44,0x8368,0x831B,0x8369,0x836C,0x836A,0x836D,0x836E,
-0x83B0,0x8378,0x83B3,0x83B4,0x83A0,0x83AA,0x8393,0x839C,
-0x8385,0x837C,0x83B6,0x83A9,0x837D,0x83B8,0x837B,0x8398,
-0x839E,0x83A8,0x83BA,0x83BC,0x83C1,0x8401,0x83E5,0x83D8,
-0x5807,0x8418,0x840B,0x83DD,0x83FD,0x83D6,0x841C,0x8438,
-0x8411,0x8406,0x83D4,0x83DF,0x840F,0x8403,0x83F8,0x83F9,
-0x83EA,0x83C5,0x83C0,0x8426,0x83F0,0x83E1,0x845C,0x8451,
-0x845A,0x8459,0x8473,0x8487,0x8488,0x847A,0x8489,0x8478,
-0x843C,0x8446,0x8469,0x8476,0x848C,0x848E,0x8431,0x846D,
-0x84C1,0x84CD,0x84D0,0x84E6,0x84BD,0x84D3,0x84CA,0x84BF,
-0x84BA,0x84E0,0x84A1,0x84B9,0x84B4,0x8497,0x84E5,0x84E3,
-0x850C,0x750D,0x8538,0x84F0,0x8539,0x851F,0x853A, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x8F45,0x8F46,0x8F47,0x8F48,0x8F49,0x8F4A,0x8F4B,0x8F4C,
-0x8F4D,0x8F4E,0x8F4F,0x8F50,0x8F51,0x8F52,0x8F53,0x8F54,
-0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A,0x8F5B,0x8F5C,
-0x8F5D,0x8F5E,0x8F5F,0x8F60,0x8F61,0x8F62,0x8F63,0x8F64,
-0x8F65,0x8F6A,0x8F80,0x8F8C,0x8F92,0x8F9D,0x8FA0,0x8FA1,
-0x8FA2,0x8FA4,0x8FA5,0x8FA6,0x8FA7,0x8FAA,0x8FAC,0x8FAD,
-0x8FAE,0x8FAF,0x8FB2,0x8FB3,0x8FB4,0x8FB5,0x8FB7,0x8FB8,
-0x8FBA,0x8FBB,0x8FBC,0x8FBF,0x8FC0,0x8FC3,0x8FC6, 0,
-0x8FC9,0x8FCA,0x8FCB,0x8FCC,0x8FCD,0x8FCF,0x8FD2,0x8FD6,
-0x8FD7,0x8FDA,0x8FE0,0x8FE1,0x8FE3,0x8FE7,0x8FEC,0x8FEF,
-0x8FF1,0x8FF2,0x8FF4,0x8FF5,0x8FF6,0x8FFA,0x8FFB,0x8FFC,
-0x8FFE,0x8FFF,0x9007,0x9008,0x900C,0x900E,0x9013,0x9015,
-0x9018,0x8556,0x853B,0x84FF,0x84FC,0x8559,0x8548,0x8568,
-0x8564,0x855E,0x857A,0x77A2,0x8543,0x8572,0x857B,0x85A4,
-0x85A8,0x8587,0x858F,0x8579,0x85AE,0x859C,0x8585,0x85B9,
-0x85B7,0x85B0,0x85D3,0x85C1,0x85DC,0x85FF,0x8627,0x8605,
-0x8629,0x8616,0x863C,0x5EFE,0x5F08,0x593C,0x5941,0x8037,
-0x5955,0x595A,0x5958,0x530F,0x5C22,0x5C25,0x5C2C,0x5C34,
-0x624C,0x626A,0x629F,0x62BB,0x62CA,0x62DA,0x62D7,0x62EE,
-0x6322,0x62F6,0x6339,0x634B,0x6343,0x63AD,0x63F6,0x6371,
-0x637A,0x638E,0x63B4,0x636D,0x63AC,0x638A,0x6369,0x63AE,
-0x63BC,0x63F2,0x63F8,0x63E0,0x63FF,0x63C4,0x63DE,0x63CE,
-0x6452,0x63C6,0x63BE,0x6445,0x6441,0x640B,0x641B,0x6420,
-0x640C,0x6426,0x6421,0x645E,0x6484,0x646D,0x6496, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9019,0x901C,0x9023,0x9024,0x9025,0x9027,0x9028,0x9029,
-0x902A,0x902B,0x902C,0x9030,0x9031,0x9032,0x9033,0x9034,
-0x9037,0x9039,0x903A,0x903D,0x903F,0x9040,0x9043,0x9045,
-0x9046,0x9048,0x9049,0x904A,0x904B,0x904C,0x904E,0x9054,
-0x9055,0x9056,0x9059,0x905A,0x905C,0x905D,0x905E,0x905F,
-0x9060,0x9061,0x9064,0x9066,0x9067,0x9069,0x906A,0x906B,
-0x906C,0x906F,0x9070,0x9071,0x9072,0x9073,0x9076,0x9077,
-0x9078,0x9079,0x907A,0x907B,0x907C,0x907E,0x9081, 0,
-0x9084,0x9085,0x9086,0x9087,0x9089,0x908A,0x908C,0x908D,
-0x908E,0x908F,0x9090,0x9092,0x9094,0x9096,0x9098,0x909A,
-0x909C,0x909E,0x909F,0x90A0,0x90A4,0x90A5,0x90A7,0x90A8,
-0x90A9,0x90AB,0x90AD,0x90B2,0x90B7,0x90BC,0x90BD,0x90BF,
-0x90C0,0x647A,0x64B7,0x64B8,0x6499,0x64BA,0x64C0,0x64D0,
-0x64D7,0x64E4,0x64E2,0x6509,0x6525,0x652E,0x5F0B,0x5FD2,
-0x7519,0x5F11,0x535F,0x53F1,0x53FD,0x53E9,0x53E8,0x53FB,
-0x5412,0x5416,0x5406,0x544B,0x5452,0x5453,0x5454,0x5456,
-0x5443,0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,0x5494,
-0x5477,0x5471,0x5464,0x549A,0x549B,0x5484,0x5476,0x5466,
-0x549D,0x54D0,0x54AD,0x54C2,0x54B4,0x54D2,0x54A7,0x54A6,
-0x54D3,0x54D4,0x5472,0x54A3,0x54D5,0x54BB,0x54BF,0x54CC,
-0x54D9,0x54DA,0x54DC,0x54A9,0x54AA,0x54A4,0x54DD,0x54CF,
-0x54DE,0x551B,0x54E7,0x5520,0x54FD,0x5514,0x54F3,0x5522,
-0x5523,0x550F,0x5511,0x5527,0x552A,0x5567,0x558F,0x55B5,
-0x5549,0x556D,0x5541,0x5555,0x553F,0x5550,0x553C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x90C2,0x90C3,0x90C6,0x90C8,0x90C9,0x90CB,0x90CC,0x90CD,
-0x90D2,0x90D4,0x90D5,0x90D6,0x90D8,0x90D9,0x90DA,0x90DE,
-0x90DF,0x90E0,0x90E3,0x90E4,0x90E5,0x90E9,0x90EA,0x90EC,
-0x90EE,0x90F0,0x90F1,0x90F2,0x90F3,0x90F5,0x90F6,0x90F7,
-0x90F9,0x90FA,0x90FB,0x90FC,0x90FF,0x9100,0x9101,0x9103,
-0x9105,0x9106,0x9107,0x9108,0x9109,0x910A,0x910B,0x910C,
-0x910D,0x910E,0x910F,0x9110,0x9111,0x9112,0x9113,0x9114,
-0x9115,0x9116,0x9117,0x9118,0x911A,0x911B,0x911C, 0,
-0x911D,0x911F,0x9120,0x9121,0x9124,0x9125,0x9126,0x9127,
-0x9128,0x9129,0x912A,0x912B,0x912C,0x912D,0x912E,0x9130,
-0x9132,0x9133,0x9134,0x9135,0x9136,0x9137,0x9138,0x913A,
-0x913B,0x913C,0x913D,0x913E,0x913F,0x9140,0x9141,0x9142,
-0x9144,0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,
-0x555C,0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,0x5581,
-0x559F,0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,0x55BE,
-0x5594,0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,0x55EB,
-0x55EC,0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,0x55F2,
-0x55F3,0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,0x561E,
-0x5608,0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,0x5627,
-0x562D,0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,0x5659,
-0x565C,0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,0x567B,
-0x567C,0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,0x56E1,
-0x56F5,0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,0x571C,
-0x5E0F,0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9145,0x9147,0x9148,0x9151,0x9153,0x9154,0x9155,0x9156,
-0x9158,0x9159,0x915B,0x915C,0x915F,0x9160,0x9166,0x9167,
-0x9168,0x916B,0x916D,0x9173,0x917A,0x917B,0x917C,0x9180,
-0x9181,0x9182,0x9183,0x9184,0x9186,0x9188,0x918A,0x918E,
-0x918F,0x9193,0x9194,0x9195,0x9196,0x9197,0x9198,0x9199,
-0x919C,0x919D,0x919E,0x919F,0x91A0,0x91A1,0x91A4,0x91A5,
-0x91A6,0x91A7,0x91A8,0x91A9,0x91AB,0x91AC,0x91B0,0x91B1,
-0x91B2,0x91B3,0x91B6,0x91B7,0x91B8,0x91B9,0x91BB, 0,
-0x91BC,0x91BD,0x91BE,0x91BF,0x91C0,0x91C1,0x91C2,0x91C3,
-0x91C4,0x91C5,0x91C6,0x91C8,0x91CB,0x91D0,0x91D2,0x91D3,
-0x91D4,0x91D5,0x91D6,0x91D7,0x91D8,0x91D9,0x91DA,0x91DB,
-0x91DD,0x91DE,0x91DF,0x91E0,0x91E1,0x91E2,0x91E3,0x91E4,
-0x91E5,0x5E37,0x5E44,0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C,
-0x5C7A,0x5C8D,0x5C90,0x5C96,0x5C88,0x5C98,0x5C99,0x5C91,
-0x5C9A,0x5C9C,0x5CB5,0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1,
-0x5CA3,0x5CC1,0x5CB7,0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5,
-0x5D02,0x5D03,0x5D27,0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06,
-0x5D1B,0x5D58,0x5D3E,0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F,
-0x5D5D,0x5D6B,0x5D4B,0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99,
-0x5D9D,0x8C73,0x5DB7,0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87,
-0x5F89,0x5F8C,0x5F95,0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5,
-0x5FBC,0x8862,0x5F61,0x72AD,0x72B0,0x72B4,0x72B7,0x72B8,
-0x72C3,0x72C1,0x72CE,0x72CD,0x72D2,0x72E8,0x72EF,0x72E9,
-0x72F2,0x72F4,0x72F7,0x7301,0x72F3,0x7303,0x72FA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x91E6,0x91E7,0x91E8,0x91E9,0x91EA,0x91EB,0x91EC,0x91ED,
-0x91EE,0x91EF,0x91F0,0x91F1,0x91F2,0x91F3,0x91F4,0x91F5,
-0x91F6,0x91F7,0x91F8,0x91F9,0x91FA,0x91FB,0x91FC,0x91FD,
-0x91FE,0x91FF,0x9200,0x9201,0x9202,0x9203,0x9204,0x9205,
-0x9206,0x9207,0x9208,0x9209,0x920A,0x920B,0x920C,0x920D,
-0x920E,0x920F,0x9210,0x9211,0x9212,0x9213,0x9214,0x9215,
-0x9216,0x9217,0x9218,0x9219,0x921A,0x921B,0x921C,0x921D,
-0x921E,0x921F,0x9220,0x9221,0x9222,0x9223,0x9224, 0,
-0x9225,0x9226,0x9227,0x9228,0x9229,0x922A,0x922B,0x922C,
-0x922D,0x922E,0x922F,0x9230,0x9231,0x9232,0x9233,0x9234,
-0x9235,0x9236,0x9237,0x9238,0x9239,0x923A,0x923B,0x923C,
-0x923D,0x923E,0x923F,0x9240,0x9241,0x9242,0x9243,0x9244,
-0x9245,0x72FB,0x7317,0x7313,0x7321,0x730A,0x731E,0x731D,
-0x7315,0x7322,0x7339,0x7325,0x732C,0x7338,0x7331,0x7350,
-0x734D,0x7357,0x7360,0x736C,0x736F,0x737E,0x821B,0x5925,
-0x98E7,0x5924,0x5902,0x9963,0x9967,0x9968,0x9969,0x996A,
-0x996B,0x996C,0x9974,0x9977,0x997D,0x9980,0x9984,0x9987,
-0x998A,0x998D,0x9990,0x9991,0x9993,0x9994,0x9995,0x5E80,
-0x5E91,0x5E8B,0x5E96,0x5EA5,0x5EA0,0x5EB9,0x5EB5,0x5EBE,
-0x5EB3,0x8D53,0x5ED2,0x5ED1,0x5EDB,0x5EE8,0x5EEA,0x81BA,
-0x5FC4,0x5FC9,0x5FD6,0x5FCF,0x6003,0x5FEE,0x6004,0x5FE1,
-0x5FE4,0x5FFE,0x6005,0x6006,0x5FEA,0x5FED,0x5FF8,0x6019,
-0x6035,0x6026,0x601B,0x600F,0x600D,0x6029,0x602B,0x600A,
-0x603F,0x6021,0x6078,0x6079,0x607B,0x607A,0x6042, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9246,0x9247,0x9248,0x9249,0x924A,0x924B,0x924C,0x924D,
-0x924E,0x924F,0x9250,0x9251,0x9252,0x9253,0x9254,0x9255,
-0x9256,0x9257,0x9258,0x9259,0x925A,0x925B,0x925C,0x925D,
-0x925E,0x925F,0x9260,0x9261,0x9262,0x9263,0x9264,0x9265,
-0x9266,0x9267,0x9268,0x9269,0x926A,0x926B,0x926C,0x926D,
-0x926E,0x926F,0x9270,0x9271,0x9272,0x9273,0x9275,0x9276,
-0x9277,0x9278,0x9279,0x927A,0x927B,0x927C,0x927D,0x927E,
-0x927F,0x9280,0x9281,0x9282,0x9283,0x9284,0x9285, 0,
-0x9286,0x9287,0x9288,0x9289,0x928A,0x928B,0x928C,0x928D,
-0x928F,0x9290,0x9291,0x9292,0x9293,0x9294,0x9295,0x9296,
-0x9297,0x9298,0x9299,0x929A,0x929B,0x929C,0x929D,0x929E,
-0x929F,0x92A0,0x92A1,0x92A2,0x92A3,0x92A4,0x92A5,0x92A6,
-0x92A7,0x606A,0x607D,0x6096,0x609A,0x60AD,0x609D,0x6083,
-0x6092,0x608C,0x609B,0x60EC,0x60BB,0x60B1,0x60DD,0x60D8,
-0x60C6,0x60DA,0x60B4,0x6120,0x6126,0x6115,0x6123,0x60F4,
-0x6100,0x610E,0x612B,0x614A,0x6175,0x61AC,0x6194,0x61A7,
-0x61B7,0x61D4,0x61F5,0x5FDD,0x96B3,0x95E9,0x95EB,0x95F1,
-0x95F3,0x95F5,0x95F6,0x95FC,0x95FE,0x9603,0x9604,0x9606,
-0x9608,0x960A,0x960B,0x960C,0x960D,0x960F,0x9612,0x9615,
-0x9616,0x9617,0x9619,0x961A,0x4E2C,0x723F,0x6215,0x6C35,
-0x6C54,0x6C5C,0x6C4A,0x6CA3,0x6C85,0x6C90,0x6C94,0x6C8C,
-0x6C68,0x6C69,0x6C74,0x6C76,0x6C86,0x6CA9,0x6CD0,0x6CD4,
-0x6CAD,0x6CF7,0x6CF8,0x6CF1,0x6CD7,0x6CB2,0x6CE0,0x6CD6,
-0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x92A8,0x92A9,0x92AA,0x92AB,0x92AC,0x92AD,0x92AF,0x92B0,
-0x92B1,0x92B2,0x92B3,0x92B4,0x92B5,0x92B6,0x92B7,0x92B8,
-0x92B9,0x92BA,0x92BB,0x92BC,0x92BD,0x92BE,0x92BF,0x92C0,
-0x92C1,0x92C2,0x92C3,0x92C4,0x92C5,0x92C6,0x92C7,0x92C9,
-0x92CA,0x92CB,0x92CC,0x92CD,0x92CE,0x92CF,0x92D0,0x92D1,
-0x92D2,0x92D3,0x92D4,0x92D5,0x92D6,0x92D7,0x92D8,0x92D9,
-0x92DA,0x92DB,0x92DC,0x92DD,0x92DE,0x92DF,0x92E0,0x92E1,
-0x92E2,0x92E3,0x92E4,0x92E5,0x92E6,0x92E7,0x92E8, 0,
-0x92E9,0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0,
-0x92F1,0x92F2,0x92F3,0x92F4,0x92F5,0x92F6,0x92F7,0x92F8,
-0x92F9,0x92FA,0x92FB,0x92FC,0x92FD,0x92FE,0x92FF,0x9300,
-0x9301,0x9302,0x9303,0x9304,0x9305,0x9306,0x9307,0x9308,
-0x9309,0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,0x6D04,
-0x6D19,0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,0x6D4F,
-0x6D52,0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,0x6D5E,
-0x6D93,0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,0x6DC7,
-0x6DC5,0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,0x6DDD,
-0x6DD9,0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,0x6E4E,
-0x6E6B,0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,0x6E25,
-0x6E44,0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,0x6EA5,
-0x6EA7,0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,0x6E8F,
-0x6EC2,0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,0x6EF9,
-0x6F2F,0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,0x6F89,
-0x6F8D,0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x930A,0x930B,0x930C,0x930D,0x930E,0x930F,0x9310,0x9311,
-0x9312,0x9313,0x9314,0x9315,0x9316,0x9317,0x9318,0x9319,
-0x931A,0x931B,0x931C,0x931D,0x931E,0x931F,0x9320,0x9321,
-0x9322,0x9323,0x9324,0x9325,0x9326,0x9327,0x9328,0x9329,
-0x932A,0x932B,0x932C,0x932D,0x932E,0x932F,0x9330,0x9331,
-0x9332,0x9333,0x9334,0x9335,0x9336,0x9337,0x9338,0x9339,
-0x933A,0x933B,0x933C,0x933D,0x933F,0x9340,0x9341,0x9342,
-0x9343,0x9344,0x9345,0x9346,0x9347,0x9348,0x9349, 0,
-0x934A,0x934B,0x934C,0x934D,0x934E,0x934F,0x9350,0x9351,
-0x9352,0x9353,0x9354,0x9355,0x9356,0x9357,0x9358,0x9359,
-0x935A,0x935B,0x935C,0x935D,0x935E,0x935F,0x9360,0x9361,
-0x9362,0x9363,0x9364,0x9365,0x9366,0x9367,0x9368,0x9369,
-0x936B,0x6FC9,0x6FA7,0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE,
-0x6FDE,0x6FE0,0x6FEF,0x701A,0x7023,0x701B,0x7039,0x7035,
-0x704F,0x705E,0x5B80,0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8,
-0x752F,0x9A9E,0x6434,0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47,
-0x8B07,0x8FB6,0x8FD3,0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9,
-0x8FE6,0x8FF3,0x8FE8,0x9005,0x9004,0x900B,0x9026,0x9011,
-0x900D,0x9016,0x9021,0x9035,0x9036,0x902D,0x902F,0x9044,
-0x9051,0x9052,0x9050,0x9068,0x9058,0x9062,0x905B,0x66B9,
-0x9074,0x907D,0x9082,0x9088,0x9083,0x908B,0x5F50,0x5F57,
-0x5F56,0x5F58,0x5C3B,0x54AB,0x5C50,0x5C59,0x5B71,0x5C63,
-0x5C66,0x7FBC,0x5F2A,0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B,
-0x5C6E,0x5981,0x5983,0x598D,0x59A9,0x59AA,0x59A3, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x936C,0x936D,0x936E,0x936F,0x9370,0x9371,0x9372,0x9373,
-0x9374,0x9375,0x9376,0x9377,0x9378,0x9379,0x937A,0x937B,
-0x937C,0x937D,0x937E,0x937F,0x9380,0x9381,0x9382,0x9383,
-0x9384,0x9385,0x9386,0x9387,0x9388,0x9389,0x938A,0x938B,
-0x938C,0x938D,0x938E,0x9390,0x9391,0x9392,0x9393,0x9394,
-0x9395,0x9396,0x9397,0x9398,0x9399,0x939A,0x939B,0x939C,
-0x939D,0x939E,0x939F,0x93A0,0x93A1,0x93A2,0x93A3,0x93A4,
-0x93A5,0x93A6,0x93A7,0x93A8,0x93A9,0x93AA,0x93AB, 0,
-0x93AC,0x93AD,0x93AE,0x93AF,0x93B0,0x93B1,0x93B2,0x93B3,
-0x93B4,0x93B5,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA,0x93BB,
-0x93BC,0x93BD,0x93BE,0x93BF,0x93C0,0x93C1,0x93C2,0x93C3,
-0x93C4,0x93C5,0x93C6,0x93C7,0x93C8,0x93C9,0x93CB,0x93CC,
-0x93CD,0x5997,0x59CA,0x59AB,0x599E,0x59A4,0x59D2,0x59B2,
-0x59AF,0x59D7,0x59BE,0x5A05,0x5A06,0x59DD,0x5A08,0x59E3,
-0x59D8,0x59F9,0x5A0C,0x5A09,0x5A32,0x5A34,0x5A11,0x5A23,
-0x5A13,0x5A40,0x5A67,0x5A4A,0x5A55,0x5A3C,0x5A62,0x5A75,
-0x80EC,0x5AAA,0x5A9B,0x5A77,0x5A7A,0x5ABE,0x5AEB,0x5AB2,
-0x5AD2,0x5AD4,0x5AB8,0x5AE0,0x5AE3,0x5AF1,0x5AD6,0x5AE6,
-0x5AD8,0x5ADC,0x5B09,0x5B17,0x5B16,0x5B32,0x5B37,0x5B40,
-0x5C15,0x5C1C,0x5B5A,0x5B65,0x5B73,0x5B51,0x5B53,0x5B62,
-0x9A75,0x9A77,0x9A78,0x9A7A,0x9A7F,0x9A7D,0x9A80,0x9A81,
-0x9A85,0x9A88,0x9A8A,0x9A90,0x9A92,0x9A93,0x9A96,0x9A98,
-0x9A9B,0x9A9C,0x9A9D,0x9A9F,0x9AA0,0x9AA2,0x9AA3,0x9AA5,
-0x9AA7,0x7E9F,0x7EA1,0x7EA3,0x7EA5,0x7EA8,0x7EA9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x93CE,0x93CF,0x93D0,0x93D1,0x93D2,0x93D3,0x93D4,0x93D5,
-0x93D7,0x93D8,0x93D9,0x93DA,0x93DB,0x93DC,0x93DD,0x93DE,
-0x93DF,0x93E0,0x93E1,0x93E2,0x93E3,0x93E4,0x93E5,0x93E6,
-0x93E7,0x93E8,0x93E9,0x93EA,0x93EB,0x93EC,0x93ED,0x93EE,
-0x93EF,0x93F0,0x93F1,0x93F2,0x93F3,0x93F4,0x93F5,0x93F6,
-0x93F7,0x93F8,0x93F9,0x93FA,0x93FB,0x93FC,0x93FD,0x93FE,
-0x93FF,0x9400,0x9401,0x9402,0x9403,0x9404,0x9405,0x9406,
-0x9407,0x9408,0x9409,0x940A,0x940B,0x940C,0x940D, 0,
-0x940E,0x940F,0x9410,0x9411,0x9412,0x9413,0x9414,0x9415,
-0x9416,0x9417,0x9418,0x9419,0x941A,0x941B,0x941C,0x941D,
-0x941E,0x941F,0x9420,0x9421,0x9422,0x9423,0x9424,0x9425,
-0x9426,0x9427,0x9428,0x9429,0x942A,0x942B,0x942C,0x942D,
-0x942E,0x7EAD,0x7EB0,0x7EBE,0x7EC0,0x7EC1,0x7EC2,0x7EC9,
-0x7ECB,0x7ECC,0x7ED0,0x7ED4,0x7ED7,0x7EDB,0x7EE0,0x7EE1,
-0x7EE8,0x7EEB,0x7EEE,0x7EEF,0x7EF1,0x7EF2,0x7F0D,0x7EF6,
-0x7EFA,0x7EFB,0x7EFE,0x7F01,0x7F02,0x7F03,0x7F07,0x7F08,
-0x7F0B,0x7F0C,0x7F0F,0x7F11,0x7F12,0x7F17,0x7F19,0x7F1C,
-0x7F1B,0x7F1F,0x7F21,0x7F22,0x7F23,0x7F24,0x7F25,0x7F26,
-0x7F27,0x7F2A,0x7F2B,0x7F2C,0x7F2D,0x7F2F,0x7F30,0x7F31,
-0x7F32,0x7F33,0x7F35,0x5E7A,0x757F,0x5DDB,0x753E,0x9095,
-0x738E,0x7391,0x73AE,0x73A2,0x739F,0x73CF,0x73C2,0x73D1,
-0x73B7,0x73B3,0x73C0,0x73C9,0x73C8,0x73E5,0x73D9,0x987C,
-0x740A,0x73E9,0x73E7,0x73DE,0x73BA,0x73F2,0x740F,0x742A,
-0x745B,0x7426,0x7425,0x7428,0x7430,0x742E,0x742C, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x942F,0x9430,0x9431,0x9432,0x9433,0x9434,0x9435,0x9436,
-0x9437,0x9438,0x9439,0x943A,0x943B,0x943C,0x943D,0x943F,
-0x9440,0x9441,0x9442,0x9443,0x9444,0x9445,0x9446,0x9447,
-0x9448,0x9449,0x944A,0x944B,0x944C,0x944D,0x944E,0x944F,
-0x9450,0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457,
-0x9458,0x9459,0x945A,0x945B,0x945C,0x945D,0x945E,0x945F,
-0x9460,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467,
-0x9468,0x9469,0x946A,0x946C,0x946D,0x946E,0x946F, 0,
-0x9470,0x9471,0x9472,0x9473,0x9474,0x9475,0x9476,0x9477,
-0x9478,0x9479,0x947A,0x947B,0x947C,0x947D,0x947E,0x947F,
-0x9480,0x9481,0x9482,0x9483,0x9484,0x9491,0x9496,0x9498,
-0x94C7,0x94CF,0x94D3,0x94D4,0x94DA,0x94E6,0x94FB,0x951C,
-0x9520,0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,0x7459,
-0x7477,0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,0x7487,
-0x748B,0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,0x74BA,
-0x97EA,0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,0x6769,
-0x67A5,0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,0x67A8,
-0x679E,0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,0x67D8,
-0x680A,0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,0x67B3,
-0x67DD,0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,0x67FD,
-0x6832,0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,0x6864,
-0x6883,0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,0x683E,
-0x684A,0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,0x6893,
-0x686B,0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9527,0x9533,0x953D,0x9543,0x9548,0x954B,0x9555,0x955A,
-0x9560,0x956E,0x9574,0x9575,0x9577,0x9578,0x9579,0x957A,
-0x957B,0x957C,0x957D,0x957E,0x9580,0x9581,0x9582,0x9583,
-0x9584,0x9585,0x9586,0x9587,0x9588,0x9589,0x958A,0x958B,
-0x958C,0x958D,0x958E,0x958F,0x9590,0x9591,0x9592,0x9593,
-0x9594,0x9595,0x9596,0x9597,0x9598,0x9599,0x959A,0x959B,
-0x959C,0x959D,0x959E,0x959F,0x95A0,0x95A1,0x95A2,0x95A3,
-0x95A4,0x95A5,0x95A6,0x95A7,0x95A8,0x95A9,0x95AA, 0,
-0x95AB,0x95AC,0x95AD,0x95AE,0x95AF,0x95B0,0x95B1,0x95B2,
-0x95B3,0x95B4,0x95B5,0x95B6,0x95B7,0x95B8,0x95B9,0x95BA,
-0x95BB,0x95BC,0x95BD,0x95BE,0x95BF,0x95C0,0x95C1,0x95C2,
-0x95C3,0x95C4,0x95C5,0x95C6,0x95C7,0x95C8,0x95C9,0x95CA,
-0x95CB,0x6924,0x68F0,0x690B,0x6901,0x6957,0x68E3,0x6910,
-0x6971,0x6939,0x6960,0x6942,0x695D,0x6984,0x696B,0x6980,
-0x6998,0x6978,0x6934,0x69CC,0x6987,0x6988,0x69CE,0x6989,
-0x6966,0x6963,0x6979,0x699B,0x69A7,0x69BB,0x69AB,0x69AD,
-0x69D4,0x69B1,0x69C1,0x69CA,0x69DF,0x6995,0x69E0,0x698D,
-0x69FF,0x6A2F,0x69ED,0x6A17,0x6A18,0x6A65,0x69F2,0x6A44,
-0x6A3E,0x6AA0,0x6A50,0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D,
-0x6A28,0x6A58,0x6A7C,0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB,
-0x7337,0x7352,0x6B81,0x6B82,0x6B87,0x6B84,0x6B92,0x6B93,
-0x6B8D,0x6B9A,0x6B9B,0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71,
-0x8F72,0x8F73,0x8F75,0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A,
-0x8F7C,0x8F7E,0x8F81,0x8F82,0x8F84,0x8F87,0x8F8B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x95CC,0x95CD,0x95CE,0x95CF,0x95D0,0x95D1,0x95D2,0x95D3,
-0x95D4,0x95D5,0x95D6,0x95D7,0x95D8,0x95D9,0x95DA,0x95DB,
-0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1,0x95E2,0x95E3,
-0x95E4,0x95E5,0x95E6,0x95E7,0x95EC,0x95FF,0x9607,0x9613,
-0x9618,0x961B,0x961E,0x9620,0x9623,0x9624,0x9625,0x9626,
-0x9627,0x9628,0x9629,0x962B,0x962C,0x962D,0x962F,0x9630,
-0x9637,0x9638,0x9639,0x963A,0x963E,0x9641,0x9643,0x964A,
-0x964E,0x964F,0x9651,0x9652,0x9653,0x9656,0x9657, 0,
-0x9658,0x9659,0x965A,0x965C,0x965D,0x965E,0x9660,0x9663,
-0x9665,0x9666,0x966B,0x966D,0x966E,0x966F,0x9670,0x9671,
-0x9673,0x9678,0x9679,0x967A,0x967B,0x967C,0x967D,0x967E,
-0x967F,0x9680,0x9681,0x9682,0x9683,0x9684,0x9687,0x9689,
-0x968A,0x8F8D,0x8F8E,0x8F8F,0x8F98,0x8F9A,0x8ECE,0x620B,
-0x6217,0x621B,0x621F,0x6222,0x6221,0x6225,0x6224,0x622C,
-0x81E7,0x74EF,0x74F4,0x74FF,0x750F,0x7511,0x7513,0x6534,
-0x65EE,0x65EF,0x65F0,0x660A,0x6619,0x6772,0x6603,0x6615,
-0x6600,0x7085,0x66F7,0x661D,0x6634,0x6631,0x6636,0x6635,
-0x8006,0x665F,0x6654,0x6641,0x664F,0x6656,0x6661,0x6657,
-0x6677,0x6684,0x668C,0x66A7,0x669D,0x66BE,0x66DB,0x66DC,
-0x66E6,0x66E9,0x8D32,0x8D33,0x8D36,0x8D3B,0x8D3D,0x8D40,
-0x8D45,0x8D46,0x8D48,0x8D49,0x8D47,0x8D4D,0x8D55,0x8D59,
-0x89C7,0x89CA,0x89CB,0x89CC,0x89CE,0x89CF,0x89D0,0x89D1,
-0x726E,0x729F,0x725D,0x7266,0x726F,0x727E,0x727F,0x7284,
-0x728B,0x728D,0x728F,0x7292,0x6308,0x6332,0x63B0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x968C,0x968E,0x9691,0x9692,0x9693,0x9695,0x9696,0x969A,
-0x969B,0x969D,0x969E,0x969F,0x96A0,0x96A1,0x96A2,0x96A3,
-0x96A4,0x96A5,0x96A6,0x96A8,0x96A9,0x96AA,0x96AB,0x96AC,
-0x96AD,0x96AE,0x96AF,0x96B1,0x96B2,0x96B4,0x96B5,0x96B7,
-0x96B8,0x96BA,0x96BB,0x96BF,0x96C2,0x96C3,0x96C8,0x96CA,
-0x96CB,0x96D0,0x96D1,0x96D3,0x96D4,0x96D6,0x96D7,0x96D8,
-0x96D9,0x96DA,0x96DB,0x96DC,0x96DD,0x96DE,0x96DF,0x96E1,
-0x96E2,0x96E3,0x96E4,0x96E5,0x96E6,0x96E7,0x96EB, 0,
-0x96EC,0x96ED,0x96EE,0x96F0,0x96F1,0x96F2,0x96F4,0x96F5,
-0x96F8,0x96FA,0x96FB,0x96FC,0x96FD,0x96FF,0x9702,0x9703,
-0x9705,0x970A,0x970B,0x970C,0x9710,0x9711,0x9712,0x9714,
-0x9715,0x9717,0x9718,0x9719,0x971A,0x971B,0x971D,0x971F,
-0x9720,0x643F,0x64D8,0x8004,0x6BEA,0x6BF3,0x6BFD,0x6BF5,
-0x6BF9,0x6C05,0x6C07,0x6C06,0x6C0D,0x6C15,0x6C18,0x6C19,
-0x6C1A,0x6C21,0x6C29,0x6C24,0x6C2A,0x6C32,0x6535,0x6555,
-0x656B,0x724D,0x7252,0x7256,0x7230,0x8662,0x5216,0x809F,
-0x809C,0x8093,0x80BC,0x670A,0x80BD,0x80B1,0x80AB,0x80AD,
-0x80B4,0x80B7,0x80E7,0x80E8,0x80E9,0x80EA,0x80DB,0x80C2,
-0x80C4,0x80D9,0x80CD,0x80D7,0x6710,0x80DD,0x80EB,0x80F1,
-0x80F4,0x80ED,0x810D,0x810E,0x80F2,0x80FC,0x6715,0x8112,
-0x8C5A,0x8136,0x811E,0x812C,0x8118,0x8132,0x8148,0x814C,
-0x8153,0x8174,0x8159,0x815A,0x8171,0x8160,0x8169,0x817C,
-0x817D,0x816D,0x8167,0x584D,0x5AB5,0x8188,0x8182,0x8191,
-0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9721,0x9722,0x9723,0x9724,0x9725,0x9726,0x9727,0x9728,
-0x9729,0x972B,0x972C,0x972E,0x972F,0x9731,0x9733,0x9734,
-0x9735,0x9736,0x9737,0x973A,0x973B,0x973C,0x973D,0x973F,
-0x9740,0x9741,0x9742,0x9743,0x9744,0x9745,0x9746,0x9747,
-0x9748,0x9749,0x974A,0x974B,0x974C,0x974D,0x974E,0x974F,
-0x9750,0x9751,0x9754,0x9755,0x9757,0x9758,0x975A,0x975C,
-0x975D,0x975F,0x9763,0x9764,0x9766,0x9767,0x9768,0x976A,
-0x976B,0x976C,0x976D,0x976E,0x976F,0x9770,0x9771, 0,
-0x9772,0x9775,0x9777,0x9778,0x9779,0x977A,0x977B,0x977D,
-0x977E,0x977F,0x9780,0x9781,0x9782,0x9783,0x9784,0x9786,
-0x9787,0x9788,0x9789,0x978A,0x978C,0x978E,0x978F,0x9790,
-0x9793,0x9795,0x9796,0x9797,0x9799,0x979A,0x979B,0x979C,
-0x979D,0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,0x6B46,
-0x6B59,0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,0x6BB3,
-0x5F40,0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,0x65C6,
-0x65C4,0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,0x709C,
-0x7096,0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,0x70E8,
-0x70CA,0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,0x715C,
-0x7168,0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,0x71B3,
-0x71B5,0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,0x721D,
-0x7228,0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,0x6243,
-0x6248,0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,0x795C,
-0x7953,0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,0x797A,
-0x7985,0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x979E,0x979F,0x97A1,0x97A2,0x97A4,0x97A5,0x97A6,0x97A7,
-0x97A8,0x97A9,0x97AA,0x97AC,0x97AE,0x97B0,0x97B1,0x97B3,
-0x97B5,0x97B6,0x97B7,0x97B8,0x97B9,0x97BA,0x97BB,0x97BC,
-0x97BD,0x97BE,0x97BF,0x97C0,0x97C1,0x97C2,0x97C3,0x97C4,
-0x97C5,0x97C6,0x97C7,0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,
-0x97CD,0x97CE,0x97CF,0x97D0,0x97D1,0x97D2,0x97D3,0x97D4,
-0x97D5,0x97D6,0x97D7,0x97D8,0x97D9,0x97DA,0x97DB,0x97DC,
-0x97DD,0x97DE,0x97DF,0x97E0,0x97E1,0x97E2,0x97E3, 0,
-0x97E4,0x97E5,0x97E8,0x97EE,0x97EF,0x97F0,0x97F1,0x97F2,
-0x97F4,0x97F7,0x97F8,0x97F9,0x97FA,0x97FB,0x97FC,0x97FD,
-0x97FE,0x97FF,0x9800,0x9801,0x9802,0x9803,0x9804,0x9805,
-0x9806,0x9807,0x9808,0x9809,0x980A,0x980B,0x980C,0x980D,
-0x980E,0x603C,0x605D,0x605A,0x6067,0x6041,0x6059,0x6063,
-0x60AB,0x6106,0x610D,0x615D,0x61A9,0x619D,0x61CB,0x61D1,
-0x6206,0x8080,0x807F,0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8,
-0x7800,0x7809,0x7817,0x7818,0x7811,0x65AB,0x782D,0x781C,
-0x781D,0x7839,0x783A,0x783B,0x781F,0x783C,0x7825,0x782C,
-0x7823,0x7829,0x784E,0x786D,0x7856,0x7857,0x7826,0x7850,
-0x7847,0x784C,0x786A,0x789B,0x7893,0x789A,0x7887,0x789C,
-0x78A1,0x78A3,0x78B2,0x78B9,0x78A5,0x78D4,0x78D9,0x78C9,
-0x78EC,0x78F2,0x7905,0x78F4,0x7913,0x7924,0x791E,0x7934,
-0x9F9B,0x9EF9,0x9EFB,0x9EFC,0x76F1,0x7704,0x770D,0x76F9,
-0x7707,0x7708,0x771A,0x7722,0x7719,0x772D,0x7726,0x7735,
-0x7738,0x7750,0x7751,0x7747,0x7743,0x775A,0x7768, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x980F,0x9810,0x9811,0x9812,0x9813,0x9814,0x9815,0x9816,
-0x9817,0x9818,0x9819,0x981A,0x981B,0x981C,0x981D,0x981E,
-0x981F,0x9820,0x9821,0x9822,0x9823,0x9824,0x9825,0x9826,
-0x9827,0x9828,0x9829,0x982A,0x982B,0x982C,0x982D,0x982E,
-0x982F,0x9830,0x9831,0x9832,0x9833,0x9834,0x9835,0x9836,
-0x9837,0x9838,0x9839,0x983A,0x983B,0x983C,0x983D,0x983E,
-0x983F,0x9840,0x9841,0x9842,0x9843,0x9844,0x9845,0x9846,
-0x9847,0x9848,0x9849,0x984A,0x984B,0x984C,0x984D, 0,
-0x984E,0x984F,0x9850,0x9851,0x9852,0x9853,0x9854,0x9855,
-0x9856,0x9857,0x9858,0x9859,0x985A,0x985B,0x985C,0x985D,
-0x985E,0x985F,0x9860,0x9861,0x9862,0x9863,0x9864,0x9865,
-0x9866,0x9867,0x9868,0x9869,0x986A,0x986B,0x986C,0x986D,
-0x986E,0x7762,0x7765,0x777F,0x778D,0x777D,0x7780,0x778C,
-0x7791,0x779F,0x77A0,0x77B0,0x77B5,0x77BD,0x753A,0x7540,
-0x754E,0x754B,0x7548,0x755B,0x7572,0x7579,0x7583,0x7F58,
-0x7F61,0x7F5F,0x8A48,0x7F68,0x7F74,0x7F71,0x7F79,0x7F81,
-0x7F7E,0x76CD,0x76E5,0x8832,0x9485,0x9486,0x9487,0x948B,
-0x948A,0x948C,0x948D,0x948F,0x9490,0x9494,0x9497,0x9495,
-0x949A,0x949B,0x949C,0x94A3,0x94A4,0x94AB,0x94AA,0x94AD,
-0x94AC,0x94AF,0x94B0,0x94B2,0x94B4,0x94B6,0x94B7,0x94B8,
-0x94B9,0x94BA,0x94BC,0x94BD,0x94BF,0x94C4,0x94C8,0x94C9,
-0x94CA,0x94CB,0x94CC,0x94CD,0x94CE,0x94D0,0x94D1,0x94D2,
-0x94D5,0x94D6,0x94D7,0x94D9,0x94D8,0x94DB,0x94DE,0x94DF,
-0x94E0,0x94E2,0x94E4,0x94E5,0x94E7,0x94E8,0x94EA, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x986F,0x9870,0x9871,0x9872,0x9873,0x9874,0x988B,0x988E,
-0x9892,0x9895,0x9899,0x98A3,0x98A8,0x98A9,0x98AA,0x98AB,
-0x98AC,0x98AD,0x98AE,0x98AF,0x98B0,0x98B1,0x98B2,0x98B3,
-0x98B4,0x98B5,0x98B6,0x98B7,0x98B8,0x98B9,0x98BA,0x98BB,
-0x98BC,0x98BD,0x98BE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3,
-0x98C4,0x98C5,0x98C6,0x98C7,0x98C8,0x98C9,0x98CA,0x98CB,
-0x98CC,0x98CD,0x98CF,0x98D0,0x98D4,0x98D6,0x98D7,0x98DB,
-0x98DC,0x98DD,0x98E0,0x98E1,0x98E2,0x98E3,0x98E4, 0,
-0x98E5,0x98E6,0x98E9,0x98EA,0x98EB,0x98EC,0x98ED,0x98EE,
-0x98EF,0x98F0,0x98F1,0x98F2,0x98F3,0x98F4,0x98F5,0x98F6,
-0x98F7,0x98F8,0x98F9,0x98FA,0x98FB,0x98FC,0x98FD,0x98FE,
-0x98FF,0x9900,0x9901,0x9902,0x9903,0x9904,0x9905,0x9906,
-0x9907,0x94E9,0x94EB,0x94EE,0x94EF,0x94F3,0x94F4,0x94F5,
-0x94F7,0x94F9,0x94FC,0x94FD,0x94FF,0x9503,0x9502,0x9506,
-0x9507,0x9509,0x950A,0x950D,0x950E,0x950F,0x9512,0x9513,
-0x9514,0x9515,0x9516,0x9518,0x951B,0x951D,0x951E,0x951F,
-0x9522,0x952A,0x952B,0x9529,0x952C,0x9531,0x9532,0x9534,
-0x9536,0x9537,0x9538,0x953C,0x953E,0x953F,0x9542,0x9535,
-0x9544,0x9545,0x9546,0x9549,0x954C,0x954E,0x954F,0x9552,
-0x9553,0x9554,0x9556,0x9557,0x9558,0x9559,0x955B,0x955E,
-0x955F,0x955D,0x9561,0x9562,0x9564,0x9565,0x9566,0x9567,
-0x9568,0x9569,0x956A,0x956B,0x956C,0x956F,0x9571,0x9572,
-0x9573,0x953A,0x77E7,0x77EC,0x96C9,0x79D5,0x79ED,0x79E3,
-0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9908,0x9909,0x990A,0x990B,0x990C,0x990E,0x990F,0x9911,
-0x9912,0x9913,0x9914,0x9915,0x9916,0x9917,0x9918,0x9919,
-0x991A,0x991B,0x991C,0x991D,0x991E,0x991F,0x9920,0x9921,
-0x9922,0x9923,0x9924,0x9925,0x9926,0x9927,0x9928,0x9929,
-0x992A,0x992B,0x992C,0x992D,0x992F,0x9930,0x9931,0x9932,
-0x9933,0x9934,0x9935,0x9936,0x9937,0x9938,0x9939,0x993A,
-0x993B,0x993C,0x993D,0x993E,0x993F,0x9940,0x9941,0x9942,
-0x9943,0x9944,0x9945,0x9946,0x9947,0x9948,0x9949, 0,
-0x994A,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951,
-0x9952,0x9953,0x9956,0x9957,0x9958,0x9959,0x995A,0x995B,
-0x995C,0x995D,0x995E,0x995F,0x9960,0x9961,0x9962,0x9964,
-0x9966,0x9973,0x9978,0x9979,0x997B,0x997E,0x9982,0x9983,
-0x9989,0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,0x7688,
-0x768E,0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,0x9E20,
-0x9E22,0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,0x9E31,
-0x9E36,0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,0x9E42,
-0x9E44,0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,0x9E4E,
-0x9E51,0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,0x9E63,
-0x9E66,0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E71,
-0x9E6D,0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,0x75AC,
-0x75A3,0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,0x75C3,
-0x75C2,0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,0x75EB,
-0x75E7,0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,0x7605,
-0x760C,0x7617,0x760A,0x7625,0x7618,0x7615,0x7619, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x998C,0x998E,0x999A,0x999B,0x999C,0x999D,0x999E,0x999F,
-0x99A0,0x99A1,0x99A2,0x99A3,0x99A4,0x99A6,0x99A7,0x99A9,
-0x99AA,0x99AB,0x99AC,0x99AD,0x99AE,0x99AF,0x99B0,0x99B1,
-0x99B2,0x99B3,0x99B4,0x99B5,0x99B6,0x99B7,0x99B8,0x99B9,
-0x99BA,0x99BB,0x99BC,0x99BD,0x99BE,0x99BF,0x99C0,0x99C1,
-0x99C2,0x99C3,0x99C4,0x99C5,0x99C6,0x99C7,0x99C8,0x99C9,
-0x99CA,0x99CB,0x99CC,0x99CD,0x99CE,0x99CF,0x99D0,0x99D1,
-0x99D2,0x99D3,0x99D4,0x99D5,0x99D6,0x99D7,0x99D8, 0,
-0x99D9,0x99DA,0x99DB,0x99DC,0x99DD,0x99DE,0x99DF,0x99E0,
-0x99E1,0x99E2,0x99E3,0x99E4,0x99E5,0x99E6,0x99E7,0x99E8,
-0x99E9,0x99EA,0x99EB,0x99EC,0x99ED,0x99EE,0x99EF,0x99F0,
-0x99F1,0x99F2,0x99F3,0x99F4,0x99F5,0x99F6,0x99F7,0x99F8,
-0x99F9,0x761B,0x763C,0x7622,0x7620,0x7640,0x762D,0x7630,
-0x763F,0x7635,0x7643,0x763E,0x7633,0x764D,0x765E,0x7654,
-0x765C,0x7656,0x766B,0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79,
-0x7A80,0x7A86,0x7A88,0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8,
-0x7AAD,0x7AB3,0x8864,0x8869,0x8872,0x887D,0x887F,0x8882,
-0x88A2,0x88C6,0x88B7,0x88BC,0x88C9,0x88E2,0x88CE,0x88E3,
-0x88E5,0x88F1,0x891A,0x88FC,0x88E8,0x88FE,0x88F0,0x8921,
-0x8919,0x8913,0x891B,0x890A,0x8934,0x892B,0x8936,0x8941,
-0x8966,0x897B,0x758B,0x80E5,0x76B2,0x76B4,0x77DC,0x8012,
-0x8014,0x8016,0x801C,0x8020,0x8022,0x8025,0x8026,0x8027,
-0x8029,0x8028,0x8031,0x800B,0x8035,0x8043,0x8046,0x804D,
-0x8052,0x8069,0x8071,0x8983,0x9878,0x9880,0x9883, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x99FA,0x99FB,0x99FC,0x99FD,0x99FE,0x99FF,0x9A00,0x9A01,
-0x9A02,0x9A03,0x9A04,0x9A05,0x9A06,0x9A07,0x9A08,0x9A09,
-0x9A0A,0x9A0B,0x9A0C,0x9A0D,0x9A0E,0x9A0F,0x9A10,0x9A11,
-0x9A12,0x9A13,0x9A14,0x9A15,0x9A16,0x9A17,0x9A18,0x9A19,
-0x9A1A,0x9A1B,0x9A1C,0x9A1D,0x9A1E,0x9A1F,0x9A20,0x9A21,
-0x9A22,0x9A23,0x9A24,0x9A25,0x9A26,0x9A27,0x9A28,0x9A29,
-0x9A2A,0x9A2B,0x9A2C,0x9A2D,0x9A2E,0x9A2F,0x9A30,0x9A31,
-0x9A32,0x9A33,0x9A34,0x9A35,0x9A36,0x9A37,0x9A38, 0,
-0x9A39,0x9A3A,0x9A3B,0x9A3C,0x9A3D,0x9A3E,0x9A3F,0x9A40,
-0x9A41,0x9A42,0x9A43,0x9A44,0x9A45,0x9A46,0x9A47,0x9A48,
-0x9A49,0x9A4A,0x9A4B,0x9A4C,0x9A4D,0x9A4E,0x9A4F,0x9A50,
-0x9A51,0x9A52,0x9A53,0x9A54,0x9A55,0x9A56,0x9A57,0x9A58,
-0x9A59,0x9889,0x988C,0x988D,0x988F,0x9894,0x989A,0x989B,
-0x989E,0x989F,0x98A1,0x98A2,0x98A5,0x98A6,0x864D,0x8654,
-0x866C,0x866E,0x867F,0x867A,0x867C,0x867B,0x86A8,0x868D,
-0x868B,0x86AC,0x869D,0x86A7,0x86A3,0x86AA,0x8693,0x86A9,
-0x86B6,0x86C4,0x86B5,0x86CE,0x86B0,0x86BA,0x86B1,0x86AF,
-0x86C9,0x86CF,0x86B4,0x86E9,0x86F1,0x86F2,0x86ED,0x86F3,
-0x86D0,0x8713,0x86DE,0x86F4,0x86DF,0x86D8,0x86D1,0x8703,
-0x8707,0x86F8,0x8708,0x870A,0x870D,0x8709,0x8723,0x873B,
-0x871E,0x8725,0x872E,0x871A,0x873E,0x8748,0x8734,0x8731,
-0x8729,0x8737,0x873F,0x8782,0x8722,0x877D,0x877E,0x877B,
-0x8760,0x8770,0x874C,0x876E,0x878B,0x8753,0x8763,0x877C,
-0x8764,0x8759,0x8765,0x8793,0x87AF,0x87A8,0x87D2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9A5A,0x9A5B,0x9A5C,0x9A5D,0x9A5E,0x9A5F,0x9A60,0x9A61,
-0x9A62,0x9A63,0x9A64,0x9A65,0x9A66,0x9A67,0x9A68,0x9A69,
-0x9A6A,0x9A6B,0x9A72,0x9A83,0x9A89,0x9A8D,0x9A8E,0x9A94,
-0x9A95,0x9A99,0x9AA6,0x9AA9,0x9AAA,0x9AAB,0x9AAC,0x9AAD,
-0x9AAE,0x9AAF,0x9AB2,0x9AB3,0x9AB4,0x9AB5,0x9AB9,0x9ABB,
-0x9ABD,0x9ABE,0x9ABF,0x9AC3,0x9AC4,0x9AC6,0x9AC7,0x9AC8,
-0x9AC9,0x9ACA,0x9ACD,0x9ACE,0x9ACF,0x9AD0,0x9AD2,0x9AD4,
-0x9AD5,0x9AD6,0x9AD7,0x9AD9,0x9ADA,0x9ADB,0x9ADC, 0,
-0x9ADD,0x9ADE,0x9AE0,0x9AE2,0x9AE3,0x9AE4,0x9AE5,0x9AE7,
-0x9AE8,0x9AE9,0x9AEA,0x9AEC,0x9AEE,0x9AF0,0x9AF1,0x9AF2,
-0x9AF3,0x9AF4,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AFA,0x9AFC,
-0x9AFD,0x9AFE,0x9AFF,0x9B00,0x9B01,0x9B02,0x9B04,0x9B05,
-0x9B06,0x87C6,0x8788,0x8785,0x87AD,0x8797,0x8783,0x87AB,
-0x87E5,0x87AC,0x87B5,0x87B3,0x87CB,0x87D3,0x87BD,0x87D1,
-0x87C0,0x87CA,0x87DB,0x87EA,0x87E0,0x87EE,0x8816,0x8813,
-0x87FE,0x880A,0x881B,0x8821,0x8839,0x883C,0x7F36,0x7F42,
-0x7F44,0x7F45,0x8210,0x7AFA,0x7AFD,0x7B08,0x7B03,0x7B04,
-0x7B15,0x7B0A,0x7B2B,0x7B0F,0x7B47,0x7B38,0x7B2A,0x7B19,
-0x7B2E,0x7B31,0x7B20,0x7B25,0x7B24,0x7B33,0x7B3E,0x7B1E,
-0x7B58,0x7B5A,0x7B45,0x7B75,0x7B4C,0x7B5D,0x7B60,0x7B6E,
-0x7B7B,0x7B62,0x7B72,0x7B71,0x7B90,0x7BA6,0x7BA7,0x7BB8,
-0x7BAC,0x7B9D,0x7BA8,0x7B85,0x7BAA,0x7B9C,0x7BA2,0x7BAB,
-0x7BB4,0x7BD1,0x7BC1,0x7BCC,0x7BDD,0x7BDA,0x7BE5,0x7BE6,
-0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9B07,0x9B09,0x9B0A,0x9B0B,0x9B0C,0x9B0D,0x9B0E,0x9B10,
-0x9B11,0x9B12,0x9B14,0x9B15,0x9B16,0x9B17,0x9B18,0x9B19,
-0x9B1A,0x9B1B,0x9B1C,0x9B1D,0x9B1E,0x9B20,0x9B21,0x9B22,
-0x9B24,0x9B25,0x9B26,0x9B27,0x9B28,0x9B29,0x9B2A,0x9B2B,
-0x9B2C,0x9B2D,0x9B2E,0x9B30,0x9B31,0x9B33,0x9B34,0x9B35,
-0x9B36,0x9B37,0x9B38,0x9B39,0x9B3A,0x9B3D,0x9B3E,0x9B3F,
-0x9B40,0x9B46,0x9B4A,0x9B4B,0x9B4C,0x9B4E,0x9B50,0x9B52,
-0x9B53,0x9B55,0x9B56,0x9B57,0x9B58,0x9B59,0x9B5A, 0,
-0x9B5B,0x9B5C,0x9B5D,0x9B5E,0x9B5F,0x9B60,0x9B61,0x9B62,
-0x9B63,0x9B64,0x9B65,0x9B66,0x9B67,0x9B68,0x9B69,0x9B6A,
-0x9B6B,0x9B6C,0x9B6D,0x9B6E,0x9B6F,0x9B70,0x9B71,0x9B72,
-0x9B73,0x9B74,0x9B75,0x9B76,0x9B77,0x9B78,0x9B79,0x9B7A,
-0x9B7B,0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,0x81FE,
-0x8201,0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,0x8223,
-0x822D,0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,0x8234,
-0x823E,0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,0x8268,
-0x887E,0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,0x7F9F,
-0x7FA7,0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,0x7C9D,
-0x7C9C,0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,0x7CC7,
-0x7CCC,0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,0x66A8,
-0x7FBF,0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,0x7FEE,
-0x7FF3,0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,0x9EB8,
-0x9EB4,0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,0x8D6D,
-0x8C47,0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9B7C,0x9B7D,0x9B7E,0x9B7F,0x9B80,0x9B81,0x9B82,0x9B83,
-0x9B84,0x9B85,0x9B86,0x9B87,0x9B88,0x9B89,0x9B8A,0x9B8B,
-0x9B8C,0x9B8D,0x9B8E,0x9B8F,0x9B90,0x9B91,0x9B92,0x9B93,
-0x9B94,0x9B95,0x9B96,0x9B97,0x9B98,0x9B99,0x9B9A,0x9B9B,
-0x9B9C,0x9B9D,0x9B9E,0x9B9F,0x9BA0,0x9BA1,0x9BA2,0x9BA3,
-0x9BA4,0x9BA5,0x9BA6,0x9BA7,0x9BA8,0x9BA9,0x9BAA,0x9BAB,
-0x9BAC,0x9BAD,0x9BAE,0x9BAF,0x9BB0,0x9BB1,0x9BB2,0x9BB3,
-0x9BB4,0x9BB5,0x9BB6,0x9BB7,0x9BB8,0x9BB9,0x9BBA, 0,
-0x9BBB,0x9BBC,0x9BBD,0x9BBE,0x9BBF,0x9BC0,0x9BC1,0x9BC2,
-0x9BC3,0x9BC4,0x9BC5,0x9BC6,0x9BC7,0x9BC8,0x9BC9,0x9BCA,
-0x9BCB,0x9BCC,0x9BCD,0x9BCE,0x9BCF,0x9BD0,0x9BD1,0x9BD2,
-0x9BD3,0x9BD4,0x9BD5,0x9BD6,0x9BD7,0x9BD8,0x9BD9,0x9BDA,
-0x9BDB,0x9162,0x9161,0x9170,0x9169,0x916F,0x917D,0x917E,
-0x9172,0x9174,0x9179,0x918C,0x9185,0x9190,0x918D,0x9191,
-0x91A2,0x91A3,0x91AA,0x91AD,0x91AE,0x91AF,0x91B5,0x91B4,
-0x91BA,0x8C55,0x9E7E,0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69,
-0x8DB5,0x8DBF,0x8DBC,0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA,
-0x8DDE,0x8DCE,0x8DCF,0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8,
-0x8DE3,0x8DF9,0x8DFB,0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D,
-0x8E1F,0x8E2C,0x8E2E,0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39,
-0x8E35,0x8E3D,0x8E31,0x8E49,0x8E41,0x8E42,0x8E51,0x8E52,
-0x8E4A,0x8E70,0x8E76,0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F,
-0x8E94,0x8E90,0x8E9C,0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85,
-0x8C98,0x8C94,0x659B,0x89D6,0x89DE,0x89DA,0x89DC, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9BDC,0x9BDD,0x9BDE,0x9BDF,0x9BE0,0x9BE1,0x9BE2,0x9BE3,
-0x9BE4,0x9BE5,0x9BE6,0x9BE7,0x9BE8,0x9BE9,0x9BEA,0x9BEB,
-0x9BEC,0x9BED,0x9BEE,0x9BEF,0x9BF0,0x9BF1,0x9BF2,0x9BF3,
-0x9BF4,0x9BF5,0x9BF6,0x9BF7,0x9BF8,0x9BF9,0x9BFA,0x9BFB,
-0x9BFC,0x9BFD,0x9BFE,0x9BFF,0x9C00,0x9C01,0x9C02,0x9C03,
-0x9C04,0x9C05,0x9C06,0x9C07,0x9C08,0x9C09,0x9C0A,0x9C0B,
-0x9C0C,0x9C0D,0x9C0E,0x9C0F,0x9C10,0x9C11,0x9C12,0x9C13,
-0x9C14,0x9C15,0x9C16,0x9C17,0x9C18,0x9C19,0x9C1A, 0,
-0x9C1B,0x9C1C,0x9C1D,0x9C1E,0x9C1F,0x9C20,0x9C21,0x9C22,
-0x9C23,0x9C24,0x9C25,0x9C26,0x9C27,0x9C28,0x9C29,0x9C2A,
-0x9C2B,0x9C2C,0x9C2D,0x9C2E,0x9C2F,0x9C30,0x9C31,0x9C32,
-0x9C33,0x9C34,0x9C35,0x9C36,0x9C37,0x9C38,0x9C39,0x9C3A,
-0x9C3B,0x89E5,0x89EB,0x89EF,0x8A3E,0x8B26,0x9753,0x96E9,
-0x96F3,0x96EF,0x9706,0x9701,0x9708,0x970F,0x970E,0x972A,
-0x972D,0x9730,0x973E,0x9F80,0x9F83,0x9F85,0x9F86,0x9F87,
-0x9F88,0x9F89,0x9F8A,0x9F8C,0x9EFE,0x9F0B,0x9F0D,0x96B9,
-0x96BC,0x96BD,0x96CE,0x96D2,0x77BF,0x96E0,0x928E,0x92AE,
-0x92C8,0x933E,0x936A,0x93CA,0x938F,0x943E,0x946B,0x9C7F,
-0x9C82,0x9C85,0x9C86,0x9C87,0x9C88,0x7A23,0x9C8B,0x9C8E,
-0x9C90,0x9C91,0x9C92,0x9C94,0x9C95,0x9C9A,0x9C9B,0x9C9E,
-0x9C9F,0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA5,0x9CA6,0x9CA7,
-0x9CA8,0x9CA9,0x9CAB,0x9CAD,0x9CAE,0x9CB0,0x9CB1,0x9CB2,
-0x9CB3,0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CBA,0x9CBB,0x9CBC,
-0x9CBD,0x9CC4,0x9CC5,0x9CC6,0x9CC7,0x9CCA,0x9CCB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9C3C,0x9C3D,0x9C3E,0x9C3F,0x9C40,0x9C41,0x9C42,0x9C43,
-0x9C44,0x9C45,0x9C46,0x9C47,0x9C48,0x9C49,0x9C4A,0x9C4B,
-0x9C4C,0x9C4D,0x9C4E,0x9C4F,0x9C50,0x9C51,0x9C52,0x9C53,
-0x9C54,0x9C55,0x9C56,0x9C57,0x9C58,0x9C59,0x9C5A,0x9C5B,
-0x9C5C,0x9C5D,0x9C5E,0x9C5F,0x9C60,0x9C61,0x9C62,0x9C63,
-0x9C64,0x9C65,0x9C66,0x9C67,0x9C68,0x9C69,0x9C6A,0x9C6B,
-0x9C6C,0x9C6D,0x9C6E,0x9C6F,0x9C70,0x9C71,0x9C72,0x9C73,
-0x9C74,0x9C75,0x9C76,0x9C77,0x9C78,0x9C79,0x9C7A, 0,
-0x9C7B,0x9C7D,0x9C7E,0x9C80,0x9C83,0x9C84,0x9C89,0x9C8A,
-0x9C8C,0x9C8F,0x9C93,0x9C96,0x9C97,0x9C98,0x9C99,0x9C9D,
-0x9CAA,0x9CAC,0x9CAF,0x9CB9,0x9CBE,0x9CBF,0x9CC0,0x9CC1,
-0x9CC2,0x9CC8,0x9CC9,0x9CD1,0x9CD2,0x9CDA,0x9CDB,0x9CE0,
-0x9CE1,0x9CCC,0x9CCD,0x9CCE,0x9CCF,0x9CD0,0x9CD3,0x9CD4,
-0x9CD5,0x9CD7,0x9CD8,0x9CD9,0x9CDC,0x9CDD,0x9CDF,0x9CE2,
-0x977C,0x9785,0x9791,0x9792,0x9794,0x97AF,0x97AB,0x97A3,
-0x97B2,0x97B4,0x9AB1,0x9AB0,0x9AB7,0x9E58,0x9AB6,0x9ABA,
-0x9ABC,0x9AC1,0x9AC0,0x9AC5,0x9AC2,0x9ACB,0x9ACC,0x9AD1,
-0x9B45,0x9B43,0x9B47,0x9B49,0x9B48,0x9B4D,0x9B51,0x98E8,
-0x990D,0x992E,0x9955,0x9954,0x9ADF,0x9AE1,0x9AE6,0x9AEF,
-0x9AEB,0x9AFB,0x9AED,0x9AF9,0x9B08,0x9B0F,0x9B13,0x9B1F,
-0x9B23,0x9EBD,0x9EBE,0x7E3B,0x9E82,0x9E87,0x9E88,0x9E8B,
-0x9E92,0x93D6,0x9E9D,0x9E9F,0x9EDB,0x9EDC,0x9EDD,0x9EE0,
-0x9EDF,0x9EE2,0x9EE9,0x9EE7,0x9EE5,0x9EEA,0x9EEF,0x9F22,
-0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9CE3,0x9CE4,0x9CE5,0x9CE6,0x9CE7,0x9CE8,0x9CE9,0x9CEA,
-0x9CEB,0x9CEC,0x9CED,0x9CEE,0x9CEF,0x9CF0,0x9CF1,0x9CF2,
-0x9CF3,0x9CF4,0x9CF5,0x9CF6,0x9CF7,0x9CF8,0x9CF9,0x9CFA,
-0x9CFB,0x9CFC,0x9CFD,0x9CFE,0x9CFF,0x9D00,0x9D01,0x9D02,
-0x9D03,0x9D04,0x9D05,0x9D06,0x9D07,0x9D08,0x9D09,0x9D0A,
-0x9D0B,0x9D0C,0x9D0D,0x9D0E,0x9D0F,0x9D10,0x9D11,0x9D12,
-0x9D13,0x9D14,0x9D15,0x9D16,0x9D17,0x9D18,0x9D19,0x9D1A,
-0x9D1B,0x9D1C,0x9D1D,0x9D1E,0x9D1F,0x9D20,0x9D21, 0,
-0x9D22,0x9D23,0x9D24,0x9D25,0x9D26,0x9D27,0x9D28,0x9D29,
-0x9D2A,0x9D2B,0x9D2C,0x9D2D,0x9D2E,0x9D2F,0x9D30,0x9D31,
-0x9D32,0x9D33,0x9D34,0x9D35,0x9D36,0x9D37,0x9D38,0x9D39,
-0x9D3A,0x9D3B,0x9D3C,0x9D3D,0x9D3E,0x9D3F,0x9D40,0x9D41,
-0x9D42, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9D43,0x9D44,0x9D45,0x9D46,0x9D47,0x9D48,0x9D49,0x9D4A,
-0x9D4B,0x9D4C,0x9D4D,0x9D4E,0x9D4F,0x9D50,0x9D51,0x9D52,
-0x9D53,0x9D54,0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0x9D5A,
-0x9D5B,0x9D5C,0x9D5D,0x9D5E,0x9D5F,0x9D60,0x9D61,0x9D62,
-0x9D63,0x9D64,0x9D65,0x9D66,0x9D67,0x9D68,0x9D69,0x9D6A,
-0x9D6B,0x9D6C,0x9D6D,0x9D6E,0x9D6F,0x9D70,0x9D71,0x9D72,
-0x9D73,0x9D74,0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A,
-0x9D7B,0x9D7C,0x9D7D,0x9D7E,0x9D7F,0x9D80,0x9D81, 0,
-0x9D82,0x9D83,0x9D84,0x9D85,0x9D86,0x9D87,0x9D88,0x9D89,
-0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,0x9D90,0x9D91,
-0x9D92,0x9D93,0x9D94,0x9D95,0x9D96,0x9D97,0x9D98,0x9D99,
-0x9D9A,0x9D9B,0x9D9C,0x9D9D,0x9D9E,0x9D9F,0x9DA0,0x9DA1,
-0x9DA2, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9DA3,0x9DA4,0x9DA5,0x9DA6,0x9DA7,0x9DA8,0x9DA9,0x9DAA,
-0x9DAB,0x9DAC,0x9DAD,0x9DAE,0x9DAF,0x9DB0,0x9DB1,0x9DB2,
-0x9DB3,0x9DB4,0x9DB5,0x9DB6,0x9DB7,0x9DB8,0x9DB9,0x9DBA,
-0x9DBB,0x9DBC,0x9DBD,0x9DBE,0x9DBF,0x9DC0,0x9DC1,0x9DC2,
-0x9DC3,0x9DC4,0x9DC5,0x9DC6,0x9DC7,0x9DC8,0x9DC9,0x9DCA,
-0x9DCB,0x9DCC,0x9DCD,0x9DCE,0x9DCF,0x9DD0,0x9DD1,0x9DD2,
-0x9DD3,0x9DD4,0x9DD5,0x9DD6,0x9DD7,0x9DD8,0x9DD9,0x9DDA,
-0x9DDB,0x9DDC,0x9DDD,0x9DDE,0x9DDF,0x9DE0,0x9DE1, 0,
-0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6,0x9DE7,0x9DE8,0x9DE9,
-0x9DEA,0x9DEB,0x9DEC,0x9DED,0x9DEE,0x9DEF,0x9DF0,0x9DF1,
-0x9DF2,0x9DF3,0x9DF4,0x9DF5,0x9DF6,0x9DF7,0x9DF8,0x9DF9,
-0x9DFA,0x9DFB,0x9DFC,0x9DFD,0x9DFE,0x9DFF,0x9E00,0x9E01,
-0x9E02, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9E03,0x9E04,0x9E05,0x9E06,0x9E07,0x9E08,0x9E09,0x9E0A,
-0x9E0B,0x9E0C,0x9E0D,0x9E0E,0x9E0F,0x9E10,0x9E11,0x9E12,
-0x9E13,0x9E14,0x9E15,0x9E16,0x9E17,0x9E18,0x9E19,0x9E1A,
-0x9E1B,0x9E1C,0x9E1D,0x9E1E,0x9E24,0x9E27,0x9E2E,0x9E30,
-0x9E34,0x9E3B,0x9E3C,0x9E40,0x9E4D,0x9E50,0x9E52,0x9E53,
-0x9E54,0x9E56,0x9E59,0x9E5D,0x9E5F,0x9E60,0x9E61,0x9E62,
-0x9E65,0x9E6E,0x9E6F,0x9E72,0x9E74,0x9E75,0x9E76,0x9E77,
-0x9E78,0x9E79,0x9E7A,0x9E7B,0x9E7C,0x9E7D,0x9E80, 0,
-0x9E81,0x9E83,0x9E84,0x9E85,0x9E86,0x9E89,0x9E8A,0x9E8C,
-0x9E8D,0x9E8E,0x9E8F,0x9E90,0x9E91,0x9E94,0x9E95,0x9E96,
-0x9E97,0x9E98,0x9E99,0x9E9A,0x9E9B,0x9E9C,0x9E9E,0x9EA0,
-0x9EA1,0x9EA2,0x9EA3,0x9EA4,0x9EA5,0x9EA7,0x9EA8,0x9EA9,
-0x9EAA, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9EAB,0x9EAC,0x9EAD,0x9EAE,0x9EAF,0x9EB0,0x9EB1,0x9EB2,
-0x9EB3,0x9EB5,0x9EB6,0x9EB7,0x9EB9,0x9EBA,0x9EBC,0x9EBF,
-0x9EC0,0x9EC1,0x9EC2,0x9EC3,0x9EC5,0x9EC6,0x9EC7,0x9EC8,
-0x9ECA,0x9ECB,0x9ECC,0x9ED0,0x9ED2,0x9ED3,0x9ED5,0x9ED6,
-0x9ED7,0x9ED9,0x9EDA,0x9EDE,0x9EE1,0x9EE3,0x9EE4,0x9EE6,
-0x9EE8,0x9EEB,0x9EEC,0x9EED,0x9EEE,0x9EF0,0x9EF1,0x9EF2,
-0x9EF3,0x9EF4,0x9EF5,0x9EF6,0x9EF7,0x9EF8,0x9EFA,0x9EFD,
-0x9EFF,0x9F00,0x9F01,0x9F02,0x9F03,0x9F04,0x9F05, 0,
-0x9F06,0x9F07,0x9F08,0x9F09,0x9F0A,0x9F0C,0x9F0F,0x9F11,
-0x9F12,0x9F14,0x9F15,0x9F16,0x9F18,0x9F1A,0x9F1B,0x9F1C,
-0x9F1D,0x9F1E,0x9F1F,0x9F21,0x9F23,0x9F24,0x9F25,0x9F26,
-0x9F27,0x9F28,0x9F29,0x9F2A,0x9F2B,0x9F2D,0x9F2E,0x9F30,
-0x9F31, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0x9F32,0x9F33,0x9F34,0x9F35,0x9F36,0x9F38,0x9F3A,0x9F3C,
-0x9F3F,0x9F40,0x9F41,0x9F42,0x9F43,0x9F45,0x9F46,0x9F47,
-0x9F48,0x9F49,0x9F4A,0x9F4B,0x9F4C,0x9F4D,0x9F4E,0x9F4F,
-0x9F52,0x9F53,0x9F54,0x9F55,0x9F56,0x9F57,0x9F58,0x9F59,
-0x9F5A,0x9F5B,0x9F5C,0x9F5D,0x9F5E,0x9F5F,0x9F60,0x9F61,
-0x9F62,0x9F63,0x9F64,0x9F65,0x9F66,0x9F67,0x9F68,0x9F69,
-0x9F6A,0x9F6B,0x9F6C,0x9F6D,0x9F6E,0x9F6F,0x9F70,0x9F71,
-0x9F72,0x9F73,0x9F74,0x9F75,0x9F76,0x9F77,0x9F78, 0,
-0x9F79,0x9F7A,0x9F7B,0x9F7C,0x9F7D,0x9F7E,0x9F81,0x9F82,
-0x9F8D,0x9F8E,0x9F8F,0x9F90,0x9F91,0x9F92,0x9F93,0x9F94,
-0x9F95,0x9F96,0x9F97,0x9F98,0x9F9C,0x9F9D,0x9F9E,0x9FA1,
-0x9FA2,0x9FA3,0x9FA4,0x9FA5,0xF92C,0xF979,0xF995,0xF9E7,
-0xF9F1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFA0C,0xFA0D,0xFA0E,0xFA0F,0xFA11,0xFA13,0xFA14,0xFA18,
-0xFA1F,0xFA20,0xFA21,0xFA23,0xFA24,0xFA27,0xFA28,0xFA29
-};
-
-static int func_gbk_uni_onechar(int code){
- if ((code>=0x8140)&&(code<=0xFE4F))
- return(tab_gbk_uni0[code-0x8140]);
- return(0);
-}
-
-
-
-/* page 0 0x00A4-0x0451 */
-static uint16 tab_uni_gbk0[]={
-0xA1E8, 0, 0,0xA1EC,0xA1A7, 0, 0, 0,
- 0, 0, 0, 0,0xA1E3,0xA1C0, 0, 0,
- 0, 0, 0,0xA1A4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA1C1, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA8A4,0xA8A2, 0, 0,
- 0, 0, 0, 0,0xA8A8,0xA8A6,0xA8BA, 0,
-0xA8AC,0xA8AA, 0, 0, 0, 0,0xA8B0,0xA8AE,
- 0, 0, 0,0xA1C2, 0,0xA8B4,0xA8B2, 0,
-0xA8B9, 0, 0, 0, 0,0xA8A1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA8A5,
- 0, 0, 0, 0, 0, 0, 0,0xA8A7,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA8A9,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA8BD, 0, 0, 0,0xA8BE, 0, 0, 0,
- 0,0xA8AD, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA8B1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA8A3, 0,0xA8AB, 0,0xA8AF, 0,
-0xA8B3, 0,0xA8B5, 0,0xA8B6, 0,0xA8B7, 0,
-0xA8B8, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA8BB, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA8C0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA1A6, 0,0xA1A5,0xA840,0xA841,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA842, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA6A1,0xA6A2,0xA6A3,
-0xA6A4,0xA6A5,0xA6A6,0xA6A7,0xA6A8,0xA6A9,0xA6AA,0xA6AB,
-0xA6AC,0xA6AD,0xA6AE,0xA6AF,0xA6B0,0xA6B1, 0,0xA6B2,
-0xA6B3,0xA6B4,0xA6B5,0xA6B6,0xA6B7,0xA6B8, 0, 0,
- 0, 0, 0, 0, 0,0xA6C1,0xA6C2,0xA6C3,
-0xA6C4,0xA6C5,0xA6C6,0xA6C7,0xA6C8,0xA6C9,0xA6CA,0xA6CB,
-0xA6CC,0xA6CD,0xA6CE,0xA6CF,0xA6D0,0xA6D1, 0,0xA6D2,
-0xA6D3,0xA6D4,0xA6D5,0xA6D6,0xA6D7,0xA6D8, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA7A7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA7A1,0xA7A2,0xA7A3,0xA7A4,
-0xA7A5,0xA7A6,0xA7A8,0xA7A9,0xA7AA,0xA7AB,0xA7AC,0xA7AD,
-0xA7AE,0xA7AF,0xA7B0,0xA7B1,0xA7B2,0xA7B3,0xA7B4,0xA7B5,
-0xA7B6,0xA7B7,0xA7B8,0xA7B9,0xA7BA,0xA7BB,0xA7BC,0xA7BD,
-0xA7BE,0xA7BF,0xA7C0,0xA7C1,0xA7D1,0xA7D2,0xA7D3,0xA7D4,
-0xA7D5,0xA7D6,0xA7D8,0xA7D9,0xA7DA,0xA7DB,0xA7DC,0xA7DD,
-0xA7DE,0xA7DF,0xA7E0,0xA7E1,0xA7E2,0xA7E3,0xA7E4,0xA7E5,
-0xA7E6,0xA7E7,0xA7E8,0xA7E9,0xA7EA,0xA7EB,0xA7EC,0xA7ED,
-0xA7EE,0xA7EF,0xA7F0,0xA7F1, 0,0xA7D7};
-
-/* page 1 0x2010-0x2312 */
-static uint16 tab_uni_gbk1[]={
-0xA95C, 0, 0,0xA843,0xA1AA,0xA844,0xA1AC, 0,
-0xA1AE,0xA1AF, 0, 0,0xA1B0,0xA1B1, 0, 0,
- 0, 0, 0, 0, 0,0xA845,0xA1AD, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1EB, 0,0xA1E4,0xA1E5, 0,0xA846, 0, 0,
- 0, 0, 0,0xA1F9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA1E6, 0,0xA847, 0, 0,
- 0,0xA848, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA1ED, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA959, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA2F1,0xA2F2,0xA2F3,0xA2F4,0xA2F5,0xA2F6,0xA2F7,0xA2F8,
-0xA2F9,0xA2FA,0xA2FB,0xA2FC, 0, 0, 0, 0,
-0xA2A1,0xA2A2,0xA2A3,0xA2A4,0xA2A5,0xA2A6,0xA2A7,0xA2A8,
-0xA2A9,0xA2AA, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1FB,0xA1FC,0xA1FA,0xA1FD, 0, 0,0xA849,0xA84A,
-0xA84B,0xA84C, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1CA, 0, 0, 0, 0, 0, 0,0xA1C7,
- 0,0xA1C6, 0, 0, 0,0xA84D, 0, 0,
- 0, 0,0xA1CC, 0, 0,0xA1D8,0xA1DE,0xA84E,
-0xA1CF, 0, 0,0xA84F, 0,0xA1CE, 0,0xA1C4,
-0xA1C5,0xA1C9,0xA1C8,0xA1D2, 0, 0,0xA1D3, 0,
- 0, 0, 0, 0,0xA1E0,0xA1DF,0xA1C3,0xA1CB,
- 0, 0, 0, 0, 0,0xA1D7, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1D6, 0, 0, 0,0xA1D5, 0, 0, 0,
- 0, 0,0xA850, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1D9,0xA1D4, 0, 0,0xA1DC,0xA1DD,0xA851,0xA852,
- 0, 0, 0, 0, 0, 0,0xA1DA,0xA1DB,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA892, 0, 0,
- 0,0xA1D1, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1CD, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,0xA853,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA1D0};
-
-/* page 2 0x2460-0x2642 */
-static uint16 tab_uni_gbk2[]={
-0xA2D9,0xA2DA,0xA2DB,0xA2DC,0xA2DD,0xA2DE,0xA2DF,0xA2E0,
-0xA2E1,0xA2E2, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA2C5,0xA2C6,0xA2C7,0xA2C8,
-0xA2C9,0xA2CA,0xA2CB,0xA2CC,0xA2CD,0xA2CE,0xA2CF,0xA2D0,
-0xA2D1,0xA2D2,0xA2D3,0xA2D4,0xA2D5,0xA2D6,0xA2D7,0xA2D8,
-0xA2B1,0xA2B2,0xA2B3,0xA2B4,0xA2B5,0xA2B6,0xA2B7,0xA2B8,
-0xA2B9,0xA2BA,0xA2BB,0xA2BC,0xA2BD,0xA2BE,0xA2BF,0xA2C0,
-0xA2C1,0xA2C2,0xA2C3,0xA2C4, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA9A4,0xA9A5,0xA9A6,0xA9A7,0xA9A8,0xA9A9,0xA9AA,0xA9AB,
-0xA9AC,0xA9AD,0xA9AE,0xA9AF,0xA9B0,0xA9B1,0xA9B2,0xA9B3,
-0xA9B4,0xA9B5,0xA9B6,0xA9B7,0xA9B8,0xA9B9,0xA9BA,0xA9BB,
-0xA9BC,0xA9BD,0xA9BE,0xA9BF,0xA9C0,0xA9C1,0xA9C2,0xA9C3,
-0xA9C4,0xA9C5,0xA9C6,0xA9C7,0xA9C8,0xA9C9,0xA9CA,0xA9CB,
-0xA9CC,0xA9CD,0xA9CE,0xA9CF,0xA9D0,0xA9D1,0xA9D2,0xA9D3,
-0xA9D4,0xA9D5,0xA9D6,0xA9D7,0xA9D8,0xA9D9,0xA9DA,0xA9DB,
-0xA9DC,0xA9DD,0xA9DE,0xA9DF,0xA9E0,0xA9E1,0xA9E2,0xA9E3,
-0xA9E4,0xA9E5,0xA9E6,0xA9E7,0xA9E8,0xA9E9,0xA9EA,0xA9EB,
-0xA9EC,0xA9ED,0xA9EE,0xA9EF, 0, 0, 0, 0,
-0xA854,0xA855,0xA856,0xA857,0xA858,0xA859,0xA85A,0xA85B,
-0xA85C,0xA85D,0xA85E,0xA85F,0xA860,0xA861,0xA862,0xA863,
-0xA864,0xA865,0xA866,0xA867,0xA868,0xA869,0xA86A,0xA86B,
-0xA86C,0xA86D,0xA86E,0xA86F,0xA870,0xA871,0xA872,0xA873,
-0xA874,0xA875,0xA876,0xA877, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA878,0xA879,0xA87A,0xA87B,0xA87C,0xA87D,0xA87E,
-0xA880,0xA881,0xA882,0xA883,0xA884,0xA885,0xA886,0xA887,
- 0, 0, 0,0xA888,0xA889,0xA88A, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1F6,0xA1F5, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA1F8,0xA1F7, 0, 0, 0, 0,
- 0, 0, 0, 0,0xA88B,0xA88C, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA1F4,0xA1F3,
- 0, 0, 0,0xA1F0, 0, 0,0xA1F2,0xA1F1,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,0xA88D,0xA88E,0xA88F,0xA890, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xA1EF,0xA1EE, 0,
- 0,0xA891, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1E2, 0,0xA1E1};
-
-/* page 3 0x3000-0x3129 */
-static uint16 tab_uni_gbk3[]={
-0xA1A1,0xA1A2,0xA1A3,0xA1A8, 0,0xA1A9,0xA965,0xA996,
-0xA1B4,0xA1B5,0xA1B6,0xA1B7,0xA1B8,0xA1B9,0xA1BA,0xA1BB,
-0xA1BE,0xA1BF,0xA893,0xA1FE,0xA1B2,0xA1B3,0xA1BC,0xA1BD,
- 0, 0, 0, 0, 0,0xA894,0xA895, 0,
- 0,0xA940,0xA941,0xA942,0xA943,0xA944,0xA945,0xA946,
-0xA947,0xA948, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA4A1,0xA4A2,0xA4A3,0xA4A4,0xA4A5,0xA4A6,0xA4A7,
-0xA4A8,0xA4A9,0xA4AA,0xA4AB,0xA4AC,0xA4AD,0xA4AE,0xA4AF,
-0xA4B0,0xA4B1,0xA4B2,0xA4B3,0xA4B4,0xA4B5,0xA4B6,0xA4B7,
-0xA4B8,0xA4B9,0xA4BA,0xA4BB,0xA4BC,0xA4BD,0xA4BE,0xA4BF,
-0xA4C0,0xA4C1,0xA4C2,0xA4C3,0xA4C4,0xA4C5,0xA4C6,0xA4C7,
-0xA4C8,0xA4C9,0xA4CA,0xA4CB,0xA4CC,0xA4CD,0xA4CE,0xA4CF,
-0xA4D0,0xA4D1,0xA4D2,0xA4D3,0xA4D4,0xA4D5,0xA4D6,0xA4D7,
-0xA4D8,0xA4D9,0xA4DA,0xA4DB,0xA4DC,0xA4DD,0xA4DE,0xA4DF,
-0xA4E0,0xA4E1,0xA4E2,0xA4E3,0xA4E4,0xA4E5,0xA4E6,0xA4E7,
-0xA4E8,0xA4E9,0xA4EA,0xA4EB,0xA4EC,0xA4ED,0xA4EE,0xA4EF,
-0xA4F0,0xA4F1,0xA4F2,0xA4F3, 0, 0, 0, 0,
- 0, 0, 0,0xA961,0xA962,0xA966,0xA967, 0,
- 0,0xA5A1,0xA5A2,0xA5A3,0xA5A4,0xA5A5,0xA5A6,0xA5A7,
-0xA5A8,0xA5A9,0xA5AA,0xA5AB,0xA5AC,0xA5AD,0xA5AE,0xA5AF,
-0xA5B0,0xA5B1,0xA5B2,0xA5B3,0xA5B4,0xA5B5,0xA5B6,0xA5B7,
-0xA5B8,0xA5B9,0xA5BA,0xA5BB,0xA5BC,0xA5BD,0xA5BE,0xA5BF,
-0xA5C0,0xA5C1,0xA5C2,0xA5C3,0xA5C4,0xA5C5,0xA5C6,0xA5C7,
-0xA5C8,0xA5C9,0xA5CA,0xA5CB,0xA5CC,0xA5CD,0xA5CE,0xA5CF,
-0xA5D0,0xA5D1,0xA5D2,0xA5D3,0xA5D4,0xA5D5,0xA5D6,0xA5D7,
-0xA5D8,0xA5D9,0xA5DA,0xA5DB,0xA5DC,0xA5DD,0xA5DE,0xA5DF,
-0xA5E0,0xA5E1,0xA5E2,0xA5E3,0xA5E4,0xA5E5,0xA5E6,0xA5E7,
-0xA5E8,0xA5E9,0xA5EA,0xA5EB,0xA5EC,0xA5ED,0xA5EE,0xA5EF,
-0xA5F0,0xA5F1,0xA5F2,0xA5F3,0xA5F4,0xA5F5,0xA5F6, 0,
- 0, 0, 0, 0,0xA960,0xA963,0xA964, 0,
- 0, 0, 0, 0, 0,0xA8C5,0xA8C6,0xA8C7,
-0xA8C8,0xA8C9,0xA8CA,0xA8CB,0xA8CC,0xA8CD,0xA8CE,0xA8CF,
-0xA8D0,0xA8D1,0xA8D2,0xA8D3,0xA8D4,0xA8D5,0xA8D6,0xA8D7,
-0xA8D8,0xA8D9,0xA8DA,0xA8DB,0xA8DC,0xA8DD,0xA8DE,0xA8DF,
-0xA8E0,0xA8E1,0xA8E2,0xA8E3,0xA8E4,0xA8E5,0xA8E6,0xA8E7,
-0xA8E8,0xA8E9};
-
-/* page 4 0x3220-0x32A3 */
-static uint16 tab_uni_gbk4[]={
-0xA2E5,0xA2E6,0xA2E7,0xA2E8,0xA2E9,0xA2EA,0xA2EB,0xA2EC,
-0xA2ED,0xA2EE, 0, 0, 0, 0, 0, 0,
- 0,0xA95A, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xA949};
-
-/* page 5 0x338E-0x33D5 */
-static uint16 tab_uni_gbk5[]={
-0xA94A,0xA94B, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA94C,0xA94D,
-0xA94E, 0, 0,0xA94F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,0xA950, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA951, 0, 0,0xA952,0xA953, 0, 0,0xA954
-};
-
-/* page 6 0x4E00-0x9FA5 */
-static uint16 tab_uni_gbk6[]={
-0xD2BB,0xB6A1,0x8140,0xC6DF,0x8141,0x8142,0x8143,0xCDF2,
-0xD5C9,0xC8FD,0xC9CF,0xCFC2,0xD8A2,0xB2BB,0xD3EB,0x8144,
-0xD8A4,0xB3F3,0x8145,0xD7A8,0xC7D2,0xD8A7,0xCAC0,0x8146,
-0xC7F0,0xB1FB,0xD2B5,0xB4D4,0xB6AB,0xCBBF,0xD8A9,0x8147,
-0x8148,0x8149,0xB6AA,0x814A,0xC1BD,0xD1CF,0x814B,0xC9A5,
-0xD8AD,0x814C,0xB8F6,0xD1BE,0xE3DC,0xD6D0,0x814D,0x814E,
-0xB7E1,0x814F,0xB4AE,0x8150,0xC1D9,0x8151,0xD8BC,0x8152,
-0xCDE8,0xB5A4,0xCEAA,0xD6F7,0x8153,0xC0F6,0xBED9,0xD8AF,
-0x8154,0x8155,0x8156,0xC4CB,0x8157,0xBEC3,0x8158,0xD8B1,
-0xC3B4,0xD2E5,0x8159,0xD6AE,0xCEDA,0xD5A7,0xBAF5,0xB7A6,
-0xC0D6,0x815A,0xC6B9,0xC5D2,0xC7C7,0x815B,0xB9D4,0x815C,
-0xB3CB,0xD2D2,0x815D,0x815E,0xD8BF,0xBEC5,0xC6F2,0xD2B2,
-0xCFB0,0xCFE7,0x815F,0x8160,0x8161,0x8162,0xCAE9,0x8163,
-0x8164,0xD8C0,0x8165,0x8166,0x8167,0x8168,0x8169,0x816A,
-0xC2F2,0xC2D2,0x816B,0xC8E9,0x816C,0x816D,0x816E,0x816F,
-0x8170,0x8171,0x8172,0x8173,0x8174,0x8175,0xC7AC,0x8176,
-0x8177,0x8178,0x8179,0x817A,0x817B,0x817C,0xC1CB,0x817D,
-0xD3E8,0xD5F9,0x817E,0xCAC2,0xB6FE,0xD8A1,0xD3DA,0xBFF7,
-0x8180,0xD4C6,0xBBA5,0xD8C1,0xCEE5,0xBEAE,0x8181,0x8182,
-0xD8A8,0x8183,0xD1C7,0xD0A9,0x8184,0x8185,0x8186,0xD8BD,
-0xD9EF,0xCDF6,0xBFBA,0x8187,0xBDBB,0xBAA5,0xD2E0,0xB2FA,
-0xBAE0,0xC4B6,0x8188,0xCFED,0xBEA9,0xCDA4,0xC1C1,0x8189,
-0x818A,0x818B,0xC7D7,0xD9F1,0x818C,0xD9F4,0x818D,0x818E,
-0x818F,0x8190,0xC8CB,0xD8E9,0x8191,0x8192,0x8193,0xD2DA,
-0xCAB2,0xC8CA,0xD8EC,0xD8EA,0xD8C6,0xBDF6,0xC6CD,0xB3F0,
-0x8194,0xD8EB,0xBDF1,0xBDE9,0x8195,0xC8D4,0xB4D3,0x8196,
-0x8197,0xC2D8,0x8198,0xB2D6,0xD7D0,0xCACB,0xCBFB,0xD5CC,
-0xB8B6,0xCFC9,0x8199,0x819A,0x819B,0xD9DA,0xD8F0,0xC7AA,
-0x819C,0xD8EE,0x819D,0xB4FA,0xC1EE,0xD2D4,0x819E,0x819F,
-0xD8ED,0x81A0,0xD2C7,0xD8EF,0xC3C7,0x81A1,0x81A2,0x81A3,
-0xD1F6,0x81A4,0xD6D9,0xD8F2,0x81A5,0xD8F5,0xBCFE,0xBCDB,
-0x81A6,0x81A7,0x81A8,0xC8CE,0x81A9,0xB7DD,0x81AA,0xB7C2,
-0x81AB,0xC6F3,0x81AC,0x81AD,0x81AE,0x81AF,0x81B0,0x81B1,
-0x81B2,0xD8F8,0xD2C1,0x81B3,0x81B4,0xCEE9,0xBCBF,0xB7FC,
-0xB7A5,0xD0DD,0x81B5,0x81B6,0x81B7,0x81B8,0x81B9,0xD6DA,
-0xD3C5,0xBBEF,0xBBE1,0xD8F1,0x81BA,0x81BB,0xC9A1,0xCEB0,
-0xB4AB,0x81BC,0xD8F3,0x81BD,0xC9CB,0xD8F6,0xC2D7,0xD8F7,
-0x81BE,0x81BF,0xCEB1,0xD8F9,0x81C0,0x81C1,0x81C2,0xB2AE,
-0xB9C0,0x81C3,0xD9A3,0x81C4,0xB0E9,0x81C5,0xC1E6,0x81C6,
-0xC9EC,0x81C7,0xCBC5,0x81C8,0xCBC6,0xD9A4,0x81C9,0x81CA,
-0x81CB,0x81CC,0x81CD,0xB5E8,0x81CE,0x81CF,0xB5AB,0x81D0,
-0x81D1,0x81D2,0x81D3,0x81D4,0x81D5,0xCEBB,0xB5CD,0xD7A1,
-0xD7F4,0xD3D3,0x81D6,0xCCE5,0x81D7,0xBACE,0x81D8,0xD9A2,
-0xD9DC,0xD3E0,0xD8FD,0xB7F0,0xD7F7,0xD8FE,0xD8FA,0xD9A1,
-0xC4E3,0x81D9,0x81DA,0xD3B6,0xD8F4,0xD9DD,0x81DB,0xD8FB,
-0x81DC,0xC5E5,0x81DD,0x81DE,0xC0D0,0x81DF,0x81E0,0xD1F0,
-0xB0DB,0x81E1,0x81E2,0xBCD1,0xD9A6,0x81E3,0xD9A5,0x81E4,
-0x81E5,0x81E6,0x81E7,0xD9AC,0xD9AE,0x81E8,0xD9AB,0xCAB9,
-0x81E9,0x81EA,0x81EB,0xD9A9,0xD6B6,0x81EC,0x81ED,0x81EE,
-0xB3DE,0xD9A8,0x81EF,0xC0FD,0x81F0,0xCACC,0x81F1,0xD9AA,
-0x81F2,0xD9A7,0x81F3,0x81F4,0xD9B0,0x81F5,0x81F6,0xB6B1,
-0x81F7,0x81F8,0x81F9,0xB9A9,0x81FA,0xD2C0,0x81FB,0x81FC,
-0xCFC0,0x81FD,0x81FE,0xC2C2,0x8240,0xBDC4,0xD5EC,0xB2E0,
-0xC7C8,0xBFEB,0xD9AD,0x8241,0xD9AF,0x8242,0xCEEA,0xBAEE,
-0x8243,0x8244,0x8245,0x8246,0x8247,0xC7D6,0x8248,0x8249,
-0x824A,0x824B,0x824C,0x824D,0x824E,0x824F,0x8250,0xB1E3,
-0x8251,0x8252,0x8253,0xB4D9,0xB6ED,0xD9B4,0x8254,0x8255,
-0x8256,0x8257,0xBFA1,0x8258,0x8259,0x825A,0xD9DE,0xC7CE,
-0xC0FE,0xD9B8,0x825B,0x825C,0x825D,0x825E,0x825F,0xCBD7,
-0xB7FD,0x8260,0xD9B5,0x8261,0xD9B7,0xB1A3,0xD3E1,0xD9B9,
-0x8262,0xD0C5,0x8263,0xD9B6,0x8264,0x8265,0xD9B1,0x8266,
-0xD9B2,0xC1A9,0xD9B3,0x8267,0x8268,0xBCF3,0xD0DE,0xB8A9,
-0x8269,0xBEE3,0x826A,0xD9BD,0x826B,0x826C,0x826D,0x826E,
-0xD9BA,0x826F,0xB0B3,0x8270,0x8271,0x8272,0xD9C2,0x8273,
-0x8274,0x8275,0x8276,0x8277,0x8278,0x8279,0x827A,0x827B,
-0x827C,0x827D,0x827E,0x8280,0xD9C4,0xB1B6,0x8281,0xD9BF,
-0x8282,0x8283,0xB5B9,0x8284,0xBEF3,0x8285,0x8286,0x8287,
-0xCCC8,0xBAF2,0xD2D0,0x8288,0xD9C3,0x8289,0x828A,0xBDE8,
-0x828B,0xB3AB,0x828C,0x828D,0x828E,0xD9C5,0xBEEB,0x828F,
-0xD9C6,0xD9BB,0xC4DF,0x8290,0xD9BE,0xD9C1,0xD9C0,0x8291,
-0x8292,0x8293,0x8294,0x8295,0x8296,0x8297,0x8298,0x8299,
-0x829A,0x829B,0xD5AE,0x829C,0xD6B5,0x829D,0xC7E3,0x829E,
-0x829F,0x82A0,0x82A1,0xD9C8,0x82A2,0x82A3,0x82A4,0xBCD9,
-0xD9CA,0x82A5,0x82A6,0x82A7,0xD9BC,0x82A8,0xD9CB,0xC6AB,
-0x82A9,0x82AA,0x82AB,0x82AC,0x82AD,0xD9C9,0x82AE,0x82AF,
-0x82B0,0x82B1,0xD7F6,0x82B2,0xCDA3,0x82B3,0x82B4,0x82B5,
-0x82B6,0x82B7,0x82B8,0x82B9,0x82BA,0xBDA1,0x82BB,0x82BC,
-0x82BD,0x82BE,0x82BF,0x82C0,0xD9CC,0x82C1,0x82C2,0x82C3,
-0x82C4,0x82C5,0x82C6,0x82C7,0x82C8,0x82C9,0xC5BC,0xCDB5,
-0x82CA,0x82CB,0x82CC,0xD9CD,0x82CD,0x82CE,0xD9C7,0xB3A5,
-0xBFFE,0x82CF,0x82D0,0x82D1,0x82D2,0xB8B5,0x82D3,0x82D4,
-0xC0FC,0x82D5,0x82D6,0x82D7,0x82D8,0xB0F8,0x82D9,0x82DA,
-0x82DB,0x82DC,0x82DD,0x82DE,0x82DF,0x82E0,0x82E1,0x82E2,
-0x82E3,0x82E4,0x82E5,0x82E6,0x82E7,0x82E8,0x82E9,0x82EA,
-0x82EB,0x82EC,0x82ED,0xB4F6,0x82EE,0xD9CE,0x82EF,0xD9CF,
-0xB4A2,0xD9D0,0x82F0,0x82F1,0xB4DF,0x82F2,0x82F3,0x82F4,
-0x82F5,0x82F6,0xB0C1,0x82F7,0x82F8,0x82F9,0x82FA,0x82FB,
-0x82FC,0x82FD,0xD9D1,0xC9B5,0x82FE,0x8340,0x8341,0x8342,
-0x8343,0x8344,0x8345,0x8346,0x8347,0x8348,0x8349,0x834A,
-0x834B,0x834C,0x834D,0x834E,0x834F,0x8350,0x8351,0xCFF1,
-0x8352,0x8353,0x8354,0x8355,0x8356,0x8357,0xD9D2,0x8358,
-0x8359,0x835A,0xC1C5,0x835B,0x835C,0x835D,0x835E,0x835F,
-0x8360,0x8361,0x8362,0x8363,0x8364,0x8365,0xD9D6,0xC9AE,
-0x8366,0x8367,0x8368,0x8369,0xD9D5,0xD9D4,0xD9D7,0x836A,
-0x836B,0x836C,0x836D,0xCBDB,0x836E,0xBDA9,0x836F,0x8370,
-0x8371,0x8372,0x8373,0xC6A7,0x8374,0x8375,0x8376,0x8377,
-0x8378,0x8379,0x837A,0x837B,0x837C,0x837D,0xD9D3,0xD9D8,
-0x837E,0x8380,0x8381,0xD9D9,0x8382,0x8383,0x8384,0x8385,
-0x8386,0x8387,0xC8E5,0x8388,0x8389,0x838A,0x838B,0x838C,
-0x838D,0x838E,0x838F,0x8390,0x8391,0x8392,0x8393,0x8394,
-0x8395,0xC0DC,0x8396,0x8397,0x8398,0x8399,0x839A,0x839B,
-0x839C,0x839D,0x839E,0x839F,0x83A0,0x83A1,0x83A2,0x83A3,
-0x83A4,0x83A5,0x83A6,0x83A7,0x83A8,0x83A9,0x83AA,0x83AB,
-0x83AC,0x83AD,0x83AE,0x83AF,0x83B0,0x83B1,0x83B2,0xB6F9,
-0xD8A3,0xD4CA,0x83B3,0xD4AA,0xD0D6,0xB3E4,0xD5D7,0x83B4,
-0xCFC8,0xB9E2,0x83B5,0xBFCB,0x83B6,0xC3E2,0x83B7,0x83B8,
-0x83B9,0xB6D2,0x83BA,0x83BB,0xCDC3,0xD9EE,0xD9F0,0x83BC,
-0x83BD,0x83BE,0xB5B3,0x83BF,0xB6B5,0x83C0,0x83C1,0x83C2,
-0x83C3,0x83C4,0xBEA4,0x83C5,0x83C6,0xC8EB,0x83C7,0x83C8,
-0xC8AB,0x83C9,0x83CA,0xB0CB,0xB9AB,0xC1F9,0xD9E2,0x83CB,
-0xC0BC,0xB9B2,0x83CC,0xB9D8,0xD0CB,0xB1F8,0xC6E4,0xBEDF,
-0xB5E4,0xD7C8,0x83CD,0xD1F8,0xBCE6,0xCADE,0x83CE,0x83CF,
-0xBCBD,0xD9E6,0xD8E7,0x83D0,0x83D1,0xC4DA,0x83D2,0x83D3,
-0xB8D4,0xC8BD,0x83D4,0x83D5,0xB2E1,0xD4D9,0x83D6,0x83D7,
-0x83D8,0x83D9,0xC3B0,0x83DA,0x83DB,0xC3E1,0xDAA2,0xC8DF,
-0x83DC,0xD0B4,0x83DD,0xBEFC,0xC5A9,0x83DE,0x83DF,0x83E0,
-0xB9DA,0x83E1,0xDAA3,0x83E2,0xD4A9,0xDAA4,0x83E3,0x83E4,
-0x83E5,0x83E6,0x83E7,0xD9FB,0xB6AC,0x83E8,0x83E9,0xB7EB,
-0xB1F9,0xD9FC,0xB3E5,0xBEF6,0x83EA,0xBFF6,0xD2B1,0xC0E4,
-0x83EB,0x83EC,0x83ED,0xB6B3,0xD9FE,0xD9FD,0x83EE,0x83EF,
-0xBEBB,0x83F0,0x83F1,0x83F2,0xC6E0,0x83F3,0xD7BC,0xDAA1,
-0x83F4,0xC1B9,0x83F5,0xB5F2,0xC1E8,0x83F6,0x83F7,0xBCF5,
-0x83F8,0xB4D5,0x83F9,0x83FA,0x83FB,0x83FC,0x83FD,0x83FE,
-0x8440,0x8441,0x8442,0xC1DD,0x8443,0xC4FD,0x8444,0x8445,
-0xBCB8,0xB7B2,0x8446,0x8447,0xB7EF,0x8448,0x8449,0x844A,
-0x844B,0x844C,0x844D,0xD9EC,0x844E,0xC6BE,0x844F,0xBFAD,
-0xBBCB,0x8450,0x8451,0xB5CA,0x8452,0xDBC9,0xD0D7,0x8453,
-0xCDB9,0xB0BC,0xB3F6,0xBBF7,0xDBCA,0xBAAF,0x8454,0xD4E4,
-0xB5B6,0xB5F3,0xD8D6,0xC8D0,0x8455,0x8456,0xB7D6,0xC7D0,
-0xD8D7,0x8457,0xBFAF,0x8458,0x8459,0xDBBB,0xD8D8,0x845A,
-0x845B,0xD0CC,0xBBAE,0x845C,0x845D,0x845E,0xEBBE,0xC1D0,
-0xC1F5,0xD4F2,0xB8D5,0xB4B4,0x845F,0xB3F5,0x8460,0x8461,
-0xC9BE,0x8462,0x8463,0x8464,0xC5D0,0x8465,0x8466,0x8467,
-0xC5D9,0xC0FB,0x8468,0xB1F0,0x8469,0xD8D9,0xB9CE,0x846A,
-0xB5BD,0x846B,0x846C,0xD8DA,0x846D,0x846E,0xD6C6,0xCBA2,
-0xC8AF,0xC9B2,0xB4CC,0xBFCC,0x846F,0xB9F4,0x8470,0xD8DB,
-0xD8DC,0xB6E7,0xBCC1,0xCCEA,0x8471,0x8472,0x8473,0x8474,
-0x8475,0x8476,0xCFF7,0x8477,0xD8DD,0xC7B0,0x8478,0x8479,
-0xB9D0,0xBDA3,0x847A,0x847B,0xCCDE,0x847C,0xC6CA,0x847D,
-0x847E,0x8480,0x8481,0x8482,0xD8E0,0x8483,0xD8DE,0x8484,
-0x8485,0xD8DF,0x8486,0x8487,0x8488,0xB0FE,0x8489,0xBEE7,
-0x848A,0xCAA3,0xBCF4,0x848B,0x848C,0x848D,0x848E,0xB8B1,
-0x848F,0x8490,0xB8EE,0x8491,0x8492,0x8493,0x8494,0x8495,
-0x8496,0x8497,0x8498,0x8499,0x849A,0xD8E2,0x849B,0xBDCB,
-0x849C,0xD8E4,0xD8E3,0x849D,0x849E,0x849F,0x84A0,0x84A1,
-0xC5FC,0x84A2,0x84A3,0x84A4,0x84A5,0x84A6,0x84A7,0x84A8,
-0xD8E5,0x84A9,0x84AA,0xD8E6,0x84AB,0x84AC,0x84AD,0x84AE,
-0x84AF,0x84B0,0x84B1,0xC1A6,0x84B2,0xC8B0,0xB0EC,0xB9A6,
-0xBCD3,0xCEF1,0xDBBD,0xC1D3,0x84B3,0x84B4,0x84B5,0x84B6,
-0xB6AF,0xD6FA,0xC5AC,0xBDD9,0xDBBE,0xDBBF,0x84B7,0x84B8,
-0x84B9,0xC0F8,0xBEA2,0xC0CD,0x84BA,0x84BB,0x84BC,0x84BD,
-0x84BE,0x84BF,0x84C0,0x84C1,0x84C2,0x84C3,0xDBC0,0xCAC6,
-0x84C4,0x84C5,0x84C6,0xB2AA,0x84C7,0x84C8,0x84C9,0xD3C2,
-0x84CA,0xC3E3,0x84CB,0xD1AB,0x84CC,0x84CD,0x84CE,0x84CF,
-0xDBC2,0x84D0,0xC0D5,0x84D1,0x84D2,0x84D3,0xDBC3,0x84D4,
-0xBFB1,0x84D5,0x84D6,0x84D7,0x84D8,0x84D9,0x84DA,0xC4BC,
-0x84DB,0x84DC,0x84DD,0x84DE,0xC7DA,0x84DF,0x84E0,0x84E1,
-0x84E2,0x84E3,0x84E4,0x84E5,0x84E6,0x84E7,0x84E8,0x84E9,
-0xDBC4,0x84EA,0x84EB,0x84EC,0x84ED,0x84EE,0x84EF,0x84F0,
-0x84F1,0xD9E8,0xC9D7,0x84F2,0x84F3,0x84F4,0xB9B4,0xCEF0,
-0xD4C8,0x84F5,0x84F6,0x84F7,0x84F8,0xB0FC,0xB4D2,0x84F9,
-0xD0D9,0x84FA,0x84FB,0x84FC,0x84FD,0xD9E9,0x84FE,0xDECB,
-0xD9EB,0x8540,0x8541,0x8542,0x8543,0xD8B0,0xBBAF,0xB1B1,
-0x8544,0xB3D7,0xD8CE,0x8545,0x8546,0xD4D1,0x8547,0x8548,
-0xBDB3,0xBFEF,0x8549,0xCFBB,0x854A,0x854B,0xD8D0,0x854C,
-0x854D,0x854E,0xB7CB,0x854F,0x8550,0x8551,0xD8D1,0x8552,
-0x8553,0x8554,0x8555,0x8556,0x8557,0x8558,0x8559,0x855A,
-0x855B,0xC6A5,0xC7F8,0xD2BD,0x855C,0x855D,0xD8D2,0xC4E4,
-0x855E,0xCAAE,0x855F,0xC7A7,0x8560,0xD8A6,0x8561,0xC9FD,
-0xCEE7,0xBBDC,0xB0EB,0x8562,0x8563,0x8564,0xBBAA,0xD0AD,
-0x8565,0xB1B0,0xD7E4,0xD7BF,0x8566,0xB5A5,0xC2F4,0xC4CF,
-0x8567,0x8568,0xB2A9,0x8569,0xB2B7,0x856A,0xB1E5,0xDFB2,
-0xD5BC,0xBFA8,0xC2AC,0xD8D5,0xC2B1,0x856B,0xD8D4,0xCED4,
-0x856C,0xDAE0,0x856D,0xCEC0,0x856E,0x856F,0xD8B4,0xC3AE,
-0xD3A1,0xCEA3,0x8570,0xBCB4,0xC8B4,0xC2D1,0x8571,0xBEED,
-0xD0B6,0x8572,0xDAE1,0x8573,0x8574,0x8575,0x8576,0xC7E4,
-0x8577,0x8578,0xB3A7,0x8579,0xB6F2,0xCCFC,0xC0FA,0x857A,
-0x857B,0xC0F7,0x857C,0xD1B9,0xD1E1,0xD8C7,0x857D,0x857E,
-0x8580,0x8581,0x8582,0x8583,0x8584,0xB2DE,0x8585,0x8586,
-0xC0E5,0x8587,0xBAF1,0x8588,0x8589,0xD8C8,0x858A,0xD4AD,
-0x858B,0x858C,0xCFE1,0xD8C9,0x858D,0xD8CA,0xCFC3,0x858E,
-0xB3F8,0xBEC7,0x858F,0x8590,0x8591,0x8592,0xD8CB,0x8593,
-0x8594,0x8595,0x8596,0x8597,0x8598,0x8599,0xDBCC,0x859A,
-0x859B,0x859C,0x859D,0xC8A5,0x859E,0x859F,0x85A0,0xCFD8,
-0x85A1,0xC8FE,0xB2CE,0x85A2,0x85A3,0x85A4,0x85A5,0x85A6,
-0xD3D6,0xB2E6,0xBCB0,0xD3D1,0xCBAB,0xB7B4,0x85A7,0x85A8,
-0x85A9,0xB7A2,0x85AA,0x85AB,0xCAE5,0x85AC,0xC8A1,0xCADC,
-0xB1E4,0xD0F0,0x85AD,0xC5D1,0x85AE,0x85AF,0x85B0,0xDBC5,
-0xB5FE,0x85B1,0x85B2,0xBFDA,0xB9C5,0xBEE4,0xC1ED,0x85B3,
-0xDFB6,0xDFB5,0xD6BB,0xBDD0,0xD5D9,0xB0C8,0xB6A3,0xBFC9,
-0xCCA8,0xDFB3,0xCAB7,0xD3D2,0x85B4,0xD8CF,0xD2B6,0xBAC5,
-0xCBBE,0xCCBE,0x85B5,0xDFB7,0xB5F0,0xDFB4,0x85B6,0x85B7,
-0x85B8,0xD3F5,0x85B9,0xB3D4,0xB8F7,0x85BA,0xDFBA,0x85BB,
-0xBACF,0xBCAA,0xB5F5,0x85BC,0xCDAC,0xC3FB,0xBAF3,0xC0F4,
-0xCDC2,0xCFF2,0xDFB8,0xCFC5,0x85BD,0xC2C0,0xDFB9,0xC2F0,
-0x85BE,0x85BF,0x85C0,0xBEFD,0x85C1,0xC1DF,0xCDCC,0xD2F7,
-0xB7CD,0xDFC1,0x85C2,0xDFC4,0x85C3,0x85C4,0xB7F1,0xB0C9,
-0xB6D6,0xB7D4,0x85C5,0xBAAC,0xCCFD,0xBFD4,0xCBB1,0xC6F4,
-0x85C6,0xD6A8,0xDFC5,0x85C7,0xCEE2,0xB3B3,0x85C8,0x85C9,
-0xCEFC,0xB4B5,0x85CA,0xCEC7,0xBAF0,0x85CB,0xCEE1,0x85CC,
-0xD1BD,0x85CD,0x85CE,0xDFC0,0x85CF,0x85D0,0xB4F4,0x85D1,
-0xB3CA,0x85D2,0xB8E6,0xDFBB,0x85D3,0x85D4,0x85D5,0x85D6,
-0xC4C5,0x85D7,0xDFBC,0xDFBD,0xDFBE,0xC5BB,0xDFBF,0xDFC2,
-0xD4B1,0xDFC3,0x85D8,0xC7BA,0xCED8,0x85D9,0x85DA,0x85DB,
-0x85DC,0x85DD,0xC4D8,0x85DE,0xDFCA,0x85DF,0xDFCF,0x85E0,
-0xD6DC,0x85E1,0x85E2,0x85E3,0x85E4,0x85E5,0x85E6,0x85E7,
-0x85E8,0xDFC9,0xDFDA,0xCEB6,0x85E9,0xBAC7,0xDFCE,0xDFC8,
-0xC5DE,0x85EA,0x85EB,0xC9EB,0xBAF4,0xC3FC,0x85EC,0x85ED,
-0xBED7,0x85EE,0xDFC6,0x85EF,0xDFCD,0x85F0,0xC5D8,0x85F1,
-0x85F2,0x85F3,0x85F4,0xD5A6,0xBACD,0x85F5,0xBECC,0xD3BD,
-0xB8C0,0x85F6,0xD6E4,0x85F7,0xDFC7,0xB9BE,0xBFA7,0x85F8,
-0x85F9,0xC1FC,0xDFCB,0xDFCC,0x85FA,0xDFD0,0x85FB,0x85FC,
-0x85FD,0x85FE,0x8640,0xDFDB,0xDFE5,0x8641,0xDFD7,0xDFD6,
-0xD7C9,0xDFE3,0xDFE4,0xE5EB,0xD2A7,0xDFD2,0x8642,0xBFA9,
-0x8643,0xD4DB,0x8644,0xBFC8,0xDFD4,0x8645,0x8646,0x8647,
-0xCFCC,0x8648,0x8649,0xDFDD,0x864A,0xD1CA,0x864B,0xDFDE,
-0xB0A7,0xC6B7,0xDFD3,0x864C,0xBAE5,0x864D,0xB6DF,0xCDDB,
-0xB9FE,0xD4D5,0x864E,0x864F,0xDFDF,0xCFEC,0xB0A5,0xDFE7,
-0xDFD1,0xD1C6,0xDFD5,0xDFD8,0xDFD9,0xDFDC,0x8650,0xBBA9,
-0x8651,0xDFE0,0xDFE1,0x8652,0xDFE2,0xDFE6,0xDFE8,0xD3B4,
-0x8653,0x8654,0x8655,0x8656,0x8657,0xB8E7,0xC5B6,0xDFEA,
-0xC9DA,0xC1A8,0xC4C4,0x8658,0x8659,0xBFDE,0xCFF8,0x865A,
-0x865B,0x865C,0xD5DC,0xDFEE,0x865D,0x865E,0x865F,0x8660,
-0x8661,0x8662,0xB2B8,0x8663,0xBADF,0xDFEC,0x8664,0xDBC1,
-0x8665,0xD1E4,0x8666,0x8667,0x8668,0x8669,0xCBF4,0xB4BD,
-0x866A,0xB0A6,0x866B,0x866C,0x866D,0x866E,0x866F,0xDFF1,
-0xCCC6,0xDFF2,0x8670,0x8671,0xDFED,0x8672,0x8673,0x8674,
-0x8675,0x8676,0x8677,0xDFE9,0x8678,0x8679,0x867A,0x867B,
-0xDFEB,0x867C,0xDFEF,0xDFF0,0xBBBD,0x867D,0x867E,0xDFF3,
-0x8680,0x8681,0xDFF4,0x8682,0xBBA3,0x8683,0xCADB,0xCEA8,
-0xE0A7,0xB3AA,0x8684,0xE0A6,0x8685,0x8686,0x8687,0xE0A1,
-0x8688,0x8689,0x868A,0x868B,0xDFFE,0x868C,0xCDD9,0xDFFC,
-0x868D,0xDFFA,0x868E,0xBFD0,0xD7C4,0x868F,0xC9CC,0x8690,
-0x8691,0xDFF8,0xB0A1,0x8692,0x8693,0x8694,0x8695,0x8696,
-0xDFFD,0x8697,0x8698,0x8699,0x869A,0xDFFB,0xE0A2,0x869B,
-0x869C,0x869D,0x869E,0x869F,0xE0A8,0x86A0,0x86A1,0x86A2,
-0x86A3,0xB7C8,0x86A4,0x86A5,0xC6A1,0xC9B6,0xC0B2,0xDFF5,
-0x86A6,0x86A7,0xC5BE,0x86A8,0xD8C4,0xDFF9,0xC4F6,0x86A9,
-0x86AA,0x86AB,0x86AC,0x86AD,0x86AE,0xE0A3,0xE0A4,0xE0A5,
-0xD0A5,0x86AF,0x86B0,0xE0B4,0xCCE4,0x86B1,0xE0B1,0x86B2,
-0xBFA6,0xE0AF,0xCEB9,0xE0AB,0xC9C6,0x86B3,0x86B4,0xC0AE,
-0xE0AE,0xBAED,0xBAB0,0xE0A9,0x86B5,0x86B6,0x86B7,0xDFF6,
-0x86B8,0xE0B3,0x86B9,0x86BA,0xE0B8,0x86BB,0x86BC,0x86BD,
-0xB4AD,0xE0B9,0x86BE,0x86BF,0xCFB2,0xBAC8,0x86C0,0xE0B0,
-0x86C1,0x86C2,0x86C3,0x86C4,0x86C5,0x86C6,0x86C7,0xD0FA,
-0x86C8,0x86C9,0x86CA,0x86CB,0x86CC,0x86CD,0x86CE,0x86CF,
-0x86D0,0xE0AC,0x86D1,0xD4FB,0x86D2,0xDFF7,0x86D3,0xC5E7,
-0x86D4,0xE0AD,0x86D5,0xD3F7,0x86D6,0xE0B6,0xE0B7,0x86D7,
-0x86D8,0x86D9,0x86DA,0x86DB,0xE0C4,0xD0E1,0x86DC,0x86DD,
-0x86DE,0xE0BC,0x86DF,0x86E0,0xE0C9,0xE0CA,0x86E1,0x86E2,
-0x86E3,0xE0BE,0xE0AA,0xC9A4,0xE0C1,0x86E4,0xE0B2,0x86E5,
-0x86E6,0x86E7,0x86E8,0x86E9,0xCAC8,0xE0C3,0x86EA,0xE0B5,
-0x86EB,0xCECB,0x86EC,0xCBC3,0xE0CD,0xE0C6,0xE0C2,0x86ED,
-0xE0CB,0x86EE,0xE0BA,0xE0BF,0xE0C0,0x86EF,0x86F0,0xE0C5,
-0x86F1,0x86F2,0xE0C7,0xE0C8,0x86F3,0xE0CC,0x86F4,0xE0BB,
-0x86F5,0x86F6,0x86F7,0x86F8,0x86F9,0xCBD4,0xE0D5,0x86FA,
-0xE0D6,0xE0D2,0x86FB,0x86FC,0x86FD,0x86FE,0x8740,0x8741,
-0xE0D0,0xBCCE,0x8742,0x8743,0xE0D1,0x8744,0xB8C2,0xD8C5,
-0x8745,0x8746,0x8747,0x8748,0x8749,0x874A,0x874B,0x874C,
-0xD0EA,0x874D,0x874E,0xC2EF,0x874F,0x8750,0xE0CF,0xE0BD,
-0x8751,0x8752,0x8753,0xE0D4,0xE0D3,0x8754,0x8755,0xE0D7,
-0x8756,0x8757,0x8758,0x8759,0xE0DC,0xE0D8,0x875A,0x875B,
-0x875C,0xD6F6,0xB3B0,0x875D,0xD7EC,0x875E,0xCBBB,0x875F,
-0x8760,0xE0DA,0x8761,0xCEFB,0x8762,0x8763,0x8764,0xBAD9,
-0x8765,0x8766,0x8767,0x8768,0x8769,0x876A,0x876B,0x876C,
-0x876D,0x876E,0x876F,0x8770,0xE0E1,0xE0DD,0xD2AD,0x8771,
-0x8772,0x8773,0x8774,0x8775,0xE0E2,0x8776,0x8777,0xE0DB,
-0xE0D9,0xE0DF,0x8778,0x8779,0xE0E0,0x877A,0x877B,0x877C,
-0x877D,0x877E,0xE0DE,0x8780,0xE0E4,0x8781,0x8782,0x8783,
-0xC6F7,0xD8AC,0xD4EB,0xE0E6,0xCAC9,0x8784,0x8785,0x8786,
-0x8787,0xE0E5,0x8788,0x8789,0x878A,0x878B,0xB8C1,0x878C,
-0x878D,0x878E,0x878F,0xE0E7,0xE0E8,0x8790,0x8791,0x8792,
-0x8793,0x8794,0x8795,0x8796,0x8797,0xE0E9,0xE0E3,0x8798,
-0x8799,0x879A,0x879B,0x879C,0x879D,0x879E,0xBABF,0xCCE7,
-0x879F,0x87A0,0x87A1,0xE0EA,0x87A2,0x87A3,0x87A4,0x87A5,
-0x87A6,0x87A7,0x87A8,0x87A9,0x87AA,0x87AB,0x87AC,0x87AD,
-0x87AE,0x87AF,0x87B0,0xCFF9,0x87B1,0x87B2,0x87B3,0x87B4,
-0x87B5,0x87B6,0x87B7,0x87B8,0x87B9,0x87BA,0x87BB,0xE0EB,
-0x87BC,0x87BD,0x87BE,0x87BF,0x87C0,0x87C1,0x87C2,0xC8C2,
-0x87C3,0x87C4,0x87C5,0x87C6,0xBDC0,0x87C7,0x87C8,0x87C9,
-0x87CA,0x87CB,0x87CC,0x87CD,0x87CE,0x87CF,0x87D0,0x87D1,
-0x87D2,0x87D3,0xC4D2,0x87D4,0x87D5,0x87D6,0x87D7,0x87D8,
-0x87D9,0x87DA,0x87DB,0x87DC,0xE0EC,0x87DD,0x87DE,0xE0ED,
-0x87DF,0x87E0,0xC7F4,0xCBC4,0x87E1,0xE0EE,0xBBD8,0xD8B6,
-0xD2F2,0xE0EF,0xCDC5,0x87E2,0xB6DA,0x87E3,0x87E4,0x87E5,
-0x87E6,0x87E7,0x87E8,0xE0F1,0x87E9,0xD4B0,0x87EA,0x87EB,
-0xC0A7,0xB4D1,0x87EC,0x87ED,0xCEA7,0xE0F0,0x87EE,0x87EF,
-0x87F0,0xE0F2,0xB9CC,0x87F1,0x87F2,0xB9FA,0xCDBC,0xE0F3,
-0x87F3,0x87F4,0x87F5,0xC6D4,0xE0F4,0x87F6,0xD4B2,0x87F7,
-0xC8A6,0xE0F6,0xE0F5,0x87F8,0x87F9,0x87FA,0x87FB,0x87FC,
-0x87FD,0x87FE,0x8840,0x8841,0x8842,0x8843,0x8844,0x8845,
-0x8846,0x8847,0x8848,0x8849,0xE0F7,0x884A,0x884B,0xCDC1,
-0x884C,0x884D,0x884E,0xCAA5,0x884F,0x8850,0x8851,0x8852,
-0xD4DA,0xDBD7,0xDBD9,0x8853,0xDBD8,0xB9E7,0xDBDC,0xDBDD,
-0xB5D8,0x8854,0x8855,0xDBDA,0x8856,0x8857,0x8858,0x8859,
-0x885A,0xDBDB,0xB3A1,0xDBDF,0x885B,0x885C,0xBBF8,0x885D,
-0xD6B7,0x885E,0xDBE0,0x885F,0x8860,0x8861,0x8862,0xBEF9,
-0x8863,0x8864,0xB7BB,0x8865,0xDBD0,0xCCAE,0xBFB2,0xBBB5,
-0xD7F8,0xBFD3,0x8866,0x8867,0x8868,0x8869,0x886A,0xBFE9,
-0x886B,0x886C,0xBCE1,0xCCB3,0xDBDE,0xB0D3,0xCEEB,0xB7D8,
-0xD7B9,0xC6C2,0x886D,0x886E,0xC0A4,0x886F,0xCCB9,0x8870,
-0xDBE7,0xDBE1,0xC6BA,0xDBE3,0x8871,0xDBE8,0x8872,0xC5F7,
-0x8873,0x8874,0x8875,0xDBEA,0x8876,0x8877,0xDBE9,0xBFC0,
-0x8878,0x8879,0x887A,0xDBE6,0xDBE5,0x887B,0x887C,0x887D,
-0x887E,0x8880,0xB4B9,0xC0AC,0xC2A2,0xDBE2,0xDBE4,0x8881,
-0x8882,0x8883,0x8884,0xD0CD,0xDBED,0x8885,0x8886,0x8887,
-0x8888,0x8889,0xC0DD,0xDBF2,0x888A,0x888B,0x888C,0x888D,
-0x888E,0x888F,0x8890,0xB6E2,0x8891,0x8892,0x8893,0x8894,
-0xDBF3,0xDBD2,0xB9B8,0xD4AB,0xDBEC,0x8895,0xBFD1,0xDBF0,
-0x8896,0xDBD1,0x8897,0xB5E6,0x8898,0xDBEB,0xBFE5,0x8899,
-0x889A,0x889B,0xDBEE,0x889C,0xDBF1,0x889D,0x889E,0x889F,
-0xDBF9,0x88A0,0x88A1,0x88A2,0x88A3,0x88A4,0x88A5,0x88A6,
-0x88A7,0x88A8,0xB9A1,0xB0A3,0x88A9,0x88AA,0x88AB,0x88AC,
-0x88AD,0x88AE,0x88AF,0xC2F1,0x88B0,0x88B1,0xB3C7,0xDBEF,
-0x88B2,0x88B3,0xDBF8,0x88B4,0xC6D2,0xDBF4,0x88B5,0x88B6,
-0xDBF5,0xDBF7,0xDBF6,0x88B7,0x88B8,0xDBFE,0x88B9,0xD3F2,
-0xB2BA,0x88BA,0x88BB,0x88BC,0xDBFD,0x88BD,0x88BE,0x88BF,
-0x88C0,0x88C1,0x88C2,0x88C3,0x88C4,0xDCA4,0x88C5,0xDBFB,
-0x88C6,0x88C7,0x88C8,0x88C9,0xDBFA,0x88CA,0x88CB,0x88CC,
-0xDBFC,0xC5E0,0xBBF9,0x88CD,0x88CE,0xDCA3,0x88CF,0x88D0,
-0xDCA5,0x88D1,0xCCC3,0x88D2,0x88D3,0x88D4,0xB6D1,0xDDC0,
-0x88D5,0x88D6,0x88D7,0xDCA1,0x88D8,0xDCA2,0x88D9,0x88DA,
-0x88DB,0xC7B5,0x88DC,0x88DD,0x88DE,0xB6E9,0x88DF,0x88E0,
-0x88E1,0xDCA7,0x88E2,0x88E3,0x88E4,0x88E5,0xDCA6,0x88E6,
-0xDCA9,0xB1A4,0x88E7,0x88E8,0xB5CC,0x88E9,0x88EA,0x88EB,
-0x88EC,0x88ED,0xBFB0,0x88EE,0x88EF,0x88F0,0x88F1,0x88F2,
-0xD1DF,0x88F3,0x88F4,0x88F5,0x88F6,0xB6C2,0x88F7,0x88F8,
-0x88F9,0x88FA,0x88FB,0x88FC,0x88FD,0x88FE,0x8940,0x8941,
-0x8942,0x8943,0x8944,0x8945,0xDCA8,0x8946,0x8947,0x8948,
-0x8949,0x894A,0x894B,0x894C,0xCBFA,0xEBF3,0x894D,0x894E,
-0x894F,0xCBDC,0x8950,0x8951,0xCBFE,0x8952,0x8953,0x8954,
-0xCCC1,0x8955,0x8956,0x8957,0x8958,0x8959,0xC8FB,0x895A,
-0x895B,0x895C,0x895D,0x895E,0x895F,0xDCAA,0x8960,0x8961,
-0x8962,0x8963,0x8964,0xCCEE,0xDCAB,0x8965,0x8966,0x8967,
-0x8968,0x8969,0x896A,0x896B,0x896C,0x896D,0x896E,0x896F,
-0x8970,0x8971,0x8972,0x8973,0x8974,0x8975,0xDBD3,0x8976,
-0xDCAF,0xDCAC,0x8977,0xBEB3,0x8978,0xCAFB,0x8979,0x897A,
-0x897B,0xDCAD,0x897C,0x897D,0x897E,0x8980,0x8981,0x8982,
-0x8983,0x8984,0xC9CA,0xC4B9,0x8985,0x8986,0x8987,0x8988,
-0x8989,0xC7BD,0xDCAE,0x898A,0x898B,0x898C,0xD4F6,0xD0E6,
-0x898D,0x898E,0x898F,0x8990,0x8991,0x8992,0x8993,0x8994,
-0xC4AB,0xB6D5,0x8995,0x8996,0x8997,0x8998,0x8999,0x899A,
-0x899B,0x899C,0x899D,0x899E,0x899F,0x89A0,0x89A1,0x89A2,
-0x89A3,0x89A4,0x89A5,0x89A6,0xDBD4,0x89A7,0x89A8,0x89A9,
-0x89AA,0xB1DA,0x89AB,0x89AC,0x89AD,0xDBD5,0x89AE,0x89AF,
-0x89B0,0x89B1,0x89B2,0x89B3,0x89B4,0x89B5,0x89B6,0x89B7,
-0x89B8,0xDBD6,0x89B9,0x89BA,0x89BB,0xBABE,0x89BC,0x89BD,
-0x89BE,0x89BF,0x89C0,0x89C1,0x89C2,0x89C3,0x89C4,0x89C5,
-0x89C6,0x89C7,0x89C8,0x89C9,0xC8C0,0x89CA,0x89CB,0x89CC,
-0x89CD,0x89CE,0x89CF,0xCABF,0xC8C9,0x89D0,0xD7B3,0x89D1,
-0xC9F9,0x89D2,0x89D3,0xBFC7,0x89D4,0x89D5,0xBAF8,0x89D6,
-0x89D7,0xD2BC,0x89D8,0x89D9,0x89DA,0x89DB,0x89DC,0x89DD,
-0x89DE,0x89DF,0xE2BA,0x89E0,0xB4A6,0x89E1,0x89E2,0xB1B8,
-0x89E3,0x89E4,0x89E5,0x89E6,0x89E7,0xB8B4,0x89E8,0xCFC4,
-0x89E9,0x89EA,0x89EB,0x89EC,0xD9E7,0xCFA6,0xCDE2,0x89ED,
-0x89EE,0xD9ED,0xB6E0,0x89EF,0xD2B9,0x89F0,0x89F1,0xB9BB,
-0x89F2,0x89F3,0x89F4,0x89F5,0xE2B9,0xE2B7,0x89F6,0xB4F3,
-0x89F7,0xCCEC,0xCCAB,0xB7F2,0x89F8,0xD8B2,0xD1EB,0xBABB,
-0x89F9,0xCAA7,0x89FA,0x89FB,0xCDB7,0x89FC,0x89FD,0xD2C4,
-0xBFE4,0xBCD0,0xB6E1,0x89FE,0xDEC5,0x8A40,0x8A41,0x8A42,
-0x8A43,0xDEC6,0xDBBC,0x8A44,0xD1D9,0x8A45,0x8A46,0xC6E6,
-0xC4CE,0xB7EE,0x8A47,0xB7DC,0x8A48,0x8A49,0xBFFC,0xD7E0,
-0x8A4A,0xC6F5,0x8A4B,0x8A4C,0xB1BC,0xDEC8,0xBDB1,0xCCD7,
-0xDECA,0x8A4D,0xDEC9,0x8A4E,0x8A4F,0x8A50,0x8A51,0x8A52,
-0xB5EC,0x8A53,0xC9DD,0x8A54,0x8A55,0xB0C2,0x8A56,0x8A57,
-0x8A58,0x8A59,0x8A5A,0x8A5B,0x8A5C,0x8A5D,0x8A5E,0x8A5F,
-0x8A60,0x8A61,0x8A62,0xC5AE,0xC5AB,0x8A63,0xC4CC,0x8A64,
-0xBCE9,0xCBFD,0x8A65,0x8A66,0x8A67,0xBAC3,0x8A68,0x8A69,
-0x8A6A,0xE5F9,0xC8E7,0xE5FA,0xCDFD,0x8A6B,0xD7B1,0xB8BE,
-0xC2E8,0x8A6C,0xC8D1,0x8A6D,0x8A6E,0xE5FB,0x8A6F,0x8A70,
-0x8A71,0x8A72,0xB6CA,0xBCCB,0x8A73,0x8A74,0xD1FD,0xE6A1,
-0x8A75,0xC3EE,0x8A76,0x8A77,0x8A78,0x8A79,0xE6A4,0x8A7A,
-0x8A7B,0x8A7C,0x8A7D,0xE5FE,0xE6A5,0xCDD7,0x8A7E,0x8A80,
-0xB7C1,0xE5FC,0xE5FD,0xE6A3,0x8A81,0x8A82,0xC4DD,0xE6A8,
-0x8A83,0x8A84,0xE6A7,0x8A85,0x8A86,0x8A87,0x8A88,0x8A89,
-0x8A8A,0xC3C3,0x8A8B,0xC6DE,0x8A8C,0x8A8D,0xE6AA,0x8A8E,
-0x8A8F,0x8A90,0x8A91,0x8A92,0x8A93,0x8A94,0xC4B7,0x8A95,
-0x8A96,0x8A97,0xE6A2,0xCABC,0x8A98,0x8A99,0x8A9A,0x8A9B,
-0xBDE3,0xB9C3,0xE6A6,0xD0D5,0xCEAF,0x8A9C,0x8A9D,0xE6A9,
-0xE6B0,0x8A9E,0xD2A6,0x8A9F,0xBDAA,0xE6AD,0x8AA0,0x8AA1,
-0x8AA2,0x8AA3,0x8AA4,0xE6AF,0x8AA5,0xC0D1,0x8AA6,0x8AA7,
-0xD2CC,0x8AA8,0x8AA9,0x8AAA,0xBCA7,0x8AAB,0x8AAC,0x8AAD,
-0x8AAE,0x8AAF,0x8AB0,0x8AB1,0x8AB2,0x8AB3,0x8AB4,0x8AB5,
-0x8AB6,0xE6B1,0x8AB7,0xD2F6,0x8AB8,0x8AB9,0x8ABA,0xD7CB,
-0x8ABB,0xCDFE,0x8ABC,0xCDDE,0xC2A6,0xE6AB,0xE6AC,0xBDBF,
-0xE6AE,0xE6B3,0x8ABD,0x8ABE,0xE6B2,0x8ABF,0x8AC0,0x8AC1,
-0x8AC2,0xE6B6,0x8AC3,0xE6B8,0x8AC4,0x8AC5,0x8AC6,0x8AC7,
-0xC4EF,0x8AC8,0x8AC9,0x8ACA,0xC4C8,0x8ACB,0x8ACC,0xBEEA,
-0xC9EF,0x8ACD,0x8ACE,0xE6B7,0x8ACF,0xB6F0,0x8AD0,0x8AD1,
-0x8AD2,0xC3E4,0x8AD3,0x8AD4,0x8AD5,0x8AD6,0x8AD7,0x8AD8,
-0x8AD9,0xD3E9,0xE6B4,0x8ADA,0xE6B5,0x8ADB,0xC8A2,0x8ADC,
-0x8ADD,0x8ADE,0x8ADF,0x8AE0,0xE6BD,0x8AE1,0x8AE2,0x8AE3,
-0xE6B9,0x8AE4,0x8AE5,0x8AE6,0x8AE7,0x8AE8,0xC6C5,0x8AE9,
-0x8AEA,0xCDF1,0xE6BB,0x8AEB,0x8AEC,0x8AED,0x8AEE,0x8AEF,
-0x8AF0,0x8AF1,0x8AF2,0x8AF3,0x8AF4,0xE6BC,0x8AF5,0x8AF6,
-0x8AF7,0x8AF8,0xBBE9,0x8AF9,0x8AFA,0x8AFB,0x8AFC,0x8AFD,
-0x8AFE,0x8B40,0xE6BE,0x8B41,0x8B42,0x8B43,0x8B44,0xE6BA,
-0x8B45,0x8B46,0xC0B7,0x8B47,0x8B48,0x8B49,0x8B4A,0x8B4B,
-0x8B4C,0x8B4D,0x8B4E,0x8B4F,0xD3A4,0xE6BF,0xC9F4,0xE6C3,
-0x8B50,0x8B51,0xE6C4,0x8B52,0x8B53,0x8B54,0x8B55,0xD0F6,
-0x8B56,0x8B57,0x8B58,0x8B59,0x8B5A,0x8B5B,0x8B5C,0x8B5D,
-0x8B5E,0x8B5F,0x8B60,0x8B61,0x8B62,0x8B63,0x8B64,0x8B65,
-0x8B66,0x8B67,0xC3BD,0x8B68,0x8B69,0x8B6A,0x8B6B,0x8B6C,
-0x8B6D,0x8B6E,0xC3C4,0xE6C2,0x8B6F,0x8B70,0x8B71,0x8B72,
-0x8B73,0x8B74,0x8B75,0x8B76,0x8B77,0x8B78,0x8B79,0x8B7A,
-0x8B7B,0x8B7C,0xE6C1,0x8B7D,0x8B7E,0x8B80,0x8B81,0x8B82,
-0x8B83,0x8B84,0xE6C7,0xCFB1,0x8B85,0xEBF4,0x8B86,0x8B87,
-0xE6CA,0x8B88,0x8B89,0x8B8A,0x8B8B,0x8B8C,0xE6C5,0x8B8D,
-0x8B8E,0xBCDE,0xC9A9,0x8B8F,0x8B90,0x8B91,0x8B92,0x8B93,
-0x8B94,0xBCB5,0x8B95,0x8B96,0xCFD3,0x8B97,0x8B98,0x8B99,
-0x8B9A,0x8B9B,0xE6C8,0x8B9C,0xE6C9,0x8B9D,0xE6CE,0x8B9E,
-0xE6D0,0x8B9F,0x8BA0,0x8BA1,0xE6D1,0x8BA2,0x8BA3,0x8BA4,
-0xE6CB,0xB5D5,0x8BA5,0xE6CC,0x8BA6,0x8BA7,0xE6CF,0x8BA8,
-0x8BA9,0xC4DB,0x8BAA,0xE6C6,0x8BAB,0x8BAC,0x8BAD,0x8BAE,
-0x8BAF,0xE6CD,0x8BB0,0x8BB1,0x8BB2,0x8BB3,0x8BB4,0x8BB5,
-0x8BB6,0x8BB7,0x8BB8,0x8BB9,0x8BBA,0x8BBB,0x8BBC,0x8BBD,
-0x8BBE,0x8BBF,0x8BC0,0x8BC1,0x8BC2,0x8BC3,0x8BC4,0x8BC5,
-0x8BC6,0xE6D2,0x8BC7,0x8BC8,0x8BC9,0x8BCA,0x8BCB,0x8BCC,
-0x8BCD,0x8BCE,0x8BCF,0x8BD0,0x8BD1,0x8BD2,0xE6D4,0xE6D3,
-0x8BD3,0x8BD4,0x8BD5,0x8BD6,0x8BD7,0x8BD8,0x8BD9,0x8BDA,
-0x8BDB,0x8BDC,0x8BDD,0x8BDE,0x8BDF,0x8BE0,0x8BE1,0x8BE2,
-0x8BE3,0x8BE4,0x8BE5,0x8BE6,0x8BE7,0x8BE8,0x8BE9,0x8BEA,
-0x8BEB,0x8BEC,0xE6D5,0x8BED,0xD9F8,0x8BEE,0x8BEF,0xE6D6,
-0x8BF0,0x8BF1,0x8BF2,0x8BF3,0x8BF4,0x8BF5,0x8BF6,0x8BF7,
-0xE6D7,0x8BF8,0x8BF9,0x8BFA,0x8BFB,0x8BFC,0x8BFD,0x8BFE,
-0x8C40,0x8C41,0x8C42,0x8C43,0x8C44,0x8C45,0x8C46,0x8C47,
-0xD7D3,0xE6DD,0x8C48,0xE6DE,0xBFD7,0xD4D0,0x8C49,0xD7D6,
-0xB4E6,0xCBEF,0xE6DA,0xD8C3,0xD7CE,0xD0A2,0x8C4A,0xC3CF,
-0x8C4B,0x8C4C,0xE6DF,0xBCBE,0xB9C2,0xE6DB,0xD1A7,0x8C4D,
-0x8C4E,0xBAA2,0xC2CF,0x8C4F,0xD8AB,0x8C50,0x8C51,0x8C52,
-0xCAEB,0xE5EE,0x8C53,0xE6DC,0x8C54,0xB7F5,0x8C55,0x8C56,
-0x8C57,0x8C58,0xC8E6,0x8C59,0x8C5A,0xC4F5,0x8C5B,0x8C5C,
-0xE5B2,0xC4FE,0x8C5D,0xCBFC,0xE5B3,0xD5AC,0x8C5E,0xD3EE,
-0xCAD8,0xB0B2,0x8C5F,0xCBCE,0xCDEA,0x8C60,0x8C61,0xBAEA,
-0x8C62,0x8C63,0x8C64,0xE5B5,0x8C65,0xE5B4,0x8C66,0xD7DA,
-0xB9D9,0xD6E6,0xB6A8,0xCDF0,0xD2CB,0xB1A6,0xCAB5,0x8C67,
-0xB3E8,0xC9F3,0xBFCD,0xD0FB,0xCAD2,0xE5B6,0xBBC2,0x8C68,
-0x8C69,0x8C6A,0xCFDC,0xB9AC,0x8C6B,0x8C6C,0x8C6D,0x8C6E,
-0xD4D7,0x8C6F,0x8C70,0xBAA6,0xD1E7,0xCFFC,0xBCD2,0x8C71,
-0xE5B7,0xC8DD,0x8C72,0x8C73,0x8C74,0xBFED,0xB1F6,0xCBDE,
-0x8C75,0x8C76,0xBCC5,0x8C77,0xBCC4,0xD2FA,0xC3DC,0xBFDC,
-0x8C78,0x8C79,0x8C7A,0x8C7B,0xB8BB,0x8C7C,0x8C7D,0x8C7E,
-0xC3C2,0x8C80,0xBAAE,0xD4A2,0x8C81,0x8C82,0x8C83,0x8C84,
-0x8C85,0x8C86,0x8C87,0x8C88,0x8C89,0xC7DE,0xC4AF,0xB2EC,
-0x8C8A,0xB9D1,0x8C8B,0x8C8C,0xE5BB,0xC1C8,0x8C8D,0x8C8E,
-0xD5AF,0x8C8F,0x8C90,0x8C91,0x8C92,0x8C93,0xE5BC,0x8C94,
-0xE5BE,0x8C95,0x8C96,0x8C97,0x8C98,0x8C99,0x8C9A,0x8C9B,
-0xB4E7,0xB6D4,0xCBC2,0xD1B0,0xB5BC,0x8C9C,0x8C9D,0xCAD9,
-0x8C9E,0xB7E2,0x8C9F,0x8CA0,0xC9E4,0x8CA1,0xBDAB,0x8CA2,
-0x8CA3,0xCEBE,0xD7F0,0x8CA4,0x8CA5,0x8CA6,0x8CA7,0xD0A1,
-0x8CA8,0xC9D9,0x8CA9,0x8CAA,0xB6FB,0xE6D8,0xBCE2,0x8CAB,
-0xB3BE,0x8CAC,0xC9D0,0x8CAD,0xE6D9,0xB3A2,0x8CAE,0x8CAF,
-0x8CB0,0x8CB1,0xDECC,0x8CB2,0xD3C8,0xDECD,0x8CB3,0xD2A2,
-0x8CB4,0x8CB5,0x8CB6,0x8CB7,0xDECE,0x8CB8,0x8CB9,0x8CBA,
-0x8CBB,0xBECD,0x8CBC,0x8CBD,0xDECF,0x8CBE,0x8CBF,0x8CC0,
-0xCAAC,0xD2FC,0xB3DF,0xE5EA,0xC4E1,0xBEA1,0xCEB2,0xC4F2,
-0xBED6,0xC6A8,0xB2E3,0x8CC1,0x8CC2,0xBED3,0x8CC3,0x8CC4,
-0xC7FC,0xCCEB,0xBDEC,0xCEDD,0x8CC5,0x8CC6,0xCABA,0xC6C1,
-0xE5EC,0xD0BC,0x8CC7,0x8CC8,0x8CC9,0xD5B9,0x8CCA,0x8CCB,
-0x8CCC,0xE5ED,0x8CCD,0x8CCE,0x8CCF,0x8CD0,0xCAF4,0x8CD1,
-0xCDC0,0xC2C5,0x8CD2,0xE5EF,0x8CD3,0xC2C4,0xE5F0,0x8CD4,
-0x8CD5,0x8CD6,0x8CD7,0x8CD8,0x8CD9,0x8CDA,0xE5F8,0xCDCD,
-0x8CDB,0xC9BD,0x8CDC,0x8CDD,0x8CDE,0x8CDF,0x8CE0,0x8CE1,
-0x8CE2,0xD2D9,0xE1A8,0x8CE3,0x8CE4,0x8CE5,0x8CE6,0xD3EC,
-0x8CE7,0xCBEA,0xC6F1,0x8CE8,0x8CE9,0x8CEA,0x8CEB,0x8CEC,
-0xE1AC,0x8CED,0x8CEE,0x8CEF,0xE1A7,0xE1A9,0x8CF0,0x8CF1,
-0xE1AA,0xE1AF,0x8CF2,0x8CF3,0xB2ED,0x8CF4,0xE1AB,0xB8DA,
-0xE1AD,0xE1AE,0xE1B0,0xB5BA,0xE1B1,0x8CF5,0x8CF6,0x8CF7,
-0x8CF8,0x8CF9,0xE1B3,0xE1B8,0x8CFA,0x8CFB,0x8CFC,0x8CFD,
-0x8CFE,0xD1D2,0x8D40,0xE1B6,0xE1B5,0xC1EB,0x8D41,0x8D42,
-0x8D43,0xE1B7,0x8D44,0xD4C0,0x8D45,0xE1B2,0x8D46,0xE1BA,
-0xB0B6,0x8D47,0x8D48,0x8D49,0x8D4A,0xE1B4,0x8D4B,0xBFF9,
-0x8D4C,0xE1B9,0x8D4D,0x8D4E,0xE1BB,0x8D4F,0x8D50,0x8D51,
-0x8D52,0x8D53,0x8D54,0xE1BE,0x8D55,0x8D56,0x8D57,0x8D58,
-0x8D59,0x8D5A,0xE1BC,0x8D5B,0x8D5C,0x8D5D,0x8D5E,0x8D5F,
-0x8D60,0xD6C5,0x8D61,0x8D62,0x8D63,0x8D64,0x8D65,0x8D66,
-0x8D67,0xCFBF,0x8D68,0x8D69,0xE1BD,0xE1BF,0xC2CD,0x8D6A,
-0xB6EB,0x8D6B,0xD3F8,0x8D6C,0x8D6D,0xC7CD,0x8D6E,0x8D6F,
-0xB7E5,0x8D70,0x8D71,0x8D72,0x8D73,0x8D74,0x8D75,0x8D76,
-0x8D77,0x8D78,0x8D79,0xBEFE,0x8D7A,0x8D7B,0x8D7C,0x8D7D,
-0x8D7E,0x8D80,0xE1C0,0xE1C1,0x8D81,0x8D82,0xE1C7,0xB3E7,
-0x8D83,0x8D84,0x8D85,0x8D86,0x8D87,0x8D88,0xC6E9,0x8D89,
-0x8D8A,0x8D8B,0x8D8C,0x8D8D,0xB4DE,0x8D8E,0xD1C2,0x8D8F,
-0x8D90,0x8D91,0x8D92,0xE1C8,0x8D93,0x8D94,0xE1C6,0x8D95,
-0x8D96,0x8D97,0x8D98,0x8D99,0xE1C5,0x8D9A,0xE1C3,0xE1C2,
-0x8D9B,0xB1C0,0x8D9C,0x8D9D,0x8D9E,0xD5B8,0xE1C4,0x8D9F,
-0x8DA0,0x8DA1,0x8DA2,0x8DA3,0xE1CB,0x8DA4,0x8DA5,0x8DA6,
-0x8DA7,0x8DA8,0x8DA9,0x8DAA,0x8DAB,0xE1CC,0xE1CA,0x8DAC,
-0x8DAD,0x8DAE,0x8DAF,0x8DB0,0x8DB1,0x8DB2,0x8DB3,0xEFFA,
-0x8DB4,0x8DB5,0xE1D3,0xE1D2,0xC7B6,0x8DB6,0x8DB7,0x8DB8,
-0x8DB9,0x8DBA,0x8DBB,0x8DBC,0x8DBD,0x8DBE,0x8DBF,0x8DC0,
-0xE1C9,0x8DC1,0x8DC2,0xE1CE,0x8DC3,0xE1D0,0x8DC4,0x8DC5,
-0x8DC6,0x8DC7,0x8DC8,0x8DC9,0x8DCA,0x8DCB,0x8DCC,0x8DCD,
-0x8DCE,0xE1D4,0x8DCF,0xE1D1,0xE1CD,0x8DD0,0x8DD1,0xE1CF,
-0x8DD2,0x8DD3,0x8DD4,0x8DD5,0xE1D5,0x8DD6,0x8DD7,0x8DD8,
-0x8DD9,0x8DDA,0x8DDB,0x8DDC,0x8DDD,0x8DDE,0x8DDF,0x8DE0,
-0x8DE1,0x8DE2,0xE1D6,0x8DE3,0x8DE4,0x8DE5,0x8DE6,0x8DE7,
-0x8DE8,0x8DE9,0x8DEA,0x8DEB,0x8DEC,0x8DED,0x8DEE,0x8DEF,
-0x8DF0,0x8DF1,0x8DF2,0x8DF3,0x8DF4,0x8DF5,0x8DF6,0x8DF7,
-0x8DF8,0xE1D7,0x8DF9,0x8DFA,0x8DFB,0xE1D8,0x8DFC,0x8DFD,
-0x8DFE,0x8E40,0x8E41,0x8E42,0x8E43,0x8E44,0x8E45,0x8E46,
-0x8E47,0x8E48,0x8E49,0x8E4A,0x8E4B,0x8E4C,0x8E4D,0x8E4E,
-0x8E4F,0x8E50,0x8E51,0x8E52,0x8E53,0x8E54,0x8E55,0xE1DA,
-0x8E56,0x8E57,0x8E58,0x8E59,0x8E5A,0x8E5B,0x8E5C,0x8E5D,
-0x8E5E,0x8E5F,0x8E60,0x8E61,0x8E62,0xE1DB,0x8E63,0x8E64,
-0x8E65,0x8E66,0x8E67,0x8E68,0x8E69,0xCEA1,0x8E6A,0x8E6B,
-0x8E6C,0x8E6D,0x8E6E,0x8E6F,0x8E70,0x8E71,0x8E72,0x8E73,
-0x8E74,0x8E75,0x8E76,0xE7DD,0x8E77,0xB4A8,0xD6DD,0x8E78,
-0x8E79,0xD1B2,0xB3B2,0x8E7A,0x8E7B,0xB9A4,0xD7F3,0xC7C9,
-0xBEDE,0xB9AE,0x8E7C,0xCED7,0x8E7D,0x8E7E,0xB2EE,0xDBCF,
-0x8E80,0xBCBA,0xD2D1,0xCBC8,0xB0CD,0x8E81,0x8E82,0xCFEF,
-0x8E83,0x8E84,0x8E85,0x8E86,0x8E87,0xD9E3,0xBDED,0x8E88,
-0x8E89,0xB1D2,0xCAD0,0xB2BC,0x8E8A,0xCBA7,0xB7AB,0x8E8B,
-0xCAA6,0x8E8C,0x8E8D,0x8E8E,0xCFA3,0x8E8F,0x8E90,0xE0F8,
-0xD5CA,0xE0FB,0x8E91,0x8E92,0xE0FA,0xC5C1,0xCCFB,0x8E93,
-0xC1B1,0xE0F9,0xD6E3,0xB2AF,0xD6C4,0xB5DB,0x8E94,0x8E95,
-0x8E96,0x8E97,0x8E98,0x8E99,0x8E9A,0x8E9B,0xB4F8,0xD6A1,
-0x8E9C,0x8E9D,0x8E9E,0x8E9F,0x8EA0,0xCFAF,0xB0EF,0x8EA1,
-0x8EA2,0xE0FC,0x8EA3,0x8EA4,0x8EA5,0x8EA6,0x8EA7,0xE1A1,
-0xB3A3,0x8EA8,0x8EA9,0xE0FD,0xE0FE,0xC3B1,0x8EAA,0x8EAB,
-0x8EAC,0x8EAD,0xC3DD,0x8EAE,0xE1A2,0xB7F9,0x8EAF,0x8EB0,
-0x8EB1,0x8EB2,0x8EB3,0x8EB4,0xBBCF,0x8EB5,0x8EB6,0x8EB7,
-0x8EB8,0x8EB9,0x8EBA,0x8EBB,0xE1A3,0xC4BB,0x8EBC,0x8EBD,
-0x8EBE,0x8EBF,0x8EC0,0xE1A4,0x8EC1,0x8EC2,0xE1A5,0x8EC3,
-0x8EC4,0xE1A6,0xB4B1,0x8EC5,0x8EC6,0x8EC7,0x8EC8,0x8EC9,
-0x8ECA,0x8ECB,0x8ECC,0x8ECD,0x8ECE,0x8ECF,0x8ED0,0x8ED1,
-0x8ED2,0x8ED3,0xB8C9,0xC6BD,0xC4EA,0x8ED4,0xB2A2,0x8ED5,
-0xD0D2,0x8ED6,0xE7DB,0xBBC3,0xD3D7,0xD3C4,0x8ED7,0xB9E3,
-0xE2CF,0x8ED8,0x8ED9,0x8EDA,0xD7AF,0x8EDB,0xC7EC,0xB1D3,
-0x8EDC,0x8EDD,0xB4B2,0xE2D1,0x8EDE,0x8EDF,0x8EE0,0xD0F2,
-0xC2AE,0xE2D0,0x8EE1,0xBFE2,0xD3A6,0xB5D7,0xE2D2,0xB5EA,
-0x8EE2,0xC3ED,0xB8FD,0x8EE3,0xB8AE,0x8EE4,0xC5D3,0xB7CF,
-0xE2D4,0x8EE5,0x8EE6,0x8EE7,0x8EE8,0xE2D3,0xB6C8,0xD7F9,
-0x8EE9,0x8EEA,0x8EEB,0x8EEC,0x8EED,0xCDA5,0x8EEE,0x8EEF,
-0x8EF0,0x8EF1,0x8EF2,0xE2D8,0x8EF3,0xE2D6,0xCAFC,0xBFB5,
-0xD3B9,0xE2D5,0x8EF4,0x8EF5,0x8EF6,0x8EF7,0xE2D7,0x8EF8,
-0x8EF9,0x8EFA,0x8EFB,0x8EFC,0x8EFD,0x8EFE,0x8F40,0x8F41,
-0x8F42,0xC1AE,0xC0C8,0x8F43,0x8F44,0x8F45,0x8F46,0x8F47,
-0x8F48,0xE2DB,0xE2DA,0xC0AA,0x8F49,0x8F4A,0xC1CE,0x8F4B,
-0x8F4C,0x8F4D,0x8F4E,0xE2DC,0x8F4F,0x8F50,0x8F51,0x8F52,
-0x8F53,0x8F54,0x8F55,0x8F56,0x8F57,0x8F58,0x8F59,0x8F5A,
-0xE2DD,0x8F5B,0xE2DE,0x8F5C,0x8F5D,0x8F5E,0x8F5F,0x8F60,
-0x8F61,0x8F62,0x8F63,0x8F64,0xDBC8,0x8F65,0xD1D3,0xCDA2,
-0x8F66,0x8F67,0xBDA8,0x8F68,0x8F69,0x8F6A,0xDEC3,0xD8A5,
-0xBFAA,0xDBCD,0xD2EC,0xC6FA,0xC5AA,0x8F6B,0x8F6C,0x8F6D,
-0xDEC4,0x8F6E,0xB1D7,0xDFAE,0x8F6F,0x8F70,0x8F71,0xCABD,
-0x8F72,0xDFB1,0x8F73,0xB9AD,0x8F74,0xD2FD,0x8F75,0xB8A5,
-0xBAEB,0x8F76,0x8F77,0xB3DA,0x8F78,0x8F79,0x8F7A,0xB5DC,
-0xD5C5,0x8F7B,0x8F7C,0x8F7D,0x8F7E,0xC3D6,0xCFD2,0xBBA1,
-0x8F80,0xE5F3,0xE5F2,0x8F81,0x8F82,0xE5F4,0x8F83,0xCDE4,
-0x8F84,0xC8F5,0x8F85,0x8F86,0x8F87,0x8F88,0x8F89,0x8F8A,
-0x8F8B,0xB5AF,0xC7BF,0x8F8C,0xE5F6,0x8F8D,0x8F8E,0x8F8F,
-0xECB0,0x8F90,0x8F91,0x8F92,0x8F93,0x8F94,0x8F95,0x8F96,
-0x8F97,0x8F98,0x8F99,0x8F9A,0x8F9B,0x8F9C,0x8F9D,0x8F9E,
-0xE5E6,0x8F9F,0xB9E9,0xB5B1,0x8FA0,0xC2BC,0xE5E8,0xE5E7,
-0xE5E9,0x8FA1,0x8FA2,0x8FA3,0x8FA4,0xD2CD,0x8FA5,0x8FA6,
-0x8FA7,0xE1EA,0xD0CE,0x8FA8,0xCDAE,0x8FA9,0xD1E5,0x8FAA,
-0x8FAB,0xB2CA,0xB1EB,0x8FAC,0xB1F2,0xC5ED,0x8FAD,0x8FAE,
-0xD5C3,0xD3B0,0x8FAF,0xE1DC,0x8FB0,0x8FB1,0x8FB2,0xE1DD,
-0x8FB3,0xD2DB,0x8FB4,0xB3B9,0xB1CB,0x8FB5,0x8FB6,0x8FB7,
-0xCDF9,0xD5F7,0xE1DE,0x8FB8,0xBEB6,0xB4FD,0x8FB9,0xE1DF,
-0xBADC,0xE1E0,0xBBB2,0xC2C9,0xE1E1,0x8FBA,0x8FBB,0x8FBC,
-0xD0EC,0x8FBD,0xCDBD,0x8FBE,0x8FBF,0xE1E2,0x8FC0,0xB5C3,
-0xC5C7,0xE1E3,0x8FC1,0x8FC2,0xE1E4,0x8FC3,0x8FC4,0x8FC5,
-0x8FC6,0xD3F9,0x8FC7,0x8FC8,0x8FC9,0x8FCA,0x8FCB,0x8FCC,
-0xE1E5,0x8FCD,0xD1AD,0x8FCE,0x8FCF,0xE1E6,0xCEA2,0x8FD0,
-0x8FD1,0x8FD2,0x8FD3,0x8FD4,0x8FD5,0xE1E7,0x8FD6,0xB5C2,
-0x8FD7,0x8FD8,0x8FD9,0x8FDA,0xE1E8,0xBBD5,0x8FDB,0x8FDC,
-0x8FDD,0x8FDE,0x8FDF,0xD0C4,0xE2E0,0xB1D8,0xD2E4,0x8FE0,
-0x8FE1,0xE2E1,0x8FE2,0x8FE3,0xBCC9,0xC8CC,0x8FE4,0xE2E3,
-0xECFE,0xECFD,0xDFAF,0x8FE5,0x8FE6,0x8FE7,0xE2E2,0xD6BE,
-0xCDFC,0xC3A6,0x8FE8,0x8FE9,0x8FEA,0xE3C3,0x8FEB,0x8FEC,
-0xD6D2,0xE2E7,0x8FED,0x8FEE,0xE2E8,0x8FEF,0x8FF0,0xD3C7,
-0x8FF1,0x8FF2,0xE2EC,0xBFEC,0x8FF3,0xE2ED,0xE2E5,0x8FF4,
-0x8FF5,0xB3C0,0x8FF6,0x8FF7,0x8FF8,0xC4EE,0x8FF9,0x8FFA,
-0xE2EE,0x8FFB,0x8FFC,0xD0C3,0x8FFD,0xBAF6,0xE2E9,0xB7DE,
-0xBBB3,0xCCAC,0xCBCB,0xE2E4,0xE2E6,0xE2EA,0xE2EB,0x8FFE,
-0x9040,0x9041,0xE2F7,0x9042,0x9043,0xE2F4,0xD4F5,0xE2F3,
-0x9044,0x9045,0xC5AD,0x9046,0xD5FA,0xC5C2,0xB2C0,0x9047,
-0x9048,0xE2EF,0x9049,0xE2F2,0xC1AF,0xCBBC,0x904A,0x904B,
-0xB5A1,0xE2F9,0x904C,0x904D,0x904E,0xBCB1,0xE2F1,0xD0D4,
-0xD4B9,0xE2F5,0xB9D6,0xE2F6,0x904F,0x9050,0x9051,0xC7D3,
-0x9052,0x9053,0x9054,0x9055,0x9056,0xE2F0,0x9057,0x9058,
-0x9059,0x905A,0x905B,0xD7DC,0xEDA1,0x905C,0x905D,0xE2F8,
-0x905E,0xEDA5,0xE2FE,0xCAD1,0x905F,0x9060,0x9061,0x9062,
-0x9063,0x9064,0x9065,0xC1B5,0x9066,0xBBD0,0x9067,0x9068,
-0xBFD6,0x9069,0xBAE3,0x906A,0x906B,0xCBA1,0x906C,0x906D,
-0x906E,0xEDA6,0xEDA3,0x906F,0x9070,0xEDA2,0x9071,0x9072,
-0x9073,0x9074,0xBBD6,0xEDA7,0xD0F4,0x9075,0x9076,0xEDA4,
-0xBADE,0xB6F7,0xE3A1,0xB6B2,0xCCF1,0xB9A7,0x9077,0xCFA2,
-0xC7A1,0x9078,0x9079,0xBFD2,0x907A,0x907B,0xB6F1,0x907C,
-0xE2FA,0xE2FB,0xE2FD,0xE2FC,0xC4D5,0xE3A2,0x907D,0xD3C1,
-0x907E,0x9080,0x9081,0xE3A7,0xC7C4,0x9082,0x9083,0x9084,
-0x9085,0xCFA4,0x9086,0x9087,0xE3A9,0xBAB7,0x9088,0x9089,
-0x908A,0x908B,0xE3A8,0x908C,0xBBDA,0x908D,0xE3A3,0x908E,
-0x908F,0x9090,0xE3A4,0xE3AA,0x9091,0xE3A6,0x9092,0xCEF2,
-0xD3C6,0x9093,0x9094,0xBBBC,0x9095,0x9096,0xD4C3,0x9097,
-0xC4FA,0x9098,0x9099,0xEDA8,0xD0FC,0xE3A5,0x909A,0xC3F5,
-0x909B,0xE3AD,0xB1AF,0x909C,0xE3B2,0x909D,0x909E,0x909F,
-0xBCC2,0x90A0,0x90A1,0xE3AC,0xB5BF,0x90A2,0x90A3,0x90A4,
-0x90A5,0x90A6,0x90A7,0x90A8,0x90A9,0xC7E9,0xE3B0,0x90AA,
-0x90AB,0x90AC,0xBEAA,0xCDEF,0x90AD,0x90AE,0x90AF,0x90B0,
-0x90B1,0xBBF3,0x90B2,0x90B3,0x90B4,0xCCE8,0x90B5,0x90B6,
-0xE3AF,0x90B7,0xE3B1,0x90B8,0xCFA7,0xE3AE,0x90B9,0xCEA9,
-0xBBDD,0x90BA,0x90BB,0x90BC,0x90BD,0x90BE,0xB5EB,0xBEE5,
-0xB2D2,0xB3CD,0x90BF,0xB1B9,0xE3AB,0xB2D1,0xB5AC,0xB9DF,
-0xB6E8,0x90C0,0x90C1,0xCFEB,0xE3B7,0x90C2,0xBBCC,0x90C3,
-0x90C4,0xC8C7,0xD0CA,0x90C5,0x90C6,0x90C7,0x90C8,0x90C9,
-0xE3B8,0xB3EE,0x90CA,0x90CB,0x90CC,0x90CD,0xEDA9,0x90CE,
-0xD3FA,0xD3E4,0x90CF,0x90D0,0x90D1,0xEDAA,0xE3B9,0xD2E2,
-0x90D2,0x90D3,0x90D4,0x90D5,0x90D6,0xE3B5,0x90D7,0x90D8,
-0x90D9,0x90DA,0xD3DE,0x90DB,0x90DC,0x90DD,0x90DE,0xB8D0,
-0xE3B3,0x90DF,0x90E0,0xE3B6,0xB7DF,0x90E1,0xE3B4,0xC0A2,
-0x90E2,0x90E3,0x90E4,0xE3BA,0x90E5,0x90E6,0x90E7,0x90E8,
-0x90E9,0x90EA,0x90EB,0x90EC,0x90ED,0x90EE,0x90EF,0x90F0,
-0x90F1,0x90F2,0x90F3,0x90F4,0x90F5,0x90F6,0x90F7,0xD4B8,
-0x90F8,0x90F9,0x90FA,0x90FB,0x90FC,0x90FD,0x90FE,0x9140,
-0xB4C8,0x9141,0xE3BB,0x9142,0xBBC5,0x9143,0xC9F7,0x9144,
-0x9145,0xC9E5,0x9146,0x9147,0x9148,0xC4BD,0x9149,0x914A,
-0x914B,0x914C,0x914D,0x914E,0x914F,0xEDAB,0x9150,0x9151,
-0x9152,0x9153,0xC2FD,0x9154,0x9155,0x9156,0x9157,0xBBDB,
-0xBFAE,0x9158,0x9159,0x915A,0x915B,0x915C,0x915D,0x915E,
-0xCEBF,0x915F,0x9160,0x9161,0x9162,0xE3BC,0x9163,0xBFB6,
-0x9164,0x9165,0x9166,0x9167,0x9168,0x9169,0x916A,0x916B,
-0x916C,0x916D,0x916E,0x916F,0x9170,0x9171,0x9172,0x9173,
-0x9174,0x9175,0x9176,0xB1EF,0x9177,0x9178,0xD4F7,0x9179,
-0x917A,0x917B,0x917C,0x917D,0xE3BE,0x917E,0x9180,0x9181,
-0x9182,0x9183,0x9184,0x9185,0x9186,0xEDAD,0x9187,0x9188,
-0x9189,0x918A,0x918B,0x918C,0x918D,0x918E,0x918F,0xE3BF,
-0xBAA9,0xEDAC,0x9190,0x9191,0xE3BD,0x9192,0x9193,0x9194,
-0x9195,0x9196,0x9197,0x9198,0x9199,0x919A,0x919B,0xE3C0,
-0x919C,0x919D,0x919E,0x919F,0x91A0,0x91A1,0xBAB6,0x91A2,
-0x91A3,0x91A4,0xB6AE,0x91A5,0x91A6,0x91A7,0x91A8,0x91A9,
-0xD0B8,0x91AA,0xB0C3,0xEDAE,0x91AB,0x91AC,0x91AD,0x91AE,
-0x91AF,0xEDAF,0xC0C1,0x91B0,0xE3C1,0x91B1,0x91B2,0x91B3,
-0x91B4,0x91B5,0x91B6,0x91B7,0x91B8,0x91B9,0x91BA,0x91BB,
-0x91BC,0x91BD,0x91BE,0x91BF,0x91C0,0x91C1,0xC5B3,0x91C2,
-0x91C3,0x91C4,0x91C5,0x91C6,0x91C7,0x91C8,0x91C9,0x91CA,
-0x91CB,0x91CC,0x91CD,0x91CE,0x91CF,0xE3C2,0x91D0,0x91D1,
-0x91D2,0x91D3,0x91D4,0x91D5,0x91D6,0x91D7,0x91D8,0xDCB2,
-0x91D9,0x91DA,0x91DB,0x91DC,0x91DD,0x91DE,0xEDB0,0x91DF,
-0xB8EA,0x91E0,0xCEEC,0xEAA7,0xD0E7,0xCAF9,0xC8D6,0xCFB7,
-0xB3C9,0xCED2,0xBDE4,0x91E1,0x91E2,0xE3DE,0xBBF2,0xEAA8,
-0xD5BD,0x91E3,0xC6DD,0xEAA9,0x91E4,0x91E5,0x91E6,0xEAAA,
-0x91E7,0xEAAC,0xEAAB,0x91E8,0xEAAE,0xEAAD,0x91E9,0x91EA,
-0x91EB,0x91EC,0xBDD8,0x91ED,0xEAAF,0x91EE,0xC2BE,0x91EF,
-0x91F0,0x91F1,0x91F2,0xB4C1,0xB4F7,0x91F3,0x91F4,0xBBA7,
-0x91F5,0x91F6,0x91F7,0x91F8,0x91F9,0xECE6,0xECE5,0xB7BF,
-0xCBF9,0xB1E2,0x91FA,0xECE7,0x91FB,0x91FC,0x91FD,0xC9C8,
-0xECE8,0xECE9,0x91FE,0xCAD6,0xDED0,0xB2C5,0xD4FA,0x9240,
-0x9241,0xC6CB,0xB0C7,0xB4F2,0xC8D3,0x9242,0x9243,0x9244,
-0xCDD0,0x9245,0x9246,0xBFB8,0x9247,0x9248,0x9249,0x924A,
-0x924B,0x924C,0x924D,0xBFDB,0x924E,0x924F,0xC7A4,0xD6B4,
-0x9250,0xC0A9,0xDED1,0xC9A8,0xD1EF,0xC5A4,0xB0E7,0xB3B6,
-0xC8C5,0x9251,0x9252,0xB0E2,0x9253,0x9254,0xB7F6,0x9255,
-0x9256,0xC5FA,0x9257,0x9258,0xB6F3,0x9259,0xD5D2,0xB3D0,
-0xBCBC,0x925A,0x925B,0x925C,0xB3AD,0x925D,0x925E,0x925F,
-0x9260,0xBEF1,0xB0D1,0x9261,0x9262,0x9263,0x9264,0x9265,
-0x9266,0xD2D6,0xCAE3,0xD7A5,0x9267,0xCDB6,0xB6B6,0xBFB9,
-0xD5DB,0x9268,0xB8A7,0xC5D7,0x9269,0x926A,0x926B,0xDED2,
-0xBFD9,0xC2D5,0xC7C0,0x926C,0xBBA4,0xB1A8,0x926D,0x926E,
-0xC5EA,0x926F,0x9270,0xC5FB,0xCCA7,0x9271,0x9272,0x9273,
-0x9274,0xB1A7,0x9275,0x9276,0x9277,0xB5D6,0x9278,0x9279,
-0x927A,0xC4A8,0x927B,0xDED3,0xD1BA,0xB3E9,0x927C,0xC3F2,
-0x927D,0x927E,0xB7F7,0x9280,0xD6F4,0xB5A3,0xB2F0,0xC4B4,
-0xC4E9,0xC0AD,0xDED4,0x9281,0xB0E8,0xC5C4,0xC1E0,0x9282,
-0xB9D5,0x9283,0xBEDC,0xCDD8,0xB0CE,0x9284,0xCDCF,0xDED6,
-0xBED0,0xD7BE,0xDED5,0xD5D0,0xB0DD,0x9285,0x9286,0xC4E2,
-0x9287,0x9288,0xC2A3,0xBCF0,0x9289,0xD3B5,0xC0B9,0xC5A1,
-0xB2A6,0xD4F1,0x928A,0x928B,0xC0A8,0xCAC3,0xDED7,0xD5FC,
-0x928C,0xB9B0,0x928D,0xC8AD,0xCBA9,0x928E,0xDED9,0xBFBD,
-0x928F,0x9290,0x9291,0x9292,0xC6B4,0xD7A7,0xCAB0,0xC4C3,
-0x9293,0xB3D6,0xB9D2,0x9294,0x9295,0x9296,0x9297,0xD6B8,
-0xEAFC,0xB0B4,0x9298,0x9299,0x929A,0x929B,0xBFE6,0x929C,
-0x929D,0xCCF4,0x929E,0x929F,0x92A0,0x92A1,0xCDDA,0x92A2,
-0x92A3,0x92A4,0xD6BF,0xC2CE,0x92A5,0xCECE,0xCCA2,0xD0AE,
-0xC4D3,0xB5B2,0xDED8,0xD5F5,0xBCB7,0xBBD3,0x92A6,0x92A7,
-0xB0A4,0x92A8,0xC5B2,0xB4EC,0x92A9,0x92AA,0x92AB,0xD5F1,
-0x92AC,0x92AD,0xEAFD,0x92AE,0x92AF,0x92B0,0x92B1,0x92B2,
-0x92B3,0xDEDA,0xCDA6,0x92B4,0x92B5,0xCDEC,0x92B6,0x92B7,
-0x92B8,0x92B9,0xCEE6,0xDEDC,0x92BA,0xCDB1,0xC0A6,0x92BB,
-0x92BC,0xD7BD,0x92BD,0xDEDB,0xB0C6,0xBAB4,0xC9D3,0xC4F3,
-0xBEE8,0x92BE,0x92BF,0x92C0,0x92C1,0xB2B6,0x92C2,0x92C3,
-0x92C4,0x92C5,0x92C6,0x92C7,0x92C8,0x92C9,0xC0CC,0xCBF0,
-0x92CA,0xBCF1,0xBBBB,0xB5B7,0x92CB,0x92CC,0x92CD,0xC5F5,
-0x92CE,0xDEE6,0x92CF,0x92D0,0x92D1,0xDEE3,0xBEDD,0x92D2,
-0x92D3,0xDEDF,0x92D4,0x92D5,0x92D6,0x92D7,0xB4B7,0xBDDD,
-0x92D8,0x92D9,0xDEE0,0xC4ED,0x92DA,0x92DB,0x92DC,0x92DD,
-0xCFC6,0x92DE,0xB5E0,0x92DF,0x92E0,0x92E1,0x92E2,0xB6DE,
-0xCADA,0xB5F4,0xDEE5,0x92E3,0xD5C6,0x92E4,0xDEE1,0xCCCD,
-0xC6FE,0x92E5,0xC5C5,0x92E6,0x92E7,0x92E8,0xD2B4,0x92E9,
-0xBEF2,0x92EA,0x92EB,0x92EC,0x92ED,0x92EE,0x92EF,0x92F0,
-0xC2D3,0x92F1,0xCCBD,0xB3B8,0x92F2,0xBDD3,0x92F3,0xBFD8,
-0xCDC6,0xD1DA,0xB4EB,0x92F4,0xDEE4,0xDEDD,0xDEE7,0x92F5,
-0xEAFE,0x92F6,0x92F7,0xC2B0,0xDEE2,0x92F8,0x92F9,0xD6C0,
-0xB5A7,0x92FA,0xB2F4,0x92FB,0xDEE8,0x92FC,0xDEF2,0x92FD,
-0x92FE,0x9340,0x9341,0x9342,0xDEED,0x9343,0xDEF1,0x9344,
-0x9345,0xC8E0,0x9346,0x9347,0x9348,0xD7E1,0xDEEF,0xC3E8,
-0xCCE1,0x9349,0xB2E5,0x934A,0x934B,0x934C,0xD2BE,0x934D,
-0x934E,0x934F,0x9350,0x9351,0x9352,0x9353,0xDEEE,0x9354,
-0xDEEB,0xCED5,0x9355,0xB4A7,0x9356,0x9357,0x9358,0x9359,
-0x935A,0xBFAB,0xBEBE,0x935B,0x935C,0xBDD2,0x935D,0x935E,
-0x935F,0x9360,0xDEE9,0x9361,0xD4AE,0x9362,0xDEDE,0x9363,
-0xDEEA,0x9364,0x9365,0x9366,0x9367,0xC0BF,0x9368,0xDEEC,
-0xB2F3,0xB8E9,0xC2A7,0x9369,0x936A,0xBDC1,0x936B,0x936C,
-0x936D,0x936E,0x936F,0xDEF5,0xDEF8,0x9370,0x9371,0xB2AB,
-0xB4A4,0x9372,0x9373,0xB4EA,0xC9A6,0x9374,0x9375,0x9376,
-0x9377,0x9378,0x9379,0xDEF6,0xCBD1,0x937A,0xB8E3,0x937B,
-0xDEF7,0xDEFA,0x937C,0x937D,0x937E,0x9380,0xDEF9,0x9381,
-0x9382,0x9383,0xCCC2,0x9384,0xB0E1,0xB4EE,0x9385,0x9386,
-0x9387,0x9388,0x9389,0x938A,0xE5BA,0x938B,0x938C,0x938D,
-0x938E,0x938F,0xD0AF,0x9390,0x9391,0xB2EB,0x9392,0xEBA1,
-0x9393,0xDEF4,0x9394,0x9395,0xC9E3,0xDEF3,0xB0DA,0xD2A1,
-0xB1F7,0x9396,0xCCAF,0x9397,0x9398,0x9399,0x939A,0x939B,
-0x939C,0x939D,0xDEF0,0x939E,0xCBA4,0x939F,0x93A0,0x93A1,
-0xD5AA,0x93A2,0x93A3,0x93A4,0x93A5,0x93A6,0xDEFB,0x93A7,
-0x93A8,0x93A9,0x93AA,0x93AB,0x93AC,0x93AD,0x93AE,0xB4DD,
-0x93AF,0xC4A6,0x93B0,0x93B1,0x93B2,0xDEFD,0x93B3,0x93B4,
-0x93B5,0x93B6,0x93B7,0x93B8,0x93B9,0x93BA,0x93BB,0x93BC,
-0xC3FE,0xC4A1,0xDFA1,0x93BD,0x93BE,0x93BF,0x93C0,0x93C1,
-0x93C2,0x93C3,0xC1CC,0x93C4,0xDEFC,0xBEEF,0x93C5,0xC6B2,
-0x93C6,0x93C7,0x93C8,0x93C9,0x93CA,0x93CB,0x93CC,0x93CD,
-0x93CE,0xB3C5,0xC8F6,0x93CF,0x93D0,0xCBBA,0xDEFE,0x93D1,
-0x93D2,0xDFA4,0x93D3,0x93D4,0x93D5,0x93D6,0xD7B2,0x93D7,
-0x93D8,0x93D9,0x93DA,0x93DB,0xB3B7,0x93DC,0x93DD,0x93DE,
-0x93DF,0xC1C3,0x93E0,0x93E1,0xC7CB,0xB2A5,0xB4E9,0x93E2,
-0xD7AB,0x93E3,0x93E4,0x93E5,0x93E6,0xC4EC,0x93E7,0xDFA2,
-0xDFA3,0x93E8,0xDFA5,0x93E9,0xBAB3,0x93EA,0x93EB,0x93EC,
-0xDFA6,0x93ED,0xC0DE,0x93EE,0x93EF,0xC9C3,0x93F0,0x93F1,
-0x93F2,0x93F3,0x93F4,0x93F5,0x93F6,0xB2D9,0xC7E6,0x93F7,
-0xDFA7,0x93F8,0xC7DC,0x93F9,0x93FA,0x93FB,0x93FC,0xDFA8,
-0xEBA2,0x93FD,0x93FE,0x9440,0x9441,0x9442,0xCBD3,0x9443,
-0x9444,0x9445,0xDFAA,0x9446,0xDFA9,0x9447,0xB2C1,0x9448,
-0x9449,0x944A,0x944B,0x944C,0x944D,0x944E,0x944F,0x9450,
-0x9451,0x9452,0x9453,0x9454,0x9455,0x9456,0x9457,0x9458,
-0x9459,0x945A,0x945B,0x945C,0x945D,0x945E,0x945F,0x9460,
-0xC5CA,0x9461,0x9462,0x9463,0x9464,0x9465,0x9466,0x9467,
-0x9468,0xDFAB,0x9469,0x946A,0x946B,0x946C,0x946D,0x946E,
-0x946F,0x9470,0xD4DC,0x9471,0x9472,0x9473,0x9474,0x9475,
-0xC8C1,0x9476,0x9477,0x9478,0x9479,0x947A,0x947B,0x947C,
-0x947D,0x947E,0x9480,0x9481,0x9482,0xDFAC,0x9483,0x9484,
-0x9485,0x9486,0x9487,0xBEF0,0x9488,0x9489,0xDFAD,0xD6A7,
-0x948A,0x948B,0x948C,0x948D,0xEAB7,0xEBB6,0xCAD5,0x948E,
-0xD8FC,0xB8C4,0x948F,0xB9A5,0x9490,0x9491,0xB7C5,0xD5FE,
-0x9492,0x9493,0x9494,0x9495,0x9496,0xB9CA,0x9497,0x9498,
-0xD0A7,0xF4CD,0x9499,0x949A,0xB5D0,0x949B,0x949C,0xC3F4,
-0x949D,0xBEC8,0x949E,0x949F,0x94A0,0xEBB7,0xB0BD,0x94A1,
-0x94A2,0xBDCC,0x94A3,0xC1B2,0x94A4,0xB1D6,0xB3A8,0x94A5,
-0x94A6,0x94A7,0xB8D2,0xC9A2,0x94A8,0x94A9,0xB6D8,0x94AA,
-0x94AB,0x94AC,0x94AD,0xEBB8,0xBEB4,0x94AE,0x94AF,0x94B0,
-0xCAFD,0x94B1,0xC7C3,0x94B2,0xD5FB,0x94B3,0x94B4,0xB7F3,
-0x94B5,0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BB,0x94BC,
-0x94BD,0x94BE,0x94BF,0x94C0,0x94C1,0x94C2,0x94C3,0xCEC4,
-0x94C4,0x94C5,0x94C6,0xD5AB,0xB1F3,0x94C7,0x94C8,0x94C9,
-0xECB3,0xB0DF,0x94CA,0xECB5,0x94CB,0x94CC,0x94CD,0xB6B7,
-0x94CE,0xC1CF,0x94CF,0xF5FA,0xD0B1,0x94D0,0x94D1,0xD5E5,
-0x94D2,0xCED3,0x94D3,0x94D4,0xBDEF,0xB3E2,0x94D5,0xB8AB,
-0x94D6,0xD5B6,0x94D7,0xEDBD,0x94D8,0xB6CF,0x94D9,0xCBB9,
-0xD0C2,0x94DA,0x94DB,0x94DC,0x94DD,0x94DE,0x94DF,0x94E0,
-0x94E1,0xB7BD,0x94E2,0x94E3,0xECB6,0xCAA9,0x94E4,0x94E5,
-0x94E6,0xC5D4,0x94E7,0xECB9,0xECB8,0xC2C3,0xECB7,0x94E8,
-0x94E9,0x94EA,0x94EB,0xD0FD,0xECBA,0x94EC,0xECBB,0xD7E5,
-0x94ED,0x94EE,0xECBC,0x94EF,0x94F0,0x94F1,0xECBD,0xC6EC,
-0x94F2,0x94F3,0x94F4,0x94F5,0x94F6,0x94F7,0x94F8,0x94F9,
-0xCEDE,0x94FA,0xBCC8,0x94FB,0x94FC,0xC8D5,0xB5A9,0xBEC9,
-0xD6BC,0xD4E7,0x94FD,0x94FE,0xD1AE,0xD0F1,0xEAB8,0xEAB9,
-0xEABA,0xBAB5,0x9540,0x9541,0x9542,0x9543,0xCAB1,0xBFF5,
-0x9544,0x9545,0xCDFA,0x9546,0x9547,0x9548,0x9549,0x954A,
-0xEAC0,0x954B,0xB0BA,0xEABE,0x954C,0x954D,0xC0A5,0x954E,
-0x954F,0x9550,0xEABB,0x9551,0xB2FD,0x9552,0xC3F7,0xBBE8,
-0x9553,0x9554,0x9555,0xD2D7,0xCEF4,0xEABF,0x9556,0x9557,
-0x9558,0xEABC,0x9559,0x955A,0x955B,0xEAC3,0x955C,0xD0C7,
-0xD3B3,0x955D,0x955E,0x955F,0x9560,0xB4BA,0x9561,0xC3C1,
-0xD7F2,0x9562,0x9563,0x9564,0x9565,0xD5D1,0x9566,0xCAC7,
-0x9567,0xEAC5,0x9568,0x9569,0xEAC4,0xEAC7,0xEAC6,0x956A,
-0x956B,0x956C,0x956D,0x956E,0xD6E7,0x956F,0xCFD4,0x9570,
-0x9571,0xEACB,0x9572,0xBBCE,0x9573,0x9574,0x9575,0x9576,
-0x9577,0x9578,0x9579,0xBDFA,0xC9CE,0x957A,0x957B,0xEACC,
-0x957C,0x957D,0xC9B9,0xCFFE,0xEACA,0xD4CE,0xEACD,0xEACF,
-0x957E,0x9580,0xCDED,0x9581,0x9582,0x9583,0x9584,0xEAC9,
-0x9585,0xEACE,0x9586,0x9587,0xCEEE,0x9588,0xBBDE,0x9589,
-0xB3BF,0x958A,0x958B,0x958C,0x958D,0x958E,0xC6D5,0xBEB0,
-0xCEFA,0x958F,0x9590,0x9591,0xC7E7,0x9592,0xBEA7,0xEAD0,
-0x9593,0x9594,0xD6C7,0x9595,0x9596,0x9597,0xC1C0,0x9598,
-0x9599,0x959A,0xD4DD,0x959B,0xEAD1,0x959C,0x959D,0xCFBE,
-0x959E,0x959F,0x95A0,0x95A1,0xEAD2,0x95A2,0x95A3,0x95A4,
-0x95A5,0xCAEE,0x95A6,0x95A7,0x95A8,0x95A9,0xC5AF,0xB0B5,
-0x95AA,0x95AB,0x95AC,0x95AD,0x95AE,0xEAD4,0x95AF,0x95B0,
-0x95B1,0x95B2,0x95B3,0x95B4,0x95B5,0x95B6,0x95B7,0xEAD3,
-0xF4DF,0x95B8,0x95B9,0x95BA,0x95BB,0x95BC,0xC4BA,0x95BD,
-0x95BE,0x95BF,0x95C0,0x95C1,0xB1A9,0x95C2,0x95C3,0x95C4,
-0x95C5,0xE5DF,0x95C6,0x95C7,0x95C8,0x95C9,0xEAD5,0x95CA,
-0x95CB,0x95CC,0x95CD,0x95CE,0x95CF,0x95D0,0x95D1,0x95D2,
-0x95D3,0x95D4,0x95D5,0x95D6,0x95D7,0x95D8,0x95D9,0x95DA,
-0x95DB,0x95DC,0x95DD,0x95DE,0x95DF,0x95E0,0x95E1,0x95E2,
-0x95E3,0xCAEF,0x95E4,0xEAD6,0xEAD7,0xC6D8,0x95E5,0x95E6,
-0x95E7,0x95E8,0x95E9,0x95EA,0x95EB,0x95EC,0xEAD8,0x95ED,
-0x95EE,0xEAD9,0x95EF,0x95F0,0x95F1,0x95F2,0x95F3,0x95F4,
-0xD4BB,0x95F5,0xC7FA,0xD2B7,0xB8FC,0x95F6,0x95F7,0xEAC2,
-0x95F8,0xB2DC,0x95F9,0x95FA,0xC2FC,0x95FB,0xD4F8,0xCCE6,
-0xD7EE,0x95FC,0x95FD,0x95FE,0x9640,0x9641,0x9642,0x9643,
-0xD4C2,0xD3D0,0xEBC3,0xC5F3,0x9644,0xB7FE,0x9645,0x9646,
-0xEBD4,0x9647,0x9648,0x9649,0xCBB7,0xEBDE,0x964A,0xC0CA,
-0x964B,0x964C,0x964D,0xCDFB,0x964E,0xB3AF,0x964F,0xC6DA,
-0x9650,0x9651,0x9652,0x9653,0x9654,0x9655,0xEBFC,0x9656,
-0xC4BE,0x9657,0xCEB4,0xC4A9,0xB1BE,0xD4FD,0x9658,0xCAF5,
-0x9659,0xD6EC,0x965A,0x965B,0xC6D3,0xB6E4,0x965C,0x965D,
-0x965E,0x965F,0xBBFA,0x9660,0x9661,0xD0E0,0x9662,0x9663,
-0xC9B1,0x9664,0xD4D3,0xC8A8,0x9665,0x9666,0xB8CB,0x9667,
-0xE8BE,0xC9BC,0x9668,0x9669,0xE8BB,0x966A,0xC0EE,0xD0D3,
-0xB2C4,0xB4E5,0x966B,0xE8BC,0x966C,0x966D,0xD5C8,0x966E,
-0x966F,0x9670,0x9671,0x9672,0xB6C5,0x9673,0xE8BD,0xCAF8,
-0xB8DC,0xCCF5,0x9674,0x9675,0x9676,0xC0B4,0x9677,0x9678,
-0xD1EE,0xE8BF,0xE8C2,0x9679,0x967A,0xBABC,0x967B,0xB1AD,
-0xBDDC,0x967C,0xEABD,0xE8C3,0x967D,0xE8C6,0x967E,0xE8CB,
-0x9680,0x9681,0x9682,0x9683,0xE8CC,0x9684,0xCBC9,0xB0E5,
-0x9685,0xBCAB,0x9686,0x9687,0xB9B9,0x9688,0x9689,0xE8C1,
-0x968A,0xCDF7,0x968B,0xE8CA,0x968C,0x968D,0x968E,0x968F,
-0xCEF6,0x9690,0x9691,0x9692,0x9693,0xD5ED,0x9694,0xC1D6,
-0xE8C4,0x9695,0xC3B6,0x9696,0xB9FB,0xD6A6,0xE8C8,0x9697,
-0x9698,0x9699,0xCAE0,0xD4E6,0x969A,0xE8C0,0x969B,0xE8C5,
-0xE8C7,0x969C,0xC7B9,0xB7E3,0x969D,0xE8C9,0x969E,0xBFDD,
-0xE8D2,0x969F,0x96A0,0xE8D7,0x96A1,0xE8D5,0xBCDC,0xBCCF,
-0xE8DB,0x96A2,0x96A3,0x96A4,0x96A5,0x96A6,0x96A7,0x96A8,
-0x96A9,0xE8DE,0x96AA,0xE8DA,0xB1FA,0x96AB,0x96AC,0x96AD,
-0x96AE,0x96AF,0x96B0,0x96B1,0x96B2,0x96B3,0x96B4,0xB0D8,
-0xC4B3,0xB8CC,0xC6E2,0xC8BE,0xC8E1,0x96B5,0x96B6,0x96B7,
-0xE8CF,0xE8D4,0xE8D6,0x96B8,0xB9F1,0xE8D8,0xD7F5,0x96B9,
-0xC4FB,0x96BA,0xE8DC,0x96BB,0x96BC,0xB2E9,0x96BD,0x96BE,
-0x96BF,0xE8D1,0x96C0,0x96C1,0xBCED,0x96C2,0x96C3,0xBFC2,
-0xE8CD,0xD6F9,0x96C4,0xC1F8,0xB2F1,0x96C5,0x96C6,0x96C7,
-0x96C8,0x96C9,0x96CA,0x96CB,0x96CC,0xE8DF,0x96CD,0xCAC1,
-0xE8D9,0x96CE,0x96CF,0x96D0,0x96D1,0xD5A4,0x96D2,0xB1EA,
-0xD5BB,0xE8CE,0xE8D0,0xB6B0,0xE8D3,0x96D3,0xE8DD,0xC0B8,
-0x96D4,0xCAF7,0x96D5,0xCBA8,0x96D6,0x96D7,0xC6DC,0xC0F5,
-0x96D8,0x96D9,0x96DA,0x96DB,0x96DC,0xE8E9,0x96DD,0x96DE,
-0x96DF,0xD0A3,0x96E0,0x96E1,0x96E2,0x96E3,0x96E4,0x96E5,
-0x96E6,0xE8F2,0xD6EA,0x96E7,0x96E8,0x96E9,0x96EA,0x96EB,
-0x96EC,0x96ED,0xE8E0,0xE8E1,0x96EE,0x96EF,0x96F0,0xD1F9,
-0xBACB,0xB8F9,0x96F1,0x96F2,0xB8F1,0xD4D4,0xE8EF,0x96F3,
-0xE8EE,0xE8EC,0xB9F0,0xCCD2,0xE8E6,0xCEA6,0xBFF2,0x96F4,
-0xB0B8,0xE8F1,0xE8F0,0x96F5,0xD7C0,0x96F6,0xE8E4,0x96F7,
-0xCDA9,0xC9A3,0x96F8,0xBBB8,0xBDDB,0xE8EA,0x96F9,0x96FA,
-0x96FB,0x96FC,0x96FD,0x96FE,0x9740,0x9741,0x9742,0x9743,
-0xE8E2,0xE8E3,0xE8E5,0xB5B5,0xE8E7,0xC7C5,0xE8EB,0xE8ED,
-0xBDB0,0xD7AE,0x9744,0xE8F8,0x9745,0x9746,0x9747,0x9748,
-0x9749,0x974A,0x974B,0x974C,0xE8F5,0x974D,0xCDB0,0xE8F6,
-0x974E,0x974F,0x9750,0x9751,0x9752,0x9753,0x9754,0x9755,
-0x9756,0xC1BA,0x9757,0xE8E8,0x9758,0xC3B7,0xB0F0,0x9759,
-0x975A,0x975B,0x975C,0x975D,0x975E,0x975F,0x9760,0xE8F4,
-0x9761,0x9762,0x9763,0xE8F7,0x9764,0x9765,0x9766,0xB9A3,
-0x9767,0x9768,0x9769,0x976A,0x976B,0x976C,0x976D,0x976E,
-0x976F,0x9770,0xC9D2,0x9771,0x9772,0x9773,0xC3CE,0xCEE0,
-0xC0E6,0x9774,0x9775,0x9776,0x9777,0xCBF3,0x9778,0xCCDD,
-0xD0B5,0x9779,0x977A,0xCAE1,0x977B,0xE8F3,0x977C,0x977D,
-0x977E,0x9780,0x9781,0x9782,0x9783,0x9784,0x9785,0x9786,
-0xBCEC,0x9787,0xE8F9,0x9788,0x9789,0x978A,0x978B,0x978C,
-0x978D,0xC3DE,0x978E,0xC6E5,0x978F,0xB9F7,0x9790,0x9791,
-0x9792,0x9793,0xB0F4,0x9794,0x9795,0xD7D8,0x9796,0x9797,
-0xBCAC,0x9798,0xC5EF,0x9799,0x979A,0x979B,0x979C,0x979D,
-0xCCC4,0x979E,0x979F,0xE9A6,0x97A0,0x97A1,0x97A2,0x97A3,
-0x97A4,0x97A5,0x97A6,0x97A7,0x97A8,0x97A9,0xC9AD,0x97AA,
-0xE9A2,0xC0E2,0x97AB,0x97AC,0x97AD,0xBFC3,0x97AE,0x97AF,
-0x97B0,0xE8FE,0xB9D7,0x97B1,0xE8FB,0x97B2,0x97B3,0x97B4,
-0x97B5,0xE9A4,0x97B6,0x97B7,0x97B8,0xD2CE,0x97B9,0x97BA,
-0x97BB,0x97BC,0x97BD,0xE9A3,0x97BE,0xD6B2,0xD7B5,0x97BF,
-0xE9A7,0x97C0,0xBDB7,0x97C1,0x97C2,0x97C3,0x97C4,0x97C5,
-0x97C6,0x97C7,0x97C8,0x97C9,0x97CA,0x97CB,0x97CC,0xE8FC,
-0xE8FD,0x97CD,0x97CE,0x97CF,0xE9A1,0x97D0,0x97D1,0x97D2,
-0x97D3,0x97D4,0x97D5,0x97D6,0x97D7,0xCDD6,0x97D8,0x97D9,
-0xD2AC,0x97DA,0x97DB,0x97DC,0xE9B2,0x97DD,0x97DE,0x97DF,
-0x97E0,0xE9A9,0x97E1,0x97E2,0x97E3,0xB4AA,0x97E4,0xB4BB,
-0x97E5,0x97E6,0xE9AB,0x97E7,0x97E8,0x97E9,0x97EA,0x97EB,
-0x97EC,0x97ED,0x97EE,0x97EF,0x97F0,0x97F1,0x97F2,0x97F3,
-0x97F4,0x97F5,0x97F6,0x97F7,0xD0A8,0x97F8,0x97F9,0xE9A5,
-0x97FA,0x97FB,0xB3FE,0x97FC,0x97FD,0xE9AC,0xC0E3,0x97FE,
-0xE9AA,0x9840,0x9841,0xE9B9,0x9842,0x9843,0xE9B8,0x9844,
-0x9845,0x9846,0x9847,0xE9AE,0x9848,0x9849,0xE8FA,0x984A,
-0x984B,0xE9A8,0x984C,0x984D,0x984E,0x984F,0x9850,0xBFAC,
-0xE9B1,0xE9BA,0x9851,0x9852,0xC2A5,0x9853,0x9854,0x9855,
-0xE9AF,0x9856,0xB8C5,0x9857,0xE9AD,0x9858,0xD3DC,0xE9B4,
-0xE9B5,0xE9B7,0x9859,0x985A,0x985B,0xE9C7,0x985C,0x985D,
-0x985E,0x985F,0x9860,0x9861,0xC0C6,0xE9C5,0x9862,0x9863,
-0xE9B0,0x9864,0x9865,0xE9BB,0xB0F1,0x9866,0x9867,0x9868,
-0x9869,0x986A,0x986B,0x986C,0x986D,0x986E,0x986F,0xE9BC,
-0xD5A5,0x9870,0x9871,0xE9BE,0x9872,0xE9BF,0x9873,0x9874,
-0x9875,0xE9C1,0x9876,0x9877,0xC1F1,0x9878,0x9879,0xC8B6,
-0x987A,0x987B,0x987C,0xE9BD,0x987D,0x987E,0x9880,0x9881,
-0x9882,0xE9C2,0x9883,0x9884,0x9885,0x9886,0x9887,0x9888,
-0x9889,0x988A,0xE9C3,0x988B,0xE9B3,0x988C,0xE9B6,0x988D,
-0xBBB1,0x988E,0x988F,0x9890,0xE9C0,0x9891,0x9892,0x9893,
-0x9894,0x9895,0x9896,0xBCF7,0x9897,0x9898,0x9899,0xE9C4,
-0xE9C6,0x989A,0x989B,0x989C,0x989D,0x989E,0x989F,0x98A0,
-0x98A1,0x98A2,0x98A3,0x98A4,0x98A5,0xE9CA,0x98A6,0x98A7,
-0x98A8,0x98A9,0xE9CE,0x98AA,0x98AB,0x98AC,0x98AD,0x98AE,
-0x98AF,0x98B0,0x98B1,0x98B2,0x98B3,0xB2DB,0x98B4,0xE9C8,
-0x98B5,0x98B6,0x98B7,0x98B8,0x98B9,0x98BA,0x98BB,0x98BC,
-0x98BD,0x98BE,0xB7AE,0x98BF,0x98C0,0x98C1,0x98C2,0x98C3,
-0x98C4,0x98C5,0x98C6,0x98C7,0x98C8,0x98C9,0x98CA,0xE9CB,
-0xE9CC,0x98CB,0x98CC,0x98CD,0x98CE,0x98CF,0x98D0,0xD5C1,
-0x98D1,0xC4A3,0x98D2,0x98D3,0x98D4,0x98D5,0x98D6,0x98D7,
-0xE9D8,0x98D8,0xBAE1,0x98D9,0x98DA,0x98DB,0x98DC,0xE9C9,
-0x98DD,0xD3A3,0x98DE,0x98DF,0x98E0,0xE9D4,0x98E1,0x98E2,
-0x98E3,0x98E4,0x98E5,0x98E6,0x98E7,0xE9D7,0xE9D0,0x98E8,
-0x98E9,0x98EA,0x98EB,0x98EC,0xE9CF,0x98ED,0x98EE,0xC7C1,
-0x98EF,0x98F0,0x98F1,0x98F2,0x98F3,0x98F4,0x98F5,0x98F6,
-0xE9D2,0x98F7,0x98F8,0x98F9,0x98FA,0x98FB,0x98FC,0x98FD,
-0xE9D9,0xB3C8,0x98FE,0xE9D3,0x9940,0x9941,0x9942,0x9943,
-0x9944,0xCFF0,0x9945,0x9946,0x9947,0xE9CD,0x9948,0x9949,
-0x994A,0x994B,0x994C,0x994D,0x994E,0x994F,0x9950,0x9951,
-0x9952,0xB3F7,0x9953,0x9954,0x9955,0x9956,0x9957,0x9958,
-0x9959,0xE9D6,0x995A,0x995B,0xE9DA,0x995C,0x995D,0x995E,
-0xCCB4,0x995F,0x9960,0x9961,0xCFAD,0x9962,0x9963,0x9964,
-0x9965,0x9966,0x9967,0x9968,0x9969,0x996A,0xE9D5,0x996B,
-0xE9DC,0xE9DB,0x996C,0x996D,0x996E,0x996F,0x9970,0xE9DE,
-0x9971,0x9972,0x9973,0x9974,0x9975,0x9976,0x9977,0x9978,
-0xE9D1,0x9979,0x997A,0x997B,0x997C,0x997D,0x997E,0x9980,
-0x9981,0xE9DD,0x9982,0xE9DF,0xC3CA,0x9983,0x9984,0x9985,
-0x9986,0x9987,0x9988,0x9989,0x998A,0x998B,0x998C,0x998D,
-0x998E,0x998F,0x9990,0x9991,0x9992,0x9993,0x9994,0x9995,
-0x9996,0x9997,0x9998,0x9999,0x999A,0x999B,0x999C,0x999D,
-0x999E,0x999F,0x99A0,0x99A1,0x99A2,0x99A3,0x99A4,0x99A5,
-0x99A6,0x99A7,0x99A8,0x99A9,0x99AA,0x99AB,0x99AC,0x99AD,
-0x99AE,0x99AF,0x99B0,0x99B1,0x99B2,0x99B3,0x99B4,0x99B5,
-0x99B6,0x99B7,0x99B8,0x99B9,0x99BA,0x99BB,0x99BC,0x99BD,
-0x99BE,0x99BF,0x99C0,0x99C1,0x99C2,0x99C3,0x99C4,0x99C5,
-0x99C6,0x99C7,0x99C8,0x99C9,0x99CA,0x99CB,0x99CC,0x99CD,
-0x99CE,0x99CF,0x99D0,0x99D1,0x99D2,0x99D3,0x99D4,0x99D5,
-0x99D6,0x99D7,0x99D8,0x99D9,0x99DA,0x99DB,0x99DC,0x99DD,
-0x99DE,0x99DF,0x99E0,0x99E1,0x99E2,0x99E3,0x99E4,0x99E5,
-0x99E6,0x99E7,0x99E8,0x99E9,0x99EA,0x99EB,0x99EC,0x99ED,
-0x99EE,0x99EF,0x99F0,0x99F1,0x99F2,0x99F3,0x99F4,0x99F5,
-0xC7B7,0xB4CE,0xBBB6,0xD0C0,0xECA3,0x99F6,0x99F7,0xC5B7,
-0x99F8,0x99F9,0x99FA,0x99FB,0x99FC,0x99FD,0x99FE,0x9A40,
-0x9A41,0x9A42,0xD3FB,0x9A43,0x9A44,0x9A45,0x9A46,0xECA4,
-0x9A47,0xECA5,0xC6DB,0x9A48,0x9A49,0x9A4A,0xBFEE,0x9A4B,
-0x9A4C,0x9A4D,0x9A4E,0xECA6,0x9A4F,0x9A50,0xECA7,0xD0AA,
-0x9A51,0xC7B8,0x9A52,0x9A53,0xB8E8,0x9A54,0x9A55,0x9A56,
-0x9A57,0x9A58,0x9A59,0x9A5A,0x9A5B,0x9A5C,0x9A5D,0x9A5E,
-0x9A5F,0xECA8,0x9A60,0x9A61,0x9A62,0x9A63,0x9A64,0x9A65,
-0x9A66,0x9A67,0xD6B9,0xD5FD,0xB4CB,0xB2BD,0xCEE4,0xC6E7,
-0x9A68,0x9A69,0xCDE1,0x9A6A,0x9A6B,0x9A6C,0x9A6D,0x9A6E,
-0x9A6F,0x9A70,0x9A71,0x9A72,0x9A73,0x9A74,0x9A75,0x9A76,
-0x9A77,0xB4F5,0x9A78,0xCBC0,0xBCDF,0x9A79,0x9A7A,0x9A7B,
-0x9A7C,0xE9E2,0xE9E3,0xD1EA,0xE9E5,0x9A7D,0xB4F9,0xE9E4,
-0x9A7E,0xD1B3,0xCAE2,0xB2D0,0x9A80,0xE9E8,0x9A81,0x9A82,
-0x9A83,0x9A84,0xE9E6,0xE9E7,0x9A85,0x9A86,0xD6B3,0x9A87,
-0x9A88,0x9A89,0xE9E9,0xE9EA,0x9A8A,0x9A8B,0x9A8C,0x9A8D,
-0x9A8E,0xE9EB,0x9A8F,0x9A90,0x9A91,0x9A92,0x9A93,0x9A94,
-0x9A95,0x9A96,0xE9EC,0x9A97,0x9A98,0x9A99,0x9A9A,0x9A9B,
-0x9A9C,0x9A9D,0x9A9E,0xECAF,0xC5B9,0xB6CE,0x9A9F,0xD2F3,
-0x9AA0,0x9AA1,0x9AA2,0x9AA3,0x9AA4,0x9AA5,0x9AA6,0xB5EE,
-0x9AA7,0xBBD9,0xECB1,0x9AA8,0x9AA9,0xD2E3,0x9AAA,0x9AAB,
-0x9AAC,0x9AAD,0x9AAE,0xCEE3,0x9AAF,0xC4B8,0x9AB0,0xC3BF,
-0x9AB1,0x9AB2,0xB6BE,0xD8B9,0xB1C8,0xB1CF,0xB1D1,0xC5FE,
-0x9AB3,0xB1D0,0x9AB4,0xC3AB,0x9AB5,0x9AB6,0x9AB7,0x9AB8,
-0x9AB9,0xD5B1,0x9ABA,0x9ABB,0x9ABC,0x9ABD,0x9ABE,0x9ABF,
-0x9AC0,0x9AC1,0xEBA4,0xBAC1,0x9AC2,0x9AC3,0x9AC4,0xCCBA,
-0x9AC5,0x9AC6,0x9AC7,0xEBA5,0x9AC8,0xEBA7,0x9AC9,0x9ACA,
-0x9ACB,0xEBA8,0x9ACC,0x9ACD,0x9ACE,0xEBA6,0x9ACF,0x9AD0,
-0x9AD1,0x9AD2,0x9AD3,0x9AD4,0x9AD5,0xEBA9,0xEBAB,0xEBAA,
-0x9AD6,0x9AD7,0x9AD8,0x9AD9,0x9ADA,0xEBAC,0x9ADB,0xCACF,
-0xD8B5,0xC3F1,0x9ADC,0xC3A5,0xC6F8,0xEBAD,0xC4CA,0x9ADD,
-0xEBAE,0xEBAF,0xEBB0,0xB7D5,0x9ADE,0x9ADF,0x9AE0,0xB7FA,
-0x9AE1,0xEBB1,0xC7E2,0x9AE2,0xEBB3,0x9AE3,0xBAA4,0xD1F5,
-0xB0B1,0xEBB2,0xEBB4,0x9AE4,0x9AE5,0x9AE6,0xB5AA,0xC2C8,
-0xC7E8,0x9AE7,0xEBB5,0x9AE8,0xCBAE,0xE3DF,0x9AE9,0x9AEA,
-0xD3C0,0x9AEB,0x9AEC,0x9AED,0x9AEE,0xD9DB,0x9AEF,0x9AF0,
-0xCDA1,0xD6AD,0xC7F3,0x9AF1,0x9AF2,0x9AF3,0xD9E0,0xBBE3,
-0x9AF4,0xBABA,0xE3E2,0x9AF5,0x9AF6,0x9AF7,0x9AF8,0x9AF9,
-0xCFAB,0x9AFA,0x9AFB,0x9AFC,0xE3E0,0xC9C7,0x9AFD,0xBAB9,
-0x9AFE,0x9B40,0x9B41,0xD1B4,0xE3E1,0xC8EA,0xB9AF,0xBDAD,
-0xB3D8,0xCEDB,0x9B42,0x9B43,0xCCC0,0x9B44,0x9B45,0x9B46,
-0xE3E8,0xE3E9,0xCDF4,0x9B47,0x9B48,0x9B49,0x9B4A,0x9B4B,
-0xCCAD,0x9B4C,0xBCB3,0x9B4D,0xE3EA,0x9B4E,0xE3EB,0x9B4F,
-0x9B50,0xD0DA,0x9B51,0x9B52,0x9B53,0xC6FB,0xB7DA,0x9B54,
-0x9B55,0xC7DF,0xD2CA,0xCED6,0x9B56,0xE3E4,0xE3EC,0x9B57,
-0xC9F2,0xB3C1,0x9B58,0x9B59,0xE3E7,0x9B5A,0x9B5B,0xC6E3,
-0xE3E5,0x9B5C,0x9B5D,0xEDB3,0xE3E6,0x9B5E,0x9B5F,0x9B60,
-0x9B61,0xC9B3,0x9B62,0xC5E6,0x9B63,0x9B64,0x9B65,0xB9B5,
-0x9B66,0xC3BB,0x9B67,0xE3E3,0xC5BD,0xC1A4,0xC2D9,0xB2D7,
-0x9B68,0xE3ED,0xBBA6,0xC4AD,0x9B69,0xE3F0,0xBEDA,0x9B6A,
-0x9B6B,0xE3FB,0xE3F5,0xBAD3,0x9B6C,0x9B6D,0x9B6E,0x9B6F,
-0xB7D0,0xD3CD,0x9B70,0xD6CE,0xD5D3,0xB9C1,0xD5B4,0xD1D8,
-0x9B71,0x9B72,0x9B73,0x9B74,0xD0B9,0xC7F6,0x9B75,0x9B76,
-0x9B77,0xC8AA,0xB2B4,0x9B78,0xC3DA,0x9B79,0x9B7A,0x9B7B,
-0xE3EE,0x9B7C,0x9B7D,0xE3FC,0xE3EF,0xB7A8,0xE3F7,0xE3F4,
-0x9B7E,0x9B80,0x9B81,0xB7BA,0x9B82,0x9B83,0xC5A2,0x9B84,
-0xE3F6,0xC5DD,0xB2A8,0xC6FC,0x9B85,0xC4E0,0x9B86,0x9B87,
-0xD7A2,0x9B88,0xC0E1,0xE3F9,0x9B89,0x9B8A,0xE3FA,0xE3FD,
-0xCCA9,0xE3F3,0x9B8B,0xD3BE,0x9B8C,0xB1C3,0xEDB4,0xE3F1,
-0xE3F2,0x9B8D,0xE3F8,0xD0BA,0xC6C3,0xD4F3,0xE3FE,0x9B8E,
-0x9B8F,0xBDE0,0x9B90,0x9B91,0xE4A7,0x9B92,0x9B93,0xE4A6,
-0x9B94,0x9B95,0x9B96,0xD1F3,0xE4A3,0x9B97,0xE4A9,0x9B98,
-0x9B99,0x9B9A,0xC8F7,0x9B9B,0x9B9C,0x9B9D,0x9B9E,0xCFB4,
-0x9B9F,0xE4A8,0xE4AE,0xC2E5,0x9BA0,0x9BA1,0xB6B4,0x9BA2,
-0x9BA3,0x9BA4,0x9BA5,0x9BA6,0x9BA7,0xBDF2,0x9BA8,0xE4A2,
-0x9BA9,0x9BAA,0xBAE9,0xE4AA,0x9BAB,0x9BAC,0xE4AC,0x9BAD,
-0x9BAE,0xB6FD,0xD6DE,0xE4B2,0x9BAF,0xE4AD,0x9BB0,0x9BB1,
-0x9BB2,0xE4A1,0x9BB3,0xBBEE,0xCDDD,0xC7A2,0xC5C9,0x9BB4,
-0x9BB5,0xC1F7,0x9BB6,0xE4A4,0x9BB7,0xC7B3,0xBDAC,0xBDBD,
-0xE4A5,0x9BB8,0xD7C7,0xB2E2,0x9BB9,0xE4AB,0xBCC3,0xE4AF,
-0x9BBA,0xBBEB,0xE4B0,0xC5A8,0xE4B1,0x9BBB,0x9BBC,0x9BBD,
-0x9BBE,0xD5E3,0xBFA3,0x9BBF,0xE4BA,0x9BC0,0xE4B7,0x9BC1,
-0xE4BB,0x9BC2,0x9BC3,0xE4BD,0x9BC4,0x9BC5,0xC6D6,0x9BC6,
-0x9BC7,0xBAC6,0xC0CB,0x9BC8,0x9BC9,0x9BCA,0xB8A1,0xE4B4,
-0x9BCB,0x9BCC,0x9BCD,0x9BCE,0xD4A1,0x9BCF,0x9BD0,0xBAA3,
-0xBDFE,0x9BD1,0x9BD2,0x9BD3,0xE4BC,0x9BD4,0x9BD5,0x9BD6,
-0x9BD7,0x9BD8,0xCDBF,0x9BD9,0x9BDA,0xC4F9,0x9BDB,0x9BDC,
-0xCFFB,0xC9E6,0x9BDD,0x9BDE,0xD3BF,0x9BDF,0xCFD1,0x9BE0,
-0x9BE1,0xE4B3,0x9BE2,0xE4B8,0xE4B9,0xCCE9,0x9BE3,0x9BE4,
-0x9BE5,0x9BE6,0x9BE7,0xCCCE,0x9BE8,0xC0D4,0xE4B5,0xC1B0,
-0xE4B6,0xCED0,0x9BE9,0xBBC1,0xB5D3,0x9BEA,0xC8F3,0xBDA7,
-0xD5C7,0xC9AC,0xB8A2,0xE4CA,0x9BEB,0x9BEC,0xE4CC,0xD1C4,
-0x9BED,0x9BEE,0xD2BA,0x9BEF,0x9BF0,0xBAAD,0x9BF1,0x9BF2,
-0xBAD4,0x9BF3,0x9BF4,0x9BF5,0x9BF6,0x9BF7,0x9BF8,0xE4C3,
-0xB5ED,0x9BF9,0x9BFA,0x9BFB,0xD7CD,0xE4C0,0xCFFD,0xE4BF,
-0x9BFC,0x9BFD,0x9BFE,0xC1DC,0xCCCA,0x9C40,0x9C41,0x9C42,
-0x9C43,0xCAE7,0x9C44,0x9C45,0x9C46,0x9C47,0xC4D7,0x9C48,
-0xCCD4,0xE4C8,0x9C49,0x9C4A,0x9C4B,0xE4C7,0xE4C1,0x9C4C,
-0xE4C4,0xB5AD,0x9C4D,0x9C4E,0xD3D9,0x9C4F,0xE4C6,0x9C50,
-0x9C51,0x9C52,0x9C53,0xD2F9,0xB4E3,0x9C54,0xBBB4,0x9C55,
-0x9C56,0xC9EE,0x9C57,0xB4BE,0x9C58,0x9C59,0x9C5A,0xBBEC,
-0x9C5B,0xD1CD,0x9C5C,0xCCED,0xEDB5,0x9C5D,0x9C5E,0x9C5F,
-0x9C60,0x9C61,0x9C62,0x9C63,0x9C64,0xC7E5,0x9C65,0x9C66,
-0x9C67,0x9C68,0xD4A8,0x9C69,0xE4CB,0xD7D5,0xE4C2,0x9C6A,
-0xBDA5,0xE4C5,0x9C6B,0x9C6C,0xD3E6,0x9C6D,0xE4C9,0xC9F8,
-0x9C6E,0x9C6F,0xE4BE,0x9C70,0x9C71,0xD3E5,0x9C72,0x9C73,
-0xC7FE,0xB6C9,0x9C74,0xD4FC,0xB2B3,0xE4D7,0x9C75,0x9C76,
-0x9C77,0xCEC2,0x9C78,0xE4CD,0x9C79,0xCEBC,0x9C7A,0xB8DB,
-0x9C7B,0x9C7C,0xE4D6,0x9C7D,0xBFCA,0x9C7E,0x9C80,0x9C81,
-0xD3CE,0x9C82,0xC3EC,0x9C83,0x9C84,0x9C85,0x9C86,0x9C87,
-0x9C88,0x9C89,0x9C8A,0xC5C8,0xE4D8,0x9C8B,0x9C8C,0x9C8D,
-0x9C8E,0x9C8F,0x9C90,0x9C91,0x9C92,0xCDC4,0xE4CF,0x9C93,
-0x9C94,0x9C95,0x9C96,0xE4D4,0xE4D5,0x9C97,0xBAFE,0x9C98,
-0xCFE6,0x9C99,0x9C9A,0xD5BF,0x9C9B,0x9C9C,0x9C9D,0xE4D2,
-0x9C9E,0x9C9F,0x9CA0,0x9CA1,0x9CA2,0x9CA3,0x9CA4,0x9CA5,
-0x9CA6,0x9CA7,0x9CA8,0xE4D0,0x9CA9,0x9CAA,0xE4CE,0x9CAB,
-0x9CAC,0x9CAD,0x9CAE,0x9CAF,0x9CB0,0x9CB1,0x9CB2,0x9CB3,
-0x9CB4,0x9CB5,0x9CB6,0x9CB7,0x9CB8,0x9CB9,0xCDE5,0xCAAA,
-0x9CBA,0x9CBB,0x9CBC,0xC0A3,0x9CBD,0xBDA6,0xE4D3,0x9CBE,
-0x9CBF,0xB8C8,0x9CC0,0x9CC1,0x9CC2,0x9CC3,0x9CC4,0xE4E7,
-0xD4B4,0x9CC5,0x9CC6,0x9CC7,0x9CC8,0x9CC9,0x9CCA,0x9CCB,
-0xE4DB,0x9CCC,0x9CCD,0x9CCE,0xC1EF,0x9CCF,0x9CD0,0xE4E9,
-0x9CD1,0x9CD2,0xD2E7,0x9CD3,0x9CD4,0xE4DF,0x9CD5,0xE4E0,
-0x9CD6,0x9CD7,0xCFAA,0x9CD8,0x9CD9,0x9CDA,0x9CDB,0xCBDD,
-0x9CDC,0xE4DA,0xE4D1,0x9CDD,0xE4E5,0x9CDE,0xC8DC,0xE4E3,
-0x9CDF,0x9CE0,0xC4E7,0xE4E2,0x9CE1,0xE4E1,0x9CE2,0x9CE3,
-0x9CE4,0xB3FC,0xE4E8,0x9CE5,0x9CE6,0x9CE7,0x9CE8,0xB5E1,
-0x9CE9,0x9CEA,0x9CEB,0xD7CC,0x9CEC,0x9CED,0x9CEE,0xE4E6,
-0x9CEF,0xBBAC,0x9CF0,0xD7D2,0xCCCF,0xEBF8,0x9CF1,0xE4E4,
-0x9CF2,0x9CF3,0xB9F6,0x9CF4,0x9CF5,0x9CF6,0xD6CD,0xE4D9,
-0xE4DC,0xC2FA,0xE4DE,0x9CF7,0xC2CB,0xC0C4,0xC2D0,0x9CF8,
-0xB1F5,0xCCB2,0x9CF9,0x9CFA,0x9CFB,0x9CFC,0x9CFD,0x9CFE,
-0x9D40,0x9D41,0x9D42,0x9D43,0xB5CE,0x9D44,0x9D45,0x9D46,
-0x9D47,0xE4EF,0x9D48,0x9D49,0x9D4A,0x9D4B,0x9D4C,0x9D4D,
-0x9D4E,0x9D4F,0xC6AF,0x9D50,0x9D51,0x9D52,0xC6E1,0x9D53,
-0x9D54,0xE4F5,0x9D55,0x9D56,0x9D57,0x9D58,0x9D59,0xC2A9,
-0x9D5A,0x9D5B,0x9D5C,0xC0EC,0xD1DD,0xE4EE,0x9D5D,0x9D5E,
-0x9D5F,0x9D60,0x9D61,0x9D62,0x9D63,0x9D64,0x9D65,0x9D66,
-0xC4AE,0x9D67,0x9D68,0x9D69,0xE4ED,0x9D6A,0x9D6B,0x9D6C,
-0x9D6D,0xE4F6,0xE4F4,0xC2FE,0x9D6E,0xE4DD,0x9D6F,0xE4F0,
-0x9D70,0xCAFE,0x9D71,0xD5C4,0x9D72,0x9D73,0xE4F1,0x9D74,
-0x9D75,0x9D76,0x9D77,0x9D78,0x9D79,0x9D7A,0xD1FA,0x9D7B,
-0x9D7C,0x9D7D,0x9D7E,0x9D80,0x9D81,0x9D82,0xE4EB,0xE4EC,
-0x9D83,0x9D84,0x9D85,0xE4F2,0x9D86,0xCEAB,0x9D87,0x9D88,
-0x9D89,0x9D8A,0x9D8B,0x9D8C,0x9D8D,0x9D8E,0x9D8F,0x9D90,
-0xC5CB,0x9D91,0x9D92,0x9D93,0xC7B1,0x9D94,0xC2BA,0x9D95,
-0x9D96,0x9D97,0xE4EA,0x9D98,0x9D99,0x9D9A,0xC1CA,0x9D9B,
-0x9D9C,0x9D9D,0x9D9E,0x9D9F,0x9DA0,0xCCB6,0xB3B1,0x9DA1,
-0x9DA2,0x9DA3,0xE4FB,0x9DA4,0xE4F3,0x9DA5,0x9DA6,0x9DA7,
-0xE4FA,0x9DA8,0xE4FD,0x9DA9,0xE4FC,0x9DAA,0x9DAB,0x9DAC,
-0x9DAD,0x9DAE,0x9DAF,0x9DB0,0xB3CE,0x9DB1,0x9DB2,0x9DB3,
-0xB3BA,0xE4F7,0x9DB4,0x9DB5,0xE4F9,0xE4F8,0xC5EC,0x9DB6,
-0x9DB7,0x9DB8,0x9DB9,0x9DBA,0x9DBB,0x9DBC,0x9DBD,0x9DBE,
-0x9DBF,0x9DC0,0x9DC1,0x9DC2,0xC0BD,0x9DC3,0x9DC4,0x9DC5,
-0x9DC6,0xD4E8,0x9DC7,0x9DC8,0x9DC9,0x9DCA,0x9DCB,0xE5A2,
-0x9DCC,0x9DCD,0x9DCE,0x9DCF,0x9DD0,0x9DD1,0x9DD2,0x9DD3,
-0x9DD4,0x9DD5,0x9DD6,0xB0C4,0x9DD7,0x9DD8,0xE5A4,0x9DD9,
-0x9DDA,0xE5A3,0x9DDB,0x9DDC,0x9DDD,0x9DDE,0x9DDF,0x9DE0,
-0xBCA4,0x9DE1,0xE5A5,0x9DE2,0x9DE3,0x9DE4,0x9DE5,0x9DE6,
-0x9DE7,0xE5A1,0x9DE8,0x9DE9,0x9DEA,0x9DEB,0x9DEC,0x9DED,
-0x9DEE,0xE4FE,0xB1F4,0x9DEF,0x9DF0,0x9DF1,0x9DF2,0x9DF3,
-0x9DF4,0x9DF5,0x9DF6,0x9DF7,0x9DF8,0x9DF9,0xE5A8,0x9DFA,
-0xE5A9,0xE5A6,0x9DFB,0x9DFC,0x9DFD,0x9DFE,0x9E40,0x9E41,
-0x9E42,0x9E43,0x9E44,0x9E45,0x9E46,0x9E47,0xE5A7,0xE5AA,
-0x9E48,0x9E49,0x9E4A,0x9E4B,0x9E4C,0x9E4D,0x9E4E,0x9E4F,
-0x9E50,0x9E51,0x9E52,0x9E53,0x9E54,0x9E55,0x9E56,0x9E57,
-0x9E58,0x9E59,0x9E5A,0x9E5B,0x9E5C,0x9E5D,0x9E5E,0x9E5F,
-0x9E60,0x9E61,0x9E62,0x9E63,0x9E64,0x9E65,0x9E66,0x9E67,
-0x9E68,0xC6D9,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E6D,0x9E6E,
-0x9E6F,0x9E70,0xE5AB,0xE5AD,0x9E71,0x9E72,0x9E73,0x9E74,
-0x9E75,0x9E76,0x9E77,0xE5AC,0x9E78,0x9E79,0x9E7A,0x9E7B,
-0x9E7C,0x9E7D,0x9E7E,0x9E80,0x9E81,0x9E82,0x9E83,0x9E84,
-0x9E85,0x9E86,0x9E87,0x9E88,0x9E89,0xE5AF,0x9E8A,0x9E8B,
-0x9E8C,0xE5AE,0x9E8D,0x9E8E,0x9E8F,0x9E90,0x9E91,0x9E92,
-0x9E93,0x9E94,0x9E95,0x9E96,0x9E97,0x9E98,0x9E99,0x9E9A,
-0x9E9B,0x9E9C,0x9E9D,0x9E9E,0xB9E0,0x9E9F,0x9EA0,0xE5B0,
-0x9EA1,0x9EA2,0x9EA3,0x9EA4,0x9EA5,0x9EA6,0x9EA7,0x9EA8,
-0x9EA9,0x9EAA,0x9EAB,0x9EAC,0x9EAD,0x9EAE,0xE5B1,0x9EAF,
-0x9EB0,0x9EB1,0x9EB2,0x9EB3,0x9EB4,0x9EB5,0x9EB6,0x9EB7,
-0x9EB8,0x9EB9,0x9EBA,0xBBF0,0xECE1,0xC3F0,0x9EBB,0xB5C6,
-0xBBD2,0x9EBC,0x9EBD,0x9EBE,0x9EBF,0xC1E9,0xD4EE,0x9EC0,
-0xBEC4,0x9EC1,0x9EC2,0x9EC3,0xD7C6,0x9EC4,0xD4D6,0xB2D3,
-0xECBE,0x9EC5,0x9EC6,0x9EC7,0x9EC8,0xEAC1,0x9EC9,0x9ECA,
-0x9ECB,0xC2AF,0xB4B6,0x9ECC,0x9ECD,0x9ECE,0xD1D7,0x9ECF,
-0x9ED0,0x9ED1,0xB3B4,0x9ED2,0xC8B2,0xBFBB,0xECC0,0x9ED3,
-0x9ED4,0xD6CB,0x9ED5,0x9ED6,0xECBF,0xECC1,0x9ED7,0x9ED8,
-0x9ED9,0x9EDA,0x9EDB,0x9EDC,0x9EDD,0x9EDE,0x9EDF,0x9EE0,
-0x9EE1,0x9EE2,0x9EE3,0xECC5,0xBEE6,0xCCBF,0xC5DA,0xBEBC,
-0x9EE4,0xECC6,0x9EE5,0xB1FE,0x9EE6,0x9EE7,0x9EE8,0xECC4,
-0xD5A8,0xB5E3,0x9EE9,0xECC2,0xC1B6,0xB3E3,0x9EEA,0x9EEB,
-0xECC3,0xCBB8,0xC0C3,0xCCFE,0x9EEC,0x9EED,0x9EEE,0x9EEF,
-0xC1D2,0x9EF0,0xECC8,0x9EF1,0x9EF2,0x9EF3,0x9EF4,0x9EF5,
-0x9EF6,0x9EF7,0x9EF8,0x9EF9,0x9EFA,0x9EFB,0x9EFC,0x9EFD,
-0xBAE6,0xC0D3,0x9EFE,0xD6F2,0x9F40,0x9F41,0x9F42,0xD1CC,
-0x9F43,0x9F44,0x9F45,0x9F46,0xBFBE,0x9F47,0xB7B3,0xC9D5,
-0xECC7,0xBBE2,0x9F48,0xCCCC,0xBDFD,0xC8C8,0x9F49,0xCFA9,
-0x9F4A,0x9F4B,0x9F4C,0x9F4D,0x9F4E,0x9F4F,0x9F50,0xCDE9,
-0x9F51,0xC5EB,0x9F52,0x9F53,0x9F54,0xB7E9,0x9F55,0x9F56,
-0x9F57,0x9F58,0x9F59,0x9F5A,0x9F5B,0x9F5C,0x9F5D,0x9F5E,
-0x9F5F,0xD1C9,0xBAB8,0x9F60,0x9F61,0x9F62,0x9F63,0x9F64,
-0xECC9,0x9F65,0x9F66,0xECCA,0x9F67,0xBBC0,0xECCB,0x9F68,
-0xECE2,0xB1BA,0xB7D9,0x9F69,0x9F6A,0x9F6B,0x9F6C,0x9F6D,
-0x9F6E,0x9F6F,0x9F70,0x9F71,0x9F72,0x9F73,0xBDB9,0x9F74,
-0x9F75,0x9F76,0x9F77,0x9F78,0x9F79,0x9F7A,0x9F7B,0xECCC,
-0xD1E6,0xECCD,0x9F7C,0x9F7D,0x9F7E,0x9F80,0xC8BB,0x9F81,
-0x9F82,0x9F83,0x9F84,0x9F85,0x9F86,0x9F87,0x9F88,0x9F89,
-0x9F8A,0x9F8B,0x9F8C,0x9F8D,0x9F8E,0xECD1,0x9F8F,0x9F90,
-0x9F91,0x9F92,0xECD3,0x9F93,0xBBCD,0x9F94,0xBCE5,0x9F95,
-0x9F96,0x9F97,0x9F98,0x9F99,0x9F9A,0x9F9B,0x9F9C,0x9F9D,
-0x9F9E,0x9F9F,0x9FA0,0x9FA1,0xECCF,0x9FA2,0xC9B7,0x9FA3,
-0x9FA4,0x9FA5,0x9FA6,0x9FA7,0xC3BA,0x9FA8,0xECE3,0xD5D5,
-0xECD0,0x9FA9,0x9FAA,0x9FAB,0x9FAC,0x9FAD,0xD6F3,0x9FAE,
-0x9FAF,0x9FB0,0xECD2,0xECCE,0x9FB1,0x9FB2,0x9FB3,0x9FB4,
-0xECD4,0x9FB5,0xECD5,0x9FB6,0x9FB7,0xC9BF,0x9FB8,0x9FB9,
-0x9FBA,0x9FBB,0x9FBC,0x9FBD,0xCFA8,0x9FBE,0x9FBF,0x9FC0,
-0x9FC1,0x9FC2,0xD0DC,0x9FC3,0x9FC4,0x9FC5,0x9FC6,0xD1AC,
-0x9FC7,0x9FC8,0x9FC9,0x9FCA,0xC8DB,0x9FCB,0x9FCC,0x9FCD,
-0xECD6,0xCEF5,0x9FCE,0x9FCF,0x9FD0,0x9FD1,0x9FD2,0xCAEC,
-0xECDA,0x9FD3,0x9FD4,0x9FD5,0x9FD6,0x9FD7,0x9FD8,0x9FD9,
-0xECD9,0x9FDA,0x9FDB,0x9FDC,0xB0BE,0x9FDD,0x9FDE,0x9FDF,
-0x9FE0,0x9FE1,0x9FE2,0xECD7,0x9FE3,0xECD8,0x9FE4,0x9FE5,
-0x9FE6,0xECE4,0x9FE7,0x9FE8,0x9FE9,0x9FEA,0x9FEB,0x9FEC,
-0x9FED,0x9FEE,0x9FEF,0xC8BC,0x9FF0,0x9FF1,0x9FF2,0x9FF3,
-0x9FF4,0x9FF5,0x9FF6,0x9FF7,0x9FF8,0x9FF9,0xC1C7,0x9FFA,
-0x9FFB,0x9FFC,0x9FFD,0x9FFE,0xECDC,0xD1E0,0xA040,0xA041,
-0xA042,0xA043,0xA044,0xA045,0xA046,0xA047,0xA048,0xA049,
-0xECDB,0xA04A,0xA04B,0xA04C,0xA04D,0xD4EF,0xA04E,0xECDD,
-0xA04F,0xA050,0xA051,0xA052,0xA053,0xA054,0xDBC6,0xA055,
-0xA056,0xA057,0xA058,0xA059,0xA05A,0xA05B,0xA05C,0xA05D,
-0xA05E,0xECDE,0xA05F,0xA060,0xA061,0xA062,0xA063,0xA064,
-0xA065,0xA066,0xA067,0xA068,0xA069,0xA06A,0xB1AC,0xA06B,
-0xA06C,0xA06D,0xA06E,0xA06F,0xA070,0xA071,0xA072,0xA073,
-0xA074,0xA075,0xA076,0xA077,0xA078,0xA079,0xA07A,0xA07B,
-0xA07C,0xA07D,0xA07E,0xA080,0xA081,0xECDF,0xA082,0xA083,
-0xA084,0xA085,0xA086,0xA087,0xA088,0xA089,0xA08A,0xA08B,
-0xECE0,0xA08C,0xD7A6,0xA08D,0xC5C0,0xA08E,0xA08F,0xA090,
-0xEBBC,0xB0AE,0xA091,0xA092,0xA093,0xBEF4,0xB8B8,0xD2AF,
-0xB0D6,0xB5F9,0xA094,0xD8B3,0xA095,0xCBAC,0xA096,0xE3DD,
-0xA097,0xA098,0xA099,0xA09A,0xA09B,0xA09C,0xA09D,0xC6AC,
-0xB0E6,0xA09E,0xA09F,0xA0A0,0xC5C6,0xEBB9,0xA0A1,0xA0A2,
-0xA0A3,0xA0A4,0xEBBA,0xA0A5,0xA0A6,0xA0A7,0xEBBB,0xA0A8,
-0xA0A9,0xD1C0,0xA0AA,0xC5A3,0xA0AB,0xEAF2,0xA0AC,0xC4B2,
-0xA0AD,0xC4B5,0xC0CE,0xA0AE,0xA0AF,0xA0B0,0xEAF3,0xC4C1,
-0xA0B1,0xCEEF,0xA0B2,0xA0B3,0xA0B4,0xA0B5,0xEAF0,0xEAF4,
-0xA0B6,0xA0B7,0xC9FC,0xA0B8,0xA0B9,0xC7A3,0xA0BA,0xA0BB,
-0xA0BC,0xCCD8,0xCEFE,0xA0BD,0xA0BE,0xA0BF,0xEAF5,0xEAF6,
-0xCFAC,0xC0E7,0xA0C0,0xA0C1,0xEAF7,0xA0C2,0xA0C3,0xA0C4,
-0xA0C5,0xA0C6,0xB6BF,0xEAF8,0xA0C7,0xEAF9,0xA0C8,0xEAFA,
-0xA0C9,0xA0CA,0xEAFB,0xA0CB,0xA0CC,0xA0CD,0xA0CE,0xA0CF,
-0xA0D0,0xA0D1,0xA0D2,0xA0D3,0xA0D4,0xA0D5,0xA0D6,0xEAF1,
-0xA0D7,0xA0D8,0xA0D9,0xA0DA,0xA0DB,0xA0DC,0xA0DD,0xA0DE,
-0xA0DF,0xA0E0,0xA0E1,0xA0E2,0xC8AE,0xE1EB,0xA0E3,0xB7B8,
-0xE1EC,0xA0E4,0xA0E5,0xA0E6,0xE1ED,0xA0E7,0xD7B4,0xE1EE,
-0xE1EF,0xD3CC,0xA0E8,0xA0E9,0xA0EA,0xA0EB,0xA0EC,0xA0ED,
-0xA0EE,0xE1F1,0xBFF1,0xE1F0,0xB5D2,0xA0EF,0xA0F0,0xA0F1,
-0xB1B7,0xA0F2,0xA0F3,0xA0F4,0xA0F5,0xE1F3,0xE1F2,0xA0F6,
-0xBAFC,0xA0F7,0xE1F4,0xA0F8,0xA0F9,0xA0FA,0xA0FB,0xB9B7,
-0xA0FC,0xBED1,0xA0FD,0xA0FE,0xAA40,0xAA41,0xC4FC,0xAA42,
-0xBADD,0xBDC6,0xAA43,0xAA44,0xAA45,0xAA46,0xAA47,0xAA48,
-0xE1F5,0xE1F7,0xAA49,0xAA4A,0xB6C0,0xCFC1,0xCAA8,0xE1F6,
-0xD5F8,0xD3FC,0xE1F8,0xE1FC,0xE1F9,0xAA4B,0xAA4C,0xE1FA,
-0xC0EA,0xAA4D,0xE1FE,0xE2A1,0xC0C7,0xAA4E,0xAA4F,0xAA50,
-0xAA51,0xE1FB,0xAA52,0xE1FD,0xAA53,0xAA54,0xAA55,0xAA56,
-0xAA57,0xAA58,0xE2A5,0xAA59,0xAA5A,0xAA5B,0xC1D4,0xAA5C,
-0xAA5D,0xAA5E,0xAA5F,0xE2A3,0xAA60,0xE2A8,0xB2FE,0xE2A2,
-0xAA61,0xAA62,0xAA63,0xC3CD,0xB2C2,0xE2A7,0xE2A6,0xAA64,
-0xAA65,0xE2A4,0xE2A9,0xAA66,0xAA67,0xE2AB,0xAA68,0xAA69,
-0xAA6A,0xD0C9,0xD6ED,0xC3A8,0xE2AC,0xAA6B,0xCFD7,0xAA6C,
-0xAA6D,0xE2AE,0xAA6E,0xAA6F,0xBAEF,0xAA70,0xAA71,0xE9E0,
-0xE2AD,0xE2AA,0xAA72,0xAA73,0xAA74,0xAA75,0xBBAB,0xD4B3,
-0xAA76,0xAA77,0xAA78,0xAA79,0xAA7A,0xAA7B,0xAA7C,0xAA7D,
-0xAA7E,0xAA80,0xAA81,0xAA82,0xAA83,0xE2B0,0xAA84,0xAA85,
-0xE2AF,0xAA86,0xE9E1,0xAA87,0xAA88,0xAA89,0xAA8A,0xE2B1,
-0xAA8B,0xAA8C,0xAA8D,0xAA8E,0xAA8F,0xAA90,0xAA91,0xAA92,
-0xE2B2,0xAA93,0xAA94,0xAA95,0xAA96,0xAA97,0xAA98,0xAA99,
-0xAA9A,0xAA9B,0xAA9C,0xAA9D,0xE2B3,0xCCA1,0xAA9E,0xE2B4,
-0xAA9F,0xAAA0,0xAB40,0xAB41,0xAB42,0xAB43,0xAB44,0xAB45,
-0xAB46,0xAB47,0xAB48,0xAB49,0xAB4A,0xAB4B,0xE2B5,0xAB4C,
-0xAB4D,0xAB4E,0xAB4F,0xAB50,0xD0FE,0xAB51,0xAB52,0xC2CA,
-0xAB53,0xD3F1,0xAB54,0xCDF5,0xAB55,0xAB56,0xE7E0,0xAB57,
-0xAB58,0xE7E1,0xAB59,0xAB5A,0xAB5B,0xAB5C,0xBEC1,0xAB5D,
-0xAB5E,0xAB5F,0xAB60,0xC2EA,0xAB61,0xAB62,0xAB63,0xE7E4,
-0xAB64,0xAB65,0xE7E3,0xAB66,0xAB67,0xAB68,0xAB69,0xAB6A,
-0xAB6B,0xCDE6,0xAB6C,0xC3B5,0xAB6D,0xAB6E,0xE7E2,0xBBB7,
-0xCFD6,0xAB6F,0xC1E1,0xE7E9,0xAB70,0xAB71,0xAB72,0xE7E8,
-0xAB73,0xAB74,0xE7F4,0xB2A3,0xAB75,0xAB76,0xAB77,0xAB78,
-0xE7EA,0xAB79,0xE7E6,0xAB7A,0xAB7B,0xAB7C,0xAB7D,0xAB7E,
-0xE7EC,0xE7EB,0xC9BA,0xAB80,0xAB81,0xD5E4,0xAB82,0xE7E5,
-0xB7A9,0xE7E7,0xAB83,0xAB84,0xAB85,0xAB86,0xAB87,0xAB88,
-0xAB89,0xE7EE,0xAB8A,0xAB8B,0xAB8C,0xAB8D,0xE7F3,0xAB8E,
-0xD6E9,0xAB8F,0xAB90,0xAB91,0xAB92,0xE7ED,0xAB93,0xE7F2,
-0xAB94,0xE7F1,0xAB95,0xAB96,0xAB97,0xB0E0,0xAB98,0xAB99,
-0xAB9A,0xAB9B,0xE7F5,0xAB9C,0xAB9D,0xAB9E,0xAB9F,0xABA0,
-0xAC40,0xAC41,0xAC42,0xAC43,0xAC44,0xAC45,0xAC46,0xAC47,
-0xAC48,0xAC49,0xAC4A,0xC7F2,0xAC4B,0xC0C5,0xC0ED,0xAC4C,
-0xAC4D,0xC1F0,0xE7F0,0xAC4E,0xAC4F,0xAC50,0xAC51,0xE7F6,
-0xCBF6,0xAC52,0xAC53,0xAC54,0xAC55,0xAC56,0xAC57,0xAC58,
-0xAC59,0xAC5A,0xE8A2,0xE8A1,0xAC5B,0xAC5C,0xAC5D,0xAC5E,
-0xAC5F,0xAC60,0xD7C1,0xAC61,0xAC62,0xE7FA,0xE7F9,0xAC63,
-0xE7FB,0xAC64,0xE7F7,0xAC65,0xE7FE,0xAC66,0xE7FD,0xAC67,
-0xE7FC,0xAC68,0xAC69,0xC1D5,0xC7D9,0xC5FD,0xC5C3,0xAC6A,
-0xAC6B,0xAC6C,0xAC6D,0xAC6E,0xC7ED,0xAC6F,0xAC70,0xAC71,
-0xAC72,0xE8A3,0xAC73,0xAC74,0xAC75,0xAC76,0xAC77,0xAC78,
-0xAC79,0xAC7A,0xAC7B,0xAC7C,0xAC7D,0xAC7E,0xAC80,0xAC81,
-0xAC82,0xAC83,0xAC84,0xAC85,0xAC86,0xE8A6,0xAC87,0xE8A5,
-0xAC88,0xE8A7,0xBAF7,0xE7F8,0xE8A4,0xAC89,0xC8F0,0xC9AA,
-0xAC8A,0xAC8B,0xAC8C,0xAC8D,0xAC8E,0xAC8F,0xAC90,0xAC91,
-0xAC92,0xAC93,0xAC94,0xAC95,0xAC96,0xE8A9,0xAC97,0xAC98,
-0xB9E5,0xAC99,0xAC9A,0xAC9B,0xAC9C,0xAC9D,0xD1FE,0xE8A8,
-0xAC9E,0xAC9F,0xACA0,0xAD40,0xAD41,0xAD42,0xE8AA,0xAD43,
-0xE8AD,0xE8AE,0xAD44,0xC1A7,0xAD45,0xAD46,0xAD47,0xE8AF,
-0xAD48,0xAD49,0xAD4A,0xE8B0,0xAD4B,0xAD4C,0xE8AC,0xAD4D,
-0xE8B4,0xAD4E,0xAD4F,0xAD50,0xAD51,0xAD52,0xAD53,0xAD54,
-0xAD55,0xAD56,0xAD57,0xAD58,0xE8AB,0xAD59,0xE8B1,0xAD5A,
-0xAD5B,0xAD5C,0xAD5D,0xAD5E,0xAD5F,0xAD60,0xAD61,0xE8B5,
-0xE8B2,0xE8B3,0xAD62,0xAD63,0xAD64,0xAD65,0xAD66,0xAD67,
-0xAD68,0xAD69,0xAD6A,0xAD6B,0xAD6C,0xAD6D,0xAD6E,0xAD6F,
-0xAD70,0xAD71,0xE8B7,0xAD72,0xAD73,0xAD74,0xAD75,0xAD76,
-0xAD77,0xAD78,0xAD79,0xAD7A,0xAD7B,0xAD7C,0xAD7D,0xAD7E,
-0xAD80,0xAD81,0xAD82,0xAD83,0xAD84,0xAD85,0xAD86,0xAD87,
-0xAD88,0xAD89,0xE8B6,0xAD8A,0xAD8B,0xAD8C,0xAD8D,0xAD8E,
-0xAD8F,0xAD90,0xAD91,0xAD92,0xB9CF,0xAD93,0xF0AC,0xAD94,
-0xF0AD,0xAD95,0xC6B0,0xB0EA,0xC8BF,0xAD96,0xCDDF,0xAD97,
-0xAD98,0xAD99,0xAD9A,0xAD9B,0xAD9C,0xAD9D,0xCECD,0xEAB1,
-0xAD9E,0xAD9F,0xADA0,0xAE40,0xEAB2,0xAE41,0xC6BF,0xB4C9,
-0xAE42,0xAE43,0xAE44,0xAE45,0xAE46,0xAE47,0xAE48,0xEAB3,
-0xAE49,0xAE4A,0xAE4B,0xAE4C,0xD5E7,0xAE4D,0xAE4E,0xAE4F,
-0xAE50,0xAE51,0xAE52,0xAE53,0xAE54,0xDDF9,0xAE55,0xEAB4,
-0xAE56,0xEAB5,0xAE57,0xEAB6,0xAE58,0xAE59,0xAE5A,0xAE5B,
-0xB8CA,0xDFB0,0xC9F5,0xAE5C,0xCCF0,0xAE5D,0xAE5E,0xC9FA,
-0xAE5F,0xAE60,0xAE61,0xAE62,0xAE63,0xC9FB,0xAE64,0xAE65,
-0xD3C3,0xCBA6,0xAE66,0xB8A6,0xF0AE,0xB1C2,0xAE67,0xE5B8,
-0xCCEF,0xD3C9,0xBCD7,0xC9EA,0xAE68,0xB5E7,0xAE69,0xC4D0,
-0xB5E9,0xAE6A,0xEEAE,0xBBAD,0xAE6B,0xAE6C,0xE7DE,0xAE6D,
-0xEEAF,0xAE6E,0xAE6F,0xAE70,0xAE71,0xB3A9,0xAE72,0xAE73,
-0xEEB2,0xAE74,0xAE75,0xEEB1,0xBDE7,0xAE76,0xEEB0,0xCEB7,
-0xAE77,0xAE78,0xAE79,0xAE7A,0xC5CF,0xAE7B,0xAE7C,0xAE7D,
-0xAE7E,0xC1F4,0xDBCE,0xEEB3,0xD0F3,0xAE80,0xAE81,0xAE82,
-0xAE83,0xAE84,0xAE85,0xAE86,0xAE87,0xC2D4,0xC6E8,0xAE88,
-0xAE89,0xAE8A,0xB7AC,0xAE8B,0xAE8C,0xAE8D,0xAE8E,0xAE8F,
-0xAE90,0xAE91,0xEEB4,0xAE92,0xB3EB,0xAE93,0xAE94,0xAE95,
-0xBBFB,0xEEB5,0xAE96,0xAE97,0xAE98,0xAE99,0xAE9A,0xE7DC,
-0xAE9B,0xAE9C,0xAE9D,0xEEB6,0xAE9E,0xAE9F,0xBDAE,0xAEA0,
-0xAF40,0xAF41,0xAF42,0xF1E2,0xAF43,0xAF44,0xAF45,0xCAE8,
-0xAF46,0xD2C9,0xF0DA,0xAF47,0xF0DB,0xAF48,0xF0DC,0xC1C6,
-0xAF49,0xB8ED,0xBECE,0xAF4A,0xAF4B,0xF0DE,0xAF4C,0xC5B1,
-0xF0DD,0xD1F1,0xAF4D,0xF0E0,0xB0CC,0xBDEA,0xAF4E,0xAF4F,
-0xAF50,0xAF51,0xAF52,0xD2DF,0xF0DF,0xAF53,0xB4AF,0xB7E8,
-0xF0E6,0xF0E5,0xC6A3,0xF0E1,0xF0E2,0xB4C3,0xAF54,0xAF55,
-0xF0E3,0xD5EE,0xAF56,0xAF57,0xCCDB,0xBED2,0xBCB2,0xAF58,
-0xAF59,0xAF5A,0xF0E8,0xF0E7,0xF0E4,0xB2A1,0xAF5B,0xD6A2,
-0xD3B8,0xBEB7,0xC8AC,0xAF5C,0xAF5D,0xF0EA,0xAF5E,0xAF5F,
-0xAF60,0xAF61,0xD1F7,0xAF62,0xD6CC,0xBADB,0xF0E9,0xAF63,
-0xB6BB,0xAF64,0xAF65,0xCDB4,0xAF66,0xAF67,0xC6A6,0xAF68,
-0xAF69,0xAF6A,0xC1A1,0xF0EB,0xF0EE,0xAF6B,0xF0ED,0xF0F0,
-0xF0EC,0xAF6C,0xBBBE,0xF0EF,0xAF6D,0xAF6E,0xAF6F,0xAF70,
-0xCCB5,0xF0F2,0xAF71,0xAF72,0xB3D5,0xAF73,0xAF74,0xAF75,
-0xAF76,0xB1D4,0xAF77,0xAF78,0xF0F3,0xAF79,0xAF7A,0xF0F4,
-0xF0F6,0xB4E1,0xAF7B,0xF0F1,0xAF7C,0xF0F7,0xAF7D,0xAF7E,
-0xAF80,0xAF81,0xF0FA,0xAF82,0xF0F8,0xAF83,0xAF84,0xAF85,
-0xF0F5,0xAF86,0xAF87,0xAF88,0xAF89,0xF0FD,0xAF8A,0xF0F9,
-0xF0FC,0xF0FE,0xAF8B,0xF1A1,0xAF8C,0xAF8D,0xAF8E,0xCEC1,
-0xF1A4,0xAF8F,0xF1A3,0xAF90,0xC1F6,0xF0FB,0xCADD,0xAF91,
-0xAF92,0xB4F1,0xB1F1,0xCCB1,0xAF93,0xF1A6,0xAF94,0xAF95,
-0xF1A7,0xAF96,0xAF97,0xF1AC,0xD5CE,0xF1A9,0xAF98,0xAF99,
-0xC8B3,0xAF9A,0xAF9B,0xAF9C,0xF1A2,0xAF9D,0xF1AB,0xF1A8,
-0xF1A5,0xAF9E,0xAF9F,0xF1AA,0xAFA0,0xB040,0xB041,0xB042,
-0xB043,0xB044,0xB045,0xB046,0xB0A9,0xF1AD,0xB047,0xB048,
-0xB049,0xB04A,0xB04B,0xB04C,0xF1AF,0xB04D,0xF1B1,0xB04E,
-0xB04F,0xB050,0xB051,0xB052,0xF1B0,0xB053,0xF1AE,0xB054,
-0xB055,0xB056,0xB057,0xD1A2,0xB058,0xB059,0xB05A,0xB05B,
-0xB05C,0xB05D,0xB05E,0xF1B2,0xB05F,0xB060,0xB061,0xF1B3,
-0xB062,0xB063,0xB064,0xB065,0xB066,0xB067,0xB068,0xB069,
-0xB9EF,0xB06A,0xB06B,0xB5C7,0xB06C,0xB0D7,0xB0D9,0xB06D,
-0xB06E,0xB06F,0xD4ED,0xB070,0xB5C4,0xB071,0xBDD4,0xBBCA,
-0xF0A7,0xB072,0xB073,0xB8DE,0xB074,0xB075,0xF0A8,0xB076,
-0xB077,0xB0A8,0xB078,0xF0A9,0xB079,0xB07A,0xCDEE,0xB07B,
-0xB07C,0xF0AA,0xB07D,0xB07E,0xB080,0xB081,0xB082,0xB083,
-0xB084,0xB085,0xB086,0xB087,0xF0AB,0xB088,0xB089,0xB08A,
-0xB08B,0xB08C,0xB08D,0xB08E,0xB08F,0xB090,0xC6A4,0xB091,
-0xB092,0xD6E5,0xF1E4,0xB093,0xF1E5,0xB094,0xB095,0xB096,
-0xB097,0xB098,0xB099,0xB09A,0xB09B,0xB09C,0xB09D,0xC3F3,
-0xB09E,0xB09F,0xD3DB,0xB0A0,0xB140,0xD6D1,0xC5E8,0xB141,
-0xD3AF,0xB142,0xD2E6,0xB143,0xB144,0xEEC1,0xB0BB,0xD5B5,
-0xD1CE,0xBCE0,0xBAD0,0xB145,0xBFF8,0xB146,0xB8C7,0xB5C1,
-0xC5CC,0xB147,0xB148,0xCAA2,0xB149,0xB14A,0xB14B,0xC3CB,
-0xB14C,0xB14D,0xB14E,0xB14F,0xB150,0xEEC2,0xB151,0xB152,
-0xB153,0xB154,0xB155,0xB156,0xB157,0xB158,0xC4BF,0xB6A2,
-0xB159,0xEDEC,0xC3A4,0xB15A,0xD6B1,0xB15B,0xB15C,0xB15D,
-0xCFE0,0xEDEF,0xB15E,0xB15F,0xC5CE,0xB160,0xB6DC,0xB161,
-0xB162,0xCAA1,0xB163,0xB164,0xEDED,0xB165,0xB166,0xEDF0,
-0xEDF1,0xC3BC,0xB167,0xBFB4,0xB168,0xEDEE,0xB169,0xB16A,
-0xB16B,0xB16C,0xB16D,0xB16E,0xB16F,0xB170,0xB171,0xB172,
-0xB173,0xEDF4,0xEDF2,0xB174,0xB175,0xB176,0xB177,0xD5E6,
-0xC3DF,0xB178,0xEDF3,0xB179,0xB17A,0xB17B,0xEDF6,0xB17C,
-0xD5A3,0xD1A3,0xB17D,0xB17E,0xB180,0xEDF5,0xB181,0xC3D0,
-0xB182,0xB183,0xB184,0xB185,0xB186,0xEDF7,0xBFF4,0xBEEC,
-0xEDF8,0xB187,0xCCF7,0xB188,0xD1DB,0xB189,0xB18A,0xB18B,
-0xD7C5,0xD5F6,0xB18C,0xEDFC,0xB18D,0xB18E,0xB18F,0xEDFB,
-0xB190,0xB191,0xB192,0xB193,0xB194,0xB195,0xB196,0xB197,
-0xEDF9,0xEDFA,0xB198,0xB199,0xB19A,0xB19B,0xB19C,0xB19D,
-0xB19E,0xB19F,0xEDFD,0xBEA6,0xB1A0,0xB240,0xB241,0xB242,
-0xB243,0xCBAF,0xEEA1,0xB6BD,0xB244,0xEEA2,0xC4C0,0xB245,
-0xEDFE,0xB246,0xB247,0xBDDE,0xB2C7,0xB248,0xB249,0xB24A,
-0xB24B,0xB24C,0xB24D,0xB24E,0xB24F,0xB250,0xB251,0xB252,
-0xB253,0xB6C3,0xB254,0xB255,0xB256,0xEEA5,0xD8BA,0xEEA3,
-0xEEA6,0xB257,0xB258,0xB259,0xC3E9,0xB3F2,0xB25A,0xB25B,
-0xB25C,0xB25D,0xB25E,0xB25F,0xEEA7,0xEEA4,0xCFB9,0xB260,
-0xB261,0xEEA8,0xC2F7,0xB262,0xB263,0xB264,0xB265,0xB266,
-0xB267,0xB268,0xB269,0xB26A,0xB26B,0xB26C,0xB26D,0xEEA9,
-0xEEAA,0xB26E,0xDEAB,0xB26F,0xB270,0xC6B3,0xB271,0xC7C6,
-0xB272,0xD6F5,0xB5C9,0xB273,0xCBB2,0xB274,0xB275,0xB276,
-0xEEAB,0xB277,0xB278,0xCDAB,0xB279,0xEEAC,0xB27A,0xB27B,
-0xB27C,0xB27D,0xB27E,0xD5B0,0xB280,0xEEAD,0xB281,0xF6C4,
-0xB282,0xB283,0xB284,0xB285,0xB286,0xB287,0xB288,0xB289,
-0xB28A,0xB28B,0xB28C,0xB28D,0xB28E,0xDBC7,0xB28F,0xB290,
-0xB291,0xB292,0xB293,0xB294,0xB295,0xB296,0xB297,0xB4A3,
-0xB298,0xB299,0xB29A,0xC3AC,0xF1E6,0xB29B,0xB29C,0xB29D,
-0xB29E,0xB29F,0xCAB8,0xD2D3,0xB2A0,0xD6AA,0xB340,0xEFF2,
-0xB341,0xBED8,0xB342,0xBDC3,0xEFF3,0xB6CC,0xB0AB,0xB343,
-0xB344,0xB345,0xB346,0xCAAF,0xB347,0xB348,0xEDB6,0xB349,
-0xEDB7,0xB34A,0xB34B,0xB34C,0xB34D,0xCEF9,0xB7AF,0xBFF3,
-0xEDB8,0xC2EB,0xC9B0,0xB34E,0xB34F,0xB350,0xB351,0xB352,
-0xB353,0xEDB9,0xB354,0xB355,0xC6F6,0xBFB3,0xB356,0xB357,
-0xB358,0xEDBC,0xC5F8,0xB359,0xD1D0,0xB35A,0xD7A9,0xEDBA,
-0xEDBB,0xB35B,0xD1E2,0xB35C,0xEDBF,0xEDC0,0xB35D,0xEDC4,
-0xB35E,0xB35F,0xB360,0xEDC8,0xB361,0xEDC6,0xEDCE,0xD5E8,
-0xB362,0xEDC9,0xB363,0xB364,0xEDC7,0xEDBE,0xB365,0xB366,
-0xC5E9,0xB367,0xB368,0xB369,0xC6C6,0xB36A,0xB36B,0xC9E9,
-0xD4D2,0xEDC1,0xEDC2,0xEDC3,0xEDC5,0xB36C,0xC0F9,0xB36D,
-0xB4A1,0xB36E,0xB36F,0xB370,0xB371,0xB9E8,0xB372,0xEDD0,
-0xB373,0xB374,0xB375,0xB376,0xEDD1,0xB377,0xEDCA,0xB378,
-0xEDCF,0xB379,0xCEF8,0xB37A,0xB37B,0xCBB6,0xEDCC,0xEDCD,
-0xB37C,0xB37D,0xB37E,0xB380,0xB381,0xCFF5,0xB382,0xB383,
-0xB384,0xB385,0xB386,0xB387,0xB388,0xB389,0xB38A,0xB38B,
-0xB38C,0xB38D,0xEDD2,0xC1F2,0xD3B2,0xEDCB,0xC8B7,0xB38E,
-0xB38F,0xB390,0xB391,0xB392,0xB393,0xB394,0xB395,0xBCEF,
-0xB396,0xB397,0xB398,0xB399,0xC5F0,0xB39A,0xB39B,0xB39C,
-0xB39D,0xB39E,0xB39F,0xB3A0,0xB440,0xB441,0xB442,0xEDD6,
-0xB443,0xB5EF,0xB444,0xB445,0xC2B5,0xB0AD,0xCBE9,0xB446,
-0xB447,0xB1AE,0xB448,0xEDD4,0xB449,0xB44A,0xB44B,0xCDEB,
-0xB5E2,0xB44C,0xEDD5,0xEDD3,0xEDD7,0xB44D,0xB44E,0xB5FA,
-0xB44F,0xEDD8,0xB450,0xEDD9,0xB451,0xEDDC,0xB452,0xB1CC,
-0xB453,0xB454,0xB455,0xB456,0xB457,0xB458,0xB459,0xB45A,
-0xC5F6,0xBCEE,0xEDDA,0xCCBC,0xB2EA,0xB45B,0xB45C,0xB45D,
-0xB45E,0xEDDB,0xB45F,0xB460,0xB461,0xB462,0xC4EB,0xB463,
-0xB464,0xB4C5,0xB465,0xB466,0xB467,0xB0F5,0xB468,0xB469,
-0xB46A,0xEDDF,0xC0DA,0xB4E8,0xB46B,0xB46C,0xB46D,0xB46E,
-0xC5CD,0xB46F,0xB470,0xB471,0xEDDD,0xBFC4,0xB472,0xB473,
-0xB474,0xEDDE,0xB475,0xB476,0xB477,0xB478,0xB479,0xB47A,
-0xB47B,0xB47C,0xB47D,0xB47E,0xB480,0xB481,0xB482,0xB483,
-0xC4A5,0xB484,0xB485,0xB486,0xEDE0,0xB487,0xB488,0xB489,
-0xB48A,0xB48B,0xEDE1,0xB48C,0xEDE3,0xB48D,0xB48E,0xC1D7,
-0xB48F,0xB490,0xBBC7,0xB491,0xB492,0xB493,0xB494,0xB495,
-0xB496,0xBDB8,0xB497,0xB498,0xB499,0xEDE2,0xB49A,0xB49B,
-0xB49C,0xB49D,0xB49E,0xB49F,0xB4A0,0xB540,0xB541,0xB542,
-0xB543,0xB544,0xB545,0xEDE4,0xB546,0xB547,0xB548,0xB549,
-0xB54A,0xB54B,0xB54C,0xB54D,0xB54E,0xB54F,0xEDE6,0xB550,
-0xB551,0xB552,0xB553,0xB554,0xEDE5,0xB555,0xB556,0xB557,
-0xB558,0xB559,0xB55A,0xB55B,0xB55C,0xB55D,0xB55E,0xB55F,
-0xB560,0xB561,0xB562,0xB563,0xEDE7,0xB564,0xB565,0xB566,
-0xB567,0xB568,0xCABE,0xECEA,0xC0F1,0xB569,0xC9E7,0xB56A,
-0xECEB,0xC6EE,0xB56B,0xB56C,0xB56D,0xB56E,0xECEC,0xB56F,
-0xC6ED,0xECED,0xB570,0xB571,0xB572,0xB573,0xB574,0xB575,
-0xB576,0xB577,0xB578,0xECF0,0xB579,0xB57A,0xD7E6,0xECF3,
-0xB57B,0xB57C,0xECF1,0xECEE,0xECEF,0xD7A3,0xC9F1,0xCBEE,
-0xECF4,0xB57D,0xECF2,0xB57E,0xB580,0xCFE9,0xB581,0xECF6,
-0xC6B1,0xB582,0xB583,0xB584,0xB585,0xBCC0,0xB586,0xECF5,
-0xB587,0xB588,0xB589,0xB58A,0xB58B,0xB58C,0xB58D,0xB5BB,
-0xBBF6,0xB58E,0xECF7,0xB58F,0xB590,0xB591,0xB592,0xB593,
-0xD9F7,0xBDFB,0xB594,0xB595,0xC2BB,0xECF8,0xB596,0xB597,
-0xB598,0xB599,0xECF9,0xB59A,0xB59B,0xB59C,0xB59D,0xB8A3,
-0xB59E,0xB59F,0xB5A0,0xB640,0xB641,0xB642,0xB643,0xB644,
-0xB645,0xB646,0xECFA,0xB647,0xB648,0xB649,0xB64A,0xB64B,
-0xB64C,0xB64D,0xB64E,0xB64F,0xB650,0xB651,0xB652,0xECFB,
-0xB653,0xB654,0xB655,0xB656,0xB657,0xB658,0xB659,0xB65A,
-0xB65B,0xB65C,0xB65D,0xECFC,0xB65E,0xB65F,0xB660,0xB661,
-0xB662,0xD3ED,0xD8AE,0xC0EB,0xB663,0xC7DD,0xBACC,0xB664,
-0xD0E3,0xCBBD,0xB665,0xCDBA,0xB666,0xB667,0xB8D1,0xB668,
-0xB669,0xB1FC,0xB66A,0xC7EF,0xB66B,0xD6D6,0xB66C,0xB66D,
-0xB66E,0xBFC6,0xC3EB,0xB66F,0xB670,0xEFF5,0xB671,0xB672,
-0xC3D8,0xB673,0xB674,0xB675,0xB676,0xB677,0xB678,0xD7E2,
-0xB679,0xB67A,0xB67B,0xEFF7,0xB3D3,0xB67C,0xC7D8,0xD1ED,
-0xB67D,0xD6C8,0xB67E,0xEFF8,0xB680,0xEFF6,0xB681,0xBBFD,
-0xB3C6,0xB682,0xB683,0xB684,0xB685,0xB686,0xB687,0xB688,
-0xBDD5,0xB689,0xB68A,0xD2C6,0xB68B,0xBBE0,0xB68C,0xB68D,
-0xCFA1,0xB68E,0xEFFC,0xEFFB,0xB68F,0xB690,0xEFF9,0xB691,
-0xB692,0xB693,0xB694,0xB3CC,0xB695,0xC9D4,0xCBB0,0xB696,
-0xB697,0xB698,0xB699,0xB69A,0xEFFE,0xB69B,0xB69C,0xB0DE,
-0xB69D,0xB69E,0xD6C9,0xB69F,0xB6A0,0xB740,0xEFFD,0xB741,
-0xB3ED,0xB742,0xB743,0xF6D5,0xB744,0xB745,0xB746,0xB747,
-0xB748,0xB749,0xB74A,0xB74B,0xB74C,0xB74D,0xB74E,0xB74F,
-0xB750,0xB751,0xB752,0xCEC8,0xB753,0xB754,0xB755,0xF0A2,
-0xB756,0xF0A1,0xB757,0xB5BE,0xBCDA,0xBBFC,0xB758,0xB8E5,
-0xB759,0xB75A,0xB75B,0xB75C,0xB75D,0xB75E,0xC4C2,0xB75F,
-0xB760,0xB761,0xB762,0xB763,0xB764,0xB765,0xB766,0xB767,
-0xB768,0xF0A3,0xB769,0xB76A,0xB76B,0xB76C,0xB76D,0xCBEB,
-0xB76E,0xB76F,0xB770,0xB771,0xB772,0xB773,0xB774,0xB775,
-0xB776,0xB777,0xB778,0xB779,0xB77A,0xB77B,0xB77C,0xB77D,
-0xB77E,0xB780,0xB781,0xB782,0xB783,0xB784,0xB785,0xB786,
-0xF0A6,0xB787,0xB788,0xB789,0xD1A8,0xB78A,0xBEBF,0xC7EE,
-0xF1B6,0xF1B7,0xBFD5,0xB78B,0xB78C,0xB78D,0xB78E,0xB4A9,
-0xF1B8,0xCDBB,0xB78F,0xC7D4,0xD5AD,0xB790,0xF1B9,0xB791,
-0xF1BA,0xB792,0xB793,0xB794,0xB795,0xC7CF,0xB796,0xB797,
-0xB798,0xD2A4,0xD6CF,0xB799,0xB79A,0xF1BB,0xBDD1,0xB4B0,
-0xBEBD,0xB79B,0xB79C,0xB79D,0xB4DC,0xCED1,0xB79E,0xBFDF,
-0xF1BD,0xB79F,0xB7A0,0xB840,0xB841,0xBFFA,0xF1BC,0xB842,
-0xF1BF,0xB843,0xB844,0xB845,0xF1BE,0xF1C0,0xB846,0xB847,
-0xB848,0xB849,0xB84A,0xF1C1,0xB84B,0xB84C,0xB84D,0xB84E,
-0xB84F,0xB850,0xB851,0xB852,0xB853,0xB854,0xB855,0xC1FE,
-0xB856,0xB857,0xB858,0xB859,0xB85A,0xB85B,0xB85C,0xB85D,
-0xB85E,0xB85F,0xB860,0xC1A2,0xB861,0xB862,0xB863,0xB864,
-0xB865,0xB866,0xB867,0xB868,0xB869,0xB86A,0xCAFA,0xB86B,
-0xB86C,0xD5BE,0xB86D,0xB86E,0xB86F,0xB870,0xBEBA,0xBEB9,
-0xD5C2,0xB871,0xB872,0xBFA2,0xB873,0xCDAF,0xF1B5,0xB874,
-0xB875,0xB876,0xB877,0xB878,0xB879,0xBDDF,0xB87A,0xB6CB,
-0xB87B,0xB87C,0xB87D,0xB87E,0xB880,0xB881,0xB882,0xB883,
-0xB884,0xD6F1,0xF3C3,0xB885,0xB886,0xF3C4,0xB887,0xB8CD,
-0xB888,0xB889,0xB88A,0xF3C6,0xF3C7,0xB88B,0xB0CA,0xB88C,
-0xF3C5,0xB88D,0xF3C9,0xCBF1,0xB88E,0xB88F,0xB890,0xF3CB,
-0xB891,0xD0A6,0xB892,0xB893,0xB1CA,0xF3C8,0xB894,0xB895,
-0xB896,0xF3CF,0xB897,0xB5D1,0xB898,0xB899,0xF3D7,0xB89A,
-0xF3D2,0xB89B,0xB89C,0xB89D,0xF3D4,0xF3D3,0xB7FB,0xB89E,
-0xB1BF,0xB89F,0xF3CE,0xF3CA,0xB5DA,0xB8A0,0xF3D0,0xB940,
-0xB941,0xF3D1,0xB942,0xF3D5,0xB943,0xB944,0xB945,0xB946,
-0xF3CD,0xB947,0xBCE3,0xB948,0xC1FD,0xB949,0xF3D6,0xB94A,
-0xB94B,0xB94C,0xB94D,0xB94E,0xB94F,0xF3DA,0xB950,0xF3CC,
-0xB951,0xB5C8,0xB952,0xBDEE,0xF3DC,0xB953,0xB954,0xB7A4,
-0xBFF0,0xD6FE,0xCDB2,0xB955,0xB4F0,0xB956,0xB2DF,0xB957,
-0xF3D8,0xB958,0xF3D9,0xC9B8,0xB959,0xF3DD,0xB95A,0xB95B,
-0xF3DE,0xB95C,0xF3E1,0xB95D,0xB95E,0xB95F,0xB960,0xB961,
-0xB962,0xB963,0xB964,0xB965,0xB966,0xB967,0xF3DF,0xB968,
-0xB969,0xF3E3,0xF3E2,0xB96A,0xB96B,0xF3DB,0xB96C,0xBFEA,
-0xB96D,0xB3EF,0xB96E,0xF3E0,0xB96F,0xB970,0xC7A9,0xB971,
-0xBCF2,0xB972,0xB973,0xB974,0xB975,0xF3EB,0xB976,0xB977,
-0xB978,0xB979,0xB97A,0xB97B,0xB97C,0xB9BF,0xB97D,0xB97E,
-0xF3E4,0xB980,0xB981,0xB982,0xB2AD,0xBBFE,0xB983,0xCBE3,
-0xB984,0xB985,0xB986,0xB987,0xF3ED,0xF3E9,0xB988,0xB989,
-0xB98A,0xB9DC,0xF3EE,0xB98B,0xB98C,0xB98D,0xF3E5,0xF3E6,
-0xF3EA,0xC2E1,0xF3EC,0xF3EF,0xF3E8,0xBCFD,0xB98E,0xB98F,
-0xB990,0xCFE4,0xB991,0xB992,0xF3F0,0xB993,0xB994,0xB995,
-0xF3E7,0xB996,0xB997,0xB998,0xB999,0xB99A,0xB99B,0xB99C,
-0xB99D,0xF3F2,0xB99E,0xB99F,0xB9A0,0xBA40,0xD7AD,0xC6AA,
-0xBA41,0xBA42,0xBA43,0xBA44,0xF3F3,0xBA45,0xBA46,0xBA47,
-0xBA48,0xF3F1,0xBA49,0xC2A8,0xBA4A,0xBA4B,0xBA4C,0xBA4D,
-0xBA4E,0xB8DD,0xF3F5,0xBA4F,0xBA50,0xF3F4,0xBA51,0xBA52,
-0xBA53,0xB4DB,0xBA54,0xBA55,0xBA56,0xF3F6,0xF3F7,0xBA57,
-0xBA58,0xBA59,0xF3F8,0xBA5A,0xBA5B,0xBA5C,0xC0BA,0xBA5D,
-0xBA5E,0xC0E9,0xBA5F,0xBA60,0xBA61,0xBA62,0xBA63,0xC5F1,
-0xBA64,0xBA65,0xBA66,0xBA67,0xF3FB,0xBA68,0xF3FA,0xBA69,
-0xBA6A,0xBA6B,0xBA6C,0xBA6D,0xBA6E,0xBA6F,0xBA70,0xB4D8,
-0xBA71,0xBA72,0xBA73,0xF3FE,0xF3F9,0xBA74,0xBA75,0xF3FC,
-0xBA76,0xBA77,0xBA78,0xBA79,0xBA7A,0xBA7B,0xF3FD,0xBA7C,
-0xBA7D,0xBA7E,0xBA80,0xBA81,0xBA82,0xBA83,0xBA84,0xF4A1,
-0xBA85,0xBA86,0xBA87,0xBA88,0xBA89,0xBA8A,0xF4A3,0xBBC9,
-0xBA8B,0xBA8C,0xF4A2,0xBA8D,0xBA8E,0xBA8F,0xBA90,0xBA91,
-0xBA92,0xBA93,0xBA94,0xBA95,0xBA96,0xBA97,0xBA98,0xBA99,
-0xF4A4,0xBA9A,0xBA9B,0xBA9C,0xBA9D,0xBA9E,0xBA9F,0xB2BE,
-0xF4A6,0xF4A5,0xBAA0,0xBB40,0xBB41,0xBB42,0xBB43,0xBB44,
-0xBB45,0xBB46,0xBB47,0xBB48,0xBB49,0xBCAE,0xBB4A,0xBB4B,
-0xBB4C,0xBB4D,0xBB4E,0xBB4F,0xBB50,0xBB51,0xBB52,0xBB53,
-0xBB54,0xBB55,0xBB56,0xBB57,0xBB58,0xBB59,0xBB5A,0xBB5B,
-0xBB5C,0xBB5D,0xBB5E,0xBB5F,0xBB60,0xBB61,0xBB62,0xBB63,
-0xBB64,0xBB65,0xBB66,0xBB67,0xBB68,0xBB69,0xBB6A,0xBB6B,
-0xBB6C,0xBB6D,0xBB6E,0xC3D7,0xD9E1,0xBB6F,0xBB70,0xBB71,
-0xBB72,0xBB73,0xBB74,0xC0E0,0xF4CC,0xD7D1,0xBB75,0xBB76,
-0xBB77,0xBB78,0xBB79,0xBB7A,0xBB7B,0xBB7C,0xBB7D,0xBB7E,
-0xBB80,0xB7DB,0xBB81,0xBB82,0xBB83,0xBB84,0xBB85,0xBB86,
-0xBB87,0xF4CE,0xC1A3,0xBB88,0xBB89,0xC6C9,0xBB8A,0xB4D6,
-0xD5B3,0xBB8B,0xBB8C,0xBB8D,0xF4D0,0xF4CF,0xF4D1,0xCBDA,
-0xBB8E,0xBB8F,0xF4D2,0xBB90,0xD4C1,0xD6E0,0xBB91,0xBB92,
-0xBB93,0xBB94,0xB7E0,0xBB95,0xBB96,0xBB97,0xC1B8,0xBB98,
-0xBB99,0xC1BB,0xF4D3,0xBEAC,0xBB9A,0xBB9B,0xBB9C,0xBB9D,
-0xBB9E,0xB4E2,0xBB9F,0xBBA0,0xF4D4,0xF4D5,0xBEAB,0xBC40,
-0xBC41,0xF4D6,0xBC42,0xBC43,0xBC44,0xF4DB,0xBC45,0xF4D7,
-0xF4DA,0xBC46,0xBAFD,0xBC47,0xF4D8,0xF4D9,0xBC48,0xBC49,
-0xBC4A,0xBC4B,0xBC4C,0xBC4D,0xBC4E,0xB8E2,0xCCC7,0xF4DC,
-0xBC4F,0xB2DA,0xBC50,0xBC51,0xC3D3,0xBC52,0xBC53,0xD4E3,
-0xBFB7,0xBC54,0xBC55,0xBC56,0xBC57,0xBC58,0xBC59,0xBC5A,
-0xF4DD,0xBC5B,0xBC5C,0xBC5D,0xBC5E,0xBC5F,0xBC60,0xC5B4,
-0xBC61,0xBC62,0xBC63,0xBC64,0xBC65,0xBC66,0xBC67,0xBC68,
-0xF4E9,0xBC69,0xBC6A,0xCFB5,0xBC6B,0xBC6C,0xBC6D,0xBC6E,
-0xBC6F,0xBC70,0xBC71,0xBC72,0xBC73,0xBC74,0xBC75,0xBC76,
-0xBC77,0xBC78,0xCEC9,0xBC79,0xBC7A,0xBC7B,0xBC7C,0xBC7D,
-0xBC7E,0xBC80,0xBC81,0xBC82,0xBC83,0xBC84,0xBC85,0xBC86,
-0xBC87,0xBC88,0xBC89,0xBC8A,0xBC8B,0xBC8C,0xBC8D,0xBC8E,
-0xCBD8,0xBC8F,0xCBF7,0xBC90,0xBC91,0xBC92,0xBC93,0xBDF4,
-0xBC94,0xBC95,0xBC96,0xD7CF,0xBC97,0xBC98,0xBC99,0xC0DB,
-0xBC9A,0xBC9B,0xBC9C,0xBC9D,0xBC9E,0xBC9F,0xBCA0,0xBD40,
-0xBD41,0xBD42,0xBD43,0xBD44,0xBD45,0xBD46,0xBD47,0xBD48,
-0xBD49,0xBD4A,0xBD4B,0xBD4C,0xBD4D,0xBD4E,0xBD4F,0xBD50,
-0xBD51,0xBD52,0xBD53,0xBD54,0xBD55,0xBD56,0xBD57,0xBD58,
-0xBD59,0xBD5A,0xBD5B,0xBD5C,0xBD5D,0xBD5E,0xBD5F,0xBD60,
-0xBD61,0xBD62,0xBD63,0xBD64,0xBD65,0xBD66,0xBD67,0xBD68,
-0xBD69,0xBD6A,0xBD6B,0xBD6C,0xBD6D,0xBD6E,0xBD6F,0xBD70,
-0xBD71,0xBD72,0xBD73,0xBD74,0xBD75,0xBD76,0xD0F5,0xBD77,
-0xBD78,0xBD79,0xBD7A,0xBD7B,0xBD7C,0xBD7D,0xBD7E,0xF4EA,
-0xBD80,0xBD81,0xBD82,0xBD83,0xBD84,0xBD85,0xBD86,0xBD87,
-0xBD88,0xBD89,0xBD8A,0xBD8B,0xBD8C,0xBD8D,0xBD8E,0xBD8F,
-0xBD90,0xBD91,0xBD92,0xBD93,0xBD94,0xBD95,0xBD96,0xBD97,
-0xBD98,0xBD99,0xBD9A,0xBD9B,0xBD9C,0xBD9D,0xBD9E,0xBD9F,
-0xBDA0,0xBE40,0xBE41,0xBE42,0xBE43,0xBE44,0xBE45,0xBE46,
-0xBE47,0xBE48,0xBE49,0xBE4A,0xBE4B,0xBE4C,0xF4EB,0xBE4D,
-0xBE4E,0xBE4F,0xBE50,0xBE51,0xBE52,0xBE53,0xF4EC,0xBE54,
-0xBE55,0xBE56,0xBE57,0xBE58,0xBE59,0xBE5A,0xBE5B,0xBE5C,
-0xBE5D,0xBE5E,0xBE5F,0xBE60,0xBE61,0xBE62,0xBE63,0xBE64,
-0xBE65,0xBE66,0xBE67,0xBE68,0xBE69,0xBE6A,0xBE6B,0xBE6C,
-0xBE6D,0xBE6E,0xBE6F,0xBE70,0xBE71,0xBE72,0xBE73,0xBE74,
-0xBE75,0xBE76,0xBE77,0xBE78,0xBE79,0xBE7A,0xBE7B,0xBE7C,
-0xBE7D,0xBE7E,0xBE80,0xBE81,0xBE82,0xBE83,0xBE84,0xBE85,
-0xBE86,0xBE87,0xBE88,0xBE89,0xBE8A,0xBE8B,0xBE8C,0xBE8D,
-0xBE8E,0xBE8F,0xBE90,0xBE91,0xBE92,0xBE93,0xBE94,0xBE95,
-0xBE96,0xBE97,0xBE98,0xBE99,0xBE9A,0xBE9B,0xBE9C,0xBE9D,
-0xBE9E,0xBE9F,0xBEA0,0xBF40,0xBF41,0xBF42,0xBF43,0xBF44,
-0xBF45,0xBF46,0xBF47,0xBF48,0xBF49,0xBF4A,0xBF4B,0xBF4C,
-0xBF4D,0xBF4E,0xBF4F,0xBF50,0xBF51,0xBF52,0xBF53,0xBF54,
-0xBF55,0xBF56,0xBF57,0xBF58,0xBF59,0xBF5A,0xBF5B,0xBF5C,
-0xBF5D,0xBF5E,0xBF5F,0xBF60,0xBF61,0xBF62,0xBF63,0xBF64,
-0xBF65,0xBF66,0xBF67,0xBF68,0xBF69,0xBF6A,0xBF6B,0xBF6C,
-0xBF6D,0xBF6E,0xBF6F,0xBF70,0xBF71,0xBF72,0xBF73,0xBF74,
-0xBF75,0xBF76,0xBF77,0xBF78,0xBF79,0xBF7A,0xBF7B,0xBF7C,
-0xBF7D,0xBF7E,0xBF80,0xF7E3,0xBF81,0xBF82,0xBF83,0xBF84,
-0xBF85,0xB7B1,0xBF86,0xBF87,0xBF88,0xBF89,0xBF8A,0xF4ED,
-0xBF8B,0xBF8C,0xBF8D,0xBF8E,0xBF8F,0xBF90,0xBF91,0xBF92,
-0xBF93,0xBF94,0xBF95,0xBF96,0xBF97,0xBF98,0xBF99,0xBF9A,
-0xBF9B,0xBF9C,0xBF9D,0xBF9E,0xBF9F,0xBFA0,0xC040,0xC041,
-0xC042,0xC043,0xC044,0xC045,0xC046,0xC047,0xC048,0xC049,
-0xC04A,0xC04B,0xC04C,0xC04D,0xC04E,0xC04F,0xC050,0xC051,
-0xC052,0xC053,0xC054,0xC055,0xC056,0xC057,0xC058,0xC059,
-0xC05A,0xC05B,0xC05C,0xC05D,0xC05E,0xC05F,0xC060,0xC061,
-0xC062,0xC063,0xD7EB,0xC064,0xC065,0xC066,0xC067,0xC068,
-0xC069,0xC06A,0xC06B,0xC06C,0xC06D,0xC06E,0xC06F,0xC070,
-0xC071,0xC072,0xC073,0xC074,0xC075,0xC076,0xC077,0xC078,
-0xC079,0xC07A,0xC07B,0xF4EE,0xC07C,0xC07D,0xC07E,0xE6F9,
-0xBEC0,0xE6FA,0xBAEC,0xE6FB,0xCFCB,0xE6FC,0xD4BC,0xBCB6,
-0xE6FD,0xE6FE,0xBCCD,0xC8D2,0xCEB3,0xE7A1,0xC080,0xB4BF,
-0xE7A2,0xC9B4,0xB8D9,0xC4C9,0xC081,0xD7DD,0xC2DA,0xB7D7,
-0xD6BD,0xCEC6,0xB7C4,0xC082,0xC083,0xC5A6,0xE7A3,0xCFDF,
-0xE7A4,0xE7A5,0xE7A6,0xC1B7,0xD7E9,0xC9F0,0xCFB8,0xD6AF,
-0xD6D5,0xE7A7,0xB0ED,0xE7A8,0xE7A9,0xC9DC,0xD2EF,0xBEAD,
-0xE7AA,0xB0F3,0xC8DE,0xBDE1,0xE7AB,0xC8C6,0xC084,0xE7AC,
-0xBBE6,0xB8F8,0xD1A4,0xE7AD,0xC2E7,0xBEF8,0xBDCA,0xCDB3,
-0xE7AE,0xE7AF,0xBEEE,0xD0E5,0xC085,0xCBE7,0xCCD0,0xBCCC,
-0xE7B0,0xBCA8,0xD0F7,0xE7B1,0xC086,0xD0F8,0xE7B2,0xE7B3,
-0xB4C2,0xE7B4,0xE7B5,0xC9FE,0xCEAC,0xC3E0,0xE7B7,0xB1C1,
-0xB3F1,0xC087,0xE7B8,0xE7B9,0xD7DB,0xD5C0,0xE7BA,0xC2CC,
-0xD7BA,0xE7BB,0xE7BC,0xE7BD,0xBCEA,0xC3E5,0xC0C2,0xE7BE,
-0xE7BF,0xBCA9,0xC088,0xE7C0,0xE7C1,0xE7B6,0xB6D0,0xE7C2,
-0xC089,0xE7C3,0xE7C4,0xBBBA,0xB5DE,0xC2C6,0xB1E0,0xE7C5,
-0xD4B5,0xE7C6,0xB8BF,0xE7C8,0xE7C7,0xB7EC,0xC08A,0xE7C9,
-0xB2F8,0xE7CA,0xE7CB,0xE7CC,0xE7CD,0xE7CE,0xE7CF,0xE7D0,
-0xD3A7,0xCBF5,0xE7D1,0xE7D2,0xE7D3,0xE7D4,0xC9C9,0xE7D5,
-0xE7D6,0xE7D7,0xE7D8,0xE7D9,0xBDC9,0xE7DA,0xF3BE,0xC08B,
-0xB8D7,0xC08C,0xC8B1,0xC08D,0xC08E,0xC08F,0xC090,0xC091,
-0xC092,0xC093,0xF3BF,0xC094,0xF3C0,0xF3C1,0xC095,0xC096,
-0xC097,0xC098,0xC099,0xC09A,0xC09B,0xC09C,0xC09D,0xC09E,
-0xB9DE,0xCDF8,0xC09F,0xC0A0,0xD8E8,0xBAB1,0xC140,0xC2DE,
-0xEEB7,0xC141,0xB7A3,0xC142,0xC143,0xC144,0xC145,0xEEB9,
-0xC146,0xEEB8,0xB0D5,0xC147,0xC148,0xC149,0xC14A,0xC14B,
-0xEEBB,0xD5D6,0xD7EF,0xC14C,0xC14D,0xC14E,0xD6C3,0xC14F,
-0xC150,0xEEBD,0xCAF0,0xC151,0xEEBC,0xC152,0xC153,0xC154,
-0xC155,0xEEBE,0xC156,0xC157,0xC158,0xC159,0xEEC0,0xC15A,
-0xC15B,0xEEBF,0xC15C,0xC15D,0xC15E,0xC15F,0xC160,0xC161,
-0xC162,0xC163,0xD1F2,0xC164,0xC7BC,0xC165,0xC3C0,0xC166,
-0xC167,0xC168,0xC169,0xC16A,0xB8E1,0xC16B,0xC16C,0xC16D,
-0xC16E,0xC16F,0xC1E7,0xC170,0xC171,0xF4C6,0xD0DF,0xF4C7,
-0xC172,0xCFDB,0xC173,0xC174,0xC8BA,0xC175,0xC176,0xF4C8,
-0xC177,0xC178,0xC179,0xC17A,0xC17B,0xC17C,0xC17D,0xF4C9,
-0xF4CA,0xC17E,0xF4CB,0xC180,0xC181,0xC182,0xC183,0xC184,
-0xD9FA,0xB8FE,0xC185,0xC186,0xE5F1,0xD3F0,0xC187,0xF4E0,
-0xC188,0xCECC,0xC189,0xC18A,0xC18B,0xB3E1,0xC18C,0xC18D,
-0xC18E,0xC18F,0xF1B4,0xC190,0xD2EE,0xC191,0xF4E1,0xC192,
-0xC193,0xC194,0xC195,0xC196,0xCFE8,0xF4E2,0xC197,0xC198,
-0xC7CC,0xC199,0xC19A,0xC19B,0xC19C,0xC19D,0xC19E,0xB5D4,
-0xB4E4,0xF4E4,0xC19F,0xC1A0,0xC240,0xF4E3,0xF4E5,0xC241,
-0xC242,0xF4E6,0xC243,0xC244,0xC245,0xC246,0xF4E7,0xC247,
-0xBAB2,0xB0BF,0xC248,0xF4E8,0xC249,0xC24A,0xC24B,0xC24C,
-0xC24D,0xC24E,0xC24F,0xB7AD,0xD2ED,0xC250,0xC251,0xC252,
-0xD2AB,0xC0CF,0xC253,0xBFBC,0xEBA3,0xD5DF,0xEAC8,0xC254,
-0xC255,0xC256,0xC257,0xF1F3,0xB6F8,0xCBA3,0xC258,0xC259,
-0xC4CD,0xC25A,0xF1E7,0xC25B,0xF1E8,0xB8FB,0xF1E9,0xBAC4,
-0xD4C5,0xB0D2,0xC25C,0xC25D,0xF1EA,0xC25E,0xC25F,0xC260,
-0xF1EB,0xC261,0xF1EC,0xC262,0xC263,0xF1ED,0xF1EE,0xF1EF,
-0xF1F1,0xF1F0,0xC5D5,0xC264,0xC265,0xC266,0xC267,0xC268,
-0xC269,0xF1F2,0xC26A,0xB6FA,0xC26B,0xF1F4,0xD2AE,0xDEC7,
-0xCBCA,0xC26C,0xC26D,0xB3DC,0xC26E,0xB5A2,0xC26F,0xB9A2,
-0xC270,0xC271,0xC4F4,0xF1F5,0xC272,0xC273,0xF1F6,0xC274,
-0xC275,0xC276,0xC1C4,0xC1FB,0xD6B0,0xF1F7,0xC277,0xC278,
-0xC279,0xC27A,0xF1F8,0xC27B,0xC1AA,0xC27C,0xC27D,0xC27E,
-0xC6B8,0xC280,0xBEDB,0xC281,0xC282,0xC283,0xC284,0xC285,
-0xC286,0xC287,0xC288,0xC289,0xC28A,0xC28B,0xC28C,0xC28D,
-0xC28E,0xF1F9,0xB4CF,0xC28F,0xC290,0xC291,0xC292,0xC293,
-0xC294,0xF1FA,0xC295,0xC296,0xC297,0xC298,0xC299,0xC29A,
-0xC29B,0xC29C,0xC29D,0xC29E,0xC29F,0xC2A0,0xC340,0xEDB2,
-0xEDB1,0xC341,0xC342,0xCBE0,0xD2DE,0xC343,0xCBC1,0xD5D8,
-0xC344,0xC8E2,0xC345,0xC0DF,0xBCA1,0xC346,0xC347,0xC348,
-0xC349,0xC34A,0xC34B,0xEBC1,0xC34C,0xC34D,0xD0A4,0xC34E,
-0xD6E2,0xC34F,0xB6C7,0xB8D8,0xEBC0,0xB8CE,0xC350,0xEBBF,
-0xB3A6,0xB9C9,0xD6AB,0xC351,0xB7F4,0xB7CA,0xC352,0xC353,
-0xC354,0xBCE7,0xB7BE,0xEBC6,0xC355,0xEBC7,0xB0B9,0xBFCF,
-0xC356,0xEBC5,0xD3FD,0xC357,0xEBC8,0xC358,0xC359,0xEBC9,
-0xC35A,0xC35B,0xB7CE,0xC35C,0xEBC2,0xEBC4,0xC9F6,0xD6D7,
-0xD5CD,0xD0B2,0xEBCF,0xCEB8,0xEBD0,0xC35D,0xB5A8,0xC35E,
-0xC35F,0xC360,0xC361,0xC362,0xB1B3,0xEBD2,0xCCA5,0xC363,
-0xC364,0xC365,0xC366,0xC367,0xC368,0xC369,0xC5D6,0xEBD3,
-0xC36A,0xEBD1,0xC5DF,0xEBCE,0xCAA4,0xEBD5,0xB0FB,0xC36B,
-0xC36C,0xBAFA,0xC36D,0xC36E,0xD8B7,0xF1E3,0xC36F,0xEBCA,
-0xEBCB,0xEBCC,0xEBCD,0xEBD6,0xE6C0,0xEBD9,0xC370,0xBFE8,
-0xD2C8,0xEBD7,0xEBDC,0xB8EC,0xEBD8,0xC371,0xBDBA,0xC372,
-0xD0D8,0xC373,0xB0B7,0xC374,0xEBDD,0xC4DC,0xC375,0xC376,
-0xC377,0xC378,0xD6AC,0xC379,0xC37A,0xC37B,0xB4E0,0xC37C,
-0xC37D,0xC2F6,0xBCB9,0xC37E,0xC380,0xEBDA,0xEBDB,0xD4E0,
-0xC6EA,0xC4D4,0xEBDF,0xC5A7,0xD9F5,0xC381,0xB2B1,0xC382,
-0xEBE4,0xC383,0xBDC5,0xC384,0xC385,0xC386,0xEBE2,0xC387,
-0xC388,0xC389,0xC38A,0xC38B,0xC38C,0xC38D,0xC38E,0xC38F,
-0xC390,0xC391,0xC392,0xC393,0xEBE3,0xC394,0xC395,0xB8AC,
-0xC396,0xCDD1,0xEBE5,0xC397,0xC398,0xC399,0xEBE1,0xC39A,
-0xC1B3,0xC39B,0xC39C,0xC39D,0xC39E,0xC39F,0xC6A2,0xC3A0,
-0xC440,0xC441,0xC442,0xC443,0xC444,0xC445,0xCCF3,0xC446,
-0xEBE6,0xC447,0xC0B0,0xD2B8,0xEBE7,0xC448,0xC449,0xC44A,
-0xB8AF,0xB8AD,0xC44B,0xEBE8,0xC7BB,0xCDF3,0xC44C,0xC44D,
-0xC44E,0xEBEA,0xEBEB,0xC44F,0xC450,0xC451,0xC452,0xC453,
-0xEBED,0xC454,0xC455,0xC456,0xC457,0xD0C8,0xC458,0xEBF2,
-0xC459,0xEBEE,0xC45A,0xC45B,0xC45C,0xEBF1,0xC8F9,0xC45D,
-0xD1FC,0xEBEC,0xC45E,0xC45F,0xEBE9,0xC460,0xC461,0xC462,
-0xC463,0xB8B9,0xCFD9,0xC4E5,0xEBEF,0xEBF0,0xCCDA,0xCDC8,
-0xB0F2,0xC464,0xEBF6,0xC465,0xC466,0xC467,0xC468,0xC469,
-0xEBF5,0xC46A,0xB2B2,0xC46B,0xC46C,0xC46D,0xC46E,0xB8E0,
-0xC46F,0xEBF7,0xC470,0xC471,0xC472,0xC473,0xC474,0xC475,
-0xB1EC,0xC476,0xC477,0xCCC5,0xC4A4,0xCFA5,0xC478,0xC479,
-0xC47A,0xC47B,0xC47C,0xEBF9,0xC47D,0xC47E,0xECA2,0xC480,
-0xC5F2,0xC481,0xEBFA,0xC482,0xC483,0xC484,0xC485,0xC486,
-0xC487,0xC488,0xC489,0xC9C5,0xC48A,0xC48B,0xC48C,0xC48D,
-0xC48E,0xC48F,0xE2DF,0xEBFE,0xC490,0xC491,0xC492,0xC493,
-0xCDCE,0xECA1,0xB1DB,0xD3B7,0xC494,0xC495,0xD2DC,0xC496,
-0xC497,0xC498,0xEBFD,0xC499,0xEBFB,0xC49A,0xC49B,0xC49C,
-0xC49D,0xC49E,0xC49F,0xC4A0,0xC540,0xC541,0xC542,0xC543,
-0xC544,0xC545,0xC546,0xC547,0xC548,0xC549,0xC54A,0xC54B,
-0xC54C,0xC54D,0xC54E,0xB3BC,0xC54F,0xC550,0xC551,0xEAB0,
-0xC552,0xC553,0xD7D4,0xC554,0xF4AB,0xB3F4,0xC555,0xC556,
-0xC557,0xC558,0xC559,0xD6C1,0xD6C2,0xC55A,0xC55B,0xC55C,
-0xC55D,0xC55E,0xC55F,0xD5E9,0xBECA,0xC560,0xF4A7,0xC561,
-0xD2A8,0xF4A8,0xF4A9,0xC562,0xF4AA,0xBECB,0xD3DF,0xC563,
-0xC564,0xC565,0xC566,0xC567,0xC9E0,0xC9E1,0xC568,0xC569,
-0xF3C2,0xC56A,0xCAE6,0xC56B,0xCCF2,0xC56C,0xC56D,0xC56E,
-0xC56F,0xC570,0xC571,0xE2B6,0xCBB4,0xC572,0xCEE8,0xD6DB,
-0xC573,0xF4AD,0xF4AE,0xF4AF,0xC574,0xC575,0xC576,0xC577,
-0xF4B2,0xC578,0xBABD,0xF4B3,0xB0E3,0xF4B0,0xC579,0xF4B1,
-0xBDA2,0xB2D5,0xC57A,0xF4B6,0xF4B7,0xB6E6,0xB2B0,0xCFCF,
-0xF4B4,0xB4AC,0xC57B,0xF4B5,0xC57C,0xC57D,0xF4B8,0xC57E,
-0xC580,0xC581,0xC582,0xC583,0xF4B9,0xC584,0xC585,0xCDA7,
-0xC586,0xF4BA,0xC587,0xF4BB,0xC588,0xC589,0xC58A,0xF4BC,
-0xC58B,0xC58C,0xC58D,0xC58E,0xC58F,0xC590,0xC591,0xC592,
-0xCBD2,0xC593,0xF4BD,0xC594,0xC595,0xC596,0xC597,0xF4BE,
-0xC598,0xC599,0xC59A,0xC59B,0xC59C,0xC59D,0xC59E,0xC59F,
-0xF4BF,0xC5A0,0xC640,0xC641,0xC642,0xC643,0xF4DE,0xC1BC,
-0xBCE8,0xC644,0xC9AB,0xD1DE,0xE5F5,0xC645,0xC646,0xC647,
-0xC648,0xDCB3,0xD2D5,0xC649,0xC64A,0xDCB4,0xB0AC,0xDCB5,
-0xC64B,0xC64C,0xBDDA,0xC64D,0xDCB9,0xC64E,0xC64F,0xC650,
-0xD8C2,0xC651,0xDCB7,0xD3F3,0xC652,0xC9D6,0xDCBA,0xDCB6,
-0xC653,0xDCBB,0xC3A2,0xC654,0xC655,0xC656,0xC657,0xDCBC,
-0xDCC5,0xDCBD,0xC658,0xC659,0xCEDF,0xD6A5,0xC65A,0xDCCF,
-0xC65B,0xDCCD,0xC65C,0xC65D,0xDCD2,0xBDE6,0xC2AB,0xC65E,
-0xDCB8,0xDCCB,0xDCCE,0xDCBE,0xB7D2,0xB0C5,0xDCC7,0xD0BE,
-0xDCC1,0xBBA8,0xC65F,0xB7BC,0xDCCC,0xC660,0xC661,0xDCC6,
-0xDCBF,0xC7DB,0xC662,0xC663,0xC664,0xD1BF,0xDCC0,0xC665,
-0xC666,0xDCCA,0xC667,0xC668,0xDCD0,0xC669,0xC66A,0xCEAD,
-0xDCC2,0xC66B,0xDCC3,0xDCC8,0xDCC9,0xB2D4,0xDCD1,0xCBD5,
-0xC66C,0xD4B7,0xDCDB,0xDCDF,0xCCA6,0xDCE6,0xC66D,0xC3E7,
-0xDCDC,0xC66E,0xC66F,0xBFC1,0xDCD9,0xC670,0xB0FA,0xB9B6,
-0xDCE5,0xDCD3,0xC671,0xDCC4,0xDCD6,0xC8F4,0xBFE0,0xC672,
-0xC673,0xC674,0xC675,0xC9BB,0xC676,0xC677,0xC678,0xB1BD,
-0xC679,0xD3A2,0xC67A,0xC67B,0xDCDA,0xC67C,0xC67D,0xDCD5,
-0xC67E,0xC6BB,0xC680,0xDCDE,0xC681,0xC682,0xC683,0xC684,
-0xC685,0xD7C2,0xC3AF,0xB7B6,0xC7D1,0xC3A9,0xDCE2,0xDCD8,
-0xDCEB,0xDCD4,0xC686,0xC687,0xDCDD,0xC688,0xBEA5,0xDCD7,
-0xC689,0xDCE0,0xC68A,0xC68B,0xDCE3,0xDCE4,0xC68C,0xDCF8,
-0xC68D,0xC68E,0xDCE1,0xDDA2,0xDCE7,0xC68F,0xC690,0xC691,
-0xC692,0xC693,0xC694,0xC695,0xC696,0xC697,0xC698,0xBCEB,
-0xB4C4,0xC699,0xC69A,0xC3A3,0xB2E7,0xDCFA,0xC69B,0xDCF2,
-0xC69C,0xDCEF,0xC69D,0xDCFC,0xDCEE,0xD2F0,0xB2E8,0xC69E,
-0xC8D7,0xC8E3,0xDCFB,0xC69F,0xDCED,0xC6A0,0xC740,0xC741,
-0xDCF7,0xC742,0xC743,0xDCF5,0xC744,0xC745,0xBEA3,0xDCF4,
-0xC746,0xB2DD,0xC747,0xC748,0xC749,0xC74A,0xC74B,0xDCF3,
-0xBCF6,0xDCE8,0xBBC4,0xC74C,0xC0F3,0xC74D,0xC74E,0xC74F,
-0xC750,0xC751,0xBCD4,0xDCE9,0xDCEA,0xC752,0xDCF1,0xDCF6,
-0xDCF9,0xB5B4,0xC753,0xC8D9,0xBBE7,0xDCFE,0xDCFD,0xD3AB,
-0xDDA1,0xDDA3,0xDDA5,0xD2F1,0xDDA4,0xDDA6,0xDDA7,0xD2A9,
-0xC754,0xC755,0xC756,0xC757,0xC758,0xC759,0xC75A,0xBAC9,
-0xDDA9,0xC75B,0xC75C,0xDDB6,0xDDB1,0xDDB4,0xC75D,0xC75E,
-0xC75F,0xC760,0xC761,0xC762,0xC763,0xDDB0,0xC6CE,0xC764,
-0xC765,0xC0F2,0xC766,0xC767,0xC768,0xC769,0xC9AF,0xC76A,
-0xC76B,0xC76C,0xDCEC,0xDDAE,0xC76D,0xC76E,0xC76F,0xC770,
-0xDDB7,0xC771,0xC772,0xDCF0,0xDDAF,0xC773,0xDDB8,0xC774,
-0xDDAC,0xC775,0xC776,0xC777,0xC778,0xC779,0xC77A,0xC77B,
-0xDDB9,0xDDB3,0xDDAD,0xC4AA,0xC77C,0xC77D,0xC77E,0xC780,
-0xDDA8,0xC0B3,0xC1AB,0xDDAA,0xDDAB,0xC781,0xDDB2,0xBBF1,
-0xDDB5,0xD3A8,0xDDBA,0xC782,0xDDBB,0xC3A7,0xC783,0xC784,
-0xDDD2,0xDDBC,0xC785,0xC786,0xC787,0xDDD1,0xC788,0xB9BD,
-0xC789,0xC78A,0xBED5,0xC78B,0xBEFA,0xC78C,0xC78D,0xBACA,
-0xC78E,0xC78F,0xC790,0xC791,0xDDCA,0xC792,0xDDC5,0xC793,
-0xDDBF,0xC794,0xC795,0xC796,0xB2CB,0xDDC3,0xC797,0xDDCB,
-0xB2A4,0xDDD5,0xC798,0xC799,0xC79A,0xDDBE,0xC79B,0xC79C,
-0xC79D,0xC6D0,0xDDD0,0xC79E,0xC79F,0xC7A0,0xC840,0xC841,
-0xDDD4,0xC1E2,0xB7C6,0xC842,0xC843,0xC844,0xC845,0xC846,
-0xDDCE,0xDDCF,0xC847,0xC848,0xC849,0xDDC4,0xC84A,0xC84B,
-0xC84C,0xDDBD,0xC84D,0xDDCD,0xCCD1,0xC84E,0xDDC9,0xC84F,
-0xC850,0xC851,0xC852,0xDDC2,0xC3C8,0xC6BC,0xCEAE,0xDDCC,
-0xC853,0xDDC8,0xC854,0xC855,0xC856,0xC857,0xC858,0xC859,
-0xDDC1,0xC85A,0xC85B,0xC85C,0xDDC6,0xC2DC,0xC85D,0xC85E,
-0xC85F,0xC860,0xC861,0xC862,0xD3A9,0xD3AA,0xDDD3,0xCFF4,
-0xC8F8,0xC863,0xC864,0xC865,0xC866,0xC867,0xC868,0xC869,
-0xC86A,0xDDE6,0xC86B,0xC86C,0xC86D,0xC86E,0xC86F,0xC870,
-0xDDC7,0xC871,0xC872,0xC873,0xDDE0,0xC2E4,0xC874,0xC875,
-0xC876,0xC877,0xC878,0xC879,0xC87A,0xC87B,0xDDE1,0xC87C,
-0xC87D,0xC87E,0xC880,0xC881,0xC882,0xC883,0xC884,0xC885,
-0xC886,0xDDD7,0xC887,0xC888,0xC889,0xC88A,0xC88B,0xD6F8,
-0xC88C,0xDDD9,0xDDD8,0xB8F0,0xDDD6,0xC88D,0xC88E,0xC88F,
-0xC890,0xC6CF,0xC891,0xB6AD,0xC892,0xC893,0xC894,0xC895,
-0xC896,0xDDE2,0xC897,0xBAF9,0xD4E1,0xDDE7,0xC898,0xC899,
-0xC89A,0xB4D0,0xC89B,0xDDDA,0xC89C,0xBFFB,0xDDE3,0xC89D,
-0xDDDF,0xC89E,0xDDDD,0xC89F,0xC8A0,0xC940,0xC941,0xC942,
-0xC943,0xC944,0xB5D9,0xC945,0xC946,0xC947,0xC948,0xDDDB,
-0xDDDC,0xDDDE,0xC949,0xBDAF,0xDDE4,0xC94A,0xDDE5,0xC94B,
-0xC94C,0xC94D,0xC94E,0xC94F,0xC950,0xC951,0xC952,0xDDF5,
-0xC953,0xC3C9,0xC954,0xC955,0xCBE2,0xC956,0xC957,0xC958,
-0xC959,0xDDF2,0xC95A,0xC95B,0xC95C,0xC95D,0xC95E,0xC95F,
-0xC960,0xC961,0xC962,0xC963,0xC964,0xC965,0xC966,0xD8E1,
-0xC967,0xC968,0xC6D1,0xC969,0xDDF4,0xC96A,0xC96B,0xC96C,
-0xD5F4,0xDDF3,0xDDF0,0xC96D,0xC96E,0xDDEC,0xC96F,0xDDEF,
-0xC970,0xDDE8,0xC971,0xC972,0xD0EE,0xC973,0xC974,0xC975,
-0xC976,0xC8D8,0xDDEE,0xC977,0xC978,0xDDE9,0xC979,0xC97A,
-0xDDEA,0xCBF2,0xC97B,0xDDED,0xC97C,0xC97D,0xB1CD,0xC97E,
-0xC980,0xC981,0xC982,0xC983,0xC984,0xC0B6,0xC985,0xBCBB,
-0xDDF1,0xC986,0xC987,0xDDF7,0xC988,0xDDF6,0xDDEB,0xC989,
-0xC98A,0xC98B,0xC98C,0xC98D,0xC5EE,0xC98E,0xC98F,0xC990,
-0xDDFB,0xC991,0xC992,0xC993,0xC994,0xC995,0xC996,0xC997,
-0xC998,0xC999,0xC99A,0xC99B,0xDEA4,0xC99C,0xC99D,0xDEA3,
-0xC99E,0xC99F,0xC9A0,0xCA40,0xCA41,0xCA42,0xCA43,0xCA44,
-0xCA45,0xCA46,0xCA47,0xCA48,0xDDF8,0xCA49,0xCA4A,0xCA4B,
-0xCA4C,0xC3EF,0xCA4D,0xC2FB,0xCA4E,0xCA4F,0xCA50,0xD5E1,
-0xCA51,0xCA52,0xCEB5,0xCA53,0xCA54,0xCA55,0xCA56,0xDDFD,
-0xCA57,0xB2CC,0xCA58,0xCA59,0xCA5A,0xCA5B,0xCA5C,0xCA5D,
-0xCA5E,0xCA5F,0xCA60,0xC4E8,0xCADF,0xCA61,0xCA62,0xCA63,
-0xCA64,0xCA65,0xCA66,0xCA67,0xCA68,0xCA69,0xCA6A,0xC7BE,
-0xDDFA,0xDDFC,0xDDFE,0xDEA2,0xB0AA,0xB1CE,0xCA6B,0xCA6C,
-0xCA6D,0xCA6E,0xCA6F,0xDEAC,0xCA70,0xCA71,0xCA72,0xCA73,
-0xDEA6,0xBDB6,0xC8EF,0xCA74,0xCA75,0xCA76,0xCA77,0xCA78,
-0xCA79,0xCA7A,0xCA7B,0xCA7C,0xCA7D,0xCA7E,0xDEA1,0xCA80,
-0xCA81,0xDEA5,0xCA82,0xCA83,0xCA84,0xCA85,0xDEA9,0xCA86,
-0xCA87,0xCA88,0xCA89,0xCA8A,0xDEA8,0xCA8B,0xCA8C,0xCA8D,
-0xDEA7,0xCA8E,0xCA8F,0xCA90,0xCA91,0xCA92,0xCA93,0xCA94,
-0xCA95,0xCA96,0xDEAD,0xCA97,0xD4CC,0xCA98,0xCA99,0xCA9A,
-0xCA9B,0xDEB3,0xDEAA,0xDEAE,0xCA9C,0xCA9D,0xC0D9,0xCA9E,
-0xCA9F,0xCAA0,0xCB40,0xCB41,0xB1A1,0xDEB6,0xCB42,0xDEB1,
-0xCB43,0xCB44,0xCB45,0xCB46,0xCB47,0xCB48,0xCB49,0xDEB2,
-0xCB4A,0xCB4B,0xCB4C,0xCB4D,0xCB4E,0xCB4F,0xCB50,0xCB51,
-0xCB52,0xCB53,0xCB54,0xD1A6,0xDEB5,0xCB55,0xCB56,0xCB57,
-0xCB58,0xCB59,0xCB5A,0xCB5B,0xDEAF,0xCB5C,0xCB5D,0xCB5E,
-0xDEB0,0xCB5F,0xD0BD,0xCB60,0xCB61,0xCB62,0xDEB4,0xCAED,
-0xDEB9,0xCB63,0xCB64,0xCB65,0xCB66,0xCB67,0xCB68,0xDEB8,
-0xCB69,0xDEB7,0xCB6A,0xCB6B,0xCB6C,0xCB6D,0xCB6E,0xCB6F,
-0xCB70,0xDEBB,0xCB71,0xCB72,0xCB73,0xCB74,0xCB75,0xCB76,
-0xCB77,0xBDE5,0xCB78,0xCB79,0xCB7A,0xCB7B,0xCB7C,0xB2D8,
-0xC3EA,0xCB7D,0xCB7E,0xDEBA,0xCB80,0xC5BA,0xCB81,0xCB82,
-0xCB83,0xCB84,0xCB85,0xCB86,0xDEBC,0xCB87,0xCB88,0xCB89,
-0xCB8A,0xCB8B,0xCB8C,0xCB8D,0xCCD9,0xCB8E,0xCB8F,0xCB90,
-0xCB91,0xB7AA,0xCB92,0xCB93,0xCB94,0xCB95,0xCB96,0xCB97,
-0xCB98,0xCB99,0xCB9A,0xCB9B,0xCB9C,0xCB9D,0xCB9E,0xCB9F,
-0xCBA0,0xCC40,0xCC41,0xD4E5,0xCC42,0xCC43,0xCC44,0xDEBD,
-0xCC45,0xCC46,0xCC47,0xCC48,0xCC49,0xDEBF,0xCC4A,0xCC4B,
-0xCC4C,0xCC4D,0xCC4E,0xCC4F,0xCC50,0xCC51,0xCC52,0xCC53,
-0xCC54,0xC4A2,0xCC55,0xCC56,0xCC57,0xCC58,0xDEC1,0xCC59,
-0xCC5A,0xCC5B,0xCC5C,0xCC5D,0xCC5E,0xCC5F,0xCC60,0xCC61,
-0xCC62,0xCC63,0xCC64,0xCC65,0xCC66,0xCC67,0xCC68,0xDEBE,
-0xCC69,0xDEC0,0xCC6A,0xCC6B,0xCC6C,0xCC6D,0xCC6E,0xCC6F,
-0xCC70,0xCC71,0xCC72,0xCC73,0xCC74,0xCC75,0xCC76,0xCC77,
-0xD5BA,0xCC78,0xCC79,0xCC7A,0xDEC2,0xCC7B,0xCC7C,0xCC7D,
-0xCC7E,0xCC80,0xCC81,0xCC82,0xCC83,0xCC84,0xCC85,0xCC86,
-0xCC87,0xCC88,0xCC89,0xCC8A,0xCC8B,0xF2AE,0xBBA2,0xC2B2,
-0xC5B0,0xC2C7,0xCC8C,0xCC8D,0xF2AF,0xCC8E,0xCC8F,0xCC90,
-0xCC91,0xCC92,0xD0E9,0xCC93,0xCC94,0xCC95,0xD3DD,0xCC96,
-0xCC97,0xCC98,0xEBBD,0xCC99,0xCC9A,0xCC9B,0xCC9C,0xCC9D,
-0xCC9E,0xCC9F,0xCCA0,0xB3E6,0xF2B0,0xCD40,0xF2B1,0xCD41,
-0xCD42,0xCAAD,0xCD43,0xCD44,0xCD45,0xCD46,0xCD47,0xCD48,
-0xCD49,0xBAE7,0xF2B3,0xF2B5,0xF2B4,0xCBE4,0xCFBA,0xF2B2,
-0xCAB4,0xD2CF,0xC2EC,0xCD4A,0xCD4B,0xCD4C,0xCD4D,0xCD4E,
-0xCD4F,0xCD50,0xCEC3,0xF2B8,0xB0F6,0xF2B7,0xCD51,0xCD52,
-0xCD53,0xCD54,0xCD55,0xF2BE,0xCD56,0xB2CF,0xCD57,0xCD58,
-0xCD59,0xCD5A,0xCD5B,0xCD5C,0xD1C1,0xF2BA,0xCD5D,0xCD5E,
-0xCD5F,0xCD60,0xCD61,0xF2BC,0xD4E9,0xCD62,0xCD63,0xF2BB,
-0xF2B6,0xF2BF,0xF2BD,0xCD64,0xF2B9,0xCD65,0xCD66,0xF2C7,
-0xF2C4,0xF2C6,0xCD67,0xCD68,0xF2CA,0xF2C2,0xF2C0,0xCD69,
-0xCD6A,0xCD6B,0xF2C5,0xCD6C,0xCD6D,0xCD6E,0xCD6F,0xCD70,
-0xD6FB,0xCD71,0xCD72,0xCD73,0xF2C1,0xCD74,0xC7F9,0xC9DF,
-0xCD75,0xF2C8,0xB9C6,0xB5B0,0xCD76,0xCD77,0xF2C3,0xF2C9,
-0xF2D0,0xF2D6,0xCD78,0xCD79,0xBBD7,0xCD7A,0xCD7B,0xCD7C,
-0xF2D5,0xCDDC,0xCD7D,0xD6EB,0xCD7E,0xCD80,0xF2D2,0xF2D4,
-0xCD81,0xCD82,0xCD83,0xCD84,0xB8F2,0xCD85,0xCD86,0xCD87,
-0xCD88,0xF2CB,0xCD89,0xCD8A,0xCD8B,0xF2CE,0xC2F9,0xCD8C,
-0xD5DD,0xF2CC,0xF2CD,0xF2CF,0xF2D3,0xCD8D,0xCD8E,0xCD8F,
-0xF2D9,0xD3BC,0xCD90,0xCD91,0xCD92,0xCD93,0xB6EA,0xCD94,
-0xCAF1,0xCD95,0xB7E4,0xF2D7,0xCD96,0xCD97,0xCD98,0xF2D8,
-0xF2DA,0xF2DD,0xF2DB,0xCD99,0xCD9A,0xF2DC,0xCD9B,0xCD9C,
-0xCD9D,0xCD9E,0xD1D1,0xF2D1,0xCD9F,0xCDC9,0xCDA0,0xCECF,
-0xD6A9,0xCE40,0xF2E3,0xCE41,0xC3DB,0xCE42,0xF2E0,0xCE43,
-0xCE44,0xC0AF,0xF2EC,0xF2DE,0xCE45,0xF2E1,0xCE46,0xCE47,
-0xCE48,0xF2E8,0xCE49,0xCE4A,0xCE4B,0xCE4C,0xF2E2,0xCE4D,
-0xCE4E,0xF2E7,0xCE4F,0xCE50,0xF2E6,0xCE51,0xCE52,0xF2E9,
-0xCE53,0xCE54,0xCE55,0xF2DF,0xCE56,0xCE57,0xF2E4,0xF2EA,
-0xCE58,0xCE59,0xCE5A,0xCE5B,0xCE5C,0xCE5D,0xCE5E,0xD3AC,
-0xF2E5,0xB2F5,0xCE5F,0xCE60,0xF2F2,0xCE61,0xD0AB,0xCE62,
-0xCE63,0xCE64,0xCE65,0xF2F5,0xCE66,0xCE67,0xCE68,0xBBC8,
-0xCE69,0xF2F9,0xCE6A,0xCE6B,0xCE6C,0xCE6D,0xCE6E,0xCE6F,
-0xF2F0,0xCE70,0xCE71,0xF2F6,0xF2F8,0xF2FA,0xCE72,0xCE73,
-0xCE74,0xCE75,0xCE76,0xCE77,0xCE78,0xCE79,0xF2F3,0xCE7A,
-0xF2F1,0xCE7B,0xCE7C,0xCE7D,0xBAFB,0xCE7E,0xB5FB,0xCE80,
-0xCE81,0xCE82,0xCE83,0xF2EF,0xF2F7,0xF2ED,0xF2EE,0xCE84,
-0xCE85,0xCE86,0xF2EB,0xF3A6,0xCE87,0xF3A3,0xCE88,0xCE89,
-0xF3A2,0xCE8A,0xCE8B,0xF2F4,0xCE8C,0xC8DA,0xCE8D,0xCE8E,
-0xCE8F,0xCE90,0xCE91,0xF2FB,0xCE92,0xCE93,0xCE94,0xF3A5,
-0xCE95,0xCE96,0xCE97,0xCE98,0xCE99,0xCE9A,0xCE9B,0xC3F8,
-0xCE9C,0xCE9D,0xCE9E,0xCE9F,0xCEA0,0xCF40,0xCF41,0xCF42,
-0xF2FD,0xCF43,0xCF44,0xF3A7,0xF3A9,0xF3A4,0xCF45,0xF2FC,
-0xCF46,0xCF47,0xCF48,0xF3AB,0xCF49,0xF3AA,0xCF4A,0xCF4B,
-0xCF4C,0xCF4D,0xC2DD,0xCF4E,0xCF4F,0xF3AE,0xCF50,0xCF51,
-0xF3B0,0xCF52,0xCF53,0xCF54,0xCF55,0xCF56,0xF3A1,0xCF57,
-0xCF58,0xCF59,0xF3B1,0xF3AC,0xCF5A,0xCF5B,0xCF5C,0xCF5D,
-0xCF5E,0xF3AF,0xF2FE,0xF3AD,0xCF5F,0xCF60,0xCF61,0xCF62,
-0xCF63,0xCF64,0xCF65,0xF3B2,0xCF66,0xCF67,0xCF68,0xCF69,
-0xF3B4,0xCF6A,0xCF6B,0xCF6C,0xCF6D,0xF3A8,0xCF6E,0xCF6F,
-0xCF70,0xCF71,0xF3B3,0xCF72,0xCF73,0xCF74,0xF3B5,0xCF75,
-0xCF76,0xCF77,0xCF78,0xCF79,0xCF7A,0xCF7B,0xCF7C,0xCF7D,
-0xCF7E,0xD0B7,0xCF80,0xCF81,0xCF82,0xCF83,0xF3B8,0xCF84,
-0xCF85,0xCF86,0xCF87,0xD9F9,0xCF88,0xCF89,0xCF8A,0xCF8B,
-0xCF8C,0xCF8D,0xF3B9,0xCF8E,0xCF8F,0xCF90,0xCF91,0xCF92,
-0xCF93,0xCF94,0xCF95,0xF3B7,0xCF96,0xC8E4,0xF3B6,0xCF97,
-0xCF98,0xCF99,0xCF9A,0xF3BA,0xCF9B,0xCF9C,0xCF9D,0xCF9E,
-0xCF9F,0xF3BB,0xB4C0,0xCFA0,0xD040,0xD041,0xD042,0xD043,
-0xD044,0xD045,0xD046,0xD047,0xD048,0xD049,0xD04A,0xD04B,
-0xD04C,0xD04D,0xEEC3,0xD04E,0xD04F,0xD050,0xD051,0xD052,
-0xD053,0xF3BC,0xD054,0xD055,0xF3BD,0xD056,0xD057,0xD058,
-0xD1AA,0xD059,0xD05A,0xD05B,0xF4AC,0xD0C6,0xD05C,0xD05D,
-0xD05E,0xD05F,0xD060,0xD061,0xD0D0,0xD1DC,0xD062,0xD063,
-0xD064,0xD065,0xD066,0xD067,0xCFCE,0xD068,0xD069,0xBDD6,
-0xD06A,0xD1C3,0xD06B,0xD06C,0xD06D,0xD06E,0xD06F,0xD070,
-0xD071,0xBAE2,0xE1E9,0xD2C2,0xF1C2,0xB2B9,0xD072,0xD073,
-0xB1ED,0xF1C3,0xD074,0xC9C0,0xB3C4,0xD075,0xD9F2,0xD076,
-0xCBA5,0xD077,0xF1C4,0xD078,0xD079,0xD07A,0xD07B,0xD6D4,
-0xD07C,0xD07D,0xD07E,0xD080,0xD081,0xF1C5,0xF4C0,0xF1C6,
-0xD082,0xD4AC,0xF1C7,0xD083,0xB0C0,0xF4C1,0xD084,0xD085,
-0xF4C2,0xD086,0xD087,0xB4FC,0xD088,0xC5DB,0xD089,0xD08A,
-0xD08B,0xD08C,0xCCBB,0xD08D,0xD08E,0xD08F,0xD0E4,0xD090,
-0xD091,0xD092,0xD093,0xD094,0xCDE0,0xD095,0xD096,0xD097,
-0xD098,0xD099,0xF1C8,0xD09A,0xD9F3,0xD09B,0xD09C,0xD09D,
-0xD09E,0xD09F,0xD0A0,0xB1BB,0xD140,0xCFAE,0xD141,0xD142,
-0xD143,0xB8A4,0xD144,0xD145,0xD146,0xD147,0xD148,0xF1CA,
-0xD149,0xD14A,0xD14B,0xD14C,0xF1CB,0xD14D,0xD14E,0xD14F,
-0xD150,0xB2C3,0xC1D1,0xD151,0xD152,0xD7B0,0xF1C9,0xD153,
-0xD154,0xF1CC,0xD155,0xD156,0xD157,0xD158,0xF1CE,0xD159,
-0xD15A,0xD15B,0xD9F6,0xD15C,0xD2E1,0xD4A3,0xD15D,0xD15E,
-0xF4C3,0xC8B9,0xD15F,0xD160,0xD161,0xD162,0xD163,0xF4C4,
-0xD164,0xD165,0xF1CD,0xF1CF,0xBFE3,0xF1D0,0xD166,0xD167,
-0xF1D4,0xD168,0xD169,0xD16A,0xD16B,0xD16C,0xD16D,0xD16E,
-0xF1D6,0xF1D1,0xD16F,0xC9D1,0xC5E1,0xD170,0xD171,0xD172,
-0xC2E3,0xB9FC,0xD173,0xD174,0xF1D3,0xD175,0xF1D5,0xD176,
-0xD177,0xD178,0xB9D3,0xD179,0xD17A,0xD17B,0xD17C,0xD17D,
-0xD17E,0xD180,0xF1DB,0xD181,0xD182,0xD183,0xD184,0xD185,
-0xBAD6,0xD186,0xB0FD,0xF1D9,0xD187,0xD188,0xD189,0xD18A,
-0xD18B,0xF1D8,0xF1D2,0xF1DA,0xD18C,0xD18D,0xD18E,0xD18F,
-0xD190,0xF1D7,0xD191,0xD192,0xD193,0xC8EC,0xD194,0xD195,
-0xD196,0xD197,0xCDCA,0xF1DD,0xD198,0xD199,0xD19A,0xD19B,
-0xE5BD,0xD19C,0xD19D,0xD19E,0xF1DC,0xD19F,0xF1DE,0xD1A0,
-0xD240,0xD241,0xD242,0xD243,0xD244,0xD245,0xD246,0xD247,
-0xD248,0xF1DF,0xD249,0xD24A,0xCFE5,0xD24B,0xD24C,0xD24D,
-0xD24E,0xD24F,0xD250,0xD251,0xD252,0xD253,0xD254,0xD255,
-0xD256,0xD257,0xD258,0xD259,0xD25A,0xD25B,0xD25C,0xD25D,
-0xD25E,0xD25F,0xD260,0xD261,0xD262,0xD263,0xF4C5,0xBDF3,
-0xD264,0xD265,0xD266,0xD267,0xD268,0xD269,0xF1E0,0xD26A,
-0xD26B,0xD26C,0xD26D,0xD26E,0xD26F,0xD270,0xD271,0xD272,
-0xD273,0xD274,0xD275,0xD276,0xD277,0xD278,0xD279,0xD27A,
-0xD27B,0xD27C,0xD27D,0xF1E1,0xD27E,0xD280,0xD281,0xCEF7,
-0xD282,0xD2AA,0xD283,0xF1FB,0xD284,0xD285,0xB8B2,0xD286,
-0xD287,0xD288,0xD289,0xD28A,0xD28B,0xD28C,0xD28D,0xD28E,
-0xD28F,0xD290,0xD291,0xD292,0xD293,0xD294,0xD295,0xD296,
-0xD297,0xD298,0xD299,0xD29A,0xD29B,0xD29C,0xD29D,0xD29E,
-0xD29F,0xD2A0,0xD340,0xD341,0xD342,0xD343,0xD344,0xD345,
-0xD346,0xD347,0xD348,0xD349,0xD34A,0xD34B,0xD34C,0xD34D,
-0xD34E,0xD34F,0xD350,0xD351,0xD352,0xD353,0xD354,0xD355,
-0xD356,0xD357,0xD358,0xD359,0xD35A,0xD35B,0xD35C,0xD35D,
-0xD35E,0xBCFB,0xB9DB,0xD35F,0xB9E6,0xC3D9,0xCAD3,0xEAE8,
-0xC0C0,0xBEF5,0xEAE9,0xEAEA,0xEAEB,0xD360,0xEAEC,0xEAED,
-0xEAEE,0xEAEF,0xBDC7,0xD361,0xD362,0xD363,0xF5FB,0xD364,
-0xD365,0xD366,0xF5FD,0xD367,0xF5FE,0xD368,0xF5FC,0xD369,
-0xD36A,0xD36B,0xD36C,0xBDE2,0xD36D,0xF6A1,0xB4A5,0xD36E,
-0xD36F,0xD370,0xD371,0xF6A2,0xD372,0xD373,0xD374,0xF6A3,
-0xD375,0xD376,0xD377,0xECB2,0xD378,0xD379,0xD37A,0xD37B,
-0xD37C,0xD37D,0xD37E,0xD380,0xD381,0xD382,0xD383,0xD384,
-0xD1D4,0xD385,0xD386,0xD387,0xD388,0xD389,0xD38A,0xD9EA,
-0xD38B,0xD38C,0xD38D,0xD38E,0xD38F,0xD390,0xD391,0xD392,
-0xD393,0xD394,0xD395,0xD396,0xD397,0xD398,0xD399,0xD39A,
-0xD39B,0xD39C,0xD39D,0xD39E,0xD39F,0xD3A0,0xD440,0xD441,
-0xD442,0xD443,0xD444,0xD445,0xD446,0xD447,0xD448,0xD449,
-0xD44A,0xD44B,0xD44C,0xD44D,0xD44E,0xD44F,0xD450,0xD451,
-0xD452,0xD453,0xD454,0xD455,0xD456,0xD457,0xD458,0xD459,
-0xD45A,0xD45B,0xD45C,0xD45D,0xD45E,0xD45F,0xF6A4,0xD460,
-0xD461,0xD462,0xD463,0xD464,0xD465,0xD466,0xD467,0xD468,
-0xEEBA,0xD469,0xD46A,0xD46B,0xD46C,0xD46D,0xD46E,0xD46F,
-0xD470,0xD471,0xD472,0xD473,0xD474,0xD475,0xD476,0xD477,
-0xD478,0xD479,0xD47A,0xD47B,0xD47C,0xD47D,0xD47E,0xD480,
-0xD481,0xD482,0xD483,0xD484,0xD485,0xD486,0xD487,0xD488,
-0xD489,0xD48A,0xD48B,0xD48C,0xD48D,0xD48E,0xD48F,0xD490,
-0xD491,0xD492,0xD493,0xD494,0xD495,0xD496,0xD497,0xD498,
-0xD499,0xD5B2,0xD49A,0xD49B,0xD49C,0xD49D,0xD49E,0xD49F,
-0xD4A0,0xD540,0xD541,0xD542,0xD543,0xD544,0xD545,0xD546,
-0xD547,0xD3FE,0xCCDC,0xD548,0xD549,0xD54A,0xD54B,0xD54C,
-0xD54D,0xD54E,0xD54F,0xCAC4,0xD550,0xD551,0xD552,0xD553,
-0xD554,0xD555,0xD556,0xD557,0xD558,0xD559,0xD55A,0xD55B,
-0xD55C,0xD55D,0xD55E,0xD55F,0xD560,0xD561,0xD562,0xD563,
-0xD564,0xD565,0xD566,0xD567,0xD568,0xD569,0xD56A,0xD56B,
-0xD56C,0xD56D,0xD56E,0xD56F,0xD570,0xD571,0xD572,0xD573,
-0xD574,0xD575,0xD576,0xD577,0xD578,0xD579,0xD57A,0xD57B,
-0xD57C,0xD57D,0xD57E,0xD580,0xD581,0xD582,0xD583,0xD584,
-0xD585,0xD586,0xD587,0xD588,0xD589,0xD58A,0xD58B,0xD58C,
-0xD58D,0xD58E,0xD58F,0xD590,0xD591,0xD592,0xD593,0xD594,
-0xD595,0xD596,0xD597,0xD598,0xD599,0xD59A,0xD59B,0xD59C,
-0xD59D,0xD59E,0xD59F,0xD5A0,0xD640,0xD641,0xD642,0xD643,
-0xD644,0xD645,0xD646,0xD647,0xD648,0xD649,0xD64A,0xD64B,
-0xD64C,0xD64D,0xD64E,0xD64F,0xD650,0xD651,0xD652,0xD653,
-0xD654,0xD655,0xD656,0xD657,0xD658,0xD659,0xD65A,0xD65B,
-0xD65C,0xD65D,0xD65E,0xD65F,0xD660,0xD661,0xD662,0xE5C0,
-0xD663,0xD664,0xD665,0xD666,0xD667,0xD668,0xD669,0xD66A,
-0xD66B,0xD66C,0xD66D,0xD66E,0xD66F,0xD670,0xD671,0xD672,
-0xD673,0xD674,0xD675,0xD676,0xD677,0xD678,0xD679,0xD67A,
-0xD67B,0xD67C,0xD67D,0xD67E,0xD680,0xD681,0xF6A5,0xD682,
-0xD683,0xD684,0xD685,0xD686,0xD687,0xD688,0xD689,0xD68A,
-0xD68B,0xD68C,0xD68D,0xD68E,0xD68F,0xD690,0xD691,0xD692,
-0xD693,0xD694,0xD695,0xD696,0xD697,0xD698,0xD699,0xD69A,
-0xD69B,0xD69C,0xD69D,0xD69E,0xD69F,0xD6A0,0xD740,0xD741,
-0xD742,0xD743,0xD744,0xD745,0xD746,0xD747,0xD748,0xD749,
-0xD74A,0xD74B,0xD74C,0xD74D,0xD74E,0xD74F,0xD750,0xD751,
-0xD752,0xD753,0xD754,0xD755,0xD756,0xD757,0xD758,0xD759,
-0xD75A,0xD75B,0xD75C,0xD75D,0xD75E,0xD75F,0xBEAF,0xD760,
-0xD761,0xD762,0xD763,0xD764,0xC6A9,0xD765,0xD766,0xD767,
-0xD768,0xD769,0xD76A,0xD76B,0xD76C,0xD76D,0xD76E,0xD76F,
-0xD770,0xD771,0xD772,0xD773,0xD774,0xD775,0xD776,0xD777,
-0xD778,0xD779,0xD77A,0xD77B,0xD77C,0xD77D,0xD77E,0xD780,
-0xD781,0xD782,0xD783,0xD784,0xD785,0xD786,0xD787,0xD788,
-0xD789,0xD78A,0xD78B,0xD78C,0xD78D,0xD78E,0xD78F,0xD790,
-0xD791,0xD792,0xD793,0xD794,0xD795,0xD796,0xD797,0xD798,
-0xDAA5,0xBCC6,0xB6A9,0xB8BC,0xC8CF,0xBCA5,0xDAA6,0xDAA7,
-0xCCD6,0xC8C3,0xDAA8,0xC6FD,0xD799,0xD1B5,0xD2E9,0xD1B6,
-0xBCC7,0xD79A,0xBDB2,0xBBE4,0xDAA9,0xDAAA,0xD1C8,0xDAAB,
-0xD0ED,0xB6EF,0xC2DB,0xD79B,0xCBCF,0xB7ED,0xC9E8,0xB7C3,
-0xBEF7,0xD6A4,0xDAAC,0xDAAD,0xC6C0,0xD7E7,0xCAB6,0xD79C,
-0xD5A9,0xCBDF,0xD5EF,0xDAAE,0xD6DF,0xB4CA,0xDAB0,0xDAAF,
-0xD79D,0xD2EB,0xDAB1,0xDAB2,0xDAB3,0xCAD4,0xDAB4,0xCAAB,
-0xDAB5,0xDAB6,0xB3CF,0xD6EF,0xDAB7,0xBBB0,0xB5AE,0xDAB8,
-0xDAB9,0xB9EE,0xD1AF,0xD2E8,0xDABA,0xB8C3,0xCFEA,0xB2EF,
-0xDABB,0xDABC,0xD79E,0xBDEB,0xCEDC,0xD3EF,0xDABD,0xCEF3,
-0xDABE,0xD3D5,0xBBE5,0xDABF,0xCBB5,0xCBD0,0xDAC0,0xC7EB,
-0xD6EE,0xDAC1,0xC5B5,0xB6C1,0xDAC2,0xB7CC,0xBFCE,0xDAC3,
-0xDAC4,0xCBAD,0xDAC5,0xB5F7,0xDAC6,0xC1C2,0xD7BB,0xDAC7,
-0xCCB8,0xD79F,0xD2EA,0xC4B1,0xDAC8,0xB5FD,0xBBD1,0xDAC9,
-0xD0B3,0xDACA,0xDACB,0xCEBD,0xDACC,0xDACD,0xDACE,0xB2F7,
-0xDAD1,0xDACF,0xD1E8,0xDAD0,0xC3D5,0xDAD2,0xD7A0,0xDAD3,
-0xDAD4,0xDAD5,0xD0BB,0xD2A5,0xB0F9,0xDAD6,0xC7AB,0xDAD7,
-0xBDF7,0xC3A1,0xDAD8,0xDAD9,0xC3FD,0xCCB7,0xDADA,0xDADB,
-0xC0BE,0xC6D7,0xDADC,0xDADD,0xC7B4,0xDADE,0xDADF,0xB9C8,
-0xD840,0xD841,0xD842,0xD843,0xD844,0xD845,0xD846,0xD847,
-0xD848,0xBBED,0xD849,0xD84A,0xD84B,0xD84C,0xB6B9,0xF4F8,
-0xD84D,0xF4F9,0xD84E,0xD84F,0xCDE3,0xD850,0xD851,0xD852,
-0xD853,0xD854,0xD855,0xD856,0xD857,0xF5B9,0xD858,0xD859,
-0xD85A,0xD85B,0xEBE0,0xD85C,0xD85D,0xD85E,0xD85F,0xD860,
-0xD861,0xCFF3,0xBBBF,0xD862,0xD863,0xD864,0xD865,0xD866,
-0xD867,0xD868,0xBAC0,0xD4A5,0xD869,0xD86A,0xD86B,0xD86C,
-0xD86D,0xD86E,0xD86F,0xE1D9,0xD870,0xD871,0xD872,0xD873,
-0xF5F4,0xB1AA,0xB2F2,0xD874,0xD875,0xD876,0xD877,0xD878,
-0xD879,0xD87A,0xF5F5,0xD87B,0xD87C,0xF5F7,0xD87D,0xD87E,
-0xD880,0xBAD1,0xF5F6,0xD881,0xC3B2,0xD882,0xD883,0xD884,
-0xD885,0xD886,0xD887,0xD888,0xF5F9,0xD889,0xD88A,0xD88B,
-0xF5F8,0xD88C,0xD88D,0xD88E,0xD88F,0xD890,0xD891,0xD892,
-0xD893,0xD894,0xD895,0xD896,0xD897,0xD898,0xD899,0xD89A,
-0xD89B,0xD89C,0xD89D,0xD89E,0xD89F,0xD8A0,0xD940,0xD941,
-0xD942,0xD943,0xD944,0xD945,0xD946,0xD947,0xD948,0xD949,
-0xD94A,0xD94B,0xD94C,0xD94D,0xD94E,0xD94F,0xD950,0xD951,
-0xD952,0xD953,0xD954,0xD955,0xD956,0xD957,0xD958,0xD959,
-0xD95A,0xD95B,0xD95C,0xD95D,0xD95E,0xD95F,0xD960,0xD961,
-0xD962,0xD963,0xD964,0xD965,0xD966,0xD967,0xD968,0xD969,
-0xD96A,0xD96B,0xD96C,0xD96D,0xD96E,0xD96F,0xD970,0xD971,
-0xD972,0xD973,0xD974,0xD975,0xD976,0xD977,0xD978,0xD979,
-0xD97A,0xD97B,0xD97C,0xD97D,0xD97E,0xD980,0xD981,0xD982,
-0xD983,0xD984,0xD985,0xD986,0xD987,0xD988,0xD989,0xD98A,
-0xD98B,0xD98C,0xD98D,0xD98E,0xD98F,0xD990,0xD991,0xD992,
-0xD993,0xD994,0xD995,0xD996,0xD997,0xD998,0xD999,0xD99A,
-0xD99B,0xD99C,0xD99D,0xD99E,0xD99F,0xD9A0,0xDA40,0xDA41,
-0xDA42,0xDA43,0xDA44,0xDA45,0xDA46,0xDA47,0xDA48,0xDA49,
-0xDA4A,0xDA4B,0xDA4C,0xDA4D,0xDA4E,0xB1B4,0xD5EA,0xB8BA,
-0xDA4F,0xB9B1,0xB2C6,0xD4F0,0xCFCD,0xB0DC,0xD5CB,0xBBF5,
-0xD6CA,0xB7B7,0xCCB0,0xC6B6,0xB1E1,0xB9BA,0xD6FC,0xB9E1,
-0xB7A1,0xBCFA,0xEADA,0xEADB,0xCCF9,0xB9F3,0xEADC,0xB4FB,
-0xC3B3,0xB7D1,0xBAD8,0xEADD,0xD4F4,0xEADE,0xBCD6,0xBBDF,
-0xEADF,0xC1DE,0xC2B8,0xD4DF,0xD7CA,0xEAE0,0xEAE1,0xEAE4,
-0xEAE2,0xEAE3,0xC9DE,0xB8B3,0xB6C4,0xEAE5,0xCAEA,0xC9CD,
-0xB4CD,0xDA50,0xDA51,0xE2D9,0xC5E2,0xEAE6,0xC0B5,0xDA52,
-0xD7B8,0xEAE7,0xD7AC,0xC8FC,0xD8D3,0xD8CD,0xD4DE,0xDA53,
-0xD4F9,0xC9C4,0xD3AE,0xB8D3,0xB3E0,0xDA54,0xC9E2,0xF4F6,
-0xDA55,0xDA56,0xDA57,0xBAD5,0xDA58,0xF4F7,0xDA59,0xDA5A,
-0xD7DF,0xDA5B,0xDA5C,0xF4F1,0xB8B0,0xD5D4,0xB8CF,0xC6F0,
-0xDA5D,0xDA5E,0xDA5F,0xDA60,0xDA61,0xDA62,0xDA63,0xDA64,
-0xDA65,0xB3C3,0xDA66,0xDA67,0xF4F2,0xB3AC,0xDA68,0xDA69,
-0xDA6A,0xDA6B,0xD4BD,0xC7F7,0xDA6C,0xDA6D,0xDA6E,0xDA6F,
-0xDA70,0xF4F4,0xDA71,0xDA72,0xF4F3,0xDA73,0xDA74,0xDA75,
-0xDA76,0xDA77,0xDA78,0xDA79,0xDA7A,0xDA7B,0xDA7C,0xCCCB,
-0xDA7D,0xDA7E,0xDA80,0xC8A4,0xDA81,0xDA82,0xDA83,0xDA84,
-0xDA85,0xDA86,0xDA87,0xDA88,0xDA89,0xDA8A,0xDA8B,0xDA8C,
-0xDA8D,0xF4F5,0xDA8E,0xD7E3,0xC5BF,0xF5C0,0xDA8F,0xDA90,
-0xF5BB,0xDA91,0xF5C3,0xDA92,0xF5C2,0xDA93,0xD6BA,0xF5C1,
-0xDA94,0xDA95,0xDA96,0xD4BE,0xF5C4,0xDA97,0xF5CC,0xDA98,
-0xDA99,0xDA9A,0xDA9B,0xB0CF,0xB5F8,0xDA9C,0xF5C9,0xF5CA,
-0xDA9D,0xC5DC,0xDA9E,0xDA9F,0xDAA0,0xDB40,0xF5C5,0xF5C6,
-0xDB41,0xDB42,0xF5C7,0xF5CB,0xDB43,0xBEE0,0xF5C8,0xB8FA,
-0xDB44,0xDB45,0xDB46,0xF5D0,0xF5D3,0xDB47,0xDB48,0xDB49,
-0xBFE7,0xDB4A,0xB9F2,0xF5BC,0xF5CD,0xDB4B,0xDB4C,0xC2B7,
-0xDB4D,0xDB4E,0xDB4F,0xCCF8,0xDB50,0xBCF9,0xDB51,0xF5CE,
-0xF5CF,0xF5D1,0xB6E5,0xF5D2,0xDB52,0xF5D5,0xDB53,0xDB54,
-0xDB55,0xDB56,0xDB57,0xDB58,0xDB59,0xF5BD,0xDB5A,0xDB5B,
-0xDB5C,0xF5D4,0xD3BB,0xDB5D,0xB3EC,0xDB5E,0xDB5F,0xCCA4,
-0xDB60,0xDB61,0xDB62,0xDB63,0xF5D6,0xDB64,0xDB65,0xDB66,
-0xDB67,0xDB68,0xDB69,0xDB6A,0xDB6B,0xF5D7,0xBEE1,0xF5D8,
-0xDB6C,0xDB6D,0xCCDF,0xF5DB,0xDB6E,0xDB6F,0xDB70,0xDB71,
-0xDB72,0xB2C8,0xD7D9,0xDB73,0xF5D9,0xDB74,0xF5DA,0xF5DC,
-0xDB75,0xF5E2,0xDB76,0xDB77,0xDB78,0xF5E0,0xDB79,0xDB7A,
-0xDB7B,0xF5DF,0xF5DD,0xDB7C,0xDB7D,0xF5E1,0xDB7E,0xDB80,
-0xF5DE,0xF5E4,0xF5E5,0xDB81,0xCCE3,0xDB82,0xDB83,0xE5BF,
-0xB5B8,0xF5E3,0xF5E8,0xCCA3,0xDB84,0xDB85,0xDB86,0xDB87,
-0xDB88,0xF5E6,0xF5E7,0xDB89,0xDB8A,0xDB8B,0xDB8C,0xDB8D,
-0xDB8E,0xF5BE,0xDB8F,0xDB90,0xDB91,0xDB92,0xDB93,0xDB94,
-0xDB95,0xDB96,0xDB97,0xDB98,0xDB99,0xDB9A,0xB1C4,0xDB9B,
-0xDB9C,0xF5BF,0xDB9D,0xDB9E,0xB5C5,0xB2E4,0xDB9F,0xF5EC,
-0xF5E9,0xDBA0,0xB6D7,0xDC40,0xF5ED,0xDC41,0xF5EA,0xDC42,
-0xDC43,0xDC44,0xDC45,0xDC46,0xF5EB,0xDC47,0xDC48,0xB4DA,
-0xDC49,0xD4EA,0xDC4A,0xDC4B,0xDC4C,0xF5EE,0xDC4D,0xB3F9,
-0xDC4E,0xDC4F,0xDC50,0xDC51,0xDC52,0xDC53,0xDC54,0xF5EF,
-0xF5F1,0xDC55,0xDC56,0xDC57,0xF5F0,0xDC58,0xDC59,0xDC5A,
-0xDC5B,0xDC5C,0xDC5D,0xDC5E,0xF5F2,0xDC5F,0xF5F3,0xDC60,
-0xDC61,0xDC62,0xDC63,0xDC64,0xDC65,0xDC66,0xDC67,0xDC68,
-0xDC69,0xDC6A,0xDC6B,0xC9ED,0xB9AA,0xDC6C,0xDC6D,0xC7FB,
-0xDC6E,0xDC6F,0xB6E3,0xDC70,0xDC71,0xDC72,0xDC73,0xDC74,
-0xDC75,0xDC76,0xCCC9,0xDC77,0xDC78,0xDC79,0xDC7A,0xDC7B,
-0xDC7C,0xDC7D,0xDC7E,0xDC80,0xDC81,0xDC82,0xDC83,0xDC84,
-0xDC85,0xDC86,0xDC87,0xDC88,0xDC89,0xDC8A,0xEAA6,0xDC8B,
-0xDC8C,0xDC8D,0xDC8E,0xDC8F,0xDC90,0xDC91,0xDC92,0xDC93,
-0xDC94,0xDC95,0xDC96,0xDC97,0xDC98,0xDC99,0xDC9A,0xDC9B,
-0xDC9C,0xDC9D,0xDC9E,0xDC9F,0xDCA0,0xDD40,0xDD41,0xDD42,
-0xDD43,0xDD44,0xDD45,0xDD46,0xDD47,0xDD48,0xDD49,0xDD4A,
-0xDD4B,0xDD4C,0xDD4D,0xDD4E,0xDD4F,0xDD50,0xDD51,0xDD52,
-0xDD53,0xDD54,0xDD55,0xDD56,0xDD57,0xDD58,0xDD59,0xDD5A,
-0xDD5B,0xDD5C,0xDD5D,0xDD5E,0xDD5F,0xDD60,0xDD61,0xDD62,
-0xDD63,0xDD64,0xDD65,0xDD66,0xDD67,0xDD68,0xDD69,0xDD6A,
-0xDD6B,0xDD6C,0xDD6D,0xDD6E,0xDD6F,0xDD70,0xDD71,0xDD72,
-0xDD73,0xDD74,0xDD75,0xDD76,0xDD77,0xDD78,0xDD79,0xDD7A,
-0xDD7B,0xDD7C,0xDD7D,0xDD7E,0xDD80,0xDD81,0xDD82,0xDD83,
-0xDD84,0xDD85,0xDD86,0xDD87,0xDD88,0xDD89,0xDD8A,0xDD8B,
-0xDD8C,0xDD8D,0xDD8E,0xDD8F,0xDD90,0xDD91,0xDD92,0xDD93,
-0xDD94,0xDD95,0xDD96,0xDD97,0xDD98,0xDD99,0xDD9A,0xDD9B,
-0xDD9C,0xDD9D,0xDD9E,0xDD9F,0xDDA0,0xDE40,0xDE41,0xDE42,
-0xDE43,0xDE44,0xDE45,0xDE46,0xDE47,0xDE48,0xDE49,0xDE4A,
-0xDE4B,0xDE4C,0xDE4D,0xDE4E,0xDE4F,0xDE50,0xDE51,0xDE52,
-0xDE53,0xDE54,0xDE55,0xDE56,0xDE57,0xDE58,0xDE59,0xDE5A,
-0xDE5B,0xDE5C,0xDE5D,0xDE5E,0xDE5F,0xDE60,0xB3B5,0xD4FE,
-0xB9EC,0xD0F9,0xDE61,0xE9ED,0xD7AA,0xE9EE,0xC2D6,0xC8ED,
-0xBAE4,0xE9EF,0xE9F0,0xE9F1,0xD6E1,0xE9F2,0xE9F3,0xE9F5,
-0xE9F4,0xE9F6,0xE9F7,0xC7E1,0xE9F8,0xD4D8,0xE9F9,0xBDCE,
-0xDE62,0xE9FA,0xE9FB,0xBDCF,0xE9FC,0xB8A8,0xC1BE,0xE9FD,
-0xB1B2,0xBBD4,0xB9F5,0xE9FE,0xDE63,0xEAA1,0xEAA2,0xEAA3,
-0xB7F8,0xBCAD,0xDE64,0xCAE4,0xE0CE,0xD4AF,0xCFBD,0xD5B7,
-0xEAA4,0xD5DE,0xEAA5,0xD0C1,0xB9BC,0xDE65,0xB4C7,0xB1D9,
-0xDE66,0xDE67,0xDE68,0xC0B1,0xDE69,0xDE6A,0xDE6B,0xDE6C,
-0xB1E6,0xB1E7,0xDE6D,0xB1E8,0xDE6E,0xDE6F,0xDE70,0xDE71,
-0xB3BD,0xC8E8,0xDE72,0xDE73,0xDE74,0xDE75,0xE5C1,0xDE76,
-0xDE77,0xB1DF,0xDE78,0xDE79,0xDE7A,0xC1C9,0xB4EF,0xDE7B,
-0xDE7C,0xC7A8,0xD3D8,0xDE7D,0xC6F9,0xD1B8,0xDE7E,0xB9FD,
-0xC2F5,0xDE80,0xDE81,0xDE82,0xDE83,0xDE84,0xD3AD,0xDE85,
-0xD4CB,0xBDFC,0xDE86,0xE5C2,0xB7B5,0xE5C3,0xDE87,0xDE88,
-0xBBB9,0xD5E2,0xDE89,0xBDF8,0xD4B6,0xCEA5,0xC1AC,0xB3D9,
-0xDE8A,0xDE8B,0xCCF6,0xDE8C,0xE5C6,0xE5C4,0xE5C8,0xDE8D,
-0xE5CA,0xE5C7,0xB5CF,0xC6C8,0xDE8E,0xB5FC,0xE5C5,0xDE8F,
-0xCAF6,0xDE90,0xDE91,0xE5C9,0xDE92,0xDE93,0xDE94,0xC3D4,
-0xB1C5,0xBCA3,0xDE95,0xDE96,0xDE97,0xD7B7,0xDE98,0xDE99,
-0xCDCB,0xCBCD,0xCACA,0xCCD3,0xE5CC,0xE5CB,0xC4E6,0xDE9A,
-0xDE9B,0xD1A1,0xD1B7,0xE5CD,0xDE9C,0xE5D0,0xDE9D,0xCDB8,
-0xD6F0,0xE5CF,0xB5DD,0xDE9E,0xCDBE,0xDE9F,0xE5D1,0xB6BA,
-0xDEA0,0xDF40,0xCDA8,0xB9E4,0xDF41,0xCAC5,0xB3D1,0xCBD9,
-0xD4EC,0xE5D2,0xB7EA,0xDF42,0xDF43,0xDF44,0xE5CE,0xDF45,
-0xDF46,0xDF47,0xDF48,0xDF49,0xDF4A,0xE5D5,0xB4FE,0xE5D6,
-0xDF4B,0xDF4C,0xDF4D,0xDF4E,0xDF4F,0xE5D3,0xE5D4,0xDF50,
-0xD2DD,0xDF51,0xDF52,0xC2DF,0xB1C6,0xDF53,0xD3E2,0xDF54,
-0xDF55,0xB6DD,0xCBEC,0xDF56,0xE5D7,0xDF57,0xDF58,0xD3F6,
-0xDF59,0xDF5A,0xDF5B,0xDF5C,0xDF5D,0xB1E9,0xDF5E,0xB6F4,
-0xE5DA,0xE5D8,0xE5D9,0xB5C0,0xDF5F,0xDF60,0xDF61,0xD2C5,
-0xE5DC,0xDF62,0xDF63,0xE5DE,0xDF64,0xDF65,0xDF66,0xDF67,
-0xDF68,0xDF69,0xE5DD,0xC7B2,0xDF6A,0xD2A3,0xDF6B,0xDF6C,
-0xE5DB,0xDF6D,0xDF6E,0xDF6F,0xDF70,0xD4E2,0xD5DA,0xDF71,
-0xDF72,0xDF73,0xDF74,0xDF75,0xE5E0,0xD7F1,0xDF76,0xDF77,
-0xDF78,0xDF79,0xDF7A,0xDF7B,0xDF7C,0xE5E1,0xDF7D,0xB1DC,
-0xD1FB,0xDF7E,0xE5E2,0xE5E4,0xDF80,0xDF81,0xDF82,0xDF83,
-0xE5E3,0xDF84,0xDF85,0xE5E5,0xDF86,0xDF87,0xDF88,0xDF89,
-0xDF8A,0xD2D8,0xDF8B,0xB5CB,0xDF8C,0xE7DF,0xDF8D,0xDAF5,
-0xDF8E,0xDAF8,0xDF8F,0xDAF6,0xDF90,0xDAF7,0xDF91,0xDF92,
-0xDF93,0xDAFA,0xD0CF,0xC4C7,0xDF94,0xDF95,0xB0EE,0xDF96,
-0xDF97,0xDF98,0xD0B0,0xDF99,0xDAF9,0xDF9A,0xD3CA,0xBAAA,
-0xDBA2,0xC7F1,0xDF9B,0xDAFC,0xDAFB,0xC9DB,0xDAFD,0xDF9C,
-0xDBA1,0xD7DE,0xDAFE,0xC1DA,0xDF9D,0xDF9E,0xDBA5,0xDF9F,
-0xDFA0,0xD3F4,0xE040,0xE041,0xDBA7,0xDBA4,0xE042,0xDBA8,
-0xE043,0xE044,0xBDBC,0xE045,0xE046,0xE047,0xC0C9,0xDBA3,
-0xDBA6,0xD6A3,0xE048,0xDBA9,0xE049,0xE04A,0xE04B,0xDBAD,
-0xE04C,0xE04D,0xE04E,0xDBAE,0xDBAC,0xBAC2,0xE04F,0xE050,
-0xE051,0xBFA4,0xDBAB,0xE052,0xE053,0xE054,0xDBAA,0xD4C7,
-0xB2BF,0xE055,0xE056,0xDBAF,0xE057,0xB9F9,0xE058,0xDBB0,
-0xE059,0xE05A,0xE05B,0xE05C,0xB3BB,0xE05D,0xE05E,0xE05F,
-0xB5A6,0xE060,0xE061,0xE062,0xE063,0xB6BC,0xDBB1,0xE064,
-0xE065,0xE066,0xB6F5,0xE067,0xDBB2,0xE068,0xE069,0xE06A,
-0xE06B,0xE06C,0xE06D,0xE06E,0xE06F,0xE070,0xE071,0xE072,
-0xE073,0xE074,0xE075,0xE076,0xE077,0xE078,0xE079,0xE07A,
-0xE07B,0xB1C9,0xE07C,0xE07D,0xE07E,0xE080,0xDBB4,0xE081,
-0xE082,0xE083,0xDBB3,0xDBB5,0xE084,0xE085,0xE086,0xE087,
-0xE088,0xE089,0xE08A,0xE08B,0xE08C,0xE08D,0xE08E,0xDBB7,
-0xE08F,0xDBB6,0xE090,0xE091,0xE092,0xE093,0xE094,0xE095,
-0xE096,0xDBB8,0xE097,0xE098,0xE099,0xE09A,0xE09B,0xE09C,
-0xE09D,0xE09E,0xE09F,0xDBB9,0xE0A0,0xE140,0xDBBA,0xE141,
-0xE142,0xD3CF,0xF4FA,0xC7F5,0xD7C3,0xC5E4,0xF4FC,0xF4FD,
-0xF4FB,0xE143,0xBEC6,0xE144,0xE145,0xE146,0xE147,0xD0EF,
-0xE148,0xE149,0xB7D3,0xE14A,0xE14B,0xD4CD,0xCCAA,0xE14C,
-0xE14D,0xF5A2,0xF5A1,0xBAA8,0xF4FE,0xCBD6,0xE14E,0xE14F,
-0xE150,0xF5A4,0xC0D2,0xE151,0xB3EA,0xE152,0xCDAA,0xF5A5,
-0xF5A3,0xBDB4,0xF5A8,0xE153,0xF5A9,0xBDCD,0xC3B8,0xBFE1,
-0xCBE1,0xF5AA,0xE154,0xE155,0xE156,0xF5A6,0xF5A7,0xC4F0,
-0xE157,0xE158,0xE159,0xE15A,0xE15B,0xF5AC,0xE15C,0xB4BC,
-0xE15D,0xD7ED,0xE15E,0xB4D7,0xF5AB,0xF5AE,0xE15F,0xE160,
-0xF5AD,0xF5AF,0xD0D1,0xE161,0xE162,0xE163,0xE164,0xE165,
-0xE166,0xE167,0xC3D1,0xC8A9,0xE168,0xE169,0xE16A,0xE16B,
-0xE16C,0xE16D,0xF5B0,0xF5B1,0xE16E,0xE16F,0xE170,0xE171,
-0xE172,0xE173,0xF5B2,0xE174,0xE175,0xF5B3,0xF5B4,0xF5B5,
-0xE176,0xE177,0xE178,0xE179,0xF5B7,0xF5B6,0xE17A,0xE17B,
-0xE17C,0xE17D,0xF5B8,0xE17E,0xE180,0xE181,0xE182,0xE183,
-0xE184,0xE185,0xE186,0xE187,0xE188,0xE189,0xE18A,0xB2C9,
-0xE18B,0xD3D4,0xCACD,0xE18C,0xC0EF,0xD6D8,0xD2B0,0xC1BF,
-0xE18D,0xBDF0,0xE18E,0xE18F,0xE190,0xE191,0xE192,0xE193,
-0xE194,0xE195,0xE196,0xE197,0xB8AA,0xE198,0xE199,0xE19A,
-0xE19B,0xE19C,0xE19D,0xE19E,0xE19F,0xE1A0,0xE240,0xE241,
-0xE242,0xE243,0xE244,0xE245,0xE246,0xE247,0xE248,0xE249,
-0xE24A,0xE24B,0xE24C,0xE24D,0xE24E,0xE24F,0xE250,0xE251,
-0xE252,0xE253,0xE254,0xE255,0xE256,0xE257,0xE258,0xE259,
-0xE25A,0xE25B,0xE25C,0xE25D,0xE25E,0xE25F,0xE260,0xE261,
-0xE262,0xE263,0xE264,0xE265,0xE266,0xE267,0xE268,0xE269,
-0xE26A,0xE26B,0xE26C,0xE26D,0xE26E,0xE26F,0xE270,0xE271,
-0xE272,0xE273,0xE274,0xE275,0xE276,0xE277,0xE278,0xE279,
-0xE27A,0xE27B,0xE27C,0xE27D,0xE27E,0xE280,0xE281,0xE282,
-0xE283,0xE284,0xE285,0xE286,0xE287,0xE288,0xE289,0xE28A,
-0xE28B,0xE28C,0xE28D,0xE28E,0xE28F,0xE290,0xE291,0xE292,
-0xE293,0xE294,0xE295,0xE296,0xE297,0xE298,0xE299,0xE29A,
-0xE29B,0xE29C,0xE29D,0xE29E,0xE29F,0xE2A0,0xE340,0xE341,
-0xE342,0xE343,0xE344,0xE345,0xE346,0xE347,0xE348,0xE349,
-0xE34A,0xE34B,0xE34C,0xE34D,0xE34E,0xE34F,0xE350,0xE351,
-0xE352,0xE353,0xE354,0xE355,0xE356,0xE357,0xE358,0xE359,
-0xE35A,0xE35B,0xE35C,0xE35D,0xE35E,0xE35F,0xE360,0xE361,
-0xE362,0xE363,0xE364,0xE365,0xE366,0xE367,0xE368,0xE369,
-0xE36A,0xE36B,0xE36C,0xE36D,0xBCF8,0xE36E,0xE36F,0xE370,
-0xE371,0xE372,0xE373,0xE374,0xE375,0xE376,0xE377,0xE378,
-0xE379,0xE37A,0xE37B,0xE37C,0xE37D,0xE37E,0xE380,0xE381,
-0xE382,0xE383,0xE384,0xE385,0xE386,0xE387,0xF6C6,0xE388,
-0xE389,0xE38A,0xE38B,0xE38C,0xE38D,0xE38E,0xE38F,0xE390,
-0xE391,0xE392,0xE393,0xE394,0xE395,0xE396,0xE397,0xE398,
-0xE399,0xE39A,0xE39B,0xE39C,0xE39D,0xE39E,0xE39F,0xE3A0,
-0xE440,0xE441,0xE442,0xE443,0xE444,0xE445,0xF6C7,0xE446,
-0xE447,0xE448,0xE449,0xE44A,0xE44B,0xE44C,0xE44D,0xE44E,
-0xE44F,0xE450,0xE451,0xE452,0xE453,0xE454,0xE455,0xE456,
-0xE457,0xE458,0xE459,0xE45A,0xE45B,0xE45C,0xE45D,0xE45E,
-0xF6C8,0xE45F,0xE460,0xE461,0xE462,0xE463,0xE464,0xE465,
-0xE466,0xE467,0xE468,0xE469,0xE46A,0xE46B,0xE46C,0xE46D,
-0xE46E,0xE46F,0xE470,0xE471,0xE472,0xE473,0xE474,0xE475,
-0xE476,0xE477,0xE478,0xE479,0xE47A,0xE47B,0xE47C,0xE47D,
-0xE47E,0xE480,0xE481,0xE482,0xE483,0xE484,0xE485,0xE486,
-0xE487,0xE488,0xE489,0xE48A,0xE48B,0xE48C,0xE48D,0xE48E,
-0xE48F,0xE490,0xE491,0xE492,0xE493,0xE494,0xE495,0xE496,
-0xE497,0xE498,0xE499,0xE49A,0xE49B,0xE49C,0xE49D,0xE49E,
-0xE49F,0xE4A0,0xE540,0xE541,0xE542,0xE543,0xE544,0xE545,
-0xE546,0xE547,0xE548,0xE549,0xE54A,0xE54B,0xE54C,0xE54D,
-0xE54E,0xE54F,0xE550,0xE551,0xE552,0xE553,0xE554,0xE555,
-0xE556,0xE557,0xE558,0xE559,0xE55A,0xE55B,0xE55C,0xE55D,
-0xE55E,0xE55F,0xE560,0xE561,0xE562,0xE563,0xE564,0xE565,
-0xE566,0xE567,0xE568,0xE569,0xE56A,0xE56B,0xE56C,0xE56D,
-0xE56E,0xE56F,0xE570,0xE571,0xE572,0xE573,0xF6C9,0xE574,
-0xE575,0xE576,0xE577,0xE578,0xE579,0xE57A,0xE57B,0xE57C,
-0xE57D,0xE57E,0xE580,0xE581,0xE582,0xE583,0xE584,0xE585,
-0xE586,0xE587,0xE588,0xE589,0xE58A,0xE58B,0xE58C,0xE58D,
-0xE58E,0xE58F,0xE590,0xE591,0xE592,0xE593,0xE594,0xE595,
-0xE596,0xE597,0xE598,0xE599,0xE59A,0xE59B,0xE59C,0xE59D,
-0xE59E,0xE59F,0xF6CA,0xE5A0,0xE640,0xE641,0xE642,0xE643,
-0xE644,0xE645,0xE646,0xE647,0xE648,0xE649,0xE64A,0xE64B,
-0xE64C,0xE64D,0xE64E,0xE64F,0xE650,0xE651,0xE652,0xE653,
-0xE654,0xE655,0xE656,0xE657,0xE658,0xE659,0xE65A,0xE65B,
-0xE65C,0xE65D,0xE65E,0xE65F,0xE660,0xE661,0xE662,0xF6CC,
-0xE663,0xE664,0xE665,0xE666,0xE667,0xE668,0xE669,0xE66A,
-0xE66B,0xE66C,0xE66D,0xE66E,0xE66F,0xE670,0xE671,0xE672,
-0xE673,0xE674,0xE675,0xE676,0xE677,0xE678,0xE679,0xE67A,
-0xE67B,0xE67C,0xE67D,0xE67E,0xE680,0xE681,0xE682,0xE683,
-0xE684,0xE685,0xE686,0xE687,0xE688,0xE689,0xE68A,0xE68B,
-0xE68C,0xE68D,0xE68E,0xE68F,0xE690,0xE691,0xE692,0xE693,
-0xE694,0xE695,0xE696,0xE697,0xE698,0xE699,0xE69A,0xE69B,
-0xE69C,0xE69D,0xF6CB,0xE69E,0xE69F,0xE6A0,0xE740,0xE741,
-0xE742,0xE743,0xE744,0xE745,0xE746,0xE747,0xF7E9,0xE748,
-0xE749,0xE74A,0xE74B,0xE74C,0xE74D,0xE74E,0xE74F,0xE750,
-0xE751,0xE752,0xE753,0xE754,0xE755,0xE756,0xE757,0xE758,
-0xE759,0xE75A,0xE75B,0xE75C,0xE75D,0xE75E,0xE75F,0xE760,
-0xE761,0xE762,0xE763,0xE764,0xE765,0xE766,0xE767,0xE768,
-0xE769,0xE76A,0xE76B,0xE76C,0xE76D,0xE76E,0xE76F,0xE770,
-0xE771,0xE772,0xE773,0xE774,0xE775,0xE776,0xE777,0xE778,
-0xE779,0xE77A,0xE77B,0xE77C,0xE77D,0xE77E,0xE780,0xE781,
-0xE782,0xE783,0xE784,0xE785,0xE786,0xE787,0xE788,0xE789,
-0xE78A,0xE78B,0xE78C,0xE78D,0xE78E,0xE78F,0xE790,0xE791,
-0xE792,0xE793,0xE794,0xE795,0xE796,0xE797,0xE798,0xE799,
-0xE79A,0xE79B,0xE79C,0xE79D,0xE79E,0xE79F,0xE7A0,0xE840,
-0xE841,0xE842,0xE843,0xE844,0xE845,0xE846,0xE847,0xE848,
-0xE849,0xE84A,0xE84B,0xE84C,0xE84D,0xE84E,0xF6CD,0xE84F,
-0xE850,0xE851,0xE852,0xE853,0xE854,0xE855,0xE856,0xE857,
-0xE858,0xE859,0xE85A,0xE85B,0xE85C,0xE85D,0xE85E,0xE85F,
-0xE860,0xE861,0xE862,0xE863,0xE864,0xE865,0xE866,0xE867,
-0xE868,0xE869,0xE86A,0xE86B,0xE86C,0xE86D,0xE86E,0xE86F,
-0xE870,0xE871,0xE872,0xE873,0xE874,0xE875,0xE876,0xE877,
-0xE878,0xE879,0xE87A,0xF6CE,0xE87B,0xE87C,0xE87D,0xE87E,
-0xE880,0xE881,0xE882,0xE883,0xE884,0xE885,0xE886,0xE887,
-0xE888,0xE889,0xE88A,0xE88B,0xE88C,0xE88D,0xE88E,0xE88F,
-0xE890,0xE891,0xE892,0xE893,0xE894,0xEEC4,0xEEC5,0xEEC6,
-0xD5EB,0xB6A4,0xEEC8,0xEEC7,0xEEC9,0xEECA,0xC7A5,0xEECB,
-0xEECC,0xE895,0xB7B0,0xB5F6,0xEECD,0xEECF,0xE896,0xEECE,
-0xE897,0xB8C6,0xEED0,0xEED1,0xEED2,0xB6DB,0xB3AE,0xD6D3,
-0xC4C6,0xB1B5,0xB8D6,0xEED3,0xEED4,0xD4BF,0xC7D5,0xBEFB,
-0xCED9,0xB9B3,0xEED6,0xEED5,0xEED8,0xEED7,0xC5A5,0xEED9,
-0xEEDA,0xC7AE,0xEEDB,0xC7AF,0xEEDC,0xB2A7,0xEEDD,0xEEDE,
-0xEEDF,0xEEE0,0xEEE1,0xD7EA,0xEEE2,0xEEE3,0xBCD8,0xEEE4,
-0xD3CB,0xCCFA,0xB2AC,0xC1E5,0xEEE5,0xC7A6,0xC3AD,0xE898,
-0xEEE6,0xEEE7,0xEEE8,0xEEE9,0xEEEA,0xEEEB,0xEEEC,0xE899,
-0xEEED,0xEEEE,0xEEEF,0xE89A,0xE89B,0xEEF0,0xEEF1,0xEEF2,
-0xEEF4,0xEEF3,0xE89C,0xEEF5,0xCDAD,0xC2C1,0xEEF6,0xEEF7,
-0xEEF8,0xD5A1,0xEEF9,0xCFB3,0xEEFA,0xEEFB,0xE89D,0xEEFC,
-0xEEFD,0xEFA1,0xEEFE,0xEFA2,0xB8F5,0xC3FA,0xEFA3,0xEFA4,
-0xBDC2,0xD2BF,0xB2F9,0xEFA5,0xEFA6,0xEFA7,0xD2F8,0xEFA8,
-0xD6FD,0xEFA9,0xC6CC,0xE89E,0xEFAA,0xEFAB,0xC1B4,0xEFAC,
-0xCFFA,0xCBF8,0xEFAE,0xEFAD,0xB3FA,0xB9F8,0xEFAF,0xEFB0,
-0xD0E2,0xEFB1,0xEFB2,0xB7E6,0xD0BF,0xEFB3,0xEFB4,0xEFB5,
-0xC8F1,0xCCE0,0xEFB6,0xEFB7,0xEFB8,0xEFB9,0xEFBA,0xD5E0,
-0xEFBB,0xB4ED,0xC3AA,0xEFBC,0xE89F,0xEFBD,0xEFBE,0xEFBF,
-0xE8A0,0xCEFD,0xEFC0,0xC2E0,0xB4B8,0xD7B6,0xBDF5,0xE940,
-0xCFC7,0xEFC3,0xEFC1,0xEFC2,0xEFC4,0xB6A7,0xBCFC,0xBEE2,
-0xC3CC,0xEFC5,0xEFC6,0xE941,0xEFC7,0xEFCF,0xEFC8,0xEFC9,
-0xEFCA,0xC7C2,0xEFF1,0xB6CD,0xEFCB,0xE942,0xEFCC,0xEFCD,
-0xB6C6,0xC3BE,0xEFCE,0xE943,0xEFD0,0xEFD1,0xEFD2,0xD5F2,
-0xE944,0xEFD3,0xC4F7,0xE945,0xEFD4,0xC4F8,0xEFD5,0xEFD6,
-0xB8E4,0xB0F7,0xEFD7,0xEFD8,0xEFD9,0xE946,0xEFDA,0xEFDB,
-0xEFDC,0xEFDD,0xE947,0xEFDE,0xBEB5,0xEFE1,0xEFDF,0xEFE0,
-0xE948,0xEFE2,0xEFE3,0xC1CD,0xEFE4,0xEFE5,0xEFE6,0xEFE7,
-0xEFE8,0xEFE9,0xEFEA,0xEFEB,0xEFEC,0xC0D8,0xE949,0xEFED,
-0xC1AD,0xEFEE,0xEFEF,0xEFF0,0xE94A,0xE94B,0xCFE2,0xE94C,
-0xE94D,0xE94E,0xE94F,0xE950,0xE951,0xE952,0xE953,0xB3A4,
-0xE954,0xE955,0xE956,0xE957,0xE958,0xE959,0xE95A,0xE95B,
-0xE95C,0xE95D,0xE95E,0xE95F,0xE960,0xE961,0xE962,0xE963,
-0xE964,0xE965,0xE966,0xE967,0xE968,0xE969,0xE96A,0xE96B,
-0xE96C,0xE96D,0xE96E,0xE96F,0xE970,0xE971,0xE972,0xE973,
-0xE974,0xE975,0xE976,0xE977,0xE978,0xE979,0xE97A,0xE97B,
-0xE97C,0xE97D,0xE97E,0xE980,0xE981,0xE982,0xE983,0xE984,
-0xE985,0xE986,0xE987,0xE988,0xE989,0xE98A,0xE98B,0xE98C,
-0xE98D,0xE98E,0xE98F,0xE990,0xE991,0xE992,0xE993,0xE994,
-0xE995,0xE996,0xE997,0xE998,0xE999,0xE99A,0xE99B,0xE99C,
-0xE99D,0xE99E,0xE99F,0xE9A0,0xEA40,0xEA41,0xEA42,0xEA43,
-0xEA44,0xEA45,0xEA46,0xEA47,0xEA48,0xEA49,0xEA4A,0xEA4B,
-0xEA4C,0xEA4D,0xEA4E,0xEA4F,0xEA50,0xEA51,0xEA52,0xEA53,
-0xEA54,0xEA55,0xEA56,0xEA57,0xEA58,0xEA59,0xEA5A,0xEA5B,
-0xC3C5,0xE3C5,0xC9C1,0xE3C6,0xEA5C,0xB1D5,0xCECA,0xB4B3,
-0xC8F2,0xE3C7,0xCFD0,0xE3C8,0xBCE4,0xE3C9,0xE3CA,0xC3C6,
-0xD5A2,0xC4D6,0xB9EB,0xCEC5,0xE3CB,0xC3F6,0xE3CC,0xEA5D,
-0xB7A7,0xB8F3,0xBAD2,0xE3CD,0xE3CE,0xD4C4,0xE3CF,0xEA5E,
-0xE3D0,0xD1CB,0xE3D1,0xE3D2,0xE3D3,0xE3D4,0xD1D6,0xE3D5,
-0xB2FB,0xC0BB,0xE3D6,0xEA5F,0xC0AB,0xE3D7,0xE3D8,0xE3D9,
-0xEA60,0xE3DA,0xE3DB,0xEA61,0xB8B7,0xDAE2,0xEA62,0xB6D3,
-0xEA63,0xDAE4,0xDAE3,0xEA64,0xEA65,0xEA66,0xEA67,0xEA68,
-0xEA69,0xEA6A,0xDAE6,0xEA6B,0xEA6C,0xEA6D,0xC8EE,0xEA6E,
-0xEA6F,0xDAE5,0xB7C0,0xD1F4,0xD2F5,0xD5F3,0xBDD7,0xEA70,
-0xEA71,0xEA72,0xEA73,0xD7E8,0xDAE8,0xDAE7,0xEA74,0xB0A2,
-0xCDD3,0xEA75,0xDAE9,0xEA76,0xB8BD,0xBCCA,0xC2BD,0xC2A4,
-0xB3C2,0xDAEA,0xEA77,0xC2AA,0xC4B0,0xBDB5,0xEA78,0xEA79,
-0xCFDE,0xEA7A,0xEA7B,0xEA7C,0xDAEB,0xC9C2,0xEA7D,0xEA7E,
-0xEA80,0xEA81,0xEA82,0xB1DD,0xEA83,0xEA84,0xEA85,0xDAEC,
-0xEA86,0xB6B8,0xD4BA,0xEA87,0xB3FD,0xEA88,0xEA89,0xDAED,
-0xD4C9,0xCFD5,0xC5E3,0xEA8A,0xDAEE,0xEA8B,0xEA8C,0xEA8D,
-0xEA8E,0xEA8F,0xDAEF,0xEA90,0xDAF0,0xC1EA,0xCCD5,0xCFDD,
-0xEA91,0xEA92,0xEA93,0xEA94,0xEA95,0xEA96,0xEA97,0xEA98,
-0xEA99,0xEA9A,0xEA9B,0xEA9C,0xEA9D,0xD3E7,0xC2A1,0xEA9E,
-0xDAF1,0xEA9F,0xEAA0,0xCBE5,0xEB40,0xDAF2,0xEB41,0xCBE6,
-0xD2FE,0xEB42,0xEB43,0xEB44,0xB8F4,0xEB45,0xEB46,0xDAF3,
-0xB0AF,0xCFB6,0xEB47,0xEB48,0xD5CF,0xEB49,0xEB4A,0xEB4B,
-0xEB4C,0xEB4D,0xEB4E,0xEB4F,0xEB50,0xEB51,0xEB52,0xCBED,
-0xEB53,0xEB54,0xEB55,0xEB56,0xEB57,0xEB58,0xEB59,0xEB5A,
-0xDAF4,0xEB5B,0xEB5C,0xE3C4,0xEB5D,0xEB5E,0xC1A5,0xEB5F,
-0xEB60,0xF6BF,0xEB61,0xEB62,0xF6C0,0xF6C1,0xC4D1,0xEB63,
-0xC8B8,0xD1E3,0xEB64,0xEB65,0xD0DB,0xD1C5,0xBCAF,0xB9CD,
-0xEB66,0xEFF4,0xEB67,0xEB68,0xB4C6,0xD3BA,0xF6C2,0xB3FB,
-0xEB69,0xEB6A,0xF6C3,0xEB6B,0xEB6C,0xB5F1,0xEB6D,0xEB6E,
-0xEB6F,0xEB70,0xEB71,0xEB72,0xEB73,0xEB74,0xEB75,0xEB76,
-0xF6C5,0xEB77,0xEB78,0xEB79,0xEB7A,0xEB7B,0xEB7C,0xEB7D,
-0xD3EA,0xF6A7,0xD1A9,0xEB7E,0xEB80,0xEB81,0xEB82,0xF6A9,
-0xEB83,0xEB84,0xEB85,0xF6A8,0xEB86,0xEB87,0xC1E3,0xC0D7,
-0xEB88,0xB1A2,0xEB89,0xEB8A,0xEB8B,0xEB8C,0xCEED,0xEB8D,
-0xD0E8,0xF6AB,0xEB8E,0xEB8F,0xCFF6,0xEB90,0xF6AA,0xD5F0,
-0xF6AC,0xC3B9,0xEB91,0xEB92,0xEB93,0xBBF4,0xF6AE,0xF6AD,
-0xEB94,0xEB95,0xEB96,0xC4DE,0xEB97,0xEB98,0xC1D8,0xEB99,
-0xEB9A,0xEB9B,0xEB9C,0xEB9D,0xCBAA,0xEB9E,0xCFBC,0xEB9F,
-0xEBA0,0xEC40,0xEC41,0xEC42,0xEC43,0xEC44,0xEC45,0xEC46,
-0xEC47,0xEC48,0xF6AF,0xEC49,0xEC4A,0xF6B0,0xEC4B,0xEC4C,
-0xF6B1,0xEC4D,0xC2B6,0xEC4E,0xEC4F,0xEC50,0xEC51,0xEC52,
-0xB0D4,0xC5F9,0xEC53,0xEC54,0xEC55,0xEC56,0xF6B2,0xEC57,
-0xEC58,0xEC59,0xEC5A,0xEC5B,0xEC5C,0xEC5D,0xEC5E,0xEC5F,
-0xEC60,0xEC61,0xEC62,0xEC63,0xEC64,0xEC65,0xEC66,0xEC67,
-0xEC68,0xEC69,0xC7E0,0xF6A6,0xEC6A,0xEC6B,0xBEB8,0xEC6C,
-0xEC6D,0xBEB2,0xEC6E,0xB5E5,0xEC6F,0xEC70,0xB7C7,0xEC71,
-0xBFBF,0xC3D2,0xC3E6,0xEC72,0xEC73,0xD8CC,0xEC74,0xEC75,
-0xEC76,0xB8EF,0xEC77,0xEC78,0xEC79,0xEC7A,0xEC7B,0xEC7C,
-0xEC7D,0xEC7E,0xEC80,0xBDF9,0xD1A5,0xEC81,0xB0D0,0xEC82,
-0xEC83,0xEC84,0xEC85,0xEC86,0xF7B0,0xEC87,0xEC88,0xEC89,
-0xEC8A,0xEC8B,0xEC8C,0xEC8D,0xEC8E,0xF7B1,0xEC8F,0xEC90,
-0xEC91,0xEC92,0xEC93,0xD0AC,0xEC94,0xB0B0,0xEC95,0xEC96,
-0xEC97,0xF7B2,0xF7B3,0xEC98,0xF7B4,0xEC99,0xEC9A,0xEC9B,
-0xC7CA,0xEC9C,0xEC9D,0xEC9E,0xEC9F,0xECA0,0xED40,0xED41,
-0xBECF,0xED42,0xED43,0xF7B7,0xED44,0xED45,0xED46,0xED47,
-0xED48,0xED49,0xED4A,0xF7B6,0xED4B,0xB1DE,0xED4C,0xF7B5,
-0xED4D,0xED4E,0xF7B8,0xED4F,0xF7B9,0xED50,0xED51,0xED52,
-0xED53,0xED54,0xED55,0xED56,0xED57,0xED58,0xED59,0xED5A,
-0xED5B,0xED5C,0xED5D,0xED5E,0xED5F,0xED60,0xED61,0xED62,
-0xED63,0xED64,0xED65,0xED66,0xED67,0xED68,0xED69,0xED6A,
-0xED6B,0xED6C,0xED6D,0xED6E,0xED6F,0xED70,0xED71,0xED72,
-0xED73,0xED74,0xED75,0xED76,0xED77,0xED78,0xED79,0xED7A,
-0xED7B,0xED7C,0xED7D,0xED7E,0xED80,0xED81,0xCEA4,0xC8CD,
-0xED82,0xBAAB,0xE8B8,0xE8B9,0xE8BA,0xBEC2,0xED83,0xED84,
-0xED85,0xED86,0xED87,0xD2F4,0xED88,0xD4CF,0xC9D8,0xED89,
-0xED8A,0xED8B,0xED8C,0xED8D,0xED8E,0xED8F,0xED90,0xED91,
-0xED92,0xED93,0xED94,0xED95,0xED96,0xED97,0xED98,0xED99,
-0xED9A,0xED9B,0xED9C,0xED9D,0xED9E,0xED9F,0xEDA0,0xEE40,
-0xEE41,0xEE42,0xEE43,0xEE44,0xEE45,0xEE46,0xEE47,0xEE48,
-0xEE49,0xEE4A,0xEE4B,0xEE4C,0xEE4D,0xEE4E,0xEE4F,0xEE50,
-0xEE51,0xEE52,0xEE53,0xEE54,0xEE55,0xEE56,0xEE57,0xEE58,
-0xEE59,0xEE5A,0xEE5B,0xEE5C,0xEE5D,0xEE5E,0xEE5F,0xEE60,
-0xEE61,0xEE62,0xEE63,0xEE64,0xEE65,0xEE66,0xEE67,0xEE68,
-0xEE69,0xEE6A,0xEE6B,0xEE6C,0xEE6D,0xEE6E,0xEE6F,0xEE70,
-0xEE71,0xEE72,0xEE73,0xEE74,0xEE75,0xEE76,0xEE77,0xEE78,
-0xEE79,0xEE7A,0xEE7B,0xEE7C,0xEE7D,0xEE7E,0xEE80,0xEE81,
-0xEE82,0xEE83,0xEE84,0xEE85,0xEE86,0xEE87,0xEE88,0xEE89,
-0xEE8A,0xEE8B,0xEE8C,0xEE8D,0xEE8E,0xEE8F,0xEE90,0xEE91,
-0xEE92,0xEE93,0xEE94,0xEE95,0xEE96,0xEE97,0xEE98,0xEE99,
-0xEE9A,0xEE9B,0xEE9C,0xEE9D,0xEE9E,0xEE9F,0xEEA0,0xEF40,
-0xEF41,0xEF42,0xEF43,0xEF44,0xEF45,0xD2B3,0xB6A5,0xC7EA,
-0xF1FC,0xCFEE,0xCBB3,0xD0EB,0xE7EF,0xCDE7,0xB9CB,0xB6D9,
-0xF1FD,0xB0E4,0xCBCC,0xF1FE,0xD4A4,0xC2AD,0xC1EC,0xC6C4,
-0xBEB1,0xF2A1,0xBCD5,0xEF46,0xF2A2,0xF2A3,0xEF47,0xF2A4,
-0xD2C3,0xC6B5,0xEF48,0xCDC7,0xF2A5,0xEF49,0xD3B1,0xBFC5,
-0xCCE2,0xEF4A,0xF2A6,0xF2A7,0xD1D5,0xB6EE,0xF2A8,0xF2A9,
-0xB5DF,0xF2AA,0xF2AB,0xEF4B,0xB2FC,0xF2AC,0xF2AD,0xC8A7,
-0xEF4C,0xEF4D,0xEF4E,0xEF4F,0xEF50,0xEF51,0xEF52,0xEF53,
-0xEF54,0xEF55,0xEF56,0xEF57,0xEF58,0xEF59,0xEF5A,0xEF5B,
-0xEF5C,0xEF5D,0xEF5E,0xEF5F,0xEF60,0xEF61,0xEF62,0xEF63,
-0xEF64,0xEF65,0xEF66,0xEF67,0xEF68,0xEF69,0xEF6A,0xEF6B,
-0xEF6C,0xEF6D,0xEF6E,0xEF6F,0xEF70,0xEF71,0xB7E7,0xEF72,
-0xEF73,0xECA9,0xECAA,0xECAB,0xEF74,0xECAC,0xEF75,0xEF76,
-0xC6AE,0xECAD,0xECAE,0xEF77,0xEF78,0xEF79,0xB7C9,0xCAB3,
-0xEF7A,0xEF7B,0xEF7C,0xEF7D,0xEF7E,0xEF80,0xEF81,0xE2B8,
-0xF7CF,0xEF82,0xEF83,0xEF84,0xEF85,0xEF86,0xEF87,0xEF88,
-0xEF89,0xEF8A,0xEF8B,0xEF8C,0xEF8D,0xEF8E,0xEF8F,0xEF90,
-0xEF91,0xEF92,0xEF93,0xEF94,0xEF95,0xEF96,0xEF97,0xEF98,
-0xEF99,0xEF9A,0xEF9B,0xEF9C,0xEF9D,0xEF9E,0xEF9F,0xEFA0,
-0xF040,0xF041,0xF042,0xF043,0xF044,0xF7D0,0xF045,0xF046,
-0xB2CD,0xF047,0xF048,0xF049,0xF04A,0xF04B,0xF04C,0xF04D,
-0xF04E,0xF04F,0xF050,0xF051,0xF052,0xF053,0xF054,0xF055,
-0xF056,0xF057,0xF058,0xF059,0xF05A,0xF05B,0xF05C,0xF05D,
-0xF05E,0xF05F,0xF060,0xF061,0xF062,0xF063,0xF7D1,0xF064,
-0xF065,0xF066,0xF067,0xF068,0xF069,0xF06A,0xF06B,0xF06C,
-0xF06D,0xF06E,0xF06F,0xF070,0xF071,0xF072,0xF073,0xF074,
-0xF075,0xF076,0xF077,0xF078,0xF079,0xF07A,0xF07B,0xF07C,
-0xF07D,0xF07E,0xF080,0xF081,0xF082,0xF083,0xF084,0xF085,
-0xF086,0xF087,0xF088,0xF089,0xF7D3,0xF7D2,0xF08A,0xF08B,
-0xF08C,0xF08D,0xF08E,0xF08F,0xF090,0xF091,0xF092,0xF093,
-0xF094,0xF095,0xF096,0xE2BB,0xF097,0xBCA2,0xF098,0xE2BC,
-0xE2BD,0xE2BE,0xE2BF,0xE2C0,0xE2C1,0xB7B9,0xD2FB,0xBDA4,
-0xCACE,0xB1A5,0xCBC7,0xF099,0xE2C2,0xB6FC,0xC8C4,0xE2C3,
-0xF09A,0xF09B,0xBDC8,0xF09C,0xB1FD,0xE2C4,0xF09D,0xB6F6,
-0xE2C5,0xC4D9,0xF09E,0xF09F,0xE2C6,0xCFDA,0xB9DD,0xE2C7,
-0xC0A1,0xF0A0,0xE2C8,0xB2F6,0xF140,0xE2C9,0xF141,0xC1F3,
-0xE2CA,0xE2CB,0xC2F8,0xE2CC,0xE2CD,0xE2CE,0xCAD7,0xD8B8,
-0xD9E5,0xCFE3,0xF142,0xF143,0xF144,0xF145,0xF146,0xF147,
-0xF148,0xF149,0xF14A,0xF14B,0xF14C,0xF0A5,0xF14D,0xF14E,
-0xDCB0,0xF14F,0xF150,0xF151,0xF152,0xF153,0xF154,0xF155,
-0xF156,0xF157,0xF158,0xF159,0xF15A,0xF15B,0xF15C,0xF15D,
-0xF15E,0xF15F,0xF160,0xF161,0xF162,0xF163,0xF164,0xF165,
-0xF166,0xF167,0xF168,0xF169,0xF16A,0xF16B,0xF16C,0xF16D,
-0xF16E,0xF16F,0xF170,0xF171,0xF172,0xF173,0xF174,0xF175,
-0xF176,0xF177,0xF178,0xF179,0xF17A,0xF17B,0xF17C,0xF17D,
-0xF17E,0xF180,0xF181,0xF182,0xF183,0xF184,0xF185,0xF186,
-0xF187,0xF188,0xF189,0xF18A,0xF18B,0xF18C,0xF18D,0xF18E,
-0xF18F,0xF190,0xF191,0xF192,0xF193,0xF194,0xF195,0xF196,
-0xF197,0xF198,0xF199,0xF19A,0xF19B,0xF19C,0xF19D,0xF19E,
-0xF19F,0xF1A0,0xF240,0xF241,0xF242,0xF243,0xF244,0xF245,
-0xF246,0xF247,0xF248,0xF249,0xF24A,0xF24B,0xF24C,0xF24D,
-0xF24E,0xF24F,0xF250,0xF251,0xF252,0xF253,0xF254,0xF255,
-0xF256,0xF257,0xF258,0xF259,0xF25A,0xF25B,0xF25C,0xF25D,
-0xF25E,0xF25F,0xF260,0xF261,0xF262,0xF263,0xF264,0xF265,
-0xF266,0xF267,0xF268,0xF269,0xF26A,0xF26B,0xF26C,0xF26D,
-0xF26E,0xF26F,0xF270,0xF271,0xF272,0xF273,0xF274,0xF275,
-0xF276,0xF277,0xF278,0xF279,0xF27A,0xF27B,0xF27C,0xF27D,
-0xF27E,0xF280,0xF281,0xF282,0xF283,0xF284,0xF285,0xF286,
-0xF287,0xF288,0xF289,0xF28A,0xF28B,0xF28C,0xF28D,0xF28E,
-0xF28F,0xF290,0xF291,0xF292,0xF293,0xF294,0xF295,0xF296,
-0xF297,0xF298,0xF299,0xF29A,0xF29B,0xF29C,0xF29D,0xF29E,
-0xF29F,0xF2A0,0xF340,0xF341,0xF342,0xF343,0xF344,0xF345,
-0xF346,0xF347,0xF348,0xF349,0xF34A,0xF34B,0xF34C,0xF34D,
-0xF34E,0xF34F,0xF350,0xF351,0xC2ED,0xD4A6,0xCDD4,0xD1B1,
-0xB3DB,0xC7FD,0xF352,0xB2B5,0xC2BF,0xE6E0,0xCABB,0xE6E1,
-0xE6E2,0xBED4,0xE6E3,0xD7A4,0xCDD5,0xE6E5,0xBCDD,0xE6E4,
-0xE6E6,0xE6E7,0xC2EE,0xF353,0xBDBE,0xE6E8,0xC2E6,0xBAA7,
-0xE6E9,0xF354,0xE6EA,0xB3D2,0xD1E9,0xF355,0xF356,0xBFA5,
-0xE6EB,0xC6EF,0xE6EC,0xE6ED,0xF357,0xF358,0xE6EE,0xC6AD,
-0xE6EF,0xF359,0xC9A7,0xE6F0,0xE6F1,0xE6F2,0xE5B9,0xE6F3,
-0xE6F4,0xC2E2,0xE6F5,0xE6F6,0xD6E8,0xE6F7,0xF35A,0xE6F8,
-0xB9C7,0xF35B,0xF35C,0xF35D,0xF35E,0xF35F,0xF360,0xF361,
-0xF7BB,0xF7BA,0xF362,0xF363,0xF364,0xF365,0xF7BE,0xF7BC,
-0xBAA1,0xF366,0xF7BF,0xF367,0xF7C0,0xF368,0xF369,0xF36A,
-0xF7C2,0xF7C1,0xF7C4,0xF36B,0xF36C,0xF7C3,0xF36D,0xF36E,
-0xF36F,0xF370,0xF371,0xF7C5,0xF7C6,0xF372,0xF373,0xF374,
-0xF375,0xF7C7,0xF376,0xCBE8,0xF377,0xF378,0xF379,0xF37A,
-0xB8DF,0xF37B,0xF37C,0xF37D,0xF37E,0xF380,0xF381,0xF7D4,
-0xF382,0xF7D5,0xF383,0xF384,0xF385,0xF386,0xF7D6,0xF387,
-0xF388,0xF389,0xF38A,0xF7D8,0xF38B,0xF7DA,0xF38C,0xF7D7,
-0xF38D,0xF38E,0xF38F,0xF390,0xF391,0xF392,0xF393,0xF394,
-0xF395,0xF7DB,0xF396,0xF7D9,0xF397,0xF398,0xF399,0xF39A,
-0xF39B,0xF39C,0xF39D,0xD7D7,0xF39E,0xF39F,0xF3A0,0xF440,
-0xF7DC,0xF441,0xF442,0xF443,0xF444,0xF445,0xF446,0xF7DD,
-0xF447,0xF448,0xF449,0xF7DE,0xF44A,0xF44B,0xF44C,0xF44D,
-0xF44E,0xF44F,0xF450,0xF451,0xF452,0xF453,0xF454,0xF7DF,
-0xF455,0xF456,0xF457,0xF7E0,0xF458,0xF459,0xF45A,0xF45B,
-0xF45C,0xF45D,0xF45E,0xF45F,0xF460,0xF461,0xF462,0xDBCB,
-0xF463,0xF464,0xD8AA,0xF465,0xF466,0xF467,0xF468,0xF469,
-0xF46A,0xF46B,0xF46C,0xE5F7,0xB9ED,0xF46D,0xF46E,0xF46F,
-0xF470,0xBFFD,0xBBEA,0xF7C9,0xC6C7,0xF7C8,0xF471,0xF7CA,
-0xF7CC,0xF7CB,0xF472,0xF473,0xF474,0xF7CD,0xF475,0xCEBA,
-0xF476,0xF7CE,0xF477,0xF478,0xC4A7,0xF479,0xF47A,0xF47B,
-0xF47C,0xF47D,0xF47E,0xF480,0xF481,0xF482,0xF483,0xF484,
-0xF485,0xF486,0xF487,0xF488,0xF489,0xF48A,0xF48B,0xF48C,
-0xF48D,0xF48E,0xF48F,0xF490,0xF491,0xF492,0xF493,0xF494,
-0xF495,0xF496,0xF497,0xF498,0xF499,0xF49A,0xF49B,0xF49C,
-0xF49D,0xF49E,0xF49F,0xF4A0,0xF540,0xF541,0xF542,0xF543,
-0xF544,0xF545,0xF546,0xF547,0xF548,0xF549,0xF54A,0xF54B,
-0xF54C,0xF54D,0xF54E,0xF54F,0xF550,0xF551,0xF552,0xF553,
-0xF554,0xF555,0xF556,0xF557,0xF558,0xF559,0xF55A,0xF55B,
-0xF55C,0xF55D,0xF55E,0xF55F,0xF560,0xF561,0xF562,0xF563,
-0xF564,0xF565,0xF566,0xF567,0xF568,0xF569,0xF56A,0xF56B,
-0xF56C,0xF56D,0xF56E,0xF56F,0xF570,0xF571,0xF572,0xF573,
-0xF574,0xF575,0xF576,0xF577,0xF578,0xF579,0xF57A,0xF57B,
-0xF57C,0xF57D,0xF57E,0xF580,0xF581,0xF582,0xF583,0xF584,
-0xF585,0xF586,0xF587,0xF588,0xF589,0xF58A,0xF58B,0xF58C,
-0xF58D,0xF58E,0xF58F,0xF590,0xF591,0xF592,0xF593,0xF594,
-0xF595,0xF596,0xF597,0xF598,0xF599,0xF59A,0xF59B,0xF59C,
-0xF59D,0xF59E,0xF59F,0xF5A0,0xF640,0xF641,0xF642,0xF643,
-0xF644,0xF645,0xF646,0xF647,0xF648,0xF649,0xF64A,0xF64B,
-0xF64C,0xF64D,0xF64E,0xF64F,0xF650,0xF651,0xF652,0xF653,
-0xF654,0xF655,0xF656,0xF657,0xF658,0xF659,0xF65A,0xF65B,
-0xF65C,0xF65D,0xF65E,0xF65F,0xF660,0xF661,0xF662,0xF663,
-0xF664,0xF665,0xF666,0xF667,0xF668,0xF669,0xF66A,0xF66B,
-0xF66C,0xF66D,0xF66E,0xF66F,0xF670,0xF671,0xF672,0xF673,
-0xF674,0xF675,0xF676,0xF677,0xF678,0xF679,0xF67A,0xF67B,
-0xF67C,0xF67D,0xF67E,0xF680,0xF681,0xF682,0xF683,0xF684,
-0xF685,0xF686,0xF687,0xF688,0xF689,0xF68A,0xF68B,0xF68C,
-0xF68D,0xF68E,0xF68F,0xF690,0xF691,0xF692,0xF693,0xF694,
-0xF695,0xF696,0xF697,0xF698,0xF699,0xF69A,0xF69B,0xF69C,
-0xF69D,0xF69E,0xF69F,0xF6A0,0xF740,0xF741,0xF742,0xF743,
-0xF744,0xF745,0xF746,0xF747,0xF748,0xF749,0xF74A,0xF74B,
-0xF74C,0xF74D,0xF74E,0xF74F,0xF750,0xF751,0xF752,0xF753,
-0xF754,0xF755,0xF756,0xF757,0xF758,0xF759,0xF75A,0xF75B,
-0xF75C,0xF75D,0xF75E,0xF75F,0xF760,0xF761,0xF762,0xF763,
-0xF764,0xF765,0xF766,0xF767,0xF768,0xF769,0xF76A,0xF76B,
-0xF76C,0xF76D,0xF76E,0xF76F,0xF770,0xF771,0xF772,0xF773,
-0xF774,0xF775,0xF776,0xF777,0xF778,0xF779,0xF77A,0xF77B,
-0xF77C,0xF77D,0xF77E,0xF780,0xD3E3,0xF781,0xF782,0xF6CF,
-0xF783,0xC2B3,0xF6D0,0xF784,0xF785,0xF6D1,0xF6D2,0xF6D3,
-0xF6D4,0xF786,0xF787,0xF6D6,0xF788,0xB1AB,0xF6D7,0xF789,
-0xF6D8,0xF6D9,0xF6DA,0xF78A,0xF6DB,0xF6DC,0xF78B,0xF78C,
-0xF78D,0xF78E,0xF6DD,0xF6DE,0xCFCA,0xF78F,0xF6DF,0xF6E0,
-0xF6E1,0xF6E2,0xF6E3,0xF6E4,0xC0F0,0xF6E5,0xF6E6,0xF6E7,
-0xF6E8,0xF6E9,0xF790,0xF6EA,0xF791,0xF6EB,0xF6EC,0xF792,
-0xF6ED,0xF6EE,0xF6EF,0xF6F0,0xF6F1,0xF6F2,0xF6F3,0xF6F4,
-0xBEA8,0xF793,0xF6F5,0xF6F6,0xF6F7,0xF6F8,0xF794,0xF795,
-0xF796,0xF797,0xF798,0xC8FA,0xF6F9,0xF6FA,0xF6FB,0xF6FC,
-0xF799,0xF79A,0xF6FD,0xF6FE,0xF7A1,0xF7A2,0xF7A3,0xF7A4,
-0xF7A5,0xF79B,0xF79C,0xF7A6,0xF7A7,0xF7A8,0xB1EE,0xF7A9,
-0xF7AA,0xF7AB,0xF79D,0xF79E,0xF7AC,0xF7AD,0xC1DB,0xF7AE,
-0xF79F,0xF7A0,0xF7AF,0xF840,0xF841,0xF842,0xF843,0xF844,
-0xF845,0xF846,0xF847,0xF848,0xF849,0xF84A,0xF84B,0xF84C,
-0xF84D,0xF84E,0xF84F,0xF850,0xF851,0xF852,0xF853,0xF854,
-0xF855,0xF856,0xF857,0xF858,0xF859,0xF85A,0xF85B,0xF85C,
-0xF85D,0xF85E,0xF85F,0xF860,0xF861,0xF862,0xF863,0xF864,
-0xF865,0xF866,0xF867,0xF868,0xF869,0xF86A,0xF86B,0xF86C,
-0xF86D,0xF86E,0xF86F,0xF870,0xF871,0xF872,0xF873,0xF874,
-0xF875,0xF876,0xF877,0xF878,0xF879,0xF87A,0xF87B,0xF87C,
-0xF87D,0xF87E,0xF880,0xF881,0xF882,0xF883,0xF884,0xF885,
-0xF886,0xF887,0xF888,0xF889,0xF88A,0xF88B,0xF88C,0xF88D,
-0xF88E,0xF88F,0xF890,0xF891,0xF892,0xF893,0xF894,0xF895,
-0xF896,0xF897,0xF898,0xF899,0xF89A,0xF89B,0xF89C,0xF89D,
-0xF89E,0xF89F,0xF8A0,0xF940,0xF941,0xF942,0xF943,0xF944,
-0xF945,0xF946,0xF947,0xF948,0xF949,0xF94A,0xF94B,0xF94C,
-0xF94D,0xF94E,0xF94F,0xF950,0xF951,0xF952,0xF953,0xF954,
-0xF955,0xF956,0xF957,0xF958,0xF959,0xF95A,0xF95B,0xF95C,
-0xF95D,0xF95E,0xF95F,0xF960,0xF961,0xF962,0xF963,0xF964,
-0xF965,0xF966,0xF967,0xF968,0xF969,0xF96A,0xF96B,0xF96C,
-0xF96D,0xF96E,0xF96F,0xF970,0xF971,0xF972,0xF973,0xF974,
-0xF975,0xF976,0xF977,0xF978,0xF979,0xF97A,0xF97B,0xF97C,
-0xF97D,0xF97E,0xF980,0xF981,0xF982,0xF983,0xF984,0xF985,
-0xF986,0xF987,0xF988,0xF989,0xF98A,0xF98B,0xF98C,0xF98D,
-0xF98E,0xF98F,0xF990,0xF991,0xF992,0xF993,0xF994,0xF995,
-0xF996,0xF997,0xF998,0xF999,0xF99A,0xF99B,0xF99C,0xF99D,
-0xF99E,0xF99F,0xF9A0,0xFA40,0xFA41,0xFA42,0xFA43,0xFA44,
-0xFA45,0xFA46,0xFA47,0xFA48,0xFA49,0xFA4A,0xFA4B,0xFA4C,
-0xFA4D,0xFA4E,0xFA4F,0xFA50,0xFA51,0xFA52,0xFA53,0xFA54,
-0xFA55,0xFA56,0xFA57,0xFA58,0xFA59,0xFA5A,0xFA5B,0xFA5C,
-0xFA5D,0xFA5E,0xFA5F,0xFA60,0xFA61,0xFA62,0xFA63,0xFA64,
-0xFA65,0xFA66,0xFA67,0xFA68,0xFA69,0xFA6A,0xFA6B,0xFA6C,
-0xFA6D,0xFA6E,0xFA6F,0xFA70,0xFA71,0xFA72,0xFA73,0xFA74,
-0xFA75,0xFA76,0xFA77,0xFA78,0xFA79,0xFA7A,0xFA7B,0xFA7C,
-0xFA7D,0xFA7E,0xFA80,0xFA81,0xFA82,0xFA83,0xFA84,0xFA85,
-0xFA86,0xFA87,0xFA88,0xFA89,0xFA8A,0xFA8B,0xFA8C,0xFA8D,
-0xFA8E,0xFA8F,0xFA90,0xFA91,0xFA92,0xFA93,0xFA94,0xFA95,
-0xFA96,0xFA97,0xFA98,0xFA99,0xFA9A,0xFA9B,0xFA9C,0xFA9D,
-0xFA9E,0xFA9F,0xFAA0,0xFB40,0xFB41,0xFB42,0xFB43,0xFB44,
-0xFB45,0xFB46,0xFB47,0xFB48,0xFB49,0xFB4A,0xFB4B,0xFB4C,
-0xFB4D,0xFB4E,0xFB4F,0xFB50,0xFB51,0xFB52,0xFB53,0xFB54,
-0xFB55,0xFB56,0xFB57,0xFB58,0xFB59,0xFB5A,0xFB5B,0xC4F1,
-0xF0AF,0xBCA6,0xF0B0,0xC3F9,0xFB5C,0xC5B8,0xD1BB,0xFB5D,
-0xF0B1,0xF0B2,0xF0B3,0xF0B4,0xF0B5,0xD1BC,0xFB5E,0xD1EC,
-0xFB5F,0xF0B7,0xF0B6,0xD4A7,0xFB60,0xCDD2,0xF0B8,0xF0BA,
-0xF0B9,0xF0BB,0xF0BC,0xFB61,0xFB62,0xB8EB,0xF0BD,0xBAE8,
-0xFB63,0xF0BE,0xF0BF,0xBEE9,0xF0C0,0xB6EC,0xF0C1,0xF0C2,
-0xF0C3,0xF0C4,0xC8B5,0xF0C5,0xF0C6,0xFB64,0xF0C7,0xC5F4,
-0xFB65,0xF0C8,0xFB66,0xFB67,0xFB68,0xF0C9,0xFB69,0xF0CA,
-0xF7BD,0xFB6A,0xF0CB,0xF0CC,0xF0CD,0xFB6B,0xF0CE,0xFB6C,
-0xFB6D,0xFB6E,0xFB6F,0xF0CF,0xBAD7,0xFB70,0xF0D0,0xF0D1,
-0xF0D2,0xF0D3,0xF0D4,0xF0D5,0xF0D6,0xF0D8,0xFB71,0xFB72,
-0xD3A5,0xF0D7,0xFB73,0xF0D9,0xFB74,0xFB75,0xFB76,0xFB77,
-0xFB78,0xFB79,0xFB7A,0xFB7B,0xFB7C,0xFB7D,0xF5BA,0xC2B9,
-0xFB7E,0xFB80,0xF7E4,0xFB81,0xFB82,0xFB83,0xFB84,0xF7E5,
-0xF7E6,0xFB85,0xFB86,0xF7E7,0xFB87,0xFB88,0xFB89,0xFB8A,
-0xFB8B,0xFB8C,0xF7E8,0xC2B4,0xFB8D,0xFB8E,0xFB8F,0xFB90,
-0xFB91,0xFB92,0xFB93,0xFB94,0xFB95,0xF7EA,0xFB96,0xF7EB,
-0xFB97,0xFB98,0xFB99,0xFB9A,0xFB9B,0xFB9C,0xC2F3,0xFB9D,
-0xFB9E,0xFB9F,0xFBA0,0xFC40,0xFC41,0xFC42,0xFC43,0xFC44,
-0xFC45,0xFC46,0xFC47,0xFC48,0xF4F0,0xFC49,0xFC4A,0xFC4B,
-0xF4EF,0xFC4C,0xFC4D,0xC2E9,0xFC4E,0xF7E1,0xF7E2,0xFC4F,
-0xFC50,0xFC51,0xFC52,0xFC53,0xBBC6,0xFC54,0xFC55,0xFC56,
-0xFC57,0xD9E4,0xFC58,0xFC59,0xFC5A,0xCAF2,0xC0E8,0xF0A4,
-0xFC5B,0xBADA,0xFC5C,0xFC5D,0xC7AD,0xFC5E,0xFC5F,0xFC60,
-0xC4AC,0xFC61,0xFC62,0xF7EC,0xF7ED,0xF7EE,0xFC63,0xF7F0,
-0xF7EF,0xFC64,0xF7F1,0xFC65,0xFC66,0xF7F4,0xFC67,0xF7F3,
-0xFC68,0xF7F2,0xF7F5,0xFC69,0xFC6A,0xFC6B,0xFC6C,0xF7F6,
-0xFC6D,0xFC6E,0xFC6F,0xFC70,0xFC71,0xFC72,0xFC73,0xFC74,
-0xFC75,0xEDE9,0xFC76,0xEDEA,0xEDEB,0xFC77,0xF6BC,0xFC78,
-0xFC79,0xFC7A,0xFC7B,0xFC7C,0xFC7D,0xFC7E,0xFC80,0xFC81,
-0xFC82,0xFC83,0xFC84,0xF6BD,0xFC85,0xF6BE,0xB6A6,0xFC86,
-0xD8BE,0xFC87,0xFC88,0xB9C4,0xFC89,0xFC8A,0xFC8B,0xD8BB,
-0xFC8C,0xDCB1,0xFC8D,0xFC8E,0xFC8F,0xFC90,0xFC91,0xFC92,
-0xCAF3,0xFC93,0xF7F7,0xFC94,0xFC95,0xFC96,0xFC97,0xFC98,
-0xFC99,0xFC9A,0xFC9B,0xFC9C,0xF7F8,0xFC9D,0xFC9E,0xF7F9,
-0xFC9F,0xFCA0,0xFD40,0xFD41,0xFD42,0xFD43,0xFD44,0xF7FB,
-0xFD45,0xF7FA,0xFD46,0xB1C7,0xFD47,0xF7FC,0xF7FD,0xFD48,
-0xFD49,0xFD4A,0xFD4B,0xFD4C,0xF7FE,0xFD4D,0xFD4E,0xFD4F,
-0xFD50,0xFD51,0xFD52,0xFD53,0xFD54,0xFD55,0xFD56,0xFD57,
-0xC6EB,0xECB4,0xFD58,0xFD59,0xFD5A,0xFD5B,0xFD5C,0xFD5D,
-0xFD5E,0xFD5F,0xFD60,0xFD61,0xFD62,0xFD63,0xFD64,0xFD65,
-0xFD66,0xFD67,0xFD68,0xFD69,0xFD6A,0xFD6B,0xFD6C,0xFD6D,
-0xFD6E,0xFD6F,0xFD70,0xFD71,0xFD72,0xFD73,0xFD74,0xFD75,
-0xFD76,0xFD77,0xFD78,0xFD79,0xFD7A,0xFD7B,0xFD7C,0xFD7D,
-0xFD7E,0xFD80,0xFD81,0xFD82,0xFD83,0xFD84,0xFD85,0xB3DD,
-0xF6B3,0xFD86,0xFD87,0xF6B4,0xC1E4,0xF6B5,0xF6B6,0xF6B7,
-0xF6B8,0xF6B9,0xF6BA,0xC8A3,0xF6BB,0xFD88,0xFD89,0xFD8A,
-0xFD8B,0xFD8C,0xFD8D,0xFD8E,0xFD8F,0xFD90,0xFD91,0xFD92,
-0xFD93,0xC1FA,0xB9A8,0xEDE8,0xFD94,0xFD95,0xFD96,0xB9EA,
-0xD9DF,0xFD97,0xFD98,0xFD99,0xFD9A,0xFD9B};
-
-/* page 7 0xF92C-0xFA29 */
-static uint16 tab_uni_gbk7[]={
-0xFD9C, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFD9D, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xFD9E, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,0xFD9F, 0, 0, 0, 0,
- 0, 0, 0, 0, 0,0xFDA0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xFE40,0xFE41,0xFE42,0xFE43, 0,0xFE44, 0,0xFE45,
-0xFE46, 0, 0, 0,0xFE47, 0, 0, 0,
- 0, 0, 0,0xFE48,0xFE49,0xFE4A, 0,0xFE4B,
-0xFE4C, 0, 0,0xFE4D,0xFE4E,0xFE4F};
-
-/* page 8 0xFE30-0xFFE5 */
-static uint16 tab_uni_gbk8[]={
-0xA955,0xA6F2, 0,0xA6F4,0xA6F5,0xA6E0,0xA6E1,0xA6F0,
-0xA6F1,0xA6E2,0xA6E3,0xA6EE,0xA6EF,0xA6E6,0xA6E7,0xA6E4,
-0xA6E5,0xA6E8,0xA6E9,0xA6EA,0xA6EB, 0, 0, 0,
- 0,0xA968,0xA969,0xA96A,0xA96B,0xA96C,0xA96D,0xA96E,
-0xA96F,0xA970,0xA971, 0,0xA972,0xA973,0xA974,0xA975,
- 0,0xA976,0xA977,0xA978,0xA979,0xA97A,0xA97B,0xA97C,
-0xA97D,0xA97E,0xA980,0xA981,0xA982,0xA983,0xA984, 0,
-0xA985,0xA986,0xA987,0xA988, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0,0xA3A1,0xA3A2,0xA3A3,0xA1E7,0xA3A5,0xA3A6,0xA3A7,
-0xA3A8,0xA3A9,0xA3AA,0xA3AB,0xA3AC,0xA3AD,0xA3AE,0xA3AF,
-0xA3B0,0xA3B1,0xA3B2,0xA3B3,0xA3B4,0xA3B5,0xA3B6,0xA3B7,
-0xA3B8,0xA3B9,0xA3BA,0xA3BB,0xA3BC,0xA3BD,0xA3BE,0xA3BF,
-0xA3C0,0xA3C1,0xA3C2,0xA3C3,0xA3C4,0xA3C5,0xA3C6,0xA3C7,
-0xA3C8,0xA3C9,0xA3CA,0xA3CB,0xA3CC,0xA3CD,0xA3CE,0xA3CF,
-0xA3D0,0xA3D1,0xA3D2,0xA3D3,0xA3D4,0xA3D5,0xA3D6,0xA3D7,
-0xA3D8,0xA3D9,0xA3DA,0xA3DB,0xA3DC,0xA3DD,0xA3DE,0xA3DF,
-0xA3E0,0xA3E1,0xA3E2,0xA3E3,0xA3E4,0xA3E5,0xA3E6,0xA3E7,
-0xA3E8,0xA3E9,0xA3EA,0xA3EB,0xA3EC,0xA3ED,0xA3EE,0xA3EF,
-0xA3F0,0xA3F1,0xA3F2,0xA3F3,0xA3F4,0xA3F5,0xA3F6,0xA3F7,
-0xA3F8,0xA3F9,0xA3FA,0xA3FB,0xA3FC,0xA3FD,0xA1AB, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
-0xA1E9,0xA1EA,0xA956,0xA3FE,0xA957,0xA3A4};
-
-static int func_uni_gbk_onechar(int code){
- if ((code>=0x00A4)&&(code<=0x0451))
- return(tab_uni_gbk0[code-0x00A4]);
- if ((code>=0x2010)&&(code<=0x2312))
- return(tab_uni_gbk1[code-0x2010]);
- if ((code>=0x2460)&&(code<=0x2642))
- return(tab_uni_gbk2[code-0x2460]);
- if ((code>=0x3000)&&(code<=0x3129))
- return(tab_uni_gbk3[code-0x3000]);
- if ((code>=0x3220)&&(code<=0x32A3))
- return(tab_uni_gbk4[code-0x3220]);
- if ((code>=0x338E)&&(code<=0x33D5))
- return(tab_uni_gbk5[code-0x338E]);
- if ((code>=0x4E00)&&(code<=0x9FA5))
- return(tab_uni_gbk6[code-0x4E00]);
- if ((code>=0xF92C)&&(code<=0xFA29))
- return(tab_uni_gbk7[code-0xF92C]);
- if ((code>=0xFE30)&&(code<=0xFFE5))
- return(tab_uni_gbk8[code-0xFE30]);
- return(0);
-}
-
-static int
-my_wc_mb_gbk(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- int code;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if ((uint) wc < 0x80)
- {
- s[0]= (uchar) wc;
- return 1;
- }
-
- if (!(code=func_uni_gbk_onechar(wc)))
- return MY_CS_ILUNI;
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- s[0]=code>>8;
- s[1]=code&0xFF;
- return 2;
-}
-
-static int
-my_mb_wc_gbk(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e)
-{
- int hi;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- hi=s[0];
-
- if (hi<0x80)
- {
- pwc[0]=hi;
- return 1;
- }
-
- if (s+2>e)
- return MY_CS_TOOSMALL2;
-
- if (!(pwc[0]=func_gbk_uni_onechar( (hi<<8) + s[1])))
- return -2;
-
- return 2;
-
-}
-
-
-/*
- Returns well formed length of a GBK string.
-*/
-static
-size_t my_well_formed_len_gbk(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
-
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if ((b < emb) && isgbkcode((uchar)*b, (uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_gbk,
- my_strnncollsp_gbk,
- my_strnxfrm_gbk,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_mb,
- my_strcasecmp_mb,
- my_instr_mb,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- ismbchar_gbk,
- mbcharlen_gbk,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_gbk,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_gbk,
- my_wc_mb_gbk,
- my_mb_ctype_mb,
- my_caseup_str_mb,
- my_casedn_str_mb,
- my_caseup_mb,
- my_casedn_mb,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_gbk_chinese_ci=
-{
- 28,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
- "gbk", /* cs name */
- "gbk_chinese_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_gbk,
- to_lower_gbk,
- to_upper_gbk,
- sort_order_gbk,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_gbk, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xA967, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_ci_handler
-};
-
-CHARSET_INFO my_charset_gbk_bin=
-{
- 87,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "gbk", /* cs name */
- "gbk_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_gbk,
- to_lower_gbk,
- to_upper_gbk,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_caseinfo_gbk, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFEFE, /* max_sort_char */
- ' ', /* pad char */
- 1, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_mb_bin_handler
-};
-
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-latin1.c b/dep/mysqllite/strings/ctype-latin1.c
deleted file mode 100644
index dbd91c09637..00000000000
--- a/dep/mysqllite/strings/ctype-latin1.c
+++ /dev/null
@@ -1,782 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-static uchar ctype_latin1[] = {
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
- 16, 0, 16, 2, 16, 16, 16, 16, 16, 16, 1, 16, 1, 0, 1, 0,
- 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 16, 2, 0, 2, 1,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 16, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2
-};
-
-static uchar to_lower_latin1[] = {
- 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, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,215,248,249,250,251,252,253,254,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-static uchar to_upper_latin1[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,247,216,217,218,219,220,221,222,255
-};
-
-static uchar sort_order_latin1[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 65, 65, 65, 65, 92, 91, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79, 93,215,216, 85, 85, 85, 89, 89,222,223,
- 65, 65, 65, 65, 92, 91, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79, 93,247,216, 85, 85, 85, 89, 89,222,255
-};
-
-/*
- WL#1494 notes:
-
- We'll use cp1252 instead of iso-8859-1.
- cp1252 contains printable characters in the range 0x80-0x9F.
- In ISO 8859-1, these code points have no associated printable
- characters. Therefore, by converting from CP1252 to ISO 8859-1,
- one would lose the euro (for instance). Since most people are
- unaware of the difference, and since we don't really want a
- "Windows ANSI" to differ from a "Unix ANSI", we will:
-
- - continue to pretend the latin1 character set is ISO 8859-1
- - actually allow the storage of euro etc. so it's actually cp1252
-
- Also we'll map these five undefined cp1252 character:
- 0x81, 0x8D, 0x8F, 0x90, 0x9D
- into corresponding control characters:
- U+0081, U+008D, U+008F, U+0090, U+009D.
- like ISO-8859-1 does. Otherwise, loading "mysqldump"
- output doesn't reproduce these undefined characters.
-*/
-
-unsigned short cs_to_uni[256]={
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC,0x0081,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021,
-0x02C6,0x2030,0x0160,0x2039,0x0152,0x008D,0x017D,0x008F,
-0x0090,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
-0x02DC,0x2122,0x0161,0x203A,0x0153,0x009D,0x017E,0x0178,
-0x00A0,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,0x00DD,0x00DE,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,0x00FD,0x00FE,0x00FF
-};
-uchar pl00[256]={
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
-0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
-0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x7F,
-0x00,0x81,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x8D,0x00,0x8F,
-0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x9D,0x00,0x00,
-0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
-0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
-0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,
-0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
-0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,
-0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
-0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,
-0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
-0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,
-0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
-0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,
-0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
-};
-uchar pl01[256]={
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x8C,0x9C,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x8A,0x9A,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x9F,0x00,0x00,0x00,0x00,0x8E,0x9E,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-uchar pl02[256]={
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x98,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-uchar pl20[256]={
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x96,0x97,0x00,0x00,0x00,
-0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,
-0x86,0x87,0x95,0x00,0x00,0x00,0x85,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x89,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-uchar pl21[256]={
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x99,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
-};
-uchar *uni_to_cs[256]={
-pl00,pl01,pl02,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-pl20,pl21,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL
-};
-
-static
-int my_mb_wc_latin1(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *wc,
- const uchar *str,
- const uchar *end __attribute__((unused)))
-{
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- *wc=cs_to_uni[*str];
- return (!wc[0] && str[0]) ? -1 : 1;
-}
-
-static
-int my_wc_mb_latin1(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc,
- uchar *str,
- uchar *end __attribute__((unused)))
-{
- uchar *pl;
-
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- pl= uni_to_cs[(wc>>8) & 0xFF];
- str[0]= pl ? pl[wc & 0xFF] : '\0';
- return (!str[0] && wc) ? MY_CS_ILUNI : 1;
-}
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- NULL,
- my_mbcharlen_8bit,
- my_numchars_8bit,
- my_charpos_8bit,
- my_well_formed_len_8bit,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_latin1,
- my_wc_mb_latin1,
- my_mb_ctype_8bit,
- my_caseup_str_8bit,
- my_casedn_str_8bit,
- my_caseup_8bit,
- my_casedn_8bit,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-CHARSET_INFO my_charset_latin1=
-{
- 8,0,0, /* number */
- MY_CS_COMPILED | MY_CS_PRIMARY, /* state */
- "latin1", /* cs name */
- "latin1_swedish_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1,
- to_lower_latin1,
- to_upper_latin1,
- sort_order_latin1,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- cs_to_uni, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_8bit_simple_ci_handler
-};
-
-
-
-
-/*
- * This file is the latin1 character set with German sorting
- *
- * The modern sort order is used, where:
- *
- * 'ä' -> "ae"
- * 'ö' -> "oe"
- * 'ü' -> "ue"
- * 'ß' -> "ss"
- */
-
-
-/*
- * This is a simple latin1 mapping table, which maps all accented
- * characters to their non-accented equivalents. Note: in this
- * table, 'ä' is mapped to 'A', 'ÿ' is mapped to 'Y', etc. - all
- * accented characters except the following are treated the same way.
- * Ü, ü, Ö, ö, Ä, ä
- */
-
-static uchar sort_order_latin1_de[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 65, 65, 65, 65,196, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79,214,215,216, 85, 85, 85,220, 89,222,223,
- 65, 65, 65, 65,196, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79,214,247,216, 85, 85, 85,220, 89,222, 89
-};
-
-
-/*
- same as sort_order_latin_de, but maps ALL accented chars to unaccented ones
-*/
-
-uchar combo1map[]={
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 65, 65, 65, 65, 65, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79, 79,215,216, 85, 85, 85, 85, 89,222, 83,
- 65, 65, 65, 65, 65, 65, 92, 67, 69, 69, 69, 69, 73, 73, 73, 73,
- 68, 78, 79, 79, 79, 79, 79,247,216, 85, 85, 85, 85, 89,222, 89
-};
-
-uchar combo2map[]={
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0,69, 0, 0,83, 0, 0, 0, 0,69, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,69, 0, 0, 0, 0, 0,69, 0, 0, 0, 0
-};
-
-
-/*
- Some notes about the following comparison rules:
- By definition, my_strnncoll_latin_de must works exactly as if had called
- my_strnxfrm_latin_de() on both strings and compared the result strings.
-
- This means that:
- Ä must also matches ÁE and Aè, because my_strxn_frm_latin_de() will convert
- both to AE.
-
- The other option would be to not do any accent removal in
- sort_order_latin_de[] at all
-*/
-
-
-static int my_strnncoll_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- uchar a_char, a_extend= 0, b_char, b_extend= 0;
-
- while ((a < a_end || a_extend) && (b < b_end || b_extend))
- {
- if (a_extend)
- {
- a_char=a_extend; a_extend=0;
- }
- else
- {
- a_extend=combo2map[*a];
- a_char=combo1map[*a++];
- }
- if (b_extend)
- {
- b_char=b_extend; b_extend=0;
- }
- else
- {
- b_extend=combo2map[*b];
- b_char=combo1map[*b++];
- }
- if (a_char != b_char)
- return (int) a_char - (int) b_char;
- }
- /*
- A simple test of string lengths won't work -- we test to see
- which string ran out first
- */
- return ((a < a_end || a_extend) ? (b_is_prefix ? 0 : 1) :
- (b < b_end || b_extend) ? -1 : 0);
-}
-
-
-static int my_strnncollsp_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- const uchar *a_end= a + a_length, *b_end= b + b_length;
- uchar a_char, a_extend= 0, b_char, b_extend= 0;
- int res;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- while ((a < a_end || a_extend) && (b < b_end || b_extend))
- {
- if (a_extend)
- {
- a_char=a_extend;
- a_extend= 0;
- }
- else
- {
- a_extend= combo2map[*a];
- a_char= combo1map[*a++];
- }
- if (b_extend)
- {
- b_char= b_extend;
- b_extend= 0;
- }
- else
- {
- b_extend= combo2map[*b];
- b_char= combo1map[*b++];
- }
- if (a_char != b_char)
- return (int) a_char - (int) b_char;
- }
- /* Check if double character last */
- if (a_extend)
- return 1;
- if (b_extend)
- return -1;
-
- res= 0;
- if (a != a_end || b != b_end)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a == a_end)
- {
- /* put shorter key in a */
- a_end= b_end;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for ( ; a < a_end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t my_strnxfrm_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- const uchar *de = dest + len;
- const uchar *se = src + srclen;
- for ( ; src < se && dest < de ; src++)
- {
- uchar chr=combo1map[*src];
- *dest++=chr;
- if ((chr=combo2map[*src]) && dest < de)
- *dest++=chr;
- }
- if (dest < de)
- bfill(dest, de - dest, ' ');
- return (int) len;
-}
-
-
-void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,
- ulong *nr1, ulong *nr2)
-{
- const uchar *end;
- /*
- Remove end space. We have to do this to be able to compare
- 'AE' and 'Ä' as identical
- */
- end= skip_trailing_space(key, len);
-
- for (; key < end ; key++)
- {
- uint X= (uint) combo1map[(uint) *key];
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8);
- nr2[0]+=3;
- if ((X= combo2map[*key]))
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8);
- nr2[0]+=3;
- }
- }
-}
-
-
-static MY_COLLATION_HANDLER my_collation_german2_ci_handler=
-{
- NULL, /* init */
- my_strnncoll_latin1_de,
- my_strnncollsp_latin1_de,
- my_strnxfrm_latin1_de,
- my_strnxfrmlen_simple,
- my_like_range_simple,
- my_wildcmp_8bit,
- my_strcasecmp_8bit,
- my_instr_simple,
- my_hash_sort_latin1_de,
- my_propagate_complex
-};
-
-
-CHARSET_INFO my_charset_latin1_german2_ci=
-{
- 31,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
- "latin1", /* cs name */
- "latin1_german2_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1,
- to_lower_latin1,
- to_upper_latin1,
- sort_order_latin1_de,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- cs_to_uni, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 2, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 247, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_german2_ci_handler
-};
-
-
-CHARSET_INFO my_charset_latin1_bin=
-{
- 47,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "latin1", /* cs name */
- "latin1_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_latin1,
- to_lower_latin1,
- to_upper_latin1,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- cs_to_uni, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_8bit_bin_handler
-};
-
diff --git a/dep/mysqllite/strings/ctype-mb.c b/dep/mysqllite/strings/ctype-mb.c
deleted file mode 100644
index 8b985b7405b..00000000000
--- a/dep/mysqllite/strings/ctype-mb.c
+++ /dev/null
@@ -1,1369 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include "m_ctype.h"
-#include "m_string.h"
-
-#ifdef USE_MB
-
-
-size_t my_caseup_str_mb(CHARSET_INFO * cs, char *str)
-{
- register uint32 l;
- register uchar *map= cs->to_upper;
- char *str_orig= str;
-
- while (*str)
- {
- /* Pointing after the '\0' is safe here. */
- if ((l= my_ismbchar(cs, str, str + cs->mbmaxlen)))
- str+= l;
- else
- {
- *str= (char) map[(uchar)*str];
- str++;
- }
- }
- return (size_t) (str - str_orig);
-}
-
-
-size_t my_casedn_str_mb(CHARSET_INFO * cs, char *str)
-{
- register uint32 l;
- register uchar *map= cs->to_lower;
- char *str_orig= str;
-
- while (*str)
- {
- /* Pointing after the '\0' is safe here. */
- if ((l= my_ismbchar(cs, str, str + cs->mbmaxlen)))
- str+= l;
- else
- {
- *str= (char) map[(uchar)*str];
- str++;
- }
- }
- return (size_t) (str - str_orig);
-}
-
-
-static inline MY_UNICASE_INFO*
-get_case_info_for_ch(CHARSET_INFO *cs, uint page, uint offs)
-{
- MY_UNICASE_INFO *p;
- return cs->caseinfo ? ((p= cs->caseinfo[page]) ? &p[offs] : NULL) : NULL;
-}
-
-
-/*
- For character sets which don't change octet length in case conversion.
-*/
-size_t my_caseup_mb(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- register uint32 l;
- register char *srcend= src + srclen;
- register uchar *map= cs->to_upper;
-
- DBUG_ASSERT(cs->caseup_multiply == 1);
- DBUG_ASSERT(src == dst && srclen == dstlen);
- DBUG_ASSERT(cs->mbmaxlen == 2);
-
- while (src < srcend)
- {
- if ((l=my_ismbchar(cs, src, srcend)))
- {
- MY_UNICASE_INFO *ch;
- if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
- {
- *src++= ch->toupper >> 8;
- *src++= ch->toupper & 0xFF;
- }
- else
- src+= l;
- }
- else
- {
- *src=(char) map[(uchar) *src];
- src++;
- }
- }
- return srclen;
-}
-
-
-size_t my_casedn_mb(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- register uint32 l;
- register char *srcend= src + srclen;
- register uchar *map=cs->to_lower;
-
- DBUG_ASSERT(cs->casedn_multiply == 1);
- DBUG_ASSERT(src == dst && srclen == dstlen);
- DBUG_ASSERT(cs->mbmaxlen == 2);
-
- while (src < srcend)
- {
- if ((l= my_ismbchar(cs, src, srcend)))
- {
- MY_UNICASE_INFO *ch;
- if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
- {
- *src++= ch->tolower >> 8;
- *src++= ch->tolower & 0xFF;
- }
- else
- src+= l;
- }
- else
- {
- *src= (char) map[(uchar)*src];
- src++;
- }
- }
- return srclen;
-}
-
-
-/*
- Case folding functions for character set
- where case conversion can change string octet length.
- For example, in EUCKR,
- _euckr 0xA9A5 == "LATIN LETTER DOTLESS I" (Turkish letter)
- is upper-cased to to
- _euckr 0x49 "LATIN CAPITAL LETTER I" ('usual' letter I)
- Length is reduced in this example from two bytes to one byte.
-*/
-static size_t
-my_casefold_mb_varlen(CHARSET_INFO *cs,
- char *src, size_t srclen,
- char *dst, size_t dstlen __attribute__((unused)),
- uchar *map,
- size_t is_upper)
-{
- char *srcend= src + srclen, *dst0= dst;
-
- DBUG_ASSERT(cs->mbmaxlen == 2);
-
- while (src < srcend)
- {
- size_t mblen= my_ismbchar(cs, src, srcend);
- if (mblen)
- {
- MY_UNICASE_INFO *ch;
- if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
- {
- int code= is_upper ? ch->toupper : ch->tolower;
- src+= 2;
- if (code > 0xFF)
- *dst++= code >> 8;
- *dst++= code & 0xFF;
- }
- else
- {
- *dst++= *src++;
- *dst++= *src++;
- }
- }
- else
- {
- *dst++= (char) map[(uchar) *src++];
- }
- }
- return (size_t) (dst - dst0);
-}
-
-
-size_t
-my_casedn_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply);
- DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
- return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_lower, 0);
-}
-
-
-size_t
-my_caseup_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply);
- DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
- return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_upper, 1);
-}
-
-
-/*
- my_strcasecmp_mb() returns 0 if strings are equal, non-zero otherwise.
- */
-
-int my_strcasecmp_mb(CHARSET_INFO * cs,const char *s, const char *t)
-{
- register uint32 l;
- register uchar *map=cs->to_upper;
-
- while (*s && *t)
- {
- /* Pointing after the '\0' is safe here. */
- if ((l=my_ismbchar(cs, s, s + cs->mbmaxlen)))
- {
- while (l--)
- if (*s++ != *t++)
- return 1;
- }
- else if (my_mbcharlen(cs, *t) > 1)
- return 1;
- else if (map[(uchar) *s++] != map[(uchar) *t++])
- return 1;
- }
- /* At least one of '*s' and '*t' is zero here. */
- return (*t != *s);
-}
-
-
-/*
-** Compare string against string with wildcard
-** 0 if matched
-** -1 if not matched with wildcard
-** 1 if matched with wildcard
-*/
-
-#define INC_PTR(cs,A,B) A+=(my_ismbchar(cs,A,B) ? my_ismbchar(cs,A,B) : 1)
-
-#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)]
-
-int my_wildcmp_mb(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- int result= -1; /* Not found, using wildcards */
-
- while (wildstr != wildend)
- {
- while (*wildstr != w_many && *wildstr != w_one)
- {
- int l;
- if (*wildstr == escape && wildstr+1 != wildend)
- wildstr++;
- if ((l = my_ismbchar(cs, wildstr, wildend)))
- {
- if (str+l > str_end || memcmp(str, wildstr, l) != 0)
- return 1;
- str += l;
- wildstr += l;
- }
- else
- if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++))
- return(1); /* No match */
- if (wildstr == wildend)
- return (str != str_end); /* Match if both are at end */
- result=1; /* Found an anchor char */
- }
- if (*wildstr == w_one)
- {
- do
- {
- if (str == str_end) /* Skip one char if possible */
- return (result);
- INC_PTR(cs,str,str_end);
- } while (++wildstr < wildend && *wildstr == w_one);
- if (wildstr == wildend)
- break;
- }
- if (*wildstr == w_many)
- { /* Found w_many */
- uchar cmp;
- const char* mb = wildstr;
- int mb_len=0;
-
- wildstr++;
- /* Remove any '%' and '_' from the wild search string */
- for (; wildstr != wildend ; wildstr++)
- {
- if (*wildstr == w_many)
- continue;
- if (*wildstr == w_one)
- {
- if (str == str_end)
- return (-1);
- INC_PTR(cs,str,str_end);
- continue;
- }
- break; /* Not a wild character */
- }
- if (wildstr == wildend)
- return(0); /* Ok if w_many is last */
- if (str == str_end)
- return -1;
-
- if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
- cmp= *++wildstr;
-
- mb=wildstr;
- mb_len= my_ismbchar(cs, wildstr, wildend);
- INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */
- cmp=likeconv(cs,cmp);
- do
- {
- for (;;)
- {
- if (str >= str_end)
- return -1;
- if (mb_len)
- {
- if (str+mb_len <= str_end && memcmp(str, mb, mb_len) == 0)
- {
- str += mb_len;
- break;
- }
- }
- else if (!my_ismbchar(cs, str, str_end) &&
- likeconv(cs,*str) == cmp)
- {
- str++;
- break;
- }
- INC_PTR(cs,str, str_end);
- }
- {
- int tmp=my_wildcmp_mb(cs,str,str_end,wildstr,wildend,escape,w_one,
- w_many);
- if (tmp <= 0)
- return (tmp);
- }
- } while (str != str_end && wildstr[0] != w_many);
- return(-1);
- }
- }
- return (str != str_end ? 1 : 0);
-}
-
-
-size_t my_numchars_mb(CHARSET_INFO *cs __attribute__((unused)),
- const char *pos, const char *end)
-{
- register size_t count= 0;
- while (pos < end)
- {
- uint mb_len;
- pos+= (mb_len= my_ismbchar(cs,pos,end)) ? mb_len : 1;
- count++;
- }
- return count;
-}
-
-
-size_t my_charpos_mb(CHARSET_INFO *cs __attribute__((unused)),
- const char *pos, const char *end, size_t length)
-{
- const char *start= pos;
-
- while (length && pos < end)
- {
- uint mb_len;
- pos+= (mb_len= my_ismbchar(cs, pos, end)) ? mb_len : 1;
- length--;
- }
- return (size_t) (length ? end+2-start : pos-start);
-}
-
-
-size_t my_well_formed_len_mb(CHARSET_INFO *cs, const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b_start= b;
- *error= 0;
- while (pos)
- {
- my_wc_t wc;
- int mb_len;
-
- if ((mb_len= cs->cset->mb_wc(cs, &wc, (uchar*) b, (uchar*) e)) <= 0)
- {
- *error= b < e ? 1 : 0;
- break;
- }
- b+= mb_len;
- pos--;
- }
- return (size_t) (b - b_start);
-}
-
-
-uint my_instr_mb(CHARSET_INFO *cs,
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch)
-{
- register const char *end, *b0;
- int res= 0;
-
- if (s_length <= b_length)
- {
- if (!s_length)
- {
- if (nmatch)
- {
- match->beg= 0;
- match->end= 0;
- match->mb_len= 0;
- }
- return 1; /* Empty string is always found */
- }
-
- b0= b;
- end= b+b_length-s_length+1;
-
- while (b < end)
- {
- int mb_len;
-
- if (!cs->coll->strnncoll(cs, (uchar*) b, s_length,
- (uchar*) s, s_length, 0))
- {
- if (nmatch)
- {
- match[0].beg= 0;
- match[0].end= (size_t) (b-b0);
- match[0].mb_len= res;
- if (nmatch > 1)
- {
- match[1].beg= match[0].end;
- match[1].end= match[0].end+s_length;
- match[1].mb_len= 0; /* Not computed */
- }
- }
- return 2;
- }
- mb_len= (mb_len= my_ismbchar(cs, b, end)) ? mb_len : 1;
- b+= mb_len;
- b_length-= mb_len;
- res++;
- }
- }
- return 0;
-}
-
-
-/* BINARY collations handlers for MB charsets */
-
-int
-my_strnncoll_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- size_t len=min(slen,tlen);
- int cmp= memcmp(s,t,len);
- return cmp ? cmp : (int) ((t_is_prefix ? len : slen) - tlen);
-}
-
-
-/*
- Compare two strings.
-
- SYNOPSIS
- my_strnncollsp_mb_bin()
- cs Chararacter set
- s String to compare
- slen Length of 's'
- t String to compare
- tlen Length of 't'
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- NOTE
- This function is used for character strings with binary collations.
- The shorter string is extended with end space to be as long as the longer
- one.
-
- RETURN
- A negative number if s < t
- A positive number if s > t
- 0 if strings are equal
-*/
-
-int
-my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- const uchar *end;
- size_t length;
- int res;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- end= a + (length= min(a_length, b_length));
- while (a < end)
- {
- if (*a++ != *b++)
- return ((int) a[-1] - (int) b[-1]);
- }
- res= 0;
- if (a_length != b_length)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put shorter key in s */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t my_strnxfrm_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- if (dest != src)
- memcpy(dest, src, min(dstlen, srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, ' ');
- return dstlen;
-}
-
-
-int
-my_strcasecmp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
- const char *s, const char *t)
-{
- return strcmp(s,t);
-}
-
-
-void
-my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2)
-{
- const uchar *pos = key;
-
- /*
- Remove trailing spaces. We have to do this to be able to compare
- 'A ' and 'A' as identical
- */
- key= skip_trailing_space(key, len);
-
- for (; pos < (uchar*) key ; pos++)
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
- }
-}
-
-
-/*
- Fill the given buffer with 'maximum character' for given charset
- SYNOPSIS
- pad_max_char()
- cs Character set
- str Start of buffer to fill
- end End of buffer to fill
-
- DESCRIPTION
- Write max key:
- - for non-Unicode character sets:
- just bfill using max_sort_char if max_sort_char is one byte.
- In case when max_sort_char is two bytes, fill with double-byte pairs
- and optionally pad with a single space character.
- - for Unicode character set (utf-8):
- create a buffer with multibyte representation of the max_sort_char
- character, and copy it into max_str in a loop.
-*/
-static void pad_max_char(CHARSET_INFO *cs, char *str, char *end)
-{
- char buf[10];
- char buflen;
-
- if (!(cs->state & MY_CS_UNICODE))
- {
- if (cs->max_sort_char <= 255)
- {
- bfill(str, end - str, cs->max_sort_char);
- return;
- }
- buf[0]= cs->max_sort_char >> 8;
- buf[1]= cs->max_sort_char & 0xFF;
- buflen= 2;
- }
- else
- {
- buflen= cs->cset->wc_mb(cs, cs->max_sort_char, (uchar*) buf,
- (uchar*) buf + sizeof(buf));
- }
-
- DBUG_ASSERT(buflen > 0);
- do
- {
- if ((str + buflen) <= end)
- {
- /* Enough space for the characer */
- memcpy(str, buf, buflen);
- str+= buflen;
- }
- else
- {
- /*
- There is no space for whole multibyte
- character, then add trailing spaces.
- */
- *str++= ' ';
- }
- } while (str < end);
-}
-
-/*
-** Calculate min_str and max_str that ranges a LIKE string.
-** Arguments:
-** ptr Pointer to LIKE string.
-** ptr_length Length of LIKE string.
-** escape Escape character in LIKE. (Normally '\').
-** All escape characters should be removed from min_str and max_str
-** res_length Length of min_str and max_str.
-** min_str Smallest case sensitive string that ranges LIKE.
-** Should be space padded to res_length.
-** max_str Largest case sensitive string that ranges LIKE.
-** Normally padded with the biggest character sort value.
-**
-** The function should return 0 if ok and 1 if the LIKE string can't be
-** optimized !
-*/
-
-my_bool my_like_range_mb(CHARSET_INFO *cs,
- const char *ptr,size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str,char *max_str,
- size_t *min_length,size_t *max_length)
-{
- uint mb_len;
- const char *end= ptr + ptr_length;
- char *min_org= min_str;
- char *min_end= min_str + res_length;
- char *max_end= max_str + res_length;
- size_t maxcharlen= res_length / cs->mbmaxlen;
- const char *contraction_flags= cs->contractions ?
- ((const char*) cs->contractions) + 0x40*0x40 : NULL;
-
- for (; ptr != end && min_str != min_end && maxcharlen ; maxcharlen--)
- {
- /* We assume here that escape, w_any, w_namy are one-byte characters */
- if (*ptr == escape && ptr+1 != end)
- ptr++; /* Skip escape */
- else if (*ptr == w_one || *ptr == w_many) /* '_' and '%' in SQL */
- {
-fill_max_and_min:
- /*
- Calculate length of keys:
- 'a\0\0... is the smallest possible string when we have space expand
- a\ff\ff... is the biggest possible string
- */
- *min_length= ((cs->state & MY_CS_BINSORT) ? (size_t) (min_str - min_org) :
- res_length);
- *max_length= res_length;
- /* Create min key */
- do
- {
- *min_str++= (char) cs->min_sort_char;
- } while (min_str != min_end);
-
- /*
- Write max key: create a buffer with multibyte
- representation of the max_sort_char character,
- and copy it into max_str in a loop.
- */
- *max_length= res_length;
- pad_max_char(cs, max_str, max_end);
- return 0;
- }
- if ((mb_len= my_ismbchar(cs, ptr, end)) > 1)
- {
- if (ptr+mb_len > end || min_str+mb_len > min_end)
- break;
- while (mb_len--)
- *min_str++= *max_str++= *ptr++;
- }
- else
- {
- /*
- Special case for collations with contractions.
- For example, in Chezh, 'ch' is a separate letter
- which is sorted between 'h' and 'i'.
- If the pattern 'abc%', 'c' at the end can mean:
- - letter 'c' itself,
- - beginning of the contraction 'ch'.
-
- If we simply return this LIKE range:
-
- 'abc\min\min\min' and 'abc\max\max\max'
-
- then this query: SELECT * FROM t1 WHERE a LIKE 'abc%'
- will only find values starting from 'abc[^h]',
- but won't find values starting from 'abch'.
-
- We must ignore contraction heads followed by w_one or w_many.
- ('Contraction head' means any letter which can be the first
- letter in a contraction)
-
- For example, for Czech 'abc%', we will return LIKE range,
- which is equal to LIKE range for 'ab%':
-
- 'ab\min\min\min\min' and 'ab\max\max\max\max'.
-
- */
- if (contraction_flags && ptr + 1 < end &&
- contraction_flags[(uchar) *ptr])
- {
- /* Ptr[0] is a contraction head. */
-
- if (ptr[1] == w_one || ptr[1] == w_many)
- {
- /* Contraction head followed by a wildcard, quit. */
- goto fill_max_and_min;
- }
-
- /*
- Some letters can be both contraction heads and contraction tails.
- For example, in Danish 'aa' is a separate single letter which
- is sorted after 'z'. So 'a' can be both head and tail.
-
- If ptr[0]+ptr[1] is a contraction,
- then put both letters together.
-
- If ptr[1] can be a contraction part, but ptr[0]+ptr[1]
- is not a contraction, then we put only ptr[0],
- and continue with ptr[1] on the next loop.
- */
- if (contraction_flags[(uchar) ptr[1]] &&
- cs->contractions[(*ptr-0x40)*0x40 + ptr[1] - 0x40])
- {
- /* Contraction found */
- if (maxcharlen == 1 || min_str + 1 >= min_end)
- {
- /* Both contraction parts don't fit, quit */
- goto fill_max_and_min;
- }
-
- /* Put contraction head */
- *min_str++= *max_str++= *ptr++;
- maxcharlen--;
- }
- }
- /* Put contraction tail, or a single character */
- *min_str++= *max_str++= *ptr++;
- }
- }
-
- *min_length= *max_length = (size_t) (min_str - min_org);
- while (min_str != min_end)
- *min_str++= *max_str++= ' '; /* Because if key compression */
- return 0;
-}
-
-
-/**
- Calculate min_str and max_str that ranges a LIKE string.
- Generic function, currently used for ucs2, utf16, utf32,
- but should be suitable for any other character sets with
- cs->min_sort_char and cs->max_sort_char represented in
- Unicode code points.
-
- @param cs Character set and collation pointer
- @param ptr Pointer to LIKE pattern.
- @param ptr_length Length of LIKE pattern.
- @param escape Escape character pattern, typically '\'.
- @param w_one 'One character' pattern, typically '_'.
- @param w_many 'Many characters' pattern, typically '%'.
- @param res_length Length of min_str and max_str.
-
- @param[out] min_str Smallest string that ranges LIKE.
- @param[out] max_str Largest string that ranges LIKE.
- @param[out] min_len Length of min_str
- @param[out] max_len Length of max_str
-
- @return Optimization status.
- @retval FALSE if LIKE pattern can be optimized
- @rerval TRUE if LIKE can't be optimized.
-*/
-my_bool
-my_like_range_generic(CHARSET_INFO *cs,
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str,char *max_str,
- size_t *min_length,size_t *max_length)
-{
- const char *end= ptr + ptr_length;
- const char *min_org= min_str;
- const char *max_org= max_str;
- char *min_end= min_str + res_length;
- char *max_end= max_str + res_length;
- size_t charlen= res_length / cs->mbmaxlen;
- size_t res_length_diff;
- my_bool have_contractions= my_cs_have_contractions(cs);
-
- for ( ; charlen > 0; charlen--)
- {
- my_wc_t wc, wc2;
- int res;
- if ((res= cs->cset->mb_wc(cs, &wc, (uchar*) ptr, (uchar*) end)) <= 0)
- {
- if (res == MY_CS_ILSEQ) /* Bad sequence */
- return TRUE; /* min_length and max_length are not important */
- break; /* End of the string */
- }
- ptr+= res;
-
- if (wc == (my_wc_t) escape)
- {
- if ((res= cs->cset->mb_wc(cs, &wc, (uchar*) ptr, (uchar*) end)) <= 0)
- {
- if (res == MY_CS_ILSEQ)
- return TRUE; /* min_length and max_length are not important */
- /*
- End of the string: Escape is the last character.
- Put escape as a normal character.
- We'll will leave the loop on the next iteration.
- */
- }
- else
- ptr+= res;
-
- /* Put escape character to min_str and max_str */
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) min_str, (uchar*) min_end)) <= 0)
- goto pad_set_lengths; /* No space */
- min_str+= res;
-
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) max_str, (uchar*) max_end)) <= 0)
- goto pad_set_lengths; /* No space */
- max_str+= res;
- continue;
- }
- else if (wc == (my_wc_t) w_one)
- {
- if ((res= cs->cset->wc_mb(cs, cs->min_sort_char,
- (uchar*) min_str, (uchar*) min_end)) <= 0)
- goto pad_set_lengths;
- min_str+= res;
-
- if ((res= cs->cset->wc_mb(cs, cs->max_sort_char,
- (uchar*) max_str, (uchar*) max_end)) <= 0)
- goto pad_set_lengths;
- max_str+= res;
- continue;
- }
- else if (wc == (my_wc_t) w_many)
- {
- /*
- Calculate length of keys:
- a\min\min... is the smallest possible string
- a\max\max... is the biggest possible string
- */
- *min_length= ((cs->state & MY_CS_BINSORT) ?
- (size_t) (min_str - min_org) :
- res_length);
- *max_length= res_length;
- goto pad_min_max;
- }
-
- if (have_contractions &&
- my_cs_can_be_contraction_head(cs, wc) &&
- (res= cs->cset->mb_wc(cs, &wc2, (uchar*) ptr, (uchar*) end)) > 0)
- {
- uint16 *weight;
- if ((wc2 == (my_wc_t) w_one || wc2 == (my_wc_t) w_many))
- {
- /* Contraction head followed by a wildcard */
- *min_length= *max_length= res_length;
- goto pad_min_max;
- }
-
- if (my_cs_can_be_contraction_tail(cs, wc2) &&
- (weight= my_cs_contraction2_weight(cs, wc, wc2)) && weight[0])
- {
- /* Contraction found */
- if (charlen == 1)
- {
- /* contraction does not fit to result */
- *min_length= *max_length= res_length;
- goto pad_min_max;
- }
-
- ptr+= res;
- charlen--;
-
- /* Put contraction head */
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) min_str, (uchar*) min_end)) <= 0)
- goto pad_set_lengths;
- min_str+= res;
-
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) max_str, (uchar*) max_end)) <= 0)
- goto pad_set_lengths;
- max_str+= res;
- wc= wc2; /* Prepare to put contraction tail */
- }
- }
-
- /* Normal character, or contraction tail */
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) min_str, (uchar*) min_end)) <= 0)
- goto pad_set_lengths;
- min_str+= res;
- if ((res= cs->cset->wc_mb(cs, wc,
- (uchar*) max_str, (uchar*) max_end)) <= 0)
- goto pad_set_lengths;
- max_str+= res;
- }
-
-pad_set_lengths:
- *min_length= (size_t) (min_str - min_org);
- *max_length= (size_t) (max_str - max_org);
-
-pad_min_max:
- /*
- Fill up max_str and min_str to res_length.
- fill() cannot set incomplete characters and
- requires that "length" argument is divisible to mbminlen.
- Make sure to call fill() with proper "length" argument.
- */
- res_length_diff= res_length % cs->mbminlen;
- cs->cset->fill(cs, min_str, min_end - min_str - res_length_diff,
- cs->min_sort_char);
- cs->cset->fill(cs, max_str, max_end - max_str - res_length_diff,
- cs->max_sort_char);
-
- /* In case of incomplete characters set the remainder to 0x00's */
- if (res_length_diff)
- {
- /* Example: odd res_length for ucs2 */
- memset(min_end - res_length_diff, 0, res_length_diff);
- memset(max_end - res_length_diff, 0, res_length_diff);
- }
- return FALSE;
-}
-
-
-int
-my_wildcmp_mb_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- int result= -1; /* Not found, using wildcards */
-
- while (wildstr != wildend)
- {
- while (*wildstr != w_many && *wildstr != w_one)
- {
- int l;
- if (*wildstr == escape && wildstr+1 != wildend)
- wildstr++;
- if ((l = my_ismbchar(cs, wildstr, wildend)))
- {
- if (str+l > str_end || memcmp(str, wildstr, l) != 0)
- return 1;
- str += l;
- wildstr += l;
- }
- else
- if (str == str_end || *wildstr++ != *str++)
- return(1); /* No match */
- if (wildstr == wildend)
- return (str != str_end); /* Match if both are at end */
- result=1; /* Found an anchor char */
- }
- if (*wildstr == w_one)
- {
- do
- {
- if (str == str_end) /* Skip one char if possible */
- return (result);
- INC_PTR(cs,str,str_end);
- } while (++wildstr < wildend && *wildstr == w_one);
- if (wildstr == wildend)
- break;
- }
- if (*wildstr == w_many)
- { /* Found w_many */
- uchar cmp;
- const char* mb = wildstr;
- int mb_len=0;
-
- wildstr++;
- /* Remove any '%' and '_' from the wild search string */
- for (; wildstr != wildend ; wildstr++)
- {
- if (*wildstr == w_many)
- continue;
- if (*wildstr == w_one)
- {
- if (str == str_end)
- return (-1);
- INC_PTR(cs,str,str_end);
- continue;
- }
- break; /* Not a wild character */
- }
- if (wildstr == wildend)
- return(0); /* Ok if w_many is last */
- if (str == str_end)
- return -1;
-
- if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
- cmp= *++wildstr;
-
- mb=wildstr;
- mb_len= my_ismbchar(cs, wildstr, wildend);
- INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */
- do
- {
- for (;;)
- {
- if (str >= str_end)
- return -1;
- if (mb_len)
- {
- if (str+mb_len <= str_end && memcmp(str, mb, mb_len) == 0)
- {
- str += mb_len;
- break;
- }
- }
- else if (!my_ismbchar(cs, str, str_end) && *str == cmp)
- {
- str++;
- break;
- }
- INC_PTR(cs,str, str_end);
- }
- {
- int tmp=my_wildcmp_mb_bin(cs,str,str_end,wildstr,wildend,escape,w_one,w_many);
- if (tmp <= 0)
- return (tmp);
- }
- } while (str != str_end && wildstr[0] != w_many);
- return(-1);
- }
- }
- return (str != str_end ? 1 : 0);
-}
-
-
-/*
- Data was produced from EastAsianWidth.txt
- using utt11-dump utility.
-*/
-static char pg11[256]=
-{
-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,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,0,0,0,0,0,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
-};
-
-static char pg23[256]=
-{
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,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 char pg2E[256]=
-{
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0
-};
-
-static char pg2F[256]=
-{
-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,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,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,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,0,0,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,0,0,0,0
-};
-
-static char pg30[256]=
-{
-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,1,1,1,1,1,1,1,1,1,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,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,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,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
-};
-
-static char pg31[256]=
-{
-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,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,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,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,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
-};
-
-static char pg32[256]=
-{
-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,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
-};
-
-static char pg4D[256]=
-{
-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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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
-};
-
-static char pg9F[256]=
-{
-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,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,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,1,1,1,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
-};
-
-static char pgA4[256]=
-{
-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,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,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,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,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
-};
-
-static char pgD7[256]=
-{
-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,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,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,1,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
-};
-
-static char pgFA[256]=
-{
-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,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,1,1,1,1,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
-};
-
-static char pgFE[256]=
-{
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0,1,1,1,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
-};
-
-static char pgFF[256]=
-{
-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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,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,0,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 struct {int page; char *p;} utr11_data[256]=
-{
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,pg11},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,pg23},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,pg2E},{0,pg2F},
-{0,pg30},{0,pg31},{0,pg32},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pg4D},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pg9F},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pgA4},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},
-{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{1,NULL},{0,pgD7},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},{0,NULL},
-{0,NULL},{1,NULL},{0,pgFA},{0,NULL},{0,NULL},{0,NULL},{0,pgFE},{0,pgFF}
-};
-
-
-size_t my_numcells_mb(CHARSET_INFO *cs, const char *b, const char *e)
-{
- my_wc_t wc;
- size_t clen= 0;
-
- while (b < e)
- {
- int mb_len;
- uint pg;
- if ((mb_len= cs->cset->mb_wc(cs, &wc, (uchar*) b, (uchar*) e)) <= 0)
- {
- mb_len= 1; /* Let's think a wrong sequence takes 1 dysplay cell */
- b++;
- continue;
- }
- b+= mb_len;
- if (wc > 0xFFFF)
- {
- if (wc >= 0x20000 && wc <= 0x3FFFD) /* CJK Ideograph Extension B, C */
- clen+= 1;
- }
- else
- {
- pg= (wc >> 8) & 0xFF;
- clen+= utr11_data[pg].p ? utr11_data[pg].p[wc & 0xFF] : utr11_data[pg].page;
- }
- clen++;
- }
- return clen;
-}
-
-
-int my_mb_ctype_mb(CHARSET_INFO *cs, int *ctype,
- const uchar *s, const uchar *e)
-{
- my_wc_t wc;
- int res= cs->cset->mb_wc(cs, &wc, s, e);
- if (res <= 0 || wc > 0xFFFF)
- *ctype= 0;
- else
- *ctype= my_uni_ctype[wc>>8].ctype ?
- my_uni_ctype[wc>>8].ctype[wc&0xFF] :
- my_uni_ctype[wc>>8].pctype;
- return res;
-}
-
-
-MY_COLLATION_HANDLER my_collation_mb_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_mb_bin,
- my_strnncollsp_mb_bin,
- my_strnxfrm_mb_bin,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_mb_bin,
- my_strcasecmp_mb_bin,
- my_instr_mb,
- my_hash_sort_mb_bin,
- my_propagate_simple
-};
-
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-simple.c b/dep/mysqllite/strings/ctype-simple.c
deleted file mode 100644
index 2e5f78a30bf..00000000000
--- a/dep/mysqllite/strings/ctype-simple.c
+++ /dev/null
@@ -1,1704 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-#include "my_sys.h" /* Needed for MY_ERRNO_ERANGE */
-#include <errno.h>
-
-#include "stdarg.h"
-
-/*
- Returns the number of bytes required for strnxfrm().
-*/
-
-size_t my_strnxfrmlen_simple(CHARSET_INFO *cs, size_t len)
-{
- return len * (cs->strxfrm_multiply ? cs->strxfrm_multiply : 1);
-}
-
-
-/*
- Converts a string into its sort key.
-
- SYNOPSIS
- my_strnxfrm_xxx()
-
- IMPLEMENTATION
-
- The my_strxfrm_xxx() function transforms a string pointed to by
- 'src' with length 'srclen' according to the charset+collation
- pair 'cs' and copies the result key into 'dest'.
-
- Comparing two strings using memcmp() after my_strnxfrm_xxx()
- is equal to comparing two original strings with my_strnncollsp_xxx().
-
- Not more than 'dstlen' bytes are written into 'dst'.
- To garantee that the whole string is transformed, 'dstlen' must be
- at least srclen*cs->strnxfrm_multiply bytes long. Otherwise,
- consequent memcmp() may return a non-accurate result.
-
- If the source string is too short to fill whole 'dstlen' bytes,
- then the 'dest' string is padded up to 'dstlen', ensuring that:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- my_strnxfrm_simple() is implemented for 8bit charsets and
- simple collations with one-to-one string->key transformation.
-
- See also implementations for various charsets/collations in
- other ctype-xxx.c files.
-
- RETURN
-
- Target len 'dstlen'.
-
-*/
-
-
-size_t my_strnxfrm_simple(CHARSET_INFO * cs,
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uchar *map= cs->sort_order;
- size_t dstlen= len;
- set_if_smaller(len, srclen);
- if (dest != src)
- {
- const uchar *end;
- for ( end=src+len; src < end ; )
- *dest++= map[*src++];
- }
- else
- {
- const uchar *end;
- for ( end=dest+len; dest < end ; dest++)
- *dest= (char) map[(uchar) *dest];
- }
- if (dstlen > len)
- bfill(dest, dstlen - len, ' ');
- return dstlen;
-}
-
-
-int my_strnncoll_simple(CHARSET_INFO * cs, const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- size_t len = ( slen > tlen ) ? tlen : slen;
- uchar *map= cs->sort_order;
- if (t_is_prefix && slen > tlen)
- slen=tlen;
- while (len--)
- {
- if (map[*s++] != map[*t++])
- return ((int) map[s[-1]] - (int) map[t[-1]]);
- }
- /*
- We can't use (slen - tlen) here as the result may be outside of the
- precision of a signed int
- */
- return slen > tlen ? 1 : slen < tlen ? -1 : 0 ;
-}
-
-
-/*
- Compare strings, discarding end space
-
- SYNOPSIS
- my_strnncollsp_simple()
- cs character set handler
- a First string to compare
- a_length Length of 'a'
- b Second string to compare
- b_length Length of 'b'
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- IMPLEMENTATION
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- RETURN
- < 0 a < b
- = 0 a == b
- > 0 a > b
-*/
-
-int my_strnncollsp_simple(CHARSET_INFO * cs, const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- const uchar *map= cs->sort_order, *end;
- size_t length;
- int res;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- end= a + (length= min(a_length, b_length));
- while (a < end)
- {
- if (map[*a++] != map[*b++])
- return ((int) map[a[-1]] - (int) map[b[-1]]);
- }
- res= 0;
- if (a_length != b_length)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put shorter key in s */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (map[*a] != map[' '])
- return (map[*a] < map[' ']) ? -swap : swap;
- }
- }
- return res;
-}
-
-
-size_t my_caseup_str_8bit(CHARSET_INFO * cs,char *str)
-{
- register uchar *map= cs->to_upper;
- char *str_orig= str;
- while ((*str= (char) map[(uchar) *str]) != 0)
- str++;
- return (size_t) (str - str_orig);
-}
-
-
-size_t my_casedn_str_8bit(CHARSET_INFO * cs,char *str)
-{
- register uchar *map= cs->to_lower;
- char *str_orig= str;
- while ((*str= (char) map[(uchar) *str]) != 0)
- str++;
- return (size_t) (str - str_orig);
-}
-
-
-size_t my_caseup_8bit(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- char *end= src + srclen;
- register uchar *map= cs->to_upper;
- DBUG_ASSERT(src == dst && srclen == dstlen);
- for ( ; src != end ; src++)
- *src= (char) map[(uchar) *src];
- return srclen;
-}
-
-
-size_t my_casedn_8bit(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- char *end= src + srclen;
- register uchar *map=cs->to_lower;
- DBUG_ASSERT(src == dst && srclen == dstlen);
- for ( ; src != end ; src++)
- *src= (char) map[(uchar) *src];
- return srclen;
-}
-
-int my_strcasecmp_8bit(CHARSET_INFO * cs,const char *s, const char *t)
-{
- register uchar *map=cs->to_upper;
- while (map[(uchar) *s] == map[(uchar) *t++])
- if (!*s++) return 0;
- return ((int) map[(uchar) s[0]] - (int) map[(uchar) t[-1]]);
-}
-
-
-int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc,
- const uchar *str,
- const uchar *end __attribute__((unused)))
-{
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- *wc=cs->tab_to_uni[*str];
- return (!wc[0] && str[0]) ? -1 : 1;
-}
-
-int my_wc_mb_8bit(CHARSET_INFO *cs,my_wc_t wc,
- uchar *str,
- uchar *end)
-{
- MY_UNI_IDX *idx;
-
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- for (idx=cs->tab_from_uni; idx->tab ; idx++)
- {
- if (idx->from <= wc && idx->to >= wc)
- {
- str[0]= idx->tab[wc - idx->from];
- return (!str[0] && wc) ? MY_CS_ILUNI : 1;
- }
- }
- return MY_CS_ILUNI;
-}
-
-
-/*
- We can't use vsprintf here as it's not guaranteed to return
- the length on all operating systems.
- This function is also not called in a safe environment, so the
- end buffer must be checked.
-*/
-
-size_t my_snprintf_8bit(CHARSET_INFO *cs __attribute__((unused)),
- char* to, size_t n __attribute__((unused)),
- const char* fmt, ...)
-{
- va_list args;
- int result;
- va_start(args,fmt);
- result= my_vsnprintf(to, n, fmt, args);
- va_end(args);
- return result;
-}
-
-
-void my_hash_sort_simple(CHARSET_INFO *cs,
- const uchar *key, size_t len,
- ulong *nr1, ulong *nr2)
-{
- register uchar *sort_order=cs->sort_order;
- const uchar *end;
-
- /*
- Remove end space. We have to do this to be able to compare
- 'A ' and 'A' as identical
- */
- end= skip_trailing_space(key, len);
-
- for (; key < (uchar*) end ; key++)
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint) sort_order[(uint) *key])) + (nr1[0] << 8);
- nr2[0]+=3;
- }
-}
-
-
-long my_strntol_8bit(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative;
- register uint32 cutoff;
- register uint cutlim;
- register uint32 i;
- register const char *s;
- register uchar c;
- const char *save, *e;
- int overflow;
-
- *err= 0; /* Initialize error indicator */
-
- s = nptr;
- e = nptr+l;
-
- for ( ; s<e && my_isspace(cs, *s) ; s++);
-
- if (s == e)
- {
- goto noconv;
- }
-
- /* Check for a sign. */
- if (*s == '-')
- {
- negative = 1;
- ++s;
- }
- else if (*s == '+')
- {
- negative = 0;
- ++s;
- }
- else
- negative = 0;
-
- save = s;
- cutoff = ((uint32)~0L) / (uint32) base;
- cutlim = (uint) (((uint32)~0L) % (uint32) base);
-
- overflow = 0;
- i = 0;
- for (c = *s; s != e; c = *++s)
- {
- if (c>='0' && c<='9')
- c -= '0';
- else if (c>='A' && c<='Z')
- c = c - 'A' + 10;
- else if (c>='a' && c<='z')
- c = c - 'a' + 10;
- else
- break;
- if (c >= base)
- break;
- if (i > cutoff || (i == cutoff && c > cutlim))
- overflow = 1;
- else
- {
- i *= (uint32) base;
- i += c;
- }
- }
-
- if (s == save)
- goto noconv;
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (negative)
- {
- if (i > (uint32) INT_MIN32)
- overflow = 1;
- }
- else if (i > INT_MAX32)
- overflow = 1;
-
- if (overflow)
- {
- err[0]= ERANGE;
- return negative ? INT_MIN32 : INT_MAX32;
- }
-
- return (negative ? -((long) i) : (long) i);
-
-noconv:
- err[0]= EDOM;
- if (endptr != NULL)
- *endptr = (char *) nptr;
- return 0L;
-}
-
-
-ulong my_strntoul_8bit(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative;
- register uint32 cutoff;
- register uint cutlim;
- register uint32 i;
- register const char *s;
- register uchar c;
- const char *save, *e;
- int overflow;
-
- *err= 0; /* Initialize error indicator */
-
- s = nptr;
- e = nptr+l;
-
- for( ; s<e && my_isspace(cs, *s); s++);
-
- if (s==e)
- {
- goto noconv;
- }
-
- if (*s == '-')
- {
- negative = 1;
- ++s;
- }
- else if (*s == '+')
- {
- negative = 0;
- ++s;
- }
- else
- negative = 0;
-
- save = s;
- cutoff = ((uint32)~0L) / (uint32) base;
- cutlim = (uint) (((uint32)~0L) % (uint32) base);
- overflow = 0;
- i = 0;
-
- for (c = *s; s != e; c = *++s)
- {
- if (c>='0' && c<='9')
- c -= '0';
- else if (c>='A' && c<='Z')
- c = c - 'A' + 10;
- else if (c>='a' && c<='z')
- c = c - 'a' + 10;
- else
- break;
- if (c >= base)
- break;
- if (i > cutoff || (i == cutoff && c > cutlim))
- overflow = 1;
- else
- {
- i *= (uint32) base;
- i += c;
- }
- }
-
- if (s == save)
- goto noconv;
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (overflow)
- {
- err[0]= ERANGE;
- return (~(uint32) 0);
- }
-
- return (negative ? -((long) i) : (long) i);
-
-noconv:
- err[0]= EDOM;
- if (endptr != NULL)
- *endptr = (char *) nptr;
- return 0L;
-}
-
-
-longlong my_strntoll_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *nptr, size_t l, int base,
- char **endptr,int *err)
-{
- int negative;
- register ulonglong cutoff;
- register uint cutlim;
- register ulonglong i;
- register const char *s, *e;
- const char *save;
- int overflow;
-
- *err= 0; /* Initialize error indicator */
-
- s = nptr;
- e = nptr+l;
-
- for(; s<e && my_isspace(cs,*s); s++);
-
- if (s == e)
- {
- goto noconv;
- }
-
- if (*s == '-')
- {
- negative = 1;
- ++s;
- }
- else if (*s == '+')
- {
- negative = 0;
- ++s;
- }
- else
- negative = 0;
-
- save = s;
-
- cutoff = (~(ulonglong) 0) / (unsigned long int) base;
- cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base);
-
- overflow = 0;
- i = 0;
- for ( ; s != e; s++)
- {
- register uchar c= *s;
- if (c>='0' && c<='9')
- c -= '0';
- else if (c>='A' && c<='Z')
- c = c - 'A' + 10;
- else if (c>='a' && c<='z')
- c = c - 'a' + 10;
- else
- break;
- if (c >= base)
- break;
- if (i > cutoff || (i == cutoff && c > cutlim))
- overflow = 1;
- else
- {
- i *= (ulonglong) base;
- i += c;
- }
- }
-
- if (s == save)
- goto noconv;
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (negative)
- {
- if (i > (ulonglong) LONGLONG_MIN)
- overflow = 1;
- }
- else if (i > (ulonglong) LONGLONG_MAX)
- overflow = 1;
-
- if (overflow)
- {
- err[0]= ERANGE;
- return negative ? LONGLONG_MIN : LONGLONG_MAX;
- }
-
- return (negative ? -((longlong) i) : (longlong) i);
-
-noconv:
- err[0]= EDOM;
- if (endptr != NULL)
- *endptr = (char *) nptr;
- return 0L;
-}
-
-
-ulonglong my_strntoull_8bit(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative;
- register ulonglong cutoff;
- register uint cutlim;
- register ulonglong i;
- register const char *s, *e;
- const char *save;
- int overflow;
-
- *err= 0; /* Initialize error indicator */
-
- s = nptr;
- e = nptr+l;
-
- for(; s<e && my_isspace(cs,*s); s++);
-
- if (s == e)
- {
- goto noconv;
- }
-
- if (*s == '-')
- {
- negative = 1;
- ++s;
- }
- else if (*s == '+')
- {
- negative = 0;
- ++s;
- }
- else
- negative = 0;
-
- save = s;
-
- cutoff = (~(ulonglong) 0) / (unsigned long int) base;
- cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base);
-
- overflow = 0;
- i = 0;
- for ( ; s != e; s++)
- {
- register uchar c= *s;
-
- if (c>='0' && c<='9')
- c -= '0';
- else if (c>='A' && c<='Z')
- c = c - 'A' + 10;
- else if (c>='a' && c<='z')
- c = c - 'a' + 10;
- else
- break;
- if (c >= base)
- break;
- if (i > cutoff || (i == cutoff && c > cutlim))
- overflow = 1;
- else
- {
- i *= (ulonglong) base;
- i += c;
- }
- }
-
- if (s == save)
- goto noconv;
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (overflow)
- {
- err[0]= ERANGE;
- return (~(ulonglong) 0);
- }
-
- return (negative ? -((longlong) i) : (longlong) i);
-
-noconv:
- err[0]= EDOM;
- if (endptr != NULL)
- *endptr = (char *) nptr;
- return 0L;
-}
-
-
-/*
- Read double from string
-
- SYNOPSIS:
- my_strntod_8bit()
- cs Character set information
- str String to convert to double
- length Optional length for string.
- end result pointer to end of converted string
- err Error number if failed conversion
-
- NOTES:
- If length is not INT_MAX32 or str[length] != 0 then the given str must
- be writeable
- If length == INT_MAX32 the str must be \0 terminated.
-
- It's implemented this way to save a buffer allocation and a memory copy.
-
- RETURN
- Value of number in string
-*/
-
-
-double my_strntod_8bit(CHARSET_INFO *cs __attribute__((unused)),
- char *str, size_t length,
- char **end, int *err)
-{
- if (length == INT_MAX32)
- length= 65535; /* Should be big enough */
- *end= str + length;
- return my_strtod(str, end, err);
-}
-
-
-/*
- This is a fast version optimized for the case of radix 10 / -10
-
- Assume len >= 1
-*/
-
-size_t my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
- char *dst, size_t len, int radix, long int val)
-{
- char buffer[66];
- register char *p, *e;
- long int new_val;
- uint sign=0;
- unsigned long int uval = (unsigned long int) val;
-
- e = p = &buffer[sizeof(buffer)-1];
- *p= 0;
-
- if (radix < 0)
- {
- if (val < 0)
- {
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval= (unsigned long int)0 - uval;
- *dst++= '-';
- len--;
- sign= 1;
- }
- }
-
- new_val = (long) (uval / 10);
- *--p = '0'+ (char) (uval - (unsigned long) new_val * 10);
- val = new_val;
-
- while (val != 0)
- {
- new_val=val/10;
- *--p = '0' + (char) (val-new_val*10);
- val= new_val;
- }
-
- len= min(len, (size_t) (e-p));
- memcpy(dst, p, len);
- return len+sign;
-}
-
-
-size_t my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
- char *dst, size_t len, int radix,
- longlong val)
-{
- char buffer[65];
- register char *p, *e;
- long long_val;
- uint sign= 0;
- ulonglong uval = (ulonglong)val;
-
- if (radix < 0)
- {
- if (val < 0)
- {
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (ulonglong)0 - uval;
- *dst++= '-';
- len--;
- sign= 1;
- }
- }
-
- e = p = &buffer[sizeof(buffer)-1];
- *p= 0;
-
- if (uval == 0)
- {
- *--p= '0';
- len= 1;
- goto cnv;
- }
-
- while (uval > (ulonglong) LONG_MAX)
- {
- ulonglong quo= uval/(uint) 10;
- uint rem= (uint) (uval- quo* (uint) 10);
- *--p = '0' + rem;
- uval= quo;
- }
-
- long_val= (long) uval;
- while (long_val != 0)
- {
- long quo= long_val/10;
- *--p = (char) ('0' + (long_val - quo*10));
- long_val= quo;
- }
-
- len= min(len, (size_t) (e-p));
-cnv:
- memcpy(dst, p, len);
- return len+sign;
-}
-
-
-/*
-** Compare string against string with wildcard
-** 0 if matched
-** -1 if not matched with wildcard
-** 1 if matched with wildcard
-*/
-
-#ifdef LIKE_CMP_TOUPPER
-#define likeconv(s,A) (uchar) my_toupper(s,A)
-#else
-#define likeconv(s,A) (uchar) (s)->sort_order[(uchar) (A)]
-#endif
-
-#define INC_PTR(cs,A,B) (A)++
-
-
-int my_wildcmp_8bit(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- int result= -1; /* Not found, using wildcards */
-
- while (wildstr != wildend)
- {
- while (*wildstr != w_many && *wildstr != w_one)
- {
- if (*wildstr == escape && wildstr+1 != wildend)
- wildstr++;
-
- if (str == str_end || likeconv(cs,*wildstr++) != likeconv(cs,*str++))
- return(1); /* No match */
- if (wildstr == wildend)
- return(str != str_end); /* Match if both are at end */
- result=1; /* Found an anchor char */
- }
- if (*wildstr == w_one)
- {
- do
- {
- if (str == str_end) /* Skip one char if possible */
- return(result);
- INC_PTR(cs,str,str_end);
- } while (++wildstr < wildend && *wildstr == w_one);
- if (wildstr == wildend)
- break;
- }
- if (*wildstr == w_many)
- { /* Found w_many */
- uchar cmp;
-
- wildstr++;
- /* Remove any '%' and '_' from the wild search string */
- for (; wildstr != wildend ; wildstr++)
- {
- if (*wildstr == w_many)
- continue;
- if (*wildstr == w_one)
- {
- if (str == str_end)
- return(-1);
- INC_PTR(cs,str,str_end);
- continue;
- }
- break; /* Not a wild character */
- }
- if (wildstr == wildend)
- return(0); /* Ok if w_many is last */
- if (str == str_end)
- return(-1);
-
- if ((cmp= *wildstr) == escape && wildstr+1 != wildend)
- cmp= *++wildstr;
-
- INC_PTR(cs,wildstr,wildend); /* This is compared trough cmp */
- cmp=likeconv(cs,cmp);
- do
- {
- while (str != str_end && (uchar) likeconv(cs,*str) != cmp)
- str++;
- if (str++ == str_end) return(-1);
- {
- int tmp=my_wildcmp_8bit(cs,str,str_end,wildstr,wildend,escape,w_one,
- w_many);
- if (tmp <= 0)
- return(tmp);
- }
- } while (str != str_end && wildstr[0] != w_many);
- return(-1);
- }
- }
- return(str != str_end ? 1 : 0);
-}
-
-
-/*
-** Calculate min_str and max_str that ranges a LIKE string.
-** Arguments:
-** ptr Pointer to LIKE string.
-** ptr_length Length of LIKE string.
-** escape Escape character in LIKE. (Normally '\').
-** All escape characters should be removed from min_str and max_str
-** res_length Length of min_str and max_str.
-** min_str Smallest case sensitive string that ranges LIKE.
-** Should be space padded to res_length.
-** max_str Largest case sensitive string that ranges LIKE.
-** Normally padded with the biggest character sort value.
-**
-** The function should return 0 if ok and 1 if the LIKE string can't be
-** optimized !
-*/
-
-my_bool my_like_range_simple(CHARSET_INFO *cs,
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str,char *max_str,
- size_t *min_length, size_t *max_length)
-{
- const char *end= ptr + ptr_length;
- char *min_org=min_str;
- char *min_end=min_str+res_length;
- size_t charlen= res_length / cs->mbmaxlen;
-
- for (; ptr != end && min_str != min_end && charlen > 0 ; ptr++, charlen--)
- {
- if (*ptr == escape && ptr+1 != end)
- {
- ptr++; /* Skip escape */
- *min_str++= *max_str++ = *ptr;
- continue;
- }
- if (*ptr == w_one) /* '_' in SQL */
- {
- *min_str++='\0'; /* This should be min char */
- *max_str++= (char) cs->max_sort_char;
- continue;
- }
- if (*ptr == w_many) /* '%' in SQL */
- {
- /* Calculate length of keys */
- *min_length= ((cs->state & MY_CS_BINSORT) ?
- (size_t) (min_str - min_org) :
- res_length);
- *max_length= res_length;
- do
- {
- *min_str++= 0;
- *max_str++= (char) cs->max_sort_char;
- } while (min_str != min_end);
- return 0;
- }
- *min_str++= *max_str++ = *ptr;
- }
-
- *min_length= *max_length = (size_t) (min_str - min_org);
- while (min_str != min_end)
- *min_str++= *max_str++ = ' '; /* Because if key compression */
- return 0;
-}
-
-
-size_t my_scan_8bit(CHARSET_INFO *cs, const char *str, const char *end, int sq)
-{
- const char *str0= str;
- switch (sq)
- {
- case MY_SEQ_INTTAIL:
- if (*str == '.')
- {
- for(str++ ; str != end && *str == '0' ; str++);
- return (size_t) (str - str0);
- }
- return 0;
-
- case MY_SEQ_SPACES:
- for ( ; str < end ; str++)
- {
- if (!my_isspace(cs,*str))
- break;
- }
- return (size_t) (str - str0);
- default:
- return 0;
- }
-}
-
-
-void my_fill_8bit(CHARSET_INFO *cs __attribute__((unused)),
- char *s, size_t l, int fill)
-{
- bfill((uchar*) s,l,fill);
-}
-
-
-size_t my_numchars_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e)
-{
- return (size_t) (e - b);
-}
-
-
-size_t my_numcells_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e)
-{
- return (size_t) (e - b);
-}
-
-
-size_t my_charpos_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)),
- size_t pos)
-{
- return pos;
-}
-
-
-size_t my_well_formed_len_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *start, const char *end,
- size_t nchars, int *error)
-{
- size_t nbytes= (size_t) (end-start);
- *error= 0;
- return min(nbytes, nchars);
-}
-
-
-size_t my_lengthsp_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr, size_t length)
-{
- const char *end;
- end= (const char *) skip_trailing_space((const uchar *)ptr, length);
- return (size_t) (end-ptr);
-}
-
-
-uint my_instr_simple(CHARSET_INFO *cs,
- const char *b, size_t b_length,
- const char *s, size_t s_length,
- my_match_t *match, uint nmatch)
-{
- register const uchar *str, *search, *end, *search_end;
-
- if (s_length <= b_length)
- {
- if (!s_length)
- {
- if (nmatch)
- {
- match->beg= 0;
- match->end= 0;
- match->mb_len= 0;
- }
- return 1; /* Empty string is always found */
- }
-
- str= (const uchar*) b;
- search= (const uchar*) s;
- end= (const uchar*) b+b_length-s_length+1;
- search_end= (const uchar*) s + s_length;
-
-skip:
- while (str != end)
- {
- if (cs->sort_order[*str++] == cs->sort_order[*search])
- {
- register const uchar *i,*j;
-
- i= str;
- j= search+1;
-
- while (j != search_end)
- if (cs->sort_order[*i++] != cs->sort_order[*j++])
- goto skip;
-
- if (nmatch > 0)
- {
- match[0].beg= 0;
- match[0].end= (size_t) (str- (const uchar*)b-1);
- match[0].mb_len= match[0].end;
-
- if (nmatch > 1)
- {
- match[1].beg= match[0].end;
- match[1].end= match[0].end+s_length;
- match[1].mb_len= match[1].end-match[1].beg;
- }
- }
- return 2;
- }
- }
- }
- return 0;
-}
-
-
-typedef struct
-{
- int nchars;
- MY_UNI_IDX uidx;
-} uni_idx;
-
-#define PLANE_SIZE 0x100
-#define PLANE_NUM 0x100
-#define PLANE_NUMBER(x) (((x)>>8) % PLANE_NUM)
-
-static int pcmp(const void * f, const void * s)
-{
- const uni_idx *F= (const uni_idx*) f;
- const uni_idx *S= (const uni_idx*) s;
- int res;
-
- if (!(res=((S->nchars)-(F->nchars))))
- res=((F->uidx.from)-(S->uidx.to));
- return res;
-}
-
-static my_bool create_fromuni(CHARSET_INFO *cs, void *(*alloc)(size_t))
-{
- uni_idx idx[PLANE_NUM];
- int i,n;
-
- /*
- Check that Unicode map is loaded.
- It can be not loaded when the collation is
- listed in Index.xml but not specified
- in the character set specific XML file.
- */
- if (!cs->tab_to_uni)
- return TRUE;
-
- /* Clear plane statistics */
- bzero(idx,sizeof(idx));
-
- /* Count number of characters in each plane */
- for (i=0; i< 0x100; i++)
- {
- uint16 wc=cs->tab_to_uni[i];
- int pl= PLANE_NUMBER(wc);
-
- if (wc || !i)
- {
- if (!idx[pl].nchars)
- {
- idx[pl].uidx.from=wc;
- idx[pl].uidx.to=wc;
- }else
- {
- idx[pl].uidx.from=wc<idx[pl].uidx.from?wc:idx[pl].uidx.from;
- idx[pl].uidx.to=wc>idx[pl].uidx.to?wc:idx[pl].uidx.to;
- }
- idx[pl].nchars++;
- }
- }
-
- /* Sort planes in descending order */
- qsort(&idx,PLANE_NUM,sizeof(uni_idx),&pcmp);
-
- for (i=0; i < PLANE_NUM; i++)
- {
- int ch,numchars;
-
- /* Skip empty plane */
- if (!idx[i].nchars)
- break;
-
- numchars=idx[i].uidx.to-idx[i].uidx.from+1;
- if (!(idx[i].uidx.tab=(uchar*) alloc(numchars * sizeof(*idx[i].uidx.tab))))
- return TRUE;
-
- bzero(idx[i].uidx.tab,numchars*sizeof(*idx[i].uidx.tab));
-
- for (ch=1; ch < PLANE_SIZE; ch++)
- {
- uint16 wc=cs->tab_to_uni[ch];
- if (wc >= idx[i].uidx.from && wc <= idx[i].uidx.to && wc)
- {
- int ofs= wc - idx[i].uidx.from;
- idx[i].uidx.tab[ofs]= ch;
- }
- }
- }
-
- /* Allocate and fill reverse table for each plane */
- n=i;
- if (!(cs->tab_from_uni= (MY_UNI_IDX*) alloc(sizeof(MY_UNI_IDX)*(n+1))))
- return TRUE;
-
- for (i=0; i< n; i++)
- cs->tab_from_uni[i]= idx[i].uidx;
-
- /* Set end-of-list marker */
- bzero(&cs->tab_from_uni[i],sizeof(MY_UNI_IDX));
- return FALSE;
-}
-
-static my_bool my_cset_init_8bit(CHARSET_INFO *cs, void *(*alloc)(size_t))
-{
- cs->caseup_multiply= 1;
- cs->casedn_multiply= 1;
- cs->pad_char= ' ';
- return create_fromuni(cs, alloc);
-}
-
-static void set_max_sort_char(CHARSET_INFO *cs)
-{
- uchar max_char;
- uint i;
-
- if (!cs->sort_order)
- return;
-
- max_char=cs->sort_order[(uchar) cs->max_sort_char];
- for (i= 0; i < 256; i++)
- {
- if ((uchar) cs->sort_order[i] > max_char)
- {
- max_char=(uchar) cs->sort_order[i];
- cs->max_sort_char= i;
- }
- }
-}
-
-static my_bool my_coll_init_simple(CHARSET_INFO *cs,
- void *(*alloc)(size_t) __attribute__((unused)))
-{
- set_max_sort_char(cs);
- return FALSE;
-}
-
-
-longlong my_strtoll10_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *nptr, char **endptr, int *error)
-{
- return my_strtoll10(nptr, endptr, error);
-}
-
-
-int my_mb_ctype_8bit(CHARSET_INFO *cs, int *ctype,
- const uchar *s, const uchar *e)
-{
- if (s >= e)
- {
- *ctype= 0;
- return MY_CS_TOOSMALL;
- }
- *ctype= cs->ctype[*s + 1];
- return 1;
-}
-
-
-#define CUTOFF (ULONGLONG_MAX / 10)
-#define CUTLIM (ULONGLONG_MAX % 10)
-#define DIGITS_IN_ULONGLONG 20
-
-static ulonglong d10[DIGITS_IN_ULONGLONG]=
-{
- 1,
- 10,
- 100,
- 1000,
- 10000,
- 100000,
- 1000000,
- 10000000,
- 100000000,
- 1000000000,
- 10000000000ULL,
- 100000000000ULL,
- 1000000000000ULL,
- 10000000000000ULL,
- 100000000000000ULL,
- 1000000000000000ULL,
- 10000000000000000ULL,
- 100000000000000000ULL,
- 1000000000000000000ULL,
- 10000000000000000000ULL
-};
-
-
-/*
-
- Convert a string to unsigned long long integer value
- with rounding.
-
- SYNOPSYS
- my_strntoull10_8bit()
- cs in pointer to character set
- str in pointer to the string to be converted
- length in string length
- unsigned_flag in whether the number is unsigned
- endptr out pointer to the stop character
- error out returned error code
-
- DESCRIPTION
- This function takes the decimal representation of integer number
- from string str and converts it to an signed or unsigned
- long long integer value.
- Space characters and tab are ignored.
- A sign character might precede the digit characters.
- The number may have any number of pre-zero digits.
- The number may have decimal point and exponent.
- Rounding is always done in "away from zero" style:
- 0.5 -> 1
- -0.5 -> -1
-
- The function stops reading the string str after "length" bytes
- or at the first character that is not a part of correct number syntax:
-
- <signed numeric literal> ::=
- [ <sign> ] <exact numeric literal> [ E [ <sign> ] <unsigned integer> ]
-
- <exact numeric literal> ::=
- <unsigned integer> [ <period> [ <unsigned integer> ] ]
- | <period> <unsigned integer>
- <unsigned integer> ::= <digit>...
-
- RETURN VALUES
- Value of string as a signed/unsigned longlong integer
-
- endptr cannot be NULL. The function will store the end pointer
- to the stop character here.
-
- The error parameter contains information how things went:
- 0 ok
- ERANGE If the the value of the converted number is out of range
- In this case the return value is:
- - ULONGLONG_MAX if unsigned_flag and the number was too big
- - 0 if unsigned_flag and the number was negative
- - LONGLONG_MAX if no unsigned_flag and the number is too big
- - LONGLONG_MIN if no unsigned_flag and the number it too big negative
-
- EDOM If the string didn't contain any digits.
- In this case the return value is 0.
-*/
-
-ulonglong
-my_strntoull10rnd_8bit(CHARSET_INFO *cs __attribute__((unused)),
- const char *str, size_t length, int unsigned_flag,
- char **endptr, int *error)
-{
- const char *dot, *end9, *beg, *end= str + length;
- ulonglong ull;
- ulong ul;
- uchar ch;
- int shift= 0, digits= 0, negative, addon;
-
- /* Skip leading spaces and tabs */
- for ( ; str < end && (*str == ' ' || *str == '\t') ; str++);
-
- if (str >= end)
- goto ret_edom;
-
- if ((negative= (*str == '-')) || *str=='+') /* optional sign */
- {
- if (++str == end)
- goto ret_edom;
- }
-
- beg= str;
- end9= (str + 9) > end ? end : (str + 9);
- /* Accumulate small number into ulong, for performance purposes */
- for (ul= 0 ; str < end9 && (ch= (uchar) (*str - '0')) < 10; str++)
- {
- ul= ul * 10 + ch;
- }
-
- if (str >= end) /* Small number without dots and expanents */
- {
- *endptr= (char*) str;
- if (negative)
- {
- if (unsigned_flag)
- {
- *error= ul ? MY_ERRNO_ERANGE : 0;
- return 0;
- }
- else
- {
- *error= 0;
- return (ulonglong) (longlong) -(long) ul;
- }
- }
- else
- {
- *error=0;
- return (ulonglong) ul;
- }
- }
-
- digits= str - beg;
-
- /* Continue to accumulate into ulonglong */
- for (dot= NULL, ull= ul; str < end; str++)
- {
- if ((ch= (uchar) (*str - '0')) < 10)
- {
- if (ull < CUTOFF || (ull == CUTOFF && ch <= CUTLIM))
- {
- ull= ull * 10 + ch;
- digits++;
- continue;
- }
- /*
- Adding the next digit would overflow.
- Remember the next digit in "addon", for rounding.
- Scan all digits with an optional single dot.
- */
- if (ull == CUTOFF)
- {
- ull= ULONGLONG_MAX;
- addon= 1;
- str++;
- }
- else
- addon= (*str >= '5');
- if (!dot)
- {
- for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; shift++, str++);
- if (str < end && *str == '.')
- {
- str++;
- for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; str++);
- }
- }
- else
- {
- shift= dot - str;
- for ( ; str < end && (ch= (uchar) (*str - '0')) < 10; str++);
- }
- goto exp;
- }
-
- if (*str == '.')
- {
- if (dot)
- {
- /* The second dot character */
- addon= 0;
- goto exp;
- }
- else
- {
- dot= str + 1;
- }
- continue;
- }
-
- /* Unknown character, exit the loop */
- break;
- }
- shift= dot ? dot - str : 0; /* Right shift */
- addon= 0;
-
-exp: /* [ E [ <sign> ] <unsigned integer> ] */
-
- if (!digits)
- {
- str= beg;
- goto ret_edom;
- }
-
- if (str < end && (*str == 'e' || *str == 'E'))
- {
- str++;
- if (str < end)
- {
- int negative_exp, exponent;
- if ((negative_exp= (*str == '-')) || *str=='+')
- {
- if (++str == end)
- goto ret_sign;
- }
- for (exponent= 0 ;
- str < end && (ch= (uchar) (*str - '0')) < 10;
- str++)
- {
- exponent= exponent * 10 + ch;
- }
- shift+= negative_exp ? -exponent : exponent;
- }
- }
-
- if (shift == 0) /* No shift, check addon digit */
- {
- if (addon)
- {
- if (ull == ULONGLONG_MAX)
- goto ret_too_big;
- ull++;
- }
- goto ret_sign;
- }
-
- if (shift < 0) /* Right shift */
- {
- ulonglong d, r;
-
- if (-shift >= DIGITS_IN_ULONGLONG)
- goto ret_zero; /* Exponent is a big negative number, return 0 */
-
- d= d10[-shift];
- r= (ull % d) * 2;
- ull /= d;
- if (r >= d)
- ull++;
- goto ret_sign;
- }
-
- if (shift > DIGITS_IN_ULONGLONG) /* Huge left shift */
- {
- if (!ull)
- goto ret_sign;
- goto ret_too_big;
- }
-
- for ( ; shift > 0; shift--, ull*= 10) /* Left shift */
- {
- if (ull > CUTOFF)
- goto ret_too_big; /* Overflow, number too big */
- }
-
-ret_sign:
- *endptr= (char*) str;
-
- if (!unsigned_flag)
- {
- if (negative)
- {
- if (ull > (ulonglong) LONGLONG_MIN)
- {
- *error= MY_ERRNO_ERANGE;
- return (ulonglong) LONGLONG_MIN;
- }
- *error= 0;
- return (ulonglong) -(longlong) ull;
- }
- else
- {
- if (ull > (ulonglong) LONGLONG_MAX)
- {
- *error= MY_ERRNO_ERANGE;
- return (ulonglong) LONGLONG_MAX;
- }
- *error= 0;
- return ull;
- }
- }
-
- /* Unsigned number */
- if (negative && ull)
- {
- *error= MY_ERRNO_ERANGE;
- return 0;
- }
- *error= 0;
- return ull;
-
-ret_zero:
- *endptr= (char*) str;
- *error= 0;
- return 0;
-
-ret_edom:
- *endptr= (char*) str;
- *error= MY_ERRNO_EDOM;
- return 0;
-
-ret_too_big:
- *endptr= (char*) str;
- *error= MY_ERRNO_ERANGE;
- return unsigned_flag ?
- ULONGLONG_MAX :
- negative ? (ulonglong) LONGLONG_MIN : (ulonglong) LONGLONG_MAX;
-}
-
-
-/*
- Check if a constant can be propagated
-
- SYNOPSIS:
- my_propagate_simple()
- cs Character set information
- str String to convert to double
- length Optional length for string.
-
- NOTES:
- Takes the string in the given charset and check
- if it can be safely propagated in the optimizer.
-
- create table t1 (
- s char(5) character set latin1 collate latin1_german2_ci);
- insert into t1 values (0xf6); -- o-umlaut
- select * from t1 where length(s)=1 and s='oe';
-
- The above query should return one row.
- We cannot convert this query into:
- select * from t1 where length('oe')=1 and s='oe';
-
- Currently we don't check the constant itself,
- and decide not to propagate a constant
- just if the collation itself allows tricky things
- like expansions and contractions. In the future
- we can write a more sophisticated functions to
- check the constants. For example, 'oa' can always
- be safety propagated in German2 because unlike
- 'oe' it does not have any special meaning.
-
- RETURN
- 1 if constant can be safely propagated
- 0 if it is not safe to propagate the constant
-*/
-
-
-
-my_bool my_propagate_simple(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *str __attribute__((unused)),
- size_t length __attribute__((unused)))
-{
- return 1;
-}
-
-
-my_bool my_propagate_complex(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *str __attribute__((unused)),
- size_t length __attribute__((unused)))
-{
- return 0;
-}
-
-
-MY_CHARSET_HANDLER my_charset_8bit_handler=
-{
- my_cset_init_8bit,
- NULL, /* ismbchar */
- my_mbcharlen_8bit, /* mbcharlen */
- my_numchars_8bit,
- my_charpos_8bit,
- my_well_formed_len_8bit,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_8bit,
- my_wc_mb_8bit,
- my_mb_ctype_8bit,
- my_caseup_str_8bit,
- my_casedn_str_8bit,
- my_caseup_8bit,
- my_casedn_8bit,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler =
-{
- my_coll_init_simple, /* init */
- my_strnncoll_simple,
- my_strnncollsp_simple,
- my_strnxfrm_simple,
- my_strnxfrmlen_simple,
- my_like_range_simple,
- my_wildcmp_8bit,
- my_strcasecmp_8bit,
- my_instr_simple,
- my_hash_sort_simple,
- my_propagate_simple
-};
diff --git a/dep/mysqllite/strings/ctype-tis620.c b/dep/mysqllite/strings/ctype-tis620.c
deleted file mode 100644
index 14b661ab0fc..00000000000
--- a/dep/mysqllite/strings/ctype-tis620.c
+++ /dev/null
@@ -1,965 +0,0 @@
-/* Copyright (C) 2000-2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Copyright (C) 2003 by Sathit Jittanupat
- <jsat66@hotmail.com,jsat66@yahoo.com>
- * solving bug crash with long text field string
- * sorting with different number of space or sign char. within string
-
- Copyright (C) 2001 by Korakot Chaovavanich <korakot@iname.com> and
- Apisilp Trunganont <apisilp@pantip.inet.co.th>
- Copyright (C) 1998, 1999 by Pruet Boonma <pruet@eng.cmu.ac.th>
- Copyright (C) 1998 by Theppitak Karoonboonyanan <thep@links.nectec.or.th>
- Copyright (C) 1989, 1991 by Samphan Raruenrom <samphan@thai.com>
-
- Permission to use, copy, modify, distribute and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies.
- Samphan Raruenrom , Theppitak Karoonboonyanan , Pruet Boonma ,
- Korakot Chaovavanich and Apisilp Trunganont makes no representations
- about the suitability of this software for any purpose. It is provided
- "as is" without express or implied warranty.
-*/
-
-
-/*
- This file is basicly tis620 character sets with some extra functions
- for tis-620 handling
-*/
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_tis620=4
- */
-
-#include <my_global.h>
-#include <my_sys.h>
-#include "m_string.h"
-#include "m_ctype.h"
-#include "t_ctype.h"
-
-#ifdef HAVE_CHARSET_tis620
-
-#define BUFFER_MULTIPLY 4
-#define M L_MIDDLE
-#define U L_UPPER
-#define L L_LOWER
-#define UU L_UPRUPR
-#define X L_MIDDLE
-
-
-static int t_ctype[][TOT_LEVELS] = {
- /*0x00*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x01*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x02*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x03*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x04*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x05*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x06*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x07*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x08*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x09*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x0F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x10*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x11*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x12*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x13*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x14*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x15*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x16*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x17*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x18*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x19*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x1F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x20*/ { IGNORE, IGNORE, L3_SPACE, IGNORE, M},
- /*0x21*/ { IGNORE, IGNORE, L3_EXCLAMATION, IGNORE, M },
- /*0x22*/ { IGNORE, IGNORE, L3_QUOTATION, IGNORE, M },
- /*0x23*/ { IGNORE, IGNORE, L3_NUMBER, IGNORE, M },
- /*0x24*/ { IGNORE, IGNORE, L3_DOLLAR, IGNORE, M },
- /*0x25*/ { IGNORE, IGNORE, L3_PERCENT, IGNORE, M },
- /*0x26*/ { IGNORE, IGNORE, L3_AMPERSAND, IGNORE, M },
- /*0x27*/ { IGNORE, IGNORE, L3_APOSTROPHE, IGNORE, M },
- /*0x28*/ { IGNORE, IGNORE, L3_L_PARANTHESIS, IGNORE, M },
- /*0x29*/ { IGNORE, IGNORE, L3_R_PARENTHESIS, IGNORE, M },
- /*0x2A*/ { IGNORE, IGNORE, L3_ASTERISK, IGNORE, M },
- /*0x2B*/ { IGNORE, IGNORE, L3_PLUS, IGNORE, M },
- /*0x2C*/ { IGNORE, IGNORE, L3_COMMA, IGNORE, M },
- /*0x2D*/ { IGNORE, IGNORE, L3_HYPHEN, IGNORE, M },
- /*0x2E*/ { IGNORE, IGNORE, L3_FULL_STOP, IGNORE, M },
- /*0x2F*/ { IGNORE, IGNORE, L3_SOLIDUS, IGNORE, M },
- /*0x30*/ { L1_08, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x31*/ { L1_18, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x32*/ { L1_28, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x33*/ { L1_38, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x34*/ { L1_48, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x35*/ { L1_58, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x36*/ { L1_68, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x37*/ { L1_78, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x38*/ { L1_88, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x39*/ { L1_98, L2_BLANK, L3_BLANK, L4_BLANK, M },
- /*0x3A*/ { IGNORE, IGNORE, L3_COLON, IGNORE, M },
- /*0x3B*/ { IGNORE, IGNORE, L3_SEMICOLON, IGNORE, M },
- /*0x3C*/ { IGNORE, IGNORE, L3_LESS_THAN, IGNORE, M },
- /*0x3D*/ { IGNORE, IGNORE, L3_EQUAL, IGNORE, M },
- /*0x3E*/ { IGNORE, IGNORE, L3_GREATER_THAN, IGNORE, M },
- /*0x3F*/ { IGNORE, IGNORE, L3_QUESTION, IGNORE, M },
- /*0x40*/ { IGNORE, IGNORE, L3_AT, IGNORE, M },
- /*0x41*/ { L1_A8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x42*/ { L1_B8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x43*/ { L1_C8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x44*/ { L1_D8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x45*/ { L1_E8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x46*/ { L1_F8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x47*/ { L1_G8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x48*/ { L1_H8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x49*/ { L1_I8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x4F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x50*/ { L1_P8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x51*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x52*/ { L1_R8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x53*/ { L1_S8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x54*/ { L1_T8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x55*/ { L1_U8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x56*/ { L1_V8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x57*/ { L1_W8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x58*/ { L1_X8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x59*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x5A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_CAP, M },
- /*0x5B*/ { IGNORE, IGNORE, L3_L_BRACKET, IGNORE, M },
- /*0x5C*/ { IGNORE, IGNORE, L3_BK_SOLIDUS, IGNORE, M },
- /*0x5D*/ { IGNORE, IGNORE, L3_R_BRACKET, IGNORE, M },
- /*0x5E*/ { IGNORE, IGNORE, L3_CIRCUMFLEX, IGNORE, M },
- /*0x5F*/ { IGNORE, IGNORE, L3_LOW_LINE, IGNORE, M },
- /*0x60*/ { IGNORE, IGNORE, L3_GRAVE, IGNORE, M },
- /*0x61*/ { L1_A8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x62*/ { L1_B8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x63*/ { L1_C8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x64*/ { L1_D8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x65*/ { L1_E8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x66*/ { L1_F8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x67*/ { L1_G8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x68*/ { L1_H8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x69*/ { L1_I8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6A*/ { L1_J8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6B*/ { L1_K8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6C*/ { L1_L8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6D*/ { L1_M8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6E*/ { L1_N8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x6F*/ { L1_O8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x70*/ { L1_P8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x71*/ { L1_Q8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x72*/ { L1_R8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x73*/ { L1_S8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x74*/ { L1_T8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x75*/ { L1_U8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x76*/ { L1_V8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x77*/ { L1_W8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x78*/ { L1_X8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x79*/ { L1_Y8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x7A*/ { L1_Z8, L2_BLANK, L3_BLANK, L4_MIN, M },
- /*0x7B*/ { IGNORE, IGNORE, L3_L_BRACE, IGNORE, M },
- /*0x7C*/ { IGNORE, IGNORE, L3_V_LINE, IGNORE, M },
- /*0x7D*/ { IGNORE, IGNORE, L3_R_BRACE, IGNORE, M },
- /*0x7E*/ { IGNORE, IGNORE, L3_TILDE, IGNORE, M },
- /*0x7F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x80*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x81*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x82*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x83*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x84*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x85*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x86*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x87*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x88*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x89*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x8F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x90*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x91*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x92*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x93*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x94*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x95*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x96*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x97*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x98*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x99*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9A*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9B*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9C*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9D*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9E*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0x9F*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xA0*/ { IGNORE, IGNORE, L3_NB_SACE, IGNORE, X },
- /*0xA1*/ { L1_KO_KAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA2*/ { L1_KHO_KHAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA3*/ { L1_KHO_KHUAT, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA4*/ { L1_KHO_KHWAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA5*/ { L1_KHO_KHON, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA6*/ { L1_KHO_RAKHANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA7*/ { L1_NGO_NGU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA8*/ { L1_CHO_CHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xA9*/ { L1_CHO_CHING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAA*/ { L1_CHO_CHANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAB*/ { L1_SO_SO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAC*/ { L1_CHO_CHOE, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAD*/ { L1_YO_YING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAE*/ { L1_DO_CHADA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xAF*/ { L1_TO_PATAK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB0*/ { L1_THO_THAN, L2_BLANK,L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB1*/ { L1_THO_NANGMONTHO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB2*/ { L1_THO_PHUTHAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB3*/ { L1_NO_NEN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB4*/ { L1_DO_DEK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB5*/ { L1_TO_TAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB6*/ { L1_THO_THUNG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB7*/ { L1_THO_THAHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB8*/ { L1_THO_THONG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xB9*/ { L1_NO_NU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBA*/ { L1_BO_BAIMAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBB*/ { L1_PO_PLA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBC*/ { L1_PHO_PHUNG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBD*/ { L1_FO_FA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBE*/ { L1_PHO_PHAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xBF*/ { L1_FO_FAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC0*/ { L1_PHO_SAMPHAO, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC1*/ { L1_MO_MA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC2*/ { L1_YO_YAK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC3*/ { L1_RO_RUA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC4*/ { L1_RU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC5*/ { L1_LO_LING, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC6*/ { L1_LU, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC7*/ { L1_WO_WAEN, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC8*/ { L1_SO_SALA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xC9*/ { L1_SO_RUSI, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCA*/ { L1_SO_SUA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCB*/ { L1_HO_HIP, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCC*/ { L1_LO_CHULA, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCD*/ { L1_O_ANG, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCE*/ { L1_HO_NOKHUK, L2_BLANK, L3_BLANK, L4_BLANK, M | _consnt},
- /*0xCF*/ { IGNORE, IGNORE, L3_PAIYAN_NOI, IGNORE, M},
- /*0xD0*/ { L1_SARA_A, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel},
- /*0xD1*/ { L1_MAI_HAN_AKAT, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel},
- /*0xD2*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel},
- /*0xD3*/ { L1_SARA_AM, L2_BLANK, L3_BLANK, L4_BLANK, M | _fllwvowel},
- /*0xD4*/ { L1_SARA_I, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel},
- /*0xD5*/ { L1_SARA_II, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel},
- /*0xD6*/ { L1_SARA_UE, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel},
- /*0xD7*/ { L1_SARA_UEE, L2_BLANK, L3_BLANK, L4_BLANK, U | _uprvowel},
- /*0xD8*/ { L1_SARA_U, L2_BLANK, L3_BLANK, L4_BLANK, L | _lwrvowel},
- /*0xD9*/ { L1_SARA_UU, L2_BLANK, L3_BLANK, L4_BLANK, L | _lwrvowel},
- /*0xDA*/ { IGNORE, L2_PINTHU, L3_BLANK, L4_BLANK, L },
- /*0xDB*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xDC*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xDD*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xDE*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xDF*/ { IGNORE, IGNORE, L3_BAHT, IGNORE, M},
- /*0xE0*/ { L1_SARA_E, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel },
- /*0xE1*/ { L1_SARA_AE, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel },
- /*0xE2*/ { L1_SARA_O, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel },
- /*0xE3*/ { L1_SARA_AI_MAIMUAN, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel },
- /*0xE4*/ { L1_SARA_AI_MAIMALAI, L2_BLANK, L3_BLANK, L4_BLANK, M | _ldvowel },
- /*0xE5*/ { L1_SARA_AA, L2_BLANK, L3_BLANK, L4_EXT, M | _fllwvowel },
- /*0xE6*/ { IGNORE, IGNORE, L3_MAI_YAMOK, IGNORE, M | _stone },
- /*0xE7*/ { IGNORE, L2_TYKHU, L3_BLANK, L4_BLANK, U | _diacrt1 | _stone },
- /*0xE8*/ { IGNORE, L2_TONE1, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone },
- /*0xE9*/ { IGNORE, L2_TONE2, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone },
- /*0xEA*/ { IGNORE, L2_TONE3, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone },
- /*0xEB*/ { IGNORE, L2_TONE4, L3_BLANK, L4_BLANK, UU | _tone | _combine | _stone },
- /*0xEC*/ { IGNORE, L2_GARAN, L3_BLANK, L4_BLANK, UU | _diacrt2 | _combine | _stone },
- /*0xED*/ { L1_NKHIT, L2_BLANK, L3_BLANK, L4_BLANK, U | _diacrt1 },
- /*0xEE*/ { IGNORE, L2_YAMAK, L3_BLANK, L4_BLANK, U | _diacrt1 },
- /*0xEF*/ { IGNORE, IGNORE, L3_FONGMAN, IGNORE, M },
- /*0xF0*/ { L1_08, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF1*/ { L1_18, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF2*/ { L1_28, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF3*/ { L1_38, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF4*/ { L1_48, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF5*/ { L1_58, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF6*/ { L1_68, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF7*/ { L1_78, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF8*/ { L1_88, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xF9*/ { L1_98, L2_THAII, L3_BLANK, L4_BLANK, M | _tdig },
- /*0xFA*/ { IGNORE, IGNORE, L3_ANGKHANKHU, IGNORE, X },
- /*0xFB*/ { IGNORE, IGNORE, L3_KHOMUT, IGNORE, X },
- /*0xFC*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xFD*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /*0xFE*/ { IGNORE, IGNORE, IGNORE, IGNORE, X },
- /* Utilize 0xFF for max_sort_chr in my_like_range_tis620 */
- /*0xFF*/ { 255 /*IGNORE*/, IGNORE, IGNORE, IGNORE, X },
-};
-
-static uchar ctype_tis620[257] =
-{
- 0, /* For standard library */
- 32,32,32,32,32,32,32,32,32,40,40,40,40,40,32,32,
- 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,
- 72,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
- 132,132,132,132,132,132,132,132,132,132,16,16,16,16,16,16,
- 16,129,129,129,129,129,129,1,1,1,1,1,1,1,1,1,
- 1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,
- 16,130,130,130,130,130,130,2,2,2,2,2,2,2,2,2,
- 2,2,2,2,2,2,2,2,2,2,2,16,16,16,16,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,
-};
-
-static uchar to_lower_tis620[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '[', '\\', ']', '^', '_',
- '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
- 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
- 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
- 'x', 'y', 'z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar to_upper_tis620[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '[', '\\', ']', '^', '_',
- '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', '~', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-static uchar sort_order_tis620[]=
-{
- '\000','\001','\002','\003','\004','\005','\006','\007',
- '\010','\011','\012','\013','\014','\015','\016','\017',
- '\020','\021','\022','\023','\024','\025','\026','\027',
- '\030','\031','\032','\033','\034','\035','\036','\037',
- ' ', '!', '"', '#', '$', '%', '&', '\'',
- '(', ')', '*', '+', ',', '-', '.', '/',
- '0', '1', '2', '3', '4', '5', '6', '7',
- '8', '9', ':', ';', '<', '=', '>', '?',
- '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '\\', ']', '[', '^', '_',
- 'E', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
- 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
- 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
- 'X', 'Y', 'Z', '{', '|', '}', 'Y', '\177',
- (uchar) '\200',(uchar) '\201',(uchar) '\202',(uchar) '\203',(uchar) '\204',(uchar) '\205',(uchar) '\206',(uchar) '\207',
- (uchar) '\210',(uchar) '\211',(uchar) '\212',(uchar) '\213',(uchar) '\214',(uchar) '\215',(uchar) '\216',(uchar) '\217',
- (uchar) '\220',(uchar) '\221',(uchar) '\222',(uchar) '\223',(uchar) '\224',(uchar) '\225',(uchar) '\226',(uchar) '\227',
- (uchar) '\230',(uchar) '\231',(uchar) '\232',(uchar) '\233',(uchar) '\234',(uchar) '\235',(uchar) '\236',(uchar) '\237',
- (uchar) '\240',(uchar) '\241',(uchar) '\242',(uchar) '\243',(uchar) '\244',(uchar) '\245',(uchar) '\246',(uchar) '\247',
- (uchar) '\250',(uchar) '\251',(uchar) '\252',(uchar) '\253',(uchar) '\254',(uchar) '\255',(uchar) '\256',(uchar) '\257',
- (uchar) '\260',(uchar) '\261',(uchar) '\262',(uchar) '\263',(uchar) '\264',(uchar) '\265',(uchar) '\266',(uchar) '\267',
- (uchar) '\270',(uchar) '\271',(uchar) '\272',(uchar) '\273',(uchar) '\274',(uchar) '\275',(uchar) '\276',(uchar) '\277',
- (uchar) '\300',(uchar) '\301',(uchar) '\302',(uchar) '\303',(uchar) '\304',(uchar) '\305',(uchar) '\306',(uchar) '\307',
- (uchar) '\310',(uchar) '\311',(uchar) '\312',(uchar) '\313',(uchar) '\314',(uchar) '\315',(uchar) '\316',(uchar) '\317',
- (uchar) '\320',(uchar) '\321',(uchar) '\322',(uchar) '\323',(uchar) '\324',(uchar) '\325',(uchar) '\326',(uchar) '\327',
- (uchar) '\330',(uchar) '\331',(uchar) '\332',(uchar) '\333',(uchar) '\334',(uchar) '\335',(uchar) '\336',(uchar) '\337',
- (uchar) '\340',(uchar) '\341',(uchar) '\342',(uchar) '\343',(uchar) '\344',(uchar) '\345',(uchar) '\346',(uchar) '\347',
- (uchar) '\350',(uchar) '\351',(uchar) '\352',(uchar) '\353',(uchar) '\354',(uchar) '\355',(uchar) '\356',(uchar) '\357',
- (uchar) '\360',(uchar) '\361',(uchar) '\362',(uchar) '\363',(uchar) '\364',(uchar) '\365',(uchar) '\366',(uchar) '\367',
- (uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
-};
-
-
-/*
- Convert thai string to "Standard C String Function" sortable string
-
- SYNOPSIS
- thai2sortable()
- tstr String to convert. Does not have to end with \0
- len Length of tstr
-*/
-
-static size_t thai2sortable(uchar *tstr, size_t len)
-{
- uchar *p;
- int tlen;
- uchar l2bias;
-
- tlen= len;
- l2bias= 256 - 8;
- for (p= tstr; tlen > 0; p++, tlen--)
- {
- uchar c= *p;
-
- if (isthai(c))
- {
- int *t_ctype0= t_ctype[c];
-
- if (isconsnt(c))
- l2bias -= 8;
- if (isldvowel(c) && tlen != 1 && isconsnt(p[1]))
- {
- /* simply swap between leading-vowel and consonant */
- *p= p[1];
- p[1]= c;
- tlen--;
- p++;
- continue;
- }
-
- /* if found level 2 char (L2_GARAN,L2_TONE*,L2_TYKHU) move to last */
- if (t_ctype0[1] >= L2_GARAN)
- {
- /*
- l2bias use to control position weight of l2char
- example (*=l2char) XX*X must come before X*XX
- */
- memmove((char*) p, (char*) (p+1), tlen-1);
- tstr[len-1]= l2bias + t_ctype0[1]- L2_GARAN +1;
- p--;
- continue;
- }
- }
- else
- {
- l2bias-= 8;
- *p= to_lower_tis620[c];
- }
- }
- return len;
-}
-
-
-/*
- strncoll() replacement, compare 2 string, both are converted to sortable
- string
-
- NOTE:
- We can't cut strings at end \0 as this would break comparision with
- LIKE characters, where the min range is stored as end \0
-
- Arg: 2 Strings and it compare length
- Ret: strcmp result
-*/
-
-static
-int my_strnncoll_tis620(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s1, size_t len1,
- const uchar *s2, size_t len2,
- my_bool s2_is_prefix)
-{
- uchar buf[80] ;
- uchar *tc1, *tc2;
- int i;
-
- if (s2_is_prefix && len1 > len2)
- len1= len2;
-
- tc1= buf;
- if ((len1 + len2 +2) > (int) sizeof(buf))
- tc1= (uchar*) my_str_malloc(len1+len2+2);
- tc2= tc1 + len1+1;
- memcpy((char*) tc1, (char*) s1, len1);
- tc1[len1]= 0; /* if length(s1)> len1, need to put 'end of string' */
- memcpy((char *)tc2, (char *)s2, len2);
- tc2[len2]= 0; /* put end of string */
- thai2sortable(tc1, len1);
- thai2sortable(tc2, len2);
- i= strcmp((char*)tc1, (char*)tc2);
- if (tc1 != buf)
- my_str_free(tc1);
- return i;
-}
-
-
-static
-int my_strnncollsp_tis620(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a0, size_t a_length,
- const uchar *b0, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- uchar buf[80], *end, *a, *b, *alloced= NULL;
- size_t length;
- int res= 0;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- a= buf;
- if ((a_length + b_length +2) > (int) sizeof(buf))
- alloced= a= (uchar*) my_str_malloc(a_length+b_length+2);
-
- b= a + a_length+1;
- memcpy((char*) a, (char*) a0, a_length);
- a[a_length]= 0; /* if length(a0)> len1, need to put 'end of string' */
- memcpy((char *)b, (char *)b0, b_length);
- b[b_length]= 0; /* put end of string */
- a_length= thai2sortable(a, a_length);
- b_length= thai2sortable(b, b_length);
-
- end= a + (length= min(a_length, b_length));
- while (a < end)
- {
- if (*a++ != *b++)
- {
- res= ((int) a[-1] - (int) b[-1]);
- goto ret;
- }
- }
- if (a_length != b_length)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put shorter key in s */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
- {
- if (*a != ' ')
- {
- res= (*a < ' ') ? -swap : swap;
- goto ret;
- }
- }
- }
-
-ret:
-
- if (alloced)
- my_str_free(alloced);
- return res;
-}
-
-
-/*
- strnxfrm replacment, convert Thai string to sortable string
-
- Arg: Destination buffer, source string, dest length and source length
- Ret: Conveted string size
-*/
-
-static
-size_t my_strnxfrm_tis620(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- size_t dstlen= len;
- len= (size_t) (strmake((char*) dest, (char*) src, min(len, srclen)) -
- (char*) dest);
- len= thai2sortable(dest, len);
- if (dstlen > len)
- bfill(dest + len, dstlen - len, ' ');
- return dstlen;
-}
-
-
-static unsigned short cs_to_uni[256]={
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0xFFFD,0x0E01,0x0E02,0x0E03,0x0E04,0x0E05,0x0E06,0x0E07,
-0x0E08,0x0E09,0x0E0A,0x0E0B,0x0E0C,0x0E0D,0x0E0E,0x0E0F,
-0x0E10,0x0E11,0x0E12,0x0E13,0x0E14,0x0E15,0x0E16,0x0E17,
-0x0E18,0x0E19,0x0E1A,0x0E1B,0x0E1C,0x0E1D,0x0E1E,0x0E1F,
-0x0E20,0x0E21,0x0E22,0x0E23,0x0E24,0x0E25,0x0E26,0x0E27,
-0x0E28,0x0E29,0x0E2A,0x0E2B,0x0E2C,0x0E2D,0x0E2E,0x0E2F,
-0x0E30,0x0E31,0x0E32,0x0E33,0x0E34,0x0E35,0x0E36,0x0E37,
-0x0E38,0x0E39,0x0E3A,0xFFFD,0xFFFD,0xFFFD,0xFFFD,0x0E3F,
-0x0E40,0x0E41,0x0E42,0x0E43,0x0E44,0x0E45,0x0E46,0x0E47,
-0x0E48,0x0E49,0x0E4A,0x0E4B,0x0E4C,0x0E4D,0x0E4E,0x0E4F,
-0x0E50,0x0E51,0x0E52,0x0E53,0x0E54,0x0E55,0x0E56,0x0E57,
-0x0E58,0x0E59,0x0E5A,0x0E5B,0xFFFD,0xFFFD,0xFFFD,0xFFFD
-};
-static uchar pl00[256]={
-0x0000,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087,
-0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F,
-0x0090,0x0091,0x0092,0x0093,0x0094,0x0095,0x0096,0x0097,
-0x0098,0x0099,0x009A,0x009B,0x009C,0x009D,0x009E,0x009F,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-static uchar pl0E[256]={
-0x0000,0x00A1,0x00A2,0x00A3,0x00A4,0x00A5,0x00A6,0x00A7,
-0x00A8,0x00A9,0x00AA,0x00AB,0x00AC,0x00AD,0x00AE,0x00AF,
-0x00B0,0x00B1,0x00B2,0x00B3,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x00B9,0x00BA,0x00BB,0x00BC,0x00BD,0x00BE,0x00BF,
-0x00C0,0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,
-0x00C8,0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,
-0x00D0,0x00D1,0x00D2,0x00D3,0x00D4,0x00D5,0x00D6,0x00D7,
-0x00D8,0x00D9,0x00DA,0x0000,0x0000,0x0000,0x0000,0x00DF,
-0x00E0,0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,
-0x00E8,0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,
-0x00F0,0x00F1,0x00F2,0x00F3,0x00F4,0x00F5,0x00F6,0x00F7,
-0x00F8,0x00F9,0x00FA,0x00FB,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-static uchar plFF[256]={
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,0x00FF,0x0000,0x0000
-};
-static uchar *uni_to_cs[256]={
-pl00,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,pl0E,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,plFF
-};
-
-
-static
-int my_mb_wc_tis620(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *wc,
- const uchar *str,
- const uchar *end __attribute__((unused)))
-{
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- *wc=cs_to_uni[*str];
- return (!wc[0] && str[0]) ? -1 : 1;
-}
-
-static
-int my_wc_mb_tis620(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc,
- uchar *str,
- uchar *end __attribute__((unused)))
-{
- uchar *pl;
-
- if (str >= end)
- return MY_CS_TOOSMALL;
-
- pl= uni_to_cs[(wc>>8) & 0xFF];
- str[0]= pl ? pl[wc & 0xFF] : '\0';
- return (!str[0] && wc) ? MY_CS_ILUNI : 1;
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_tis620,
- my_strnncollsp_tis620,
- my_strnxfrm_tis620,
- my_strnxfrmlen_simple,
- my_like_range_simple,
- my_wildcmp_8bit, /* wildcmp */
- my_strcasecmp_8bit,
- my_instr_simple, /* QQ: To be fixed */
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-static MY_CHARSET_HANDLER my_charset_handler=
-{
- NULL, /* init */
- NULL, /* ismbchar */
- my_mbcharlen_8bit, /* mbcharlen */
- my_numchars_8bit,
- my_charpos_8bit,
- my_well_formed_len_8bit,
- my_lengthsp_8bit,
- my_numcells_8bit,
- my_mb_wc_tis620, /* mb_wc */
- my_wc_mb_tis620, /* wc_mb */
- my_mb_ctype_8bit,
- my_caseup_str_8bit,
- my_casedn_str_8bit,
- my_caseup_8bit,
- my_casedn_8bit,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-
-CHARSET_INFO my_charset_tis620_thai_ci=
-{
- 18,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
- "tis620", /* cs name */
- "tis620_thai_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_tis620,
- to_lower_tis620,
- to_upper_tis620,
- sort_order_tis620,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 4, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_ci_handler
-};
-
-CHARSET_INFO my_charset_tis620_bin=
-{
- 89,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT, /* state */
- "tis620", /* cs name */
- "tis620_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_tis620,
- to_lower_tis620,
- to_upper_tis620,
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_handler,
- &my_collation_8bit_bin_handler
-};
-
-
-#endif
diff --git a/dep/mysqllite/strings/ctype-uca.c b/dep/mysqllite/strings/ctype-uca.c
deleted file mode 100644
index 2f7bf030d90..00000000000
--- a/dep/mysqllite/strings/ctype-uca.c
+++ /dev/null
@@ -1,11462 +0,0 @@
-/* Copyright (C) 2004 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/*
- UCA (Unicode Collation Algorithm) support.
- Written by Alexander Barkov <bar@mysql.com>
-
- Currently supports only subset of the full UCA:
- - Only Primary level key comparison
- - Basic Latin letters contraction is implemented
- - Variable weighting is done for Non-ignorable option
-
- Features that are not implemented yet:
- - No Normalization From D is done
- + No decomposition is done
- + No Thai/Lao orderding is done
- - No combining marks processing is done
-*/
-
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#ifdef HAVE_UCA_COLLATIONS
-
-#define MY_UCA_NPAGES 256
-#define MY_UCA_NCHARS 256
-#define MY_UCA_CMASK 255
-#define MY_UCA_PSHIFT 8
-
-uint16 page000data[]= { /* 0000 (4 weights per char) */
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0201,0x0000,0x0000,0x0000,
-0x0202,0x0000,0x0000,0x0000, 0x0203,0x0000,0x0000,0x0000,
-0x0204,0x0000,0x0000,0x0000, 0x0205,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000, 0x0251,0x0000,0x0000,0x0000,
-0x027E,0x0000,0x0000,0x0000, 0x02D2,0x0000,0x0000,0x0000,
-0x0E0F,0x0000,0x0000,0x0000, 0x02D3,0x0000,0x0000,0x0000,
-0x02CF,0x0000,0x0000,0x0000, 0x0277,0x0000,0x0000,0x0000,
-0x0288,0x0000,0x0000,0x0000, 0x0289,0x0000,0x0000,0x0000,
-0x02C8,0x0000,0x0000,0x0000, 0x0428,0x0000,0x0000,0x0000,
-0x022F,0x0000,0x0000,0x0000, 0x0221,0x0000,0x0000,0x0000,
-0x025D,0x0000,0x0000,0x0000, 0x02CC,0x0000,0x0000,0x0000,
-0x0E29,0x0000,0x0000,0x0000, 0x0E2A,0x0000,0x0000,0x0000,
-0x0E2B,0x0000,0x0000,0x0000, 0x0E2C,0x0000,0x0000,0x0000,
-0x0E2D,0x0000,0x0000,0x0000, 0x0E2E,0x0000,0x0000,0x0000,
-0x0E2F,0x0000,0x0000,0x0000, 0x0E30,0x0000,0x0000,0x0000,
-0x0E31,0x0000,0x0000,0x0000, 0x0E32,0x0000,0x0000,0x0000,
-0x023D,0x0000,0x0000,0x0000, 0x023A,0x0000,0x0000,0x0000,
-0x042C,0x0000,0x0000,0x0000, 0x042D,0x0000,0x0000,0x0000,
-0x042E,0x0000,0x0000,0x0000, 0x0255,0x0000,0x0000,0x0000,
-0x02C7,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E4A,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0EB9,0x0000,0x0000,0x0000, 0x0EC1,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0F10,0x0000,0x0000,0x0000, 0x0F21,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0FA7,0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000, 0x0FEA,0x0000,0x0000,0x0000,
-0x1002,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000, 0x1051,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000, 0x028A,0x0000,0x0000,0x0000,
-0x02CE,0x0000,0x0000,0x0000, 0x028B,0x0000,0x0000,0x0000,
-0x020F,0x0000,0x0000,0x0000, 0x021B,0x0000,0x0000,0x0000,
-0x020C,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E4A,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0EB9,0x0000,0x0000,0x0000, 0x0EC1,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0F10,0x0000,0x0000,0x0000, 0x0F21,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0FA7,0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000, 0x0FEA,0x0000,0x0000,0x0000,
-0x1002,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000, 0x1051,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000, 0x028C,0x0000,0x0000,0x0000,
-0x0430,0x0000,0x0000,0x0000, 0x028D,0x0000,0x0000,0x0000,
-0x0433,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0206,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000, 0x0252,0x0000,0x0000,0x0000,
-0x0E0E,0x0000,0x0000,0x0000, 0x0E10,0x0000,0x0000,0x0000,
-0x0E0D,0x0000,0x0000,0x0000, 0x0E11,0x0000,0x0000,0x0000,
-0x0431,0x0000,0x0000,0x0000, 0x02C2,0x0000,0x0000,0x0000,
-0x0214,0x0000,0x0000,0x0000, 0x02C5,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0286,0x0000,0x0000,0x0000,
-0x042F,0x0000,0x0000,0x0000, 0x0220,0x0000,0x0000,0x0000,
-0x02C6,0x0000,0x0000,0x0000, 0x0210,0x0000,0x0000,0x0000,
-0x034A,0x0000,0x0000,0x0000, 0x0429,0x0000,0x0000,0x0000,
-0x0E2B,0x0000,0x0000,0x0000, 0x0E2C,0x0000,0x0000,0x0000,
-0x020D,0x0000,0x0000,0x0000, 0x10F8,0x0000,0x0000,0x0000,
-0x02C3,0x0000,0x0000,0x0000, 0x0267,0x0000,0x0000,0x0000,
-0x0219,0x0000,0x0000,0x0000, 0x0E2A,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x0287,0x0000,0x0000,0x0000,
-0x0E2A,0x02CD,0x0E2D,0x0000, 0x0E2A,0x02CD,0x0E2B,0x0000,
-0x0E2C,0x02CD,0x0E2D,0x0000, 0x0256,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E38,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0E86,0x0000,0x0000,0x0000, 0x0F64,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x042B,0x0000,0x0000,0x0000,
-0x0F8D,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000,
-0x1094,0x0000,0x0000,0x0000, 0x0FEA,0x0FEA,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E38,0x0000,0x0000,0x0000, 0x0E60,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000, 0x0E8B,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0E86,0x0000,0x0000,0x0000, 0x0F64,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x0F82,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x042A,0x0000,0x0000,0x0000,
-0x0F8D,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000,
-0x1094,0x0000,0x0000,0x0000, 0x105E,0x0000,0x0000,0x0000
-};
-
-uint16 page001data[]= { /* 0100 (3 weights per char) */
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000,
-0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000,
-0x0E60,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E72,0x0000,0x0000, 0x0E72,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EED,0x0000,0x0000,
-0x0EED,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFF,0x0000,0x0000, 0x0EFB,0x0F10,0x0000,
-0x0EFB,0x0F10,0x0000, 0x0F10,0x0000,0x0000, 0x0F10,0x0000,0x0000,
-0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0FBC,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F2E,0x0267,0x0000, 0x0F2E,0x0267,0x0000, 0x0F36,0x0000,0x0000,
-0x0F36,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x10B1,0x0F64,0x0000, 0x0F7E,0x0000,0x0000,
-0x0F7E,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0E8B,0x0000, 0x0F82,0x0E8B,0x0000,
-0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x1007,0x0000,0x0000, 0x1007,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000,
-0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000,
-0x106A,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0E52,0x0000,0x0000,
-0x0E58,0x0000,0x0000, 0x0E5C,0x0000,0x0000, 0x0E5C,0x0000,0x0000,
-0x10A8,0x0000,0x0000, 0x10A8,0x0000,0x0000, 0x0F92,0x0000,0x0000,
-0x0E65,0x0000,0x0000, 0x0E65,0x0000,0x0000, 0x0E76,0x0000,0x0000,
-0x0E7A,0x0000,0x0000, 0x0E7E,0x0000,0x0000, 0x0E7E,0x0000,0x0000,
-0x106A,0x1051,0x0000, 0x0E90,0x0000,0x0000, 0x0E94,0x0000,0x0000,
-0x0E98,0x0000,0x0000, 0x0EBD,0x0000,0x0000, 0x0EBD,0x0000,0x0000,
-0x0ED1,0x0000,0x0000, 0x0ED9,0x0000,0x0000, 0x0EE9,0x0000,0x0000,
-0x0F0C,0x0000,0x0000, 0x0F08,0x0000,0x0000, 0x0F26,0x0000,0x0000,
-0x0F26,0x0000,0x0000, 0x0F3B,0x0000,0x0000, 0x0F53,0x0000,0x0000,
-0x1037,0x0000,0x0000, 0x0F6E,0x0000,0x0000, 0x0F72,0x0000,0x0000,
-0x0F9A,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0EDD,0x0000,0x0000, 0x0EDD,0x0000,0x0000, 0x0FAC,0x0000,0x0000,
-0x0FAC,0x0000,0x0000, 0x0FC4,0x0000,0x0000, 0x10A0,0x0000,0x0000,
-0x10A0,0x0000,0x0000, 0x0FF2,0x0000,0x0000, 0x0FF6,0x0000,0x0000,
-0x100B,0x0000,0x0000, 0x100F,0x0000,0x0000, 0x100F,0x0000,0x0000,
-0x1013,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x1040,0x0000,0x0000, 0x1049,0x0000,0x0000, 0x1066,0x0000,0x0000,
-0x1066,0x0000,0x0000, 0x106F,0x0000,0x0000, 0x106F,0x0000,0x0000,
-0x107F,0x0000,0x0000, 0x1084,0x0000,0x0000, 0x1084,0x0000,0x0000,
-0x1088,0x0000,0x0000, 0x109C,0x0000,0x0000, 0x10A4,0x0000,0x0000,
-0x10A4,0x0000,0x0000, 0x1002,0x0FEA,0x0000, 0x1098,0x0000,0x0000,
-0x10C8,0x0000,0x0000, 0x10CC,0x0000,0x0000, 0x10D0,0x0000,0x0000,
-0x10D4,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x106A,0x0000,
-0x0E6D,0x106A,0x0000, 0x0F2E,0x0F10,0x0000, 0x0F2E,0x0F10,0x0000,
-0x0F2E,0x0F10,0x0000, 0x0F64,0x0F10,0x0000, 0x0F64,0x0F10,0x0000,
-0x0F64,0x0F10,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x0E90,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0E38,0x0000,0x0000,
-0x0ECD,0x0000,0x0000, 0x0ECD,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x107F,0x0000,0x0000, 0x107F,0x0000,0x0000,
-0x0F10,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x106A,0x0000,
-0x0E6D,0x106A,0x0000, 0x0EC1,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EE9,0x0000,0x0000, 0x1098,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E38,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0F8D,0x0000,0x0000,
-0x0F8D,0x0000,0x0000 };
-
-uint16 page002data[]= { /* 0200 (3 weights per char) */
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x1090,0x0000,0x0000, 0x1090,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0F72,0x0000,0x0000,
-0x0E82,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA2,0x0000,0x0000,
-0x1073,0x0000,0x0000, 0x1073,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x0F4B,0x0000,0x0000, 0x0F7A,0x0000,0x0000,
-0x1017,0x0000,0x0000, 0xFBC0,0x8237,0x0000, 0xFBC0,0x8238,0x0000,
-0xFBC0,0x8239,0x0000, 0xFBC0,0x823A,0x0000, 0xFBC0,0x823B,0x0000,
-0xFBC0,0x823C,0x0000, 0xFBC0,0x823D,0x0000, 0xFBC0,0x823E,0x0000,
-0xFBC0,0x823F,0x0000, 0xFBC0,0x8240,0x0000, 0xFBC0,0x8241,0x0000,
-0xFBC0,0x8242,0x0000, 0xFBC0,0x8243,0x0000, 0xFBC0,0x8244,0x0000,
-0xFBC0,0x8245,0x0000, 0xFBC0,0x8246,0x0000, 0xFBC0,0x8247,0x0000,
-0xFBC0,0x8248,0x0000, 0xFBC0,0x8249,0x0000, 0xFBC0,0x824A,0x0000,
-0xFBC0,0x824B,0x0000, 0xFBC0,0x824C,0x0000, 0xFBC0,0x824D,0x0000,
-0xFBC0,0x824E,0x0000, 0xFBC0,0x824F,0x0000, 0x0E3E,0x0000,0x0000,
-0x0E42,0x0000,0x0000, 0x0E46,0x0000,0x0000, 0x0E58,0x0000,0x0000,
-0x0F92,0x0000,0x0000, 0x0E69,0x0000,0x0000, 0x0E76,0x0000,0x0000,
-0x0E7A,0x0000,0x0000, 0x0E9C,0x0000,0x0000, 0x0E94,0x0000,0x0000,
-0x0EA0,0x0000,0x0000, 0x0E98,0x0000,0x0000, 0x0EA4,0x0000,0x0000,
-0x0EA9,0x0000,0x0000, 0x0EAD,0x0000,0x0000, 0x0F19,0x0000,0x0000,
-0x0ED1,0x0000,0x0000, 0x0EC5,0x0000,0x0000, 0x0EC9,0x0000,0x0000,
-0x0ED9,0x0000,0x0000, 0x0EB5,0x0000,0x0000, 0x102B,0x0000,0x0000,
-0x0EF1,0x0000,0x0000, 0x0EF5,0x0000,0x0000, 0x0F08,0x0000,0x0000,
-0x0F0C,0x0000,0x0000, 0x0F03,0x0000,0x0000, 0x0F3F,0x0000,0x0000,
-0x0F43,0x0000,0x0000, 0x0F47,0x0000,0x0000, 0x0F4F,0x0000,0x0000,
-0x1037,0x0000,0x0000, 0x103C,0x0000,0x0000, 0x0F60,0x0000,0x0000,
-0x0F6E,0x0000,0x0000, 0x0F76,0x0000,0x0000, 0x0F68,0x0000,0x0000,
-0x0F9A,0x0000,0x0000, 0x0F88,0x0000,0x0000, 0x0F9E,0x0000,0x0000,
-0x0FB0,0x0000,0x0000, 0x0FC9,0x0000,0x0000, 0x0FCE,0x0000,0x0000,
-0x0FD2,0x0000,0x0000, 0x0FD6,0x0000,0x0000, 0x0FDA,0x0000,0x0000,
-0x0FDE,0x0000,0x0000, 0x0FE2,0x0000,0x0000, 0x0FC4,0x0000,0x0000,
-0x0FE6,0x0000,0x0000, 0x0FEE,0x0000,0x0000, 0x0FF2,0x0000,0x0000,
-0x0F1D,0x0000,0x0000, 0x0FFA,0x0000,0x0000, 0x0FFE,0x0000,0x0000,
-0x101B,0x0000,0x0000, 0x1013,0x0000,0x0000, 0x1027,0x0000,0x0000,
-0x1040,0x0000,0x0000, 0x1049,0x0000,0x0000, 0x104D,0x0000,0x0000,
-0x1056,0x0000,0x0000, 0x0F57,0x0000,0x0000, 0x1062,0x0000,0x0000,
-0x1077,0x0000,0x0000, 0x107B,0x0000,0x0000, 0x107F,0x0000,0x0000,
-0x108C,0x0000,0x0000, 0x10AC,0x0000,0x0000, 0x10B4,0x0000,0x0000,
-0x10C4,0x0000,0x0000, 0x10D8,0x0000,0x0000, 0x10DC,0x0000,0x0000,
-0x0E4E,0x0000,0x0000, 0x0EB1,0x0000,0x0000, 0x0ED5,0x0000,0x0000,
-0x0EE5,0x0000,0x0000, 0x0F15,0x0000,0x0000, 0x0F2A,0x0000,0x0000,
-0x0F32,0x0000,0x0000, 0x0FB8,0x0000,0x0000, 0x10BC,0x0000,0x0000,
-0x10C0,0x0000,0x0000, 0x0E6D,0x106A,0x0000, 0x0E6D,0x107F,0x0000,
-0x0E6D,0x107B,0x0000, 0x1002,0x0FEA,0x0000, 0x1002,0x0FF2,0x0000,
-0x1002,0x0E69,0x0000, 0x0EB9,0x0F7E,0x0000, 0x0F2E,0x0FEA,0x0000,
-0x0F2E,0x106A,0x0000, 0x10E0,0x0000,0x0000, 0x10E4,0x0000,0x0000,
-0x102F,0x0000,0x0000, 0x1033,0x0000,0x0000, 0x0EE1,0x0000,0x0000,
-0x0EF1,0x0000,0x0000, 0x0F10,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FC9,0x0000,0x0000, 0x0FD2,0x0000,0x0000, 0x0FE6,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x0317,0x0000,0x0000,
-0x0319,0x0000,0x0000, 0x0EF9,0x0000,0x0000, 0x10B1,0x0000,0x0000,
-0x0EFA,0x0000,0x0000, 0x10B3,0x0000,0x0000, 0x10B8,0x0000,0x0000,
-0x10B0,0x0000,0x0000, 0x10B9,0x0000,0x0000, 0x031A,0x0000,0x0000,
-0x031B,0x0000,0x0000, 0x031C,0x0000,0x0000, 0x031D,0x0000,0x0000,
-0x031E,0x0000,0x0000, 0x031F,0x0000,0x0000, 0x0320,0x0000,0x0000,
-0x0321,0x0000,0x0000, 0x0322,0x0000,0x0000, 0x0323,0x0000,0x0000,
-0x0324,0x0000,0x0000, 0x0325,0x0000,0x0000, 0x0326,0x0000,0x0000,
-0x0327,0x0000,0x0000, 0x0E01,0x0000,0x0000, 0x0E02,0x0000,0x0000,
-0x0328,0x0000,0x0000, 0x0329,0x0000,0x0000, 0x032A,0x0000,0x0000,
-0x032B,0x0000,0x0000, 0x032C,0x0000,0x0000, 0x032D,0x0000,0x0000,
-0x0212,0x0000,0x0000, 0x0213,0x0000,0x0000, 0x0215,0x0000,0x0000,
-0x021A,0x0000,0x0000, 0x020E,0x0000,0x0000, 0x0216,0x0000,0x0000,
-0x032E,0x0000,0x0000, 0x032F,0x0000,0x0000, 0x0ED9,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x105A,0x0000,0x0000,
-0x10B4,0x0000,0x0000, 0x0330,0x0000,0x0000, 0x0331,0x0000,0x0000,
-0x0332,0x0000,0x0000, 0x0333,0x0000,0x0000, 0x0334,0x0000,0x0000,
-0x0335,0x0000,0x0000, 0x0336,0x0000,0x0000, 0x0337,0x0000,0x0000,
-0x0338,0x0000,0x0000, 0x10B2,0x0000,0x0000, 0x0339,0x0000,0x0000,
-0x033A,0x0000,0x0000, 0x033B,0x0000,0x0000, 0x033C,0x0000,0x0000,
-0x033D,0x0000,0x0000, 0x033E,0x0000,0x0000, 0x033F,0x0000,0x0000,
-0x0340,0x0000,0x0000, 0x0341,0x0000,0x0000, 0x0342,0x0000,0x0000,
-0x0343,0x0000,0x0000, 0x0344,0x0000,0x0000, 0x0345,0x0000,0x0000,
-0x0346,0x0000,0x0000, 0x0347,0x0000,0x0000, 0x0348,0x0000,0x0000,
-0x0349,0x0000,0x0000 };
-
-uint16 page003data[]= { /* 0300 (4 weights per char) */
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0x8358,0x0000,0x0000, 0xFBC0,0x8359,0x0000,0x0000,
-0xFBC0,0x835A,0x0000,0x0000, 0xFBC0,0x835B,0x0000,0x0000,
-0xFBC0,0x835C,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x0E33,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000, 0x0EFB,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000, 0x101F,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000, 0x0E6D,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000, 0x0F5B,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000, 0x1002,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000, 0x105A,0x0000,0x0000,0x0000,
-0xFBC0,0x8370,0x0000,0x0000, 0xFBC0,0x8371,0x0000,0x0000,
-0xFBC0,0x8372,0x0000,0x0000, 0xFBC0,0x8373,0x0000,0x0000,
-0x0317,0x0000,0x0000,0x0000, 0x0318,0x0000,0x0000,0x0000,
-0xFBC0,0x8376,0x0000,0x0000, 0xFBC0,0x8377,0x0000,0x0000,
-0xFBC0,0x8378,0x0000,0x0000, 0xFBC0,0x8379,0x0000,0x0000,
-0x10F3,0x0000,0x0000,0x0000, 0xFBC0,0x837B,0x0000,0x0000,
-0xFBC0,0x837C,0x0000,0x0000, 0xFBC0,0x837D,0x0000,0x0000,
-0x023A,0x0000,0x0000,0x0000, 0xFBC0,0x837F,0x0000,0x0000,
-0xFBC0,0x8380,0x0000,0x0000, 0xFBC0,0x8381,0x0000,0x0000,
-0xFBC0,0x8382,0x0000,0x0000, 0xFBC0,0x8383,0x0000,0x0000,
-0x020D,0x0000,0x0000,0x0000, 0x0214,0x0000,0x0000,0x0000,
-0x10E8,0x0000,0x0000,0x0000, 0x0267,0x0000,0x0000,0x0000,
-0x10ED,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000,
-0x10F3,0x0000,0x0000,0x0000, 0xFBC0,0x838B,0x0000,0x0000,
-0x10FB,0x0000,0x0000,0x0000, 0xFBC0,0x838D,0x0000,0x0000,
-0x1104,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000,
-0x10F3,0x0000,0x0000,0x0000, 0x10E8,0x0000,0x0000,0x0000,
-0x10E9,0x0000,0x0000,0x0000, 0x10EA,0x0000,0x0000,0x0000,
-0x10EC,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000,
-0x10F0,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000,
-0x10F2,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000,
-0x10F5,0x0000,0x0000,0x0000, 0x10F6,0x0000,0x0000,0x0000,
-0x10F8,0x0000,0x0000,0x0000, 0x10F9,0x0000,0x0000,0x0000,
-0x10FA,0x0000,0x0000,0x0000, 0x10FB,0x0000,0x0000,0x0000,
-0x10FC,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000,
-0xFBC0,0x83A2,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000,
-0x1103,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x1105,0x0000,0x0000,0x0000, 0x1106,0x0000,0x0000,0x0000,
-0x1107,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000,
-0x10F3,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x10E8,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000,
-0x10F1,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000,
-0x1104,0x0000,0x0000,0x0000, 0x10E8,0x0000,0x0000,0x0000,
-0x10E9,0x0000,0x0000,0x0000, 0x10EA,0x0000,0x0000,0x0000,
-0x10EC,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000,
-0x10F0,0x0000,0x0000,0x0000, 0x10F1,0x0000,0x0000,0x0000,
-0x10F2,0x0000,0x0000,0x0000, 0x10F3,0x0000,0x0000,0x0000,
-0x10F5,0x0000,0x0000,0x0000, 0x10F6,0x0000,0x0000,0x0000,
-0x10F8,0x0000,0x0000,0x0000, 0x10F9,0x0000,0x0000,0x0000,
-0x10FA,0x0000,0x0000,0x0000, 0x10FB,0x0000,0x0000,0x0000,
-0x10FC,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000,
-0x1102,0x0000,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000,
-0x1103,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x1105,0x0000,0x0000,0x0000, 0x1106,0x0000,0x0000,0x0000,
-0x1107,0x0000,0x0000,0x0000, 0x1109,0x0000,0x0000,0x0000,
-0x10F3,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x10FB,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x1109,0x0000,0x0000,0x0000, 0xFBC0,0x83CF,0x0000,0x0000,
-0x10E9,0x0000,0x0000,0x0000, 0x10F2,0x0000,0x0000,0x0000,
-0x1104,0x0000,0x0000,0x0000, 0x1104,0x0000,0x0000,0x0000,
-0x1104,0x0000,0x0000,0x0000, 0x1105,0x0000,0x0000,0x0000,
-0x10FC,0x0000,0x0000,0x0000, 0x10F5,0x10E8,0x10F3,0x0000,
-0x10FF,0x0000,0x0000,0x0000, 0x10FF,0x0000,0x0000,0x0000,
-0x10EF,0x0000,0x0000,0x0000, 0x10EF,0x0000,0x0000,0x0000,
-0x10EE,0x0000,0x0000,0x0000, 0x10EE,0x0000,0x0000,0x0000,
-0x10FE,0x0000,0x0000,0x0000, 0x10FE,0x0000,0x0000,0x0000,
-0x110A,0x0000,0x0000,0x0000, 0x110A,0x0000,0x0000,0x0000,
-0x110D,0x0000,0x0000,0x0000, 0x110D,0x0000,0x0000,0x0000,
-0x110E,0x0000,0x0000,0x0000, 0x110E,0x0000,0x0000,0x0000,
-0x110F,0x0000,0x0000,0x0000, 0x110F,0x0000,0x0000,0x0000,
-0x1110,0x0000,0x0000,0x0000, 0x1110,0x0000,0x0000,0x0000,
-0x1111,0x0000,0x0000,0x0000, 0x1111,0x0000,0x0000,0x0000,
-0x1112,0x0000,0x0000,0x0000, 0x1112,0x0000,0x0000,0x0000,
-0x1113,0x0000,0x0000,0x0000, 0x1113,0x0000,0x0000,0x0000,
-0x10F5,0x0000,0x0000,0x0000, 0x1100,0x0000,0x0000,0x0000,
-0x1102,0x0000,0x0000,0x0000, 0x10F4,0x0000,0x0000,0x0000,
-0x10F2,0x0000,0x0000,0x0000, 0x10ED,0x0000,0x0000,0x0000,
-0x0423,0x0000,0x0000,0x0000, 0x110B,0x0000,0x0000,0x0000,
-0x110B,0x0000,0x0000,0x0000, 0x1102,0x0000,0x0000,0x0000,
-0x110C,0x0000,0x0000,0x0000, 0x110C,0x0000,0x0000,0x0000,
-0xFBC0,0x83FC,0x0000,0x0000, 0xFBC0,0x83FD,0x0000,0x0000,
-0xFBC0,0x83FE,0x0000,0x0000, 0xFBC0,0x83FF,0x0000,0x0000
-};
-
-uint16 page004data[]= { /* 0400 (3 weights per char) */
-0x1152,0x0000,0x0000, 0x1152,0x0000,0x0000, 0x1145,0x0000,0x0000,
-0x114A,0x0000,0x0000, 0x115A,0x0000,0x0000, 0x1173,0x0000,0x0000,
-0x1188,0x0000,0x0000, 0x118C,0x0000,0x0000, 0x1194,0x0000,0x0000,
-0x11B9,0x0000,0x0000, 0x11DA,0x0000,0x0000, 0x1215,0x0000,0x0000,
-0x1219,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x1221,0x0000,0x0000,
-0x127D,0x0000,0x0000, 0x1114,0x0000,0x0000, 0x112C,0x0000,0x0000,
-0x1130,0x0000,0x0000, 0x1134,0x0000,0x0000, 0x1140,0x0000,0x0000,
-0x1152,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x116A,0x0000,0x0000,
-0x117C,0x0000,0x0000, 0x1190,0x0000,0x0000, 0x1198,0x0000,0x0000,
-0x11B0,0x0000,0x0000, 0x11BE,0x0000,0x0000, 0x11C6,0x0000,0x0000,
-0x11DF,0x0000,0x0000, 0x11EF,0x0000,0x0000, 0x11FB,0x0000,0x0000,
-0x1203,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x121D,0x0000,0x0000,
-0x1239,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1259,0x0000,0x0000,
-0x1261,0x0000,0x0000, 0x1281,0x0000,0x0000, 0x1285,0x0000,0x0000,
-0x1289,0x0000,0x0000, 0x128D,0x0000,0x0000, 0x1295,0x0000,0x0000,
-0x12A1,0x0000,0x0000, 0x12A9,0x0000,0x0000, 0x12AD,0x0000,0x0000,
-0x1114,0x0000,0x0000, 0x112C,0x0000,0x0000, 0x1130,0x0000,0x0000,
-0x1134,0x0000,0x0000, 0x1140,0x0000,0x0000, 0x1152,0x0000,0x0000,
-0x115E,0x0000,0x0000, 0x116A,0x0000,0x0000, 0x117C,0x0000,0x0000,
-0x1190,0x0000,0x0000, 0x1198,0x0000,0x0000, 0x11B0,0x0000,0x0000,
-0x11BE,0x0000,0x0000, 0x11C6,0x0000,0x0000, 0x11DF,0x0000,0x0000,
-0x11EF,0x0000,0x0000, 0x11FB,0x0000,0x0000, 0x1203,0x0000,0x0000,
-0x120C,0x0000,0x0000, 0x121D,0x0000,0x0000, 0x1239,0x0000,0x0000,
-0x123D,0x0000,0x0000, 0x1259,0x0000,0x0000, 0x1261,0x0000,0x0000,
-0x1281,0x0000,0x0000, 0x1285,0x0000,0x0000, 0x1289,0x0000,0x0000,
-0x128D,0x0000,0x0000, 0x1295,0x0000,0x0000, 0x12A1,0x0000,0x0000,
-0x12A9,0x0000,0x0000, 0x12AD,0x0000,0x0000, 0x1152,0x0000,0x0000,
-0x1152,0x0000,0x0000, 0x1145,0x0000,0x0000, 0x114A,0x0000,0x0000,
-0x115A,0x0000,0x0000, 0x1173,0x0000,0x0000, 0x1188,0x0000,0x0000,
-0x118C,0x0000,0x0000, 0x1194,0x0000,0x0000, 0x11B9,0x0000,0x0000,
-0x11DA,0x0000,0x0000, 0x1215,0x0000,0x0000, 0x1219,0x0000,0x0000,
-0x117C,0x0000,0x0000, 0x1221,0x0000,0x0000, 0x127D,0x0000,0x0000,
-0x1249,0x0000,0x0000, 0x1249,0x0000,0x0000, 0x129D,0x0000,0x0000,
-0x129D,0x0000,0x0000, 0x12B1,0x0000,0x0000, 0x12B1,0x0000,0x0000,
-0x12B5,0x0000,0x0000, 0x12B5,0x0000,0x0000, 0x12BD,0x0000,0x0000,
-0x12BD,0x0000,0x0000, 0x12B9,0x0000,0x0000, 0x12B9,0x0000,0x0000,
-0x12C1,0x0000,0x0000, 0x12C1,0x0000,0x0000, 0x12C5,0x0000,0x0000,
-0x12C5,0x0000,0x0000, 0x12C9,0x0000,0x0000, 0x12C9,0x0000,0x0000,
-0x12CD,0x0000,0x0000, 0x12CD,0x0000,0x0000, 0x12D1,0x0000,0x0000,
-0x12D1,0x0000,0x0000, 0x12D5,0x0000,0x0000, 0x12D5,0x0000,0x0000,
-0x1235,0x0000,0x0000, 0x1235,0x0000,0x0000, 0x1255,0x0000,0x0000,
-0x1255,0x0000,0x0000, 0x1251,0x0000,0x0000, 0x1251,0x0000,0x0000,
-0x124D,0x0000,0x0000, 0x124D,0x0000,0x0000, 0x11F7,0x0000,0x0000,
-0x11F7,0x0000,0x0000, 0x034B,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x8487,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x1180,0x0000,0x0000, 0x1180,0x0000,0x0000, 0x1299,0x0000,0x0000,
-0x1299,0x0000,0x0000, 0x11FF,0x0000,0x0000, 0x11FF,0x0000,0x0000,
-0x1134,0x0000,0x0000, 0x1134,0x0000,0x0000, 0x1138,0x0000,0x0000,
-0x1138,0x0000,0x0000, 0x113C,0x0000,0x0000, 0x113C,0x0000,0x0000,
-0x1166,0x0000,0x0000, 0x1166,0x0000,0x0000, 0x114E,0x0000,0x0000,
-0x114E,0x0000,0x0000, 0x119C,0x0000,0x0000, 0x119C,0x0000,0x0000,
-0x11AC,0x0000,0x0000, 0x11AC,0x0000,0x0000, 0x11A8,0x0000,0x0000,
-0x11A8,0x0000,0x0000, 0x11A4,0x0000,0x0000, 0x11A4,0x0000,0x0000,
-0x11CE,0x0000,0x0000, 0x11CE,0x0000,0x0000, 0x11D6,0x0000,0x0000,
-0x11D6,0x0000,0x0000, 0x11F3,0x0000,0x0000, 0x11F3,0x0000,0x0000,
-0x12D9,0x0000,0x0000, 0x12D9,0x0000,0x0000, 0x1208,0x0000,0x0000,
-0x1208,0x0000,0x0000, 0x1211,0x0000,0x0000, 0x1211,0x0000,0x0000,
-0x122D,0x0000,0x0000, 0x122D,0x0000,0x0000, 0x1231,0x0000,0x0000,
-0x1231,0x0000,0x0000, 0x1241,0x0000,0x0000, 0x1241,0x0000,0x0000,
-0x125D,0x0000,0x0000, 0x125D,0x0000,0x0000, 0x1269,0x0000,0x0000,
-0x1269,0x0000,0x0000, 0x1271,0x0000,0x0000, 0x1271,0x0000,0x0000,
-0x1245,0x0000,0x0000, 0x1245,0x0000,0x0000, 0x1275,0x0000,0x0000,
-0x1275,0x0000,0x0000, 0x1279,0x0000,0x0000, 0x1279,0x0000,0x0000,
-0x12DD,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x115E,0x0000,0x0000,
-0x11A0,0x0000,0x0000, 0x11A0,0x0000,0x0000, 0x11B5,0x0000,0x0000,
-0x11B5,0x0000,0x0000, 0x11D2,0x0000,0x0000, 0x11D2,0x0000,0x0000,
-0x11CA,0x0000,0x0000, 0x11CA,0x0000,0x0000, 0x126D,0x0000,0x0000,
-0x126D,0x0000,0x0000, 0x11C2,0x0000,0x0000, 0x11C2,0x0000,0x0000,
-0xFBC0,0x84CF,0x0000, 0x1118,0x0000,0x0000, 0x1118,0x0000,0x0000,
-0x111C,0x0000,0x0000, 0x111C,0x0000,0x0000, 0x1128,0x0000,0x0000,
-0x1128,0x0000,0x0000, 0x1156,0x0000,0x0000, 0x1156,0x0000,0x0000,
-0x1120,0x0000,0x0000, 0x1120,0x0000,0x0000, 0x1124,0x0000,0x0000,
-0x1124,0x0000,0x0000, 0x1162,0x0000,0x0000, 0x1162,0x0000,0x0000,
-0x116F,0x0000,0x0000, 0x116F,0x0000,0x0000, 0x1177,0x0000,0x0000,
-0x1177,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x117C,0x0000,0x0000,
-0x1184,0x0000,0x0000, 0x1184,0x0000,0x0000, 0x11E3,0x0000,0x0000,
-0x11E3,0x0000,0x0000, 0x11E7,0x0000,0x0000, 0x11E7,0x0000,0x0000,
-0x11EB,0x0000,0x0000, 0x11EB,0x0000,0x0000, 0x12A5,0x0000,0x0000,
-0x12A5,0x0000,0x0000, 0x121D,0x0000,0x0000, 0x121D,0x0000,0x0000,
-0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x1229,0x0000,0x0000,
-0x1229,0x0000,0x0000, 0x1265,0x0000,0x0000, 0x1265,0x0000,0x0000,
-0xFBC0,0x84F6,0x0000, 0xFBC0,0x84F7,0x0000, 0x1291,0x0000,0x0000,
-0x1291,0x0000,0x0000, 0xFBC0,0x84FA,0x0000, 0xFBC0,0x84FB,0x0000,
-0xFBC0,0x84FC,0x0000, 0xFBC0,0x84FD,0x0000, 0xFBC0,0x84FE,0x0000,
-0xFBC0,0x84FF,0x0000 };
-
-uint16 page005data[]= { /* 0500 (3 weights per char) */
-0x1144,0x0000,0x0000, 0x1144,0x0000,0x0000, 0x1149,0x0000,0x0000,
-0x1149,0x0000,0x0000, 0x116E,0x0000,0x0000, 0x116E,0x0000,0x0000,
-0x117B,0x0000,0x0000, 0x117B,0x0000,0x0000, 0x11BD,0x0000,0x0000,
-0x11BD,0x0000,0x0000, 0x11DE,0x0000,0x0000, 0x11DE,0x0000,0x0000,
-0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1210,0x0000,0x0000,
-0x1210,0x0000,0x0000, 0xFBC0,0x8510,0x0000, 0xFBC0,0x8511,0x0000,
-0xFBC0,0x8512,0x0000, 0xFBC0,0x8513,0x0000, 0xFBC0,0x8514,0x0000,
-0xFBC0,0x8515,0x0000, 0xFBC0,0x8516,0x0000, 0xFBC0,0x8517,0x0000,
-0xFBC0,0x8518,0x0000, 0xFBC0,0x8519,0x0000, 0xFBC0,0x851A,0x0000,
-0xFBC0,0x851B,0x0000, 0xFBC0,0x851C,0x0000, 0xFBC0,0x851D,0x0000,
-0xFBC0,0x851E,0x0000, 0xFBC0,0x851F,0x0000, 0xFBC0,0x8520,0x0000,
-0xFBC0,0x8521,0x0000, 0xFBC0,0x8522,0x0000, 0xFBC0,0x8523,0x0000,
-0xFBC0,0x8524,0x0000, 0xFBC0,0x8525,0x0000, 0xFBC0,0x8526,0x0000,
-0xFBC0,0x8527,0x0000, 0xFBC0,0x8528,0x0000, 0xFBC0,0x8529,0x0000,
-0xFBC0,0x852A,0x0000, 0xFBC0,0x852B,0x0000, 0xFBC0,0x852C,0x0000,
-0xFBC0,0x852D,0x0000, 0xFBC0,0x852E,0x0000, 0xFBC0,0x852F,0x0000,
-0xFBC0,0x8530,0x0000, 0x130A,0x0000,0x0000, 0x130B,0x0000,0x0000,
-0x130C,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x130E,0x0000,0x0000,
-0x130F,0x0000,0x0000, 0x1310,0x0000,0x0000, 0x1311,0x0000,0x0000,
-0x1312,0x0000,0x0000, 0x1313,0x0000,0x0000, 0x1314,0x0000,0x0000,
-0x1315,0x0000,0x0000, 0x1316,0x0000,0x0000, 0x1317,0x0000,0x0000,
-0x1318,0x0000,0x0000, 0x1319,0x0000,0x0000, 0x131A,0x0000,0x0000,
-0x131B,0x0000,0x0000, 0x131C,0x0000,0x0000, 0x131D,0x0000,0x0000,
-0x131E,0x0000,0x0000, 0x131F,0x0000,0x0000, 0x1320,0x0000,0x0000,
-0x1321,0x0000,0x0000, 0x1322,0x0000,0x0000, 0x1323,0x0000,0x0000,
-0x1324,0x0000,0x0000, 0x1325,0x0000,0x0000, 0x1326,0x0000,0x0000,
-0x1327,0x0000,0x0000, 0x1328,0x0000,0x0000, 0x1329,0x0000,0x0000,
-0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, 0x132C,0x0000,0x0000,
-0x132D,0x0000,0x0000, 0x132E,0x0000,0x0000, 0x132F,0x0000,0x0000,
-0xFBC0,0x8557,0x0000, 0xFBC0,0x8558,0x0000, 0x1330,0x0000,0x0000,
-0x02EC,0x0000,0x0000, 0x02ED,0x0000,0x0000, 0x0253,0x0000,0x0000,
-0x0230,0x0000,0x0000, 0x0257,0x0000,0x0000, 0x02EE,0x0000,0x0000,
-0xFBC0,0x8560,0x0000, 0x130A,0x0000,0x0000, 0x130B,0x0000,0x0000,
-0x130C,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x130E,0x0000,0x0000,
-0x130F,0x0000,0x0000, 0x1310,0x0000,0x0000, 0x1311,0x0000,0x0000,
-0x1312,0x0000,0x0000, 0x1313,0x0000,0x0000, 0x1314,0x0000,0x0000,
-0x1315,0x0000,0x0000, 0x1316,0x0000,0x0000, 0x1317,0x0000,0x0000,
-0x1318,0x0000,0x0000, 0x1319,0x0000,0x0000, 0x131A,0x0000,0x0000,
-0x131B,0x0000,0x0000, 0x131C,0x0000,0x0000, 0x131D,0x0000,0x0000,
-0x131E,0x0000,0x0000, 0x131F,0x0000,0x0000, 0x1320,0x0000,0x0000,
-0x1321,0x0000,0x0000, 0x1322,0x0000,0x0000, 0x1323,0x0000,0x0000,
-0x1324,0x0000,0x0000, 0x1325,0x0000,0x0000, 0x1326,0x0000,0x0000,
-0x1327,0x0000,0x0000, 0x1328,0x0000,0x0000, 0x1329,0x0000,0x0000,
-0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, 0x132C,0x0000,0x0000,
-0x132D,0x0000,0x0000, 0x132E,0x0000,0x0000, 0x132F,0x0000,0x0000,
-0x130E,0x132B,0x0000, 0xFBC0,0x8588,0x0000, 0x023E,0x0000,0x0000,
-0x0222,0x0000,0x0000, 0xFBC0,0x858B,0x0000, 0xFBC0,0x858C,0x0000,
-0xFBC0,0x858D,0x0000, 0xFBC0,0x858E,0x0000, 0xFBC0,0x858F,0x0000,
-0xFBC0,0x8590,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x85A2,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x85BA,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x02EF,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x02F0,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x02F1,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x85C5,0x0000,
-0xFBC0,0x85C6,0x0000, 0xFBC0,0x85C7,0x0000, 0xFBC0,0x85C8,0x0000,
-0xFBC0,0x85C9,0x0000, 0xFBC0,0x85CA,0x0000, 0xFBC0,0x85CB,0x0000,
-0xFBC0,0x85CC,0x0000, 0xFBC0,0x85CD,0x0000, 0xFBC0,0x85CE,0x0000,
-0xFBC0,0x85CF,0x0000, 0x1331,0x0000,0x0000, 0x1332,0x0000,0x0000,
-0x1333,0x0000,0x0000, 0x1334,0x0000,0x0000, 0x1335,0x0000,0x0000,
-0x1336,0x0000,0x0000, 0x1337,0x0000,0x0000, 0x1338,0x0000,0x0000,
-0x1339,0x0000,0x0000, 0x133A,0x0000,0x0000, 0x133B,0x0000,0x0000,
-0x133B,0x0000,0x0000, 0x133C,0x0000,0x0000, 0x133D,0x0000,0x0000,
-0x133D,0x0000,0x0000, 0x133E,0x0000,0x0000, 0x133E,0x0000,0x0000,
-0x133F,0x0000,0x0000, 0x1340,0x0000,0x0000, 0x1341,0x0000,0x0000,
-0x1341,0x0000,0x0000, 0x1342,0x0000,0x0000, 0x1342,0x0000,0x0000,
-0x1343,0x0000,0x0000, 0x1344,0x0000,0x0000, 0x1345,0x0000,0x0000,
-0x1346,0x0000,0x0000, 0xFBC0,0x85EB,0x0000, 0xFBC0,0x85EC,0x0000,
-0xFBC0,0x85ED,0x0000, 0xFBC0,0x85EE,0x0000, 0xFBC0,0x85EF,0x0000,
-0x1336,0x1336,0x0000, 0x1336,0x133A,0x0000, 0x133A,0x133A,0x0000,
-0x02F2,0x0000,0x0000, 0x02F3,0x0000,0x0000, 0xFBC0,0x85F5,0x0000,
-0xFBC0,0x85F6,0x0000, 0xFBC0,0x85F7,0x0000, 0xFBC0,0x85F8,0x0000,
-0xFBC0,0x85F9,0x0000, 0xFBC0,0x85FA,0x0000, 0xFBC0,0x85FB,0x0000,
-0xFBC0,0x85FC,0x0000, 0xFBC0,0x85FD,0x0000, 0xFBC0,0x85FE,0x0000,
-0xFBC0,0x85FF,0x0000 };
-
-uint16 page006data[]= { /* 0600 (3 weights per char) */
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8604,0x0000, 0xFBC0,0x8605,0x0000,
-0xFBC0,0x8606,0x0000, 0xFBC0,0x8607,0x0000, 0xFBC0,0x8608,0x0000,
-0xFBC0,0x8609,0x0000, 0xFBC0,0x860A,0x0000, 0xFBC0,0x860B,0x0000,
-0x0231,0x0000,0x0000, 0x0232,0x0000,0x0000, 0x034C,0x0000,0x0000,
-0x034D,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8616,0x0000, 0xFBC0,0x8617,0x0000,
-0xFBC0,0x8618,0x0000, 0xFBC0,0x8619,0x0000, 0xFBC0,0x861A,0x0000,
-0x023B,0x0000,0x0000, 0xFBC0,0x861C,0x0000, 0xFBC0,0x861D,0x0000,
-0xFBC0,0x861E,0x0000, 0x0258,0x0000,0x0000, 0xFBC0,0x8620,0x0000,
-0x1347,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1349,0x0000,0x0000,
-0x134C,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x134F,0x0000,0x0000,
-0x1350,0x0000,0x0000, 0x1352,0x0000,0x0000, 0x1356,0x0000,0x0000,
-0x1357,0x0000,0x0000, 0x1358,0x0000,0x0000, 0x135E,0x0000,0x0000,
-0x1364,0x0000,0x0000, 0x1365,0x0000,0x0000, 0x1369,0x0000,0x0000,
-0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000, 0x1376,0x0000,0x0000,
-0x1381,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1387,0x0000,0x0000,
-0x1388,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138D,0x0000,0x0000,
-0x138F,0x0000,0x0000, 0x1390,0x0000,0x0000, 0xFBC0,0x863B,0x0000,
-0xFBC0,0x863C,0x0000, 0xFBC0,0x863D,0x0000, 0xFBC0,0x863E,0x0000,
-0xFBC0,0x863F,0x0000, 0x020B,0x0000,0x0000, 0x1393,0x0000,0x0000,
-0x139B,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x13AB,0x0000,0x0000,
-0x13B0,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B7,0x0000,0x0000,
-0x13BD,0x0000,0x0000, 0x13C7,0x0000,0x0000, 0x13C8,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x8659,0x0000,
-0xFBC0,0x865A,0x0000, 0xFBC0,0x865B,0x0000, 0xFBC0,0x865C,0x0000,
-0xFBC0,0x865D,0x0000, 0xFBC0,0x865E,0x0000, 0xFBC0,0x865F,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x02D4,0x0000,0x0000, 0x0233,0x0000,0x0000,
-0x0234,0x0000,0x0000, 0x02CB,0x0000,0x0000, 0x1351,0x0000,0x0000,
-0x139A,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x134B,0x0000,0x0000,
-0x134A,0x0000,0x0000, 0x134E,0x0000,0x0000, 0x1347,0x0000,0x0000,
-0x1350,0x1347,0x0000, 0x13BD,0x1347,0x0000, 0x13C1,0x1347,0x0000,
-0x13C8,0x1347,0x0000, 0x1359,0x0000,0x0000, 0x135A,0x0000,0x0000,
-0x1353,0x0000,0x0000, 0x135B,0x0000,0x0000, 0x135C,0x0000,0x0000,
-0x1354,0x0000,0x0000, 0x135D,0x0000,0x0000, 0x1355,0x0000,0x0000,
-0x1366,0x0000,0x0000, 0x1367,0x0000,0x0000, 0x135F,0x0000,0x0000,
-0x1360,0x0000,0x0000, 0x1368,0x0000,0x0000, 0x1361,0x0000,0x0000,
-0x1363,0x0000,0x0000, 0x136B,0x0000,0x0000, 0x136C,0x0000,0x0000,
-0x136D,0x0000,0x0000, 0x136E,0x0000,0x0000, 0x136F,0x0000,0x0000,
-0x1370,0x0000,0x0000, 0x1371,0x0000,0x0000, 0x1372,0x0000,0x0000,
-0x1373,0x0000,0x0000, 0x1377,0x0000,0x0000, 0x1378,0x0000,0x0000,
-0x1379,0x0000,0x0000, 0x137A,0x0000,0x0000, 0x137B,0x0000,0x0000,
-0x137C,0x0000,0x0000, 0x137D,0x0000,0x0000, 0x137E,0x0000,0x0000,
-0x137F,0x0000,0x0000, 0x1383,0x0000,0x0000, 0x1384,0x0000,0x0000,
-0x1385,0x0000,0x0000, 0x1389,0x0000,0x0000, 0x138A,0x0000,0x0000,
-0x138E,0x0000,0x0000, 0x1391,0x0000,0x0000, 0x1394,0x0000,0x0000,
-0x1395,0x0000,0x0000, 0x1396,0x0000,0x0000, 0x1397,0x0000,0x0000,
-0x1398,0x0000,0x0000, 0x1399,0x0000,0x0000, 0x139C,0x0000,0x0000,
-0x139D,0x0000,0x0000, 0x139F,0x0000,0x0000, 0x13A0,0x0000,0x0000,
-0x13A1,0x0000,0x0000, 0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000,
-0x13A4,0x0000,0x0000, 0x13A5,0x0000,0x0000, 0x13A6,0x0000,0x0000,
-0x13A7,0x0000,0x0000, 0x13A8,0x0000,0x0000, 0x13A9,0x0000,0x0000,
-0x13AA,0x0000,0x0000, 0x13AC,0x0000,0x0000, 0x13AD,0x0000,0x0000,
-0x13AE,0x0000,0x0000, 0x13AF,0x0000,0x0000, 0x13B6,0x0000,0x0000,
-0x13B2,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13B4,0x0000,0x0000,
-0x13B5,0x0000,0x0000, 0x13B8,0x0000,0x0000, 0x1362,0x0000,0x0000,
-0x13BC,0x0000,0x0000, 0x13B9,0x0000,0x0000, 0x13B9,0x0000,0x0000,
-0x13BA,0x0000,0x0000, 0x13BE,0x0000,0x0000, 0x13BF,0x0000,0x0000,
-0x13C0,0x0000,0x0000, 0x13C1,0x0000,0x0000, 0x13C2,0x0000,0x0000,
-0x13C3,0x0000,0x0000, 0x13C4,0x0000,0x0000, 0x13C5,0x0000,0x0000,
-0x13C9,0x0000,0x0000, 0x13CA,0x0000,0x0000, 0x13CB,0x0000,0x0000,
-0x13C6,0x0000,0x0000, 0x13CC,0x0000,0x0000, 0x13CD,0x0000,0x0000,
-0x13CE,0x0000,0x0000, 0x13CE,0x0000,0x0000, 0x025F,0x0000,0x0000,
-0x13BC,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x13BD,0x0000,0x0000, 0x13C8,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x034E,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x1374,0x0000,0x0000, 0x1380,0x0000,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x1386,0x0000,0x0000, 0x138B,0x0000,0x0000,
-0x1392,0x0000,0x0000, 0x1347,0x0000,0x0000, 0x13B0,0x0000,0x0000,
-0x13BB,0x0000,0x0000 };
-
-uint16 page007data[]= { /* 0700 (3 weights per char) */
-0x0270,0x0000,0x0000, 0x0260,0x0000,0x0000, 0x0261,0x0000,0x0000,
-0x023F,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0241,0x0000,0x0000,
-0x0242,0x0000,0x0000, 0x0243,0x0000,0x0000, 0x0244,0x0000,0x0000,
-0x0259,0x0000,0x0000, 0x02F4,0x0000,0x0000, 0x02F5,0x0000,0x0000,
-0x02F6,0x0000,0x0000, 0x02F7,0x0000,0x0000, 0xFBC0,0x870E,0x0000,
-0x0000,0x0000,0x0000, 0x13CF,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x13D0,0x0000,0x0000, 0x13D1,0x0000,0x0000, 0x13D1,0x0000,0x0000,
-0x13D3,0x0000,0x0000, 0x13D2,0x0000,0x0000, 0x13D4,0x0000,0x0000,
-0x13D5,0x0000,0x0000, 0x13D6,0x0000,0x0000, 0x13D8,0x0000,0x0000,
-0x13D9,0x0000,0x0000, 0x13D9,0x0000,0x0000, 0x13DA,0x0000,0x0000,
-0x13DB,0x0000,0x0000, 0x13DC,0x0000,0x0000, 0x13DE,0x0000,0x0000,
-0x13DF,0x0000,0x0000, 0x13E0,0x0000,0x0000, 0x13E1,0x0000,0x0000,
-0x13E1,0x0000,0x0000, 0x13E2,0x0000,0x0000, 0x13E3,0x0000,0x0000,
-0x13E3,0x0000,0x0000, 0x13E5,0x0000,0x0000, 0x13E6,0x0000,0x0000,
-0x13E7,0x0000,0x0000, 0x13E8,0x0000,0x0000, 0x13E9,0x0000,0x0000,
-0x13D0,0x0000,0x0000, 0x13D1,0x0000,0x0000, 0x13D3,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x874B,0x0000, 0xFBC0,0x874C,0x0000, 0x13D7,0x0000,0x0000,
-0x13DD,0x0000,0x0000, 0x13E4,0x0000,0x0000, 0xFBC0,0x8750,0x0000,
-0xFBC0,0x8751,0x0000, 0xFBC0,0x8752,0x0000, 0xFBC0,0x8753,0x0000,
-0xFBC0,0x8754,0x0000, 0xFBC0,0x8755,0x0000, 0xFBC0,0x8756,0x0000,
-0xFBC0,0x8757,0x0000, 0xFBC0,0x8758,0x0000, 0xFBC0,0x8759,0x0000,
-0xFBC0,0x875A,0x0000, 0xFBC0,0x875B,0x0000, 0xFBC0,0x875C,0x0000,
-0xFBC0,0x875D,0x0000, 0xFBC0,0x875E,0x0000, 0xFBC0,0x875F,0x0000,
-0xFBC0,0x8760,0x0000, 0xFBC0,0x8761,0x0000, 0xFBC0,0x8762,0x0000,
-0xFBC0,0x8763,0x0000, 0xFBC0,0x8764,0x0000, 0xFBC0,0x8765,0x0000,
-0xFBC0,0x8766,0x0000, 0xFBC0,0x8767,0x0000, 0xFBC0,0x8768,0x0000,
-0xFBC0,0x8769,0x0000, 0xFBC0,0x876A,0x0000, 0xFBC0,0x876B,0x0000,
-0xFBC0,0x876C,0x0000, 0xFBC0,0x876D,0x0000, 0xFBC0,0x876E,0x0000,
-0xFBC0,0x876F,0x0000, 0xFBC0,0x8770,0x0000, 0xFBC0,0x8771,0x0000,
-0xFBC0,0x8772,0x0000, 0xFBC0,0x8773,0x0000, 0xFBC0,0x8774,0x0000,
-0xFBC0,0x8775,0x0000, 0xFBC0,0x8776,0x0000, 0xFBC0,0x8777,0x0000,
-0xFBC0,0x8778,0x0000, 0xFBC0,0x8779,0x0000, 0xFBC0,0x877A,0x0000,
-0xFBC0,0x877B,0x0000, 0xFBC0,0x877C,0x0000, 0xFBC0,0x877D,0x0000,
-0xFBC0,0x877E,0x0000, 0xFBC0,0x877F,0x0000, 0x13EA,0x0000,0x0000,
-0x13ED,0x0000,0x0000, 0x13EE,0x0000,0x0000, 0x13EF,0x0000,0x0000,
-0x13F1,0x0000,0x0000, 0x13F2,0x0000,0x0000, 0x13F3,0x0000,0x0000,
-0x13F4,0x0000,0x0000, 0x13F7,0x0000,0x0000, 0x13F9,0x0000,0x0000,
-0x13FA,0x0000,0x0000, 0x13FB,0x0000,0x0000, 0x13FD,0x0000,0x0000,
-0x1401,0x0000,0x0000, 0x1402,0x0000,0x0000, 0x1404,0x0000,0x0000,
-0x1405,0x0000,0x0000, 0x1409,0x0000,0x0000, 0x140A,0x0000,0x0000,
-0x140B,0x0000,0x0000, 0x140C,0x0000,0x0000, 0x140D,0x0000,0x0000,
-0x140E,0x0000,0x0000, 0x140F,0x0000,0x0000, 0x13FE,0x0000,0x0000,
-0x13EB,0x0000,0x0000, 0x13EC,0x0000,0x0000, 0x13FC,0x0000,0x0000,
-0x13F0,0x0000,0x0000, 0x1406,0x0000,0x0000, 0x1407,0x0000,0x0000,
-0x1408,0x0000,0x0000, 0x13FF,0x0000,0x0000, 0x1400,0x0000,0x0000,
-0x13F5,0x0000,0x0000, 0x13F6,0x0000,0x0000, 0x1403,0x0000,0x0000,
-0x13F8,0x0000,0x0000, 0x1411,0x0000,0x0000, 0x1412,0x0000,0x0000,
-0x1413,0x0000,0x0000, 0x1414,0x0000,0x0000, 0x1415,0x0000,0x0000,
-0x1416,0x0000,0x0000, 0x1417,0x0000,0x0000, 0x1418,0x0000,0x0000,
-0x1419,0x0000,0x0000, 0x141A,0x0000,0x0000, 0x141B,0x0000,0x0000,
-0x1410,0x0000,0x0000, 0xFBC0,0x87B2,0x0000, 0xFBC0,0x87B3,0x0000,
-0xFBC0,0x87B4,0x0000, 0xFBC0,0x87B5,0x0000, 0xFBC0,0x87B6,0x0000,
-0xFBC0,0x87B7,0x0000, 0xFBC0,0x87B8,0x0000, 0xFBC0,0x87B9,0x0000,
-0xFBC0,0x87BA,0x0000, 0xFBC0,0x87BB,0x0000, 0xFBC0,0x87BC,0x0000,
-0xFBC0,0x87BD,0x0000, 0xFBC0,0x87BE,0x0000, 0xFBC0,0x87BF,0x0000,
-0xFBC0,0x87C0,0x0000, 0xFBC0,0x87C1,0x0000, 0xFBC0,0x87C2,0x0000,
-0xFBC0,0x87C3,0x0000, 0xFBC0,0x87C4,0x0000, 0xFBC0,0x87C5,0x0000,
-0xFBC0,0x87C6,0x0000, 0xFBC0,0x87C7,0x0000, 0xFBC0,0x87C8,0x0000,
-0xFBC0,0x87C9,0x0000, 0xFBC0,0x87CA,0x0000, 0xFBC0,0x87CB,0x0000,
-0xFBC0,0x87CC,0x0000, 0xFBC0,0x87CD,0x0000, 0xFBC0,0x87CE,0x0000,
-0xFBC0,0x87CF,0x0000, 0xFBC0,0x87D0,0x0000, 0xFBC0,0x87D1,0x0000,
-0xFBC0,0x87D2,0x0000, 0xFBC0,0x87D3,0x0000, 0xFBC0,0x87D4,0x0000,
-0xFBC0,0x87D5,0x0000, 0xFBC0,0x87D6,0x0000, 0xFBC0,0x87D7,0x0000,
-0xFBC0,0x87D8,0x0000, 0xFBC0,0x87D9,0x0000, 0xFBC0,0x87DA,0x0000,
-0xFBC0,0x87DB,0x0000, 0xFBC0,0x87DC,0x0000, 0xFBC0,0x87DD,0x0000,
-0xFBC0,0x87DE,0x0000, 0xFBC0,0x87DF,0x0000, 0xFBC0,0x87E0,0x0000,
-0xFBC0,0x87E1,0x0000, 0xFBC0,0x87E2,0x0000, 0xFBC0,0x87E3,0x0000,
-0xFBC0,0x87E4,0x0000, 0xFBC0,0x87E5,0x0000, 0xFBC0,0x87E6,0x0000,
-0xFBC0,0x87E7,0x0000, 0xFBC0,0x87E8,0x0000, 0xFBC0,0x87E9,0x0000,
-0xFBC0,0x87EA,0x0000, 0xFBC0,0x87EB,0x0000, 0xFBC0,0x87EC,0x0000,
-0xFBC0,0x87ED,0x0000, 0xFBC0,0x87EE,0x0000, 0xFBC0,0x87EF,0x0000,
-0xFBC0,0x87F0,0x0000, 0xFBC0,0x87F1,0x0000, 0xFBC0,0x87F2,0x0000,
-0xFBC0,0x87F3,0x0000, 0xFBC0,0x87F4,0x0000, 0xFBC0,0x87F5,0x0000,
-0xFBC0,0x87F6,0x0000, 0xFBC0,0x87F7,0x0000, 0xFBC0,0x87F8,0x0000,
-0xFBC0,0x87F9,0x0000, 0xFBC0,0x87FA,0x0000, 0xFBC0,0x87FB,0x0000,
-0xFBC0,0x87FC,0x0000, 0xFBC0,0x87FD,0x0000, 0xFBC0,0x87FE,0x0000,
-0xFBC0,0x87FF,0x0000 };
-
-uint16 page009data[]= { /* 0900 (3 weights per char) */
-0xFBC0,0x8900,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000,
-0x155C,0x0000,0x0000, 0x155D,0x0000,0x0000, 0x155E,0x0000,0x0000,
-0x155F,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1561,0x0000,0x0000,
-0x1563,0x0000,0x0000, 0x1565,0x0000,0x0000, 0x1566,0x0000,0x0000,
-0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000,
-0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156C,0x0000,0x0000,
-0x156D,0x0000,0x0000, 0x156E,0x0000,0x0000, 0x156F,0x0000,0x0000,
-0x1570,0x0000,0x0000, 0x1571,0x0000,0x0000, 0x1572,0x0000,0x0000,
-0x1573,0x0000,0x0000, 0x1574,0x0000,0x0000, 0x1575,0x0000,0x0000,
-0x1576,0x0000,0x0000, 0x1577,0x0000,0x0000, 0x1578,0x0000,0x0000,
-0x1579,0x0000,0x0000, 0x157A,0x0000,0x0000, 0x157B,0x0000,0x0000,
-0x157C,0x0000,0x0000, 0x157D,0x0000,0x0000, 0x157E,0x0000,0x0000,
-0x157F,0x0000,0x0000, 0x1580,0x0000,0x0000, 0x1580,0x0000,0x0000,
-0x1581,0x0000,0x0000, 0x1582,0x0000,0x0000, 0x1583,0x0000,0x0000,
-0x1584,0x0000,0x0000, 0x1585,0x0000,0x0000, 0x1586,0x0000,0x0000,
-0x1587,0x0000,0x0000, 0x1587,0x0000,0x0000, 0x1588,0x0000,0x0000,
-0x1589,0x0000,0x0000, 0x1589,0x0000,0x0000, 0x158A,0x0000,0x0000,
-0x158B,0x0000,0x0000, 0x158C,0x0000,0x0000, 0x158D,0x0000,0x0000,
-0x158E,0x0000,0x0000, 0xFBC0,0x893A,0x0000, 0xFBC0,0x893B,0x0000,
-0x0000,0x0000,0x0000, 0x158F,0x0000,0x0000, 0x1590,0x0000,0x0000,
-0x1591,0x0000,0x0000, 0x1592,0x0000,0x0000, 0x1593,0x0000,0x0000,
-0x1594,0x0000,0x0000, 0x1595,0x0000,0x0000, 0x1596,0x0000,0x0000,
-0x1599,0x0000,0x0000, 0x159A,0x0000,0x0000, 0x159B,0x0000,0x0000,
-0x159C,0x0000,0x0000, 0x159D,0x0000,0x0000, 0x159E,0x0000,0x0000,
-0x159F,0x0000,0x0000, 0x15A0,0x0000,0x0000, 0x15A1,0x0000,0x0000,
-0xFBC0,0x894E,0x0000, 0xFBC0,0x894F,0x0000, 0x1559,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8955,0x0000, 0xFBC0,0x8956,0x0000,
-0xFBC0,0x8957,0x0000, 0x156D,0x0000,0x0000, 0x156E,0x0000,0x0000,
-0x156F,0x0000,0x0000, 0x1574,0x0000,0x0000, 0x1579,0x0000,0x0000,
-0x157A,0x0000,0x0000, 0x1582,0x0000,0x0000, 0x1586,0x0000,0x0000,
-0x1562,0x0000,0x0000, 0x1564,0x0000,0x0000, 0x1597,0x0000,0x0000,
-0x1598,0x0000,0x0000, 0x0268,0x0000,0x0000, 0x0269,0x0000,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x02FA,0x0000,0x0000, 0xFBC0,0x8971,0x0000,
-0xFBC0,0x8972,0x0000, 0xFBC0,0x8973,0x0000, 0xFBC0,0x8974,0x0000,
-0xFBC0,0x8975,0x0000, 0xFBC0,0x8976,0x0000, 0xFBC0,0x8977,0x0000,
-0xFBC0,0x8978,0x0000, 0xFBC0,0x8979,0x0000, 0xFBC0,0x897A,0x0000,
-0xFBC0,0x897B,0x0000, 0xFBC0,0x897C,0x0000, 0xFBC0,0x897D,0x0000,
-0xFBC0,0x897E,0x0000, 0xFBC0,0x897F,0x0000, 0xFBC0,0x8980,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x8984,0x0000, 0x15A2,0x0000,0x0000, 0x15A3,0x0000,0x0000,
-0x15A4,0x0000,0x0000, 0x15A5,0x0000,0x0000, 0x15A6,0x0000,0x0000,
-0x15A7,0x0000,0x0000, 0x15A8,0x0000,0x0000, 0x15AA,0x0000,0x0000,
-0xFBC0,0x898D,0x0000, 0xFBC0,0x898E,0x0000, 0x15AC,0x0000,0x0000,
-0x15AD,0x0000,0x0000, 0xFBC0,0x8991,0x0000, 0xFBC0,0x8992,0x0000,
-0x15AE,0x0000,0x0000, 0x15AF,0x0000,0x0000, 0x15B0,0x0000,0x0000,
-0x15B1,0x0000,0x0000, 0x15B2,0x0000,0x0000, 0x15B3,0x0000,0x0000,
-0x15B4,0x0000,0x0000, 0x15B5,0x0000,0x0000, 0x15B6,0x0000,0x0000,
-0x15B7,0x0000,0x0000, 0x15B8,0x0000,0x0000, 0x15B9,0x0000,0x0000,
-0x15BA,0x0000,0x0000, 0x15BB,0x0000,0x0000, 0x15BC,0x0000,0x0000,
-0x15BD,0x0000,0x0000, 0x15BE,0x0000,0x0000, 0x15BF,0x0000,0x0000,
-0x15C0,0x0000,0x0000, 0x15C1,0x0000,0x0000, 0x15C2,0x0000,0x0000,
-0x15C3,0x0000,0x0000, 0xFBC0,0x89A9,0x0000, 0x15C4,0x0000,0x0000,
-0x15C5,0x0000,0x0000, 0x15C6,0x0000,0x0000, 0x15C7,0x0000,0x0000,
-0x15C8,0x0000,0x0000, 0x15C9,0x0000,0x0000, 0x15CA,0x0000,0x0000,
-0xFBC0,0x89B1,0x0000, 0x15CC,0x0000,0x0000, 0xFBC0,0x89B3,0x0000,
-0xFBC0,0x89B4,0x0000, 0xFBC0,0x89B5,0x0000, 0x15CE,0x0000,0x0000,
-0x15CF,0x0000,0x0000, 0x15D0,0x0000,0x0000, 0x15D1,0x0000,0x0000,
-0xFBC0,0x89BA,0x0000, 0xFBC0,0x89BB,0x0000, 0x0000,0x0000,0x0000,
-0x15D2,0x0000,0x0000, 0x15D3,0x0000,0x0000, 0x15D4,0x0000,0x0000,
-0x15D5,0x0000,0x0000, 0x15D6,0x0000,0x0000, 0x15D7,0x0000,0x0000,
-0x15D8,0x0000,0x0000, 0x15D9,0x0000,0x0000, 0xFBC0,0x89C5,0x0000,
-0xFBC0,0x89C6,0x0000, 0x15DC,0x0000,0x0000, 0x15DD,0x0000,0x0000,
-0xFBC0,0x89C9,0x0000, 0xFBC0,0x89CA,0x0000, 0x15DE,0x0000,0x0000,
-0x15DF,0x0000,0x0000, 0x15E0,0x0000,0x0000, 0xFBC0,0x89CE,0x0000,
-0xFBC0,0x89CF,0x0000, 0xFBC0,0x89D0,0x0000, 0xFBC0,0x89D1,0x0000,
-0xFBC0,0x89D2,0x0000, 0xFBC0,0x89D3,0x0000, 0xFBC0,0x89D4,0x0000,
-0xFBC0,0x89D5,0x0000, 0xFBC0,0x89D6,0x0000, 0x15E1,0x0000,0x0000,
-0xFBC0,0x89D8,0x0000, 0xFBC0,0x89D9,0x0000, 0xFBC0,0x89DA,0x0000,
-0xFBC0,0x89DB,0x0000, 0x15BC,0x0000,0x0000, 0x15BD,0x0000,0x0000,
-0xFBC0,0x89DE,0x0000, 0x15C9,0x0000,0x0000, 0x15A9,0x0000,0x0000,
-0x15AB,0x0000,0x0000, 0x15DA,0x0000,0x0000, 0x15DB,0x0000,0x0000,
-0xFBC0,0x89E4,0x0000, 0xFBC0,0x89E5,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x15CB,0x0000,0x0000, 0x15CD,0x0000,0x0000, 0x0E12,0x0000,0x0000,
-0x0E13,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0DC7,0x0000,0x0000,
-0x0DC8,0x0000,0x0000, 0x0350,0x0000,0x0000, 0xFBC0,0x89FB,0x0000,
-0xFBC0,0x89FC,0x0000, 0xFBC0,0x89FD,0x0000, 0xFBC0,0x89FE,0x0000,
-0xFBC0,0x89FF,0x0000 };
-
-uint16 page00Adata[]= { /* 0A00 (3 weights per char) */
-0xFBC0,0x8A00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8A04,0x0000, 0x15E7,0x0000,0x0000,
-0x15E8,0x0000,0x0000, 0x15EC,0x0000,0x0000, 0x15ED,0x0000,0x0000,
-0x15E4,0x0000,0x0000, 0x15E5,0x0000,0x0000, 0xFBC0,0x8A0B,0x0000,
-0xFBC0,0x8A0C,0x0000, 0xFBC0,0x8A0D,0x0000, 0xFBC0,0x8A0E,0x0000,
-0x15EE,0x0000,0x0000, 0x15E9,0x0000,0x0000, 0xFBC0,0x8A11,0x0000,
-0xFBC0,0x8A12,0x0000, 0x15E6,0x0000,0x0000, 0x15EA,0x0000,0x0000,
-0x15F1,0x0000,0x0000, 0x15F2,0x0000,0x0000, 0x15F3,0x0000,0x0000,
-0x15F4,0x0000,0x0000, 0x15F5,0x0000,0x0000, 0x15F6,0x0000,0x0000,
-0x15F7,0x0000,0x0000, 0x15F8,0x0000,0x0000, 0x15F9,0x0000,0x0000,
-0x15FA,0x0000,0x0000, 0x15FB,0x0000,0x0000, 0x15FC,0x0000,0x0000,
-0x15FD,0x0000,0x0000, 0x15FE,0x0000,0x0000, 0x15FF,0x0000,0x0000,
-0x1600,0x0000,0x0000, 0x1601,0x0000,0x0000, 0x1602,0x0000,0x0000,
-0x1603,0x0000,0x0000, 0x1604,0x0000,0x0000, 0xFBC0,0x8A29,0x0000,
-0x1605,0x0000,0x0000, 0x1606,0x0000,0x0000, 0x1607,0x0000,0x0000,
-0x1608,0x0000,0x0000, 0x1609,0x0000,0x0000, 0x160A,0x0000,0x0000,
-0x160B,0x0000,0x0000, 0xFBC0,0x8A31,0x0000, 0x160C,0x0000,0x0000,
-0x160C,0x0000,0x0000, 0xFBC0,0x8A34,0x0000, 0x160D,0x0000,0x0000,
-0x15EF,0x0000,0x0000, 0xFBC0,0x8A37,0x0000, 0x15EF,0x0000,0x0000,
-0x15F0,0x0000,0x0000, 0xFBC0,0x8A3A,0x0000, 0xFBC0,0x8A3B,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8A3D,0x0000, 0x160F,0x0000,0x0000,
-0x1610,0x0000,0x0000, 0x1611,0x0000,0x0000, 0x1612,0x0000,0x0000,
-0x1613,0x0000,0x0000, 0xFBC0,0x8A43,0x0000, 0xFBC0,0x8A44,0x0000,
-0xFBC0,0x8A45,0x0000, 0xFBC0,0x8A46,0x0000, 0x1614,0x0000,0x0000,
-0x1615,0x0000,0x0000, 0xFBC0,0x8A49,0x0000, 0xFBC0,0x8A4A,0x0000,
-0x1616,0x0000,0x0000, 0x1617,0x0000,0x0000, 0x1618,0x0000,0x0000,
-0xFBC0,0x8A4E,0x0000, 0xFBC0,0x8A4F,0x0000, 0xFBC0,0x8A50,0x0000,
-0xFBC0,0x8A51,0x0000, 0xFBC0,0x8A52,0x0000, 0xFBC0,0x8A53,0x0000,
-0xFBC0,0x8A54,0x0000, 0xFBC0,0x8A55,0x0000, 0xFBC0,0x8A56,0x0000,
-0xFBC0,0x8A57,0x0000, 0xFBC0,0x8A58,0x0000, 0x15F2,0x0000,0x0000,
-0x15F3,0x0000,0x0000, 0x15F8,0x0000,0x0000, 0x160E,0x0000,0x0000,
-0xFBC0,0x8A5D,0x0000, 0x1606,0x0000,0x0000, 0xFBC0,0x8A5F,0x0000,
-0xFBC0,0x8A60,0x0000, 0xFBC0,0x8A61,0x0000, 0xFBC0,0x8A62,0x0000,
-0xFBC0,0x8A63,0x0000, 0xFBC0,0x8A64,0x0000, 0xFBC0,0x8A65,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x15EB,0x0000,0x0000, 0x15E3,0x0000,0x0000, 0x15E2,0x0000,0x0000,
-0xFBC0,0x8A75,0x0000, 0xFBC0,0x8A76,0x0000, 0xFBC0,0x8A77,0x0000,
-0xFBC0,0x8A78,0x0000, 0xFBC0,0x8A79,0x0000, 0xFBC0,0x8A7A,0x0000,
-0xFBC0,0x8A7B,0x0000, 0xFBC0,0x8A7C,0x0000, 0xFBC0,0x8A7D,0x0000,
-0xFBC0,0x8A7E,0x0000, 0xFBC0,0x8A7F,0x0000, 0xFBC0,0x8A80,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x8A84,0x0000, 0x161A,0x0000,0x0000, 0x161B,0x0000,0x0000,
-0x161C,0x0000,0x0000, 0x161D,0x0000,0x0000, 0x161E,0x0000,0x0000,
-0x161F,0x0000,0x0000, 0x1620,0x0000,0x0000, 0x1622,0x0000,0x0000,
-0x1624,0x0000,0x0000, 0xFBC0,0x8A8E,0x0000, 0x1625,0x0000,0x0000,
-0x1626,0x0000,0x0000, 0x1627,0x0000,0x0000, 0xFBC0,0x8A92,0x0000,
-0x1628,0x0000,0x0000, 0x1629,0x0000,0x0000, 0x162A,0x0000,0x0000,
-0x162B,0x0000,0x0000, 0x162C,0x0000,0x0000, 0x162D,0x0000,0x0000,
-0x162E,0x0000,0x0000, 0x162F,0x0000,0x0000, 0x1630,0x0000,0x0000,
-0x1631,0x0000,0x0000, 0x1632,0x0000,0x0000, 0x1633,0x0000,0x0000,
-0x1634,0x0000,0x0000, 0x1635,0x0000,0x0000, 0x1636,0x0000,0x0000,
-0x1637,0x0000,0x0000, 0x1638,0x0000,0x0000, 0x1639,0x0000,0x0000,
-0x163A,0x0000,0x0000, 0x163B,0x0000,0x0000, 0x163C,0x0000,0x0000,
-0x163D,0x0000,0x0000, 0xFBC0,0x8AA9,0x0000, 0x163E,0x0000,0x0000,
-0x163F,0x0000,0x0000, 0x1640,0x0000,0x0000, 0x1641,0x0000,0x0000,
-0x1642,0x0000,0x0000, 0x1643,0x0000,0x0000, 0x1644,0x0000,0x0000,
-0xFBC0,0x8AB1,0x0000, 0x1645,0x0000,0x0000, 0x1646,0x0000,0x0000,
-0xFBC0,0x8AB4,0x0000, 0x1647,0x0000,0x0000, 0x1648,0x0000,0x0000,
-0x1649,0x0000,0x0000, 0x164A,0x0000,0x0000, 0x164B,0x0000,0x0000,
-0xFBC0,0x8ABA,0x0000, 0xFBC0,0x8ABB,0x0000, 0x0000,0x0000,0x0000,
-0x164C,0x0000,0x0000, 0x164D,0x0000,0x0000, 0x164E,0x0000,0x0000,
-0x164F,0x0000,0x0000, 0x1650,0x0000,0x0000, 0x1651,0x0000,0x0000,
-0x1652,0x0000,0x0000, 0x1653,0x0000,0x0000, 0x1656,0x0000,0x0000,
-0xFBC0,0x8AC6,0x0000, 0x1657,0x0000,0x0000, 0x1658,0x0000,0x0000,
-0x1659,0x0000,0x0000, 0xFBC0,0x8ACA,0x0000, 0x165A,0x0000,0x0000,
-0x165B,0x0000,0x0000, 0x165C,0x0000,0x0000, 0xFBC0,0x8ACE,0x0000,
-0xFBC0,0x8ACF,0x0000, 0x1619,0x0000,0x0000, 0xFBC0,0x8AD1,0x0000,
-0xFBC0,0x8AD2,0x0000, 0xFBC0,0x8AD3,0x0000, 0xFBC0,0x8AD4,0x0000,
-0xFBC0,0x8AD5,0x0000, 0xFBC0,0x8AD6,0x0000, 0xFBC0,0x8AD7,0x0000,
-0xFBC0,0x8AD8,0x0000, 0xFBC0,0x8AD9,0x0000, 0xFBC0,0x8ADA,0x0000,
-0xFBC0,0x8ADB,0x0000, 0xFBC0,0x8ADC,0x0000, 0xFBC0,0x8ADD,0x0000,
-0xFBC0,0x8ADE,0x0000, 0xFBC0,0x8ADF,0x0000, 0x1621,0x0000,0x0000,
-0x1623,0x0000,0x0000, 0x1654,0x0000,0x0000, 0x1655,0x0000,0x0000,
-0xFBC0,0x8AE4,0x0000, 0xFBC0,0x8AE5,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0xFBC0,0x8AF0,0x0000, 0x0E14,0x0000,0x0000, 0xFBC0,0x8AF2,0x0000,
-0xFBC0,0x8AF3,0x0000, 0xFBC0,0x8AF4,0x0000, 0xFBC0,0x8AF5,0x0000,
-0xFBC0,0x8AF6,0x0000, 0xFBC0,0x8AF7,0x0000, 0xFBC0,0x8AF8,0x0000,
-0xFBC0,0x8AF9,0x0000, 0xFBC0,0x8AFA,0x0000, 0xFBC0,0x8AFB,0x0000,
-0xFBC0,0x8AFC,0x0000, 0xFBC0,0x8AFD,0x0000, 0xFBC0,0x8AFE,0x0000,
-0xFBC0,0x8AFF,0x0000 };
-
-uint16 page00Bdata[]= { /* 0B00 (3 weights per char) */
-0xFBC0,0x8B00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8B04,0x0000, 0x165D,0x0000,0x0000,
-0x165E,0x0000,0x0000, 0x165F,0x0000,0x0000, 0x1660,0x0000,0x0000,
-0x1661,0x0000,0x0000, 0x1662,0x0000,0x0000, 0x1663,0x0000,0x0000,
-0x1665,0x0000,0x0000, 0xFBC0,0x8B0D,0x0000, 0xFBC0,0x8B0E,0x0000,
-0x1667,0x0000,0x0000, 0x1668,0x0000,0x0000, 0xFBC0,0x8B11,0x0000,
-0xFBC0,0x8B12,0x0000, 0x1669,0x0000,0x0000, 0x166A,0x0000,0x0000,
-0x166B,0x0000,0x0000, 0x166C,0x0000,0x0000, 0x166D,0x0000,0x0000,
-0x166E,0x0000,0x0000, 0x166F,0x0000,0x0000, 0x1670,0x0000,0x0000,
-0x1671,0x0000,0x0000, 0x1672,0x0000,0x0000, 0x1673,0x0000,0x0000,
-0x1674,0x0000,0x0000, 0x1675,0x0000,0x0000, 0x1676,0x0000,0x0000,
-0x1677,0x0000,0x0000, 0x1678,0x0000,0x0000, 0x1679,0x0000,0x0000,
-0x167A,0x0000,0x0000, 0x167B,0x0000,0x0000, 0x167C,0x0000,0x0000,
-0x167D,0x0000,0x0000, 0x167E,0x0000,0x0000, 0xFBC0,0x8B29,0x0000,
-0x167F,0x0000,0x0000, 0x1680,0x0000,0x0000, 0x1681,0x0000,0x0000,
-0x1682,0x0000,0x0000, 0x1683,0x0000,0x0000, 0x1684,0x0000,0x0000,
-0x1686,0x0000,0x0000, 0xFBC0,0x8B31,0x0000, 0x1687,0x0000,0x0000,
-0x1688,0x0000,0x0000, 0xFBC0,0x8B34,0x0000, 0x1689,0x0000,0x0000,
-0x168B,0x0000,0x0000, 0x168C,0x0000,0x0000, 0x168D,0x0000,0x0000,
-0x168E,0x0000,0x0000, 0xFBC0,0x8B3A,0x0000, 0xFBC0,0x8B3B,0x0000,
-0x0000,0x0000,0x0000, 0x168F,0x0000,0x0000, 0x1690,0x0000,0x0000,
-0x1691,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1693,0x0000,0x0000,
-0x1694,0x0000,0x0000, 0x1695,0x0000,0x0000, 0xFBC0,0x8B44,0x0000,
-0xFBC0,0x8B45,0x0000, 0xFBC0,0x8B46,0x0000, 0x1696,0x0000,0x0000,
-0x1697,0x0000,0x0000, 0xFBC0,0x8B49,0x0000, 0xFBC0,0x8B4A,0x0000,
-0x1698,0x0000,0x0000, 0x1699,0x0000,0x0000, 0x169A,0x0000,0x0000,
-0xFBC0,0x8B4E,0x0000, 0xFBC0,0x8B4F,0x0000, 0xFBC0,0x8B50,0x0000,
-0xFBC0,0x8B51,0x0000, 0xFBC0,0x8B52,0x0000, 0xFBC0,0x8B53,0x0000,
-0xFBC0,0x8B54,0x0000, 0xFBC0,0x8B55,0x0000, 0x169B,0x0000,0x0000,
-0x169C,0x0000,0x0000, 0xFBC0,0x8B58,0x0000, 0xFBC0,0x8B59,0x0000,
-0xFBC0,0x8B5A,0x0000, 0xFBC0,0x8B5B,0x0000, 0x1677,0x0000,0x0000,
-0x1678,0x0000,0x0000, 0xFBC0,0x8B5E,0x0000, 0x1685,0x0000,0x0000,
-0x1664,0x0000,0x0000, 0x1666,0x0000,0x0000, 0xFBC0,0x8B62,0x0000,
-0xFBC0,0x8B63,0x0000, 0xFBC0,0x8B64,0x0000, 0xFBC0,0x8B65,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x0351,0x0000,0x0000, 0x168A,0x0000,0x0000,
-0xFBC0,0x8B72,0x0000, 0xFBC0,0x8B73,0x0000, 0xFBC0,0x8B74,0x0000,
-0xFBC0,0x8B75,0x0000, 0xFBC0,0x8B76,0x0000, 0xFBC0,0x8B77,0x0000,
-0xFBC0,0x8B78,0x0000, 0xFBC0,0x8B79,0x0000, 0xFBC0,0x8B7A,0x0000,
-0xFBC0,0x8B7B,0x0000, 0xFBC0,0x8B7C,0x0000, 0xFBC0,0x8B7D,0x0000,
-0xFBC0,0x8B7E,0x0000, 0xFBC0,0x8B7F,0x0000, 0xFBC0,0x8B80,0x0000,
-0xFBC0,0x8B81,0x0000, 0x0000,0x0000,0x0000, 0x169D,0x0000,0x0000,
-0xFBC0,0x8B84,0x0000, 0x169E,0x0000,0x0000, 0x169F,0x0000,0x0000,
-0x16A0,0x0000,0x0000, 0x16A1,0x0000,0x0000, 0x16A2,0x0000,0x0000,
-0x16A3,0x0000,0x0000, 0xFBC0,0x8B8B,0x0000, 0xFBC0,0x8B8C,0x0000,
-0xFBC0,0x8B8D,0x0000, 0x16A4,0x0000,0x0000, 0x16A5,0x0000,0x0000,
-0x16A6,0x0000,0x0000, 0xFBC0,0x8B91,0x0000, 0x16A7,0x0000,0x0000,
-0x16A8,0x0000,0x0000, 0x16A9,0x0000,0x0000, 0x16AA,0x0000,0x0000,
-0xFBC0,0x8B96,0x0000, 0xFBC0,0x8B97,0x0000, 0xFBC0,0x8B98,0x0000,
-0x16AB,0x0000,0x0000, 0x16AC,0x0000,0x0000, 0xFBC0,0x8B9B,0x0000,
-0x16AD,0x0000,0x0000, 0xFBC0,0x8B9D,0x0000, 0x16AE,0x0000,0x0000,
-0x16AF,0x0000,0x0000, 0xFBC0,0x8BA0,0x0000, 0xFBC0,0x8BA1,0x0000,
-0xFBC0,0x8BA2,0x0000, 0x16B0,0x0000,0x0000, 0x16B1,0x0000,0x0000,
-0xFBC0,0x8BA5,0x0000, 0xFBC0,0x8BA6,0x0000, 0xFBC0,0x8BA7,0x0000,
-0x16B2,0x0000,0x0000, 0x16B3,0x0000,0x0000, 0x16B4,0x0000,0x0000,
-0xFBC0,0x8BAB,0x0000, 0xFBC0,0x8BAC,0x0000, 0xFBC0,0x8BAD,0x0000,
-0x16B5,0x0000,0x0000, 0x16B6,0x0000,0x0000, 0x16B7,0x0000,0x0000,
-0x16B8,0x0000,0x0000, 0x16B9,0x0000,0x0000, 0x16BA,0x0000,0x0000,
-0x16BB,0x0000,0x0000, 0x16BC,0x0000,0x0000, 0xFBC0,0x8BB6,0x0000,
-0x16BD,0x0000,0x0000, 0x16BE,0x0000,0x0000, 0x16BF,0x0000,0x0000,
-0xFBC0,0x8BBA,0x0000, 0xFBC0,0x8BBB,0x0000, 0xFBC0,0x8BBC,0x0000,
-0xFBC0,0x8BBD,0x0000, 0x16C0,0x0000,0x0000, 0x16C1,0x0000,0x0000,
-0x16C2,0x0000,0x0000, 0x16C3,0x0000,0x0000, 0x16C4,0x0000,0x0000,
-0xFBC0,0x8BC3,0x0000, 0xFBC0,0x8BC4,0x0000, 0xFBC0,0x8BC5,0x0000,
-0x16C5,0x0000,0x0000, 0x16C6,0x0000,0x0000, 0x16C7,0x0000,0x0000,
-0xFBC0,0x8BC9,0x0000, 0x16C8,0x0000,0x0000, 0x16C9,0x0000,0x0000,
-0x16CA,0x0000,0x0000, 0x16CB,0x0000,0x0000, 0xFBC0,0x8BCE,0x0000,
-0xFBC0,0x8BCF,0x0000, 0xFBC0,0x8BD0,0x0000, 0xFBC0,0x8BD1,0x0000,
-0xFBC0,0x8BD2,0x0000, 0xFBC0,0x8BD3,0x0000, 0xFBC0,0x8BD4,0x0000,
-0xFBC0,0x8BD5,0x0000, 0xFBC0,0x8BD6,0x0000, 0x16CC,0x0000,0x0000,
-0xFBC0,0x8BD8,0x0000, 0xFBC0,0x8BD9,0x0000, 0xFBC0,0x8BDA,0x0000,
-0xFBC0,0x8BDB,0x0000, 0xFBC0,0x8BDC,0x0000, 0xFBC0,0x8BDD,0x0000,
-0xFBC0,0x8BDE,0x0000, 0xFBC0,0x8BDF,0x0000, 0xFBC0,0x8BE0,0x0000,
-0xFBC0,0x8BE1,0x0000, 0xFBC0,0x8BE2,0x0000, 0xFBC0,0x8BE3,0x0000,
-0xFBC0,0x8BE4,0x0000, 0xFBC0,0x8BE5,0x0000, 0xFBC0,0x8BE6,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0DC9,0x0000,0x0000, 0x0DCA,0x0000,0x0000, 0x0DCB,0x0000,0x0000,
-0x0352,0x0000,0x0000, 0x0353,0x0000,0x0000, 0x0354,0x0000,0x0000,
-0x0355,0x0000,0x0000, 0x0356,0x0000,0x0000, 0x0357,0x0000,0x0000,
-0x0E15,0x0000,0x0000, 0x0358,0x0000,0x0000, 0xFBC0,0x8BFB,0x0000,
-0xFBC0,0x8BFC,0x0000, 0xFBC0,0x8BFD,0x0000, 0xFBC0,0x8BFE,0x0000,
-0xFBC0,0x8BFF,0x0000 };
-
-uint16 page00Cdata[]= { /* 0C00 (3 weights per char) */
-0xFBC0,0x8C00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8C04,0x0000, 0x16CD,0x0000,0x0000,
-0x16CE,0x0000,0x0000, 0x16CF,0x0000,0x0000, 0x16D0,0x0000,0x0000,
-0x16D1,0x0000,0x0000, 0x16D2,0x0000,0x0000, 0x16D3,0x0000,0x0000,
-0x16D5,0x0000,0x0000, 0xFBC0,0x8C0D,0x0000, 0x16D7,0x0000,0x0000,
-0x16D8,0x0000,0x0000, 0x16D9,0x0000,0x0000, 0xFBC0,0x8C11,0x0000,
-0x16DA,0x0000,0x0000, 0x16DB,0x0000,0x0000, 0x16DC,0x0000,0x0000,
-0x16DD,0x0000,0x0000, 0x16DE,0x0000,0x0000, 0x16DF,0x0000,0x0000,
-0x16E0,0x0000,0x0000, 0x16E1,0x0000,0x0000, 0x16E2,0x0000,0x0000,
-0x16E3,0x0000,0x0000, 0x16E4,0x0000,0x0000, 0x16E5,0x0000,0x0000,
-0x16E6,0x0000,0x0000, 0x16E7,0x0000,0x0000, 0x16E8,0x0000,0x0000,
-0x16E9,0x0000,0x0000, 0x16EA,0x0000,0x0000, 0x16EB,0x0000,0x0000,
-0x16EC,0x0000,0x0000, 0x16ED,0x0000,0x0000, 0x16EE,0x0000,0x0000,
-0x16EF,0x0000,0x0000, 0x16F0,0x0000,0x0000, 0xFBC0,0x8C29,0x0000,
-0x16F1,0x0000,0x0000, 0x16F2,0x0000,0x0000, 0x16F3,0x0000,0x0000,
-0x16F4,0x0000,0x0000, 0x16F5,0x0000,0x0000, 0x16F6,0x0000,0x0000,
-0x16F7,0x0000,0x0000, 0x16F8,0x0000,0x0000, 0x16F9,0x0000,0x0000,
-0x16FA,0x0000,0x0000, 0xFBC0,0x8C34,0x0000, 0x16FB,0x0000,0x0000,
-0x16FC,0x0000,0x0000, 0x16FD,0x0000,0x0000, 0x16FE,0x0000,0x0000,
-0x16FF,0x0000,0x0000, 0xFBC0,0x8C3A,0x0000, 0xFBC0,0x8C3B,0x0000,
-0xFBC0,0x8C3C,0x0000, 0xFBC0,0x8C3D,0x0000, 0x1700,0x0000,0x0000,
-0x1701,0x0000,0x0000, 0x1702,0x0000,0x0000, 0x1703,0x0000,0x0000,
-0x1704,0x0000,0x0000, 0x1705,0x0000,0x0000, 0x1706,0x0000,0x0000,
-0xFBC0,0x8C45,0x0000, 0x1707,0x0000,0x0000, 0x1708,0x0000,0x0000,
-0x1709,0x0000,0x0000, 0xFBC0,0x8C49,0x0000, 0x170A,0x0000,0x0000,
-0x170B,0x0000,0x0000, 0x170C,0x0000,0x0000, 0x170D,0x0000,0x0000,
-0xFBC0,0x8C4E,0x0000, 0xFBC0,0x8C4F,0x0000, 0xFBC0,0x8C50,0x0000,
-0xFBC0,0x8C51,0x0000, 0xFBC0,0x8C52,0x0000, 0xFBC0,0x8C53,0x0000,
-0xFBC0,0x8C54,0x0000, 0x170E,0x0000,0x0000, 0x170F,0x0000,0x0000,
-0xFBC0,0x8C57,0x0000, 0xFBC0,0x8C58,0x0000, 0xFBC0,0x8C59,0x0000,
-0xFBC0,0x8C5A,0x0000, 0xFBC0,0x8C5B,0x0000, 0xFBC0,0x8C5C,0x0000,
-0xFBC0,0x8C5D,0x0000, 0xFBC0,0x8C5E,0x0000, 0xFBC0,0x8C5F,0x0000,
-0x16D4,0x0000,0x0000, 0x16D6,0x0000,0x0000, 0xFBC0,0x8C62,0x0000,
-0xFBC0,0x8C63,0x0000, 0xFBC0,0x8C64,0x0000, 0xFBC0,0x8C65,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0xFBC0,0x8C70,0x0000, 0xFBC0,0x8C71,0x0000,
-0xFBC0,0x8C72,0x0000, 0xFBC0,0x8C73,0x0000, 0xFBC0,0x8C74,0x0000,
-0xFBC0,0x8C75,0x0000, 0xFBC0,0x8C76,0x0000, 0xFBC0,0x8C77,0x0000,
-0xFBC0,0x8C78,0x0000, 0xFBC0,0x8C79,0x0000, 0xFBC0,0x8C7A,0x0000,
-0xFBC0,0x8C7B,0x0000, 0xFBC0,0x8C7C,0x0000, 0xFBC0,0x8C7D,0x0000,
-0xFBC0,0x8C7E,0x0000, 0xFBC0,0x8C7F,0x0000, 0xFBC0,0x8C80,0x0000,
-0xFBC0,0x8C81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x8C84,0x0000, 0x1710,0x0000,0x0000, 0x1711,0x0000,0x0000,
-0x1712,0x0000,0x0000, 0x1713,0x0000,0x0000, 0x1714,0x0000,0x0000,
-0x1715,0x0000,0x0000, 0x1716,0x0000,0x0000, 0x1718,0x0000,0x0000,
-0xFBC0,0x8C8D,0x0000, 0x171A,0x0000,0x0000, 0x171B,0x0000,0x0000,
-0x171C,0x0000,0x0000, 0xFBC0,0x8C91,0x0000, 0x171D,0x0000,0x0000,
-0x171E,0x0000,0x0000, 0x171F,0x0000,0x0000, 0x1720,0x0000,0x0000,
-0x1721,0x0000,0x0000, 0x1722,0x0000,0x0000, 0x1723,0x0000,0x0000,
-0x1724,0x0000,0x0000, 0x1725,0x0000,0x0000, 0x1726,0x0000,0x0000,
-0x1727,0x0000,0x0000, 0x1728,0x0000,0x0000, 0x1729,0x0000,0x0000,
-0x172A,0x0000,0x0000, 0x172B,0x0000,0x0000, 0x172C,0x0000,0x0000,
-0x172D,0x0000,0x0000, 0x172E,0x0000,0x0000, 0x172F,0x0000,0x0000,
-0x1730,0x0000,0x0000, 0x1731,0x0000,0x0000, 0x1732,0x0000,0x0000,
-0x1733,0x0000,0x0000, 0xFBC0,0x8CA9,0x0000, 0x1734,0x0000,0x0000,
-0x1735,0x0000,0x0000, 0x1736,0x0000,0x0000, 0x1737,0x0000,0x0000,
-0x1738,0x0000,0x0000, 0x1739,0x0000,0x0000, 0x173A,0x0000,0x0000,
-0x173B,0x0000,0x0000, 0x173C,0x0000,0x0000, 0x1743,0x0000,0x0000,
-0xFBC0,0x8CB4,0x0000, 0x173D,0x0000,0x0000, 0x173E,0x0000,0x0000,
-0x173F,0x0000,0x0000, 0x1740,0x0000,0x0000, 0x1741,0x0000,0x0000,
-0xFBC0,0x8CBA,0x0000, 0xFBC0,0x8CBB,0x0000, 0x0000,0x0000,0x0000,
-0x1742,0x0000,0x0000, 0x1745,0x0000,0x0000, 0x1746,0x0000,0x0000,
-0x1747,0x0000,0x0000, 0x1748,0x0000,0x0000, 0x1749,0x0000,0x0000,
-0x174A,0x0000,0x0000, 0x174B,0x0000,0x0000, 0xFBC0,0x8CC5,0x0000,
-0x174C,0x0000,0x0000, 0x174D,0x0000,0x0000, 0x174E,0x0000,0x0000,
-0xFBC0,0x8CC9,0x0000, 0x174F,0x0000,0x0000, 0x1750,0x0000,0x0000,
-0x1751,0x0000,0x0000, 0x1752,0x0000,0x0000, 0xFBC0,0x8CCE,0x0000,
-0xFBC0,0x8CCF,0x0000, 0xFBC0,0x8CD0,0x0000, 0xFBC0,0x8CD1,0x0000,
-0xFBC0,0x8CD2,0x0000, 0xFBC0,0x8CD3,0x0000, 0xFBC0,0x8CD4,0x0000,
-0x1753,0x0000,0x0000, 0x1754,0x0000,0x0000, 0xFBC0,0x8CD7,0x0000,
-0xFBC0,0x8CD8,0x0000, 0xFBC0,0x8CD9,0x0000, 0xFBC0,0x8CDA,0x0000,
-0xFBC0,0x8CDB,0x0000, 0xFBC0,0x8CDC,0x0000, 0xFBC0,0x8CDD,0x0000,
-0x1744,0x0000,0x0000, 0xFBC0,0x8CDF,0x0000, 0x1717,0x0000,0x0000,
-0x1719,0x0000,0x0000, 0xFBC0,0x8CE2,0x0000, 0xFBC0,0x8CE3,0x0000,
-0xFBC0,0x8CE4,0x0000, 0xFBC0,0x8CE5,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0xFBC0,0x8CF0,0x0000, 0xFBC0,0x8CF1,0x0000, 0xFBC0,0x8CF2,0x0000,
-0xFBC0,0x8CF3,0x0000, 0xFBC0,0x8CF4,0x0000, 0xFBC0,0x8CF5,0x0000,
-0xFBC0,0x8CF6,0x0000, 0xFBC0,0x8CF7,0x0000, 0xFBC0,0x8CF8,0x0000,
-0xFBC0,0x8CF9,0x0000, 0xFBC0,0x8CFA,0x0000, 0xFBC0,0x8CFB,0x0000,
-0xFBC0,0x8CFC,0x0000, 0xFBC0,0x8CFD,0x0000, 0xFBC0,0x8CFE,0x0000,
-0xFBC0,0x8CFF,0x0000 };
-
-uint16 page00Ddata[]= { /* 0D00 (3 weights per char) */
-0xFBC0,0x8D00,0x0000, 0xFBC0,0x8D01,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC0,0x8D04,0x0000, 0x1755,0x0000,0x0000,
-0x1756,0x0000,0x0000, 0x1757,0x0000,0x0000, 0x1758,0x0000,0x0000,
-0x1759,0x0000,0x0000, 0x175A,0x0000,0x0000, 0x175B,0x0000,0x0000,
-0x175D,0x0000,0x0000, 0xFBC0,0x8D0D,0x0000, 0x175F,0x0000,0x0000,
-0x1760,0x0000,0x0000, 0x1761,0x0000,0x0000, 0xFBC0,0x8D11,0x0000,
-0x1762,0x0000,0x0000, 0x1763,0x0000,0x0000, 0x1764,0x0000,0x0000,
-0x1765,0x0000,0x0000, 0x1766,0x0000,0x0000, 0x1767,0x0000,0x0000,
-0x1768,0x0000,0x0000, 0x1769,0x0000,0x0000, 0x176A,0x0000,0x0000,
-0x176B,0x0000,0x0000, 0x176C,0x0000,0x0000, 0x176D,0x0000,0x0000,
-0x176E,0x0000,0x0000, 0x176F,0x0000,0x0000, 0x1770,0x0000,0x0000,
-0x1771,0x0000,0x0000, 0x1772,0x0000,0x0000, 0x1773,0x0000,0x0000,
-0x1774,0x0000,0x0000, 0x1775,0x0000,0x0000, 0x1776,0x0000,0x0000,
-0x1777,0x0000,0x0000, 0x1778,0x0000,0x0000, 0xFBC0,0x8D29,0x0000,
-0x1779,0x0000,0x0000, 0x177A,0x0000,0x0000, 0x177B,0x0000,0x0000,
-0x177C,0x0000,0x0000, 0x177D,0x0000,0x0000, 0x177E,0x0000,0x0000,
-0x177F,0x0000,0x0000, 0x1780,0x0000,0x0000, 0x1781,0x0000,0x0000,
-0x1782,0x0000,0x0000, 0x1783,0x0000,0x0000, 0x1784,0x0000,0x0000,
-0x1785,0x0000,0x0000, 0x1786,0x0000,0x0000, 0x1787,0x0000,0x0000,
-0x1788,0x0000,0x0000, 0xFBC0,0x8D3A,0x0000, 0xFBC0,0x8D3B,0x0000,
-0xFBC0,0x8D3C,0x0000, 0xFBC0,0x8D3D,0x0000, 0x1789,0x0000,0x0000,
-0x178A,0x0000,0x0000, 0x178B,0x0000,0x0000, 0x178C,0x0000,0x0000,
-0x178D,0x0000,0x0000, 0x178E,0x0000,0x0000, 0xFBC0,0x8D44,0x0000,
-0xFBC0,0x8D45,0x0000, 0x178F,0x0000,0x0000, 0x1790,0x0000,0x0000,
-0x1791,0x0000,0x0000, 0xFBC0,0x8D49,0x0000, 0x1792,0x0000,0x0000,
-0x1793,0x0000,0x0000, 0x1794,0x0000,0x0000, 0x1795,0x0000,0x0000,
-0xFBC0,0x8D4E,0x0000, 0xFBC0,0x8D4F,0x0000, 0xFBC0,0x8D50,0x0000,
-0xFBC0,0x8D51,0x0000, 0xFBC0,0x8D52,0x0000, 0xFBC0,0x8D53,0x0000,
-0xFBC0,0x8D54,0x0000, 0xFBC0,0x8D55,0x0000, 0xFBC0,0x8D56,0x0000,
-0x1796,0x0000,0x0000, 0xFBC0,0x8D58,0x0000, 0xFBC0,0x8D59,0x0000,
-0xFBC0,0x8D5A,0x0000, 0xFBC0,0x8D5B,0x0000, 0xFBC0,0x8D5C,0x0000,
-0xFBC0,0x8D5D,0x0000, 0xFBC0,0x8D5E,0x0000, 0xFBC0,0x8D5F,0x0000,
-0x175C,0x0000,0x0000, 0x175E,0x0000,0x0000, 0xFBC0,0x8D62,0x0000,
-0xFBC0,0x8D63,0x0000, 0xFBC0,0x8D64,0x0000, 0xFBC0,0x8D65,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0xFBC0,0x8D70,0x0000, 0xFBC0,0x8D71,0x0000,
-0xFBC0,0x8D72,0x0000, 0xFBC0,0x8D73,0x0000, 0xFBC0,0x8D74,0x0000,
-0xFBC0,0x8D75,0x0000, 0xFBC0,0x8D76,0x0000, 0xFBC0,0x8D77,0x0000,
-0xFBC0,0x8D78,0x0000, 0xFBC0,0x8D79,0x0000, 0xFBC0,0x8D7A,0x0000,
-0xFBC0,0x8D7B,0x0000, 0xFBC0,0x8D7C,0x0000, 0xFBC0,0x8D7D,0x0000,
-0xFBC0,0x8D7E,0x0000, 0xFBC0,0x8D7F,0x0000, 0xFBC0,0x8D80,0x0000,
-0xFBC0,0x8D81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x8D84,0x0000, 0x1797,0x0000,0x0000, 0x1798,0x0000,0x0000,
-0x1799,0x0000,0x0000, 0x179A,0x0000,0x0000, 0x179B,0x0000,0x0000,
-0x179C,0x0000,0x0000, 0x179D,0x0000,0x0000, 0x179E,0x0000,0x0000,
-0x179F,0x0000,0x0000, 0x17A0,0x0000,0x0000, 0x17A1,0x0000,0x0000,
-0x17A2,0x0000,0x0000, 0x17A3,0x0000,0x0000, 0x17A4,0x0000,0x0000,
-0x17A5,0x0000,0x0000, 0x17A6,0x0000,0x0000, 0x17A7,0x0000,0x0000,
-0x17A8,0x0000,0x0000, 0xFBC0,0x8D97,0x0000, 0xFBC0,0x8D98,0x0000,
-0xFBC0,0x8D99,0x0000, 0x17A9,0x0000,0x0000, 0x17AA,0x0000,0x0000,
-0x17AB,0x0000,0x0000, 0x17AC,0x0000,0x0000, 0x17AD,0x0000,0x0000,
-0x17AE,0x0000,0x0000, 0x17AF,0x0000,0x0000, 0x17B0,0x0000,0x0000,
-0x17B1,0x0000,0x0000, 0x17B2,0x0000,0x0000, 0x17B3,0x0000,0x0000,
-0x17B4,0x0000,0x0000, 0x17B5,0x0000,0x0000, 0x17B6,0x0000,0x0000,
-0x17B7,0x0000,0x0000, 0x17B8,0x0000,0x0000, 0x17B9,0x0000,0x0000,
-0x17BA,0x0000,0x0000, 0x17BB,0x0000,0x0000, 0x17BC,0x0000,0x0000,
-0x17BD,0x0000,0x0000, 0x17BE,0x0000,0x0000, 0x17BF,0x0000,0x0000,
-0x17C0,0x0000,0x0000, 0xFBC0,0x8DB2,0x0000, 0x17C1,0x0000,0x0000,
-0x17C2,0x0000,0x0000, 0x17C3,0x0000,0x0000, 0x17C4,0x0000,0x0000,
-0x17C5,0x0000,0x0000, 0x17C6,0x0000,0x0000, 0x17C7,0x0000,0x0000,
-0x17C8,0x0000,0x0000, 0x17C9,0x0000,0x0000, 0xFBC0,0x8DBC,0x0000,
-0x17CA,0x0000,0x0000, 0xFBC0,0x8DBE,0x0000, 0xFBC0,0x8DBF,0x0000,
-0x17CB,0x0000,0x0000, 0x17CC,0x0000,0x0000, 0x17CD,0x0000,0x0000,
-0x17CE,0x0000,0x0000, 0x17CF,0x0000,0x0000, 0x17D0,0x0000,0x0000,
-0x17D1,0x0000,0x0000, 0xFBC0,0x8DC7,0x0000, 0xFBC0,0x8DC8,0x0000,
-0xFBC0,0x8DC9,0x0000, 0x17D2,0x0000,0x0000, 0xFBC0,0x8DCB,0x0000,
-0xFBC0,0x8DCC,0x0000, 0xFBC0,0x8DCD,0x0000, 0xFBC0,0x8DCE,0x0000,
-0x17D3,0x0000,0x0000, 0x17D4,0x0000,0x0000, 0x17D5,0x0000,0x0000,
-0x17D6,0x0000,0x0000, 0x17D7,0x0000,0x0000, 0x17D8,0x0000,0x0000,
-0xFBC0,0x8DD5,0x0000, 0x17D9,0x0000,0x0000, 0xFBC0,0x8DD7,0x0000,
-0x17DA,0x0000,0x0000, 0x17DB,0x0000,0x0000, 0x17DC,0x0000,0x0000,
-0x17DD,0x0000,0x0000, 0x17DE,0x0000,0x0000, 0x17DF,0x0000,0x0000,
-0x17E0,0x0000,0x0000, 0x17E1,0x0000,0x0000, 0xFBC0,0x8DE0,0x0000,
-0xFBC0,0x8DE1,0x0000, 0xFBC0,0x8DE2,0x0000, 0xFBC0,0x8DE3,0x0000,
-0xFBC0,0x8DE4,0x0000, 0xFBC0,0x8DE5,0x0000, 0xFBC0,0x8DE6,0x0000,
-0xFBC0,0x8DE7,0x0000, 0xFBC0,0x8DE8,0x0000, 0xFBC0,0x8DE9,0x0000,
-0xFBC0,0x8DEA,0x0000, 0xFBC0,0x8DEB,0x0000, 0xFBC0,0x8DEC,0x0000,
-0xFBC0,0x8DED,0x0000, 0xFBC0,0x8DEE,0x0000, 0xFBC0,0x8DEF,0x0000,
-0xFBC0,0x8DF0,0x0000, 0xFBC0,0x8DF1,0x0000, 0x17E2,0x0000,0x0000,
-0x17E3,0x0000,0x0000, 0x02FB,0x0000,0x0000, 0xFBC0,0x8DF5,0x0000,
-0xFBC0,0x8DF6,0x0000, 0xFBC0,0x8DF7,0x0000, 0xFBC0,0x8DF8,0x0000,
-0xFBC0,0x8DF9,0x0000, 0xFBC0,0x8DFA,0x0000, 0xFBC0,0x8DFB,0x0000,
-0xFBC0,0x8DFC,0x0000, 0xFBC0,0x8DFD,0x0000, 0xFBC0,0x8DFE,0x0000,
-0xFBC0,0x8DFF,0x0000 };
-
-uint16 page00Edata[]= { /* 0E00 (3 weights per char) */
-0xFBC0,0x8E00,0x0000, 0x17E4,0x0000,0x0000, 0x17E5,0x0000,0x0000,
-0x17E6,0x0000,0x0000, 0x17E7,0x0000,0x0000, 0x17E8,0x0000,0x0000,
-0x17E9,0x0000,0x0000, 0x17EA,0x0000,0x0000, 0x17EB,0x0000,0x0000,
-0x17EC,0x0000,0x0000, 0x17ED,0x0000,0x0000, 0x17EE,0x0000,0x0000,
-0x17EF,0x0000,0x0000, 0x17F0,0x0000,0x0000, 0x17F1,0x0000,0x0000,
-0x17F2,0x0000,0x0000, 0x17F3,0x0000,0x0000, 0x17F4,0x0000,0x0000,
-0x17F5,0x0000,0x0000, 0x17F6,0x0000,0x0000, 0x17F7,0x0000,0x0000,
-0x17F8,0x0000,0x0000, 0x17F9,0x0000,0x0000, 0x17FA,0x0000,0x0000,
-0x17FB,0x0000,0x0000, 0x17FC,0x0000,0x0000, 0x17FD,0x0000,0x0000,
-0x17FE,0x0000,0x0000, 0x17FF,0x0000,0x0000, 0x1800,0x0000,0x0000,
-0x1801,0x0000,0x0000, 0x1802,0x0000,0x0000, 0x1803,0x0000,0x0000,
-0x1804,0x0000,0x0000, 0x1805,0x0000,0x0000, 0x1806,0x0000,0x0000,
-0x1807,0x0000,0x0000, 0x1808,0x0000,0x0000, 0x1809,0x0000,0x0000,
-0x180A,0x0000,0x0000, 0x180B,0x0000,0x0000, 0x180C,0x0000,0x0000,
-0x180D,0x0000,0x0000, 0x180E,0x0000,0x0000, 0x180F,0x0000,0x0000,
-0x1810,0x0000,0x0000, 0x1811,0x0000,0x0000, 0x1812,0x0000,0x0000,
-0x1813,0x0000,0x0000, 0x1814,0x0000,0x0000, 0x1815,0x0000,0x0000,
-0x1816,0x0000,0x0000, 0x1817,0x0000,0x0000, 0x1818,0x0000,0x0000,
-0x1819,0x0000,0x0000, 0x181A,0x0000,0x0000, 0x181B,0x0000,0x0000,
-0x181C,0x0000,0x0000, 0x181D,0x0000,0x0000, 0xFBC0,0x8E3B,0x0000,
-0xFBC0,0x8E3C,0x0000, 0xFBC0,0x8E3D,0x0000, 0xFBC0,0x8E3E,0x0000,
-0x0E16,0x0000,0x0000, 0x181E,0x0000,0x0000, 0x181F,0x0000,0x0000,
-0x1820,0x0000,0x0000, 0x1821,0x0000,0x0000, 0x1822,0x0000,0x0000,
-0x1823,0x0000,0x0000, 0x0E03,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x1824,0x0000,0x0000, 0x1825,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0359,0x0000,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x02FC,0x0000,0x0000, 0x02FD,0x0000,0x0000, 0xFBC0,0x8E5C,0x0000,
-0xFBC0,0x8E5D,0x0000, 0xFBC0,0x8E5E,0x0000, 0xFBC0,0x8E5F,0x0000,
-0xFBC0,0x8E60,0x0000, 0xFBC0,0x8E61,0x0000, 0xFBC0,0x8E62,0x0000,
-0xFBC0,0x8E63,0x0000, 0xFBC0,0x8E64,0x0000, 0xFBC0,0x8E65,0x0000,
-0xFBC0,0x8E66,0x0000, 0xFBC0,0x8E67,0x0000, 0xFBC0,0x8E68,0x0000,
-0xFBC0,0x8E69,0x0000, 0xFBC0,0x8E6A,0x0000, 0xFBC0,0x8E6B,0x0000,
-0xFBC0,0x8E6C,0x0000, 0xFBC0,0x8E6D,0x0000, 0xFBC0,0x8E6E,0x0000,
-0xFBC0,0x8E6F,0x0000, 0xFBC0,0x8E70,0x0000, 0xFBC0,0x8E71,0x0000,
-0xFBC0,0x8E72,0x0000, 0xFBC0,0x8E73,0x0000, 0xFBC0,0x8E74,0x0000,
-0xFBC0,0x8E75,0x0000, 0xFBC0,0x8E76,0x0000, 0xFBC0,0x8E77,0x0000,
-0xFBC0,0x8E78,0x0000, 0xFBC0,0x8E79,0x0000, 0xFBC0,0x8E7A,0x0000,
-0xFBC0,0x8E7B,0x0000, 0xFBC0,0x8E7C,0x0000, 0xFBC0,0x8E7D,0x0000,
-0xFBC0,0x8E7E,0x0000, 0xFBC0,0x8E7F,0x0000, 0xFBC0,0x8E80,0x0000,
-0x1826,0x0000,0x0000, 0x1827,0x0000,0x0000, 0xFBC0,0x8E83,0x0000,
-0x1828,0x0000,0x0000, 0xFBC0,0x8E85,0x0000, 0xFBC0,0x8E86,0x0000,
-0x1829,0x0000,0x0000, 0x182A,0x0000,0x0000, 0xFBC0,0x8E89,0x0000,
-0x182B,0x0000,0x0000, 0xFBC0,0x8E8B,0x0000, 0xFBC0,0x8E8C,0x0000,
-0x182C,0x0000,0x0000, 0xFBC0,0x8E8E,0x0000, 0xFBC0,0x8E8F,0x0000,
-0xFBC0,0x8E90,0x0000, 0xFBC0,0x8E91,0x0000, 0xFBC0,0x8E92,0x0000,
-0xFBC0,0x8E93,0x0000, 0x182D,0x0000,0x0000, 0x182E,0x0000,0x0000,
-0x182F,0x0000,0x0000, 0x1830,0x0000,0x0000, 0xFBC0,0x8E98,0x0000,
-0x1831,0x0000,0x0000, 0x1832,0x0000,0x0000, 0x1833,0x0000,0x0000,
-0x1834,0x0000,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000,
-0x1837,0x0000,0x0000, 0xFBC0,0x8EA0,0x0000, 0x1838,0x0000,0x0000,
-0x1839,0x0000,0x0000, 0x183A,0x0000,0x0000, 0xFBC0,0x8EA4,0x0000,
-0x183B,0x0000,0x0000, 0xFBC0,0x8EA6,0x0000, 0x183C,0x0000,0x0000,
-0xFBC0,0x8EA8,0x0000, 0xFBC0,0x8EA9,0x0000, 0x183D,0x0000,0x0000,
-0x183E,0x0000,0x0000, 0xFBC0,0x8EAC,0x0000, 0x183F,0x0000,0x0000,
-0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000,
-0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000,
-0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000,
-0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000,
-0xFBC0,0x8EBA,0x0000, 0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000,
-0x184E,0x0000,0x0000, 0xFBC0,0x8EBE,0x0000, 0xFBC0,0x8EBF,0x0000,
-0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000,
-0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0xFBC0,0x8EC5,0x0000,
-0x0E04,0x0000,0x0000, 0xFBC0,0x8EC7,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x1854,0x0000,0x0000, 0x1855,0x0000,0x0000, 0xFBC0,0x8ECE,0x0000,
-0xFBC0,0x8ECF,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0xFBC0,0x8EDA,0x0000,
-0xFBC0,0x8EDB,0x0000, 0x183E,0x1831,0x0000, 0x183E,0x1838,0x0000,
-0xFBC0,0x8EDE,0x0000, 0xFBC0,0x8EDF,0x0000, 0xFBC0,0x8EE0,0x0000,
-0xFBC0,0x8EE1,0x0000, 0xFBC0,0x8EE2,0x0000, 0xFBC0,0x8EE3,0x0000,
-0xFBC0,0x8EE4,0x0000, 0xFBC0,0x8EE5,0x0000, 0xFBC0,0x8EE6,0x0000,
-0xFBC0,0x8EE7,0x0000, 0xFBC0,0x8EE8,0x0000, 0xFBC0,0x8EE9,0x0000,
-0xFBC0,0x8EEA,0x0000, 0xFBC0,0x8EEB,0x0000, 0xFBC0,0x8EEC,0x0000,
-0xFBC0,0x8EED,0x0000, 0xFBC0,0x8EEE,0x0000, 0xFBC0,0x8EEF,0x0000,
-0xFBC0,0x8EF0,0x0000, 0xFBC0,0x8EF1,0x0000, 0xFBC0,0x8EF2,0x0000,
-0xFBC0,0x8EF3,0x0000, 0xFBC0,0x8EF4,0x0000, 0xFBC0,0x8EF5,0x0000,
-0xFBC0,0x8EF6,0x0000, 0xFBC0,0x8EF7,0x0000, 0xFBC0,0x8EF8,0x0000,
-0xFBC0,0x8EF9,0x0000, 0xFBC0,0x8EFA,0x0000, 0xFBC0,0x8EFB,0x0000,
-0xFBC0,0x8EFC,0x0000, 0xFBC0,0x8EFD,0x0000, 0xFBC0,0x8EFE,0x0000,
-0xFBC0,0x8EFF,0x0000 };
-
-uint16 page00Fdata[]= { /* 0F00 (3 weights per char) */
-0x189A,0x18AD,0x0000, 0x035A,0x0000,0x0000, 0x035B,0x0000,0x0000,
-0x035C,0x0000,0x0000, 0x02FE,0x0000,0x0000, 0x02FF,0x0000,0x0000,
-0x0300,0x0000,0x0000, 0x0301,0x0000,0x0000, 0x0302,0x0000,0x0000,
-0x0303,0x0000,0x0000, 0x0304,0x0000,0x0000, 0x0305,0x0000,0x0000,
-0x0305,0x0000,0x0000, 0x0306,0x0000,0x0000, 0x0307,0x0000,0x0000,
-0x0308,0x0000,0x0000, 0x0309,0x0000,0x0000, 0x030A,0x0000,0x0000,
-0x030B,0x0000,0x0000, 0x035D,0x0000,0x0000, 0x024C,0x0000,0x0000,
-0x035E,0x0000,0x0000, 0x035F,0x0000,0x0000, 0x0360,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0361,0x0000,0x0000,
-0x0362,0x0000,0x0000, 0x0363,0x0000,0x0000, 0x0364,0x0000,0x0000,
-0x0365,0x0000,0x0000, 0x0366,0x0000,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0E29,0x0000,0x0000, 0x0367,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0368,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0369,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x028E,0x0000,0x0000, 0x028F,0x0000,0x0000,
-0x0290,0x0000,0x0000, 0x0291,0x0000,0x0000, 0x036A,0x0000,0x0000,
-0x036B,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1858,0x0000,0x0000,
-0x185A,0x0000,0x0000, 0x185A,0x1899,0x0000, 0x185C,0x0000,0x0000,
-0x185E,0x0000,0x0000, 0x1860,0x0000,0x0000, 0x1862,0x0000,0x0000,
-0xFBC0,0x8F48,0x0000, 0x1864,0x0000,0x0000, 0x1866,0x0000,0x0000,
-0x1868,0x0000,0x0000, 0x186A,0x0000,0x0000, 0x186A,0x1899,0x0000,
-0x186C,0x0000,0x0000, 0x186E,0x0000,0x0000, 0x1870,0x0000,0x0000,
-0x1872,0x0000,0x0000, 0x1872,0x1899,0x0000, 0x1874,0x0000,0x0000,
-0x1876,0x0000,0x0000, 0x1878,0x0000,0x0000, 0x187A,0x0000,0x0000,
-0x187A,0x1899,0x0000, 0x187C,0x0000,0x0000, 0x187E,0x0000,0x0000,
-0x1880,0x0000,0x0000, 0x1882,0x0000,0x0000, 0x1882,0x1899,0x0000,
-0x1884,0x0000,0x0000, 0x1886,0x0000,0x0000, 0x1888,0x0000,0x0000,
-0x188A,0x0000,0x0000, 0x188C,0x0000,0x0000, 0x188E,0x0000,0x0000,
-0x1890,0x0000,0x0000, 0x1892,0x0000,0x0000, 0x1894,0x0000,0x0000,
-0x1896,0x0000,0x0000, 0x1898,0x0000,0x0000, 0x189A,0x0000,0x0000,
-0x1856,0x1895,0x0000, 0x188E,0x0000,0x0000, 0xFBC0,0x8F6B,0x0000,
-0xFBC0,0x8F6C,0x0000, 0xFBC0,0x8F6D,0x0000, 0xFBC0,0x8F6E,0x0000,
-0xFBC0,0x8F6F,0x0000, 0xFBC0,0x8F70,0x0000, 0x18A0,0x0000,0x0000,
-0x18A1,0x0000,0x0000, 0x18A2,0x0000,0x0000, 0x18A5,0x0000,0x0000,
-0x18A6,0x0000,0x0000, 0x18A7,0x0000,0x0000, 0x18A8,0x0000,0x0000,
-0x18A9,0x0000,0x0000, 0x18AA,0x0000,0x0000, 0x18AB,0x0000,0x0000,
-0x18AC,0x0000,0x0000, 0x18AD,0x0000,0x0000, 0x18AE,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A3,0x0000,0x0000,
-0x18A4,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x18AF,0x0000,0x0000, 0x030C,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x189C,0x0000,0x0000, 0x189D,0x0000,0x0000,
-0x189E,0x0000,0x0000, 0x189F,0x0000,0x0000, 0xFBC0,0x8F8C,0x0000,
-0xFBC0,0x8F8D,0x0000, 0xFBC0,0x8F8E,0x0000, 0xFBC0,0x8F8F,0x0000,
-0x1857,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185B,0x0000,0x0000,
-0x185B,0x1899,0x0000, 0x185D,0x0000,0x0000, 0x185F,0x0000,0x0000,
-0x1861,0x0000,0x0000, 0x1863,0x0000,0x0000, 0xFBC0,0x8F98,0x0000,
-0x1865,0x0000,0x0000, 0x1867,0x0000,0x0000, 0x1869,0x0000,0x0000,
-0x186B,0x0000,0x0000, 0x186B,0x1899,0x0000, 0x186D,0x0000,0x0000,
-0x186F,0x0000,0x0000, 0x1871,0x0000,0x0000, 0x1873,0x0000,0x0000,
-0x1873,0x1899,0x0000, 0x1875,0x0000,0x0000, 0x1877,0x0000,0x0000,
-0x1879,0x0000,0x0000, 0x187B,0x0000,0x0000, 0x187B,0x1899,0x0000,
-0x187D,0x0000,0x0000, 0x187F,0x0000,0x0000, 0x1881,0x0000,0x0000,
-0x1883,0x0000,0x0000, 0x1883,0x1899,0x0000, 0x1885,0x0000,0x0000,
-0x1887,0x0000,0x0000, 0x1889,0x0000,0x0000, 0x188B,0x0000,0x0000,
-0x188D,0x0000,0x0000, 0x188F,0x0000,0x0000, 0x1891,0x0000,0x0000,
-0x1893,0x0000,0x0000, 0x1895,0x0000,0x0000, 0x1897,0x0000,0x0000,
-0x1899,0x0000,0x0000, 0x189B,0x0000,0x0000, 0x1857,0x1895,0x0000,
-0x1885,0x0000,0x0000, 0x188D,0x0000,0x0000, 0x188F,0x0000,0x0000,
-0xFBC0,0x8FBD,0x0000, 0x036C,0x0000,0x0000, 0x036D,0x0000,0x0000,
-0x036E,0x0000,0x0000, 0x036F,0x0000,0x0000, 0x0370,0x0000,0x0000,
-0x0371,0x0000,0x0000, 0x0372,0x0000,0x0000, 0x0373,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0374,0x0000,0x0000, 0x0375,0x0000,0x0000,
-0x0376,0x0000,0x0000, 0x0377,0x0000,0x0000, 0x0378,0x0000,0x0000,
-0x0379,0x0000,0x0000, 0xFBC0,0x8FCD,0x0000, 0xFBC0,0x8FCE,0x0000,
-0x037A,0x0000,0x0000, 0xFBC0,0x8FD0,0x0000, 0xFBC0,0x8FD1,0x0000,
-0xFBC0,0x8FD2,0x0000, 0xFBC0,0x8FD3,0x0000, 0xFBC0,0x8FD4,0x0000,
-0xFBC0,0x8FD5,0x0000, 0xFBC0,0x8FD6,0x0000, 0xFBC0,0x8FD7,0x0000,
-0xFBC0,0x8FD8,0x0000, 0xFBC0,0x8FD9,0x0000, 0xFBC0,0x8FDA,0x0000,
-0xFBC0,0x8FDB,0x0000, 0xFBC0,0x8FDC,0x0000, 0xFBC0,0x8FDD,0x0000,
-0xFBC0,0x8FDE,0x0000, 0xFBC0,0x8FDF,0x0000, 0xFBC0,0x8FE0,0x0000,
-0xFBC0,0x8FE1,0x0000, 0xFBC0,0x8FE2,0x0000, 0xFBC0,0x8FE3,0x0000,
-0xFBC0,0x8FE4,0x0000, 0xFBC0,0x8FE5,0x0000, 0xFBC0,0x8FE6,0x0000,
-0xFBC0,0x8FE7,0x0000, 0xFBC0,0x8FE8,0x0000, 0xFBC0,0x8FE9,0x0000,
-0xFBC0,0x8FEA,0x0000, 0xFBC0,0x8FEB,0x0000, 0xFBC0,0x8FEC,0x0000,
-0xFBC0,0x8FED,0x0000, 0xFBC0,0x8FEE,0x0000, 0xFBC0,0x8FEF,0x0000,
-0xFBC0,0x8FF0,0x0000, 0xFBC0,0x8FF1,0x0000, 0xFBC0,0x8FF2,0x0000,
-0xFBC0,0x8FF3,0x0000, 0xFBC0,0x8FF4,0x0000, 0xFBC0,0x8FF5,0x0000,
-0xFBC0,0x8FF6,0x0000, 0xFBC0,0x8FF7,0x0000, 0xFBC0,0x8FF8,0x0000,
-0xFBC0,0x8FF9,0x0000, 0xFBC0,0x8FFA,0x0000, 0xFBC0,0x8FFB,0x0000,
-0xFBC0,0x8FFC,0x0000, 0xFBC0,0x8FFD,0x0000, 0xFBC0,0x8FFE,0x0000,
-0xFBC0,0x8FFF,0x0000 };
-
-uint16 page010data[]= { /* 1000 (3 weights per char) */
-0x1931,0x0000,0x0000, 0x1932,0x0000,0x0000, 0x1933,0x0000,0x0000,
-0x1934,0x0000,0x0000, 0x1935,0x0000,0x0000, 0x1936,0x0000,0x0000,
-0x1937,0x0000,0x0000, 0x1938,0x0000,0x0000, 0x1939,0x0000,0x0000,
-0x193A,0x0000,0x0000, 0x193B,0x0000,0x0000, 0x193C,0x0000,0x0000,
-0x193D,0x0000,0x0000, 0x193E,0x0000,0x0000, 0x193F,0x0000,0x0000,
-0x1940,0x0000,0x0000, 0x1941,0x0000,0x0000, 0x1942,0x0000,0x0000,
-0x1943,0x0000,0x0000, 0x1944,0x0000,0x0000, 0x1945,0x0000,0x0000,
-0x1946,0x0000,0x0000, 0x1947,0x0000,0x0000, 0x1948,0x0000,0x0000,
-0x1949,0x0000,0x0000, 0x194A,0x0000,0x0000, 0x194B,0x0000,0x0000,
-0x194C,0x0000,0x0000, 0x194D,0x0000,0x0000, 0x194E,0x0000,0x0000,
-0x1951,0x0000,0x0000, 0x1952,0x0000,0x0000, 0x1953,0x0000,0x0000,
-0x1954,0x0000,0x0000, 0xFBC0,0x9022,0x0000, 0x1955,0x0000,0x0000,
-0x1956,0x0000,0x0000, 0x1957,0x0000,0x0000, 0x1958,0x0000,0x0000,
-0x1959,0x0000,0x0000, 0xFBC0,0x9028,0x0000, 0x195A,0x0000,0x0000,
-0x195B,0x0000,0x0000, 0xFBC0,0x902B,0x0000, 0x1960,0x0000,0x0000,
-0x1961,0x0000,0x0000, 0x1962,0x0000,0x0000, 0x1963,0x0000,0x0000,
-0x1964,0x0000,0x0000, 0x1965,0x0000,0x0000, 0x1966,0x0000,0x0000,
-0xFBC0,0x9033,0x0000, 0xFBC0,0x9034,0x0000, 0xFBC0,0x9035,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x196B,0x0000,0x0000, 0xFBC0,0x903A,0x0000, 0xFBC0,0x903B,0x0000,
-0xFBC0,0x903C,0x0000, 0xFBC0,0x903D,0x0000, 0xFBC0,0x903E,0x0000,
-0xFBC0,0x903F,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x026C,0x0000,0x0000,
-0x026D,0x0000,0x0000, 0x030E,0x0000,0x0000, 0x030F,0x0000,0x0000,
-0x0310,0x0000,0x0000, 0x0311,0x0000,0x0000, 0x194F,0x0000,0x0000,
-0x1950,0x0000,0x0000, 0x195C,0x0000,0x0000, 0x195D,0x0000,0x0000,
-0x195E,0x0000,0x0000, 0x195F,0x0000,0x0000, 0x1967,0x0000,0x0000,
-0x1968,0x0000,0x0000, 0x1969,0x0000,0x0000, 0x196A,0x0000,0x0000,
-0xFBC0,0x905A,0x0000, 0xFBC0,0x905B,0x0000, 0xFBC0,0x905C,0x0000,
-0xFBC0,0x905D,0x0000, 0xFBC0,0x905E,0x0000, 0xFBC0,0x905F,0x0000,
-0xFBC0,0x9060,0x0000, 0xFBC0,0x9061,0x0000, 0xFBC0,0x9062,0x0000,
-0xFBC0,0x9063,0x0000, 0xFBC0,0x9064,0x0000, 0xFBC0,0x9065,0x0000,
-0xFBC0,0x9066,0x0000, 0xFBC0,0x9067,0x0000, 0xFBC0,0x9068,0x0000,
-0xFBC0,0x9069,0x0000, 0xFBC0,0x906A,0x0000, 0xFBC0,0x906B,0x0000,
-0xFBC0,0x906C,0x0000, 0xFBC0,0x906D,0x0000, 0xFBC0,0x906E,0x0000,
-0xFBC0,0x906F,0x0000, 0xFBC0,0x9070,0x0000, 0xFBC0,0x9071,0x0000,
-0xFBC0,0x9072,0x0000, 0xFBC0,0x9073,0x0000, 0xFBC0,0x9074,0x0000,
-0xFBC0,0x9075,0x0000, 0xFBC0,0x9076,0x0000, 0xFBC0,0x9077,0x0000,
-0xFBC0,0x9078,0x0000, 0xFBC0,0x9079,0x0000, 0xFBC0,0x907A,0x0000,
-0xFBC0,0x907B,0x0000, 0xFBC0,0x907C,0x0000, 0xFBC0,0x907D,0x0000,
-0xFBC0,0x907E,0x0000, 0xFBC0,0x907F,0x0000, 0xFBC0,0x9080,0x0000,
-0xFBC0,0x9081,0x0000, 0xFBC0,0x9082,0x0000, 0xFBC0,0x9083,0x0000,
-0xFBC0,0x9084,0x0000, 0xFBC0,0x9085,0x0000, 0xFBC0,0x9086,0x0000,
-0xFBC0,0x9087,0x0000, 0xFBC0,0x9088,0x0000, 0xFBC0,0x9089,0x0000,
-0xFBC0,0x908A,0x0000, 0xFBC0,0x908B,0x0000, 0xFBC0,0x908C,0x0000,
-0xFBC0,0x908D,0x0000, 0xFBC0,0x908E,0x0000, 0xFBC0,0x908F,0x0000,
-0xFBC0,0x9090,0x0000, 0xFBC0,0x9091,0x0000, 0xFBC0,0x9092,0x0000,
-0xFBC0,0x9093,0x0000, 0xFBC0,0x9094,0x0000, 0xFBC0,0x9095,0x0000,
-0xFBC0,0x9096,0x0000, 0xFBC0,0x9097,0x0000, 0xFBC0,0x9098,0x0000,
-0xFBC0,0x9099,0x0000, 0xFBC0,0x909A,0x0000, 0xFBC0,0x909B,0x0000,
-0xFBC0,0x909C,0x0000, 0xFBC0,0x909D,0x0000, 0xFBC0,0x909E,0x0000,
-0xFBC0,0x909F,0x0000, 0x12E1,0x0000,0x0000, 0x12E2,0x0000,0x0000,
-0x12E3,0x0000,0x0000, 0x12E4,0x0000,0x0000, 0x12E5,0x0000,0x0000,
-0x12E6,0x0000,0x0000, 0x12E7,0x0000,0x0000, 0x12E9,0x0000,0x0000,
-0x12EA,0x0000,0x0000, 0x12EB,0x0000,0x0000, 0x12EC,0x0000,0x0000,
-0x12ED,0x0000,0x0000, 0x12EE,0x0000,0x0000, 0x12F0,0x0000,0x0000,
-0x12F1,0x0000,0x0000, 0x12F2,0x0000,0x0000, 0x12F3,0x0000,0x0000,
-0x12F4,0x0000,0x0000, 0x12F5,0x0000,0x0000, 0x12F7,0x0000,0x0000,
-0x12F8,0x0000,0x0000, 0x12F9,0x0000,0x0000, 0x12FA,0x0000,0x0000,
-0x12FB,0x0000,0x0000, 0x12FC,0x0000,0x0000, 0x12FD,0x0000,0x0000,
-0x12FE,0x0000,0x0000, 0x12FF,0x0000,0x0000, 0x1300,0x0000,0x0000,
-0x1301,0x0000,0x0000, 0x1302,0x0000,0x0000, 0x1304,0x0000,0x0000,
-0x1305,0x0000,0x0000, 0x12E8,0x0000,0x0000, 0x12EF,0x0000,0x0000,
-0x12F6,0x0000,0x0000, 0x1303,0x0000,0x0000, 0x1306,0x0000,0x0000,
-0xFBC0,0x90C6,0x0000, 0xFBC0,0x90C7,0x0000, 0xFBC0,0x90C8,0x0000,
-0xFBC0,0x90C9,0x0000, 0xFBC0,0x90CA,0x0000, 0xFBC0,0x90CB,0x0000,
-0xFBC0,0x90CC,0x0000, 0xFBC0,0x90CD,0x0000, 0xFBC0,0x90CE,0x0000,
-0xFBC0,0x90CF,0x0000, 0x12E1,0x0000,0x0000, 0x12E2,0x0000,0x0000,
-0x12E3,0x0000,0x0000, 0x12E4,0x0000,0x0000, 0x12E5,0x0000,0x0000,
-0x12E6,0x0000,0x0000, 0x12E7,0x0000,0x0000, 0x12E9,0x0000,0x0000,
-0x12EA,0x0000,0x0000, 0x12EB,0x0000,0x0000, 0x12EC,0x0000,0x0000,
-0x12ED,0x0000,0x0000, 0x12EE,0x0000,0x0000, 0x12F0,0x0000,0x0000,
-0x12F1,0x0000,0x0000, 0x12F2,0x0000,0x0000, 0x12F3,0x0000,0x0000,
-0x12F4,0x0000,0x0000, 0x12F5,0x0000,0x0000, 0x12F7,0x0000,0x0000,
-0x12F8,0x0000,0x0000, 0x12F9,0x0000,0x0000, 0x12FA,0x0000,0x0000,
-0x12FB,0x0000,0x0000, 0x12FC,0x0000,0x0000, 0x12FD,0x0000,0x0000,
-0x12FE,0x0000,0x0000, 0x12FF,0x0000,0x0000, 0x1300,0x0000,0x0000,
-0x1301,0x0000,0x0000, 0x1302,0x0000,0x0000, 0x1304,0x0000,0x0000,
-0x1305,0x0000,0x0000, 0x12E8,0x0000,0x0000, 0x12EF,0x0000,0x0000,
-0x12F6,0x0000,0x0000, 0x1303,0x0000,0x0000, 0x1306,0x0000,0x0000,
-0x1307,0x0000,0x0000, 0x1308,0x0000,0x0000, 0x1309,0x0000,0x0000,
-0xFBC0,0x90F9,0x0000, 0xFBC0,0x90FA,0x0000, 0x0271,0x0000,0x0000,
-0xFBC0,0x90FC,0x0000, 0xFBC0,0x90FD,0x0000, 0xFBC0,0x90FE,0x0000,
-0xFBC0,0x90FF,0x0000 };
-
-uint16 page011data[]= { /* 1100 (3 weights per char) */
-0x1D62,0x0000,0x0000, 0x1D63,0x0000,0x0000, 0x1D64,0x0000,0x0000,
-0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, 0x1D67,0x0000,0x0000,
-0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000,
-0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, 0x1D6D,0x0000,0x0000,
-0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000,
-0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000, 0x1D73,0x0000,0x0000,
-0x1D74,0x0000,0x0000, 0x1D75,0x0000,0x0000, 0x1D76,0x0000,0x0000,
-0x1D77,0x0000,0x0000, 0x1D78,0x0000,0x0000, 0x1D79,0x0000,0x0000,
-0x1D7A,0x0000,0x0000, 0x1D7B,0x0000,0x0000, 0x1D7C,0x0000,0x0000,
-0x1D7D,0x0000,0x0000, 0x1D7E,0x0000,0x0000, 0x1D7F,0x0000,0x0000,
-0x1D80,0x0000,0x0000, 0x1D81,0x0000,0x0000, 0x1D82,0x0000,0x0000,
-0x1D83,0x0000,0x0000, 0x1D84,0x0000,0x0000, 0x1D85,0x0000,0x0000,
-0x1D86,0x0000,0x0000, 0x1D87,0x0000,0x0000, 0x1D88,0x0000,0x0000,
-0x1D89,0x0000,0x0000, 0x1D8A,0x0000,0x0000, 0x1D8B,0x0000,0x0000,
-0x1D8C,0x0000,0x0000, 0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000,
-0x1D8F,0x0000,0x0000, 0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000,
-0x1D92,0x0000,0x0000, 0x1D93,0x0000,0x0000, 0x1D94,0x0000,0x0000,
-0x1D95,0x0000,0x0000, 0x1D96,0x0000,0x0000, 0x1D97,0x0000,0x0000,
-0x1D98,0x0000,0x0000, 0x1D99,0x0000,0x0000, 0x1D9A,0x0000,0x0000,
-0x1D9B,0x0000,0x0000, 0x1D9C,0x0000,0x0000, 0x1D9D,0x0000,0x0000,
-0x1D9E,0x0000,0x0000, 0x1D9F,0x0000,0x0000, 0x1DA0,0x0000,0x0000,
-0x1DA1,0x0000,0x0000, 0x1DA2,0x0000,0x0000, 0x1DA3,0x0000,0x0000,
-0x1DA4,0x0000,0x0000, 0x1DA5,0x0000,0x0000, 0x1DA6,0x0000,0x0000,
-0x1DA7,0x0000,0x0000, 0x1DA8,0x0000,0x0000, 0x1DA9,0x0000,0x0000,
-0x1DAA,0x0000,0x0000, 0x1DAB,0x0000,0x0000, 0x1DAC,0x0000,0x0000,
-0x1DAD,0x0000,0x0000, 0x1DAE,0x0000,0x0000, 0x1DAF,0x0000,0x0000,
-0x1DB0,0x0000,0x0000, 0x1DB1,0x0000,0x0000, 0x1DB2,0x0000,0x0000,
-0x1DB3,0x0000,0x0000, 0x1DB4,0x0000,0x0000, 0x1DB5,0x0000,0x0000,
-0x1DB6,0x0000,0x0000, 0x1DB7,0x0000,0x0000, 0x1DB8,0x0000,0x0000,
-0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, 0x1DBB,0x0000,0x0000,
-0xFBC0,0x915A,0x0000, 0xFBC0,0x915B,0x0000, 0xFBC0,0x915C,0x0000,
-0xFBC0,0x915D,0x0000, 0xFBC0,0x915E,0x0000, 0x1DBC,0x0000,0x0000,
-0x1DBD,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0x1DBF,0x0000,0x0000,
-0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000,
-0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000,
-0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000,
-0x1DC9,0x0000,0x0000, 0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000,
-0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000,
-0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000,
-0x1DD2,0x0000,0x0000, 0x1DD3,0x0000,0x0000, 0x1DD4,0x0000,0x0000,
-0x1DD5,0x0000,0x0000, 0x1DD6,0x0000,0x0000, 0x1DD7,0x0000,0x0000,
-0x1DD8,0x0000,0x0000, 0x1DD9,0x0000,0x0000, 0x1DDA,0x0000,0x0000,
-0x1DDB,0x0000,0x0000, 0x1DDC,0x0000,0x0000, 0x1DDD,0x0000,0x0000,
-0x1DDE,0x0000,0x0000, 0x1DDF,0x0000,0x0000, 0x1DE0,0x0000,0x0000,
-0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0x1DE3,0x0000,0x0000,
-0x1DE4,0x0000,0x0000, 0x1DE5,0x0000,0x0000, 0x1DE6,0x0000,0x0000,
-0x1DE7,0x0000,0x0000, 0x1DE8,0x0000,0x0000, 0x1DE9,0x0000,0x0000,
-0x1DEA,0x0000,0x0000, 0x1DEB,0x0000,0x0000, 0x1DEC,0x0000,0x0000,
-0x1DED,0x0000,0x0000, 0x1DEE,0x0000,0x0000, 0x1DEF,0x0000,0x0000,
-0x1DF0,0x0000,0x0000, 0x1DF1,0x0000,0x0000, 0x1DF2,0x0000,0x0000,
-0x1DF3,0x0000,0x0000, 0x1DF4,0x0000,0x0000, 0x1DF5,0x0000,0x0000,
-0x1DF6,0x0000,0x0000, 0x1DF7,0x0000,0x0000, 0x1DF8,0x0000,0x0000,
-0x1DF9,0x0000,0x0000, 0x1DFA,0x0000,0x0000, 0x1DFB,0x0000,0x0000,
-0x1DFC,0x0000,0x0000, 0x1DFD,0x0000,0x0000, 0x1DFE,0x0000,0x0000,
-0x1DFF,0x0000,0x0000, 0xFBC0,0x91A3,0x0000, 0xFBC0,0x91A4,0x0000,
-0xFBC0,0x91A5,0x0000, 0xFBC0,0x91A6,0x0000, 0xFBC0,0x91A7,0x0000,
-0x1E00,0x0000,0x0000, 0x1E01,0x0000,0x0000, 0x1E02,0x0000,0x0000,
-0x1E03,0x0000,0x0000, 0x1E04,0x0000,0x0000, 0x1E05,0x0000,0x0000,
-0x1E06,0x0000,0x0000, 0x1E07,0x0000,0x0000, 0x1E08,0x0000,0x0000,
-0x1E09,0x0000,0x0000, 0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000,
-0x1E0C,0x0000,0x0000, 0x1E0D,0x0000,0x0000, 0x1E0E,0x0000,0x0000,
-0x1E0F,0x0000,0x0000, 0x1E10,0x0000,0x0000, 0x1E11,0x0000,0x0000,
-0x1E12,0x0000,0x0000, 0x1E13,0x0000,0x0000, 0x1E14,0x0000,0x0000,
-0x1E15,0x0000,0x0000, 0x1E16,0x0000,0x0000, 0x1E17,0x0000,0x0000,
-0x1E18,0x0000,0x0000, 0x1E19,0x0000,0x0000, 0x1E1A,0x0000,0x0000,
-0x1E1B,0x0000,0x0000, 0x1E1C,0x0000,0x0000, 0x1E1D,0x0000,0x0000,
-0x1E1E,0x0000,0x0000, 0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000,
-0x1E21,0x0000,0x0000, 0x1E22,0x0000,0x0000, 0x1E23,0x0000,0x0000,
-0x1E24,0x0000,0x0000, 0x1E25,0x0000,0x0000, 0x1E26,0x0000,0x0000,
-0x1E27,0x0000,0x0000, 0x1E28,0x0000,0x0000, 0x1E29,0x0000,0x0000,
-0x1E2A,0x0000,0x0000, 0x1E2B,0x0000,0x0000, 0x1E2C,0x0000,0x0000,
-0x1E2D,0x0000,0x0000, 0x1E2E,0x0000,0x0000, 0x1E2F,0x0000,0x0000,
-0x1E30,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1E32,0x0000,0x0000,
-0x1E33,0x0000,0x0000, 0x1E34,0x0000,0x0000, 0x1E35,0x0000,0x0000,
-0x1E36,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0x1E38,0x0000,0x0000,
-0x1E39,0x0000,0x0000, 0x1E3A,0x0000,0x0000, 0x1E3B,0x0000,0x0000,
-0x1E3C,0x0000,0x0000, 0x1E3D,0x0000,0x0000, 0x1E3E,0x0000,0x0000,
-0x1E3F,0x0000,0x0000, 0x1E40,0x0000,0x0000, 0x1E41,0x0000,0x0000,
-0x1E42,0x0000,0x0000, 0x1E43,0x0000,0x0000, 0x1E44,0x0000,0x0000,
-0x1E45,0x0000,0x0000, 0x1E46,0x0000,0x0000, 0x1E47,0x0000,0x0000,
-0x1E48,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0x1E4A,0x0000,0x0000,
-0x1E4B,0x0000,0x0000, 0x1E4C,0x0000,0x0000, 0x1E4D,0x0000,0x0000,
-0x1E4E,0x0000,0x0000, 0x1E4F,0x0000,0x0000, 0x1E50,0x0000,0x0000,
-0x1E51,0x0000,0x0000, 0xFBC0,0x91FA,0x0000, 0xFBC0,0x91FB,0x0000,
-0xFBC0,0x91FC,0x0000, 0xFBC0,0x91FD,0x0000, 0xFBC0,0x91FE,0x0000,
-0xFBC0,0x91FF,0x0000 };
-
-uint16 page012data[]= { /* 1200 (3 weights per char) */
-0x141C,0x0000,0x0000, 0x141D,0x0000,0x0000, 0x141E,0x0000,0x0000,
-0x141F,0x0000,0x0000, 0x1420,0x0000,0x0000, 0x1421,0x0000,0x0000,
-0x1422,0x0000,0x0000, 0xFBC0,0x9207,0x0000, 0x1423,0x0000,0x0000,
-0x1424,0x0000,0x0000, 0x1425,0x0000,0x0000, 0x1426,0x0000,0x0000,
-0x1427,0x0000,0x0000, 0x1428,0x0000,0x0000, 0x1429,0x0000,0x0000,
-0x142A,0x0000,0x0000, 0x142B,0x0000,0x0000, 0x142C,0x0000,0x0000,
-0x142D,0x0000,0x0000, 0x142E,0x0000,0x0000, 0x142F,0x0000,0x0000,
-0x1430,0x0000,0x0000, 0x1431,0x0000,0x0000, 0x1432,0x0000,0x0000,
-0x1433,0x0000,0x0000, 0x1434,0x0000,0x0000, 0x1435,0x0000,0x0000,
-0x1436,0x0000,0x0000, 0x1437,0x0000,0x0000, 0x1438,0x0000,0x0000,
-0x1439,0x0000,0x0000, 0x143A,0x0000,0x0000, 0x143B,0x0000,0x0000,
-0x143C,0x0000,0x0000, 0x143D,0x0000,0x0000, 0x143E,0x0000,0x0000,
-0x143F,0x0000,0x0000, 0x1440,0x0000,0x0000, 0x1441,0x0000,0x0000,
-0x1442,0x0000,0x0000, 0x1443,0x0000,0x0000, 0x1444,0x0000,0x0000,
-0x1445,0x0000,0x0000, 0x1446,0x0000,0x0000, 0x1447,0x0000,0x0000,
-0x1448,0x0000,0x0000, 0x1449,0x0000,0x0000, 0x144A,0x0000,0x0000,
-0x144B,0x0000,0x0000, 0x144C,0x0000,0x0000, 0x144D,0x0000,0x0000,
-0x144E,0x0000,0x0000, 0x144F,0x0000,0x0000, 0x1450,0x0000,0x0000,
-0x1451,0x0000,0x0000, 0x1452,0x0000,0x0000, 0x1453,0x0000,0x0000,
-0x1454,0x0000,0x0000, 0x1455,0x0000,0x0000, 0x1456,0x0000,0x0000,
-0x1457,0x0000,0x0000, 0x1458,0x0000,0x0000, 0x1459,0x0000,0x0000,
-0x145A,0x0000,0x0000, 0x145B,0x0000,0x0000, 0x145C,0x0000,0x0000,
-0x145D,0x0000,0x0000, 0x145E,0x0000,0x0000, 0x145F,0x0000,0x0000,
-0x1460,0x0000,0x0000, 0x1461,0x0000,0x0000, 0xFBC0,0x9247,0x0000,
-0x1462,0x0000,0x0000, 0xFBC0,0x9249,0x0000, 0x1463,0x0000,0x0000,
-0x1464,0x0000,0x0000, 0x1465,0x0000,0x0000, 0x1466,0x0000,0x0000,
-0xFBC0,0x924E,0x0000, 0xFBC0,0x924F,0x0000, 0x1467,0x0000,0x0000,
-0x1468,0x0000,0x0000, 0x1469,0x0000,0x0000, 0x146A,0x0000,0x0000,
-0x146B,0x0000,0x0000, 0x146C,0x0000,0x0000, 0x146D,0x0000,0x0000,
-0xFBC0,0x9257,0x0000, 0x146E,0x0000,0x0000, 0xFBC0,0x9259,0x0000,
-0x146F,0x0000,0x0000, 0x1470,0x0000,0x0000, 0x1471,0x0000,0x0000,
-0x1472,0x0000,0x0000, 0xFBC0,0x925E,0x0000, 0xFBC0,0x925F,0x0000,
-0x1473,0x0000,0x0000, 0x1474,0x0000,0x0000, 0x1475,0x0000,0x0000,
-0x1476,0x0000,0x0000, 0x1477,0x0000,0x0000, 0x1478,0x0000,0x0000,
-0x1479,0x0000,0x0000, 0x147A,0x0000,0x0000, 0x147B,0x0000,0x0000,
-0x147C,0x0000,0x0000, 0x147D,0x0000,0x0000, 0x147E,0x0000,0x0000,
-0x147F,0x0000,0x0000, 0x1480,0x0000,0x0000, 0x1481,0x0000,0x0000,
-0x1482,0x0000,0x0000, 0x1483,0x0000,0x0000, 0x1484,0x0000,0x0000,
-0x1485,0x0000,0x0000, 0x1486,0x0000,0x0000, 0x1487,0x0000,0x0000,
-0x1488,0x0000,0x0000, 0x1489,0x0000,0x0000, 0x148A,0x0000,0x0000,
-0x148B,0x0000,0x0000, 0x148C,0x0000,0x0000, 0x148D,0x0000,0x0000,
-0x148E,0x0000,0x0000, 0x148F,0x0000,0x0000, 0x1490,0x0000,0x0000,
-0x1491,0x0000,0x0000, 0x1492,0x0000,0x0000, 0x1493,0x0000,0x0000,
-0x1494,0x0000,0x0000, 0x1495,0x0000,0x0000, 0x1496,0x0000,0x0000,
-0x1497,0x0000,0x0000, 0x1498,0x0000,0x0000, 0x1499,0x0000,0x0000,
-0xFBC0,0x9287,0x0000, 0x149A,0x0000,0x0000, 0xFBC0,0x9289,0x0000,
-0x149B,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149D,0x0000,0x0000,
-0x149E,0x0000,0x0000, 0xFBC0,0x928E,0x0000, 0xFBC0,0x928F,0x0000,
-0x149F,0x0000,0x0000, 0x14A0,0x0000,0x0000, 0x14A1,0x0000,0x0000,
-0x14A2,0x0000,0x0000, 0x14A3,0x0000,0x0000, 0x14A4,0x0000,0x0000,
-0x14A5,0x0000,0x0000, 0x14A6,0x0000,0x0000, 0x14A7,0x0000,0x0000,
-0x14A8,0x0000,0x0000, 0x14A9,0x0000,0x0000, 0x14AA,0x0000,0x0000,
-0x14AB,0x0000,0x0000, 0x14AC,0x0000,0x0000, 0x14AD,0x0000,0x0000,
-0x14AE,0x0000,0x0000, 0x14AF,0x0000,0x0000, 0x14B0,0x0000,0x0000,
-0x14B1,0x0000,0x0000, 0x14B2,0x0000,0x0000, 0x14B3,0x0000,0x0000,
-0x14B4,0x0000,0x0000, 0x14B5,0x0000,0x0000, 0x14B6,0x0000,0x0000,
-0x14B7,0x0000,0x0000, 0x14B8,0x0000,0x0000, 0x14B9,0x0000,0x0000,
-0x14BA,0x0000,0x0000, 0x14BB,0x0000,0x0000, 0x14BC,0x0000,0x0000,
-0x14BD,0x0000,0x0000, 0xFBC0,0x92AF,0x0000, 0x14BE,0x0000,0x0000,
-0xFBC0,0x92B1,0x0000, 0x14BF,0x0000,0x0000, 0x14C0,0x0000,0x0000,
-0x14C1,0x0000,0x0000, 0x14C2,0x0000,0x0000, 0xFBC0,0x92B6,0x0000,
-0xFBC0,0x92B7,0x0000, 0x14C3,0x0000,0x0000, 0x14C4,0x0000,0x0000,
-0x14C5,0x0000,0x0000, 0x14C6,0x0000,0x0000, 0x14C7,0x0000,0x0000,
-0x14C8,0x0000,0x0000, 0x14C9,0x0000,0x0000, 0xFBC0,0x92BF,0x0000,
-0x14CA,0x0000,0x0000, 0xFBC0,0x92C1,0x0000, 0x14CB,0x0000,0x0000,
-0x14CC,0x0000,0x0000, 0x14CD,0x0000,0x0000, 0x14CE,0x0000,0x0000,
-0xFBC0,0x92C6,0x0000, 0xFBC0,0x92C7,0x0000, 0x14CF,0x0000,0x0000,
-0x14D0,0x0000,0x0000, 0x14D1,0x0000,0x0000, 0x14D2,0x0000,0x0000,
-0x14D3,0x0000,0x0000, 0x14D4,0x0000,0x0000, 0x14D5,0x0000,0x0000,
-0xFBC0,0x92CF,0x0000, 0x14D6,0x0000,0x0000, 0x14D7,0x0000,0x0000,
-0x14D8,0x0000,0x0000, 0x14D9,0x0000,0x0000, 0x14DA,0x0000,0x0000,
-0x14DB,0x0000,0x0000, 0x14DC,0x0000,0x0000, 0xFBC0,0x92D7,0x0000,
-0x14DD,0x0000,0x0000, 0x14DE,0x0000,0x0000, 0x14DF,0x0000,0x0000,
-0x14E0,0x0000,0x0000, 0x14E1,0x0000,0x0000, 0x14E2,0x0000,0x0000,
-0x14E3,0x0000,0x0000, 0x14E4,0x0000,0x0000, 0x14E5,0x0000,0x0000,
-0x14E6,0x0000,0x0000, 0x14E7,0x0000,0x0000, 0x14E8,0x0000,0x0000,
-0x14E9,0x0000,0x0000, 0x14EA,0x0000,0x0000, 0x14EB,0x0000,0x0000,
-0x14EC,0x0000,0x0000, 0x14ED,0x0000,0x0000, 0x14EE,0x0000,0x0000,
-0x14EF,0x0000,0x0000, 0x14F0,0x0000,0x0000, 0x14F1,0x0000,0x0000,
-0x14F2,0x0000,0x0000, 0x14F3,0x0000,0x0000, 0xFBC0,0x92EF,0x0000,
-0x14F4,0x0000,0x0000, 0x14F5,0x0000,0x0000, 0x14F6,0x0000,0x0000,
-0x14F7,0x0000,0x0000, 0x14F8,0x0000,0x0000, 0x14F9,0x0000,0x0000,
-0x14FA,0x0000,0x0000, 0x14FB,0x0000,0x0000, 0x14FC,0x0000,0x0000,
-0x14FD,0x0000,0x0000, 0x14FE,0x0000,0x0000, 0x14FF,0x0000,0x0000,
-0x1500,0x0000,0x0000, 0x1501,0x0000,0x0000, 0x1502,0x0000,0x0000,
-0x1503,0x0000,0x0000 };
-
-uint16 page013data[]= { /* 1300 (3 weights per char) */
-0x1504,0x0000,0x0000, 0x1505,0x0000,0x0000, 0x1506,0x0000,0x0000,
-0x1507,0x0000,0x0000, 0x1508,0x0000,0x0000, 0x1509,0x0000,0x0000,
-0x150A,0x0000,0x0000, 0x150B,0x0000,0x0000, 0x150C,0x0000,0x0000,
-0x150D,0x0000,0x0000, 0x150E,0x0000,0x0000, 0x150F,0x0000,0x0000,
-0x1510,0x0000,0x0000, 0x1511,0x0000,0x0000, 0x1512,0x0000,0x0000,
-0xFBC0,0x930F,0x0000, 0x1513,0x0000,0x0000, 0xFBC0,0x9311,0x0000,
-0x1514,0x0000,0x0000, 0x1515,0x0000,0x0000, 0x1516,0x0000,0x0000,
-0x1517,0x0000,0x0000, 0xFBC0,0x9316,0x0000, 0xFBC0,0x9317,0x0000,
-0x1518,0x0000,0x0000, 0x1519,0x0000,0x0000, 0x151A,0x0000,0x0000,
-0x151B,0x0000,0x0000, 0x151C,0x0000,0x0000, 0x151D,0x0000,0x0000,
-0x151E,0x0000,0x0000, 0xFBC0,0x931F,0x0000, 0x151F,0x0000,0x0000,
-0x1520,0x0000,0x0000, 0x1521,0x0000,0x0000, 0x1522,0x0000,0x0000,
-0x1523,0x0000,0x0000, 0x1524,0x0000,0x0000, 0x1525,0x0000,0x0000,
-0x1526,0x0000,0x0000, 0x1527,0x0000,0x0000, 0x1528,0x0000,0x0000,
-0x1529,0x0000,0x0000, 0x152A,0x0000,0x0000, 0x152B,0x0000,0x0000,
-0x152C,0x0000,0x0000, 0x152D,0x0000,0x0000, 0x152E,0x0000,0x0000,
-0x152F,0x0000,0x0000, 0x1530,0x0000,0x0000, 0x1531,0x0000,0x0000,
-0x1532,0x0000,0x0000, 0x1533,0x0000,0x0000, 0x1534,0x0000,0x0000,
-0x1535,0x0000,0x0000, 0x1536,0x0000,0x0000, 0x1537,0x0000,0x0000,
-0x1538,0x0000,0x0000, 0x1539,0x0000,0x0000, 0x153A,0x0000,0x0000,
-0x153B,0x0000,0x0000, 0x153C,0x0000,0x0000, 0x153D,0x0000,0x0000,
-0x153E,0x0000,0x0000, 0x153F,0x0000,0x0000, 0x1540,0x0000,0x0000,
-0x1541,0x0000,0x0000, 0x1542,0x0000,0x0000, 0x1543,0x0000,0x0000,
-0x1544,0x0000,0x0000, 0x1545,0x0000,0x0000, 0xFBC0,0x9347,0x0000,
-0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1548,0x0000,0x0000,
-0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154B,0x0000,0x0000,
-0x154C,0x0000,0x0000, 0x154D,0x0000,0x0000, 0x154E,0x0000,0x0000,
-0x154F,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000,
-0x1552,0x0000,0x0000, 0x1553,0x0000,0x0000, 0x1554,0x0000,0x0000,
-0x1555,0x0000,0x0000, 0x1556,0x0000,0x0000, 0x1557,0x0000,0x0000,
-0x1558,0x0000,0x0000, 0xFBC0,0x935B,0x0000, 0xFBC0,0x935C,0x0000,
-0xFBC0,0x935D,0x0000, 0xFBC0,0x935E,0x0000, 0xFBC0,0x935F,0x0000,
-0xFBC0,0x9360,0x0000, 0x0245,0x0000,0x0000, 0x0262,0x0000,0x0000,
-0x0246,0x0000,0x0000, 0x0247,0x0000,0x0000, 0x0248,0x0000,0x0000,
-0x0249,0x0000,0x0000, 0x025A,0x0000,0x0000, 0x0272,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0DCC,0x0000,0x0000, 0x0DCD,0x0000,0x0000, 0x0DCE,0x0000,0x0000,
-0x0DCF,0x0000,0x0000, 0x0DD0,0x0000,0x0000, 0x0DD1,0x0000,0x0000,
-0x0DD2,0x0000,0x0000, 0x0DD3,0x0000,0x0000, 0x0DD4,0x0000,0x0000,
-0x0DD5,0x0000,0x0000, 0x0DD6,0x0000,0x0000, 0xFBC0,0x937D,0x0000,
-0xFBC0,0x937E,0x0000, 0xFBC0,0x937F,0x0000, 0xFBC0,0x9380,0x0000,
-0xFBC0,0x9381,0x0000, 0xFBC0,0x9382,0x0000, 0xFBC0,0x9383,0x0000,
-0xFBC0,0x9384,0x0000, 0xFBC0,0x9385,0x0000, 0xFBC0,0x9386,0x0000,
-0xFBC0,0x9387,0x0000, 0xFBC0,0x9388,0x0000, 0xFBC0,0x9389,0x0000,
-0xFBC0,0x938A,0x0000, 0xFBC0,0x938B,0x0000, 0xFBC0,0x938C,0x0000,
-0xFBC0,0x938D,0x0000, 0xFBC0,0x938E,0x0000, 0xFBC0,0x938F,0x0000,
-0xFBC0,0x9390,0x0000, 0xFBC0,0x9391,0x0000, 0xFBC0,0x9392,0x0000,
-0xFBC0,0x9393,0x0000, 0xFBC0,0x9394,0x0000, 0xFBC0,0x9395,0x0000,
-0xFBC0,0x9396,0x0000, 0xFBC0,0x9397,0x0000, 0xFBC0,0x9398,0x0000,
-0xFBC0,0x9399,0x0000, 0xFBC0,0x939A,0x0000, 0xFBC0,0x939B,0x0000,
-0xFBC0,0x939C,0x0000, 0xFBC0,0x939D,0x0000, 0xFBC0,0x939E,0x0000,
-0xFBC0,0x939F,0x0000, 0x1A59,0x0000,0x0000, 0x1A5A,0x0000,0x0000,
-0x1A5B,0x0000,0x0000, 0x1A5C,0x0000,0x0000, 0x1A5D,0x0000,0x0000,
-0x1A5E,0x0000,0x0000, 0x1A5F,0x0000,0x0000, 0x1A60,0x0000,0x0000,
-0x1A61,0x0000,0x0000, 0x1A62,0x0000,0x0000, 0x1A63,0x0000,0x0000,
-0x1A64,0x0000,0x0000, 0x1A65,0x0000,0x0000, 0x1A66,0x0000,0x0000,
-0x1A67,0x0000,0x0000, 0x1A68,0x0000,0x0000, 0x1A69,0x0000,0x0000,
-0x1A6A,0x0000,0x0000, 0x1A6B,0x0000,0x0000, 0x1A6C,0x0000,0x0000,
-0x1A6D,0x0000,0x0000, 0x1A6E,0x0000,0x0000, 0x1A6F,0x0000,0x0000,
-0x1A70,0x0000,0x0000, 0x1A71,0x0000,0x0000, 0x1A72,0x0000,0x0000,
-0x1A73,0x0000,0x0000, 0x1A74,0x0000,0x0000, 0x1A75,0x0000,0x0000,
-0x1A76,0x0000,0x0000, 0x1A77,0x0000,0x0000, 0x1A78,0x0000,0x0000,
-0x1A79,0x0000,0x0000, 0x1A7A,0x0000,0x0000, 0x1A7B,0x0000,0x0000,
-0x1A7C,0x0000,0x0000, 0x1A7D,0x0000,0x0000, 0x1A7E,0x0000,0x0000,
-0x1A7F,0x0000,0x0000, 0x1A80,0x0000,0x0000, 0x1A81,0x0000,0x0000,
-0x1A82,0x0000,0x0000, 0x1A83,0x0000,0x0000, 0x1A84,0x0000,0x0000,
-0x1A85,0x0000,0x0000, 0x1A86,0x0000,0x0000, 0x1A87,0x0000,0x0000,
-0x1A88,0x0000,0x0000, 0x1A89,0x0000,0x0000, 0x1A8A,0x0000,0x0000,
-0x1A8B,0x0000,0x0000, 0x1A8C,0x0000,0x0000, 0x1A8D,0x0000,0x0000,
-0x1A8E,0x0000,0x0000, 0x1A8F,0x0000,0x0000, 0x1A90,0x0000,0x0000,
-0x1A91,0x0000,0x0000, 0x1A92,0x0000,0x0000, 0x1A93,0x0000,0x0000,
-0x1A94,0x0000,0x0000, 0x1A95,0x0000,0x0000, 0x1A96,0x0000,0x0000,
-0x1A97,0x0000,0x0000, 0x1A98,0x0000,0x0000, 0x1A99,0x0000,0x0000,
-0x1A9A,0x0000,0x0000, 0x1A9B,0x0000,0x0000, 0x1A9C,0x0000,0x0000,
-0x1A9D,0x0000,0x0000, 0x1A9E,0x0000,0x0000, 0x1A9F,0x0000,0x0000,
-0x1AA0,0x0000,0x0000, 0x1AA1,0x0000,0x0000, 0x1AA2,0x0000,0x0000,
-0x1AA3,0x0000,0x0000, 0x1AA4,0x0000,0x0000, 0x1AA5,0x0000,0x0000,
-0x1AA6,0x0000,0x0000, 0x1AA7,0x0000,0x0000, 0x1AA8,0x0000,0x0000,
-0x1AA9,0x0000,0x0000, 0x1AAA,0x0000,0x0000, 0x1AAB,0x0000,0x0000,
-0x1AAC,0x0000,0x0000, 0x1AAD,0x0000,0x0000, 0xFBC0,0x93F5,0x0000,
-0xFBC0,0x93F6,0x0000, 0xFBC0,0x93F7,0x0000, 0xFBC0,0x93F8,0x0000,
-0xFBC0,0x93F9,0x0000, 0xFBC0,0x93FA,0x0000, 0xFBC0,0x93FB,0x0000,
-0xFBC0,0x93FC,0x0000, 0xFBC0,0x93FD,0x0000, 0xFBC0,0x93FE,0x0000,
-0xFBC0,0x93FF,0x0000 };
-
-uint16 page014data[]= { /* 1400 (3 weights per char) */
-0xFBC0,0x9400,0x0000, 0x1AAE,0x0000,0x0000, 0x1AAF,0x0000,0x0000,
-0x1AB0,0x0000,0x0000, 0x1AB1,0x0000,0x0000, 0x1AB2,0x0000,0x0000,
-0x1AB3,0x0000,0x0000, 0x1AB4,0x0000,0x0000, 0x1AB5,0x0000,0x0000,
-0x1AB6,0x0000,0x0000, 0x1AB7,0x0000,0x0000, 0x1AB8,0x0000,0x0000,
-0x1AB9,0x0000,0x0000, 0x1ABA,0x0000,0x0000, 0x1ABB,0x0000,0x0000,
-0x1ABC,0x0000,0x0000, 0x1ABD,0x0000,0x0000, 0x1ABE,0x0000,0x0000,
-0x1ABF,0x0000,0x0000, 0x1AC0,0x0000,0x0000, 0x1AC1,0x0000,0x0000,
-0x1AC2,0x0000,0x0000, 0x1AC3,0x0000,0x0000, 0x1AC4,0x0000,0x0000,
-0x1AC5,0x0000,0x0000, 0x1AC6,0x0000,0x0000, 0x1AC7,0x0000,0x0000,
-0x1AC8,0x0000,0x0000, 0x1AC9,0x0000,0x0000, 0x1ACA,0x0000,0x0000,
-0x1ACB,0x0000,0x0000, 0x1ACC,0x0000,0x0000, 0x1ACD,0x0000,0x0000,
-0x1ACE,0x0000,0x0000, 0x1ACF,0x0000,0x0000, 0x1AD0,0x0000,0x0000,
-0x1AD1,0x0000,0x0000, 0x1AD2,0x0000,0x0000, 0x1AD3,0x0000,0x0000,
-0x1AD4,0x0000,0x0000, 0x1AD5,0x0000,0x0000, 0x1AD6,0x0000,0x0000,
-0x1AD7,0x0000,0x0000, 0x1AD8,0x0000,0x0000, 0x1AD9,0x0000,0x0000,
-0x1ADA,0x0000,0x0000, 0x1ADB,0x0000,0x0000, 0x1ADC,0x0000,0x0000,
-0x1ADD,0x0000,0x0000, 0x1ADE,0x0000,0x0000, 0x1ADF,0x0000,0x0000,
-0x1AE0,0x0000,0x0000, 0x1AE1,0x0000,0x0000, 0x1AE2,0x0000,0x0000,
-0x1AE3,0x0000,0x0000, 0x1AE4,0x0000,0x0000, 0x1AE5,0x0000,0x0000,
-0x1AE6,0x0000,0x0000, 0x1AE7,0x0000,0x0000, 0x1AE8,0x0000,0x0000,
-0x1AE9,0x0000,0x0000, 0x1AEA,0x0000,0x0000, 0x1AEB,0x0000,0x0000,
-0x1AEC,0x0000,0x0000, 0x1AED,0x0000,0x0000, 0x1AEE,0x0000,0x0000,
-0x1AEF,0x0000,0x0000, 0x1AF0,0x0000,0x0000, 0x1AF1,0x0000,0x0000,
-0x1AF2,0x0000,0x0000, 0x1AF3,0x0000,0x0000, 0x1AF4,0x0000,0x0000,
-0x1AF5,0x0000,0x0000, 0x1AF6,0x0000,0x0000, 0x1AF7,0x0000,0x0000,
-0x1AF8,0x0000,0x0000, 0x1AF9,0x0000,0x0000, 0x1AFA,0x0000,0x0000,
-0x1AFB,0x0000,0x0000, 0x1AFC,0x0000,0x0000, 0x1AFD,0x0000,0x0000,
-0x1AFE,0x0000,0x0000, 0x1AFF,0x0000,0x0000, 0x1B00,0x0000,0x0000,
-0x1B01,0x0000,0x0000, 0x1B02,0x0000,0x0000, 0x1B03,0x0000,0x0000,
-0x1B04,0x0000,0x0000, 0x1B05,0x0000,0x0000, 0x1B06,0x0000,0x0000,
-0x1B07,0x0000,0x0000, 0x1B08,0x0000,0x0000, 0x1B09,0x0000,0x0000,
-0x1B0A,0x0000,0x0000, 0x1B0B,0x0000,0x0000, 0x1B0C,0x0000,0x0000,
-0x1B0D,0x0000,0x0000, 0x1B0E,0x0000,0x0000, 0x1B0F,0x0000,0x0000,
-0x1B10,0x0000,0x0000, 0x1B11,0x0000,0x0000, 0x1B12,0x0000,0x0000,
-0x1B13,0x0000,0x0000, 0x1B14,0x0000,0x0000, 0x1B15,0x0000,0x0000,
-0x1B16,0x0000,0x0000, 0x1B17,0x0000,0x0000, 0x1B18,0x0000,0x0000,
-0x1B19,0x0000,0x0000, 0x1B1A,0x0000,0x0000, 0x1B1B,0x0000,0x0000,
-0x1B1C,0x0000,0x0000, 0x1B1D,0x0000,0x0000, 0x1B1E,0x0000,0x0000,
-0x1B1F,0x0000,0x0000, 0x1B20,0x0000,0x0000, 0x1B21,0x0000,0x0000,
-0x1B22,0x0000,0x0000, 0x1B23,0x0000,0x0000, 0x1B24,0x0000,0x0000,
-0x1B25,0x0000,0x0000, 0x1B26,0x0000,0x0000, 0x1B27,0x0000,0x0000,
-0x1B28,0x0000,0x0000, 0x1B29,0x0000,0x0000, 0x1B2A,0x0000,0x0000,
-0x1B2B,0x0000,0x0000, 0x1B2C,0x0000,0x0000, 0x1B2D,0x0000,0x0000,
-0x1B2E,0x0000,0x0000, 0x1B2F,0x0000,0x0000, 0x1B30,0x0000,0x0000,
-0x1B31,0x0000,0x0000, 0x1B32,0x0000,0x0000, 0x1B33,0x0000,0x0000,
-0x1B34,0x0000,0x0000, 0x1B35,0x0000,0x0000, 0x1B36,0x0000,0x0000,
-0x1B37,0x0000,0x0000, 0x1B38,0x0000,0x0000, 0x1B39,0x0000,0x0000,
-0x1B3A,0x0000,0x0000, 0x1B3B,0x0000,0x0000, 0x1B3C,0x0000,0x0000,
-0x1B3D,0x0000,0x0000, 0x1B3E,0x0000,0x0000, 0x1B3F,0x0000,0x0000,
-0x1B40,0x0000,0x0000, 0x1B41,0x0000,0x0000, 0x1B42,0x0000,0x0000,
-0x1B43,0x0000,0x0000, 0x1B44,0x0000,0x0000, 0x1B45,0x0000,0x0000,
-0x1B46,0x0000,0x0000, 0x1B47,0x0000,0x0000, 0x1B48,0x0000,0x0000,
-0x1B49,0x0000,0x0000, 0x1B4A,0x0000,0x0000, 0x1B4B,0x0000,0x0000,
-0x1B4C,0x0000,0x0000, 0x1B4D,0x0000,0x0000, 0x1B4E,0x0000,0x0000,
-0x1B4F,0x0000,0x0000, 0x1B50,0x0000,0x0000, 0x1B51,0x0000,0x0000,
-0x1B52,0x0000,0x0000, 0x1B53,0x0000,0x0000, 0x1B54,0x0000,0x0000,
-0x1B55,0x0000,0x0000, 0x1B56,0x0000,0x0000, 0x1B57,0x0000,0x0000,
-0x1B58,0x0000,0x0000, 0x1B59,0x0000,0x0000, 0x1B5A,0x0000,0x0000,
-0x1B5B,0x0000,0x0000, 0x1B5C,0x0000,0x0000, 0x1B5D,0x0000,0x0000,
-0x1B5E,0x0000,0x0000, 0x1B5F,0x0000,0x0000, 0x1B60,0x0000,0x0000,
-0x1B61,0x0000,0x0000, 0x1B62,0x0000,0x0000, 0x1B63,0x0000,0x0000,
-0x1B64,0x0000,0x0000, 0x1B65,0x0000,0x0000, 0x1B66,0x0000,0x0000,
-0x1B67,0x0000,0x0000, 0x1B68,0x0000,0x0000, 0x1B69,0x0000,0x0000,
-0x1B6A,0x0000,0x0000, 0x1B6B,0x0000,0x0000, 0x1B6C,0x0000,0x0000,
-0x1B6D,0x0000,0x0000, 0x1B6E,0x0000,0x0000, 0x1B6F,0x0000,0x0000,
-0x1B70,0x0000,0x0000, 0x1B71,0x0000,0x0000, 0x1B72,0x0000,0x0000,
-0x1B73,0x0000,0x0000, 0x1B74,0x0000,0x0000, 0x1B75,0x0000,0x0000,
-0x1B76,0x0000,0x0000, 0x1B77,0x0000,0x0000, 0x1B78,0x0000,0x0000,
-0x1B79,0x0000,0x0000, 0x1B7A,0x0000,0x0000, 0x1B7B,0x0000,0x0000,
-0x1B7C,0x0000,0x0000, 0x1B7D,0x0000,0x0000, 0x1B7E,0x0000,0x0000,
-0x1B7F,0x0000,0x0000, 0x1B80,0x0000,0x0000, 0x1B81,0x0000,0x0000,
-0x1B82,0x0000,0x0000, 0x1B83,0x0000,0x0000, 0x1B84,0x0000,0x0000,
-0x1B85,0x0000,0x0000, 0x1B86,0x0000,0x0000, 0x1B87,0x0000,0x0000,
-0x1B88,0x0000,0x0000, 0x1B89,0x0000,0x0000, 0x1B8A,0x0000,0x0000,
-0x1B8B,0x0000,0x0000, 0x1B8C,0x0000,0x0000, 0x1B8D,0x0000,0x0000,
-0x1B8E,0x0000,0x0000, 0x1B8F,0x0000,0x0000, 0x1B90,0x0000,0x0000,
-0x1B91,0x0000,0x0000, 0x1B92,0x0000,0x0000, 0x1B93,0x0000,0x0000,
-0x1B94,0x0000,0x0000, 0x1B95,0x0000,0x0000, 0x1B96,0x0000,0x0000,
-0x1B97,0x0000,0x0000, 0x1B98,0x0000,0x0000, 0x1B99,0x0000,0x0000,
-0x1B9A,0x0000,0x0000, 0x1B9B,0x0000,0x0000, 0x1B9C,0x0000,0x0000,
-0x1B9D,0x0000,0x0000, 0x1B9E,0x0000,0x0000, 0x1B9F,0x0000,0x0000,
-0x1BA0,0x0000,0x0000, 0x1BA1,0x0000,0x0000, 0x1BA2,0x0000,0x0000,
-0x1BA3,0x0000,0x0000, 0x1BA4,0x0000,0x0000, 0x1BA5,0x0000,0x0000,
-0x1BA6,0x0000,0x0000, 0x1BA7,0x0000,0x0000, 0x1BA8,0x0000,0x0000,
-0x1BA9,0x0000,0x0000, 0x1BAA,0x0000,0x0000, 0x1BAB,0x0000,0x0000,
-0x1BAC,0x0000,0x0000 };
-
-uint16 page015data[]= { /* 1500 (2 weights per char) */
-0x1BAD,0x0000, 0x1BAE,0x0000, 0x1BAF,0x0000, 0x1BB0,0x0000,
-0x1BB1,0x0000, 0x1BB2,0x0000, 0x1BB3,0x0000, 0x1BB4,0x0000,
-0x1BB5,0x0000, 0x1BB6,0x0000, 0x1BB7,0x0000, 0x1BB8,0x0000,
-0x1BB9,0x0000, 0x1BBA,0x0000, 0x1BBB,0x0000, 0x1BBC,0x0000,
-0x1BBD,0x0000, 0x1BBE,0x0000, 0x1BBF,0x0000, 0x1BC0,0x0000,
-0x1BC1,0x0000, 0x1BC2,0x0000, 0x1BC3,0x0000, 0x1BC4,0x0000,
-0x1BC5,0x0000, 0x1BC6,0x0000, 0x1BC7,0x0000, 0x1BC8,0x0000,
-0x1BC9,0x0000, 0x1BCA,0x0000, 0x1BCB,0x0000, 0x1BCC,0x0000,
-0x1BCD,0x0000, 0x1BCE,0x0000, 0x1BCF,0x0000, 0x1BD0,0x0000,
-0x1BD1,0x0000, 0x1BD2,0x0000, 0x1BD3,0x0000, 0x1BD4,0x0000,
-0x1BD5,0x0000, 0x1BD6,0x0000, 0x1BD7,0x0000, 0x1BD8,0x0000,
-0x1BD9,0x0000, 0x1BDA,0x0000, 0x1BDB,0x0000, 0x1BDC,0x0000,
-0x1BDD,0x0000, 0x1BDE,0x0000, 0x1BDF,0x0000, 0x1BE0,0x0000,
-0x1BE1,0x0000, 0x1BE2,0x0000, 0x1BE3,0x0000, 0x1BE4,0x0000,
-0x1BE5,0x0000, 0x1BE6,0x0000, 0x1BE7,0x0000, 0x1BE8,0x0000,
-0x1BE9,0x0000, 0x1BEA,0x0000, 0x1BEB,0x0000, 0x1BEC,0x0000,
-0x1BED,0x0000, 0x1BEE,0x0000, 0x1BEF,0x0000, 0x1BF0,0x0000,
-0x1BF1,0x0000, 0x1BF2,0x0000, 0x1BF3,0x0000, 0x1BF4,0x0000,
-0x1BF5,0x0000, 0x1BF6,0x0000, 0x1BF7,0x0000, 0x1BF8,0x0000,
-0x1BF9,0x0000, 0x1BFA,0x0000, 0x1BFB,0x0000, 0x1BFC,0x0000,
-0x1BFD,0x0000, 0x1BFE,0x0000, 0x1BFF,0x0000, 0x1C00,0x0000,
-0x1C01,0x0000, 0x1C02,0x0000, 0x1C03,0x0000, 0x1C04,0x0000,
-0x1C05,0x0000, 0x1C06,0x0000, 0x1C07,0x0000, 0x1C08,0x0000,
-0x1C09,0x0000, 0x1C0A,0x0000, 0x1C0B,0x0000, 0x1C0C,0x0000,
-0x1C0D,0x0000, 0x1C0E,0x0000, 0x1C0F,0x0000, 0x1C10,0x0000,
-0x1C11,0x0000, 0x1C12,0x0000, 0x1C13,0x0000, 0x1C14,0x0000,
-0x1C15,0x0000, 0x1C16,0x0000, 0x1C17,0x0000, 0x1C18,0x0000,
-0x1C19,0x0000, 0x1C1A,0x0000, 0x1C1B,0x0000, 0x1C1C,0x0000,
-0x1C1D,0x0000, 0x1C1E,0x0000, 0x1C1F,0x0000, 0x1C20,0x0000,
-0x1C21,0x0000, 0x1C22,0x0000, 0x1C23,0x0000, 0x1C24,0x0000,
-0x1C25,0x0000, 0x1C26,0x0000, 0x1C27,0x0000, 0x1C28,0x0000,
-0x1C5B,0x0000, 0x1C29,0x0000, 0x1C2B,0x0000, 0x1C2C,0x0000,
-0x1C2D,0x0000, 0x1C2E,0x0000, 0x1C2F,0x0000, 0x1C30,0x0000,
-0x1C31,0x0000, 0x1C32,0x0000, 0x1C33,0x0000, 0x1C34,0x0000,
-0x1C35,0x0000, 0x1C36,0x0000, 0x1C37,0x0000, 0x1C38,0x0000,
-0x1C39,0x0000, 0x1C3A,0x0000, 0x1C3C,0x0000, 0x1C3D,0x0000,
-0x1C3E,0x0000, 0x1C3F,0x0000, 0x1C40,0x0000, 0x1C41,0x0000,
-0x1C42,0x0000, 0x1C43,0x0000, 0x1C4A,0x0000, 0x1C4B,0x0000,
-0x1C4C,0x0000, 0x1C4D,0x0000, 0x1C4E,0x0000, 0x1C4F,0x0000,
-0x1C50,0x0000, 0x1C51,0x0000, 0x1C52,0x0000, 0x1C53,0x0000,
-0x1C54,0x0000, 0x1C55,0x0000, 0x1C56,0x0000, 0x1C57,0x0000,
-0x1C58,0x0000, 0x1C59,0x0000, 0x1C5A,0x0000, 0x1C5C,0x0000,
-0x1C5D,0x0000, 0x1C5E,0x0000, 0x1C5F,0x0000, 0x1C60,0x0000,
-0x1C61,0x0000, 0x1C62,0x0000, 0x1C63,0x0000, 0x1C64,0x0000,
-0x1C65,0x0000, 0x1C66,0x0000, 0x1C67,0x0000, 0x1C68,0x0000,
-0x1C69,0x0000, 0x1C6A,0x0000, 0x1C6B,0x0000, 0x1C6C,0x0000,
-0x1C6D,0x0000, 0x1C6E,0x0000, 0x1C6F,0x0000, 0x1C70,0x0000,
-0x1C71,0x0000, 0x1C72,0x0000, 0x1C73,0x0000, 0x1C74,0x0000,
-0x1C75,0x0000, 0x1C76,0x0000, 0x1C77,0x0000, 0x1C78,0x0000,
-0x1C79,0x0000, 0x1C7A,0x0000, 0x1C7B,0x0000, 0x1C7C,0x0000,
-0x1C7D,0x0000, 0x1C7E,0x0000, 0x1C7F,0x0000, 0x1C80,0x0000,
-0x1C81,0x0000, 0x1C82,0x0000, 0x1C83,0x0000, 0x1C84,0x0000,
-0x1C85,0x0000, 0x1C86,0x0000, 0x1C87,0x0000, 0x1C88,0x0000,
-0x1C89,0x0000, 0x1C8A,0x0000, 0x1C8B,0x0000, 0x1C8C,0x0000,
-0x1C8D,0x0000, 0x1C8E,0x0000, 0x1C8F,0x0000, 0x1C90,0x0000,
-0x1C91,0x0000, 0x1C92,0x0000, 0x1C93,0x0000, 0x1C94,0x0000,
-0x1C95,0x0000, 0x1C96,0x0000, 0x1C97,0x0000, 0x1C98,0x0000,
-0x1C99,0x0000, 0x1C9A,0x0000, 0x1C9B,0x0000, 0x1C9C,0x0000,
-0x1C9D,0x0000, 0x1C9E,0x0000, 0x1C9F,0x0000, 0x1CA0,0x0000,
-0x1CA1,0x0000, 0x1CA2,0x0000, 0x1CA3,0x0000, 0x1CA4,0x0000,
-0x1CA5,0x0000, 0x1CA6,0x0000, 0x1CA7,0x0000, 0x1CA8,0x0000,
-0x1CA9,0x0000, 0x1CAA,0x0000, 0x1CAB,0x0000, 0x1CAC,0x0000,
-0x1CAD,0x0000, 0x1CAE,0x0000, 0x1CAF,0x0000, 0x1CB0,0x0000,
-0x1CB1,0x0000, 0x1CB2,0x0000, 0x1CB3,0x0000, 0x1CB4,0x0000
-};
-
-uint16 page016data[]= { /* 1600 (3 weights per char) */
-0x1CB5,0x0000,0x0000, 0x1CB6,0x0000,0x0000, 0x1CB7,0x0000,0x0000,
-0x1CB8,0x0000,0x0000, 0x1CB9,0x0000,0x0000, 0x1CBA,0x0000,0x0000,
-0x1CBB,0x0000,0x0000, 0x1CBC,0x0000,0x0000, 0x1CBD,0x0000,0x0000,
-0x1CBE,0x0000,0x0000, 0x1CBF,0x0000,0x0000, 0x1CC0,0x0000,0x0000,
-0x1CC1,0x0000,0x0000, 0x1CC2,0x0000,0x0000, 0x1CC3,0x0000,0x0000,
-0x1CC4,0x0000,0x0000, 0x1CC5,0x0000,0x0000, 0x1CC6,0x0000,0x0000,
-0x1CC7,0x0000,0x0000, 0x1CC8,0x0000,0x0000, 0x1CC9,0x0000,0x0000,
-0x1CCA,0x0000,0x0000, 0x1CCB,0x0000,0x0000, 0x1CCC,0x0000,0x0000,
-0x1CCD,0x0000,0x0000, 0x1CCE,0x0000,0x0000, 0x1CCF,0x0000,0x0000,
-0x1CD0,0x0000,0x0000, 0x1CD1,0x0000,0x0000, 0x1CD2,0x0000,0x0000,
-0x1CD3,0x0000,0x0000, 0x1CD4,0x0000,0x0000, 0x1CD5,0x0000,0x0000,
-0x1CD6,0x0000,0x0000, 0x1CD7,0x0000,0x0000, 0x1CD8,0x0000,0x0000,
-0x1CD9,0x0000,0x0000, 0x1CDA,0x0000,0x0000, 0x1CDB,0x0000,0x0000,
-0x1CDC,0x0000,0x0000, 0x1CDD,0x0000,0x0000, 0x1CDE,0x0000,0x0000,
-0x1CDF,0x0000,0x0000, 0x1CE0,0x0000,0x0000, 0x1CE1,0x0000,0x0000,
-0x1CE2,0x0000,0x0000, 0x1CE3,0x0000,0x0000, 0x1CE4,0x0000,0x0000,
-0x1CE5,0x0000,0x0000, 0x1CE6,0x0000,0x0000, 0x1CE7,0x0000,0x0000,
-0x1CE8,0x0000,0x0000, 0x1CE9,0x0000,0x0000, 0x1CEA,0x0000,0x0000,
-0x1CEB,0x0000,0x0000, 0x1CEC,0x0000,0x0000, 0x1CED,0x0000,0x0000,
-0x1CEE,0x0000,0x0000, 0x1CEF,0x0000,0x0000, 0x1CF0,0x0000,0x0000,
-0x1CF1,0x0000,0x0000, 0x1CF2,0x0000,0x0000, 0x1CF3,0x0000,0x0000,
-0x1CF4,0x0000,0x0000, 0x1CF5,0x0000,0x0000, 0x1CF6,0x0000,0x0000,
-0x1CF7,0x0000,0x0000, 0x1CF8,0x0000,0x0000, 0x1CF9,0x0000,0x0000,
-0x1CFA,0x0000,0x0000, 0x1CFB,0x0000,0x0000, 0x1CFC,0x0000,0x0000,
-0x1CFD,0x0000,0x0000, 0x1CFE,0x0000,0x0000, 0x1CFF,0x0000,0x0000,
-0x1D00,0x0000,0x0000, 0x1D01,0x0000,0x0000, 0x1D02,0x0000,0x0000,
-0x1D03,0x0000,0x0000, 0x1D04,0x0000,0x0000, 0x1D05,0x0000,0x0000,
-0x1D06,0x0000,0x0000, 0x1D07,0x0000,0x0000, 0x1D08,0x0000,0x0000,
-0x1D09,0x0000,0x0000, 0x1D0A,0x0000,0x0000, 0x1D0B,0x0000,0x0000,
-0x1D0C,0x0000,0x0000, 0x1D0D,0x0000,0x0000, 0x1D0E,0x0000,0x0000,
-0x1D0F,0x0000,0x0000, 0x1D10,0x0000,0x0000, 0x1D11,0x0000,0x0000,
-0x1D12,0x0000,0x0000, 0x1D13,0x0000,0x0000, 0x1D14,0x0000,0x0000,
-0x1D15,0x0000,0x0000, 0x1D16,0x0000,0x0000, 0x1D17,0x0000,0x0000,
-0x1D18,0x0000,0x0000, 0x1D19,0x0000,0x0000, 0x1D1A,0x0000,0x0000,
-0x1D1B,0x0000,0x0000, 0x1D1C,0x0000,0x0000, 0x1D1D,0x0000,0x0000,
-0x1D1E,0x0000,0x0000, 0x1D1F,0x0000,0x0000, 0x1D20,0x0000,0x0000,
-0x1D21,0x0000,0x0000, 0x0316,0x0000,0x0000, 0x0265,0x0000,0x0000,
-0x1C2A,0x0000,0x0000, 0x1C3B,0x0000,0x0000, 0x1C44,0x0000,0x0000,
-0x1C45,0x0000,0x0000, 0x1C46,0x0000,0x0000, 0x1C47,0x0000,0x0000,
-0x1C48,0x0000,0x0000, 0x1C49,0x0000,0x0000, 0xFBC0,0x9677,0x0000,
-0xFBC0,0x9678,0x0000, 0xFBC0,0x9679,0x0000, 0xFBC0,0x967A,0x0000,
-0xFBC0,0x967B,0x0000, 0xFBC0,0x967C,0x0000, 0xFBC0,0x967D,0x0000,
-0xFBC0,0x967E,0x0000, 0xFBC0,0x967F,0x0000, 0x020A,0x0000,0x0000,
-0x1D22,0x0000,0x0000, 0x1D23,0x0000,0x0000, 0x1D24,0x0000,0x0000,
-0x1D25,0x0000,0x0000, 0x1D26,0x0000,0x0000, 0x1D27,0x0000,0x0000,
-0x1D28,0x0000,0x0000, 0x1D29,0x0000,0x0000, 0x1D2A,0x0000,0x0000,
-0x1D2B,0x0000,0x0000, 0x1D2C,0x0000,0x0000, 0x1D2D,0x0000,0x0000,
-0x1D2E,0x0000,0x0000, 0x1D2F,0x0000,0x0000, 0x1D30,0x0000,0x0000,
-0x1D31,0x0000,0x0000, 0x1D32,0x0000,0x0000, 0x1D33,0x0000,0x0000,
-0x1D34,0x0000,0x0000, 0x1D35,0x0000,0x0000, 0x1D36,0x0000,0x0000,
-0x1D37,0x0000,0x0000, 0x1D38,0x0000,0x0000, 0x1D39,0x0000,0x0000,
-0x1D3A,0x0000,0x0000, 0x1D3B,0x0000,0x0000, 0x0292,0x0000,0x0000,
-0x0293,0x0000,0x0000, 0xFBC0,0x969D,0x0000, 0xFBC0,0x969E,0x0000,
-0xFBC0,0x969F,0x0000, 0x1D3C,0x0000,0x0000, 0x1D3C,0x0000,0x0000,
-0x1D3D,0x0000,0x0000, 0x1D59,0x0000,0x0000, 0x1D3D,0x0000,0x0000,
-0x1D3D,0x0000,0x0000, 0x1D3E,0x0000,0x0000, 0x1D3E,0x0000,0x0000,
-0x1D3F,0x0000,0x0000, 0x1D3F,0x0000,0x0000, 0x1D57,0x0000,0x0000,
-0x1D58,0x0000,0x0000, 0x1D3F,0x0000,0x0000, 0x1D3F,0x0000,0x0000,
-0x1D3F,0x0000,0x0000, 0x1D40,0x0000,0x0000, 0x1D41,0x0000,0x0000,
-0x1D42,0x0000,0x0000, 0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000,
-0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000, 0x1D43,0x0000,0x0000,
-0x1D44,0x0000,0x0000, 0x1D5C,0x0000,0x0000, 0x1D45,0x0000,0x0000,
-0x1D46,0x0000,0x0000, 0x1D46,0x0000,0x0000, 0x1D46,0x0000,0x0000,
-0x1D46,0x0000,0x0000, 0x1D47,0x0000,0x0000, 0x1D47,0x0000,0x0000,
-0x1D47,0x0000,0x0000, 0x1D48,0x0000,0x0000, 0x1D48,0x0000,0x0000,
-0x1D49,0x0000,0x0000, 0x1D49,0x0000,0x0000, 0x1D4A,0x0000,0x0000,
-0x1D4A,0x0000,0x0000, 0x1D4B,0x0000,0x0000, 0x1D4C,0x0000,0x0000,
-0x1D4D,0x0000,0x0000, 0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000,
-0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000, 0x1D4E,0x0000,0x0000,
-0x1D4F,0x0000,0x0000, 0x1D4F,0x0000,0x0000, 0x1D4F,0x0000,0x0000,
-0x1D50,0x0000,0x0000, 0x1D50,0x0000,0x0000, 0x1D50,0x0000,0x0000,
-0x1D4C,0x0000,0x0000, 0x1D51,0x0000,0x0000, 0x1D52,0x0000,0x0000,
-0x1D52,0x0000,0x0000, 0x1D52,0x0000,0x0000, 0x1D53,0x0000,0x0000,
-0x1D53,0x0000,0x0000, 0x1D54,0x0000,0x0000, 0x1D54,0x0000,0x0000,
-0x1D55,0x0000,0x0000, 0x1D56,0x0000,0x0000, 0x1D5A,0x0000,0x0000,
-0x1D5E,0x0000,0x0000, 0x1D5F,0x0000,0x0000, 0x1D5B,0x0000,0x0000,
-0x1D5D,0x0000,0x0000, 0x1D60,0x0000,0x0000, 0x1D61,0x0000,0x0000,
-0x1D61,0x0000,0x0000, 0x1D61,0x0000,0x0000, 0x1D45,0x0000,0x0000,
-0x1D4E,0x0000,0x0000, 0x024E,0x0000,0x0000, 0x024F,0x0000,0x0000,
-0x0250,0x0000,0x0000, 0x1D4A,0x1D53,0x0000, 0x1D52,0x1D52,0x0000,
-0x1D3E,0x1D3E,0x0000, 0xFBC0,0x96F1,0x0000, 0xFBC0,0x96F2,0x0000,
-0xFBC0,0x96F3,0x0000, 0xFBC0,0x96F4,0x0000, 0xFBC0,0x96F5,0x0000,
-0xFBC0,0x96F6,0x0000, 0xFBC0,0x96F7,0x0000, 0xFBC0,0x96F8,0x0000,
-0xFBC0,0x96F9,0x0000, 0xFBC0,0x96FA,0x0000, 0xFBC0,0x96FB,0x0000,
-0xFBC0,0x96FC,0x0000, 0xFBC0,0x96FD,0x0000, 0xFBC0,0x96FE,0x0000,
-0xFBC0,0x96FF,0x0000 };
-
-uint16 page017data[]= { /* 1700 (3 weights per char) */
-0x18E2,0x0000,0x0000, 0x18E3,0x0000,0x0000, 0x18E4,0x0000,0x0000,
-0x18E5,0x0000,0x0000, 0x18E6,0x0000,0x0000, 0x18E7,0x0000,0x0000,
-0x18E8,0x0000,0x0000, 0x18E9,0x0000,0x0000, 0x18EA,0x0000,0x0000,
-0x18EB,0x0000,0x0000, 0x18EC,0x0000,0x0000, 0x18ED,0x0000,0x0000,
-0x18EE,0x0000,0x0000, 0xFBC0,0x970D,0x0000, 0x18EF,0x0000,0x0000,
-0x18F0,0x0000,0x0000, 0x18F1,0x0000,0x0000, 0x18F2,0x0000,0x0000,
-0x18F3,0x0000,0x0000, 0x18F4,0x0000,0x0000, 0x18F5,0x0000,0x0000,
-0xFBC0,0x9715,0x0000, 0xFBC0,0x9716,0x0000, 0xFBC0,0x9717,0x0000,
-0xFBC0,0x9718,0x0000, 0xFBC0,0x9719,0x0000, 0xFBC0,0x971A,0x0000,
-0xFBC0,0x971B,0x0000, 0xFBC0,0x971C,0x0000, 0xFBC0,0x971D,0x0000,
-0xFBC0,0x971E,0x0000, 0xFBC0,0x971F,0x0000, 0x18F6,0x0000,0x0000,
-0x18F7,0x0000,0x0000, 0x18F8,0x0000,0x0000, 0x18F9,0x0000,0x0000,
-0x18FA,0x0000,0x0000, 0x18FB,0x0000,0x0000, 0x18FC,0x0000,0x0000,
-0x18FD,0x0000,0x0000, 0x18FE,0x0000,0x0000, 0x18FF,0x0000,0x0000,
-0x1900,0x0000,0x0000, 0x1901,0x0000,0x0000, 0x1902,0x0000,0x0000,
-0x1903,0x0000,0x0000, 0x1904,0x0000,0x0000, 0x1905,0x0000,0x0000,
-0x1906,0x0000,0x0000, 0x1907,0x0000,0x0000, 0x1908,0x0000,0x0000,
-0x1909,0x0000,0x0000, 0x190A,0x0000,0x0000, 0x026A,0x0000,0x0000,
-0x026B,0x0000,0x0000, 0xFBC0,0x9737,0x0000, 0xFBC0,0x9738,0x0000,
-0xFBC0,0x9739,0x0000, 0xFBC0,0x973A,0x0000, 0xFBC0,0x973B,0x0000,
-0xFBC0,0x973C,0x0000, 0xFBC0,0x973D,0x0000, 0xFBC0,0x973E,0x0000,
-0xFBC0,0x973F,0x0000, 0x190B,0x0000,0x0000, 0x190C,0x0000,0x0000,
-0x190D,0x0000,0x0000, 0x190E,0x0000,0x0000, 0x190F,0x0000,0x0000,
-0x1910,0x0000,0x0000, 0x1911,0x0000,0x0000, 0x1912,0x0000,0x0000,
-0x1913,0x0000,0x0000, 0x1914,0x0000,0x0000, 0x1915,0x0000,0x0000,
-0x1916,0x0000,0x0000, 0x1917,0x0000,0x0000, 0x1918,0x0000,0x0000,
-0x1919,0x0000,0x0000, 0x191A,0x0000,0x0000, 0x191B,0x0000,0x0000,
-0x191C,0x0000,0x0000, 0x191D,0x0000,0x0000, 0x191E,0x0000,0x0000,
-0xFBC0,0x9754,0x0000, 0xFBC0,0x9755,0x0000, 0xFBC0,0x9756,0x0000,
-0xFBC0,0x9757,0x0000, 0xFBC0,0x9758,0x0000, 0xFBC0,0x9759,0x0000,
-0xFBC0,0x975A,0x0000, 0xFBC0,0x975B,0x0000, 0xFBC0,0x975C,0x0000,
-0xFBC0,0x975D,0x0000, 0xFBC0,0x975E,0x0000, 0xFBC0,0x975F,0x0000,
-0x191F,0x0000,0x0000, 0x1920,0x0000,0x0000, 0x1921,0x0000,0x0000,
-0x1922,0x0000,0x0000, 0x1923,0x0000,0x0000, 0x1924,0x0000,0x0000,
-0x1925,0x0000,0x0000, 0x1926,0x0000,0x0000, 0x1927,0x0000,0x0000,
-0x1928,0x0000,0x0000, 0x1929,0x0000,0x0000, 0x192A,0x0000,0x0000,
-0x192B,0x0000,0x0000, 0xFBC0,0x976D,0x0000, 0x192C,0x0000,0x0000,
-0x192D,0x0000,0x0000, 0x192E,0x0000,0x0000, 0xFBC0,0x9771,0x0000,
-0x192F,0x0000,0x0000, 0x1930,0x0000,0x0000, 0xFBC0,0x9774,0x0000,
-0xFBC0,0x9775,0x0000, 0xFBC0,0x9776,0x0000, 0xFBC0,0x9777,0x0000,
-0xFBC0,0x9778,0x0000, 0xFBC0,0x9779,0x0000, 0xFBC0,0x977A,0x0000,
-0xFBC0,0x977B,0x0000, 0xFBC0,0x977C,0x0000, 0xFBC0,0x977D,0x0000,
-0xFBC0,0x977E,0x0000, 0xFBC0,0x977F,0x0000, 0x196C,0x0000,0x0000,
-0x196D,0x0000,0x0000, 0x196E,0x0000,0x0000, 0x196F,0x0000,0x0000,
-0x1970,0x0000,0x0000, 0x1971,0x0000,0x0000, 0x1972,0x0000,0x0000,
-0x1973,0x0000,0x0000, 0x1974,0x0000,0x0000, 0x1975,0x0000,0x0000,
-0x1976,0x0000,0x0000, 0x1977,0x0000,0x0000, 0x1978,0x0000,0x0000,
-0x1979,0x0000,0x0000, 0x197A,0x0000,0x0000, 0x197B,0x0000,0x0000,
-0x197C,0x0000,0x0000, 0x197D,0x0000,0x0000, 0x197E,0x0000,0x0000,
-0x197F,0x0000,0x0000, 0x1980,0x0000,0x0000, 0x1981,0x0000,0x0000,
-0x1982,0x0000,0x0000, 0x1983,0x0000,0x0000, 0x1984,0x0000,0x0000,
-0x1985,0x0000,0x0000, 0x1986,0x0000,0x0000, 0x1987,0x0000,0x0000,
-0x1988,0x0000,0x0000, 0x1989,0x0000,0x0000, 0x198A,0x0000,0x0000,
-0x198B,0x0000,0x0000, 0x198C,0x0000,0x0000, 0x198D,0x0000,0x0000,
-0x198E,0x0000,0x0000, 0x1990,0x0000,0x0000, 0x1991,0x0000,0x0000,
-0x1992,0x0000,0x0000, 0x1993,0x0000,0x0000, 0x1994,0x0000,0x0000,
-0x1995,0x0000,0x0000, 0x1996,0x0000,0x0000, 0x1997,0x0000,0x0000,
-0x1998,0x0000,0x0000, 0x1999,0x0000,0x0000, 0x199A,0x0000,0x0000,
-0x199B,0x0000,0x0000, 0x199C,0x0000,0x0000, 0x199D,0x0000,0x0000,
-0x199E,0x0000,0x0000, 0x199F,0x0000,0x0000, 0x19A0,0x0000,0x0000,
-0x19A1,0x0000,0x0000, 0x19A2,0x0000,0x0000, 0x19A3,0x0000,0x0000,
-0x19A4,0x0000,0x0000, 0x19A5,0x0000,0x0000, 0x19A6,0x0000,0x0000,
-0x19A7,0x0000,0x0000, 0x19A8,0x0000,0x0000, 0x19A9,0x0000,0x0000,
-0x19AA,0x0000,0x0000, 0x19AB,0x0000,0x0000, 0x19AC,0x0000,0x0000,
-0x19AD,0x0000,0x0000, 0x19AE,0x0000,0x0000, 0x19AF,0x0000,0x0000,
-0x19B0,0x0000,0x0000, 0x19B1,0x0000,0x0000, 0x19B2,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x19B3,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,
-0x026F,0x0000,0x0000, 0x024D,0x0000,0x0000, 0x0312,0x0000,0x0000,
-0x0313,0x0000,0x0000, 0x0314,0x0000,0x0000, 0x0315,0x0000,0x0000,
-0x0E17,0x0000,0x0000, 0x198F,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x97DE,0x0000, 0xFBC0,0x97DF,0x0000, 0x0E29,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0xFBC0,0x97EA,0x0000, 0xFBC0,0x97EB,0x0000, 0xFBC0,0x97EC,0x0000,
-0xFBC0,0x97ED,0x0000, 0xFBC0,0x97EE,0x0000, 0xFBC0,0x97EF,0x0000,
-0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0xFBC0,0x97FA,0x0000, 0xFBC0,0x97FB,0x0000,
-0xFBC0,0x97FC,0x0000, 0xFBC0,0x97FD,0x0000, 0xFBC0,0x97FE,0x0000,
-0xFBC0,0x97FF,0x0000 };
-
-uint16 page018data[]= { /* 1800 (3 weights per char) */
-0x02F8,0x0000,0x0000, 0x025E,0x0000,0x0000, 0x0235,0x0000,0x0000,
-0x0263,0x0000,0x0000, 0x024A,0x0000,0x0000, 0x024B,0x0000,0x0000,
-0x0223,0x0000,0x0000, 0x0224,0x0000,0x0000, 0x0236,0x0000,0x0000,
-0x0264,0x0000,0x0000, 0x02F9,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x980F,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0xFBC0,0x981A,0x0000,
-0xFBC0,0x981B,0x0000, 0xFBC0,0x981C,0x0000, 0xFBC0,0x981D,0x0000,
-0xFBC0,0x981E,0x0000, 0xFBC0,0x981F,0x0000, 0x19DF,0x0000,0x0000,
-0x19E1,0x0000,0x0000, 0x19E4,0x0000,0x0000, 0x19EA,0x0000,0x0000,
-0x19EC,0x0000,0x0000, 0x19EF,0x0000,0x0000, 0x19F1,0x0000,0x0000,
-0x19F4,0x0000,0x0000, 0x19F5,0x0000,0x0000, 0x19F6,0x0000,0x0000,
-0x19FB,0x0000,0x0000, 0x19FD,0x0000,0x0000, 0x1A00,0x0000,0x0000,
-0x1A02,0x0000,0x0000, 0x1A07,0x0000,0x0000, 0x1A09,0x0000,0x0000,
-0x1A0A,0x0000,0x0000, 0x1A0B,0x0000,0x0000, 0x1A12,0x0000,0x0000,
-0x1A15,0x0000,0x0000, 0x1A18,0x0000,0x0000, 0x1A1D,0x0000,0x0000,
-0x1A21,0x0000,0x0000, 0x1A24,0x0000,0x0000, 0x1A26,0x0000,0x0000,
-0x1A28,0x0000,0x0000, 0x1A2B,0x0000,0x0000, 0x1A30,0x0000,0x0000,
-0x1A31,0x0000,0x0000, 0x1A34,0x0000,0x0000, 0x1A38,0x0000,0x0000,
-0x1A3B,0x0000,0x0000, 0x1A3C,0x0000,0x0000, 0x1A3D,0x0000,0x0000,
-0x1A3E,0x0000,0x0000, 0x19DE,0x0000,0x0000, 0x19E2,0x0000,0x0000,
-0x19E5,0x0000,0x0000, 0x19EB,0x0000,0x0000, 0x19ED,0x0000,0x0000,
-0x19F0,0x0000,0x0000, 0x19F2,0x0000,0x0000, 0x19F7,0x0000,0x0000,
-0x19FC,0x0000,0x0000, 0x19FE,0x0000,0x0000, 0x1A01,0x0000,0x0000,
-0x1A03,0x0000,0x0000, 0x1A08,0x0000,0x0000, 0x1A13,0x0000,0x0000,
-0x1A16,0x0000,0x0000, 0x1A19,0x0000,0x0000, 0x1A1E,0x0000,0x0000,
-0x1A32,0x0000,0x0000, 0x1A22,0x0000,0x0000, 0x1A27,0x0000,0x0000,
-0x1A2C,0x0000,0x0000, 0x1A36,0x0000,0x0000, 0x1A39,0x0000,0x0000,
-0x1A3F,0x0000,0x0000, 0x1A40,0x0000,0x0000, 0x1A1B,0x0000,0x0000,
-0x19E3,0x0000,0x0000, 0x19E6,0x0000,0x0000, 0x19E9,0x0000,0x0000,
-0x19F3,0x0000,0x0000, 0x19EE,0x0000,0x0000, 0x19F8,0x0000,0x0000,
-0x1A2D,0x0000,0x0000, 0x1A04,0x0000,0x0000, 0x1A06,0x0000,0x0000,
-0x19FF,0x0000,0x0000, 0x1A0C,0x0000,0x0000, 0x1A14,0x0000,0x0000,
-0x1A17,0x0000,0x0000, 0x1A1F,0x0000,0x0000, 0x1A29,0x0000,0x0000,
-0x1A37,0x0000,0x0000, 0x1A3A,0x0000,0x0000, 0x1A33,0x0000,0x0000,
-0x1A35,0x0000,0x0000, 0x1A41,0x0000,0x0000, 0x1A1A,0x0000,0x0000,
-0x1A23,0x0000,0x0000, 0x19E7,0x0000,0x0000, 0x1A2E,0x0000,0x0000,
-0x1A25,0x0000,0x0000, 0x1A2A,0x0000,0x0000, 0x1A20,0x0000,0x0000,
-0xFBC0,0x9878,0x0000, 0xFBC0,0x9879,0x0000, 0xFBC0,0x987A,0x0000,
-0xFBC0,0x987B,0x0000, 0xFBC0,0x987C,0x0000, 0xFBC0,0x987D,0x0000,
-0xFBC0,0x987E,0x0000, 0xFBC0,0x987F,0x0000, 0x19D7,0x0000,0x0000,
-0x19D8,0x0000,0x0000, 0x19D9,0x0000,0x0000, 0x19DA,0x0000,0x0000,
-0x19DB,0x0000,0x0000, 0x19DC,0x0000,0x0000, 0x19DD,0x0000,0x0000,
-0x19E0,0x0000,0x0000, 0x19E8,0x0000,0x0000, 0x1A2F,0x0000,0x0000,
-0x19F9,0x0000,0x0000, 0x1A1C,0x0000,0x0000, 0x1A42,0x0000,0x0000,
-0x1A44,0x0000,0x0000, 0x1A45,0x0000,0x0000, 0x1A47,0x0000,0x0000,
-0x1A48,0x0000,0x0000, 0x1A4B,0x0000,0x0000, 0x1A4D,0x0000,0x0000,
-0x1A4E,0x0000,0x0000, 0x1A50,0x0000,0x0000, 0x1A52,0x0000,0x0000,
-0x1A54,0x0000,0x0000, 0x1A55,0x0000,0x0000, 0x1A49,0x0000,0x0000,
-0x1A53,0x0000,0x0000, 0x1A05,0x0000,0x0000, 0x19FA,0x0000,0x0000,
-0x1A0D,0x0000,0x0000, 0x1A0E,0x0000,0x0000, 0x1A43,0x0000,0x0000,
-0x1A46,0x0000,0x0000, 0x1A4A,0x0000,0x0000, 0x1A4C,0x0000,0x0000,
-0x1A0F,0x0000,0x0000, 0x1A51,0x0000,0x0000, 0x1A10,0x0000,0x0000,
-0x1A11,0x0000,0x0000, 0x1A56,0x0000,0x0000, 0x1A57,0x0000,0x0000,
-0x1A4F,0x0000,0x0000, 0x1A58,0x0000,0x0000, 0xFBC0,0x98AA,0x0000,
-0xFBC0,0x98AB,0x0000, 0xFBC0,0x98AC,0x0000, 0xFBC0,0x98AD,0x0000,
-0xFBC0,0x98AE,0x0000, 0xFBC0,0x98AF,0x0000, 0xFBC0,0x98B0,0x0000,
-0xFBC0,0x98B1,0x0000, 0xFBC0,0x98B2,0x0000, 0xFBC0,0x98B3,0x0000,
-0xFBC0,0x98B4,0x0000, 0xFBC0,0x98B5,0x0000, 0xFBC0,0x98B6,0x0000,
-0xFBC0,0x98B7,0x0000, 0xFBC0,0x98B8,0x0000, 0xFBC0,0x98B9,0x0000,
-0xFBC0,0x98BA,0x0000, 0xFBC0,0x98BB,0x0000, 0xFBC0,0x98BC,0x0000,
-0xFBC0,0x98BD,0x0000, 0xFBC0,0x98BE,0x0000, 0xFBC0,0x98BF,0x0000,
-0xFBC0,0x98C0,0x0000, 0xFBC0,0x98C1,0x0000, 0xFBC0,0x98C2,0x0000,
-0xFBC0,0x98C3,0x0000, 0xFBC0,0x98C4,0x0000, 0xFBC0,0x98C5,0x0000,
-0xFBC0,0x98C6,0x0000, 0xFBC0,0x98C7,0x0000, 0xFBC0,0x98C8,0x0000,
-0xFBC0,0x98C9,0x0000, 0xFBC0,0x98CA,0x0000, 0xFBC0,0x98CB,0x0000,
-0xFBC0,0x98CC,0x0000, 0xFBC0,0x98CD,0x0000, 0xFBC0,0x98CE,0x0000,
-0xFBC0,0x98CF,0x0000, 0xFBC0,0x98D0,0x0000, 0xFBC0,0x98D1,0x0000,
-0xFBC0,0x98D2,0x0000, 0xFBC0,0x98D3,0x0000, 0xFBC0,0x98D4,0x0000,
-0xFBC0,0x98D5,0x0000, 0xFBC0,0x98D6,0x0000, 0xFBC0,0x98D7,0x0000,
-0xFBC0,0x98D8,0x0000, 0xFBC0,0x98D9,0x0000, 0xFBC0,0x98DA,0x0000,
-0xFBC0,0x98DB,0x0000, 0xFBC0,0x98DC,0x0000, 0xFBC0,0x98DD,0x0000,
-0xFBC0,0x98DE,0x0000, 0xFBC0,0x98DF,0x0000, 0xFBC0,0x98E0,0x0000,
-0xFBC0,0x98E1,0x0000, 0xFBC0,0x98E2,0x0000, 0xFBC0,0x98E3,0x0000,
-0xFBC0,0x98E4,0x0000, 0xFBC0,0x98E5,0x0000, 0xFBC0,0x98E6,0x0000,
-0xFBC0,0x98E7,0x0000, 0xFBC0,0x98E8,0x0000, 0xFBC0,0x98E9,0x0000,
-0xFBC0,0x98EA,0x0000, 0xFBC0,0x98EB,0x0000, 0xFBC0,0x98EC,0x0000,
-0xFBC0,0x98ED,0x0000, 0xFBC0,0x98EE,0x0000, 0xFBC0,0x98EF,0x0000,
-0xFBC0,0x98F0,0x0000, 0xFBC0,0x98F1,0x0000, 0xFBC0,0x98F2,0x0000,
-0xFBC0,0x98F3,0x0000, 0xFBC0,0x98F4,0x0000, 0xFBC0,0x98F5,0x0000,
-0xFBC0,0x98F6,0x0000, 0xFBC0,0x98F7,0x0000, 0xFBC0,0x98F8,0x0000,
-0xFBC0,0x98F9,0x0000, 0xFBC0,0x98FA,0x0000, 0xFBC0,0x98FB,0x0000,
-0xFBC0,0x98FC,0x0000, 0xFBC0,0x98FD,0x0000, 0xFBC0,0x98FE,0x0000,
-0xFBC0,0x98FF,0x0000 };
-
-uint16 page019data[]= { /* 1900 (3 weights per char) */
-0x18B0,0x0000,0x0000, 0x18B1,0x0000,0x0000, 0x18B2,0x0000,0x0000,
-0x18B3,0x0000,0x0000, 0x18B4,0x0000,0x0000, 0x18B5,0x0000,0x0000,
-0x18B6,0x0000,0x0000, 0x18B7,0x0000,0x0000, 0x18B8,0x0000,0x0000,
-0x18B9,0x0000,0x0000, 0x18BA,0x0000,0x0000, 0x18BB,0x0000,0x0000,
-0x18BC,0x0000,0x0000, 0x18BD,0x0000,0x0000, 0x18BE,0x0000,0x0000,
-0x18BF,0x0000,0x0000, 0x18C0,0x0000,0x0000, 0x18C1,0x0000,0x0000,
-0x18C2,0x0000,0x0000, 0x18C3,0x0000,0x0000, 0x18C4,0x0000,0x0000,
-0x18C5,0x0000,0x0000, 0x18C6,0x0000,0x0000, 0x18C7,0x0000,0x0000,
-0x18C8,0x0000,0x0000, 0x18C9,0x0000,0x0000, 0x18CA,0x0000,0x0000,
-0x18CB,0x0000,0x0000, 0x18CC,0x0000,0x0000, 0xFBC0,0x991D,0x0000,
-0xFBC0,0x991E,0x0000, 0xFBC0,0x991F,0x0000, 0x18CD,0x0000,0x0000,
-0x18CE,0x0000,0x0000, 0x18CF,0x0000,0x0000, 0x18D0,0x0000,0x0000,
-0x18D1,0x0000,0x0000, 0x18D2,0x0000,0x0000, 0x18D3,0x0000,0x0000,
-0x18D4,0x0000,0x0000, 0x18D5,0x0000,0x0000, 0x18D6,0x0000,0x0000,
-0x18D7,0x0000,0x0000, 0x18D8,0x0000,0x0000, 0xFBC0,0x992C,0x0000,
-0xFBC0,0x992D,0x0000, 0xFBC0,0x992E,0x0000, 0xFBC0,0x992F,0x0000,
-0x18D9,0x0000,0x0000, 0x18DA,0x0000,0x0000, 0x18DB,0x0000,0x0000,
-0x18DC,0x0000,0x0000, 0x18DD,0x0000,0x0000, 0x18DE,0x0000,0x0000,
-0x18DF,0x0000,0x0000, 0x18E0,0x0000,0x0000, 0x18E1,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC0,0x993C,0x0000, 0xFBC0,0x993D,0x0000, 0xFBC0,0x993E,0x0000,
-0xFBC0,0x993F,0x0000, 0x030D,0x0000,0x0000, 0xFBC0,0x9941,0x0000,
-0xFBC0,0x9942,0x0000, 0xFBC0,0x9943,0x0000, 0x0254,0x0000,0x0000,
-0x025B,0x0000,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x19B4,0x0000,0x0000,
-0x19B5,0x0000,0x0000, 0x19B6,0x0000,0x0000, 0x19B7,0x0000,0x0000,
-0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, 0x19BA,0x0000,0x0000,
-0x19BB,0x0000,0x0000, 0x19BC,0x0000,0x0000, 0x19BD,0x0000,0x0000,
-0x19BE,0x0000,0x0000, 0x19BF,0x0000,0x0000, 0x19C0,0x0000,0x0000,
-0x19C1,0x0000,0x0000, 0x19C2,0x0000,0x0000, 0x19C3,0x0000,0x0000,
-0x19C4,0x0000,0x0000, 0x19C5,0x0000,0x0000, 0x19C6,0x0000,0x0000,
-0x19C7,0x0000,0x0000, 0x19C8,0x0000,0x0000, 0x19C9,0x0000,0x0000,
-0x19CA,0x0000,0x0000, 0x19CB,0x0000,0x0000, 0x19CC,0x0000,0x0000,
-0x19CD,0x0000,0x0000, 0x19CE,0x0000,0x0000, 0x19CF,0x0000,0x0000,
-0x19D0,0x0000,0x0000, 0x19D1,0x0000,0x0000, 0xFBC0,0x996E,0x0000,
-0xFBC0,0x996F,0x0000, 0x19D2,0x0000,0x0000, 0x19D3,0x0000,0x0000,
-0x19D4,0x0000,0x0000, 0x19D5,0x0000,0x0000, 0x19D6,0x0000,0x0000,
-0xFBC0,0x9975,0x0000, 0xFBC0,0x9976,0x0000, 0xFBC0,0x9977,0x0000,
-0xFBC0,0x9978,0x0000, 0xFBC0,0x9979,0x0000, 0xFBC0,0x997A,0x0000,
-0xFBC0,0x997B,0x0000, 0xFBC0,0x997C,0x0000, 0xFBC0,0x997D,0x0000,
-0xFBC0,0x997E,0x0000, 0xFBC0,0x997F,0x0000, 0xFBC0,0x9980,0x0000,
-0xFBC0,0x9981,0x0000, 0xFBC0,0x9982,0x0000, 0xFBC0,0x9983,0x0000,
-0xFBC0,0x9984,0x0000, 0xFBC0,0x9985,0x0000, 0xFBC0,0x9986,0x0000,
-0xFBC0,0x9987,0x0000, 0xFBC0,0x9988,0x0000, 0xFBC0,0x9989,0x0000,
-0xFBC0,0x998A,0x0000, 0xFBC0,0x998B,0x0000, 0xFBC0,0x998C,0x0000,
-0xFBC0,0x998D,0x0000, 0xFBC0,0x998E,0x0000, 0xFBC0,0x998F,0x0000,
-0xFBC0,0x9990,0x0000, 0xFBC0,0x9991,0x0000, 0xFBC0,0x9992,0x0000,
-0xFBC0,0x9993,0x0000, 0xFBC0,0x9994,0x0000, 0xFBC0,0x9995,0x0000,
-0xFBC0,0x9996,0x0000, 0xFBC0,0x9997,0x0000, 0xFBC0,0x9998,0x0000,
-0xFBC0,0x9999,0x0000, 0xFBC0,0x999A,0x0000, 0xFBC0,0x999B,0x0000,
-0xFBC0,0x999C,0x0000, 0xFBC0,0x999D,0x0000, 0xFBC0,0x999E,0x0000,
-0xFBC0,0x999F,0x0000, 0xFBC0,0x99A0,0x0000, 0xFBC0,0x99A1,0x0000,
-0xFBC0,0x99A2,0x0000, 0xFBC0,0x99A3,0x0000, 0xFBC0,0x99A4,0x0000,
-0xFBC0,0x99A5,0x0000, 0xFBC0,0x99A6,0x0000, 0xFBC0,0x99A7,0x0000,
-0xFBC0,0x99A8,0x0000, 0xFBC0,0x99A9,0x0000, 0xFBC0,0x99AA,0x0000,
-0xFBC0,0x99AB,0x0000, 0xFBC0,0x99AC,0x0000, 0xFBC0,0x99AD,0x0000,
-0xFBC0,0x99AE,0x0000, 0xFBC0,0x99AF,0x0000, 0xFBC0,0x99B0,0x0000,
-0xFBC0,0x99B1,0x0000, 0xFBC0,0x99B2,0x0000, 0xFBC0,0x99B3,0x0000,
-0xFBC0,0x99B4,0x0000, 0xFBC0,0x99B5,0x0000, 0xFBC0,0x99B6,0x0000,
-0xFBC0,0x99B7,0x0000, 0xFBC0,0x99B8,0x0000, 0xFBC0,0x99B9,0x0000,
-0xFBC0,0x99BA,0x0000, 0xFBC0,0x99BB,0x0000, 0xFBC0,0x99BC,0x0000,
-0xFBC0,0x99BD,0x0000, 0xFBC0,0x99BE,0x0000, 0xFBC0,0x99BF,0x0000,
-0xFBC0,0x99C0,0x0000, 0xFBC0,0x99C1,0x0000, 0xFBC0,0x99C2,0x0000,
-0xFBC0,0x99C3,0x0000, 0xFBC0,0x99C4,0x0000, 0xFBC0,0x99C5,0x0000,
-0xFBC0,0x99C6,0x0000, 0xFBC0,0x99C7,0x0000, 0xFBC0,0x99C8,0x0000,
-0xFBC0,0x99C9,0x0000, 0xFBC0,0x99CA,0x0000, 0xFBC0,0x99CB,0x0000,
-0xFBC0,0x99CC,0x0000, 0xFBC0,0x99CD,0x0000, 0xFBC0,0x99CE,0x0000,
-0xFBC0,0x99CF,0x0000, 0xFBC0,0x99D0,0x0000, 0xFBC0,0x99D1,0x0000,
-0xFBC0,0x99D2,0x0000, 0xFBC0,0x99D3,0x0000, 0xFBC0,0x99D4,0x0000,
-0xFBC0,0x99D5,0x0000, 0xFBC0,0x99D6,0x0000, 0xFBC0,0x99D7,0x0000,
-0xFBC0,0x99D8,0x0000, 0xFBC0,0x99D9,0x0000, 0xFBC0,0x99DA,0x0000,
-0xFBC0,0x99DB,0x0000, 0xFBC0,0x99DC,0x0000, 0xFBC0,0x99DD,0x0000,
-0xFBC0,0x99DE,0x0000, 0xFBC0,0x99DF,0x0000, 0x037B,0x0000,0x0000,
-0x037C,0x0000,0x0000, 0x037D,0x0000,0x0000, 0x037E,0x0000,0x0000,
-0x037F,0x0000,0x0000, 0x0380,0x0000,0x0000, 0x0381,0x0000,0x0000,
-0x0382,0x0000,0x0000, 0x0383,0x0000,0x0000, 0x0384,0x0000,0x0000,
-0x0385,0x0000,0x0000, 0x0386,0x0000,0x0000, 0x0387,0x0000,0x0000,
-0x0388,0x0000,0x0000, 0x0389,0x0000,0x0000, 0x038A,0x0000,0x0000,
-0x038B,0x0000,0x0000, 0x038C,0x0000,0x0000, 0x038D,0x0000,0x0000,
-0x038E,0x0000,0x0000, 0x038F,0x0000,0x0000, 0x0390,0x0000,0x0000,
-0x0391,0x0000,0x0000, 0x0392,0x0000,0x0000, 0x0393,0x0000,0x0000,
-0x0394,0x0000,0x0000, 0x0395,0x0000,0x0000, 0x0396,0x0000,0x0000,
-0x0397,0x0000,0x0000, 0x0398,0x0000,0x0000, 0x0399,0x0000,0x0000,
-0x039A,0x0000,0x0000 };
-
-uint16 page01Ddata[]= { /* 1D00 (3 weights per char) */
-0x0E37,0x0000,0x0000, 0x0E3C,0x0000,0x0000, 0x0E3D,0x0000,0x0000,
-0x0E57,0x0000,0x0000, 0x0E64,0x0000,0x0000, 0x0E71,0x0000,0x0000,
-0x0E8A,0x0000,0x0000, 0x0E8F,0x0000,0x0000, 0x0EA8,0x0000,0x0000,
-0x0F07,0x0000,0x0000, 0x0F14,0x0000,0x0000, 0x0F25,0x0000,0x0000,
-0x0F3A,0x0000,0x0000, 0x0F5F,0x0000,0x0000, 0x0F6D,0x0000,0x0000,
-0x0F86,0x0000,0x0000, 0x0F96,0x0000,0x0000, 0x0F87,0x0000,0x0000,
-0x0F97,0x0000,0x0000, 0x0F91,0x0000,0x0000, 0x0F8C,0x0000,0x0000,
-0x0FA6,0x0000,0x0000, 0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000,
-0x0FAB,0x0000,0x0000, 0x0FC8,0x0000,0x0000, 0x0FCD,0x0000,0x0000,
-0x1006,0x0000,0x0000, 0x1023,0x0000,0x0000, 0x1024,0x0000,0x0000,
-0x1025,0x0000,0x0000, 0x103B,0x0000,0x0000, 0x1048,0x0000,0x0000,
-0x1055,0x0000,0x0000, 0x106E,0x0000,0x0000, 0x1083,0x0000,0x0000,
-0x10BA,0x0000,0x0000, 0x10BB,0x0000,0x0000, 0x10EB,0x0000,0x0000,
-0x10F7,0x0000,0x0000, 0x10FD,0x0000,0x0000, 0x1101,0x0000,0x0000,
-0x1108,0x0000,0x0000, 0x11B4,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E38,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E56,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E90,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0F10,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F6C,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA7,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E3E,0x0000,0x0000,
-0x0E42,0x0000,0x0000, 0x0E3D,0x0000,0x0000, 0x0E4A,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E94,0x0000,0x0000,
-0x0E98,0x0000,0x0000, 0x0EA8,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0F07,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F5B,0x0000,0x0000,
-0x0F7E,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F92,0x0000,0x0000,
-0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, 0x0FA7,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1024,0x0000,0x0000,
-0x1037,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x10BB,0x0000,0x0000,
-0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x10EC,0x0000,0x0000,
-0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000,
-0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x1100,0x0000,0x0000,
-0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x1026,0x0000,0x0000,
-0xFBC0,0x9D6C,0x0000, 0xFBC0,0x9D6D,0x0000, 0xFBC0,0x9D6E,0x0000,
-0xFBC0,0x9D6F,0x0000, 0xFBC0,0x9D70,0x0000, 0xFBC0,0x9D71,0x0000,
-0xFBC0,0x9D72,0x0000, 0xFBC0,0x9D73,0x0000, 0xFBC0,0x9D74,0x0000,
-0xFBC0,0x9D75,0x0000, 0xFBC0,0x9D76,0x0000, 0xFBC0,0x9D77,0x0000,
-0xFBC0,0x9D78,0x0000, 0xFBC0,0x9D79,0x0000, 0xFBC0,0x9D7A,0x0000,
-0xFBC0,0x9D7B,0x0000, 0xFBC0,0x9D7C,0x0000, 0xFBC0,0x9D7D,0x0000,
-0xFBC0,0x9D7E,0x0000, 0xFBC0,0x9D7F,0x0000, 0xFBC0,0x9D80,0x0000,
-0xFBC0,0x9D81,0x0000, 0xFBC0,0x9D82,0x0000, 0xFBC0,0x9D83,0x0000,
-0xFBC0,0x9D84,0x0000, 0xFBC0,0x9D85,0x0000, 0xFBC0,0x9D86,0x0000,
-0xFBC0,0x9D87,0x0000, 0xFBC0,0x9D88,0x0000, 0xFBC0,0x9D89,0x0000,
-0xFBC0,0x9D8A,0x0000, 0xFBC0,0x9D8B,0x0000, 0xFBC0,0x9D8C,0x0000,
-0xFBC0,0x9D8D,0x0000, 0xFBC0,0x9D8E,0x0000, 0xFBC0,0x9D8F,0x0000,
-0xFBC0,0x9D90,0x0000, 0xFBC0,0x9D91,0x0000, 0xFBC0,0x9D92,0x0000,
-0xFBC0,0x9D93,0x0000, 0xFBC0,0x9D94,0x0000, 0xFBC0,0x9D95,0x0000,
-0xFBC0,0x9D96,0x0000, 0xFBC0,0x9D97,0x0000, 0xFBC0,0x9D98,0x0000,
-0xFBC0,0x9D99,0x0000, 0xFBC0,0x9D9A,0x0000, 0xFBC0,0x9D9B,0x0000,
-0xFBC0,0x9D9C,0x0000, 0xFBC0,0x9D9D,0x0000, 0xFBC0,0x9D9E,0x0000,
-0xFBC0,0x9D9F,0x0000, 0xFBC0,0x9DA0,0x0000, 0xFBC0,0x9DA1,0x0000,
-0xFBC0,0x9DA2,0x0000, 0xFBC0,0x9DA3,0x0000, 0xFBC0,0x9DA4,0x0000,
-0xFBC0,0x9DA5,0x0000, 0xFBC0,0x9DA6,0x0000, 0xFBC0,0x9DA7,0x0000,
-0xFBC0,0x9DA8,0x0000, 0xFBC0,0x9DA9,0x0000, 0xFBC0,0x9DAA,0x0000,
-0xFBC0,0x9DAB,0x0000, 0xFBC0,0x9DAC,0x0000, 0xFBC0,0x9DAD,0x0000,
-0xFBC0,0x9DAE,0x0000, 0xFBC0,0x9DAF,0x0000, 0xFBC0,0x9DB0,0x0000,
-0xFBC0,0x9DB1,0x0000, 0xFBC0,0x9DB2,0x0000, 0xFBC0,0x9DB3,0x0000,
-0xFBC0,0x9DB4,0x0000, 0xFBC0,0x9DB5,0x0000, 0xFBC0,0x9DB6,0x0000,
-0xFBC0,0x9DB7,0x0000, 0xFBC0,0x9DB8,0x0000, 0xFBC0,0x9DB9,0x0000,
-0xFBC0,0x9DBA,0x0000, 0xFBC0,0x9DBB,0x0000, 0xFBC0,0x9DBC,0x0000,
-0xFBC0,0x9DBD,0x0000, 0xFBC0,0x9DBE,0x0000, 0xFBC0,0x9DBF,0x0000,
-0xFBC0,0x9DC0,0x0000, 0xFBC0,0x9DC1,0x0000, 0xFBC0,0x9DC2,0x0000,
-0xFBC0,0x9DC3,0x0000, 0xFBC0,0x9DC4,0x0000, 0xFBC0,0x9DC5,0x0000,
-0xFBC0,0x9DC6,0x0000, 0xFBC0,0x9DC7,0x0000, 0xFBC0,0x9DC8,0x0000,
-0xFBC0,0x9DC9,0x0000, 0xFBC0,0x9DCA,0x0000, 0xFBC0,0x9DCB,0x0000,
-0xFBC0,0x9DCC,0x0000, 0xFBC0,0x9DCD,0x0000, 0xFBC0,0x9DCE,0x0000,
-0xFBC0,0x9DCF,0x0000, 0xFBC0,0x9DD0,0x0000, 0xFBC0,0x9DD1,0x0000,
-0xFBC0,0x9DD2,0x0000, 0xFBC0,0x9DD3,0x0000, 0xFBC0,0x9DD4,0x0000,
-0xFBC0,0x9DD5,0x0000, 0xFBC0,0x9DD6,0x0000, 0xFBC0,0x9DD7,0x0000,
-0xFBC0,0x9DD8,0x0000, 0xFBC0,0x9DD9,0x0000, 0xFBC0,0x9DDA,0x0000,
-0xFBC0,0x9DDB,0x0000, 0xFBC0,0x9DDC,0x0000, 0xFBC0,0x9DDD,0x0000,
-0xFBC0,0x9DDE,0x0000, 0xFBC0,0x9DDF,0x0000, 0xFBC0,0x9DE0,0x0000,
-0xFBC0,0x9DE1,0x0000, 0xFBC0,0x9DE2,0x0000, 0xFBC0,0x9DE3,0x0000,
-0xFBC0,0x9DE4,0x0000, 0xFBC0,0x9DE5,0x0000, 0xFBC0,0x9DE6,0x0000,
-0xFBC0,0x9DE7,0x0000, 0xFBC0,0x9DE8,0x0000, 0xFBC0,0x9DE9,0x0000,
-0xFBC0,0x9DEA,0x0000, 0xFBC0,0x9DEB,0x0000, 0xFBC0,0x9DEC,0x0000,
-0xFBC0,0x9DED,0x0000, 0xFBC0,0x9DEE,0x0000, 0xFBC0,0x9DEF,0x0000,
-0xFBC0,0x9DF0,0x0000, 0xFBC0,0x9DF1,0x0000, 0xFBC0,0x9DF2,0x0000,
-0xFBC0,0x9DF3,0x0000, 0xFBC0,0x9DF4,0x0000, 0xFBC0,0x9DF5,0x0000,
-0xFBC0,0x9DF6,0x0000, 0xFBC0,0x9DF7,0x0000, 0xFBC0,0x9DF8,0x0000,
-0xFBC0,0x9DF9,0x0000, 0xFBC0,0x9DFA,0x0000, 0xFBC0,0x9DFB,0x0000,
-0xFBC0,0x9DFC,0x0000, 0xFBC0,0x9DFD,0x0000, 0xFBC0,0x9DFE,0x0000,
-0xFBC0,0x9DFF,0x0000 };
-
-uint16 page01Edata[]= { /* 1E00 (3 weights per char) */
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E4A,0x0000,0x0000,
-0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000,
-0x0E4A,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000,
-0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0EB9,0x0000,0x0000, 0x0EB9,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000,
-0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F21,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F2E,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F5B,0x0000,0x0000,
-0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000,
-0x0F5B,0x0000,0x0000, 0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F64,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0FA7,0x0000,0x0000, 0x0FA7,0x0000,0x0000, 0x0FA7,0x0000,0x0000,
-0x0FA7,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1002,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x1044,0x0000,0x0000,
-0x1044,0x0000,0x0000, 0x1044,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x105A,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105A,0x0000,0x0000,
-0x105A,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000,
-0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x106A,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1051,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x0E33,0x10B3,0x0000, 0x0FEA,0x0000,0x0000,
-0xFBC0,0x9E9C,0x0000, 0xFBC0,0x9E9D,0x0000, 0xFBC0,0x9E9E,0x0000,
-0xFBC0,0x9E9F,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x101F,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0xFBC0,0x9EFA,0x0000, 0xFBC0,0x9EFB,0x0000,
-0xFBC0,0x9EFC,0x0000, 0xFBC0,0x9EFD,0x0000, 0xFBC0,0x9EFE,0x0000,
-0xFBC0,0x9EFF,0x0000 };
-
-uint16 page01Fdata[]= { /* 1F00 (3 weights per char) */
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000,
-0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000,
-0x10ED,0x0000,0x0000, 0xFBC0,0x9F16,0x0000, 0xFBC0,0x9F17,0x0000,
-0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000,
-0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000,
-0xFBC0,0x9F1E,0x0000, 0xFBC0,0x9F1F,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000,
-0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000,
-0x10FB,0x0000,0x0000, 0xFBC0,0x9F46,0x0000, 0xFBC0,0x9F47,0x0000,
-0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000,
-0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000,
-0xFBC0,0x9F4E,0x0000, 0xFBC0,0x9F4F,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0xFBC0,0x9F58,0x0000, 0x1104,0x0000,0x0000,
-0xFBC0,0x9F5A,0x0000, 0x1104,0x0000,0x0000, 0xFBC0,0x9F5C,0x0000,
-0x1104,0x0000,0x0000, 0xFBC0,0x9F5E,0x0000, 0x1104,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10ED,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10FB,0x0000,0x0000, 0x10FB,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0xFBC0,0x9F7E,0x0000, 0xFBC0,0x9F7F,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0xFBC0,0x9FB5,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000, 0x10E8,0x0000,0x0000,
-0x0217,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x0217,0x0000,0x0000,
-0x021D,0x0000,0x0000, 0x0214,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0xFBC0,0x9FC5,0x0000,
-0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10ED,0x0000,0x0000,
-0x10ED,0x0000,0x0000, 0x10F1,0x0000,0x0000, 0x10F1,0x0000,0x0000,
-0x10F1,0x0000,0x0000, 0x0217,0x0000,0x0000, 0x0217,0x0000,0x0000,
-0x0217,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0xFBC0,0x9FD4,0x0000,
-0xFBC0,0x9FD5,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F3,0x0000,0x0000,
-0x10F3,0x0000,0x0000, 0xFBC0,0x9FDC,0x0000, 0x0218,0x0000,0x0000,
-0x0218,0x0000,0x0000, 0x0218,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1100,0x0000,0x0000, 0x1100,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000,
-0x1104,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x1100,0x0000,0x0000,
-0x0214,0x0000,0x0000, 0x0214,0x0000,0x0000, 0x020C,0x0000,0x0000,
-0xFBC0,0x9FF0,0x0000, 0xFBC0,0x9FF1,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0xFBC0,0x9FF5,0x0000,
-0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x10FB,0x0000,0x0000,
-0x10FB,0x0000,0x0000, 0x1109,0x0000,0x0000, 0x1109,0x0000,0x0000,
-0x1109,0x0000,0x0000, 0x020D,0x0000,0x0000, 0x0218,0x0000,0x0000,
-0xFBC0,0x9FFF,0x0000 };
-
-uint16 page020data[]= { /* 2000 (5 weights per char) */
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0225,0x0000,0x0000,0x0000,0x0000,
-0x0225,0x0000,0x0000,0x0000,0x0000,
-0x0226,0x0000,0x0000,0x0000,0x0000,
-0x0227,0x0000,0x0000,0x0000,0x0000,
-0x0228,0x0000,0x0000,0x0000,0x0000,
-0x0229,0x0000,0x0000,0x0000,0x0000,
-0x0432,0x0000,0x0000,0x0000,0x0000,
-0x021C,0x0000,0x0000,0x0000,0x0000,
-0x0278,0x0000,0x0000,0x0000,0x0000,
-0x0279,0x0000,0x0000,0x0000,0x0000,
-0x027A,0x0000,0x0000,0x0000,0x0000,
-0x027B,0x0000,0x0000,0x0000,0x0000,
-0x027F,0x0000,0x0000,0x0000,0x0000,
-0x0280,0x0000,0x0000,0x0000,0x0000,
-0x0281,0x0000,0x0000,0x0000,0x0000,
-0x0282,0x0000,0x0000,0x0000,0x0000,
-0x02D8,0x0000,0x0000,0x0000,0x0000,
-0x02D9,0x0000,0x0000,0x0000,0x0000,
-0x02DA,0x0000,0x0000,0x0000,0x0000,
-0x02DB,0x0000,0x0000,0x0000,0x0000,
-0x025D,0x0000,0x0000,0x0000,0x0000,
-0x025D,0x025D,0x0000,0x0000,0x0000,
-0x025D,0x025D,0x025D,0x0000,0x0000,
-0x02DC,0x0000,0x0000,0x0000,0x0000,
-0x0207,0x0000,0x0000,0x0000,0x0000,
-0x0208,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x02D5,0x0000,0x0000,0x0000,0x0000,
-0x02D6,0x0000,0x0000,0x0000,0x0000,
-0x02E0,0x0000,0x0000,0x0000,0x0000,
-0x02E0,0x02E0,0x0000,0x0000,0x0000,
-0x02E0,0x02E0,0x02E0,0x0000,0x0000,
-0x02E1,0x0000,0x0000,0x0000,0x0000,
-0x02E1,0x02E1,0x0000,0x0000,0x0000,
-0x02E1,0x02E1,0x02E1,0x0000,0x0000,
-0x02E4,0x0000,0x0000,0x0000,0x0000,
-0x027C,0x0000,0x0000,0x0000,0x0000,
-0x027D,0x0000,0x0000,0x0000,0x0000,
-0x02E5,0x0000,0x0000,0x0000,0x0000,
-0x0251,0x0251,0x0000,0x0000,0x0000,
-0x025C,0x0000,0x0000,0x0000,0x0000,
-0x0211,0x0000,0x0000,0x0000,0x0000,
-0x02E6,0x0000,0x0000,0x0000,0x0000,
-0x02E8,0x0000,0x0000,0x0000,0x0000,
-0x02EA,0x0000,0x0000,0x0000,0x0000,
-0x02EB,0x0000,0x0000,0x0000,0x0000,
-0x02DD,0x0000,0x0000,0x0000,0x0000,
-0x02CD,0x0000,0x0000,0x0000,0x0000,
-0x0294,0x0000,0x0000,0x0000,0x0000,
-0x0295,0x0000,0x0000,0x0000,0x0000,
-0x0255,0x0255,0x0000,0x0000,0x0000,
-0x0255,0x0251,0x0000,0x0000,0x0000,
-0x0251,0x0255,0x0000,0x0000,0x0000,
-0x02D1,0x0000,0x0000,0x0000,0x0000,
-0x02C4,0x0000,0x0000,0x0000,0x0000,
-0x02DE,0x0000,0x0000,0x0000,0x0000,
-0x02DF,0x0000,0x0000,0x0000,0x0000,
-0x02C9,0x0000,0x0000,0x0000,0x0000,
-0x023C,0x0000,0x0000,0x0000,0x0000,
-0x02E9,0x0000,0x0000,0x0000,0x0000,
-0x02CA,0x0000,0x0000,0x0000,0x0000,
-0x02D7,0x0000,0x0000,0x0000,0x0000,
-0x022A,0x0000,0x0000,0x0000,0x0000,
-0x02E7,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA055,0x0000,0x0000,0x0000,
-0xFBC0,0xA056,0x0000,0x0000,0x0000,
-0x02E0,0x02E0,0x02E0,0x02E0,0x0000,
-0xFBC0,0xA058,0x0000,0x0000,0x0000,
-0xFBC0,0xA059,0x0000,0x0000,0x0000,
-0xFBC0,0xA05A,0x0000,0x0000,0x0000,
-0xFBC0,0xA05B,0x0000,0x0000,0x0000,
-0xFBC0,0xA05C,0x0000,0x0000,0x0000,
-0xFBC0,0xA05D,0x0000,0x0000,0x0000,
-0xFBC0,0xA05E,0x0000,0x0000,0x0000,
-0x0209,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA064,0x0000,0x0000,0x0000,
-0xFBC0,0xA065,0x0000,0x0000,0x0000,
-0xFBC0,0xA066,0x0000,0x0000,0x0000,
-0xFBC0,0xA067,0x0000,0x0000,0x0000,
-0xFBC0,0xA068,0x0000,0x0000,0x0000,
-0xFBC0,0xA069,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E29,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA072,0x0000,0x0000,0x0000,
-0xFBC0,0xA073,0x0000,0x0000,0x0000,
-0x0E2D,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0x0000,0x0000,0x0000,0x0000,
-0x0428,0x0000,0x0000,0x0000,0x0000,
-0x0434,0x0000,0x0000,0x0000,0x0000,
-0x042D,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x0000,0x0000,0x0000,0x0000,
-0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000,0x0000,
-0x0E29,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0x0000,0x0000,0x0000,0x0000,
-0x0428,0x0000,0x0000,0x0000,0x0000,
-0x0434,0x0000,0x0000,0x0000,0x0000,
-0x042D,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x0000,0x0000,0x0000,0x0000,
-0x0289,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA08F,0x0000,0x0000,0x0000,
-0xFBC0,0xA090,0x0000,0x0000,0x0000,
-0xFBC0,0xA091,0x0000,0x0000,0x0000,
-0xFBC0,0xA092,0x0000,0x0000,0x0000,
-0xFBC0,0xA093,0x0000,0x0000,0x0000,
-0xFBC0,0xA094,0x0000,0x0000,0x0000,
-0xFBC0,0xA095,0x0000,0x0000,0x0000,
-0xFBC0,0xA096,0x0000,0x0000,0x0000,
-0xFBC0,0xA097,0x0000,0x0000,0x0000,
-0xFBC0,0xA098,0x0000,0x0000,0x0000,
-0xFBC0,0xA099,0x0000,0x0000,0x0000,
-0xFBC0,0xA09A,0x0000,0x0000,0x0000,
-0xFBC0,0xA09B,0x0000,0x0000,0x0000,
-0xFBC0,0xA09C,0x0000,0x0000,0x0000,
-0xFBC0,0xA09D,0x0000,0x0000,0x0000,
-0xFBC0,0xA09E,0x0000,0x0000,0x0000,
-0xFBC0,0xA09F,0x0000,0x0000,0x0000,
-0x0E18,0x0000,0x0000,0x0000,0x0000,
-0x0E19,0x0000,0x0000,0x0000,0x0000,
-0x0E1A,0x0000,0x0000,0x0000,0x0000,
-0x0E1B,0x0000,0x0000,0x0000,0x0000,
-0x0E1C,0x0000,0x0000,0x0000,0x0000,
-0x0E1D,0x0000,0x0000,0x0000,0x0000,
-0x0E1E,0x0000,0x0000,0x0000,0x0000,
-0x0E1F,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0FEA,0x0000,0x0000,0x0000,
-0x0E20,0x0000,0x0000,0x0000,0x0000,
-0x0E21,0x0000,0x0000,0x0000,0x0000,
-0x0E22,0x0000,0x0000,0x0000,0x0000,
-0x0E23,0x0000,0x0000,0x0000,0x0000,
-0x0E24,0x0000,0x0000,0x0000,0x0000,
-0x0E25,0x0000,0x0000,0x0000,0x0000,
-0x0E26,0x0000,0x0000,0x0000,0x0000,
-0x0E27,0x0000,0x0000,0x0000,0x0000,
-0x0E28,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B2,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B3,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B4,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B5,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B6,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B7,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B8,0x0000,0x0000,0x0000,
-0xFBC0,0xA0B9,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BA,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BB,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BC,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BD,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BE,0x0000,0x0000,0x0000,
-0xFBC0,0xA0BF,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C0,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C1,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C2,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C3,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C4,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C5,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C6,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C7,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C8,0x0000,0x0000,0x0000,
-0xFBC0,0xA0C9,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CA,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CB,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CC,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CD,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CE,0x0000,0x0000,0x0000,
-0xFBC0,0xA0CF,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA0EB,0x0000,0x0000,0x0000,
-0xFBC0,0xA0EC,0x0000,0x0000,0x0000,
-0xFBC0,0xA0ED,0x0000,0x0000,0x0000,
-0xFBC0,0xA0EE,0x0000,0x0000,0x0000,
-0xFBC0,0xA0EF,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F0,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F1,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F2,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F3,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F4,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F5,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F6,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F7,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F8,0x0000,0x0000,0x0000,
-0xFBC0,0xA0F9,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FA,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FB,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FC,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FD,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FE,0x0000,0x0000,0x0000,
-0xFBC0,0xA0FF,0x0000,0x0000,0x0000
-};
-
-uint16 page021data[]= { /* 2100 (5 weights per char) */
-0x0E33,0x02CC,0x0E60,0x0000,0x0000,
-0x0E33,0x02CC,0x0FEA,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x034A,0x0E60,0x0000,0x0000,0x0000,
-0x039B,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x02CC,0x0F82,0x0000,0x0000,
-0x0E60,0x02CC,0x101F,0x0000,0x0000,
-0x0E98,0x0000,0x0000,0x0000,0x0000,
-0x039C,0x0000,0x0000,0x0000,0x0000,
-0x034A,0x0EB9,0x0000,0x0000,0x0000,
-0x0EC1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EED,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x039D,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0F82,0x0000,0x0000,0x0000,
-0x039E,0x0000,0x0000,0x0000,0x0000,
-0x039F,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0000,0x0000,0x0000,0x0000,
-0x0FB4,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000,0x0000,
-0x03A0,0x0000,0x0000,0x0000,0x0000,
-0x03A1,0x0000,0x0000,0x0000,0x0000,
-0x0FEA,0x0F5B,0x0000,0x0000,0x0000,
-0x1002,0x0E8B,0x0F2E,0x0000,0x0000,
-0x1002,0x0F5B,0x0000,0x0000,0x0000,
-0x03A2,0x0000,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000,0x0000,
-0x03A3,0x0000,0x0000,0x0000,0x0000,
-0x1109,0x0000,0x0000,0x0000,0x0000,
-0x03A4,0x0000,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000,0x0000,
-0x03A5,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0000,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000,0x0000,
-0x0E4A,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x03A6,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000,0x0000,
-0x0EB9,0x0000,0x0000,0x0000,0x0000,
-0x03A7,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0000,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000,0x0000,
-0x1331,0x0000,0x0000,0x0000,0x0000,
-0x1332,0x0000,0x0000,0x0000,0x0000,
-0x1333,0x0000,0x0000,0x0000,0x0000,
-0x1334,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x03A8,0x0000,0x0000,0x0000,0x0000,
-0x0EB9,0x0E33,0x105A,0x0000,0x0000,
-0xFBC0,0xA13C,0x0000,0x0000,0x0000,
-0x10EA,0x0000,0x0000,0x0000,0x0000,
-0x10EA,0x0000,0x0000,0x0000,0x0000,
-0x10FC,0x0000,0x0000,0x0000,0x0000,
-0x0427,0x0000,0x0000,0x0000,0x0000,
-0x03A9,0x0000,0x0000,0x0000,0x0000,
-0x03AA,0x0000,0x0000,0x0000,0x0000,
-0x03AB,0x0000,0x0000,0x0000,0x0000,
-0x03AC,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0F10,0x0000,0x0000,0x0000,0x0000,
-0x03AD,0x0000,0x0000,0x0000,0x0000,
-0x02D0,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA14C,0x0000,0x0000,0x0000,
-0xFBC0,0xA14D,0x0000,0x0000,0x0000,
-0xFBC0,0xA14E,0x0000,0x0000,0x0000,
-0xFBC0,0xA14F,0x0000,0x0000,0x0000,
-0xFBC0,0xA150,0x0000,0x0000,0x0000,
-0xFBC0,0xA151,0x0000,0x0000,0x0000,
-0xFBC0,0xA152,0x0000,0x0000,0x0000,
-0x0E2A,0x02CD,0x0E2C,0x0000,0x0000,
-0x0E2B,0x02CD,0x0E2C,0x0000,0x0000,
-0x0E2A,0x02CD,0x0E2E,0x0000,0x0000,
-0x0E2B,0x02CD,0x0E2E,0x0000,0x0000,
-0x0E2C,0x02CD,0x0E2E,0x0000,0x0000,
-0x0E2D,0x02CD,0x0E2E,0x0000,0x0000,
-0x0E2A,0x02CD,0x0E2F,0x0000,0x0000,
-0x0E2E,0x02CD,0x0E2F,0x0000,0x0000,
-0x0E2A,0x02CD,0x0E31,0x0000,0x0000,
-0x0E2C,0x02CD,0x0E31,0x0000,0x0000,
-0x0E2E,0x02CD,0x0E31,0x0000,0x0000,
-0x0E30,0x02CD,0x0E31,0x0000,0x0000,
-0x0E2A,0x02CD,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0EFB,0x0000,0x0000,0x0000,
-0x0EFB,0x0EFB,0x0EFB,0x0000,0x0000,
-0x0EFB,0x1044,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000,0x0000,
-0x1044,0x0EFB,0x0000,0x0000,0x0000,
-0x1044,0x0EFB,0x0EFB,0x0000,0x0000,
-0x1044,0x0EFB,0x0EFB,0x0EFB,0x0000,
-0x0EFB,0x105A,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000,0x0000,
-0x105A,0x0EFB,0x0000,0x0000,0x0000,
-0x105A,0x0EFB,0x0EFB,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0EFB,0x0000,0x0000,0x0000,
-0x0EFB,0x0EFB,0x0EFB,0x0000,0x0000,
-0x0EFB,0x1044,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000,0x0000,
-0x1044,0x0EFB,0x0000,0x0000,0x0000,
-0x1044,0x0EFB,0x0EFB,0x0000,0x0000,
-0x1044,0x0EFB,0x0EFB,0x0EFB,0x0000,
-0x0EFB,0x105A,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000,0x0000,
-0x105A,0x0EFB,0x0000,0x0000,0x0000,
-0x105A,0x0EFB,0x0EFB,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0000,0x0000,0x0000,0x0000,
-0x0DD7,0x0000,0x0000,0x0000,0x0000,
-0x0DD8,0x0000,0x0000,0x0000,0x0000,
-0x0DD9,0x0000,0x0000,0x0000,0x0000,
-0x0DDA,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA184,0x0000,0x0000,0x0000,
-0xFBC0,0xA185,0x0000,0x0000,0x0000,
-0xFBC0,0xA186,0x0000,0x0000,0x0000,
-0xFBC0,0xA187,0x0000,0x0000,0x0000,
-0xFBC0,0xA188,0x0000,0x0000,0x0000,
-0xFBC0,0xA189,0x0000,0x0000,0x0000,
-0xFBC0,0xA18A,0x0000,0x0000,0x0000,
-0xFBC0,0xA18B,0x0000,0x0000,0x0000,
-0xFBC0,0xA18C,0x0000,0x0000,0x0000,
-0xFBC0,0xA18D,0x0000,0x0000,0x0000,
-0xFBC0,0xA18E,0x0000,0x0000,0x0000,
-0xFBC0,0xA18F,0x0000,0x0000,0x0000,
-0x03AE,0x0000,0x0000,0x0000,0x0000,
-0x03B0,0x0000,0x0000,0x0000,0x0000,
-0x03AF,0x0000,0x0000,0x0000,0x0000,
-0x03B1,0x0000,0x0000,0x0000,0x0000,
-0x03B2,0x0000,0x0000,0x0000,0x0000,
-0x03B3,0x0000,0x0000,0x0000,0x0000,
-0x03B4,0x0000,0x0000,0x0000,0x0000,
-0x03B5,0x0000,0x0000,0x0000,0x0000,
-0x03B6,0x0000,0x0000,0x0000,0x0000,
-0x03B7,0x0000,0x0000,0x0000,0x0000,
-0x03AE,0x0000,0x0000,0x0000,0x0000,
-0x03AF,0x0000,0x0000,0x0000,0x0000,
-0x03B8,0x0000,0x0000,0x0000,0x0000,
-0x03B9,0x0000,0x0000,0x0000,0x0000,
-0x03BA,0x0000,0x0000,0x0000,0x0000,
-0x03BB,0x0000,0x0000,0x0000,0x0000,
-0x03BC,0x0000,0x0000,0x0000,0x0000,
-0x03BD,0x0000,0x0000,0x0000,0x0000,
-0x03BE,0x0000,0x0000,0x0000,0x0000,
-0x03BF,0x0000,0x0000,0x0000,0x0000,
-0x03C0,0x0000,0x0000,0x0000,0x0000,
-0x03C1,0x0000,0x0000,0x0000,0x0000,
-0x03C2,0x0000,0x0000,0x0000,0x0000,
-0x03C3,0x0000,0x0000,0x0000,0x0000,
-0x03C4,0x0000,0x0000,0x0000,0x0000,
-0x03C5,0x0000,0x0000,0x0000,0x0000,
-0x03C6,0x0000,0x0000,0x0000,0x0000,
-0x03C7,0x0000,0x0000,0x0000,0x0000,
-0x03C8,0x0000,0x0000,0x0000,0x0000,
-0x03C9,0x0000,0x0000,0x0000,0x0000,
-0x03B2,0x0000,0x0000,0x0000,0x0000,
-0x03CA,0x0000,0x0000,0x0000,0x0000,
-0x03CB,0x0000,0x0000,0x0000,0x0000,
-0x03CC,0x0000,0x0000,0x0000,0x0000,
-0x03CD,0x0000,0x0000,0x0000,0x0000,
-0x03CE,0x0000,0x0000,0x0000,0x0000,
-0x03CF,0x0000,0x0000,0x0000,0x0000,
-0x03D0,0x0000,0x0000,0x0000,0x0000,
-0x03D1,0x0000,0x0000,0x0000,0x0000,
-0x03D2,0x0000,0x0000,0x0000,0x0000,
-0x03D3,0x0000,0x0000,0x0000,0x0000,
-0x03D4,0x0000,0x0000,0x0000,0x0000,
-0x03D5,0x0000,0x0000,0x0000,0x0000,
-0x03D6,0x0000,0x0000,0x0000,0x0000,
-0x03D7,0x0000,0x0000,0x0000,0x0000,
-0x03D8,0x0000,0x0000,0x0000,0x0000,
-0x03D9,0x0000,0x0000,0x0000,0x0000,
-0x03DA,0x0000,0x0000,0x0000,0x0000,
-0x03DB,0x0000,0x0000,0x0000,0x0000,
-0x03DC,0x0000,0x0000,0x0000,0x0000,
-0x03DD,0x0000,0x0000,0x0000,0x0000,
-0x03DE,0x0000,0x0000,0x0000,0x0000,
-0x03DF,0x0000,0x0000,0x0000,0x0000,
-0x03E0,0x0000,0x0000,0x0000,0x0000,
-0x03E1,0x0000,0x0000,0x0000,0x0000,
-0x03E2,0x0000,0x0000,0x0000,0x0000,
-0x03E3,0x0000,0x0000,0x0000,0x0000,
-0x03E4,0x0000,0x0000,0x0000,0x0000,
-0x03E5,0x0000,0x0000,0x0000,0x0000,
-0x03E6,0x0000,0x0000,0x0000,0x0000,
-0x03E7,0x0000,0x0000,0x0000,0x0000,
-0x03E8,0x0000,0x0000,0x0000,0x0000,
-0x03EC,0x0000,0x0000,0x0000,0x0000,
-0x03EA,0x0000,0x0000,0x0000,0x0000,
-0x03E8,0x0000,0x0000,0x0000,0x0000,
-0x03E9,0x0000,0x0000,0x0000,0x0000,
-0x03EA,0x0000,0x0000,0x0000,0x0000,
-0x03EB,0x0000,0x0000,0x0000,0x0000,
-0x03EC,0x0000,0x0000,0x0000,0x0000,
-0x03ED,0x0000,0x0000,0x0000,0x0000,
-0x03EE,0x0000,0x0000,0x0000,0x0000,
-0x03EF,0x0000,0x0000,0x0000,0x0000,
-0x03F0,0x0000,0x0000,0x0000,0x0000,
-0x03F1,0x0000,0x0000,0x0000,0x0000,
-0x03F2,0x0000,0x0000,0x0000,0x0000,
-0x03F3,0x0000,0x0000,0x0000,0x0000,
-0x03F4,0x0000,0x0000,0x0000,0x0000,
-0x03F5,0x0000,0x0000,0x0000,0x0000,
-0x03F6,0x0000,0x0000,0x0000,0x0000,
-0x03F7,0x0000,0x0000,0x0000,0x0000,
-0x03F8,0x0000,0x0000,0x0000,0x0000,
-0x03F9,0x0000,0x0000,0x0000,0x0000,
-0x03FA,0x0000,0x0000,0x0000,0x0000,
-0x03FB,0x0000,0x0000,0x0000,0x0000,
-0x03FC,0x0000,0x0000,0x0000,0x0000,
-0x03FD,0x0000,0x0000,0x0000,0x0000,
-0x03FE,0x0000,0x0000,0x0000,0x0000,
-0x03FF,0x0000,0x0000,0x0000,0x0000,
-0x0400,0x0000,0x0000,0x0000,0x0000,
-0x0401,0x0000,0x0000,0x0000,0x0000,
-0x0402,0x0000,0x0000,0x0000,0x0000,
-0x0403,0x0000,0x0000,0x0000,0x0000,
-0x0404,0x0000,0x0000,0x0000,0x0000,
-0x0405,0x0000,0x0000,0x0000,0x0000,
-0x0406,0x0000,0x0000,0x0000,0x0000,
-0x0407,0x0000,0x0000,0x0000,0x0000,
-0x0408,0x0000,0x0000,0x0000,0x0000,
-0x0409,0x0000,0x0000,0x0000,0x0000,
-0x040A,0x0000,0x0000,0x0000,0x0000,
-0x040B,0x0000,0x0000,0x0000,0x0000,
-0x040C,0x0000,0x0000,0x0000,0x0000,
-0x040D,0x0000,0x0000,0x0000,0x0000,
-0x040E,0x0000,0x0000,0x0000,0x0000,
-0x040F,0x0000,0x0000,0x0000,0x0000,
-0x0410,0x0000,0x0000,0x0000,0x0000,
-0x0411,0x0000,0x0000,0x0000,0x0000,
-0x0412,0x0000,0x0000,0x0000,0x0000,
-0x0413,0x0000,0x0000,0x0000,0x0000,
-0x0414,0x0000,0x0000,0x0000,0x0000,
-0x0415,0x0000,0x0000,0x0000,0x0000,
-0x0416,0x0000,0x0000,0x0000,0x0000,
-0x0417,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page022data[]= { /* 2200 (4 weights per char) */
-0x0418,0x0000,0x0000,0x0000, 0x0419,0x0000,0x0000,0x0000,
-0x041A,0x0000,0x0000,0x0000, 0x041B,0x0000,0x0000,0x0000,
-0x041B,0x0000,0x0000,0x0000, 0x041C,0x0000,0x0000,0x0000,
-0x041D,0x0000,0x0000,0x0000, 0x041E,0x0000,0x0000,0x0000,
-0x041F,0x0000,0x0000,0x0000, 0x041F,0x0000,0x0000,0x0000,
-0x0420,0x0000,0x0000,0x0000, 0x0421,0x0000,0x0000,0x0000,
-0x0421,0x0000,0x0000,0x0000, 0x0422,0x0000,0x0000,0x0000,
-0x0424,0x0000,0x0000,0x0000, 0x0425,0x0000,0x0000,0x0000,
-0x0426,0x0000,0x0000,0x0000, 0x0427,0x0000,0x0000,0x0000,
-0x0434,0x0000,0x0000,0x0000, 0x0435,0x0000,0x0000,0x0000,
-0x0436,0x0000,0x0000,0x0000, 0x0437,0x0000,0x0000,0x0000,
-0x0438,0x0000,0x0000,0x0000, 0x0439,0x0000,0x0000,0x0000,
-0x043A,0x0000,0x0000,0x0000, 0x043B,0x0000,0x0000,0x0000,
-0x043C,0x0000,0x0000,0x0000, 0x043D,0x0000,0x0000,0x0000,
-0x043E,0x0000,0x0000,0x0000, 0x043F,0x0000,0x0000,0x0000,
-0x0440,0x0000,0x0000,0x0000, 0x0441,0x0000,0x0000,0x0000,
-0x0442,0x0000,0x0000,0x0000, 0x0443,0x0000,0x0000,0x0000,
-0x0444,0x0000,0x0000,0x0000, 0x0445,0x0000,0x0000,0x0000,
-0x0445,0x0000,0x0000,0x0000, 0x0446,0x0000,0x0000,0x0000,
-0x0446,0x0000,0x0000,0x0000, 0x0447,0x0000,0x0000,0x0000,
-0x0448,0x0000,0x0000,0x0000, 0x0449,0x0000,0x0000,0x0000,
-0x044A,0x0000,0x0000,0x0000, 0x044B,0x0000,0x0000,0x0000,
-0x044B,0x044B,0x0000,0x0000, 0x044B,0x044B,0x044B,0x0000,
-0x044C,0x0000,0x0000,0x0000, 0x044C,0x044C,0x0000,0x0000,
-0x044C,0x044C,0x044C,0x0000, 0x044D,0x0000,0x0000,0x0000,
-0x044E,0x0000,0x0000,0x0000, 0x044F,0x0000,0x0000,0x0000,
-0x0450,0x0000,0x0000,0x0000, 0x0451,0x0000,0x0000,0x0000,
-0x0452,0x0000,0x0000,0x0000, 0x0453,0x0000,0x0000,0x0000,
-0x0454,0x0000,0x0000,0x0000, 0x0455,0x0000,0x0000,0x0000,
-0x0456,0x0000,0x0000,0x0000, 0x0457,0x0000,0x0000,0x0000,
-0x0458,0x0000,0x0000,0x0000, 0x0459,0x0000,0x0000,0x0000,
-0x045A,0x0000,0x0000,0x0000, 0x045B,0x0000,0x0000,0x0000,
-0x045C,0x0000,0x0000,0x0000, 0x0458,0x0000,0x0000,0x0000,
-0x045D,0x0000,0x0000,0x0000, 0x045E,0x0000,0x0000,0x0000,
-0x045E,0x0000,0x0000,0x0000, 0x045F,0x0000,0x0000,0x0000,
-0x0460,0x0000,0x0000,0x0000, 0x045F,0x0000,0x0000,0x0000,
-0x0461,0x0000,0x0000,0x0000, 0x0461,0x0000,0x0000,0x0000,
-0x0462,0x0000,0x0000,0x0000, 0x0463,0x0000,0x0000,0x0000,
-0x0464,0x0000,0x0000,0x0000, 0x0465,0x0000,0x0000,0x0000,
-0x0466,0x0000,0x0000,0x0000, 0x0467,0x0000,0x0000,0x0000,
-0x0468,0x0000,0x0000,0x0000, 0x0469,0x0000,0x0000,0x0000,
-0x046A,0x0000,0x0000,0x0000, 0x046B,0x0000,0x0000,0x0000,
-0x046C,0x0000,0x0000,0x0000, 0x046D,0x0000,0x0000,0x0000,
-0x046E,0x0000,0x0000,0x0000, 0x046F,0x0000,0x0000,0x0000,
-0x0470,0x0000,0x0000,0x0000, 0x0471,0x0000,0x0000,0x0000,
-0x0472,0x0000,0x0000,0x0000, 0x0473,0x0000,0x0000,0x0000,
-0x0474,0x0000,0x0000,0x0000, 0x0475,0x0000,0x0000,0x0000,
-0x0476,0x0000,0x0000,0x0000, 0x0477,0x0000,0x0000,0x0000,
-0x042D,0x0000,0x0000,0x0000, 0x0478,0x0000,0x0000,0x0000,
-0x0478,0x0000,0x0000,0x0000, 0x0479,0x0000,0x0000,0x0000,
-0x047A,0x0000,0x0000,0x0000, 0x047B,0x0000,0x0000,0x0000,
-0x047C,0x0000,0x0000,0x0000, 0x047D,0x0000,0x0000,0x0000,
-0x047E,0x0000,0x0000,0x0000, 0x047F,0x0000,0x0000,0x0000,
-0x0480,0x0000,0x0000,0x0000, 0x0481,0x0000,0x0000,0x0000,
-0x0482,0x0000,0x0000,0x0000, 0x0465,0x0000,0x0000,0x0000,
-0x042C,0x0000,0x0000,0x0000, 0x042E,0x0000,0x0000,0x0000,
-0x047A,0x0000,0x0000,0x0000, 0x047B,0x0000,0x0000,0x0000,
-0x0483,0x0000,0x0000,0x0000, 0x0484,0x0000,0x0000,0x0000,
-0x0483,0x0000,0x0000,0x0000, 0x0484,0x0000,0x0000,0x0000,
-0x0485,0x0000,0x0000,0x0000, 0x0486,0x0000,0x0000,0x0000,
-0x0485,0x0000,0x0000,0x0000, 0x0486,0x0000,0x0000,0x0000,
-0x0487,0x0000,0x0000,0x0000, 0x0488,0x0000,0x0000,0x0000,
-0x0489,0x0000,0x0000,0x0000, 0x048A,0x0000,0x0000,0x0000,
-0x048B,0x0000,0x0000,0x0000, 0x048C,0x0000,0x0000,0x0000,
-0x0487,0x0000,0x0000,0x0000, 0x0488,0x0000,0x0000,0x0000,
-0x048D,0x0000,0x0000,0x0000, 0x048E,0x0000,0x0000,0x0000,
-0x048D,0x0000,0x0000,0x0000, 0x048E,0x0000,0x0000,0x0000,
-0x048F,0x0000,0x0000,0x0000, 0x0490,0x0000,0x0000,0x0000,
-0x048F,0x0000,0x0000,0x0000, 0x0490,0x0000,0x0000,0x0000,
-0x0491,0x0000,0x0000,0x0000, 0x0492,0x0000,0x0000,0x0000,
-0x0493,0x0000,0x0000,0x0000, 0x0494,0x0000,0x0000,0x0000,
-0x0495,0x0000,0x0000,0x0000, 0x0496,0x0000,0x0000,0x0000,
-0x0497,0x0000,0x0000,0x0000, 0x0498,0x0000,0x0000,0x0000,
-0x0499,0x0000,0x0000,0x0000, 0x049A,0x0000,0x0000,0x0000,
-0x049B,0x0000,0x0000,0x0000, 0x049C,0x0000,0x0000,0x0000,
-0x049D,0x0000,0x0000,0x0000, 0x049E,0x0000,0x0000,0x0000,
-0x049F,0x0000,0x0000,0x0000, 0x04A0,0x0000,0x0000,0x0000,
-0x04A1,0x0000,0x0000,0x0000, 0x04A2,0x0000,0x0000,0x0000,
-0x04A3,0x0000,0x0000,0x0000, 0x04A4,0x0000,0x0000,0x0000,
-0x04A5,0x0000,0x0000,0x0000, 0x04A6,0x0000,0x0000,0x0000,
-0x04A7,0x0000,0x0000,0x0000, 0x04A8,0x0000,0x0000,0x0000,
-0x04A9,0x0000,0x0000,0x0000, 0x04AA,0x0000,0x0000,0x0000,
-0x04AB,0x0000,0x0000,0x0000, 0x04AC,0x0000,0x0000,0x0000,
-0x04AD,0x0000,0x0000,0x0000, 0x04AE,0x0000,0x0000,0x0000,
-0x04AF,0x0000,0x0000,0x0000, 0x04B0,0x0000,0x0000,0x0000,
-0x04B1,0x0000,0x0000,0x0000, 0x04B2,0x0000,0x0000,0x0000,
-0x04A9,0x0000,0x0000,0x0000, 0x04AF,0x0000,0x0000,0x0000,
-0x04B0,0x0000,0x0000,0x0000, 0x04B2,0x0000,0x0000,0x0000,
-0x04B3,0x0000,0x0000,0x0000, 0x04B4,0x0000,0x0000,0x0000,
-0x04B5,0x0000,0x0000,0x0000, 0x04B6,0x0000,0x0000,0x0000,
-0x04B7,0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000,0x0000,
-0x04B9,0x0000,0x0000,0x0000, 0x04BA,0x0000,0x0000,0x0000,
-0x04BB,0x0000,0x0000,0x0000, 0x04BC,0x0000,0x0000,0x0000,
-0x04BD,0x0000,0x0000,0x0000, 0x04BE,0x0000,0x0000,0x0000,
-0x04BF,0x0000,0x0000,0x0000, 0x04C0,0x0000,0x0000,0x0000,
-0x04C1,0x0000,0x0000,0x0000, 0x04C2,0x0000,0x0000,0x0000,
-0x04C3,0x0000,0x0000,0x0000, 0x04C4,0x0000,0x0000,0x0000,
-0x04C5,0x0000,0x0000,0x0000, 0x04C6,0x0000,0x0000,0x0000,
-0x04C7,0x0000,0x0000,0x0000, 0x04C8,0x0000,0x0000,0x0000,
-0x04C9,0x0000,0x0000,0x0000, 0x04CA,0x0000,0x0000,0x0000,
-0x04CB,0x0000,0x0000,0x0000, 0x04CC,0x0000,0x0000,0x0000,
-0x04CD,0x0000,0x0000,0x0000, 0x04CE,0x0000,0x0000,0x0000,
-0x04CF,0x0000,0x0000,0x0000, 0x04D0,0x0000,0x0000,0x0000,
-0x04D1,0x0000,0x0000,0x0000, 0x04D2,0x0000,0x0000,0x0000,
-0x04D3,0x0000,0x0000,0x0000, 0x04D4,0x0000,0x0000,0x0000,
-0x04D5,0x0000,0x0000,0x0000, 0x04D6,0x0000,0x0000,0x0000,
-0x04D7,0x0000,0x0000,0x0000, 0x04D8,0x0000,0x0000,0x0000,
-0x04D9,0x0000,0x0000,0x0000, 0x04DA,0x0000,0x0000,0x0000,
-0x04DB,0x0000,0x0000,0x0000, 0x04DC,0x0000,0x0000,0x0000,
-0x04DD,0x0000,0x0000,0x0000, 0x04DE,0x0000,0x0000,0x0000,
-0x04DF,0x0000,0x0000,0x0000, 0x04E0,0x0000,0x0000,0x0000,
-0x04E1,0x0000,0x0000,0x0000, 0x04E2,0x0000,0x0000,0x0000,
-0x0489,0x0000,0x0000,0x0000, 0x048A,0x0000,0x0000,0x0000,
-0x0498,0x0000,0x0000,0x0000, 0x0499,0x0000,0x0000,0x0000,
-0x04E3,0x0000,0x0000,0x0000, 0x04E4,0x0000,0x0000,0x0000,
-0x04E5,0x0000,0x0000,0x0000, 0x04E6,0x0000,0x0000,0x0000,
-0x04E7,0x0000,0x0000,0x0000, 0x04E8,0x0000,0x0000,0x0000,
-0x04B5,0x0000,0x0000,0x0000, 0x04B6,0x0000,0x0000,0x0000,
-0x04B7,0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000,0x0000,
-0x04E9,0x0000,0x0000,0x0000, 0x04EA,0x0000,0x0000,0x0000,
-0x04EB,0x0000,0x0000,0x0000, 0x04EC,0x0000,0x0000,0x0000,
-0x04ED,0x0000,0x0000,0x0000, 0x04EE,0x0000,0x0000,0x0000,
-0x04EF,0x0000,0x0000,0x0000, 0x04F0,0x0000,0x0000,0x0000,
-0x04F1,0x0000,0x0000,0x0000, 0x04F2,0x0000,0x0000,0x0000,
-0x04F3,0x0000,0x0000,0x0000, 0x04F4,0x0000,0x0000,0x0000,
-0x04F5,0x0000,0x0000,0x0000, 0x04F6,0x0000,0x0000,0x0000,
-0x04F7,0x0000,0x0000,0x0000, 0x04F8,0x0000,0x0000,0x0000,
-0x04F9,0x0000,0x0000,0x0000, 0x04FA,0x0000,0x0000,0x0000
-};
-
-uint16 page023data[]= { /* 2300 (3 weights per char) */
-0x04FB,0x0000,0x0000, 0x04FC,0x0000,0x0000, 0x04FD,0x0000,0x0000,
-0x04FE,0x0000,0x0000, 0x04FF,0x0000,0x0000, 0x0500,0x0000,0x0000,
-0x0501,0x0000,0x0000, 0x0502,0x0000,0x0000, 0x0503,0x0000,0x0000,
-0x0504,0x0000,0x0000, 0x0505,0x0000,0x0000, 0x0506,0x0000,0x0000,
-0x0507,0x0000,0x0000, 0x0508,0x0000,0x0000, 0x0509,0x0000,0x0000,
-0x050A,0x0000,0x0000, 0x050B,0x0000,0x0000, 0x050C,0x0000,0x0000,
-0x050D,0x0000,0x0000, 0x050E,0x0000,0x0000, 0x050F,0x0000,0x0000,
-0x0510,0x0000,0x0000, 0x0511,0x0000,0x0000, 0x0512,0x0000,0x0000,
-0x0513,0x0000,0x0000, 0x0514,0x0000,0x0000, 0x0515,0x0000,0x0000,
-0x0516,0x0000,0x0000, 0x0517,0x0000,0x0000, 0x0518,0x0000,0x0000,
-0x0519,0x0000,0x0000, 0x051A,0x0000,0x0000, 0x051B,0x0000,0x0000,
-0x051C,0x0000,0x0000, 0x051D,0x0000,0x0000, 0x051E,0x0000,0x0000,
-0x051F,0x0000,0x0000, 0x0520,0x0000,0x0000, 0x0521,0x0000,0x0000,
-0x0522,0x0000,0x0000, 0x0523,0x0000,0x0000, 0x02AE,0x0000,0x0000,
-0x02AF,0x0000,0x0000, 0x0524,0x0000,0x0000, 0x0525,0x0000,0x0000,
-0x0526,0x0000,0x0000, 0x0527,0x0000,0x0000, 0x0528,0x0000,0x0000,
-0x0529,0x0000,0x0000, 0x052A,0x0000,0x0000, 0x052B,0x0000,0x0000,
-0x052C,0x0000,0x0000, 0x052D,0x0000,0x0000, 0x052E,0x0000,0x0000,
-0x052F,0x0000,0x0000, 0x0530,0x0000,0x0000, 0x0531,0x0000,0x0000,
-0x0532,0x0000,0x0000, 0x0533,0x0000,0x0000, 0x0534,0x0000,0x0000,
-0x0535,0x0000,0x0000, 0x0536,0x0000,0x0000, 0x0537,0x0000,0x0000,
-0x0538,0x0000,0x0000, 0x0539,0x0000,0x0000, 0x053A,0x0000,0x0000,
-0x053B,0x0000,0x0000, 0x053C,0x0000,0x0000, 0x053D,0x0000,0x0000,
-0x053E,0x0000,0x0000, 0x053F,0x0000,0x0000, 0x0540,0x0000,0x0000,
-0x0541,0x0000,0x0000, 0x0542,0x0000,0x0000, 0x0543,0x0000,0x0000,
-0x0544,0x0000,0x0000, 0x0545,0x0000,0x0000, 0x0546,0x0000,0x0000,
-0x0547,0x0000,0x0000, 0x0548,0x0000,0x0000, 0x0549,0x0000,0x0000,
-0x054A,0x0000,0x0000, 0x054B,0x0000,0x0000, 0x054C,0x0000,0x0000,
-0x054D,0x0000,0x0000, 0x054E,0x0000,0x0000, 0x054F,0x0000,0x0000,
-0x0550,0x0000,0x0000, 0x0551,0x0000,0x0000, 0x0552,0x0000,0x0000,
-0x0553,0x0000,0x0000, 0x0554,0x0000,0x0000, 0x0555,0x0000,0x0000,
-0x0556,0x0000,0x0000, 0x0557,0x0000,0x0000, 0x0558,0x0000,0x0000,
-0x0559,0x0000,0x0000, 0x055A,0x0000,0x0000, 0x055B,0x0000,0x0000,
-0x055C,0x0000,0x0000, 0x055D,0x0000,0x0000, 0x055E,0x0000,0x0000,
-0x055F,0x0000,0x0000, 0x0560,0x0000,0x0000, 0x0561,0x0000,0x0000,
-0x0562,0x0000,0x0000, 0x0563,0x0000,0x0000, 0x0564,0x0000,0x0000,
-0x0565,0x0000,0x0000, 0x0566,0x0000,0x0000, 0x0567,0x0000,0x0000,
-0x0568,0x0000,0x0000, 0x0569,0x0000,0x0000, 0x056A,0x0000,0x0000,
-0x056B,0x0000,0x0000, 0x056C,0x0000,0x0000, 0x056D,0x0000,0x0000,
-0x056E,0x0000,0x0000, 0x056F,0x0000,0x0000, 0x0570,0x0000,0x0000,
-0x0571,0x0000,0x0000, 0x0572,0x0000,0x0000, 0x0573,0x0000,0x0000,
-0x0574,0x0000,0x0000, 0x0575,0x0000,0x0000, 0x0576,0x0000,0x0000,
-0x0577,0x0000,0x0000, 0x0578,0x0000,0x0000, 0x0579,0x0000,0x0000,
-0x057A,0x0000,0x0000, 0x057B,0x0000,0x0000, 0x057C,0x0000,0x0000,
-0x057D,0x0000,0x0000, 0x057E,0x0000,0x0000, 0x057F,0x0000,0x0000,
-0x0580,0x0000,0x0000, 0x0581,0x0000,0x0000, 0x0582,0x0000,0x0000,
-0x0583,0x0000,0x0000, 0x0584,0x0000,0x0000, 0x0585,0x0000,0x0000,
-0x0586,0x0000,0x0000, 0x0587,0x0000,0x0000, 0x0588,0x0000,0x0000,
-0x0589,0x0000,0x0000, 0x058A,0x0000,0x0000, 0x058B,0x0000,0x0000,
-0x058C,0x0000,0x0000, 0x058D,0x0000,0x0000, 0x058E,0x0000,0x0000,
-0x058F,0x0000,0x0000, 0x0590,0x0000,0x0000, 0x0591,0x0000,0x0000,
-0x0592,0x0000,0x0000, 0x0593,0x0000,0x0000, 0x0594,0x0000,0x0000,
-0x0595,0x0000,0x0000, 0x0596,0x0000,0x0000, 0x0597,0x0000,0x0000,
-0x0598,0x0000,0x0000, 0x0599,0x0000,0x0000, 0x059A,0x0000,0x0000,
-0x059B,0x0000,0x0000, 0x059C,0x0000,0x0000, 0x059D,0x0000,0x0000,
-0x059E,0x0000,0x0000, 0x059F,0x0000,0x0000, 0x05A0,0x0000,0x0000,
-0x05A1,0x0000,0x0000, 0x05A2,0x0000,0x0000, 0x05A3,0x0000,0x0000,
-0x05A4,0x0000,0x0000, 0x05A5,0x0000,0x0000, 0x05A6,0x0000,0x0000,
-0x05A7,0x0000,0x0000, 0x05A8,0x0000,0x0000, 0x05A9,0x0000,0x0000,
-0x05AA,0x0000,0x0000, 0x05AB,0x0000,0x0000, 0x05AC,0x0000,0x0000,
-0x05AD,0x0000,0x0000, 0x05AE,0x0000,0x0000, 0x05AF,0x0000,0x0000,
-0x05B0,0x0000,0x0000, 0x05B1,0x0000,0x0000, 0x05B2,0x0000,0x0000,
-0x05B3,0x0000,0x0000, 0x05B4,0x0000,0x0000, 0x05B5,0x0000,0x0000,
-0x05B6,0x0000,0x0000, 0x05B7,0x0000,0x0000, 0x05B8,0x0000,0x0000,
-0x05B9,0x0000,0x0000, 0x05BA,0x0000,0x0000, 0x05BB,0x0000,0x0000,
-0x05BC,0x0000,0x0000, 0x05BD,0x0000,0x0000, 0x05BE,0x0000,0x0000,
-0x05BF,0x0000,0x0000, 0x05C0,0x0000,0x0000, 0x05C1,0x0000,0x0000,
-0x05C2,0x0000,0x0000, 0x05C3,0x0000,0x0000, 0x05C4,0x0000,0x0000,
-0x05C5,0x0000,0x0000, 0x05C6,0x0000,0x0000, 0x05C7,0x0000,0x0000,
-0x05C8,0x0000,0x0000, 0x05C9,0x0000,0x0000, 0xFBC0,0xA3D1,0x0000,
-0xFBC0,0xA3D2,0x0000, 0xFBC0,0xA3D3,0x0000, 0xFBC0,0xA3D4,0x0000,
-0xFBC0,0xA3D5,0x0000, 0xFBC0,0xA3D6,0x0000, 0xFBC0,0xA3D7,0x0000,
-0xFBC0,0xA3D8,0x0000, 0xFBC0,0xA3D9,0x0000, 0xFBC0,0xA3DA,0x0000,
-0xFBC0,0xA3DB,0x0000, 0xFBC0,0xA3DC,0x0000, 0xFBC0,0xA3DD,0x0000,
-0xFBC0,0xA3DE,0x0000, 0xFBC0,0xA3DF,0x0000, 0xFBC0,0xA3E0,0x0000,
-0xFBC0,0xA3E1,0x0000, 0xFBC0,0xA3E2,0x0000, 0xFBC0,0xA3E3,0x0000,
-0xFBC0,0xA3E4,0x0000, 0xFBC0,0xA3E5,0x0000, 0xFBC0,0xA3E6,0x0000,
-0xFBC0,0xA3E7,0x0000, 0xFBC0,0xA3E8,0x0000, 0xFBC0,0xA3E9,0x0000,
-0xFBC0,0xA3EA,0x0000, 0xFBC0,0xA3EB,0x0000, 0xFBC0,0xA3EC,0x0000,
-0xFBC0,0xA3ED,0x0000, 0xFBC0,0xA3EE,0x0000, 0xFBC0,0xA3EF,0x0000,
-0xFBC0,0xA3F0,0x0000, 0xFBC0,0xA3F1,0x0000, 0xFBC0,0xA3F2,0x0000,
-0xFBC0,0xA3F3,0x0000, 0xFBC0,0xA3F4,0x0000, 0xFBC0,0xA3F5,0x0000,
-0xFBC0,0xA3F6,0x0000, 0xFBC0,0xA3F7,0x0000, 0xFBC0,0xA3F8,0x0000,
-0xFBC0,0xA3F9,0x0000, 0xFBC0,0xA3FA,0x0000, 0xFBC0,0xA3FB,0x0000,
-0xFBC0,0xA3FC,0x0000, 0xFBC0,0xA3FD,0x0000, 0xFBC0,0xA3FE,0x0000,
-0xFBC0,0xA3FF,0x0000 };
-
-uint16 page024data[]= { /* 2400 (5 weights per char) */
-0x05CA,0x0000,0x0000,0x0000,0x0000,
-0x05CB,0x0000,0x0000,0x0000,0x0000,
-0x05CC,0x0000,0x0000,0x0000,0x0000,
-0x05CD,0x0000,0x0000,0x0000,0x0000,
-0x05CE,0x0000,0x0000,0x0000,0x0000,
-0x05CF,0x0000,0x0000,0x0000,0x0000,
-0x05D0,0x0000,0x0000,0x0000,0x0000,
-0x05D1,0x0000,0x0000,0x0000,0x0000,
-0x05D2,0x0000,0x0000,0x0000,0x0000,
-0x05D3,0x0000,0x0000,0x0000,0x0000,
-0x05D4,0x0000,0x0000,0x0000,0x0000,
-0x05D5,0x0000,0x0000,0x0000,0x0000,
-0x05D6,0x0000,0x0000,0x0000,0x0000,
-0x05D7,0x0000,0x0000,0x0000,0x0000,
-0x05D8,0x0000,0x0000,0x0000,0x0000,
-0x05D9,0x0000,0x0000,0x0000,0x0000,
-0x05DA,0x0000,0x0000,0x0000,0x0000,
-0x05DB,0x0000,0x0000,0x0000,0x0000,
-0x05DC,0x0000,0x0000,0x0000,0x0000,
-0x05DD,0x0000,0x0000,0x0000,0x0000,
-0x05DE,0x0000,0x0000,0x0000,0x0000,
-0x05DF,0x0000,0x0000,0x0000,0x0000,
-0x05E0,0x0000,0x0000,0x0000,0x0000,
-0x05E1,0x0000,0x0000,0x0000,0x0000,
-0x05E2,0x0000,0x0000,0x0000,0x0000,
-0x05E3,0x0000,0x0000,0x0000,0x0000,
-0x05E4,0x0000,0x0000,0x0000,0x0000,
-0x05E5,0x0000,0x0000,0x0000,0x0000,
-0x05E6,0x0000,0x0000,0x0000,0x0000,
-0x05E7,0x0000,0x0000,0x0000,0x0000,
-0x05E8,0x0000,0x0000,0x0000,0x0000,
-0x05E9,0x0000,0x0000,0x0000,0x0000,
-0x05EA,0x0000,0x0000,0x0000,0x0000,
-0x05EB,0x0000,0x0000,0x0000,0x0000,
-0x05EC,0x0000,0x0000,0x0000,0x0000,
-0x05ED,0x0000,0x0000,0x0000,0x0000,
-0x05EE,0x0000,0x0000,0x0000,0x0000,
-0x05EF,0x0000,0x0000,0x0000,0x0000,
-0x05F0,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA427,0x0000,0x0000,0x0000,
-0xFBC0,0xA428,0x0000,0x0000,0x0000,
-0xFBC0,0xA429,0x0000,0x0000,0x0000,
-0xFBC0,0xA42A,0x0000,0x0000,0x0000,
-0xFBC0,0xA42B,0x0000,0x0000,0x0000,
-0xFBC0,0xA42C,0x0000,0x0000,0x0000,
-0xFBC0,0xA42D,0x0000,0x0000,0x0000,
-0xFBC0,0xA42E,0x0000,0x0000,0x0000,
-0xFBC0,0xA42F,0x0000,0x0000,0x0000,
-0xFBC0,0xA430,0x0000,0x0000,0x0000,
-0xFBC0,0xA431,0x0000,0x0000,0x0000,
-0xFBC0,0xA432,0x0000,0x0000,0x0000,
-0xFBC0,0xA433,0x0000,0x0000,0x0000,
-0xFBC0,0xA434,0x0000,0x0000,0x0000,
-0xFBC0,0xA435,0x0000,0x0000,0x0000,
-0xFBC0,0xA436,0x0000,0x0000,0x0000,
-0xFBC0,0xA437,0x0000,0x0000,0x0000,
-0xFBC0,0xA438,0x0000,0x0000,0x0000,
-0xFBC0,0xA439,0x0000,0x0000,0x0000,
-0xFBC0,0xA43A,0x0000,0x0000,0x0000,
-0xFBC0,0xA43B,0x0000,0x0000,0x0000,
-0xFBC0,0xA43C,0x0000,0x0000,0x0000,
-0xFBC0,0xA43D,0x0000,0x0000,0x0000,
-0xFBC0,0xA43E,0x0000,0x0000,0x0000,
-0xFBC0,0xA43F,0x0000,0x0000,0x0000,
-0x05F1,0x0000,0x0000,0x0000,0x0000,
-0x05F2,0x0000,0x0000,0x0000,0x0000,
-0x05F3,0x0000,0x0000,0x0000,0x0000,
-0x05F4,0x0000,0x0000,0x0000,0x0000,
-0x05F5,0x0000,0x0000,0x0000,0x0000,
-0x05F6,0x0000,0x0000,0x0000,0x0000,
-0x05F7,0x0000,0x0000,0x0000,0x0000,
-0x05F8,0x0000,0x0000,0x0000,0x0000,
-0x05F9,0x0000,0x0000,0x0000,0x0000,
-0x05FA,0x0000,0x0000,0x0000,0x0000,
-0x05FB,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xA44B,0x0000,0x0000,0x0000,
-0xFBC0,0xA44C,0x0000,0x0000,0x0000,
-0xFBC0,0xA44D,0x0000,0x0000,0x0000,
-0xFBC0,0xA44E,0x0000,0x0000,0x0000,
-0xFBC0,0xA44F,0x0000,0x0000,0x0000,
-0xFBC0,0xA450,0x0000,0x0000,0x0000,
-0xFBC0,0xA451,0x0000,0x0000,0x0000,
-0xFBC0,0xA452,0x0000,0x0000,0x0000,
-0xFBC0,0xA453,0x0000,0x0000,0x0000,
-0xFBC0,0xA454,0x0000,0x0000,0x0000,
-0xFBC0,0xA455,0x0000,0x0000,0x0000,
-0xFBC0,0xA456,0x0000,0x0000,0x0000,
-0xFBC0,0xA457,0x0000,0x0000,0x0000,
-0xFBC0,0xA458,0x0000,0x0000,0x0000,
-0xFBC0,0xA459,0x0000,0x0000,0x0000,
-0xFBC0,0xA45A,0x0000,0x0000,0x0000,
-0xFBC0,0xA45B,0x0000,0x0000,0x0000,
-0xFBC0,0xA45C,0x0000,0x0000,0x0000,
-0xFBC0,0xA45D,0x0000,0x0000,0x0000,
-0xFBC0,0xA45E,0x0000,0x0000,0x0000,
-0xFBC0,0xA45F,0x0000,0x0000,0x0000,
-0x0E2A,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2A,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2B,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2C,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2D,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2E,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2F,0x0000,0x0000,0x0000,
-0x0E2A,0x0E30,0x0000,0x0000,0x0000,
-0x0E2A,0x0E31,0x0000,0x0000,0x0000,
-0x0E2A,0x0E32,0x0000,0x0000,0x0000,
-0x0E2B,0x0E29,0x0000,0x0000,0x0000,
-0x0288,0x0E2A,0x0289,0x0000,0x0000,
-0x0288,0x0E2B,0x0289,0x0000,0x0000,
-0x0288,0x0E2C,0x0289,0x0000,0x0000,
-0x0288,0x0E2D,0x0289,0x0000,0x0000,
-0x0288,0x0E2E,0x0289,0x0000,0x0000,
-0x0288,0x0E2F,0x0289,0x0000,0x0000,
-0x0288,0x0E30,0x0289,0x0000,0x0000,
-0x0288,0x0E31,0x0289,0x0000,0x0000,
-0x0288,0x0E32,0x0289,0x0000,0x0000,
-0x0288,0x0E2A,0x0E29,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2A,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2B,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2C,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2D,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2E,0x0289,0x0000,
-0x0288,0x0E2A,0x0E2F,0x0289,0x0000,
-0x0288,0x0E2A,0x0E30,0x0289,0x0000,
-0x0288,0x0E2A,0x0E31,0x0289,0x0000,
-0x0288,0x0E2A,0x0E32,0x0289,0x0000,
-0x0288,0x0E2B,0x0E29,0x0289,0x0000,
-0x0E2A,0x025D,0x0000,0x0000,0x0000,
-0x0E2B,0x025D,0x0000,0x0000,0x0000,
-0x0E2C,0x025D,0x0000,0x0000,0x0000,
-0x0E2D,0x025D,0x0000,0x0000,0x0000,
-0x0E2E,0x025D,0x0000,0x0000,0x0000,
-0x0E2F,0x025D,0x0000,0x0000,0x0000,
-0x0E30,0x025D,0x0000,0x0000,0x0000,
-0x0E31,0x025D,0x0000,0x0000,0x0000,
-0x0E32,0x025D,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2A,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2B,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2C,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2D,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2E,0x025D,0x0000,0x0000,
-0x0E2A,0x0E2F,0x025D,0x0000,0x0000,
-0x0E2A,0x0E30,0x025D,0x0000,0x0000,
-0x0E2A,0x0E31,0x025D,0x0000,0x0000,
-0x0E2A,0x0E32,0x025D,0x0000,0x0000,
-0x0E2B,0x0E29,0x025D,0x0000,0x0000,
-0x0288,0x0E33,0x0289,0x0000,0x0000,
-0x0288,0x0E4A,0x0289,0x0000,0x0000,
-0x0288,0x0E60,0x0289,0x0000,0x0000,
-0x0288,0x0E6D,0x0289,0x0000,0x0000,
-0x0288,0x0E8B,0x0289,0x0000,0x0000,
-0x0288,0x0EB9,0x0289,0x0000,0x0000,
-0x0288,0x0EC1,0x0289,0x0000,0x0000,
-0x0288,0x0EE1,0x0289,0x0000,0x0000,
-0x0288,0x0EFB,0x0289,0x0000,0x0000,
-0x0288,0x0F10,0x0289,0x0000,0x0000,
-0x0288,0x0F21,0x0289,0x0000,0x0000,
-0x0288,0x0F2E,0x0289,0x0000,0x0000,
-0x0288,0x0F5B,0x0289,0x0000,0x0000,
-0x0288,0x0F64,0x0289,0x0000,0x0000,
-0x0288,0x0F82,0x0289,0x0000,0x0000,
-0x0288,0x0FA7,0x0289,0x0000,0x0000,
-0x0288,0x0FB4,0x0289,0x0000,0x0000,
-0x0288,0x0FC0,0x0289,0x0000,0x0000,
-0x0288,0x0FEA,0x0289,0x0000,0x0000,
-0x0288,0x1002,0x0289,0x0000,0x0000,
-0x0288,0x101F,0x0289,0x0000,0x0000,
-0x0288,0x1044,0x0289,0x0000,0x0000,
-0x0288,0x1051,0x0289,0x0000,0x0000,
-0x0288,0x105A,0x0289,0x0000,0x0000,
-0x0288,0x105E,0x0289,0x0000,0x0000,
-0x0288,0x106A,0x0289,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000,0x0000,
-0x0E4A,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000,0x0000,
-0x0EB9,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0F10,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0000,0x0000,0x0000,0x0000,
-0x0FB4,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000,0x0000,
-0x0FEA,0x0000,0x0000,0x0000,0x0000,
-0x1002,0x0000,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000,0x0000,
-0x1051,0x0000,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000,0x0000,
-0x105E,0x0000,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000,0x0000,
-0x0E33,0x0000,0x0000,0x0000,0x0000,
-0x0E4A,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0000,0x0000,0x0000,0x0000,
-0x0EB9,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0000,0x0000,0x0000,0x0000,
-0x0F10,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0000,0x0000,0x0000,0x0000,
-0x0F82,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0000,0x0000,0x0000,0x0000,
-0x0FB4,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0000,0x0000,0x0000,0x0000,
-0x0FEA,0x0000,0x0000,0x0000,0x0000,
-0x1002,0x0000,0x0000,0x0000,0x0000,
-0x101F,0x0000,0x0000,0x0000,0x0000,
-0x1044,0x0000,0x0000,0x0000,0x0000,
-0x1051,0x0000,0x0000,0x0000,0x0000,
-0x105A,0x0000,0x0000,0x0000,0x0000,
-0x105E,0x0000,0x0000,0x0000,0x0000,
-0x106A,0x0000,0x0000,0x0000,0x0000,
-0x0E29,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2A,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2B,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2C,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2D,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2E,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2F,0x0000,0x0000,0x0000,
-0x0E2A,0x0E30,0x0000,0x0000,0x0000,
-0x0E2A,0x0E31,0x0000,0x0000,0x0000,
-0x0E2A,0x0E32,0x0000,0x0000,0x0000,
-0x0E2B,0x0E29,0x0000,0x0000,0x0000,
-0x0E2A,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0x0000,0x0000,0x0000,
-0x0E29,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page025data[]= { /* 2500 (2 weights per char) */
-0x05FC,0x0000, 0x05FD,0x0000, 0x05FE,0x0000, 0x05FF,0x0000,
-0x0600,0x0000, 0x0601,0x0000, 0x0602,0x0000, 0x0603,0x0000,
-0x0604,0x0000, 0x0605,0x0000, 0x0606,0x0000, 0x0607,0x0000,
-0x0608,0x0000, 0x0609,0x0000, 0x060A,0x0000, 0x060B,0x0000,
-0x060C,0x0000, 0x060D,0x0000, 0x060E,0x0000, 0x060F,0x0000,
-0x0610,0x0000, 0x0611,0x0000, 0x0612,0x0000, 0x0613,0x0000,
-0x0614,0x0000, 0x0615,0x0000, 0x0616,0x0000, 0x0617,0x0000,
-0x0618,0x0000, 0x0619,0x0000, 0x061A,0x0000, 0x061B,0x0000,
-0x061C,0x0000, 0x061D,0x0000, 0x061E,0x0000, 0x061F,0x0000,
-0x0620,0x0000, 0x0621,0x0000, 0x0622,0x0000, 0x0623,0x0000,
-0x0624,0x0000, 0x0625,0x0000, 0x0626,0x0000, 0x0627,0x0000,
-0x0628,0x0000, 0x0629,0x0000, 0x062A,0x0000, 0x062B,0x0000,
-0x062C,0x0000, 0x062D,0x0000, 0x062E,0x0000, 0x062F,0x0000,
-0x0630,0x0000, 0x0631,0x0000, 0x0632,0x0000, 0x0633,0x0000,
-0x0634,0x0000, 0x0635,0x0000, 0x0636,0x0000, 0x0637,0x0000,
-0x0638,0x0000, 0x0639,0x0000, 0x063A,0x0000, 0x063B,0x0000,
-0x063C,0x0000, 0x063D,0x0000, 0x063E,0x0000, 0x063F,0x0000,
-0x0640,0x0000, 0x0641,0x0000, 0x0642,0x0000, 0x0643,0x0000,
-0x0644,0x0000, 0x0645,0x0000, 0x0646,0x0000, 0x0647,0x0000,
-0x0648,0x0000, 0x0649,0x0000, 0x064A,0x0000, 0x064B,0x0000,
-0x064C,0x0000, 0x064D,0x0000, 0x064E,0x0000, 0x064F,0x0000,
-0x0650,0x0000, 0x0651,0x0000, 0x0652,0x0000, 0x0653,0x0000,
-0x0654,0x0000, 0x0655,0x0000, 0x0656,0x0000, 0x0657,0x0000,
-0x0658,0x0000, 0x0659,0x0000, 0x065A,0x0000, 0x065B,0x0000,
-0x065C,0x0000, 0x065D,0x0000, 0x065E,0x0000, 0x065F,0x0000,
-0x0660,0x0000, 0x0661,0x0000, 0x0662,0x0000, 0x0663,0x0000,
-0x0664,0x0000, 0x0665,0x0000, 0x0666,0x0000, 0x0667,0x0000,
-0x0668,0x0000, 0x0669,0x0000, 0x066A,0x0000, 0x066B,0x0000,
-0x066C,0x0000, 0x066D,0x0000, 0x066E,0x0000, 0x066F,0x0000,
-0x0670,0x0000, 0x0671,0x0000, 0x0672,0x0000, 0x0673,0x0000,
-0x0674,0x0000, 0x0675,0x0000, 0x0676,0x0000, 0x0677,0x0000,
-0x0678,0x0000, 0x0679,0x0000, 0x067A,0x0000, 0x067B,0x0000,
-0x067C,0x0000, 0x067D,0x0000, 0x067E,0x0000, 0x067F,0x0000,
-0x0680,0x0000, 0x0681,0x0000, 0x0682,0x0000, 0x0683,0x0000,
-0x0684,0x0000, 0x0685,0x0000, 0x0686,0x0000, 0x0687,0x0000,
-0x0688,0x0000, 0x0689,0x0000, 0x068A,0x0000, 0x068B,0x0000,
-0x068C,0x0000, 0x068D,0x0000, 0x068E,0x0000, 0x068F,0x0000,
-0x0690,0x0000, 0x0691,0x0000, 0x0692,0x0000, 0x0693,0x0000,
-0x0694,0x0000, 0x0695,0x0000, 0x0696,0x0000, 0x0697,0x0000,
-0x0698,0x0000, 0x0699,0x0000, 0x069A,0x0000, 0x069B,0x0000,
-0x069C,0x0000, 0x069D,0x0000, 0x069E,0x0000, 0x069F,0x0000,
-0x06A0,0x0000, 0x06A1,0x0000, 0x06A2,0x0000, 0x06A3,0x0000,
-0x06A4,0x0000, 0x06A5,0x0000, 0x06A6,0x0000, 0x06A7,0x0000,
-0x06A8,0x0000, 0x06A9,0x0000, 0x06AA,0x0000, 0x06AB,0x0000,
-0x06AC,0x0000, 0x06AD,0x0000, 0x06AE,0x0000, 0x06AF,0x0000,
-0x06B0,0x0000, 0x06B1,0x0000, 0x06B2,0x0000, 0x06B3,0x0000,
-0x06B4,0x0000, 0x06B5,0x0000, 0x06B6,0x0000, 0x06B7,0x0000,
-0x06B8,0x0000, 0x06B9,0x0000, 0x06BA,0x0000, 0x06BB,0x0000,
-0x06BC,0x0000, 0x06BD,0x0000, 0x06BE,0x0000, 0x06BF,0x0000,
-0x06C0,0x0000, 0x06C1,0x0000, 0x06C2,0x0000, 0x06C3,0x0000,
-0x06C4,0x0000, 0x06C5,0x0000, 0x06C6,0x0000, 0x06C7,0x0000,
-0x06C8,0x0000, 0x06C9,0x0000, 0x06CA,0x0000, 0x06CB,0x0000,
-0x06CC,0x0000, 0x06CD,0x0000, 0x06CE,0x0000, 0x06CF,0x0000,
-0x06D0,0x0000, 0x06D1,0x0000, 0x06D2,0x0000, 0x06D3,0x0000,
-0x06D4,0x0000, 0x06D5,0x0000, 0x06D6,0x0000, 0x06D7,0x0000,
-0x06D8,0x0000, 0x06D9,0x0000, 0x06DA,0x0000, 0x06DB,0x0000,
-0x06DC,0x0000, 0x06DD,0x0000, 0x06DE,0x0000, 0x06DF,0x0000,
-0x06E0,0x0000, 0x06E1,0x0000, 0x06E2,0x0000, 0x06E3,0x0000,
-0x06E4,0x0000, 0x06E5,0x0000, 0x06E6,0x0000, 0x06E7,0x0000,
-0x06E8,0x0000, 0x06E9,0x0000, 0x06EA,0x0000, 0x06EB,0x0000,
-0x06EC,0x0000, 0x06ED,0x0000, 0x06EE,0x0000, 0x06EF,0x0000,
-0x06F0,0x0000, 0x06F1,0x0000, 0x06F2,0x0000, 0x06F3,0x0000,
-0x06F4,0x0000, 0x06F5,0x0000, 0x06F6,0x0000, 0x06F7,0x0000,
-0x06F8,0x0000, 0x06F9,0x0000, 0x06FA,0x0000, 0x06FB,0x0000
-};
-
-uint16 page026data[]= { /* 2600 (3 weights per char) */
-0x06FC,0x0000,0x0000, 0x06FD,0x0000,0x0000, 0x06FE,0x0000,0x0000,
-0x06FF,0x0000,0x0000, 0x0700,0x0000,0x0000, 0x0701,0x0000,0x0000,
-0x0702,0x0000,0x0000, 0x0703,0x0000,0x0000, 0x0704,0x0000,0x0000,
-0x0705,0x0000,0x0000, 0x0706,0x0000,0x0000, 0x0707,0x0000,0x0000,
-0x0708,0x0000,0x0000, 0x0709,0x0000,0x0000, 0x070A,0x0000,0x0000,
-0x070B,0x0000,0x0000, 0x070C,0x0000,0x0000, 0x070D,0x0000,0x0000,
-0x070E,0x0000,0x0000, 0x070F,0x0000,0x0000, 0x0710,0x0000,0x0000,
-0x0711,0x0000,0x0000, 0x0712,0x0000,0x0000, 0x0713,0x0000,0x0000,
-0xFBC0,0xA618,0x0000, 0x0714,0x0000,0x0000, 0x0715,0x0000,0x0000,
-0x0716,0x0000,0x0000, 0x0717,0x0000,0x0000, 0x0718,0x0000,0x0000,
-0x0719,0x0000,0x0000, 0x071A,0x0000,0x0000, 0x071B,0x0000,0x0000,
-0x071C,0x0000,0x0000, 0x071D,0x0000,0x0000, 0x071E,0x0000,0x0000,
-0x071F,0x0000,0x0000, 0x0720,0x0000,0x0000, 0x0721,0x0000,0x0000,
-0x0722,0x0000,0x0000, 0x0723,0x0000,0x0000, 0x0724,0x0000,0x0000,
-0x0725,0x0000,0x0000, 0x0726,0x0000,0x0000, 0x0727,0x0000,0x0000,
-0x0728,0x0000,0x0000, 0x0729,0x0000,0x0000, 0x072A,0x0000,0x0000,
-0x0B2F,0x0000,0x0000, 0x0B30,0x0000,0x0000, 0x0B31,0x0000,0x0000,
-0x0B32,0x0000,0x0000, 0x0B33,0x0000,0x0000, 0x0B34,0x0000,0x0000,
-0x0B35,0x0000,0x0000, 0x0B36,0x0000,0x0000, 0x072B,0x0000,0x0000,
-0x072C,0x0000,0x0000, 0x072D,0x0000,0x0000, 0x072E,0x0000,0x0000,
-0x072F,0x0000,0x0000, 0x0730,0x0000,0x0000, 0x0731,0x0000,0x0000,
-0x0732,0x0000,0x0000, 0x0733,0x0000,0x0000, 0x0734,0x0000,0x0000,
-0x0735,0x0000,0x0000, 0x0736,0x0000,0x0000, 0x0737,0x0000,0x0000,
-0x0738,0x0000,0x0000, 0x0739,0x0000,0x0000, 0x073A,0x0000,0x0000,
-0x073B,0x0000,0x0000, 0x073C,0x0000,0x0000, 0x073D,0x0000,0x0000,
-0x073E,0x0000,0x0000, 0x073F,0x0000,0x0000, 0x0740,0x0000,0x0000,
-0x0741,0x0000,0x0000, 0x0742,0x0000,0x0000, 0x0743,0x0000,0x0000,
-0x0744,0x0000,0x0000, 0x0745,0x0000,0x0000, 0x0746,0x0000,0x0000,
-0x0747,0x0000,0x0000, 0x0748,0x0000,0x0000, 0x0749,0x0000,0x0000,
-0x074A,0x0000,0x0000, 0x074B,0x0000,0x0000, 0x074C,0x0000,0x0000,
-0x074D,0x0000,0x0000, 0x074E,0x0000,0x0000, 0x074F,0x0000,0x0000,
-0x0750,0x0000,0x0000, 0x0751,0x0000,0x0000, 0x0752,0x0000,0x0000,
-0x0753,0x0000,0x0000, 0x0754,0x0000,0x0000, 0x0755,0x0000,0x0000,
-0x0756,0x0000,0x0000, 0x0757,0x0000,0x0000, 0x0758,0x0000,0x0000,
-0x0759,0x0000,0x0000, 0x075A,0x0000,0x0000, 0x075B,0x0000,0x0000,
-0x075C,0x0000,0x0000, 0x075D,0x0000,0x0000, 0x075E,0x0000,0x0000,
-0x075F,0x0000,0x0000, 0x0D2B,0x0000,0x0000, 0x0D2C,0x0000,0x0000,
-0x0D2D,0x0000,0x0000, 0x0760,0x0000,0x0000, 0x0761,0x0000,0x0000,
-0x0762,0x0000,0x0000, 0x0763,0x0000,0x0000, 0x0764,0x0000,0x0000,
-0x0765,0x0000,0x0000, 0x0766,0x0000,0x0000, 0x0767,0x0000,0x0000,
-0x0768,0x0000,0x0000, 0x0769,0x0000,0x0000, 0x076A,0x0000,0x0000,
-0x076B,0x0000,0x0000, 0x076C,0x0000,0x0000, 0x076D,0x0000,0x0000,
-0xFBC0,0xA67E,0x0000, 0xFBC0,0xA67F,0x0000, 0x076E,0x0000,0x0000,
-0x076F,0x0000,0x0000, 0x0770,0x0000,0x0000, 0x0771,0x0000,0x0000,
-0x0772,0x0000,0x0000, 0x0773,0x0000,0x0000, 0x0774,0x0000,0x0000,
-0x0775,0x0000,0x0000, 0x0776,0x0000,0x0000, 0x0777,0x0000,0x0000,
-0x0B29,0x0000,0x0000, 0x0B2A,0x0000,0x0000, 0x0B2B,0x0000,0x0000,
-0x0B2C,0x0000,0x0000, 0x0B2D,0x0000,0x0000, 0x0B2E,0x0000,0x0000,
-0x0778,0x0000,0x0000, 0x0779,0x0000,0x0000, 0xFBC0,0xA692,0x0000,
-0xFBC0,0xA693,0x0000, 0xFBC0,0xA694,0x0000, 0xFBC0,0xA695,0x0000,
-0xFBC0,0xA696,0x0000, 0xFBC0,0xA697,0x0000, 0xFBC0,0xA698,0x0000,
-0xFBC0,0xA699,0x0000, 0xFBC0,0xA69A,0x0000, 0xFBC0,0xA69B,0x0000,
-0xFBC0,0xA69C,0x0000, 0xFBC0,0xA69D,0x0000, 0xFBC0,0xA69E,0x0000,
-0xFBC0,0xA69F,0x0000, 0x077A,0x0000,0x0000, 0x077B,0x0000,0x0000,
-0xFBC0,0xA6A2,0x0000, 0xFBC0,0xA6A3,0x0000, 0xFBC0,0xA6A4,0x0000,
-0xFBC0,0xA6A5,0x0000, 0xFBC0,0xA6A6,0x0000, 0xFBC0,0xA6A7,0x0000,
-0xFBC0,0xA6A8,0x0000, 0xFBC0,0xA6A9,0x0000, 0xFBC0,0xA6AA,0x0000,
-0xFBC0,0xA6AB,0x0000, 0xFBC0,0xA6AC,0x0000, 0xFBC0,0xA6AD,0x0000,
-0xFBC0,0xA6AE,0x0000, 0xFBC0,0xA6AF,0x0000, 0xFBC0,0xA6B0,0x0000,
-0xFBC0,0xA6B1,0x0000, 0xFBC0,0xA6B2,0x0000, 0xFBC0,0xA6B3,0x0000,
-0xFBC0,0xA6B4,0x0000, 0xFBC0,0xA6B5,0x0000, 0xFBC0,0xA6B6,0x0000,
-0xFBC0,0xA6B7,0x0000, 0xFBC0,0xA6B8,0x0000, 0xFBC0,0xA6B9,0x0000,
-0xFBC0,0xA6BA,0x0000, 0xFBC0,0xA6BB,0x0000, 0xFBC0,0xA6BC,0x0000,
-0xFBC0,0xA6BD,0x0000, 0xFBC0,0xA6BE,0x0000, 0xFBC0,0xA6BF,0x0000,
-0xFBC0,0xA6C0,0x0000, 0xFBC0,0xA6C1,0x0000, 0xFBC0,0xA6C2,0x0000,
-0xFBC0,0xA6C3,0x0000, 0xFBC0,0xA6C4,0x0000, 0xFBC0,0xA6C5,0x0000,
-0xFBC0,0xA6C6,0x0000, 0xFBC0,0xA6C7,0x0000, 0xFBC0,0xA6C8,0x0000,
-0xFBC0,0xA6C9,0x0000, 0xFBC0,0xA6CA,0x0000, 0xFBC0,0xA6CB,0x0000,
-0xFBC0,0xA6CC,0x0000, 0xFBC0,0xA6CD,0x0000, 0xFBC0,0xA6CE,0x0000,
-0xFBC0,0xA6CF,0x0000, 0xFBC0,0xA6D0,0x0000, 0xFBC0,0xA6D1,0x0000,
-0xFBC0,0xA6D2,0x0000, 0xFBC0,0xA6D3,0x0000, 0xFBC0,0xA6D4,0x0000,
-0xFBC0,0xA6D5,0x0000, 0xFBC0,0xA6D6,0x0000, 0xFBC0,0xA6D7,0x0000,
-0xFBC0,0xA6D8,0x0000, 0xFBC0,0xA6D9,0x0000, 0xFBC0,0xA6DA,0x0000,
-0xFBC0,0xA6DB,0x0000, 0xFBC0,0xA6DC,0x0000, 0xFBC0,0xA6DD,0x0000,
-0xFBC0,0xA6DE,0x0000, 0xFBC0,0xA6DF,0x0000, 0xFBC0,0xA6E0,0x0000,
-0xFBC0,0xA6E1,0x0000, 0xFBC0,0xA6E2,0x0000, 0xFBC0,0xA6E3,0x0000,
-0xFBC0,0xA6E4,0x0000, 0xFBC0,0xA6E5,0x0000, 0xFBC0,0xA6E6,0x0000,
-0xFBC0,0xA6E7,0x0000, 0xFBC0,0xA6E8,0x0000, 0xFBC0,0xA6E9,0x0000,
-0xFBC0,0xA6EA,0x0000, 0xFBC0,0xA6EB,0x0000, 0xFBC0,0xA6EC,0x0000,
-0xFBC0,0xA6ED,0x0000, 0xFBC0,0xA6EE,0x0000, 0xFBC0,0xA6EF,0x0000,
-0xFBC0,0xA6F0,0x0000, 0xFBC0,0xA6F1,0x0000, 0xFBC0,0xA6F2,0x0000,
-0xFBC0,0xA6F3,0x0000, 0xFBC0,0xA6F4,0x0000, 0xFBC0,0xA6F5,0x0000,
-0xFBC0,0xA6F6,0x0000, 0xFBC0,0xA6F7,0x0000, 0xFBC0,0xA6F8,0x0000,
-0xFBC0,0xA6F9,0x0000, 0xFBC0,0xA6FA,0x0000, 0xFBC0,0xA6FB,0x0000,
-0xFBC0,0xA6FC,0x0000, 0xFBC0,0xA6FD,0x0000, 0xFBC0,0xA6FE,0x0000,
-0xFBC0,0xA6FF,0x0000 };
-
-uint16 page027data[]= { /* 2700 (3 weights per char) */
-0xFBC0,0xA700,0x0000, 0x077C,0x0000,0x0000, 0x077D,0x0000,0x0000,
-0x077E,0x0000,0x0000, 0x077F,0x0000,0x0000, 0xFBC0,0xA705,0x0000,
-0x0780,0x0000,0x0000, 0x0781,0x0000,0x0000, 0x0782,0x0000,0x0000,
-0x0783,0x0000,0x0000, 0xFBC0,0xA70A,0x0000, 0xFBC0,0xA70B,0x0000,
-0x0784,0x0000,0x0000, 0x0785,0x0000,0x0000, 0x0786,0x0000,0x0000,
-0x0787,0x0000,0x0000, 0x0788,0x0000,0x0000, 0x0789,0x0000,0x0000,
-0x078A,0x0000,0x0000, 0x078B,0x0000,0x0000, 0x078C,0x0000,0x0000,
-0x078D,0x0000,0x0000, 0x078E,0x0000,0x0000, 0x078F,0x0000,0x0000,
-0x0790,0x0000,0x0000, 0x0791,0x0000,0x0000, 0x0792,0x0000,0x0000,
-0x0793,0x0000,0x0000, 0x0794,0x0000,0x0000, 0x0795,0x0000,0x0000,
-0x0796,0x0000,0x0000, 0x0797,0x0000,0x0000, 0x0798,0x0000,0x0000,
-0x0799,0x0000,0x0000, 0x079A,0x0000,0x0000, 0x079B,0x0000,0x0000,
-0x079C,0x0000,0x0000, 0x079D,0x0000,0x0000, 0x079E,0x0000,0x0000,
-0x079F,0x0000,0x0000, 0xFBC0,0xA728,0x0000, 0x07A0,0x0000,0x0000,
-0x07A1,0x0000,0x0000, 0x07A2,0x0000,0x0000, 0x07A3,0x0000,0x0000,
-0x07A4,0x0000,0x0000, 0x07A5,0x0000,0x0000, 0x07A6,0x0000,0x0000,
-0x07A7,0x0000,0x0000, 0x07A8,0x0000,0x0000, 0x07A9,0x0000,0x0000,
-0x07AA,0x0000,0x0000, 0x07AB,0x0000,0x0000, 0x07AC,0x0000,0x0000,
-0x07AD,0x0000,0x0000, 0x07AE,0x0000,0x0000, 0x07AF,0x0000,0x0000,
-0x07B0,0x0000,0x0000, 0x07B1,0x0000,0x0000, 0x07B2,0x0000,0x0000,
-0x07B3,0x0000,0x0000, 0x07B4,0x0000,0x0000, 0x07B5,0x0000,0x0000,
-0x07B6,0x0000,0x0000, 0x07B7,0x0000,0x0000, 0x07B8,0x0000,0x0000,
-0x07B9,0x0000,0x0000, 0x07BA,0x0000,0x0000, 0x07BB,0x0000,0x0000,
-0x07BC,0x0000,0x0000, 0x07BD,0x0000,0x0000, 0x07BE,0x0000,0x0000,
-0x07BF,0x0000,0x0000, 0x07C0,0x0000,0x0000, 0x07C1,0x0000,0x0000,
-0x07C2,0x0000,0x0000, 0xFBC0,0xA74C,0x0000, 0x07C3,0x0000,0x0000,
-0xFBC0,0xA74E,0x0000, 0x07C4,0x0000,0x0000, 0x07C5,0x0000,0x0000,
-0x07C6,0x0000,0x0000, 0x07C7,0x0000,0x0000, 0xFBC0,0xA753,0x0000,
-0xFBC0,0xA754,0x0000, 0xFBC0,0xA755,0x0000, 0x07C8,0x0000,0x0000,
-0xFBC0,0xA757,0x0000, 0x07C9,0x0000,0x0000, 0x07CA,0x0000,0x0000,
-0x07CB,0x0000,0x0000, 0x07CC,0x0000,0x0000, 0x07CD,0x0000,0x0000,
-0x07CE,0x0000,0x0000, 0x07CF,0x0000,0x0000, 0xFBC0,0xA75F,0x0000,
-0xFBC0,0xA760,0x0000, 0x07D0,0x0000,0x0000, 0x07D1,0x0000,0x0000,
-0x07D2,0x0000,0x0000, 0x07D3,0x0000,0x0000, 0x07D4,0x0000,0x0000,
-0x07D5,0x0000,0x0000, 0x07D6,0x0000,0x0000, 0x07D7,0x0000,0x0000,
-0x07D8,0x0000,0x0000, 0x07D9,0x0000,0x0000, 0x07DA,0x0000,0x0000,
-0x07DB,0x0000,0x0000, 0x07DC,0x0000,0x0000, 0x07DD,0x0000,0x0000,
-0x07DE,0x0000,0x0000, 0x07DF,0x0000,0x0000, 0x07E0,0x0000,0x0000,
-0x07E1,0x0000,0x0000, 0x07E2,0x0000,0x0000, 0x07E3,0x0000,0x0000,
-0x07E4,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000,
-0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000,
-0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000,
-0x0E32,0x0000,0x0000, 0x0E2A,0x0E29,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x0E2A,0x0E29,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0E2A,0x0E29,0x0000, 0x07E5,0x0000,0x0000, 0xFBC0,0xA795,0x0000,
-0xFBC0,0xA796,0x0000, 0xFBC0,0xA797,0x0000, 0x07E6,0x0000,0x0000,
-0x07E7,0x0000,0x0000, 0x07E8,0x0000,0x0000, 0x07E9,0x0000,0x0000,
-0x07EA,0x0000,0x0000, 0x07EB,0x0000,0x0000, 0x07EC,0x0000,0x0000,
-0x07ED,0x0000,0x0000, 0x07EE,0x0000,0x0000, 0x07EF,0x0000,0x0000,
-0x07F0,0x0000,0x0000, 0x07F1,0x0000,0x0000, 0x07F2,0x0000,0x0000,
-0x07F3,0x0000,0x0000, 0x07F4,0x0000,0x0000, 0x07F5,0x0000,0x0000,
-0x07F6,0x0000,0x0000, 0x07F7,0x0000,0x0000, 0x07F8,0x0000,0x0000,
-0x07F9,0x0000,0x0000, 0x07FA,0x0000,0x0000, 0x07FB,0x0000,0x0000,
-0x07FC,0x0000,0x0000, 0x07FD,0x0000,0x0000, 0xFBC0,0xA7B0,0x0000,
-0x07FE,0x0000,0x0000, 0x07FF,0x0000,0x0000, 0x0800,0x0000,0x0000,
-0x0801,0x0000,0x0000, 0x0802,0x0000,0x0000, 0x0803,0x0000,0x0000,
-0x0804,0x0000,0x0000, 0x0805,0x0000,0x0000, 0x0806,0x0000,0x0000,
-0x0807,0x0000,0x0000, 0x0808,0x0000,0x0000, 0x0809,0x0000,0x0000,
-0x080A,0x0000,0x0000, 0x080B,0x0000,0x0000, 0xFBC0,0xA7BF,0x0000,
-0xFBC0,0xA7C0,0x0000, 0xFBC0,0xA7C1,0x0000, 0xFBC0,0xA7C2,0x0000,
-0xFBC0,0xA7C3,0x0000, 0xFBC0,0xA7C4,0x0000, 0xFBC0,0xA7C5,0x0000,
-0xFBC0,0xA7C6,0x0000, 0xFBC0,0xA7C7,0x0000, 0xFBC0,0xA7C8,0x0000,
-0xFBC0,0xA7C9,0x0000, 0xFBC0,0xA7CA,0x0000, 0xFBC0,0xA7CB,0x0000,
-0xFBC0,0xA7CC,0x0000, 0xFBC0,0xA7CD,0x0000, 0xFBC0,0xA7CE,0x0000,
-0xFBC0,0xA7CF,0x0000, 0x080C,0x0000,0x0000, 0x080D,0x0000,0x0000,
-0x080E,0x0000,0x0000, 0x080F,0x0000,0x0000, 0x0810,0x0000,0x0000,
-0x0811,0x0000,0x0000, 0x0812,0x0000,0x0000, 0x0813,0x0000,0x0000,
-0x0814,0x0000,0x0000, 0x0815,0x0000,0x0000, 0x0816,0x0000,0x0000,
-0x0817,0x0000,0x0000, 0x0818,0x0000,0x0000, 0x0819,0x0000,0x0000,
-0x081A,0x0000,0x0000, 0x081B,0x0000,0x0000, 0x081C,0x0000,0x0000,
-0x081D,0x0000,0x0000, 0x081E,0x0000,0x0000, 0x081F,0x0000,0x0000,
-0x0820,0x0000,0x0000, 0x0821,0x0000,0x0000, 0x0822,0x0000,0x0000,
-0x0823,0x0000,0x0000, 0x0824,0x0000,0x0000, 0x0825,0x0000,0x0000,
-0x0826,0x0000,0x0000, 0x0827,0x0000,0x0000, 0xFBC0,0xA7EC,0x0000,
-0xFBC0,0xA7ED,0x0000, 0xFBC0,0xA7EE,0x0000, 0xFBC0,0xA7EF,0x0000,
-0x0828,0x0000,0x0000, 0x0829,0x0000,0x0000, 0x082A,0x0000,0x0000,
-0x082B,0x0000,0x0000, 0x082C,0x0000,0x0000, 0x082D,0x0000,0x0000,
-0x082E,0x0000,0x0000, 0x082F,0x0000,0x0000, 0x0830,0x0000,0x0000,
-0x0831,0x0000,0x0000, 0x0832,0x0000,0x0000, 0x0833,0x0000,0x0000,
-0x0834,0x0000,0x0000, 0x0835,0x0000,0x0000, 0x0836,0x0000,0x0000,
-0x0837,0x0000,0x0000 };
-
-uint16 page028data[]= { /* 2800 (2 weights per char) */
-0x0A29,0x0000, 0x0A2A,0x0000, 0x0A2B,0x0000, 0x0A2C,0x0000,
-0x0A2D,0x0000, 0x0A2E,0x0000, 0x0A2F,0x0000, 0x0A30,0x0000,
-0x0A31,0x0000, 0x0A32,0x0000, 0x0A33,0x0000, 0x0A34,0x0000,
-0x0A35,0x0000, 0x0A36,0x0000, 0x0A37,0x0000, 0x0A38,0x0000,
-0x0A39,0x0000, 0x0A3A,0x0000, 0x0A3B,0x0000, 0x0A3C,0x0000,
-0x0A3D,0x0000, 0x0A3E,0x0000, 0x0A3F,0x0000, 0x0A40,0x0000,
-0x0A41,0x0000, 0x0A42,0x0000, 0x0A43,0x0000, 0x0A44,0x0000,
-0x0A45,0x0000, 0x0A46,0x0000, 0x0A47,0x0000, 0x0A48,0x0000,
-0x0A49,0x0000, 0x0A4A,0x0000, 0x0A4B,0x0000, 0x0A4C,0x0000,
-0x0A4D,0x0000, 0x0A4E,0x0000, 0x0A4F,0x0000, 0x0A50,0x0000,
-0x0A51,0x0000, 0x0A52,0x0000, 0x0A53,0x0000, 0x0A54,0x0000,
-0x0A55,0x0000, 0x0A56,0x0000, 0x0A57,0x0000, 0x0A58,0x0000,
-0x0A59,0x0000, 0x0A5A,0x0000, 0x0A5B,0x0000, 0x0A5C,0x0000,
-0x0A5D,0x0000, 0x0A5E,0x0000, 0x0A5F,0x0000, 0x0A60,0x0000,
-0x0A61,0x0000, 0x0A62,0x0000, 0x0A63,0x0000, 0x0A64,0x0000,
-0x0A65,0x0000, 0x0A66,0x0000, 0x0A67,0x0000, 0x0A68,0x0000,
-0x0A69,0x0000, 0x0A6A,0x0000, 0x0A6B,0x0000, 0x0A6C,0x0000,
-0x0A6D,0x0000, 0x0A6E,0x0000, 0x0A6F,0x0000, 0x0A70,0x0000,
-0x0A71,0x0000, 0x0A72,0x0000, 0x0A73,0x0000, 0x0A74,0x0000,
-0x0A75,0x0000, 0x0A76,0x0000, 0x0A77,0x0000, 0x0A78,0x0000,
-0x0A79,0x0000, 0x0A7A,0x0000, 0x0A7B,0x0000, 0x0A7C,0x0000,
-0x0A7D,0x0000, 0x0A7E,0x0000, 0x0A7F,0x0000, 0x0A80,0x0000,
-0x0A81,0x0000, 0x0A82,0x0000, 0x0A83,0x0000, 0x0A84,0x0000,
-0x0A85,0x0000, 0x0A86,0x0000, 0x0A87,0x0000, 0x0A88,0x0000,
-0x0A89,0x0000, 0x0A8A,0x0000, 0x0A8B,0x0000, 0x0A8C,0x0000,
-0x0A8D,0x0000, 0x0A8E,0x0000, 0x0A8F,0x0000, 0x0A90,0x0000,
-0x0A91,0x0000, 0x0A92,0x0000, 0x0A93,0x0000, 0x0A94,0x0000,
-0x0A95,0x0000, 0x0A96,0x0000, 0x0A97,0x0000, 0x0A98,0x0000,
-0x0A99,0x0000, 0x0A9A,0x0000, 0x0A9B,0x0000, 0x0A9C,0x0000,
-0x0A9D,0x0000, 0x0A9E,0x0000, 0x0A9F,0x0000, 0x0AA0,0x0000,
-0x0AA1,0x0000, 0x0AA2,0x0000, 0x0AA3,0x0000, 0x0AA4,0x0000,
-0x0AA5,0x0000, 0x0AA6,0x0000, 0x0AA7,0x0000, 0x0AA8,0x0000,
-0x0AA9,0x0000, 0x0AAA,0x0000, 0x0AAB,0x0000, 0x0AAC,0x0000,
-0x0AAD,0x0000, 0x0AAE,0x0000, 0x0AAF,0x0000, 0x0AB0,0x0000,
-0x0AB1,0x0000, 0x0AB2,0x0000, 0x0AB3,0x0000, 0x0AB4,0x0000,
-0x0AB5,0x0000, 0x0AB6,0x0000, 0x0AB7,0x0000, 0x0AB8,0x0000,
-0x0AB9,0x0000, 0x0ABA,0x0000, 0x0ABB,0x0000, 0x0ABC,0x0000,
-0x0ABD,0x0000, 0x0ABE,0x0000, 0x0ABF,0x0000, 0x0AC0,0x0000,
-0x0AC1,0x0000, 0x0AC2,0x0000, 0x0AC3,0x0000, 0x0AC4,0x0000,
-0x0AC5,0x0000, 0x0AC6,0x0000, 0x0AC7,0x0000, 0x0AC8,0x0000,
-0x0AC9,0x0000, 0x0ACA,0x0000, 0x0ACB,0x0000, 0x0ACC,0x0000,
-0x0ACD,0x0000, 0x0ACE,0x0000, 0x0ACF,0x0000, 0x0AD0,0x0000,
-0x0AD1,0x0000, 0x0AD2,0x0000, 0x0AD3,0x0000, 0x0AD4,0x0000,
-0x0AD5,0x0000, 0x0AD6,0x0000, 0x0AD7,0x0000, 0x0AD8,0x0000,
-0x0AD9,0x0000, 0x0ADA,0x0000, 0x0ADB,0x0000, 0x0ADC,0x0000,
-0x0ADD,0x0000, 0x0ADE,0x0000, 0x0ADF,0x0000, 0x0AE0,0x0000,
-0x0AE1,0x0000, 0x0AE2,0x0000, 0x0AE3,0x0000, 0x0AE4,0x0000,
-0x0AE5,0x0000, 0x0AE6,0x0000, 0x0AE7,0x0000, 0x0AE8,0x0000,
-0x0AE9,0x0000, 0x0AEA,0x0000, 0x0AEB,0x0000, 0x0AEC,0x0000,
-0x0AED,0x0000, 0x0AEE,0x0000, 0x0AEF,0x0000, 0x0AF0,0x0000,
-0x0AF1,0x0000, 0x0AF2,0x0000, 0x0AF3,0x0000, 0x0AF4,0x0000,
-0x0AF5,0x0000, 0x0AF6,0x0000, 0x0AF7,0x0000, 0x0AF8,0x0000,
-0x0AF9,0x0000, 0x0AFA,0x0000, 0x0AFB,0x0000, 0x0AFC,0x0000,
-0x0AFD,0x0000, 0x0AFE,0x0000, 0x0AFF,0x0000, 0x0B00,0x0000,
-0x0B01,0x0000, 0x0B02,0x0000, 0x0B03,0x0000, 0x0B04,0x0000,
-0x0B05,0x0000, 0x0B06,0x0000, 0x0B07,0x0000, 0x0B08,0x0000,
-0x0B09,0x0000, 0x0B0A,0x0000, 0x0B0B,0x0000, 0x0B0C,0x0000,
-0x0B0D,0x0000, 0x0B0E,0x0000, 0x0B0F,0x0000, 0x0B10,0x0000,
-0x0B11,0x0000, 0x0B12,0x0000, 0x0B13,0x0000, 0x0B14,0x0000,
-0x0B15,0x0000, 0x0B16,0x0000, 0x0B17,0x0000, 0x0B18,0x0000,
-0x0B19,0x0000, 0x0B1A,0x0000, 0x0B1B,0x0000, 0x0B1C,0x0000,
-0x0B1D,0x0000, 0x0B1E,0x0000, 0x0B1F,0x0000, 0x0B20,0x0000,
-0x0B21,0x0000, 0x0B22,0x0000, 0x0B23,0x0000, 0x0B24,0x0000,
-0x0B25,0x0000, 0x0B26,0x0000, 0x0B27,0x0000, 0x0B28,0x0000
-};
-
-uint16 page029data[]= { /* 2900 (2 weights per char) */
-0x0838,0x0000, 0x0839,0x0000, 0x083A,0x0000, 0x083B,0x0000,
-0x083C,0x0000, 0x083D,0x0000, 0x083E,0x0000, 0x083F,0x0000,
-0x0840,0x0000, 0x0841,0x0000, 0x0842,0x0000, 0x0843,0x0000,
-0x0844,0x0000, 0x0845,0x0000, 0x0846,0x0000, 0x0847,0x0000,
-0x0848,0x0000, 0x0849,0x0000, 0x084A,0x0000, 0x084B,0x0000,
-0x084C,0x0000, 0x084D,0x0000, 0x084E,0x0000, 0x084F,0x0000,
-0x0850,0x0000, 0x0851,0x0000, 0x0852,0x0000, 0x0853,0x0000,
-0x0854,0x0000, 0x0855,0x0000, 0x0856,0x0000, 0x0857,0x0000,
-0x0858,0x0000, 0x0859,0x0000, 0x085A,0x0000, 0x085B,0x0000,
-0x085C,0x0000, 0x085D,0x0000, 0x085E,0x0000, 0x085F,0x0000,
-0x0860,0x0000, 0x0861,0x0000, 0x0862,0x0000, 0x0863,0x0000,
-0x0864,0x0000, 0x0865,0x0000, 0x0866,0x0000, 0x0867,0x0000,
-0x0868,0x0000, 0x0869,0x0000, 0x086A,0x0000, 0x086B,0x0000,
-0x086C,0x0000, 0x086D,0x0000, 0x086E,0x0000, 0x086F,0x0000,
-0x0870,0x0000, 0x0871,0x0000, 0x0872,0x0000, 0x0873,0x0000,
-0x0874,0x0000, 0x0875,0x0000, 0x0876,0x0000, 0x0877,0x0000,
-0x0878,0x0000, 0x0879,0x0000, 0x087A,0x0000, 0x087B,0x0000,
-0x087C,0x0000, 0x087D,0x0000, 0x087E,0x0000, 0x087F,0x0000,
-0x0880,0x0000, 0x0881,0x0000, 0x0882,0x0000, 0x0883,0x0000,
-0x0884,0x0000, 0x0885,0x0000, 0x0886,0x0000, 0x0887,0x0000,
-0x0888,0x0000, 0x0889,0x0000, 0x088A,0x0000, 0x088B,0x0000,
-0x088C,0x0000, 0x088D,0x0000, 0x088E,0x0000, 0x088F,0x0000,
-0x0890,0x0000, 0x0891,0x0000, 0x0892,0x0000, 0x0893,0x0000,
-0x0894,0x0000, 0x0895,0x0000, 0x0896,0x0000, 0x0897,0x0000,
-0x0898,0x0000, 0x0899,0x0000, 0x089A,0x0000, 0x089B,0x0000,
-0x089C,0x0000, 0x089D,0x0000, 0x089E,0x0000, 0x089F,0x0000,
-0x08A0,0x0000, 0x08A1,0x0000, 0x08A2,0x0000, 0x08A3,0x0000,
-0x08A4,0x0000, 0x08A5,0x0000, 0x08A6,0x0000, 0x08A7,0x0000,
-0x08A8,0x0000, 0x08A9,0x0000, 0x08AA,0x0000, 0x08AB,0x0000,
-0x08AC,0x0000, 0x08AD,0x0000, 0x08AE,0x0000, 0x08AF,0x0000,
-0x08B0,0x0000, 0x08B1,0x0000, 0x08B2,0x0000, 0x08B3,0x0000,
-0x08B4,0x0000, 0x08B5,0x0000, 0x08B6,0x0000, 0x08B7,0x0000,
-0x08B8,0x0000, 0x08B9,0x0000, 0x08BA,0x0000, 0x0298,0x0000,
-0x0299,0x0000, 0x029A,0x0000, 0x029B,0x0000, 0x029C,0x0000,
-0x029D,0x0000, 0x029E,0x0000, 0x029F,0x0000, 0x02A0,0x0000,
-0x02A1,0x0000, 0x02A2,0x0000, 0x02A3,0x0000, 0x02A4,0x0000,
-0x02A5,0x0000, 0x02A6,0x0000, 0x02A7,0x0000, 0x02A8,0x0000,
-0x02A9,0x0000, 0x02AA,0x0000, 0x02AB,0x0000, 0x02AC,0x0000,
-0x02AD,0x0000, 0x08BB,0x0000, 0x08BC,0x0000, 0x08BD,0x0000,
-0x08BE,0x0000, 0x08BF,0x0000, 0x08C0,0x0000, 0x08C1,0x0000,
-0x08C2,0x0000, 0x08C3,0x0000, 0x08C4,0x0000, 0x08C5,0x0000,
-0x08C6,0x0000, 0x08C7,0x0000, 0x08C8,0x0000, 0x08C9,0x0000,
-0x08CA,0x0000, 0x08CB,0x0000, 0x08CC,0x0000, 0x08CD,0x0000,
-0x08CE,0x0000, 0x08CF,0x0000, 0x08D0,0x0000, 0x08D1,0x0000,
-0x08D2,0x0000, 0x08D3,0x0000, 0x08D4,0x0000, 0x08D5,0x0000,
-0x08D6,0x0000, 0x08D7,0x0000, 0x08D8,0x0000, 0x08D9,0x0000,
-0x08DA,0x0000, 0x08DB,0x0000, 0x08DC,0x0000, 0x08DD,0x0000,
-0x08DE,0x0000, 0x08DF,0x0000, 0x08E0,0x0000, 0x08E1,0x0000,
-0x08E2,0x0000, 0x08E3,0x0000, 0x08E4,0x0000, 0x08E5,0x0000,
-0x08E6,0x0000, 0x08E7,0x0000, 0x08E8,0x0000, 0x08E9,0x0000,
-0x08EA,0x0000, 0x08EB,0x0000, 0x08EC,0x0000, 0x08ED,0x0000,
-0x08EE,0x0000, 0x08EF,0x0000, 0x08F0,0x0000, 0x08F1,0x0000,
-0x08F2,0x0000, 0x08F3,0x0000, 0x08F4,0x0000, 0x08F5,0x0000,
-0x08F6,0x0000, 0x08F7,0x0000, 0x08F8,0x0000, 0x08F9,0x0000,
-0x08FA,0x0000, 0x08FB,0x0000, 0x08FC,0x0000, 0x08FD,0x0000,
-0x08FE,0x0000, 0x08FF,0x0000, 0x0900,0x0000, 0x0901,0x0000,
-0x0902,0x0000, 0x0903,0x0000, 0x0904,0x0000, 0x0905,0x0000,
-0x0906,0x0000, 0x0907,0x0000, 0x0908,0x0000, 0x0909,0x0000,
-0x090A,0x0000, 0x090B,0x0000, 0x090C,0x0000, 0x090D,0x0000,
-0x090E,0x0000, 0x090F,0x0000, 0x0910,0x0000, 0x0911,0x0000,
-0x0912,0x0000, 0x0913,0x0000, 0x0914,0x0000, 0x0915,0x0000,
-0x0916,0x0000, 0x0917,0x0000, 0x0918,0x0000, 0x0919,0x0000,
-0x091A,0x0000, 0x091B,0x0000, 0x091C,0x0000, 0x091D,0x0000,
-0x0296,0x0000, 0x0297,0x0000, 0x091E,0x0000, 0x091F,0x0000
-};
-
-uint16 page02Adata[]= { /* 2A00 (5 weights per char) */
-0x0920,0x0000,0x0000,0x0000,0x0000,
-0x0921,0x0000,0x0000,0x0000,0x0000,
-0x0922,0x0000,0x0000,0x0000,0x0000,
-0x0923,0x0000,0x0000,0x0000,0x0000,
-0x0924,0x0000,0x0000,0x0000,0x0000,
-0x0925,0x0000,0x0000,0x0000,0x0000,
-0x0926,0x0000,0x0000,0x0000,0x0000,
-0x0927,0x0000,0x0000,0x0000,0x0000,
-0x0928,0x0000,0x0000,0x0000,0x0000,
-0x0929,0x0000,0x0000,0x0000,0x0000,
-0x092A,0x0000,0x0000,0x0000,0x0000,
-0x092B,0x0000,0x0000,0x0000,0x0000,
-0x044B,0x044B,0x044B,0x044B,0x0000,
-0x092C,0x0000,0x0000,0x0000,0x0000,
-0x092D,0x0000,0x0000,0x0000,0x0000,
-0x092E,0x0000,0x0000,0x0000,0x0000,
-0x092F,0x0000,0x0000,0x0000,0x0000,
-0x0930,0x0000,0x0000,0x0000,0x0000,
-0x0931,0x0000,0x0000,0x0000,0x0000,
-0x0932,0x0000,0x0000,0x0000,0x0000,
-0x0933,0x0000,0x0000,0x0000,0x0000,
-0x0934,0x0000,0x0000,0x0000,0x0000,
-0x0935,0x0000,0x0000,0x0000,0x0000,
-0x0936,0x0000,0x0000,0x0000,0x0000,
-0x0937,0x0000,0x0000,0x0000,0x0000,
-0x0938,0x0000,0x0000,0x0000,0x0000,
-0x0939,0x0000,0x0000,0x0000,0x0000,
-0x093A,0x0000,0x0000,0x0000,0x0000,
-0x093B,0x0000,0x0000,0x0000,0x0000,
-0x093C,0x0000,0x0000,0x0000,0x0000,
-0x093D,0x0000,0x0000,0x0000,0x0000,
-0x093E,0x0000,0x0000,0x0000,0x0000,
-0x093F,0x0000,0x0000,0x0000,0x0000,
-0x0940,0x0000,0x0000,0x0000,0x0000,
-0x0941,0x0000,0x0000,0x0000,0x0000,
-0x0942,0x0000,0x0000,0x0000,0x0000,
-0x0943,0x0000,0x0000,0x0000,0x0000,
-0x0944,0x0000,0x0000,0x0000,0x0000,
-0x0945,0x0000,0x0000,0x0000,0x0000,
-0x0946,0x0000,0x0000,0x0000,0x0000,
-0x0947,0x0000,0x0000,0x0000,0x0000,
-0x0948,0x0000,0x0000,0x0000,0x0000,
-0x0949,0x0000,0x0000,0x0000,0x0000,
-0x094A,0x0000,0x0000,0x0000,0x0000,
-0x094B,0x0000,0x0000,0x0000,0x0000,
-0x094C,0x0000,0x0000,0x0000,0x0000,
-0x094D,0x0000,0x0000,0x0000,0x0000,
-0x094E,0x0000,0x0000,0x0000,0x0000,
-0x094F,0x0000,0x0000,0x0000,0x0000,
-0x0950,0x0000,0x0000,0x0000,0x0000,
-0x0951,0x0000,0x0000,0x0000,0x0000,
-0x0952,0x0000,0x0000,0x0000,0x0000,
-0x0953,0x0000,0x0000,0x0000,0x0000,
-0x0954,0x0000,0x0000,0x0000,0x0000,
-0x0955,0x0000,0x0000,0x0000,0x0000,
-0x0956,0x0000,0x0000,0x0000,0x0000,
-0x0957,0x0000,0x0000,0x0000,0x0000,
-0x0958,0x0000,0x0000,0x0000,0x0000,
-0x0959,0x0000,0x0000,0x0000,0x0000,
-0x095A,0x0000,0x0000,0x0000,0x0000,
-0x095B,0x0000,0x0000,0x0000,0x0000,
-0x095C,0x0000,0x0000,0x0000,0x0000,
-0x095D,0x0000,0x0000,0x0000,0x0000,
-0x095E,0x0000,0x0000,0x0000,0x0000,
-0x095F,0x0000,0x0000,0x0000,0x0000,
-0x0960,0x0000,0x0000,0x0000,0x0000,
-0x0961,0x0000,0x0000,0x0000,0x0000,
-0x0962,0x0000,0x0000,0x0000,0x0000,
-0x0963,0x0000,0x0000,0x0000,0x0000,
-0x0964,0x0000,0x0000,0x0000,0x0000,
-0x0965,0x0000,0x0000,0x0000,0x0000,
-0x0966,0x0000,0x0000,0x0000,0x0000,
-0x0967,0x0000,0x0000,0x0000,0x0000,
-0x0968,0x0000,0x0000,0x0000,0x0000,
-0x0969,0x0000,0x0000,0x0000,0x0000,
-0x096A,0x0000,0x0000,0x0000,0x0000,
-0x096B,0x0000,0x0000,0x0000,0x0000,
-0x096C,0x0000,0x0000,0x0000,0x0000,
-0x096D,0x0000,0x0000,0x0000,0x0000,
-0x096E,0x0000,0x0000,0x0000,0x0000,
-0x096F,0x0000,0x0000,0x0000,0x0000,
-0x0970,0x0000,0x0000,0x0000,0x0000,
-0x0971,0x0000,0x0000,0x0000,0x0000,
-0x0972,0x0000,0x0000,0x0000,0x0000,
-0x0973,0x0000,0x0000,0x0000,0x0000,
-0x0974,0x0000,0x0000,0x0000,0x0000,
-0x0975,0x0000,0x0000,0x0000,0x0000,
-0x0976,0x0000,0x0000,0x0000,0x0000,
-0x0977,0x0000,0x0000,0x0000,0x0000,
-0x0978,0x0000,0x0000,0x0000,0x0000,
-0x0979,0x0000,0x0000,0x0000,0x0000,
-0x097A,0x0000,0x0000,0x0000,0x0000,
-0x097B,0x0000,0x0000,0x0000,0x0000,
-0x097C,0x0000,0x0000,0x0000,0x0000,
-0x097D,0x0000,0x0000,0x0000,0x0000,
-0x097E,0x0000,0x0000,0x0000,0x0000,
-0x097F,0x0000,0x0000,0x0000,0x0000,
-0x0980,0x0000,0x0000,0x0000,0x0000,
-0x0981,0x0000,0x0000,0x0000,0x0000,
-0x0982,0x0000,0x0000,0x0000,0x0000,
-0x0983,0x0000,0x0000,0x0000,0x0000,
-0x0984,0x0000,0x0000,0x0000,0x0000,
-0x0985,0x0000,0x0000,0x0000,0x0000,
-0x0986,0x0000,0x0000,0x0000,0x0000,
-0x0987,0x0000,0x0000,0x0000,0x0000,
-0x0988,0x0000,0x0000,0x0000,0x0000,
-0x0989,0x0000,0x0000,0x0000,0x0000,
-0x098A,0x0000,0x0000,0x0000,0x0000,
-0x098B,0x0000,0x0000,0x0000,0x0000,
-0x098C,0x0000,0x0000,0x0000,0x0000,
-0x098D,0x0000,0x0000,0x0000,0x0000,
-0x098E,0x0000,0x0000,0x0000,0x0000,
-0x098F,0x0000,0x0000,0x0000,0x0000,
-0x0990,0x0000,0x0000,0x0000,0x0000,
-0x0991,0x0000,0x0000,0x0000,0x0000,
-0x0992,0x0000,0x0000,0x0000,0x0000,
-0x023D,0x023D,0x042D,0x0000,0x0000,
-0x042D,0x042D,0x0000,0x0000,0x0000,
-0x042D,0x042D,0x042D,0x0000,0x0000,
-0x0993,0x0000,0x0000,0x0000,0x0000,
-0x0994,0x0000,0x0000,0x0000,0x0000,
-0x0995,0x0000,0x0000,0x0000,0x0000,
-0x0996,0x0000,0x0000,0x0000,0x0000,
-0x0997,0x0000,0x0000,0x0000,0x0000,
-0x0998,0x0000,0x0000,0x0000,0x0000,
-0x0999,0x0000,0x0000,0x0000,0x0000,
-0x099A,0x0000,0x0000,0x0000,0x0000,
-0x099B,0x0000,0x0000,0x0000,0x0000,
-0x099C,0x0000,0x0000,0x0000,0x0000,
-0x099D,0x0000,0x0000,0x0000,0x0000,
-0x099E,0x0000,0x0000,0x0000,0x0000,
-0x099F,0x0000,0x0000,0x0000,0x0000,
-0x09A0,0x0000,0x0000,0x0000,0x0000,
-0x09A1,0x0000,0x0000,0x0000,0x0000,
-0x09A2,0x0000,0x0000,0x0000,0x0000,
-0x09A3,0x0000,0x0000,0x0000,0x0000,
-0x09A4,0x0000,0x0000,0x0000,0x0000,
-0x09A5,0x0000,0x0000,0x0000,0x0000,
-0x09A6,0x0000,0x0000,0x0000,0x0000,
-0x09A7,0x0000,0x0000,0x0000,0x0000,
-0x09A8,0x0000,0x0000,0x0000,0x0000,
-0x09A9,0x0000,0x0000,0x0000,0x0000,
-0x09AA,0x0000,0x0000,0x0000,0x0000,
-0x09AB,0x0000,0x0000,0x0000,0x0000,
-0x09AC,0x0000,0x0000,0x0000,0x0000,
-0x09AD,0x0000,0x0000,0x0000,0x0000,
-0x09AE,0x0000,0x0000,0x0000,0x0000,
-0x09AF,0x0000,0x0000,0x0000,0x0000,
-0x09B0,0x0000,0x0000,0x0000,0x0000,
-0x09B1,0x0000,0x0000,0x0000,0x0000,
-0x09B2,0x0000,0x0000,0x0000,0x0000,
-0x09B3,0x0000,0x0000,0x0000,0x0000,
-0x09B4,0x0000,0x0000,0x0000,0x0000,
-0x09B5,0x0000,0x0000,0x0000,0x0000,
-0x09B6,0x0000,0x0000,0x0000,0x0000,
-0x09B7,0x0000,0x0000,0x0000,0x0000,
-0x09B8,0x0000,0x0000,0x0000,0x0000,
-0x09B9,0x0000,0x0000,0x0000,0x0000,
-0x09BA,0x0000,0x0000,0x0000,0x0000,
-0x09BB,0x0000,0x0000,0x0000,0x0000,
-0x09BC,0x0000,0x0000,0x0000,0x0000,
-0x09BD,0x0000,0x0000,0x0000,0x0000,
-0x09BE,0x0000,0x0000,0x0000,0x0000,
-0x09BF,0x0000,0x0000,0x0000,0x0000,
-0x09C0,0x0000,0x0000,0x0000,0x0000,
-0x09C1,0x0000,0x0000,0x0000,0x0000,
-0x09C2,0x0000,0x0000,0x0000,0x0000,
-0x09C3,0x0000,0x0000,0x0000,0x0000,
-0x09C4,0x0000,0x0000,0x0000,0x0000,
-0x09C5,0x0000,0x0000,0x0000,0x0000,
-0x09C6,0x0000,0x0000,0x0000,0x0000,
-0x09C7,0x0000,0x0000,0x0000,0x0000,
-0x09C8,0x0000,0x0000,0x0000,0x0000,
-0x09C9,0x0000,0x0000,0x0000,0x0000,
-0x09CA,0x0000,0x0000,0x0000,0x0000,
-0x09CB,0x0000,0x0000,0x0000,0x0000,
-0x09CC,0x0000,0x0000,0x0000,0x0000,
-0x09CD,0x0000,0x0000,0x0000,0x0000,
-0x09CE,0x0000,0x0000,0x0000,0x0000,
-0x09CF,0x0000,0x0000,0x0000,0x0000,
-0x09D0,0x0000,0x0000,0x0000,0x0000,
-0x09D1,0x0000,0x0000,0x0000,0x0000,
-0x09D2,0x0000,0x0000,0x0000,0x0000,
-0x09D3,0x0000,0x0000,0x0000,0x0000,
-0x09D4,0x0000,0x0000,0x0000,0x0000,
-0x09D5,0x0000,0x0000,0x0000,0x0000,
-0x09D6,0x0000,0x0000,0x0000,0x0000,
-0x09D7,0x0000,0x0000,0x0000,0x0000,
-0x09D8,0x0000,0x0000,0x0000,0x0000,
-0x09D9,0x0000,0x0000,0x0000,0x0000,
-0x09DA,0x0000,0x0000,0x0000,0x0000,
-0x09DB,0x0000,0x0000,0x0000,0x0000,
-0x09DC,0x0000,0x0000,0x0000,0x0000,
-0x09DD,0x0000,0x0000,0x0000,0x0000,
-0x09DE,0x0000,0x0000,0x0000,0x0000,
-0x09DF,0x0000,0x0000,0x0000,0x0000,
-0x09E0,0x0000,0x0000,0x0000,0x0000,
-0x09E1,0x0000,0x0000,0x0000,0x0000,
-0x09E2,0x0000,0x0000,0x0000,0x0000,
-0x09E3,0x0000,0x0000,0x0000,0x0000,
-0x09E4,0x0000,0x0000,0x0000,0x0000,
-0x09E5,0x0000,0x0000,0x0000,0x0000,
-0x09E6,0x0000,0x0000,0x0000,0x0000,
-0x09E7,0x0000,0x0000,0x0000,0x0000,
-0x09E8,0x0000,0x0000,0x0000,0x0000,
-0x09E9,0x0000,0x0000,0x0000,0x0000,
-0x09EA,0x0000,0x0000,0x0000,0x0000,
-0x09EB,0x0000,0x0000,0x0000,0x0000,
-0x09EC,0x0000,0x0000,0x0000,0x0000,
-0x09ED,0x0000,0x0000,0x0000,0x0000,
-0x09EE,0x0000,0x0000,0x0000,0x0000,
-0x09EF,0x0000,0x0000,0x0000,0x0000,
-0x09F0,0x0000,0x0000,0x0000,0x0000,
-0x09F1,0x0000,0x0000,0x0000,0x0000,
-0x09F2,0x0000,0x0000,0x0000,0x0000,
-0x09F3,0x0000,0x0000,0x0000,0x0000,
-0x09F4,0x0000,0x0000,0x0000,0x0000,
-0x09F5,0x0000,0x0000,0x0000,0x0000,
-0x09F6,0x0000,0x0000,0x0000,0x0000,
-0x09F7,0x0000,0x0000,0x0000,0x0000,
-0x09F8,0x0000,0x0000,0x0000,0x0000,
-0x09F8,0x0000,0x0000,0x0000,0x0000,
-0x09F9,0x0000,0x0000,0x0000,0x0000,
-0x09FA,0x0000,0x0000,0x0000,0x0000,
-0x09FB,0x0000,0x0000,0x0000,0x0000,
-0x09FC,0x0000,0x0000,0x0000,0x0000,
-0x09FD,0x0000,0x0000,0x0000,0x0000,
-0x09FE,0x0000,0x0000,0x0000,0x0000,
-0x09FF,0x0000,0x0000,0x0000,0x0000,
-0x0A00,0x0000,0x0000,0x0000,0x0000,
-0x0A01,0x0000,0x0000,0x0000,0x0000,
-0x0A02,0x0000,0x0000,0x0000,0x0000,
-0x0A03,0x0000,0x0000,0x0000,0x0000,
-0x0A04,0x0000,0x0000,0x0000,0x0000,
-0x0A05,0x0000,0x0000,0x0000,0x0000,
-0x0A06,0x0000,0x0000,0x0000,0x0000,
-0x0A07,0x0000,0x0000,0x0000,0x0000,
-0x0A08,0x0000,0x0000,0x0000,0x0000,
-0x0A09,0x0000,0x0000,0x0000,0x0000,
-0x0A0A,0x0000,0x0000,0x0000,0x0000,
-0x0A0B,0x0000,0x0000,0x0000,0x0000,
-0x0A0C,0x0000,0x0000,0x0000,0x0000,
-0x0A0D,0x0000,0x0000,0x0000,0x0000,
-0x0A0E,0x0000,0x0000,0x0000,0x0000,
-0x0A0F,0x0000,0x0000,0x0000,0x0000,
-0x0A10,0x0000,0x0000,0x0000,0x0000,
-0x0A11,0x0000,0x0000,0x0000,0x0000,
-0x0A12,0x0000,0x0000,0x0000,0x0000,
-0x0A13,0x0000,0x0000,0x0000,0x0000,
-0x0A14,0x0000,0x0000,0x0000,0x0000,
-0x0A15,0x0000,0x0000,0x0000,0x0000,
-0x0A16,0x0000,0x0000,0x0000,0x0000,
-0x0A17,0x0000,0x0000,0x0000,0x0000,
-0x0A18,0x0000,0x0000,0x0000,0x0000,
-0x0A19,0x0000,0x0000,0x0000,0x0000,
-0x0A1A,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page02Bdata[]= { /* 2B00 (3 weights per char) */
-0x0A1B,0x0000,0x0000, 0x0A1C,0x0000,0x0000, 0x0A1D,0x0000,0x0000,
-0x0A1E,0x0000,0x0000, 0x0A1F,0x0000,0x0000, 0x0A20,0x0000,0x0000,
-0x0A21,0x0000,0x0000, 0x0A22,0x0000,0x0000, 0x0A23,0x0000,0x0000,
-0x0A24,0x0000,0x0000, 0x0A25,0x0000,0x0000, 0x0A26,0x0000,0x0000,
-0x0A27,0x0000,0x0000, 0x0A28,0x0000,0x0000, 0xFBC0,0xAB0E,0x0000,
-0xFBC0,0xAB0F,0x0000, 0xFBC0,0xAB10,0x0000, 0xFBC0,0xAB11,0x0000,
-0xFBC0,0xAB12,0x0000, 0xFBC0,0xAB13,0x0000, 0xFBC0,0xAB14,0x0000,
-0xFBC0,0xAB15,0x0000, 0xFBC0,0xAB16,0x0000, 0xFBC0,0xAB17,0x0000,
-0xFBC0,0xAB18,0x0000, 0xFBC0,0xAB19,0x0000, 0xFBC0,0xAB1A,0x0000,
-0xFBC0,0xAB1B,0x0000, 0xFBC0,0xAB1C,0x0000, 0xFBC0,0xAB1D,0x0000,
-0xFBC0,0xAB1E,0x0000, 0xFBC0,0xAB1F,0x0000, 0xFBC0,0xAB20,0x0000,
-0xFBC0,0xAB21,0x0000, 0xFBC0,0xAB22,0x0000, 0xFBC0,0xAB23,0x0000,
-0xFBC0,0xAB24,0x0000, 0xFBC0,0xAB25,0x0000, 0xFBC0,0xAB26,0x0000,
-0xFBC0,0xAB27,0x0000, 0xFBC0,0xAB28,0x0000, 0xFBC0,0xAB29,0x0000,
-0xFBC0,0xAB2A,0x0000, 0xFBC0,0xAB2B,0x0000, 0xFBC0,0xAB2C,0x0000,
-0xFBC0,0xAB2D,0x0000, 0xFBC0,0xAB2E,0x0000, 0xFBC0,0xAB2F,0x0000,
-0xFBC0,0xAB30,0x0000, 0xFBC0,0xAB31,0x0000, 0xFBC0,0xAB32,0x0000,
-0xFBC0,0xAB33,0x0000, 0xFBC0,0xAB34,0x0000, 0xFBC0,0xAB35,0x0000,
-0xFBC0,0xAB36,0x0000, 0xFBC0,0xAB37,0x0000, 0xFBC0,0xAB38,0x0000,
-0xFBC0,0xAB39,0x0000, 0xFBC0,0xAB3A,0x0000, 0xFBC0,0xAB3B,0x0000,
-0xFBC0,0xAB3C,0x0000, 0xFBC0,0xAB3D,0x0000, 0xFBC0,0xAB3E,0x0000,
-0xFBC0,0xAB3F,0x0000, 0xFBC0,0xAB40,0x0000, 0xFBC0,0xAB41,0x0000,
-0xFBC0,0xAB42,0x0000, 0xFBC0,0xAB43,0x0000, 0xFBC0,0xAB44,0x0000,
-0xFBC0,0xAB45,0x0000, 0xFBC0,0xAB46,0x0000, 0xFBC0,0xAB47,0x0000,
-0xFBC0,0xAB48,0x0000, 0xFBC0,0xAB49,0x0000, 0xFBC0,0xAB4A,0x0000,
-0xFBC0,0xAB4B,0x0000, 0xFBC0,0xAB4C,0x0000, 0xFBC0,0xAB4D,0x0000,
-0xFBC0,0xAB4E,0x0000, 0xFBC0,0xAB4F,0x0000, 0xFBC0,0xAB50,0x0000,
-0xFBC0,0xAB51,0x0000, 0xFBC0,0xAB52,0x0000, 0xFBC0,0xAB53,0x0000,
-0xFBC0,0xAB54,0x0000, 0xFBC0,0xAB55,0x0000, 0xFBC0,0xAB56,0x0000,
-0xFBC0,0xAB57,0x0000, 0xFBC0,0xAB58,0x0000, 0xFBC0,0xAB59,0x0000,
-0xFBC0,0xAB5A,0x0000, 0xFBC0,0xAB5B,0x0000, 0xFBC0,0xAB5C,0x0000,
-0xFBC0,0xAB5D,0x0000, 0xFBC0,0xAB5E,0x0000, 0xFBC0,0xAB5F,0x0000,
-0xFBC0,0xAB60,0x0000, 0xFBC0,0xAB61,0x0000, 0xFBC0,0xAB62,0x0000,
-0xFBC0,0xAB63,0x0000, 0xFBC0,0xAB64,0x0000, 0xFBC0,0xAB65,0x0000,
-0xFBC0,0xAB66,0x0000, 0xFBC0,0xAB67,0x0000, 0xFBC0,0xAB68,0x0000,
-0xFBC0,0xAB69,0x0000, 0xFBC0,0xAB6A,0x0000, 0xFBC0,0xAB6B,0x0000,
-0xFBC0,0xAB6C,0x0000, 0xFBC0,0xAB6D,0x0000, 0xFBC0,0xAB6E,0x0000,
-0xFBC0,0xAB6F,0x0000, 0xFBC0,0xAB70,0x0000, 0xFBC0,0xAB71,0x0000,
-0xFBC0,0xAB72,0x0000, 0xFBC0,0xAB73,0x0000, 0xFBC0,0xAB74,0x0000,
-0xFBC0,0xAB75,0x0000, 0xFBC0,0xAB76,0x0000, 0xFBC0,0xAB77,0x0000,
-0xFBC0,0xAB78,0x0000, 0xFBC0,0xAB79,0x0000, 0xFBC0,0xAB7A,0x0000,
-0xFBC0,0xAB7B,0x0000, 0xFBC0,0xAB7C,0x0000, 0xFBC0,0xAB7D,0x0000,
-0xFBC0,0xAB7E,0x0000, 0xFBC0,0xAB7F,0x0000, 0xFBC0,0xAB80,0x0000,
-0xFBC0,0xAB81,0x0000, 0xFBC0,0xAB82,0x0000, 0xFBC0,0xAB83,0x0000,
-0xFBC0,0xAB84,0x0000, 0xFBC0,0xAB85,0x0000, 0xFBC0,0xAB86,0x0000,
-0xFBC0,0xAB87,0x0000, 0xFBC0,0xAB88,0x0000, 0xFBC0,0xAB89,0x0000,
-0xFBC0,0xAB8A,0x0000, 0xFBC0,0xAB8B,0x0000, 0xFBC0,0xAB8C,0x0000,
-0xFBC0,0xAB8D,0x0000, 0xFBC0,0xAB8E,0x0000, 0xFBC0,0xAB8F,0x0000,
-0xFBC0,0xAB90,0x0000, 0xFBC0,0xAB91,0x0000, 0xFBC0,0xAB92,0x0000,
-0xFBC0,0xAB93,0x0000, 0xFBC0,0xAB94,0x0000, 0xFBC0,0xAB95,0x0000,
-0xFBC0,0xAB96,0x0000, 0xFBC0,0xAB97,0x0000, 0xFBC0,0xAB98,0x0000,
-0xFBC0,0xAB99,0x0000, 0xFBC0,0xAB9A,0x0000, 0xFBC0,0xAB9B,0x0000,
-0xFBC0,0xAB9C,0x0000, 0xFBC0,0xAB9D,0x0000, 0xFBC0,0xAB9E,0x0000,
-0xFBC0,0xAB9F,0x0000, 0xFBC0,0xABA0,0x0000, 0xFBC0,0xABA1,0x0000,
-0xFBC0,0xABA2,0x0000, 0xFBC0,0xABA3,0x0000, 0xFBC0,0xABA4,0x0000,
-0xFBC0,0xABA5,0x0000, 0xFBC0,0xABA6,0x0000, 0xFBC0,0xABA7,0x0000,
-0xFBC0,0xABA8,0x0000, 0xFBC0,0xABA9,0x0000, 0xFBC0,0xABAA,0x0000,
-0xFBC0,0xABAB,0x0000, 0xFBC0,0xABAC,0x0000, 0xFBC0,0xABAD,0x0000,
-0xFBC0,0xABAE,0x0000, 0xFBC0,0xABAF,0x0000, 0xFBC0,0xABB0,0x0000,
-0xFBC0,0xABB1,0x0000, 0xFBC0,0xABB2,0x0000, 0xFBC0,0xABB3,0x0000,
-0xFBC0,0xABB4,0x0000, 0xFBC0,0xABB5,0x0000, 0xFBC0,0xABB6,0x0000,
-0xFBC0,0xABB7,0x0000, 0xFBC0,0xABB8,0x0000, 0xFBC0,0xABB9,0x0000,
-0xFBC0,0xABBA,0x0000, 0xFBC0,0xABBB,0x0000, 0xFBC0,0xABBC,0x0000,
-0xFBC0,0xABBD,0x0000, 0xFBC0,0xABBE,0x0000, 0xFBC0,0xABBF,0x0000,
-0xFBC0,0xABC0,0x0000, 0xFBC0,0xABC1,0x0000, 0xFBC0,0xABC2,0x0000,
-0xFBC0,0xABC3,0x0000, 0xFBC0,0xABC4,0x0000, 0xFBC0,0xABC5,0x0000,
-0xFBC0,0xABC6,0x0000, 0xFBC0,0xABC7,0x0000, 0xFBC0,0xABC8,0x0000,
-0xFBC0,0xABC9,0x0000, 0xFBC0,0xABCA,0x0000, 0xFBC0,0xABCB,0x0000,
-0xFBC0,0xABCC,0x0000, 0xFBC0,0xABCD,0x0000, 0xFBC0,0xABCE,0x0000,
-0xFBC0,0xABCF,0x0000, 0xFBC0,0xABD0,0x0000, 0xFBC0,0xABD1,0x0000,
-0xFBC0,0xABD2,0x0000, 0xFBC0,0xABD3,0x0000, 0xFBC0,0xABD4,0x0000,
-0xFBC0,0xABD5,0x0000, 0xFBC0,0xABD6,0x0000, 0xFBC0,0xABD7,0x0000,
-0xFBC0,0xABD8,0x0000, 0xFBC0,0xABD9,0x0000, 0xFBC0,0xABDA,0x0000,
-0xFBC0,0xABDB,0x0000, 0xFBC0,0xABDC,0x0000, 0xFBC0,0xABDD,0x0000,
-0xFBC0,0xABDE,0x0000, 0xFBC0,0xABDF,0x0000, 0xFBC0,0xABE0,0x0000,
-0xFBC0,0xABE1,0x0000, 0xFBC0,0xABE2,0x0000, 0xFBC0,0xABE3,0x0000,
-0xFBC0,0xABE4,0x0000, 0xFBC0,0xABE5,0x0000, 0xFBC0,0xABE6,0x0000,
-0xFBC0,0xABE7,0x0000, 0xFBC0,0xABE8,0x0000, 0xFBC0,0xABE9,0x0000,
-0xFBC0,0xABEA,0x0000, 0xFBC0,0xABEB,0x0000, 0xFBC0,0xABEC,0x0000,
-0xFBC0,0xABED,0x0000, 0xFBC0,0xABEE,0x0000, 0xFBC0,0xABEF,0x0000,
-0xFBC0,0xABF0,0x0000, 0xFBC0,0xABF1,0x0000, 0xFBC0,0xABF2,0x0000,
-0xFBC0,0xABF3,0x0000, 0xFBC0,0xABF4,0x0000, 0xFBC0,0xABF5,0x0000,
-0xFBC0,0xABF6,0x0000, 0xFBC0,0xABF7,0x0000, 0xFBC0,0xABF8,0x0000,
-0xFBC0,0xABF9,0x0000, 0xFBC0,0xABFA,0x0000, 0xFBC0,0xABFB,0x0000,
-0xFBC0,0xABFC,0x0000, 0xFBC0,0xABFD,0x0000, 0xFBC0,0xABFE,0x0000,
-0xFBC0,0xABFF,0x0000 };
-
-uint16 page02Edata[]= { /* 2E00 (3 weights per char) */
-0xFBC0,0xAE00,0x0000, 0xFBC0,0xAE01,0x0000, 0xFBC0,0xAE02,0x0000,
-0xFBC0,0xAE03,0x0000, 0xFBC0,0xAE04,0x0000, 0xFBC0,0xAE05,0x0000,
-0xFBC0,0xAE06,0x0000, 0xFBC0,0xAE07,0x0000, 0xFBC0,0xAE08,0x0000,
-0xFBC0,0xAE09,0x0000, 0xFBC0,0xAE0A,0x0000, 0xFBC0,0xAE0B,0x0000,
-0xFBC0,0xAE0C,0x0000, 0xFBC0,0xAE0D,0x0000, 0xFBC0,0xAE0E,0x0000,
-0xFBC0,0xAE0F,0x0000, 0xFBC0,0xAE10,0x0000, 0xFBC0,0xAE11,0x0000,
-0xFBC0,0xAE12,0x0000, 0xFBC0,0xAE13,0x0000, 0xFBC0,0xAE14,0x0000,
-0xFBC0,0xAE15,0x0000, 0xFBC0,0xAE16,0x0000, 0xFBC0,0xAE17,0x0000,
-0xFBC0,0xAE18,0x0000, 0xFBC0,0xAE19,0x0000, 0xFBC0,0xAE1A,0x0000,
-0xFBC0,0xAE1B,0x0000, 0xFBC0,0xAE1C,0x0000, 0xFBC0,0xAE1D,0x0000,
-0xFBC0,0xAE1E,0x0000, 0xFBC0,0xAE1F,0x0000, 0xFBC0,0xAE20,0x0000,
-0xFBC0,0xAE21,0x0000, 0xFBC0,0xAE22,0x0000, 0xFBC0,0xAE23,0x0000,
-0xFBC0,0xAE24,0x0000, 0xFBC0,0xAE25,0x0000, 0xFBC0,0xAE26,0x0000,
-0xFBC0,0xAE27,0x0000, 0xFBC0,0xAE28,0x0000, 0xFBC0,0xAE29,0x0000,
-0xFBC0,0xAE2A,0x0000, 0xFBC0,0xAE2B,0x0000, 0xFBC0,0xAE2C,0x0000,
-0xFBC0,0xAE2D,0x0000, 0xFBC0,0xAE2E,0x0000, 0xFBC0,0xAE2F,0x0000,
-0xFBC0,0xAE30,0x0000, 0xFBC0,0xAE31,0x0000, 0xFBC0,0xAE32,0x0000,
-0xFBC0,0xAE33,0x0000, 0xFBC0,0xAE34,0x0000, 0xFBC0,0xAE35,0x0000,
-0xFBC0,0xAE36,0x0000, 0xFBC0,0xAE37,0x0000, 0xFBC0,0xAE38,0x0000,
-0xFBC0,0xAE39,0x0000, 0xFBC0,0xAE3A,0x0000, 0xFBC0,0xAE3B,0x0000,
-0xFBC0,0xAE3C,0x0000, 0xFBC0,0xAE3D,0x0000, 0xFBC0,0xAE3E,0x0000,
-0xFBC0,0xAE3F,0x0000, 0xFBC0,0xAE40,0x0000, 0xFBC0,0xAE41,0x0000,
-0xFBC0,0xAE42,0x0000, 0xFBC0,0xAE43,0x0000, 0xFBC0,0xAE44,0x0000,
-0xFBC0,0xAE45,0x0000, 0xFBC0,0xAE46,0x0000, 0xFBC0,0xAE47,0x0000,
-0xFBC0,0xAE48,0x0000, 0xFBC0,0xAE49,0x0000, 0xFBC0,0xAE4A,0x0000,
-0xFBC0,0xAE4B,0x0000, 0xFBC0,0xAE4C,0x0000, 0xFBC0,0xAE4D,0x0000,
-0xFBC0,0xAE4E,0x0000, 0xFBC0,0xAE4F,0x0000, 0xFBC0,0xAE50,0x0000,
-0xFBC0,0xAE51,0x0000, 0xFBC0,0xAE52,0x0000, 0xFBC0,0xAE53,0x0000,
-0xFBC0,0xAE54,0x0000, 0xFBC0,0xAE55,0x0000, 0xFBC0,0xAE56,0x0000,
-0xFBC0,0xAE57,0x0000, 0xFBC0,0xAE58,0x0000, 0xFBC0,0xAE59,0x0000,
-0xFBC0,0xAE5A,0x0000, 0xFBC0,0xAE5B,0x0000, 0xFBC0,0xAE5C,0x0000,
-0xFBC0,0xAE5D,0x0000, 0xFBC0,0xAE5E,0x0000, 0xFBC0,0xAE5F,0x0000,
-0xFBC0,0xAE60,0x0000, 0xFBC0,0xAE61,0x0000, 0xFBC0,0xAE62,0x0000,
-0xFBC0,0xAE63,0x0000, 0xFBC0,0xAE64,0x0000, 0xFBC0,0xAE65,0x0000,
-0xFBC0,0xAE66,0x0000, 0xFBC0,0xAE67,0x0000, 0xFBC0,0xAE68,0x0000,
-0xFBC0,0xAE69,0x0000, 0xFBC0,0xAE6A,0x0000, 0xFBC0,0xAE6B,0x0000,
-0xFBC0,0xAE6C,0x0000, 0xFBC0,0xAE6D,0x0000, 0xFBC0,0xAE6E,0x0000,
-0xFBC0,0xAE6F,0x0000, 0xFBC0,0xAE70,0x0000, 0xFBC0,0xAE71,0x0000,
-0xFBC0,0xAE72,0x0000, 0xFBC0,0xAE73,0x0000, 0xFBC0,0xAE74,0x0000,
-0xFBC0,0xAE75,0x0000, 0xFBC0,0xAE76,0x0000, 0xFBC0,0xAE77,0x0000,
-0xFBC0,0xAE78,0x0000, 0xFBC0,0xAE79,0x0000, 0xFBC0,0xAE7A,0x0000,
-0xFBC0,0xAE7B,0x0000, 0xFBC0,0xAE7C,0x0000, 0xFBC0,0xAE7D,0x0000,
-0xFBC0,0xAE7E,0x0000, 0xFBC0,0xAE7F,0x0000, 0xFB40,0xCE36,0x0000,
-0xFB40,0xD382,0x0000, 0xFB40,0xCE5B,0x0000, 0xFB40,0xCE5A,0x0000,
-0xFB40,0xCE59,0x0000, 0xFB40,0xCEBB,0x0000, 0xFB40,0xD182,0x0000,
-0xFB40,0xD1E0,0x0000, 0xFB40,0xD200,0x0000, 0xFB40,0xD202,0x0000,
-0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xDC0F,0x0000,
-0xFB40,0xDC0F,0x0000, 0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000,
-0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, 0xFB40,0xDDF3,0x0000,
-0xFB40,0xDE7A,0x0000, 0xFB40,0xDF51,0x0000, 0xFB40,0xDF50,0x0000,
-0xFB40,0xDFC4,0x0000, 0xFB40,0xDFC3,0x0000, 0xFB40,0xE24C,0x0000,
-0xFB40,0xE535,0x0000, 0xFBC0,0xAE9A,0x0000, 0xFB40,0xE5E1,0x0000,
-0xFB40,0xE5E5,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xEB7A,0x0000,
-0xFB40,0xEBCD,0x0000, 0xFB40,0xEC11,0x0000, 0xFB40,0xEC35,0x0000,
-0xFB40,0xEC3A,0x0000, 0xFB40,0xF06C,0x0000, 0xFB40,0xF22B,0x0000,
-0xFB40,0xF22B,0x0000, 0xFB40,0xCE2C,0x0000, 0xFB40,0xF25B,0x0000,
-0xFB40,0xF2AD,0x0000, 0xFB40,0xF38B,0x0000, 0xFB40,0xF58B,0x0000,
-0xFB40,0xF6EE,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF93B,0x0000,
-0xFB40,0xFAF9,0x0000, 0xFB40,0xFCF9,0x0000, 0xFB40,0xFE9F,0x0000,
-0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF53,0x0000,
-0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF8A,0x0000,
-0xFB40,0xFF8A,0x0000, 0xFB40,0xFF8B,0x0000, 0xFB41,0x8002,0x0000,
-0xFB41,0x8080,0x0000, 0xFB41,0x807F,0x0000, 0xFB41,0x8089,0x0000,
-0xFB41,0x81FC,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000,
-0xFB41,0x8279,0x0000, 0xFB41,0x864E,0x0000, 0xFB41,0x8864,0x0000,
-0xFB41,0x8980,0x0000, 0xFB41,0x897F,0x0000, 0xFB41,0x89C1,0x0000,
-0xFB41,0x89D2,0x0000, 0xFB41,0x89D2,0x0000, 0xFB41,0x8BA0,0x0000,
-0xFB41,0x8D1D,0x0000, 0xFB41,0x8DB3,0x0000, 0xFB41,0x8F66,0x0000,
-0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000,
-0xFB41,0x9091,0x0000, 0xFB41,0x9485,0x0000, 0xFB41,0x9577,0x0000,
-0xFB41,0x9578,0x0000, 0xFB41,0x957F,0x0000, 0xFB41,0x95E8,0x0000,
-0xFB41,0x961C,0x0000, 0xFB41,0x961D,0x0000, 0xFB41,0x96E8,0x0000,
-0xFB41,0x9752,0x0000, 0xFB41,0x97E6,0x0000, 0xFB41,0x9875,0x0000,
-0xFB41,0x98CE,0x0000, 0xFB41,0x98DE,0x0000, 0xFB41,0x98DF,0x0000,
-0xFB41,0x98E0,0x0000, 0xFB41,0x98E0,0x0000, 0xFB41,0x9963,0x0000,
-0xFB41,0x9996,0x0000, 0xFB41,0x9A6C,0x0000, 0xFB41,0x9AA8,0x0000,
-0xFB41,0x9B3C,0x0000, 0xFB41,0x9C7C,0x0000, 0xFB41,0x9E1F,0x0000,
-0xFB41,0x9E75,0x0000, 0xFB41,0x9EA6,0x0000, 0xFB41,0x9EC4,0x0000,
-0xFB41,0x9EFE,0x0000, 0xFB41,0x9F4A,0x0000, 0xFB41,0x9F50,0x0000,
-0xFB41,0x9F52,0x0000, 0xFB41,0x9F7F,0x0000, 0xFB41,0x9F8D,0x0000,
-0xFB41,0x9F99,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000,
-0xFB41,0x9F9F,0x0000, 0xFBC0,0xAEF4,0x0000, 0xFBC0,0xAEF5,0x0000,
-0xFBC0,0xAEF6,0x0000, 0xFBC0,0xAEF7,0x0000, 0xFBC0,0xAEF8,0x0000,
-0xFBC0,0xAEF9,0x0000, 0xFBC0,0xAEFA,0x0000, 0xFBC0,0xAEFB,0x0000,
-0xFBC0,0xAEFC,0x0000, 0xFBC0,0xAEFD,0x0000, 0xFBC0,0xAEFE,0x0000,
-0xFBC0,0xAEFF,0x0000 };
-
-uint16 page02Fdata[]= { /* 2F00 (3 weights per char) */
-0xFB40,0xCE00,0x0000, 0xFB40,0xCE28,0x0000, 0xFB40,0xCE36,0x0000,
-0xFB40,0xCE3F,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE85,0x0000,
-0xFB40,0xCE8C,0x0000, 0xFB40,0xCEA0,0x0000, 0xFB40,0xCEBA,0x0000,
-0xFB40,0xD13F,0x0000, 0xFB40,0xD165,0x0000, 0xFB40,0xD16B,0x0000,
-0xFB40,0xD182,0x0000, 0xFB40,0xD196,0x0000, 0xFB40,0xD1AB,0x0000,
-0xFB40,0xD1E0,0x0000, 0xFB40,0xD1F5,0x0000, 0xFB40,0xD200,0x0000,
-0xFB40,0xD29B,0x0000, 0xFB40,0xD2F9,0x0000, 0xFB40,0xD315,0x0000,
-0xFB40,0xD31A,0x0000, 0xFB40,0xD338,0x0000, 0xFB40,0xD341,0x0000,
-0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xD382,0x0000,
-0xFB40,0xD3B6,0x0000, 0xFB40,0xD3C8,0x0000, 0xFB40,0xD3E3,0x0000,
-0xFB40,0xD6D7,0x0000, 0xFB40,0xD71F,0x0000, 0xFB40,0xD8EB,0x0000,
-0xFB40,0xD902,0x0000, 0xFB40,0xD90A,0x0000, 0xFB40,0xD915,0x0000,
-0xFB40,0xD927,0x0000, 0xFB40,0xD973,0x0000, 0xFB40,0xDB50,0x0000,
-0xFB40,0xDB80,0x0000, 0xFB40,0xDBF8,0x0000, 0xFB40,0xDC0F,0x0000,
-0xFB40,0xDC22,0x0000, 0xFB40,0xDC38,0x0000, 0xFB40,0xDC6E,0x0000,
-0xFB40,0xDC71,0x0000, 0xFB40,0xDDDB,0x0000, 0xFB40,0xDDE5,0x0000,
-0xFB40,0xDDF1,0x0000, 0xFB40,0xDDFE,0x0000, 0xFB40,0xDE72,0x0000,
-0xFB40,0xDE7A,0x0000, 0xFB40,0xDE7F,0x0000, 0xFB40,0xDEF4,0x0000,
-0xFB40,0xDEFE,0x0000, 0xFB40,0xDF0B,0x0000, 0xFB40,0xDF13,0x0000,
-0xFB40,0xDF50,0x0000, 0xFB40,0xDF61,0x0000, 0xFB40,0xDF73,0x0000,
-0xFB40,0xDFC3,0x0000, 0xFB40,0xE208,0x0000, 0xFB40,0xE236,0x0000,
-0xFB40,0xE24B,0x0000, 0xFB40,0xE52F,0x0000, 0xFB40,0xE534,0x0000,
-0xFB40,0xE587,0x0000, 0xFB40,0xE597,0x0000, 0xFB40,0xE5A4,0x0000,
-0xFB40,0xE5B9,0x0000, 0xFB40,0xE5E0,0x0000, 0xFB40,0xE5E5,0x0000,
-0xFB40,0xE6F0,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xE728,0x0000,
-0xFB40,0xEB20,0x0000, 0xFB40,0xEB62,0x0000, 0xFB40,0xEB79,0x0000,
-0xFB40,0xEBB3,0x0000, 0xFB40,0xEBCB,0x0000, 0xFB40,0xEBD4,0x0000,
-0xFB40,0xEBDB,0x0000, 0xFB40,0xEC0F,0x0000, 0xFB40,0xEC14,0x0000,
-0xFB40,0xEC34,0x0000, 0xFB40,0xF06B,0x0000, 0xFB40,0xF22A,0x0000,
-0xFB40,0xF236,0x0000, 0xFB40,0xF23B,0x0000, 0xFB40,0xF23F,0x0000,
-0xFB40,0xF247,0x0000, 0xFB40,0xF259,0x0000, 0xFB40,0xF25B,0x0000,
-0xFB40,0xF2AC,0x0000, 0xFB40,0xF384,0x0000, 0xFB40,0xF389,0x0000,
-0xFB40,0xF4DC,0x0000, 0xFB40,0xF4E6,0x0000, 0xFB40,0xF518,0x0000,
-0xFB40,0xF51F,0x0000, 0xFB40,0xF528,0x0000, 0xFB40,0xF530,0x0000,
-0xFB40,0xF58B,0x0000, 0xFB40,0xF592,0x0000, 0xFB40,0xF676,0x0000,
-0xFB40,0xF67D,0x0000, 0xFB40,0xF6AE,0x0000, 0xFB40,0xF6BF,0x0000,
-0xFB40,0xF6EE,0x0000, 0xFB40,0xF7DB,0x0000, 0xFB40,0xF7E2,0x0000,
-0xFB40,0xF7F3,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF9B8,0x0000,
-0xFB40,0xF9BE,0x0000, 0xFB40,0xFA74,0x0000, 0xFB40,0xFACB,0x0000,
-0xFB40,0xFAF9,0x0000, 0xFB40,0xFC73,0x0000, 0xFB40,0xFCF8,0x0000,
-0xFB40,0xFF36,0x0000, 0xFB40,0xFF51,0x0000, 0xFB40,0xFF8A,0x0000,
-0xFB40,0xFFBD,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x800C,0x0000,
-0xFB41,0x8012,0x0000, 0xFB41,0x8033,0x0000, 0xFB41,0x807F,0x0000,
-0xFB41,0x8089,0x0000, 0xFB41,0x81E3,0x0000, 0xFB41,0x81EA,0x0000,
-0xFB41,0x81F3,0x0000, 0xFB41,0x81FC,0x0000, 0xFB41,0x820C,0x0000,
-0xFB41,0x821B,0x0000, 0xFB41,0x821F,0x0000, 0xFB41,0x826E,0x0000,
-0xFB41,0x8272,0x0000, 0xFB41,0x8278,0x0000, 0xFB41,0x864D,0x0000,
-0xFB41,0x866B,0x0000, 0xFB41,0x8840,0x0000, 0xFB41,0x884C,0x0000,
-0xFB41,0x8863,0x0000, 0xFB41,0x897E,0x0000, 0xFB41,0x898B,0x0000,
-0xFB41,0x89D2,0x0000, 0xFB41,0x8A00,0x0000, 0xFB41,0x8C37,0x0000,
-0xFB41,0x8C46,0x0000, 0xFB41,0x8C55,0x0000, 0xFB41,0x8C78,0x0000,
-0xFB41,0x8C9D,0x0000, 0xFB41,0x8D64,0x0000, 0xFB41,0x8D70,0x0000,
-0xFB41,0x8DB3,0x0000, 0xFB41,0x8EAB,0x0000, 0xFB41,0x8ECA,0x0000,
-0xFB41,0x8F9B,0x0000, 0xFB41,0x8FB0,0x0000, 0xFB41,0x8FB5,0x0000,
-0xFB41,0x9091,0x0000, 0xFB41,0x9149,0x0000, 0xFB41,0x91C6,0x0000,
-0xFB41,0x91CC,0x0000, 0xFB41,0x91D1,0x0000, 0xFB41,0x9577,0x0000,
-0xFB41,0x9580,0x0000, 0xFB41,0x961C,0x0000, 0xFB41,0x96B6,0x0000,
-0xFB41,0x96B9,0x0000, 0xFB41,0x96E8,0x0000, 0xFB41,0x9751,0x0000,
-0xFB41,0x975E,0x0000, 0xFB41,0x9762,0x0000, 0xFB41,0x9769,0x0000,
-0xFB41,0x97CB,0x0000, 0xFB41,0x97ED,0x0000, 0xFB41,0x97F3,0x0000,
-0xFB41,0x9801,0x0000, 0xFB41,0x98A8,0x0000, 0xFB41,0x98DB,0x0000,
-0xFB41,0x98DF,0x0000, 0xFB41,0x9996,0x0000, 0xFB41,0x9999,0x0000,
-0xFB41,0x99AC,0x0000, 0xFB41,0x9AA8,0x0000, 0xFB41,0x9AD8,0x0000,
-0xFB41,0x9ADF,0x0000, 0xFB41,0x9B25,0x0000, 0xFB41,0x9B2F,0x0000,
-0xFB41,0x9B32,0x0000, 0xFB41,0x9B3C,0x0000, 0xFB41,0x9B5A,0x0000,
-0xFB41,0x9CE5,0x0000, 0xFB41,0x9E75,0x0000, 0xFB41,0x9E7F,0x0000,
-0xFB41,0x9EA5,0x0000, 0xFB41,0x9EBB,0x0000, 0xFB41,0x9EC3,0x0000,
-0xFB41,0x9ECD,0x0000, 0xFB41,0x9ED1,0x0000, 0xFB41,0x9EF9,0x0000,
-0xFB41,0x9EFD,0x0000, 0xFB41,0x9F0E,0x0000, 0xFB41,0x9F13,0x0000,
-0xFB41,0x9F20,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB41,0x9F4A,0x0000,
-0xFB41,0x9F52,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB41,0x9F9C,0x0000,
-0xFB41,0x9FA0,0x0000, 0xFBC0,0xAFD6,0x0000, 0xFBC0,0xAFD7,0x0000,
-0xFBC0,0xAFD8,0x0000, 0xFBC0,0xAFD9,0x0000, 0xFBC0,0xAFDA,0x0000,
-0xFBC0,0xAFDB,0x0000, 0xFBC0,0xAFDC,0x0000, 0xFBC0,0xAFDD,0x0000,
-0xFBC0,0xAFDE,0x0000, 0xFBC0,0xAFDF,0x0000, 0xFBC0,0xAFE0,0x0000,
-0xFBC0,0xAFE1,0x0000, 0xFBC0,0xAFE2,0x0000, 0xFBC0,0xAFE3,0x0000,
-0xFBC0,0xAFE4,0x0000, 0xFBC0,0xAFE5,0x0000, 0xFBC0,0xAFE6,0x0000,
-0xFBC0,0xAFE7,0x0000, 0xFBC0,0xAFE8,0x0000, 0xFBC0,0xAFE9,0x0000,
-0xFBC0,0xAFEA,0x0000, 0xFBC0,0xAFEB,0x0000, 0xFBC0,0xAFEC,0x0000,
-0xFBC0,0xAFED,0x0000, 0xFBC0,0xAFEE,0x0000, 0xFBC0,0xAFEF,0x0000,
-0x0DAF,0x0000,0x0000, 0x0DB0,0x0000,0x0000, 0x0DB1,0x0000,0x0000,
-0x0DB2,0x0000,0x0000, 0x0DB3,0x0000,0x0000, 0x0DB4,0x0000,0x0000,
-0x0DB5,0x0000,0x0000, 0x0DB6,0x0000,0x0000, 0x0DB7,0x0000,0x0000,
-0x0DB8,0x0000,0x0000, 0x0DB9,0x0000,0x0000, 0x0DBA,0x0000,0x0000,
-0xFBC0,0xAFFC,0x0000, 0xFBC0,0xAFFD,0x0000, 0xFBC0,0xAFFE,0x0000,
-0xFBC0,0xAFFF,0x0000 };
-
-uint16 page030data[]= { /* 3000 (3 weights per char) */
-0x0209,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x0266,0x0000,0x0000,
-0x02E2,0x0000,0x0000, 0x0DBB,0x0000,0x0000, 0x0E05,0x0000,0x0000,
-0x1E5D,0x1E73,0x0000, 0x0E29,0x0000,0x0000, 0x02AE,0x0000,0x0000,
-0x02AF,0x0000,0x0000, 0x02B0,0x0000,0x0000, 0x02B1,0x0000,0x0000,
-0x02B2,0x0000,0x0000, 0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000,
-0x02B5,0x0000,0x0000, 0x02B6,0x0000,0x0000, 0x02B7,0x0000,0x0000,
-0x0DBC,0x0000,0x0000, 0x0DBD,0x0000,0x0000, 0x02B8,0x0000,0x0000,
-0x02B9,0x0000,0x0000, 0x02BA,0x0000,0x0000, 0x02BB,0x0000,0x0000,
-0x02BC,0x0000,0x0000, 0x02BD,0x0000,0x0000, 0x02BE,0x0000,0x0000,
-0x02BF,0x0000,0x0000, 0x022B,0x0000,0x0000, 0x0283,0x0000,0x0000,
-0x0284,0x0000,0x0000, 0x0285,0x0000,0x0000, 0x0DBE,0x0000,0x0000,
-0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000,
-0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000,
-0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x022C,0x0000,0x0000, 0x0E07,0x0000,0x0000, 0x0E07,0x0000,0x0000,
-0x0E08,0x0000,0x0000, 0x0E08,0x0000,0x0000, 0x0E09,0x0000,0x0000,
-0x0DBC,0x0000,0x0000, 0x0DBF,0x0000,0x0000, 0xFB40,0xD341,0x0000,
-0xFB40,0xD344,0x0000, 0xFB40,0xD345,0x0000, 0x0E06,0x0000,0x0000,
-0x1E70,0x1E5E,0x0000, 0x02E3,0x0000,0x0000, 0x0DC0,0x0000,0x0000,
-0x0DC1,0x0000,0x0000, 0xFBC0,0xB040,0x0000, 0x1E52,0x0000,0x0000,
-0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E53,0x0000,0x0000,
-0x1E54,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000,
-0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E56,0x0000,0x0000,
-0x1E57,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000,
-0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E59,0x0000,0x0000,
-0x1E5A,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000,
-0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5C,0x0000,0x0000,
-0x1E5D,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000,
-0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E5F,0x0000,0x0000,
-0x1E60,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000,
-0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E62,0x0000,0x0000,
-0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000,
-0x1E64,0x0000,0x0000, 0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000,
-0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000,
-0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000,
-0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000,
-0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000,
-0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000,
-0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000,
-0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000,
-0x1E70,0x0000,0x0000, 0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000,
-0x1E73,0x0000,0x0000, 0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000,
-0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E76,0x0000,0x0000,
-0x1E77,0x0000,0x0000, 0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000,
-0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000,
-0x1E7C,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7D,0x0000,0x0000,
-0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000,
-0x1E81,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E57,0x0000,0x0000,
-0x1E5A,0x0000,0x0000, 0xFBC0,0xB097,0x0000, 0xFBC0,0xB098,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x021E,0x0000,0x0000,
-0x021F,0x0000,0x0000, 0x0E0A,0x0000,0x0000, 0x0E0A,0x0000,0x0000,
-0x1E77,0x1E79,0x0000, 0x022D,0x0000,0x0000, 0x1E52,0x0000,0x0000,
-0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E53,0x0000,0x0000,
-0x1E54,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000,
-0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E56,0x0000,0x0000,
-0x1E57,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000,
-0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E59,0x0000,0x0000,
-0x1E5A,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000,
-0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5C,0x0000,0x0000,
-0x1E5D,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000,
-0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E5F,0x0000,0x0000,
-0x1E60,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000,
-0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E62,0x0000,0x0000,
-0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E63,0x0000,0x0000,
-0x1E64,0x0000,0x0000, 0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000,
-0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000,
-0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000,
-0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6B,0x0000,0x0000,
-0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6C,0x0000,0x0000,
-0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6D,0x0000,0x0000,
-0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000, 0x1E6E,0x0000,0x0000,
-0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E6F,0x0000,0x0000,
-0x1E70,0x0000,0x0000, 0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000,
-0x1E73,0x0000,0x0000, 0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000,
-0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E76,0x0000,0x0000,
-0x1E77,0x0000,0x0000, 0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000,
-0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000,
-0x1E7C,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7D,0x0000,0x0000,
-0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000,
-0x1E81,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E57,0x0000,0x0000,
-0x1E5A,0x0000,0x0000, 0x1E7D,0x0000,0x0000, 0x1E7E,0x0000,0x0000,
-0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, 0x022E,0x0000,0x0000,
-0x0E0B,0x0000,0x0000, 0x0E0C,0x0000,0x0000, 0x0E0C,0x0000,0x0000,
-0x1E5B,0x1E65,0x0000 };
-
-uint16 page031data[]= { /* 3100 (3 weights per char) */
-0xFBC0,0xB100,0x0000, 0xFBC0,0xB101,0x0000, 0xFBC0,0xB102,0x0000,
-0xFBC0,0xB103,0x0000, 0xFBC0,0xB104,0x0000, 0x1E82,0x0000,0x0000,
-0x1E83,0x0000,0x0000, 0x1E84,0x0000,0x0000, 0x1E85,0x0000,0x0000,
-0x1E87,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x1E89,0x0000,0x0000,
-0x1E8A,0x0000,0x0000, 0x1E8B,0x0000,0x0000, 0x1E8C,0x0000,0x0000,
-0x1E8F,0x0000,0x0000, 0x1E90,0x0000,0x0000, 0x1E91,0x0000,0x0000,
-0x1E92,0x0000,0x0000, 0x1E94,0x0000,0x0000, 0x1E95,0x0000,0x0000,
-0x1E96,0x0000,0x0000, 0x1E97,0x0000,0x0000, 0x1E98,0x0000,0x0000,
-0x1E99,0x0000,0x0000, 0x1E9A,0x0000,0x0000, 0x1E9B,0x0000,0x0000,
-0x1E9C,0x0000,0x0000, 0x1E9E,0x0000,0x0000, 0x1E9F,0x0000,0x0000,
-0x1EA1,0x0000,0x0000, 0x1EA2,0x0000,0x0000, 0x1EA3,0x0000,0x0000,
-0x1EA4,0x0000,0x0000, 0x1EA5,0x0000,0x0000, 0x1EA6,0x0000,0x0000,
-0x1EA7,0x0000,0x0000, 0x1EA9,0x0000,0x0000, 0x1EAD,0x0000,0x0000,
-0x1EAE,0x0000,0x0000, 0x1EAF,0x0000,0x0000, 0x1EB0,0x0000,0x0000,
-0x1E86,0x0000,0x0000, 0x1E8D,0x0000,0x0000, 0x1E93,0x0000,0x0000,
-0xFBC0,0xB12D,0x0000, 0xFBC0,0xB12E,0x0000, 0xFBC0,0xB12F,0x0000,
-0xFBC0,0xB130,0x0000, 0x1D62,0x0000,0x0000, 0x1D63,0x0000,0x0000,
-0x1E02,0x0000,0x0000, 0x1D64,0x0000,0x0000, 0x1E04,0x0000,0x0000,
-0x1E05,0x0000,0x0000, 0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000,
-0x1D67,0x0000,0x0000, 0x1E08,0x0000,0x0000, 0x1E09,0x0000,0x0000,
-0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, 0x1E0C,0x0000,0x0000,
-0x1E0D,0x0000,0x0000, 0x1D7C,0x0000,0x0000, 0x1D68,0x0000,0x0000,
-0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000, 0x1D83,0x0000,0x0000,
-0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, 0x1D6D,0x0000,0x0000,
-0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000,
-0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000, 0x1D73,0x0000,0x0000,
-0x1D74,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0x1DBF,0x0000,0x0000,
-0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000,
-0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000,
-0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000,
-0x1DC9,0x0000,0x0000, 0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000,
-0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000,
-0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000,
-0x1DD2,0x0000,0x0000, 0x1DBD,0x0000,0x0000, 0x1D76,0x0000,0x0000,
-0x1D77,0x0000,0x0000, 0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000,
-0x1E24,0x0000,0x0000, 0x1E26,0x0000,0x0000, 0x1E2B,0x0000,0x0000,
-0x1E2F,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1D7E,0x0000,0x0000,
-0x1E35,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0x1D7F,0x0000,0x0000,
-0x1D80,0x0000,0x0000, 0x1D82,0x0000,0x0000, 0x1D84,0x0000,0x0000,
-0x1D85,0x0000,0x0000, 0x1D89,0x0000,0x0000, 0x1D8B,0x0000,0x0000,
-0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, 0x1D8F,0x0000,0x0000,
-0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, 0x1D94,0x0000,0x0000,
-0x1D98,0x0000,0x0000, 0x1DA2,0x0000,0x0000, 0x1DA9,0x0000,0x0000,
-0x1DAE,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0x1E4A,0x0000,0x0000,
-0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, 0x1DBB,0x0000,0x0000,
-0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0x1DE5,0x0000,0x0000,
-0x1DEE,0x0000,0x0000, 0x1DEF,0x0000,0x0000, 0x1DF1,0x0000,0x0000,
-0x1DFB,0x0000,0x0000, 0x1DFE,0x0000,0x0000, 0xFBC0,0xB18F,0x0000,
-0x0DC2,0x0000,0x0000, 0x0DC3,0x0000,0x0000, 0xFB40,0xCE00,0x0000,
-0xFB40,0xCE8C,0x0000, 0xFB40,0xCE09,0x0000, 0xFB40,0xD6DB,0x0000,
-0xFB40,0xCE0A,0x0000, 0xFB40,0xCE2D,0x0000, 0xFB40,0xCE0B,0x0000,
-0xFB40,0xF532,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE19,0x0000,
-0xFB40,0xCE01,0x0000, 0xFB40,0xD929,0x0000, 0xFB40,0xD730,0x0000,
-0xFB40,0xCEBA,0x0000, 0x1E82,0x0000,0x0000, 0x1E98,0x0000,0x0000,
-0x1E90,0x0000,0x0000, 0x1E8B,0x0000,0x0000, 0x1EA0,0x0000,0x0000,
-0x1EA0,0x0000,0x0000, 0x1E9D,0x0000,0x0000, 0x1E9C,0x0000,0x0000,
-0x1EAF,0x0000,0x0000, 0x1E9B,0x0000,0x0000, 0x1EAE,0x0000,0x0000,
-0x1EAF,0x0000,0x0000, 0x1EAC,0x0000,0x0000, 0x1E8E,0x0000,0x0000,
-0x1EA1,0x0000,0x0000, 0x1EA3,0x0000,0x0000, 0x1EAA,0x0000,0x0000,
-0x1EAB,0x0000,0x0000, 0x1EA8,0x0000,0x0000, 0x1EAE,0x0000,0x0000,
-0x1E83,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x1E8C,0x0000,0x0000,
-0x1E8F,0x0000,0x0000, 0xFBC0,0xB1B8,0x0000, 0xFBC0,0xB1B9,0x0000,
-0xFBC0,0xB1BA,0x0000, 0xFBC0,0xB1BB,0x0000, 0xFBC0,0xB1BC,0x0000,
-0xFBC0,0xB1BD,0x0000, 0xFBC0,0xB1BE,0x0000, 0xFBC0,0xB1BF,0x0000,
-0xFBC0,0xB1C0,0x0000, 0xFBC0,0xB1C1,0x0000, 0xFBC0,0xB1C2,0x0000,
-0xFBC0,0xB1C3,0x0000, 0xFBC0,0xB1C4,0x0000, 0xFBC0,0xB1C5,0x0000,
-0xFBC0,0xB1C6,0x0000, 0xFBC0,0xB1C7,0x0000, 0xFBC0,0xB1C8,0x0000,
-0xFBC0,0xB1C9,0x0000, 0xFBC0,0xB1CA,0x0000, 0xFBC0,0xB1CB,0x0000,
-0xFBC0,0xB1CC,0x0000, 0xFBC0,0xB1CD,0x0000, 0xFBC0,0xB1CE,0x0000,
-0xFBC0,0xB1CF,0x0000, 0xFBC0,0xB1D0,0x0000, 0xFBC0,0xB1D1,0x0000,
-0xFBC0,0xB1D2,0x0000, 0xFBC0,0xB1D3,0x0000, 0xFBC0,0xB1D4,0x0000,
-0xFBC0,0xB1D5,0x0000, 0xFBC0,0xB1D6,0x0000, 0xFBC0,0xB1D7,0x0000,
-0xFBC0,0xB1D8,0x0000, 0xFBC0,0xB1D9,0x0000, 0xFBC0,0xB1DA,0x0000,
-0xFBC0,0xB1DB,0x0000, 0xFBC0,0xB1DC,0x0000, 0xFBC0,0xB1DD,0x0000,
-0xFBC0,0xB1DE,0x0000, 0xFBC0,0xB1DF,0x0000, 0xFBC0,0xB1E0,0x0000,
-0xFBC0,0xB1E1,0x0000, 0xFBC0,0xB1E2,0x0000, 0xFBC0,0xB1E3,0x0000,
-0xFBC0,0xB1E4,0x0000, 0xFBC0,0xB1E5,0x0000, 0xFBC0,0xB1E6,0x0000,
-0xFBC0,0xB1E7,0x0000, 0xFBC0,0xB1E8,0x0000, 0xFBC0,0xB1E9,0x0000,
-0xFBC0,0xB1EA,0x0000, 0xFBC0,0xB1EB,0x0000, 0xFBC0,0xB1EC,0x0000,
-0xFBC0,0xB1ED,0x0000, 0xFBC0,0xB1EE,0x0000, 0xFBC0,0xB1EF,0x0000,
-0x1E59,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000,
-0x1E65,0x0000,0x0000, 0x1E68,0x0000,0x0000, 0x1E6B,0x0000,0x0000,
-0x1E6C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, 0x1E6E,0x0000,0x0000,
-0x1E6F,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E78,0x0000,0x0000,
-0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000,
-0x1E7C,0x0000,0x0000 };
-
-uint16 page032data[]= { /* 3200 (8 weights per char) */
-0x0288,0x1D62,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D64,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D65,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D67,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D68,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D69,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6B,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6D,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6E,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D70,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D71,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D72,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D73,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D74,0x0289,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D62,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D64,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D65,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D67,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D68,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D69,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6B,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6D,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6E,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D70,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D71,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D72,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D73,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D74,0x1DBE,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6E,0x1DCB,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0x1D6D,0x1DC6,0x1D6E,0x1DC2,0x1E03,0x0289,0x0000,
-0x0288,0x1D6D,0x1DC6,0x1D74,0x1DCB,0x0289,0x0000,0x0000,
-0xFBC0,0xB21F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE00,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE8C,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE09,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD6DB,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE94,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD16D,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE03,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD16B,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCE5D,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD341,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xE708,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF06B,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xEC34,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xE728,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB41,0x91D1,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD71F,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xE5E5,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xE82A,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xE709,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF93E,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD40D,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF279,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB41,0x8CA1,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF95D,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD2B4,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCEE3,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD47C,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xDB66,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF6E3,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCF01,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB41,0x8CC7,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xD354,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xF96D,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB40,0xCF11,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB41,0x81EA,0x0289,0x0000,0x0000,0x0000,0x0000,
-0x0288,0xFB41,0x81F3,0x0289,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB244,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB245,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB246,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB247,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB248,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB249,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB24F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x1002,0x0E8B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D67,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D68,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D69,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D71,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D73,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D74,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D62,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D64,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D65,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D67,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D68,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D69,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6B,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6D,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D6E,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D70,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D71,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D72,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D73,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D74,0x1DBE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1D70,0x1DBE,0x1E0F,0x1D62,0x1DC6,0x0000,0x0000,0x0000,
-0x1D6E,0x1DCB,0x1D6D,0x1DD1,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB27E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0DC4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE8C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD6DB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE94,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD16D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE03,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD16B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD341,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF06B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xEC34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE728,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB41,0x91D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD71F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE82A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE709,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF93E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD40D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF279,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB41,0x8CA1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF95D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD2B4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF9D8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF537,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB41,0x9069,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD12A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD370,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xECE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB41,0x9805,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCF11,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD199,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE0A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCE0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xDDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD3F3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD33B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xDB97,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xDB66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xF6E3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xCF01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB41,0x8CC7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD354,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD91C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0x0E32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0x0E29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x0FC0,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E8B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x1002,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E61,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E67,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E68,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E69,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E71,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E73,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E74,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E75,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E76,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E77,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E78,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E80,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC0,0xB2FF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page033data[]= { /* 3300 (9 weights per char) */
-0x1E52,0x1E6B,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E52,0x1E7A,0x1E6D,0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E52,0x1E81,0x1E6E,0x1E52,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E52,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E53,0x1E67,0x1E81,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E53,0x1E81,0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E54,0x1E56,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E55,0x1E5E,0x1E59,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,
-0x1E55,0x0E0B,0x1E57,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E56,0x1E81,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E56,0x0E0B,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x1E53,0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x1E78,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x1E7C,0x1E79,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x1E7C,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E57,0x1E81,0x1E70,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E67,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E76,0x1E79,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E7A,0x1E61,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E7C,0x1E59,0x1E78,0x1E72,0x0000,0x0000,0x0000,0x0000,
-0x1E58,0x1E7C,0x1E73,0x0E0B,0x1E65,0x1E7A,0x0000,0x0000,0x0000,
-0x1E58,0x1E7C,0x1E7D,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,
-0x1E59,0x1E78,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E59,0x1E78,0x1E72,0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000,
-0x1E59,0x1E7A,0x1E5F,0x1E53,0x1E7C,0x0000,0x0000,0x0000,0x0000,
-0x1E59,0x1E7C,0x0E0B,0x1E69,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5A,0x0E0B,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5B,0x1E7A,0x1E66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5B,0x0E0B,0x1E6F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5C,0x1E53,0x1E59,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5C,0x1E81,0x1E62,0x0E0B,0x1E72,0x0000,0x0000,0x0000,0x0000,
-0x1E5D,0x1E79,0x1E81,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5F,0x1E81,0x1E62,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E5F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E61,0x0E0B,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E64,0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E66,0x1E6A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6A,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6B,0x1E53,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6B,0x0E0B,0x1E5F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,
-0x1E6B,0x0E0B,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6B,0x0E0B,0x1E7B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6C,0x1E52,0x1E5E,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,
-0x1E6C,0x1E59,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6C,0x1E5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6C,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6D,0x1E52,0x1E78,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,
-0x1E6D,0x1E53,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6D,0x1E63,0x1E5D,0x1E55,0x1E7A,0x0000,0x0000,0x0000,0x0000,
-0x1E6D,0x1E78,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x1E59,0x1E61,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x1E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x1E67,0x1E6C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x1E7A,0x1E63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x1E81,0x1E5E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x0E0B,0x1E5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6E,0x0E0B,0x1E61,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x1E53,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x1E7A,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x1E81,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E6F,0x0E0B,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x1E53,0x1E59,0x1E7C,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x1E53,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x1E63,0x1E6B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x1E7A,0x1E59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E70,0x1E81,0x1E5D,0x1E77,0x1E81,0x0000,0x0000,0x0000,0x0000,
-0x1E71,0x1E59,0x1E7C,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E71,0x1E79,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E71,0x1E79,0x1E6B,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,
-0x1E73,0x1E57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E73,0x1E57,0x1E65,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E73,0x0E0B,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E75,0x0E0B,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E75,0x0E0B,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E76,0x1E52,0x1E81,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E79,0x1E63,0x1E65,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E79,0x1E78,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7A,0x1E6C,0x0E0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7A,0x0E0B,0x1E6D,0x1E7A,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7B,0x1E72,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1E7B,0x1E81,0x1E65,0x1E5A,0x1E81,0x0000,0x0000,0x0000,0x0000,
-0x1E7D,0x1E63,0x1E65,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2F,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E30,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E31,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E32,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E29,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E33,0x101F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E4A,0x0E33,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F82,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x101F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xDE73,0xFB40,0xE210,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE62D,0xFB40,0xD48C,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xD927,0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE60E,0xFB40,0xECBB,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFB40,0xE82A,0xFB40,0xDF0F,0xFB40,0xCF1A,0xFB40,0xF93E,0x0000,
-0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0E60,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0EB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1002,0x0EE1,0x106A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EB9,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F5B,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F5B,0x0E2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0437,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0437,0x0FEA,0x0E2B,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0FA7,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0E33,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0E33,0x0E6D,0x0437,0x0FEA,0x0000,0x0000,0x0000,0x0000,
-0x0FC0,0x0E33,0x0E6D,0x0437,0x0FEA,0x0E2B,0x0000,0x0000,0x0000,
-0x0FA7,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0FEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F64,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x10F8,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x1051,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x1109,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x1109,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E33,0x025D,0x0F5B,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E4A,0x0FB4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0E60,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0E6D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0437,0x0F21,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E60,0x0F82,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E6D,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x105E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0E33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EE1,0x0FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EFB,0x0F64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F21,0x1002,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0F64,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x0F82,0x0EC1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F2E,0x105A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0EFB,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0F5B,0x0F82,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0EE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x025D,0x0F5B,0x025D,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0FA7,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FA7,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FEA,0x0FC0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0FEA,0x1044,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1051,0x0E4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1044,0x0437,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E33,0x0437,0x0F5B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2A,0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E2F,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E30,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E31,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2B,0x0E32,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E29,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0E2C,0x0E2A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x0EC1,0x0E33,0x0F2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page04Ddata[]= { /* 4D00 (3 weights per char) */
-0xFB80,0xCD00,0x0000, 0xFB80,0xCD01,0x0000, 0xFB80,0xCD02,0x0000,
-0xFB80,0xCD03,0x0000, 0xFB80,0xCD04,0x0000, 0xFB80,0xCD05,0x0000,
-0xFB80,0xCD06,0x0000, 0xFB80,0xCD07,0x0000, 0xFB80,0xCD08,0x0000,
-0xFB80,0xCD09,0x0000, 0xFB80,0xCD0A,0x0000, 0xFB80,0xCD0B,0x0000,
-0xFB80,0xCD0C,0x0000, 0xFB80,0xCD0D,0x0000, 0xFB80,0xCD0E,0x0000,
-0xFB80,0xCD0F,0x0000, 0xFB80,0xCD10,0x0000, 0xFB80,0xCD11,0x0000,
-0xFB80,0xCD12,0x0000, 0xFB80,0xCD13,0x0000, 0xFB80,0xCD14,0x0000,
-0xFB80,0xCD15,0x0000, 0xFB80,0xCD16,0x0000, 0xFB80,0xCD17,0x0000,
-0xFB80,0xCD18,0x0000, 0xFB80,0xCD19,0x0000, 0xFB80,0xCD1A,0x0000,
-0xFB80,0xCD1B,0x0000, 0xFB80,0xCD1C,0x0000, 0xFB80,0xCD1D,0x0000,
-0xFB80,0xCD1E,0x0000, 0xFB80,0xCD1F,0x0000, 0xFB80,0xCD20,0x0000,
-0xFB80,0xCD21,0x0000, 0xFB80,0xCD22,0x0000, 0xFB80,0xCD23,0x0000,
-0xFB80,0xCD24,0x0000, 0xFB80,0xCD25,0x0000, 0xFB80,0xCD26,0x0000,
-0xFB80,0xCD27,0x0000, 0xFB80,0xCD28,0x0000, 0xFB80,0xCD29,0x0000,
-0xFB80,0xCD2A,0x0000, 0xFB80,0xCD2B,0x0000, 0xFB80,0xCD2C,0x0000,
-0xFB80,0xCD2D,0x0000, 0xFB80,0xCD2E,0x0000, 0xFB80,0xCD2F,0x0000,
-0xFB80,0xCD30,0x0000, 0xFB80,0xCD31,0x0000, 0xFB80,0xCD32,0x0000,
-0xFB80,0xCD33,0x0000, 0xFB80,0xCD34,0x0000, 0xFB80,0xCD35,0x0000,
-0xFB80,0xCD36,0x0000, 0xFB80,0xCD37,0x0000, 0xFB80,0xCD38,0x0000,
-0xFB80,0xCD39,0x0000, 0xFB80,0xCD3A,0x0000, 0xFB80,0xCD3B,0x0000,
-0xFB80,0xCD3C,0x0000, 0xFB80,0xCD3D,0x0000, 0xFB80,0xCD3E,0x0000,
-0xFB80,0xCD3F,0x0000, 0xFB80,0xCD40,0x0000, 0xFB80,0xCD41,0x0000,
-0xFB80,0xCD42,0x0000, 0xFB80,0xCD43,0x0000, 0xFB80,0xCD44,0x0000,
-0xFB80,0xCD45,0x0000, 0xFB80,0xCD46,0x0000, 0xFB80,0xCD47,0x0000,
-0xFB80,0xCD48,0x0000, 0xFB80,0xCD49,0x0000, 0xFB80,0xCD4A,0x0000,
-0xFB80,0xCD4B,0x0000, 0xFB80,0xCD4C,0x0000, 0xFB80,0xCD4D,0x0000,
-0xFB80,0xCD4E,0x0000, 0xFB80,0xCD4F,0x0000, 0xFB80,0xCD50,0x0000,
-0xFB80,0xCD51,0x0000, 0xFB80,0xCD52,0x0000, 0xFB80,0xCD53,0x0000,
-0xFB80,0xCD54,0x0000, 0xFB80,0xCD55,0x0000, 0xFB80,0xCD56,0x0000,
-0xFB80,0xCD57,0x0000, 0xFB80,0xCD58,0x0000, 0xFB80,0xCD59,0x0000,
-0xFB80,0xCD5A,0x0000, 0xFB80,0xCD5B,0x0000, 0xFB80,0xCD5C,0x0000,
-0xFB80,0xCD5D,0x0000, 0xFB80,0xCD5E,0x0000, 0xFB80,0xCD5F,0x0000,
-0xFB80,0xCD60,0x0000, 0xFB80,0xCD61,0x0000, 0xFB80,0xCD62,0x0000,
-0xFB80,0xCD63,0x0000, 0xFB80,0xCD64,0x0000, 0xFB80,0xCD65,0x0000,
-0xFB80,0xCD66,0x0000, 0xFB80,0xCD67,0x0000, 0xFB80,0xCD68,0x0000,
-0xFB80,0xCD69,0x0000, 0xFB80,0xCD6A,0x0000, 0xFB80,0xCD6B,0x0000,
-0xFB80,0xCD6C,0x0000, 0xFB80,0xCD6D,0x0000, 0xFB80,0xCD6E,0x0000,
-0xFB80,0xCD6F,0x0000, 0xFB80,0xCD70,0x0000, 0xFB80,0xCD71,0x0000,
-0xFB80,0xCD72,0x0000, 0xFB80,0xCD73,0x0000, 0xFB80,0xCD74,0x0000,
-0xFB80,0xCD75,0x0000, 0xFB80,0xCD76,0x0000, 0xFB80,0xCD77,0x0000,
-0xFB80,0xCD78,0x0000, 0xFB80,0xCD79,0x0000, 0xFB80,0xCD7A,0x0000,
-0xFB80,0xCD7B,0x0000, 0xFB80,0xCD7C,0x0000, 0xFB80,0xCD7D,0x0000,
-0xFB80,0xCD7E,0x0000, 0xFB80,0xCD7F,0x0000, 0xFB80,0xCD80,0x0000,
-0xFB80,0xCD81,0x0000, 0xFB80,0xCD82,0x0000, 0xFB80,0xCD83,0x0000,
-0xFB80,0xCD84,0x0000, 0xFB80,0xCD85,0x0000, 0xFB80,0xCD86,0x0000,
-0xFB80,0xCD87,0x0000, 0xFB80,0xCD88,0x0000, 0xFB80,0xCD89,0x0000,
-0xFB80,0xCD8A,0x0000, 0xFB80,0xCD8B,0x0000, 0xFB80,0xCD8C,0x0000,
-0xFB80,0xCD8D,0x0000, 0xFB80,0xCD8E,0x0000, 0xFB80,0xCD8F,0x0000,
-0xFB80,0xCD90,0x0000, 0xFB80,0xCD91,0x0000, 0xFB80,0xCD92,0x0000,
-0xFB80,0xCD93,0x0000, 0xFB80,0xCD94,0x0000, 0xFB80,0xCD95,0x0000,
-0xFB80,0xCD96,0x0000, 0xFB80,0xCD97,0x0000, 0xFB80,0xCD98,0x0000,
-0xFB80,0xCD99,0x0000, 0xFB80,0xCD9A,0x0000, 0xFB80,0xCD9B,0x0000,
-0xFB80,0xCD9C,0x0000, 0xFB80,0xCD9D,0x0000, 0xFB80,0xCD9E,0x0000,
-0xFB80,0xCD9F,0x0000, 0xFB80,0xCDA0,0x0000, 0xFB80,0xCDA1,0x0000,
-0xFB80,0xCDA2,0x0000, 0xFB80,0xCDA3,0x0000, 0xFB80,0xCDA4,0x0000,
-0xFB80,0xCDA5,0x0000, 0xFB80,0xCDA6,0x0000, 0xFB80,0xCDA7,0x0000,
-0xFB80,0xCDA8,0x0000, 0xFB80,0xCDA9,0x0000, 0xFB80,0xCDAA,0x0000,
-0xFB80,0xCDAB,0x0000, 0xFB80,0xCDAC,0x0000, 0xFB80,0xCDAD,0x0000,
-0xFB80,0xCDAE,0x0000, 0xFB80,0xCDAF,0x0000, 0xFB80,0xCDB0,0x0000,
-0xFB80,0xCDB1,0x0000, 0xFB80,0xCDB2,0x0000, 0xFB80,0xCDB3,0x0000,
-0xFB80,0xCDB4,0x0000, 0xFB80,0xCDB5,0x0000, 0xFBC0,0xCDB6,0x0000,
-0xFBC0,0xCDB7,0x0000, 0xFBC0,0xCDB8,0x0000, 0xFBC0,0xCDB9,0x0000,
-0xFBC0,0xCDBA,0x0000, 0xFBC0,0xCDBB,0x0000, 0xFBC0,0xCDBC,0x0000,
-0xFBC0,0xCDBD,0x0000, 0xFBC0,0xCDBE,0x0000, 0xFBC0,0xCDBF,0x0000,
-0x0B37,0x0000,0x0000, 0x0B38,0x0000,0x0000, 0x0B39,0x0000,0x0000,
-0x0B3A,0x0000,0x0000, 0x0B3B,0x0000,0x0000, 0x0B3C,0x0000,0x0000,
-0x0B3D,0x0000,0x0000, 0x0B3E,0x0000,0x0000, 0x0B3F,0x0000,0x0000,
-0x0B40,0x0000,0x0000, 0x0B41,0x0000,0x0000, 0x0B42,0x0000,0x0000,
-0x0B43,0x0000,0x0000, 0x0B44,0x0000,0x0000, 0x0B45,0x0000,0x0000,
-0x0B46,0x0000,0x0000, 0x0B47,0x0000,0x0000, 0x0B48,0x0000,0x0000,
-0x0B49,0x0000,0x0000, 0x0B4A,0x0000,0x0000, 0x0B4B,0x0000,0x0000,
-0x0B4C,0x0000,0x0000, 0x0B4D,0x0000,0x0000, 0x0B4E,0x0000,0x0000,
-0x0B4F,0x0000,0x0000, 0x0B50,0x0000,0x0000, 0x0B51,0x0000,0x0000,
-0x0B52,0x0000,0x0000, 0x0B53,0x0000,0x0000, 0x0B54,0x0000,0x0000,
-0x0B55,0x0000,0x0000, 0x0B56,0x0000,0x0000, 0x0B57,0x0000,0x0000,
-0x0B58,0x0000,0x0000, 0x0B59,0x0000,0x0000, 0x0B5A,0x0000,0x0000,
-0x0B5B,0x0000,0x0000, 0x0B5C,0x0000,0x0000, 0x0B5D,0x0000,0x0000,
-0x0B5E,0x0000,0x0000, 0x0B5F,0x0000,0x0000, 0x0B60,0x0000,0x0000,
-0x0B61,0x0000,0x0000, 0x0B62,0x0000,0x0000, 0x0B63,0x0000,0x0000,
-0x0B64,0x0000,0x0000, 0x0B65,0x0000,0x0000, 0x0B66,0x0000,0x0000,
-0x0B67,0x0000,0x0000, 0x0B68,0x0000,0x0000, 0x0B69,0x0000,0x0000,
-0x0B6A,0x0000,0x0000, 0x0B6B,0x0000,0x0000, 0x0B6C,0x0000,0x0000,
-0x0B6D,0x0000,0x0000, 0x0B6E,0x0000,0x0000, 0x0B6F,0x0000,0x0000,
-0x0B70,0x0000,0x0000, 0x0B71,0x0000,0x0000, 0x0B72,0x0000,0x0000,
-0x0B73,0x0000,0x0000, 0x0B74,0x0000,0x0000, 0x0B75,0x0000,0x0000,
-0x0B76,0x0000,0x0000 };
-
-uint16 page0A0data[]= { /* A000 (2 weights per char) */
-0x1EB1,0x0000, 0x1EB2,0x0000, 0x1EB3,0x0000, 0x1EB4,0x0000,
-0x1EB5,0x0000, 0x1EB6,0x0000, 0x1EB7,0x0000, 0x1EB8,0x0000,
-0x1EB9,0x0000, 0x1EBA,0x0000, 0x1EBB,0x0000, 0x1EBC,0x0000,
-0x1EBD,0x0000, 0x1EBE,0x0000, 0x1EBF,0x0000, 0x1EC0,0x0000,
-0x1EC1,0x0000, 0x1EC2,0x0000, 0x1EC3,0x0000, 0x1EC4,0x0000,
-0x1EC5,0x0000, 0x1EC6,0x0000, 0x1EC7,0x0000, 0x1EC8,0x0000,
-0x1EC9,0x0000, 0x1ECA,0x0000, 0x1ECB,0x0000, 0x1ECC,0x0000,
-0x1ECD,0x0000, 0x1ECE,0x0000, 0x1ECF,0x0000, 0x1ED0,0x0000,
-0x1ED1,0x0000, 0x1ED2,0x0000, 0x1ED3,0x0000, 0x1ED4,0x0000,
-0x1ED5,0x0000, 0x1ED6,0x0000, 0x1ED7,0x0000, 0x1ED8,0x0000,
-0x1ED9,0x0000, 0x1EDA,0x0000, 0x1EDB,0x0000, 0x1EDC,0x0000,
-0x1EDD,0x0000, 0x1EDE,0x0000, 0x1EDF,0x0000, 0x1EE0,0x0000,
-0x1EE1,0x0000, 0x1EE2,0x0000, 0x1EE3,0x0000, 0x1EE4,0x0000,
-0x1EE5,0x0000, 0x1EE6,0x0000, 0x1EE7,0x0000, 0x1EE8,0x0000,
-0x1EE9,0x0000, 0x1EEA,0x0000, 0x1EEB,0x0000, 0x1EEC,0x0000,
-0x1EED,0x0000, 0x1EEE,0x0000, 0x1EEF,0x0000, 0x1EF0,0x0000,
-0x1EF1,0x0000, 0x1EF2,0x0000, 0x1EF3,0x0000, 0x1EF4,0x0000,
-0x1EF5,0x0000, 0x1EF6,0x0000, 0x1EF7,0x0000, 0x1EF8,0x0000,
-0x1EF9,0x0000, 0x1EFA,0x0000, 0x1EFB,0x0000, 0x1EFC,0x0000,
-0x1EFD,0x0000, 0x1EFE,0x0000, 0x1EFF,0x0000, 0x1F00,0x0000,
-0x1F01,0x0000, 0x1F02,0x0000, 0x1F03,0x0000, 0x1F04,0x0000,
-0x1F05,0x0000, 0x1F06,0x0000, 0x1F07,0x0000, 0x1F08,0x0000,
-0x1F09,0x0000, 0x1F0A,0x0000, 0x1F0B,0x0000, 0x1F0C,0x0000,
-0x1F0D,0x0000, 0x1F0E,0x0000, 0x1F0F,0x0000, 0x1F10,0x0000,
-0x1F11,0x0000, 0x1F12,0x0000, 0x1F13,0x0000, 0x1F14,0x0000,
-0x1F15,0x0000, 0x1F16,0x0000, 0x1F17,0x0000, 0x1F18,0x0000,
-0x1F19,0x0000, 0x1F1A,0x0000, 0x1F1B,0x0000, 0x1F1C,0x0000,
-0x1F1D,0x0000, 0x1F1E,0x0000, 0x1F1F,0x0000, 0x1F20,0x0000,
-0x1F21,0x0000, 0x1F22,0x0000, 0x1F23,0x0000, 0x1F24,0x0000,
-0x1F25,0x0000, 0x1F26,0x0000, 0x1F27,0x0000, 0x1F28,0x0000,
-0x1F29,0x0000, 0x1F2A,0x0000, 0x1F2B,0x0000, 0x1F2C,0x0000,
-0x1F2D,0x0000, 0x1F2E,0x0000, 0x1F2F,0x0000, 0x1F30,0x0000,
-0x1F31,0x0000, 0x1F32,0x0000, 0x1F33,0x0000, 0x1F34,0x0000,
-0x1F35,0x0000, 0x1F36,0x0000, 0x1F37,0x0000, 0x1F38,0x0000,
-0x1F39,0x0000, 0x1F3A,0x0000, 0x1F3B,0x0000, 0x1F3C,0x0000,
-0x1F3D,0x0000, 0x1F3E,0x0000, 0x1F3F,0x0000, 0x1F40,0x0000,
-0x1F41,0x0000, 0x1F42,0x0000, 0x1F43,0x0000, 0x1F44,0x0000,
-0x1F45,0x0000, 0x1F46,0x0000, 0x1F47,0x0000, 0x1F48,0x0000,
-0x1F49,0x0000, 0x1F4A,0x0000, 0x1F4B,0x0000, 0x1F4C,0x0000,
-0x1F4D,0x0000, 0x1F4E,0x0000, 0x1F4F,0x0000, 0x1F50,0x0000,
-0x1F51,0x0000, 0x1F52,0x0000, 0x1F53,0x0000, 0x1F54,0x0000,
-0x1F55,0x0000, 0x1F56,0x0000, 0x1F57,0x0000, 0x1F58,0x0000,
-0x1F59,0x0000, 0x1F5A,0x0000, 0x1F5B,0x0000, 0x1F5C,0x0000,
-0x1F5D,0x0000, 0x1F5E,0x0000, 0x1F5F,0x0000, 0x1F60,0x0000,
-0x1F61,0x0000, 0x1F62,0x0000, 0x1F63,0x0000, 0x1F64,0x0000,
-0x1F65,0x0000, 0x1F66,0x0000, 0x1F67,0x0000, 0x1F68,0x0000,
-0x1F69,0x0000, 0x1F6A,0x0000, 0x1F6B,0x0000, 0x1F6C,0x0000,
-0x1F6D,0x0000, 0x1F6E,0x0000, 0x1F6F,0x0000, 0x1F70,0x0000,
-0x1F71,0x0000, 0x1F72,0x0000, 0x1F73,0x0000, 0x1F74,0x0000,
-0x1F75,0x0000, 0x1F76,0x0000, 0x1F77,0x0000, 0x1F78,0x0000,
-0x1F79,0x0000, 0x1F7A,0x0000, 0x1F7B,0x0000, 0x1F7C,0x0000,
-0x1F7D,0x0000, 0x1F7E,0x0000, 0x1F7F,0x0000, 0x1F80,0x0000,
-0x1F81,0x0000, 0x1F82,0x0000, 0x1F83,0x0000, 0x1F84,0x0000,
-0x1F85,0x0000, 0x1F86,0x0000, 0x1F87,0x0000, 0x1F88,0x0000,
-0x1F89,0x0000, 0x1F8A,0x0000, 0x1F8B,0x0000, 0x1F8C,0x0000,
-0x1F8D,0x0000, 0x1F8E,0x0000, 0x1F8F,0x0000, 0x1F90,0x0000,
-0x1F91,0x0000, 0x1F92,0x0000, 0x1F93,0x0000, 0x1F94,0x0000,
-0x1F95,0x0000, 0x1F96,0x0000, 0x1F97,0x0000, 0x1F98,0x0000,
-0x1F99,0x0000, 0x1F9A,0x0000, 0x1F9B,0x0000, 0x1F9C,0x0000,
-0x1F9D,0x0000, 0x1F9E,0x0000, 0x1F9F,0x0000, 0x1FA0,0x0000,
-0x1FA1,0x0000, 0x1FA2,0x0000, 0x1FA3,0x0000, 0x1FA4,0x0000,
-0x1FA5,0x0000, 0x1FA6,0x0000, 0x1FA7,0x0000, 0x1FA8,0x0000,
-0x1FA9,0x0000, 0x1FAA,0x0000, 0x1FAB,0x0000, 0x1FAC,0x0000,
-0x1FAD,0x0000, 0x1FAE,0x0000, 0x1FAF,0x0000, 0x1FB0,0x0000
-};
-
-uint16 page0A1data[]= { /* A100 (2 weights per char) */
-0x1FB1,0x0000, 0x1FB2,0x0000, 0x1FB3,0x0000, 0x1FB4,0x0000,
-0x1FB5,0x0000, 0x1FB6,0x0000, 0x1FB7,0x0000, 0x1FB8,0x0000,
-0x1FB9,0x0000, 0x1FBA,0x0000, 0x1FBB,0x0000, 0x1FBC,0x0000,
-0x1FBD,0x0000, 0x1FBE,0x0000, 0x1FBF,0x0000, 0x1FC0,0x0000,
-0x1FC1,0x0000, 0x1FC2,0x0000, 0x1FC3,0x0000, 0x1FC4,0x0000,
-0x1FC5,0x0000, 0x1FC6,0x0000, 0x1FC7,0x0000, 0x1FC8,0x0000,
-0x1FC9,0x0000, 0x1FCA,0x0000, 0x1FCB,0x0000, 0x1FCC,0x0000,
-0x1FCD,0x0000, 0x1FCE,0x0000, 0x1FCF,0x0000, 0x1FD0,0x0000,
-0x1FD1,0x0000, 0x1FD2,0x0000, 0x1FD3,0x0000, 0x1FD4,0x0000,
-0x1FD5,0x0000, 0x1FD6,0x0000, 0x1FD7,0x0000, 0x1FD8,0x0000,
-0x1FD9,0x0000, 0x1FDA,0x0000, 0x1FDB,0x0000, 0x1FDC,0x0000,
-0x1FDD,0x0000, 0x1FDE,0x0000, 0x1FDF,0x0000, 0x1FE0,0x0000,
-0x1FE1,0x0000, 0x1FE2,0x0000, 0x1FE3,0x0000, 0x1FE4,0x0000,
-0x1FE5,0x0000, 0x1FE6,0x0000, 0x1FE7,0x0000, 0x1FE8,0x0000,
-0x1FE9,0x0000, 0x1FEA,0x0000, 0x1FEB,0x0000, 0x1FEC,0x0000,
-0x1FED,0x0000, 0x1FEE,0x0000, 0x1FEF,0x0000, 0x1FF0,0x0000,
-0x1FF1,0x0000, 0x1FF2,0x0000, 0x1FF3,0x0000, 0x1FF4,0x0000,
-0x1FF5,0x0000, 0x1FF6,0x0000, 0x1FF7,0x0000, 0x1FF8,0x0000,
-0x1FF9,0x0000, 0x1FFA,0x0000, 0x1FFB,0x0000, 0x1FFC,0x0000,
-0x1FFD,0x0000, 0x1FFE,0x0000, 0x1FFF,0x0000, 0x2000,0x0000,
-0x2001,0x0000, 0x2002,0x0000, 0x2003,0x0000, 0x2004,0x0000,
-0x2005,0x0000, 0x2006,0x0000, 0x2007,0x0000, 0x2008,0x0000,
-0x2009,0x0000, 0x200A,0x0000, 0x200B,0x0000, 0x200C,0x0000,
-0x200D,0x0000, 0x200E,0x0000, 0x200F,0x0000, 0x2010,0x0000,
-0x2011,0x0000, 0x2012,0x0000, 0x2013,0x0000, 0x2014,0x0000,
-0x2015,0x0000, 0x2016,0x0000, 0x2017,0x0000, 0x2018,0x0000,
-0x2019,0x0000, 0x201A,0x0000, 0x201B,0x0000, 0x201C,0x0000,
-0x201D,0x0000, 0x201E,0x0000, 0x201F,0x0000, 0x2020,0x0000,
-0x2021,0x0000, 0x2022,0x0000, 0x2023,0x0000, 0x2024,0x0000,
-0x2025,0x0000, 0x2026,0x0000, 0x2027,0x0000, 0x2028,0x0000,
-0x2029,0x0000, 0x202A,0x0000, 0x202B,0x0000, 0x202C,0x0000,
-0x202D,0x0000, 0x202E,0x0000, 0x202F,0x0000, 0x2030,0x0000,
-0x2031,0x0000, 0x2032,0x0000, 0x2033,0x0000, 0x2034,0x0000,
-0x2035,0x0000, 0x2036,0x0000, 0x2037,0x0000, 0x2038,0x0000,
-0x2039,0x0000, 0x203A,0x0000, 0x203B,0x0000, 0x203C,0x0000,
-0x203D,0x0000, 0x203E,0x0000, 0x203F,0x0000, 0x2040,0x0000,
-0x2041,0x0000, 0x2042,0x0000, 0x2043,0x0000, 0x2044,0x0000,
-0x2045,0x0000, 0x2046,0x0000, 0x2047,0x0000, 0x2048,0x0000,
-0x2049,0x0000, 0x204A,0x0000, 0x204B,0x0000, 0x204C,0x0000,
-0x204D,0x0000, 0x204E,0x0000, 0x204F,0x0000, 0x2050,0x0000,
-0x2051,0x0000, 0x2052,0x0000, 0x2053,0x0000, 0x2054,0x0000,
-0x2055,0x0000, 0x2056,0x0000, 0x2057,0x0000, 0x2058,0x0000,
-0x2059,0x0000, 0x205A,0x0000, 0x205B,0x0000, 0x205C,0x0000,
-0x205D,0x0000, 0x205E,0x0000, 0x205F,0x0000, 0x2060,0x0000,
-0x2061,0x0000, 0x2062,0x0000, 0x2063,0x0000, 0x2064,0x0000,
-0x2065,0x0000, 0x2066,0x0000, 0x2067,0x0000, 0x2068,0x0000,
-0x2069,0x0000, 0x206A,0x0000, 0x206B,0x0000, 0x206C,0x0000,
-0x206D,0x0000, 0x206E,0x0000, 0x206F,0x0000, 0x2070,0x0000,
-0x2071,0x0000, 0x2072,0x0000, 0x2073,0x0000, 0x2074,0x0000,
-0x2075,0x0000, 0x2076,0x0000, 0x2077,0x0000, 0x2078,0x0000,
-0x2079,0x0000, 0x207A,0x0000, 0x207B,0x0000, 0x207C,0x0000,
-0x207D,0x0000, 0x207E,0x0000, 0x207F,0x0000, 0x2080,0x0000,
-0x2081,0x0000, 0x2082,0x0000, 0x2083,0x0000, 0x2084,0x0000,
-0x2085,0x0000, 0x2086,0x0000, 0x2087,0x0000, 0x2088,0x0000,
-0x2089,0x0000, 0x208A,0x0000, 0x208B,0x0000, 0x208C,0x0000,
-0x208D,0x0000, 0x208E,0x0000, 0x208F,0x0000, 0x2090,0x0000,
-0x2091,0x0000, 0x2092,0x0000, 0x2093,0x0000, 0x2094,0x0000,
-0x2095,0x0000, 0x2096,0x0000, 0x2097,0x0000, 0x2098,0x0000,
-0x2099,0x0000, 0x209A,0x0000, 0x209B,0x0000, 0x209C,0x0000,
-0x209D,0x0000, 0x209E,0x0000, 0x209F,0x0000, 0x20A0,0x0000,
-0x20A1,0x0000, 0x20A2,0x0000, 0x20A3,0x0000, 0x20A4,0x0000,
-0x20A5,0x0000, 0x20A6,0x0000, 0x20A7,0x0000, 0x20A8,0x0000,
-0x20A9,0x0000, 0x20AA,0x0000, 0x20AB,0x0000, 0x20AC,0x0000,
-0x20AD,0x0000, 0x20AE,0x0000, 0x20AF,0x0000, 0x20B0,0x0000
-};
-
-uint16 page0A2data[]= { /* A200 (2 weights per char) */
-0x20B1,0x0000, 0x20B2,0x0000, 0x20B3,0x0000, 0x20B4,0x0000,
-0x20B5,0x0000, 0x20B6,0x0000, 0x20B7,0x0000, 0x20B8,0x0000,
-0x20B9,0x0000, 0x20BA,0x0000, 0x20BB,0x0000, 0x20BC,0x0000,
-0x20BD,0x0000, 0x20BE,0x0000, 0x20BF,0x0000, 0x20C0,0x0000,
-0x20C1,0x0000, 0x20C2,0x0000, 0x20C3,0x0000, 0x20C4,0x0000,
-0x20C5,0x0000, 0x20C6,0x0000, 0x20C7,0x0000, 0x20C8,0x0000,
-0x20C9,0x0000, 0x20CA,0x0000, 0x20CB,0x0000, 0x20CC,0x0000,
-0x20CD,0x0000, 0x20CE,0x0000, 0x20CF,0x0000, 0x20D0,0x0000,
-0x20D1,0x0000, 0x20D2,0x0000, 0x20D3,0x0000, 0x20D4,0x0000,
-0x20D5,0x0000, 0x20D6,0x0000, 0x20D7,0x0000, 0x20D8,0x0000,
-0x20D9,0x0000, 0x20DA,0x0000, 0x20DB,0x0000, 0x20DC,0x0000,
-0x20DD,0x0000, 0x20DE,0x0000, 0x20DF,0x0000, 0x20E0,0x0000,
-0x20E1,0x0000, 0x20E2,0x0000, 0x20E3,0x0000, 0x20E4,0x0000,
-0x20E5,0x0000, 0x20E6,0x0000, 0x20E7,0x0000, 0x20E8,0x0000,
-0x20E9,0x0000, 0x20EA,0x0000, 0x20EB,0x0000, 0x20EC,0x0000,
-0x20ED,0x0000, 0x20EE,0x0000, 0x20EF,0x0000, 0x20F0,0x0000,
-0x20F1,0x0000, 0x20F2,0x0000, 0x20F3,0x0000, 0x20F4,0x0000,
-0x20F5,0x0000, 0x20F6,0x0000, 0x20F7,0x0000, 0x20F8,0x0000,
-0x20F9,0x0000, 0x20FA,0x0000, 0x20FB,0x0000, 0x20FC,0x0000,
-0x20FD,0x0000, 0x20FE,0x0000, 0x20FF,0x0000, 0x2100,0x0000,
-0x2101,0x0000, 0x2102,0x0000, 0x2103,0x0000, 0x2104,0x0000,
-0x2105,0x0000, 0x2106,0x0000, 0x2107,0x0000, 0x2108,0x0000,
-0x2109,0x0000, 0x210A,0x0000, 0x210B,0x0000, 0x210C,0x0000,
-0x210D,0x0000, 0x210E,0x0000, 0x210F,0x0000, 0x2110,0x0000,
-0x2111,0x0000, 0x2112,0x0000, 0x2113,0x0000, 0x2114,0x0000,
-0x2115,0x0000, 0x2116,0x0000, 0x2117,0x0000, 0x2118,0x0000,
-0x2119,0x0000, 0x211A,0x0000, 0x211B,0x0000, 0x211C,0x0000,
-0x211D,0x0000, 0x211E,0x0000, 0x211F,0x0000, 0x2120,0x0000,
-0x2121,0x0000, 0x2122,0x0000, 0x2123,0x0000, 0x2124,0x0000,
-0x2125,0x0000, 0x2126,0x0000, 0x2127,0x0000, 0x2128,0x0000,
-0x2129,0x0000, 0x212A,0x0000, 0x212B,0x0000, 0x212C,0x0000,
-0x212D,0x0000, 0x212E,0x0000, 0x212F,0x0000, 0x2130,0x0000,
-0x2131,0x0000, 0x2132,0x0000, 0x2133,0x0000, 0x2134,0x0000,
-0x2135,0x0000, 0x2136,0x0000, 0x2137,0x0000, 0x2138,0x0000,
-0x2139,0x0000, 0x213A,0x0000, 0x213B,0x0000, 0x213C,0x0000,
-0x213D,0x0000, 0x213E,0x0000, 0x213F,0x0000, 0x2140,0x0000,
-0x2141,0x0000, 0x2142,0x0000, 0x2143,0x0000, 0x2144,0x0000,
-0x2145,0x0000, 0x2146,0x0000, 0x2147,0x0000, 0x2148,0x0000,
-0x2149,0x0000, 0x214A,0x0000, 0x214B,0x0000, 0x214C,0x0000,
-0x214D,0x0000, 0x214E,0x0000, 0x214F,0x0000, 0x2150,0x0000,
-0x2151,0x0000, 0x2152,0x0000, 0x2153,0x0000, 0x2154,0x0000,
-0x2155,0x0000, 0x2156,0x0000, 0x2157,0x0000, 0x2158,0x0000,
-0x2159,0x0000, 0x215A,0x0000, 0x215B,0x0000, 0x215C,0x0000,
-0x215D,0x0000, 0x215E,0x0000, 0x215F,0x0000, 0x2160,0x0000,
-0x2161,0x0000, 0x2162,0x0000, 0x2163,0x0000, 0x2164,0x0000,
-0x2165,0x0000, 0x2166,0x0000, 0x2167,0x0000, 0x2168,0x0000,
-0x2169,0x0000, 0x216A,0x0000, 0x216B,0x0000, 0x216C,0x0000,
-0x216D,0x0000, 0x216E,0x0000, 0x216F,0x0000, 0x2170,0x0000,
-0x2171,0x0000, 0x2172,0x0000, 0x2173,0x0000, 0x2174,0x0000,
-0x2175,0x0000, 0x2176,0x0000, 0x2177,0x0000, 0x2178,0x0000,
-0x2179,0x0000, 0x217A,0x0000, 0x217B,0x0000, 0x217C,0x0000,
-0x217D,0x0000, 0x217E,0x0000, 0x217F,0x0000, 0x2180,0x0000,
-0x2181,0x0000, 0x2182,0x0000, 0x2183,0x0000, 0x2184,0x0000,
-0x2185,0x0000, 0x2186,0x0000, 0x2187,0x0000, 0x2188,0x0000,
-0x2189,0x0000, 0x218A,0x0000, 0x218B,0x0000, 0x218C,0x0000,
-0x218D,0x0000, 0x218E,0x0000, 0x218F,0x0000, 0x2190,0x0000,
-0x2191,0x0000, 0x2192,0x0000, 0x2193,0x0000, 0x2194,0x0000,
-0x2195,0x0000, 0x2196,0x0000, 0x2197,0x0000, 0x2198,0x0000,
-0x2199,0x0000, 0x219A,0x0000, 0x219B,0x0000, 0x219C,0x0000,
-0x219D,0x0000, 0x219E,0x0000, 0x219F,0x0000, 0x21A0,0x0000,
-0x21A1,0x0000, 0x21A2,0x0000, 0x21A3,0x0000, 0x21A4,0x0000,
-0x21A5,0x0000, 0x21A6,0x0000, 0x21A7,0x0000, 0x21A8,0x0000,
-0x21A9,0x0000, 0x21AA,0x0000, 0x21AB,0x0000, 0x21AC,0x0000,
-0x21AD,0x0000, 0x21AE,0x0000, 0x21AF,0x0000, 0x21B0,0x0000
-};
-
-uint16 page0A3data[]= { /* A300 (2 weights per char) */
-0x21B1,0x0000, 0x21B2,0x0000, 0x21B3,0x0000, 0x21B4,0x0000,
-0x21B5,0x0000, 0x21B6,0x0000, 0x21B7,0x0000, 0x21B8,0x0000,
-0x21B9,0x0000, 0x21BA,0x0000, 0x21BB,0x0000, 0x21BC,0x0000,
-0x21BD,0x0000, 0x21BE,0x0000, 0x21BF,0x0000, 0x21C0,0x0000,
-0x21C1,0x0000, 0x21C2,0x0000, 0x21C3,0x0000, 0x21C4,0x0000,
-0x21C5,0x0000, 0x21C6,0x0000, 0x21C7,0x0000, 0x21C8,0x0000,
-0x21C9,0x0000, 0x21CA,0x0000, 0x21CB,0x0000, 0x21CC,0x0000,
-0x21CD,0x0000, 0x21CE,0x0000, 0x21CF,0x0000, 0x21D0,0x0000,
-0x21D1,0x0000, 0x21D2,0x0000, 0x21D3,0x0000, 0x21D4,0x0000,
-0x21D5,0x0000, 0x21D6,0x0000, 0x21D7,0x0000, 0x21D8,0x0000,
-0x21D9,0x0000, 0x21DA,0x0000, 0x21DB,0x0000, 0x21DC,0x0000,
-0x21DD,0x0000, 0x21DE,0x0000, 0x21DF,0x0000, 0x21E0,0x0000,
-0x21E1,0x0000, 0x21E2,0x0000, 0x21E3,0x0000, 0x21E4,0x0000,
-0x21E5,0x0000, 0x21E6,0x0000, 0x21E7,0x0000, 0x21E8,0x0000,
-0x21E9,0x0000, 0x21EA,0x0000, 0x21EB,0x0000, 0x21EC,0x0000,
-0x21ED,0x0000, 0x21EE,0x0000, 0x21EF,0x0000, 0x21F0,0x0000,
-0x21F1,0x0000, 0x21F2,0x0000, 0x21F3,0x0000, 0x21F4,0x0000,
-0x21F5,0x0000, 0x21F6,0x0000, 0x21F7,0x0000, 0x21F8,0x0000,
-0x21F9,0x0000, 0x21FA,0x0000, 0x21FB,0x0000, 0x21FC,0x0000,
-0x21FD,0x0000, 0x21FE,0x0000, 0x21FF,0x0000, 0x2200,0x0000,
-0x2201,0x0000, 0x2202,0x0000, 0x2203,0x0000, 0x2204,0x0000,
-0x2205,0x0000, 0x2206,0x0000, 0x2207,0x0000, 0x2208,0x0000,
-0x2209,0x0000, 0x220A,0x0000, 0x220B,0x0000, 0x220C,0x0000,
-0x220D,0x0000, 0x220E,0x0000, 0x220F,0x0000, 0x2210,0x0000,
-0x2211,0x0000, 0x2212,0x0000, 0x2213,0x0000, 0x2214,0x0000,
-0x2215,0x0000, 0x2216,0x0000, 0x2217,0x0000, 0x2218,0x0000,
-0x2219,0x0000, 0x221A,0x0000, 0x221B,0x0000, 0x221C,0x0000,
-0x221D,0x0000, 0x221E,0x0000, 0x221F,0x0000, 0x2220,0x0000,
-0x2221,0x0000, 0x2222,0x0000, 0x2223,0x0000, 0x2224,0x0000,
-0x2225,0x0000, 0x2226,0x0000, 0x2227,0x0000, 0x2228,0x0000,
-0x2229,0x0000, 0x222A,0x0000, 0x222B,0x0000, 0x222C,0x0000,
-0x222D,0x0000, 0x222E,0x0000, 0x222F,0x0000, 0x2230,0x0000,
-0x2231,0x0000, 0x2232,0x0000, 0x2233,0x0000, 0x2234,0x0000,
-0x2235,0x0000, 0x2236,0x0000, 0x2237,0x0000, 0x2238,0x0000,
-0x2239,0x0000, 0x223A,0x0000, 0x223B,0x0000, 0x223C,0x0000,
-0x223D,0x0000, 0x223E,0x0000, 0x223F,0x0000, 0x2240,0x0000,
-0x2241,0x0000, 0x2242,0x0000, 0x2243,0x0000, 0x2244,0x0000,
-0x2245,0x0000, 0x2246,0x0000, 0x2247,0x0000, 0x2248,0x0000,
-0x2249,0x0000, 0x224A,0x0000, 0x224B,0x0000, 0x224C,0x0000,
-0x224D,0x0000, 0x224E,0x0000, 0x224F,0x0000, 0x2250,0x0000,
-0x2251,0x0000, 0x2252,0x0000, 0x2253,0x0000, 0x2254,0x0000,
-0x2255,0x0000, 0x2256,0x0000, 0x2257,0x0000, 0x2258,0x0000,
-0x2259,0x0000, 0x225A,0x0000, 0x225B,0x0000, 0x225C,0x0000,
-0x225D,0x0000, 0x225E,0x0000, 0x225F,0x0000, 0x2260,0x0000,
-0x2261,0x0000, 0x2262,0x0000, 0x2263,0x0000, 0x2264,0x0000,
-0x2265,0x0000, 0x2266,0x0000, 0x2267,0x0000, 0x2268,0x0000,
-0x2269,0x0000, 0x226A,0x0000, 0x226B,0x0000, 0x226C,0x0000,
-0x226D,0x0000, 0x226E,0x0000, 0x226F,0x0000, 0x2270,0x0000,
-0x2271,0x0000, 0x2272,0x0000, 0x2273,0x0000, 0x2274,0x0000,
-0x2275,0x0000, 0x2276,0x0000, 0x2277,0x0000, 0x2278,0x0000,
-0x2279,0x0000, 0x227A,0x0000, 0x227B,0x0000, 0x227C,0x0000,
-0x227D,0x0000, 0x227E,0x0000, 0x227F,0x0000, 0x2280,0x0000,
-0x2281,0x0000, 0x2282,0x0000, 0x2283,0x0000, 0x2284,0x0000,
-0x2285,0x0000, 0x2286,0x0000, 0x2287,0x0000, 0x2288,0x0000,
-0x2289,0x0000, 0x228A,0x0000, 0x228B,0x0000, 0x228C,0x0000,
-0x228D,0x0000, 0x228E,0x0000, 0x228F,0x0000, 0x2290,0x0000,
-0x2291,0x0000, 0x2292,0x0000, 0x2293,0x0000, 0x2294,0x0000,
-0x2295,0x0000, 0x2296,0x0000, 0x2297,0x0000, 0x2298,0x0000,
-0x2299,0x0000, 0x229A,0x0000, 0x229B,0x0000, 0x229C,0x0000,
-0x229D,0x0000, 0x229E,0x0000, 0x229F,0x0000, 0x22A0,0x0000,
-0x22A1,0x0000, 0x22A2,0x0000, 0x22A3,0x0000, 0x22A4,0x0000,
-0x22A5,0x0000, 0x22A6,0x0000, 0x22A7,0x0000, 0x22A8,0x0000,
-0x22A9,0x0000, 0x22AA,0x0000, 0x22AB,0x0000, 0x22AC,0x0000,
-0x22AD,0x0000, 0x22AE,0x0000, 0x22AF,0x0000, 0x22B0,0x0000
-};
-
-uint16 page0A4data[]= { /* A400 (3 weights per char) */
-0x22B1,0x0000,0x0000, 0x22B2,0x0000,0x0000, 0x22B3,0x0000,0x0000,
-0x22B4,0x0000,0x0000, 0x22B5,0x0000,0x0000, 0x22B6,0x0000,0x0000,
-0x22B7,0x0000,0x0000, 0x22B8,0x0000,0x0000, 0x22B9,0x0000,0x0000,
-0x22BA,0x0000,0x0000, 0x22BB,0x0000,0x0000, 0x22BC,0x0000,0x0000,
-0x22BD,0x0000,0x0000, 0x22BE,0x0000,0x0000, 0x22BF,0x0000,0x0000,
-0x22C0,0x0000,0x0000, 0x22C1,0x0000,0x0000, 0x22C2,0x0000,0x0000,
-0x22C3,0x0000,0x0000, 0x22C4,0x0000,0x0000, 0x22C5,0x0000,0x0000,
-0x22C6,0x0000,0x0000, 0x22C7,0x0000,0x0000, 0x22C8,0x0000,0x0000,
-0x22C9,0x0000,0x0000, 0x22CA,0x0000,0x0000, 0x22CB,0x0000,0x0000,
-0x22CC,0x0000,0x0000, 0x22CD,0x0000,0x0000, 0x22CE,0x0000,0x0000,
-0x22CF,0x0000,0x0000, 0x22D0,0x0000,0x0000, 0x22D1,0x0000,0x0000,
-0x22D2,0x0000,0x0000, 0x22D3,0x0000,0x0000, 0x22D4,0x0000,0x0000,
-0x22D5,0x0000,0x0000, 0x22D6,0x0000,0x0000, 0x22D7,0x0000,0x0000,
-0x22D8,0x0000,0x0000, 0x22D9,0x0000,0x0000, 0x22DA,0x0000,0x0000,
-0x22DB,0x0000,0x0000, 0x22DC,0x0000,0x0000, 0x22DD,0x0000,0x0000,
-0x22DE,0x0000,0x0000, 0x22DF,0x0000,0x0000, 0x22E0,0x0000,0x0000,
-0x22E1,0x0000,0x0000, 0x22E2,0x0000,0x0000, 0x22E3,0x0000,0x0000,
-0x22E4,0x0000,0x0000, 0x22E5,0x0000,0x0000, 0x22E6,0x0000,0x0000,
-0x22E7,0x0000,0x0000, 0x22E8,0x0000,0x0000, 0x22E9,0x0000,0x0000,
-0x22EA,0x0000,0x0000, 0x22EB,0x0000,0x0000, 0x22EC,0x0000,0x0000,
-0x22ED,0x0000,0x0000, 0x22EE,0x0000,0x0000, 0x22EF,0x0000,0x0000,
-0x22F0,0x0000,0x0000, 0x22F1,0x0000,0x0000, 0x22F2,0x0000,0x0000,
-0x22F3,0x0000,0x0000, 0x22F4,0x0000,0x0000, 0x22F5,0x0000,0x0000,
-0x22F6,0x0000,0x0000, 0x22F7,0x0000,0x0000, 0x22F8,0x0000,0x0000,
-0x22F9,0x0000,0x0000, 0x22FA,0x0000,0x0000, 0x22FB,0x0000,0x0000,
-0x22FC,0x0000,0x0000, 0x22FD,0x0000,0x0000, 0x22FE,0x0000,0x0000,
-0x22FF,0x0000,0x0000, 0x2300,0x0000,0x0000, 0x2301,0x0000,0x0000,
-0x2302,0x0000,0x0000, 0x2303,0x0000,0x0000, 0x2304,0x0000,0x0000,
-0x2305,0x0000,0x0000, 0x2306,0x0000,0x0000, 0x2307,0x0000,0x0000,
-0x2308,0x0000,0x0000, 0x2309,0x0000,0x0000, 0x230A,0x0000,0x0000,
-0x230B,0x0000,0x0000, 0x230C,0x0000,0x0000, 0x230D,0x0000,0x0000,
-0x230E,0x0000,0x0000, 0x230F,0x0000,0x0000, 0x2310,0x0000,0x0000,
-0x2311,0x0000,0x0000, 0x2312,0x0000,0x0000, 0x2313,0x0000,0x0000,
-0x2314,0x0000,0x0000, 0x2315,0x0000,0x0000, 0x2316,0x0000,0x0000,
-0x2317,0x0000,0x0000, 0x2318,0x0000,0x0000, 0x2319,0x0000,0x0000,
-0x231A,0x0000,0x0000, 0x231B,0x0000,0x0000, 0x231C,0x0000,0x0000,
-0x231D,0x0000,0x0000, 0x231E,0x0000,0x0000, 0x231F,0x0000,0x0000,
-0x2320,0x0000,0x0000, 0x2321,0x0000,0x0000, 0x2322,0x0000,0x0000,
-0x2323,0x0000,0x0000, 0x2324,0x0000,0x0000, 0x2325,0x0000,0x0000,
-0x2326,0x0000,0x0000, 0x2327,0x0000,0x0000, 0x2328,0x0000,0x0000,
-0x2329,0x0000,0x0000, 0x232A,0x0000,0x0000, 0x232B,0x0000,0x0000,
-0x232C,0x0000,0x0000, 0x232D,0x0000,0x0000, 0x232E,0x0000,0x0000,
-0x232F,0x0000,0x0000, 0x2330,0x0000,0x0000, 0x2331,0x0000,0x0000,
-0x2332,0x0000,0x0000, 0x2333,0x0000,0x0000, 0x2334,0x0000,0x0000,
-0x2335,0x0000,0x0000, 0x2336,0x0000,0x0000, 0x2337,0x0000,0x0000,
-0x2338,0x0000,0x0000, 0x2339,0x0000,0x0000, 0x233A,0x0000,0x0000,
-0x233B,0x0000,0x0000, 0x233C,0x0000,0x0000, 0x233D,0x0000,0x0000,
-0xFBC1,0xA48D,0x0000, 0xFBC1,0xA48E,0x0000, 0xFBC1,0xA48F,0x0000,
-0x0BCE,0x0000,0x0000, 0x0BCF,0x0000,0x0000, 0x0BD0,0x0000,0x0000,
-0x0BD1,0x0000,0x0000, 0x0BD2,0x0000,0x0000, 0x0BD3,0x0000,0x0000,
-0x0BD4,0x0000,0x0000, 0x0BD5,0x0000,0x0000, 0x0BD6,0x0000,0x0000,
-0x0BD7,0x0000,0x0000, 0x0BD8,0x0000,0x0000, 0x0BD9,0x0000,0x0000,
-0x0BDA,0x0000,0x0000, 0x0BDB,0x0000,0x0000, 0x0BDC,0x0000,0x0000,
-0x0BDD,0x0000,0x0000, 0x0BDE,0x0000,0x0000, 0x0BDF,0x0000,0x0000,
-0x0BE0,0x0000,0x0000, 0x0BE1,0x0000,0x0000, 0x0BE2,0x0000,0x0000,
-0x0BE3,0x0000,0x0000, 0x0BE4,0x0000,0x0000, 0x0BE5,0x0000,0x0000,
-0x0BE6,0x0000,0x0000, 0x0BE7,0x0000,0x0000, 0x0BE8,0x0000,0x0000,
-0x0BE9,0x0000,0x0000, 0x0BEA,0x0000,0x0000, 0x0BEB,0x0000,0x0000,
-0x0BEC,0x0000,0x0000, 0x0BED,0x0000,0x0000, 0x0BEE,0x0000,0x0000,
-0x0BEF,0x0000,0x0000, 0x0BF0,0x0000,0x0000, 0x0BF1,0x0000,0x0000,
-0x0BF2,0x0000,0x0000, 0x0BF3,0x0000,0x0000, 0x0BF4,0x0000,0x0000,
-0x0BF5,0x0000,0x0000, 0x0BF6,0x0000,0x0000, 0x0BF7,0x0000,0x0000,
-0x0BF8,0x0000,0x0000, 0x0BF9,0x0000,0x0000, 0x0BFA,0x0000,0x0000,
-0x0BFB,0x0000,0x0000, 0x0BFC,0x0000,0x0000, 0x0BFD,0x0000,0x0000,
-0x0BFE,0x0000,0x0000, 0x0BFF,0x0000,0x0000, 0x0C00,0x0000,0x0000,
-0x0C01,0x0000,0x0000, 0x0C02,0x0000,0x0000, 0x0C03,0x0000,0x0000,
-0x0C04,0x0000,0x0000, 0xFBC1,0xA4C7,0x0000, 0xFBC1,0xA4C8,0x0000,
-0xFBC1,0xA4C9,0x0000, 0xFBC1,0xA4CA,0x0000, 0xFBC1,0xA4CB,0x0000,
-0xFBC1,0xA4CC,0x0000, 0xFBC1,0xA4CD,0x0000, 0xFBC1,0xA4CE,0x0000,
-0xFBC1,0xA4CF,0x0000, 0xFBC1,0xA4D0,0x0000, 0xFBC1,0xA4D1,0x0000,
-0xFBC1,0xA4D2,0x0000, 0xFBC1,0xA4D3,0x0000, 0xFBC1,0xA4D4,0x0000,
-0xFBC1,0xA4D5,0x0000, 0xFBC1,0xA4D6,0x0000, 0xFBC1,0xA4D7,0x0000,
-0xFBC1,0xA4D8,0x0000, 0xFBC1,0xA4D9,0x0000, 0xFBC1,0xA4DA,0x0000,
-0xFBC1,0xA4DB,0x0000, 0xFBC1,0xA4DC,0x0000, 0xFBC1,0xA4DD,0x0000,
-0xFBC1,0xA4DE,0x0000, 0xFBC1,0xA4DF,0x0000, 0xFBC1,0xA4E0,0x0000,
-0xFBC1,0xA4E1,0x0000, 0xFBC1,0xA4E2,0x0000, 0xFBC1,0xA4E3,0x0000,
-0xFBC1,0xA4E4,0x0000, 0xFBC1,0xA4E5,0x0000, 0xFBC1,0xA4E6,0x0000,
-0xFBC1,0xA4E7,0x0000, 0xFBC1,0xA4E8,0x0000, 0xFBC1,0xA4E9,0x0000,
-0xFBC1,0xA4EA,0x0000, 0xFBC1,0xA4EB,0x0000, 0xFBC1,0xA4EC,0x0000,
-0xFBC1,0xA4ED,0x0000, 0xFBC1,0xA4EE,0x0000, 0xFBC1,0xA4EF,0x0000,
-0xFBC1,0xA4F0,0x0000, 0xFBC1,0xA4F1,0x0000, 0xFBC1,0xA4F2,0x0000,
-0xFBC1,0xA4F3,0x0000, 0xFBC1,0xA4F4,0x0000, 0xFBC1,0xA4F5,0x0000,
-0xFBC1,0xA4F6,0x0000, 0xFBC1,0xA4F7,0x0000, 0xFBC1,0xA4F8,0x0000,
-0xFBC1,0xA4F9,0x0000, 0xFBC1,0xA4FA,0x0000, 0xFBC1,0xA4FB,0x0000,
-0xFBC1,0xA4FC,0x0000, 0xFBC1,0xA4FD,0x0000, 0xFBC1,0xA4FE,0x0000,
-0xFBC1,0xA4FF,0x0000 };
-
-uint16 page0F9data[]= { /* F900 (3 weights per char) */
-0xFB41,0x8C48,0x0000, 0xFB40,0xE6F4,0x0000, 0xFB41,0x8ECA,0x0000,
-0xFB41,0x8CC8,0x0000, 0xFB40,0xEED1,0x0000, 0xFB40,0xCE32,0x0000,
-0xFB40,0xD3E5,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000,
-0xFB40,0xD951,0x0000, 0xFB41,0x91D1,0x0000, 0xFB40,0xD587,0x0000,
-0xFB40,0xD948,0x0000, 0xFB40,0xE1F6,0x0000, 0xFB40,0xF669,0x0000,
-0xFB40,0xFF85,0x0000, 0xFB41,0x863F,0x0000, 0xFB41,0x87BA,0x0000,
-0xFB41,0x88F8,0x0000, 0xFB41,0x908F,0x0000, 0xFB40,0xEA02,0x0000,
-0xFB40,0xED1B,0x0000, 0xFB40,0xF0D9,0x0000, 0xFB40,0xF3DE,0x0000,
-0xFB41,0x843D,0x0000, 0xFB41,0x916A,0x0000, 0xFB41,0x99F1,0x0000,
-0xFB40,0xCE82,0x0000, 0xFB40,0xD375,0x0000, 0xFB40,0xEB04,0x0000,
-0xFB40,0xF21B,0x0000, 0xFB41,0x862D,0x0000, 0xFB41,0x9E1E,0x0000,
-0xFB40,0xDD50,0x0000, 0xFB40,0xEFEB,0x0000, 0xFB41,0x85CD,0x0000,
-0xFB41,0x8964,0x0000, 0xFB40,0xE2C9,0x0000, 0xFB41,0x81D8,0x0000,
-0xFB41,0x881F,0x0000, 0xFB40,0xDECA,0x0000, 0xFB40,0xE717,0x0000,
-0xFB40,0xED6A,0x0000, 0xFB40,0xF2FC,0x0000, 0xFB41,0x90CE,0x0000,
-0xFB40,0xCF86,0x0000, 0xFB40,0xD1B7,0x0000, 0xFB40,0xD2DE,0x0000,
-0xFB40,0xE4C4,0x0000, 0xFB40,0xEAD3,0x0000, 0xFB40,0xF210,0x0000,
-0xFB40,0xF6E7,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x8606,0x0000,
-0xFB41,0x865C,0x0000, 0xFB41,0x8DEF,0x0000, 0xFB41,0x9732,0x0000,
-0xFB41,0x9B6F,0x0000, 0xFB41,0x9DFA,0x0000, 0xFB40,0xF88C,0x0000,
-0xFB40,0xF97F,0x0000, 0xFB40,0xFDA0,0x0000, 0xFB41,0x83C9,0x0000,
-0xFB41,0x9304,0x0000, 0xFB41,0x9E7F,0x0000, 0xFB41,0x8AD6,0x0000,
-0xFB40,0xD8DF,0x0000, 0xFB40,0xDF04,0x0000, 0xFB40,0xFC60,0x0000,
-0xFB41,0x807E,0x0000, 0xFB40,0xF262,0x0000, 0xFB40,0xF8CA,0x0000,
-0xFB41,0x8CC2,0x0000, 0xFB41,0x96F7,0x0000, 0xFB40,0xD8D8,0x0000,
-0xFB40,0xDC62,0x0000, 0xFB40,0xEA13,0x0000, 0xFB40,0xEDDA,0x0000,
-0xFB40,0xEF0F,0x0000, 0xFB40,0xFD2F,0x0000, 0xFB40,0xFE37,0x0000,
-0xFB41,0x964B,0x0000, 0xFB40,0xD2D2,0x0000, 0xFB41,0x808B,0x0000,
-0xFB40,0xD1DC,0x0000, 0xFB40,0xD1CC,0x0000, 0xFB40,0xFA1C,0x0000,
-0xFB40,0xFDBE,0x0000, 0xFB41,0x83F1,0x0000, 0xFB41,0x9675,0x0000,
-0xFB41,0x8B80,0x0000, 0xFB40,0xE2CF,0x0000, 0xFB40,0xEA02,0x0000,
-0xFB41,0x8AFE,0x0000, 0xFB40,0xCE39,0x0000, 0xFB40,0xDBE7,0x0000,
-0xFB40,0xE012,0x0000, 0xFB40,0xF387,0x0000, 0xFB40,0xF570,0x0000,
-0xFB40,0xD317,0x0000, 0xFB40,0xF8FB,0x0000, 0xFB40,0xCFBF,0x0000,
-0xFB40,0xDFA9,0x0000, 0xFB40,0xCE0D,0x0000, 0xFB40,0xECCC,0x0000,
-0xFB40,0xE578,0x0000, 0xFB40,0xFD22,0x0000, 0xFB40,0xD3C3,0x0000,
-0xFB40,0xD85E,0x0000, 0xFB40,0xF701,0x0000, 0xFB41,0x8449,0x0000,
-0xFB41,0x8AAA,0x0000, 0xFB40,0xEBBA,0x0000, 0xFB41,0x8FB0,0x0000,
-0xFB40,0xEC88,0x0000, 0xFB40,0xE2FE,0x0000, 0xFB41,0x82E5,0x0000,
-0xFB40,0xE3A0,0x0000, 0xFB40,0xF565,0x0000, 0xFB40,0xCEAE,0x0000,
-0xFB40,0xD169,0x0000, 0xFB40,0xD1C9,0x0000, 0xFB40,0xE881,0x0000,
-0xFB40,0xFCE7,0x0000, 0xFB41,0x826F,0x0000, 0xFB41,0x8AD2,0x0000,
-0xFB41,0x91CF,0x0000, 0xFB40,0xD2F5,0x0000, 0xFB40,0xD442,0x0000,
-0xFB40,0xD973,0x0000, 0xFB40,0xDEEC,0x0000, 0xFB40,0xE5C5,0x0000,
-0xFB40,0xEFFE,0x0000, 0xFB40,0xF92A,0x0000, 0xFB41,0x95AD,0x0000,
-0xFB41,0x9A6A,0x0000, 0xFB41,0x9E97,0x0000, 0xFB41,0x9ECE,0x0000,
-0xFB40,0xD29B,0x0000, 0xFB40,0xE6C6,0x0000, 0xFB40,0xEB77,0x0000,
-0xFB41,0x8F62,0x0000, 0xFB40,0xDE74,0x0000, 0xFB40,0xE190,0x0000,
-0xFB40,0xE200,0x0000, 0xFB40,0xE49A,0x0000, 0xFB40,0xEF23,0x0000,
-0xFB40,0xF149,0x0000, 0xFB40,0xF489,0x0000, 0xFB40,0xF9CA,0x0000,
-0xFB40,0xFDF4,0x0000, 0xFB41,0x806F,0x0000, 0xFB41,0x8F26,0x0000,
-0xFB41,0x84EE,0x0000, 0xFB41,0x9023,0x0000, 0xFB41,0x934A,0x0000,
-0xFB40,0xD217,0x0000, 0xFB40,0xD2A3,0x0000, 0xFB40,0xD4BD,0x0000,
-0xFB40,0xF0C8,0x0000, 0xFB41,0x88C2,0x0000, 0xFB41,0x8AAA,0x0000,
-0xFB40,0xDEC9,0x0000, 0xFB40,0xDFF5,0x0000, 0xFB40,0xE37B,0x0000,
-0xFB40,0xEBAE,0x0000, 0xFB40,0xFC3E,0x0000, 0xFB40,0xF375,0x0000,
-0xFB40,0xCEE4,0x0000, 0xFB40,0xD6F9,0x0000, 0xFB40,0xDBE7,0x0000,
-0xFB40,0xDDBA,0x0000, 0xFB40,0xE01C,0x0000, 0xFB40,0xF3B2,0x0000,
-0xFB40,0xF469,0x0000, 0xFB40,0xFF9A,0x0000, 0xFB41,0x8046,0x0000,
-0xFB41,0x9234,0x0000, 0xFB41,0x96F6,0x0000, 0xFB41,0x9748,0x0000,
-0xFB41,0x9818,0x0000, 0xFB40,0xCF8B,0x0000, 0xFB40,0xF9AE,0x0000,
-0xFB41,0x91B4,0x0000, 0xFB41,0x96B8,0x0000, 0xFB40,0xE0E1,0x0000,
-0xFB40,0xCE86,0x0000, 0xFB40,0xD0DA,0x0000, 0xFB40,0xDBEE,0x0000,
-0xFB40,0xDC3F,0x0000, 0xFB40,0xE599,0x0000, 0xFB40,0xEA02,0x0000,
-0xFB40,0xF1CE,0x0000, 0xFB40,0xF642,0x0000, 0xFB41,0x84FC,0x0000,
-0xFB41,0x907C,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB40,0xE688,0x0000,
-0xFB41,0x962E,0x0000, 0xFB40,0xD289,0x0000, 0xFB40,0xE77B,0x0000,
-0xFB40,0xE7F3,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEE9C,0x0000,
-0xFB40,0xF409,0x0000, 0xFB40,0xF559,0x0000, 0xFB40,0xF86B,0x0000,
-0xFB40,0xFD10,0x0000, 0xFB41,0x985E,0x0000, 0xFB40,0xD16D,0x0000,
-0xFB40,0xE22E,0x0000, 0xFB41,0x9678,0x0000, 0xFB40,0xD02B,0x0000,
-0xFB40,0xDD19,0x0000, 0xFB40,0xEDEA,0x0000, 0xFB41,0x8F2A,0x0000,
-0xFB40,0xDF8B,0x0000, 0xFB40,0xE144,0x0000, 0xFB40,0xE817,0x0000,
-0xFB40,0xF387,0x0000, 0xFB41,0x9686,0x0000, 0xFB40,0xD229,0x0000,
-0xFB40,0xD40F,0x0000, 0xFB40,0xDC65,0x0000, 0xFB40,0xE613,0x0000,
-0xFB40,0xE74E,0x0000, 0xFB40,0xE8A8,0x0000, 0xFB40,0xECE5,0x0000,
-0xFB40,0xF406,0x0000, 0xFB40,0xF5E2,0x0000, 0xFB40,0xFF79,0x0000,
-0xFB41,0x88CF,0x0000, 0xFB41,0x88E1,0x0000, 0xFB41,0x91CC,0x0000,
-0xFB41,0x96E2,0x0000, 0xFB40,0xD33F,0x0000, 0xFB40,0xEEBA,0x0000,
-0xFB40,0xD41D,0x0000, 0xFB40,0xF1D0,0x0000, 0xFB40,0xF498,0x0000,
-0xFB41,0x85FA,0x0000, 0xFB41,0x96A3,0x0000, 0xFB41,0x9C57,0x0000,
-0xFB41,0x9E9F,0x0000, 0xFB40,0xE797,0x0000, 0xFB40,0xEDCB,0x0000,
-0xFB41,0x81E8,0x0000, 0xFB40,0xFACB,0x0000, 0xFB40,0xFB20,0x0000,
-0xFB40,0xFC92,0x0000, 0xFB40,0xF2C0,0x0000, 0xFB40,0xF099,0x0000,
-0xFB41,0x8B58,0x0000, 0xFB40,0xCEC0,0x0000, 0xFB41,0x8336,0x0000,
-0xFB40,0xD23A,0x0000 };
-
-uint16 page0FAdata[]= { /* FA00 (3 weights per char) */
-0xFB40,0xD207,0x0000, 0xFB40,0xDEA6,0x0000, 0xFB40,0xE2D3,0x0000,
-0xFB40,0xFCD6,0x0000, 0xFB40,0xDB85,0x0000, 0xFB40,0xED1E,0x0000,
-0xFB40,0xE6B4,0x0000, 0xFB41,0x8F3B,0x0000, 0xFB41,0x884C,0x0000,
-0xFB41,0x964D,0x0000, 0xFB41,0x898B,0x0000, 0xFB40,0xDED3,0x0000,
-0xFB40,0xD140,0x0000, 0xFB40,0xD5C0,0x0000, 0xFB41,0xFA0E,0x0000,
-0xFB41,0xFA0F,0x0000, 0xFB40,0xD85A,0x0000, 0xFB41,0xFA11,0x0000,
-0xFB40,0xE674,0x0000, 0xFB41,0xFA13,0x0000, 0xFB41,0xFA14,0x0000,
-0xFB40,0xD1DE,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF6CA,0x0000,
-0xFB40,0xF93C,0x0000, 0xFB40,0xF95E,0x0000, 0xFB40,0xF965,0x0000,
-0xFB40,0xF98F,0x0000, 0xFB41,0x9756,0x0000, 0xFB40,0xFCBE,0x0000,
-0xFB40,0xFFBD,0x0000, 0xFB41,0xFA1F,0x0000, 0xFB41,0x8612,0x0000,
-0xFB41,0xFA21,0x0000, 0xFB41,0x8AF8,0x0000, 0xFB41,0xFA23,0x0000,
-0xFB41,0xFA24,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x90FD,0x0000,
-0xFB41,0xFA27,0x0000, 0xFB41,0xFA28,0x0000, 0xFB41,0xFA29,0x0000,
-0xFB41,0x98EF,0x0000, 0xFB41,0x98FC,0x0000, 0xFB41,0x9928,0x0000,
-0xFB41,0x9DB4,0x0000, 0xFBC1,0xFA2E,0x0000, 0xFBC1,0xFA2F,0x0000,
-0xFB40,0xCFAE,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD14D,0x0000,
-0xFB40,0xD2C9,0x0000, 0xFB40,0xD2E4,0x0000, 0xFB40,0xD351,0x0000,
-0xFB40,0xD59D,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD668,0x0000,
-0xFB40,0xD840,0x0000, 0xFB40,0xD8A8,0x0000, 0xFB40,0xDC64,0x0000,
-0xFB40,0xDC6E,0x0000, 0xFB40,0xE094,0x0000, 0xFB40,0xE168,0x0000,
-0xFB40,0xE18E,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE54F,0x0000,
-0xFB40,0xE5E2,0x0000, 0xFB40,0xE691,0x0000, 0xFB40,0xE885,0x0000,
-0xFB40,0xED77,0x0000, 0xFB40,0xEE1A,0x0000, 0xFB40,0xEF22,0x0000,
-0xFB40,0xF16E,0x0000, 0xFB40,0xF22B,0x0000, 0xFB40,0xF422,0x0000,
-0xFB40,0xF891,0x0000, 0xFB40,0xF93E,0x0000, 0xFB40,0xF949,0x0000,
-0xFB40,0xF948,0x0000, 0xFB40,0xF950,0x0000, 0xFB40,0xF956,0x0000,
-0xFB40,0xF95D,0x0000, 0xFB40,0xF98D,0x0000, 0xFB40,0xF98E,0x0000,
-0xFB40,0xFA40,0x0000, 0xFB40,0xFA81,0x0000, 0xFB40,0xFBC0,0x0000,
-0xFB40,0xFDF4,0x0000, 0xFB40,0xFE09,0x0000, 0xFB40,0xFE41,0x0000,
-0xFB40,0xFF72,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x81ED,0x0000,
-0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8457,0x0000,
-0xFB41,0x8910,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8B01,0x0000,
-0xFB41,0x8B39,0x0000, 0xFB41,0x8CD3,0x0000, 0xFB41,0x8D08,0x0000,
-0xFB41,0x8FB6,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x96E3,0x0000,
-0xFB41,0x97FF,0x0000, 0xFB41,0x983B,0x0000, 0xFBC1,0xFA6B,0x0000,
-0xFBC1,0xFA6C,0x0000, 0xFBC1,0xFA6D,0x0000, 0xFBC1,0xFA6E,0x0000,
-0xFBC1,0xFA6F,0x0000, 0xFBC1,0xFA70,0x0000, 0xFBC1,0xFA71,0x0000,
-0xFBC1,0xFA72,0x0000, 0xFBC1,0xFA73,0x0000, 0xFBC1,0xFA74,0x0000,
-0xFBC1,0xFA75,0x0000, 0xFBC1,0xFA76,0x0000, 0xFBC1,0xFA77,0x0000,
-0xFBC1,0xFA78,0x0000, 0xFBC1,0xFA79,0x0000, 0xFBC1,0xFA7A,0x0000,
-0xFBC1,0xFA7B,0x0000, 0xFBC1,0xFA7C,0x0000, 0xFBC1,0xFA7D,0x0000,
-0xFBC1,0xFA7E,0x0000, 0xFBC1,0xFA7F,0x0000, 0xFBC1,0xFA80,0x0000,
-0xFBC1,0xFA81,0x0000, 0xFBC1,0xFA82,0x0000, 0xFBC1,0xFA83,0x0000,
-0xFBC1,0xFA84,0x0000, 0xFBC1,0xFA85,0x0000, 0xFBC1,0xFA86,0x0000,
-0xFBC1,0xFA87,0x0000, 0xFBC1,0xFA88,0x0000, 0xFBC1,0xFA89,0x0000,
-0xFBC1,0xFA8A,0x0000, 0xFBC1,0xFA8B,0x0000, 0xFBC1,0xFA8C,0x0000,
-0xFBC1,0xFA8D,0x0000, 0xFBC1,0xFA8E,0x0000, 0xFBC1,0xFA8F,0x0000,
-0xFBC1,0xFA90,0x0000, 0xFBC1,0xFA91,0x0000, 0xFBC1,0xFA92,0x0000,
-0xFBC1,0xFA93,0x0000, 0xFBC1,0xFA94,0x0000, 0xFBC1,0xFA95,0x0000,
-0xFBC1,0xFA96,0x0000, 0xFBC1,0xFA97,0x0000, 0xFBC1,0xFA98,0x0000,
-0xFBC1,0xFA99,0x0000, 0xFBC1,0xFA9A,0x0000, 0xFBC1,0xFA9B,0x0000,
-0xFBC1,0xFA9C,0x0000, 0xFBC1,0xFA9D,0x0000, 0xFBC1,0xFA9E,0x0000,
-0xFBC1,0xFA9F,0x0000, 0xFBC1,0xFAA0,0x0000, 0xFBC1,0xFAA1,0x0000,
-0xFBC1,0xFAA2,0x0000, 0xFBC1,0xFAA3,0x0000, 0xFBC1,0xFAA4,0x0000,
-0xFBC1,0xFAA5,0x0000, 0xFBC1,0xFAA6,0x0000, 0xFBC1,0xFAA7,0x0000,
-0xFBC1,0xFAA8,0x0000, 0xFBC1,0xFAA9,0x0000, 0xFBC1,0xFAAA,0x0000,
-0xFBC1,0xFAAB,0x0000, 0xFBC1,0xFAAC,0x0000, 0xFBC1,0xFAAD,0x0000,
-0xFBC1,0xFAAE,0x0000, 0xFBC1,0xFAAF,0x0000, 0xFBC1,0xFAB0,0x0000,
-0xFBC1,0xFAB1,0x0000, 0xFBC1,0xFAB2,0x0000, 0xFBC1,0xFAB3,0x0000,
-0xFBC1,0xFAB4,0x0000, 0xFBC1,0xFAB5,0x0000, 0xFBC1,0xFAB6,0x0000,
-0xFBC1,0xFAB7,0x0000, 0xFBC1,0xFAB8,0x0000, 0xFBC1,0xFAB9,0x0000,
-0xFBC1,0xFABA,0x0000, 0xFBC1,0xFABB,0x0000, 0xFBC1,0xFABC,0x0000,
-0xFBC1,0xFABD,0x0000, 0xFBC1,0xFABE,0x0000, 0xFBC1,0xFABF,0x0000,
-0xFBC1,0xFAC0,0x0000, 0xFBC1,0xFAC1,0x0000, 0xFBC1,0xFAC2,0x0000,
-0xFBC1,0xFAC3,0x0000, 0xFBC1,0xFAC4,0x0000, 0xFBC1,0xFAC5,0x0000,
-0xFBC1,0xFAC6,0x0000, 0xFBC1,0xFAC7,0x0000, 0xFBC1,0xFAC8,0x0000,
-0xFBC1,0xFAC9,0x0000, 0xFBC1,0xFACA,0x0000, 0xFBC1,0xFACB,0x0000,
-0xFBC1,0xFACC,0x0000, 0xFBC1,0xFACD,0x0000, 0xFBC1,0xFACE,0x0000,
-0xFBC1,0xFACF,0x0000, 0xFBC1,0xFAD0,0x0000, 0xFBC1,0xFAD1,0x0000,
-0xFBC1,0xFAD2,0x0000, 0xFBC1,0xFAD3,0x0000, 0xFBC1,0xFAD4,0x0000,
-0xFBC1,0xFAD5,0x0000, 0xFBC1,0xFAD6,0x0000, 0xFBC1,0xFAD7,0x0000,
-0xFBC1,0xFAD8,0x0000, 0xFBC1,0xFAD9,0x0000, 0xFBC1,0xFADA,0x0000,
-0xFBC1,0xFADB,0x0000, 0xFBC1,0xFADC,0x0000, 0xFBC1,0xFADD,0x0000,
-0xFBC1,0xFADE,0x0000, 0xFBC1,0xFADF,0x0000, 0xFBC1,0xFAE0,0x0000,
-0xFBC1,0xFAE1,0x0000, 0xFBC1,0xFAE2,0x0000, 0xFBC1,0xFAE3,0x0000,
-0xFBC1,0xFAE4,0x0000, 0xFBC1,0xFAE5,0x0000, 0xFBC1,0xFAE6,0x0000,
-0xFBC1,0xFAE7,0x0000, 0xFBC1,0xFAE8,0x0000, 0xFBC1,0xFAE9,0x0000,
-0xFBC1,0xFAEA,0x0000, 0xFBC1,0xFAEB,0x0000, 0xFBC1,0xFAEC,0x0000,
-0xFBC1,0xFAED,0x0000, 0xFBC1,0xFAEE,0x0000, 0xFBC1,0xFAEF,0x0000,
-0xFBC1,0xFAF0,0x0000, 0xFBC1,0xFAF1,0x0000, 0xFBC1,0xFAF2,0x0000,
-0xFBC1,0xFAF3,0x0000, 0xFBC1,0xFAF4,0x0000, 0xFBC1,0xFAF5,0x0000,
-0xFBC1,0xFAF6,0x0000, 0xFBC1,0xFAF7,0x0000, 0xFBC1,0xFAF8,0x0000,
-0xFBC1,0xFAF9,0x0000, 0xFBC1,0xFAFA,0x0000, 0xFBC1,0xFAFB,0x0000,
-0xFBC1,0xFAFC,0x0000, 0xFBC1,0xFAFD,0x0000, 0xFBC1,0xFAFE,0x0000,
-0xFBC1,0xFAFF,0x0000 };
-
-uint16 page0FBdata[]= { /* FB00 (4 weights per char) */
-0x0EB9,0x0EB9,0x0000,0x0000, 0x0EB9,0x0EFB,0x0000,0x0000,
-0x0EB9,0x0F2E,0x0000,0x0000, 0x0EB9,0x0EB9,0x0EFB,0x0000,
-0x0EB9,0x0EB9,0x0F2E,0x0000, 0x0FEA,0x1002,0x0000,0x0000,
-0x0FEA,0x1002,0x0000,0x0000, 0xFBC1,0xFB07,0x0000,0x0000,
-0xFBC1,0xFB08,0x0000,0x0000, 0xFBC1,0xFB09,0x0000,0x0000,
-0xFBC1,0xFB0A,0x0000,0x0000, 0xFBC1,0xFB0B,0x0000,0x0000,
-0xFBC1,0xFB0C,0x0000,0x0000, 0xFBC1,0xFB0D,0x0000,0x0000,
-0xFBC1,0xFB0E,0x0000,0x0000, 0xFBC1,0xFB0F,0x0000,0x0000,
-0xFBC1,0xFB10,0x0000,0x0000, 0xFBC1,0xFB11,0x0000,0x0000,
-0xFBC1,0xFB12,0x0000,0x0000, 0x131D,0x131F,0x0000,0x0000,
-0x131D,0x130E,0x0000,0x0000, 0x131D,0x1314,0x0000,0x0000,
-0x1327,0x131F,0x0000,0x0000, 0x131D,0x1316,0x0000,0x0000,
-0xFBC1,0xFB18,0x0000,0x0000, 0xFBC1,0xFB19,0x0000,0x0000,
-0xFBC1,0xFB1A,0x0000,0x0000, 0xFBC1,0xFB1B,0x0000,0x0000,
-0xFBC1,0xFB1C,0x0000,0x0000, 0x133A,0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000,0x0000, 0x133A,0x133A,0x0000,0x0000,
-0x1340,0x0000,0x0000,0x0000, 0x1331,0x0000,0x0000,0x0000,
-0x1334,0x0000,0x0000,0x0000, 0x1335,0x0000,0x0000,0x0000,
-0x133B,0x0000,0x0000,0x0000, 0x133C,0x0000,0x0000,0x0000,
-0x133D,0x0000,0x0000,0x0000, 0x1344,0x0000,0x0000,0x0000,
-0x1346,0x0000,0x0000,0x0000, 0x0428,0x0000,0x0000,0x0000,
-0x1345,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000,
-0x1345,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000,
-0x1331,0x0000,0x0000,0x0000, 0x1331,0x0000,0x0000,0x0000,
-0x1331,0x0000,0x0000,0x0000, 0x1332,0x0000,0x0000,0x0000,
-0x1333,0x0000,0x0000,0x0000, 0x1334,0x0000,0x0000,0x0000,
-0x1335,0x0000,0x0000,0x0000, 0x1336,0x0000,0x0000,0x0000,
-0x1337,0x0000,0x0000,0x0000, 0xFBC1,0xFB37,0x0000,0x0000,
-0x1339,0x0000,0x0000,0x0000, 0x133A,0x0000,0x0000,0x0000,
-0x133B,0x0000,0x0000,0x0000, 0x133B,0x0000,0x0000,0x0000,
-0x133C,0x0000,0x0000,0x0000, 0xFBC1,0xFB3D,0x0000,0x0000,
-0x133D,0x0000,0x0000,0x0000, 0xFBC1,0xFB3F,0x0000,0x0000,
-0x133E,0x0000,0x0000,0x0000, 0x133F,0x0000,0x0000,0x0000,
-0xFBC1,0xFB42,0x0000,0x0000, 0x1341,0x0000,0x0000,0x0000,
-0x1341,0x0000,0x0000,0x0000, 0xFBC1,0xFB45,0x0000,0x0000,
-0x1342,0x0000,0x0000,0x0000, 0x1343,0x0000,0x0000,0x0000,
-0x1344,0x0000,0x0000,0x0000, 0x1345,0x0000,0x0000,0x0000,
-0x1346,0x0000,0x0000,0x0000, 0x1336,0x0000,0x0000,0x0000,
-0x1332,0x0000,0x0000,0x0000, 0x133B,0x0000,0x0000,0x0000,
-0x1341,0x0000,0x0000,0x0000, 0x1331,0x133C,0x0000,0x0000,
-0x134B,0x0000,0x0000,0x0000, 0x134B,0x0000,0x0000,0x0000,
-0x1353,0x0000,0x0000,0x0000, 0x1353,0x0000,0x0000,0x0000,
-0x1353,0x0000,0x0000,0x0000, 0x1353,0x0000,0x0000,0x0000,
-0x1354,0x0000,0x0000,0x0000, 0x1354,0x0000,0x0000,0x0000,
-0x1354,0x0000,0x0000,0x0000, 0x1354,0x0000,0x0000,0x0000,
-0x1355,0x0000,0x0000,0x0000, 0x1355,0x0000,0x0000,0x0000,
-0x1355,0x0000,0x0000,0x0000, 0x1355,0x0000,0x0000,0x0000,
-0x135A,0x0000,0x0000,0x0000, 0x135A,0x0000,0x0000,0x0000,
-0x135A,0x0000,0x0000,0x0000, 0x135A,0x0000,0x0000,0x0000,
-0x135D,0x0000,0x0000,0x0000, 0x135D,0x0000,0x0000,0x0000,
-0x135D,0x0000,0x0000,0x0000, 0x135D,0x0000,0x0000,0x0000,
-0x1359,0x0000,0x0000,0x0000, 0x1359,0x0000,0x0000,0x0000,
-0x1359,0x0000,0x0000,0x0000, 0x1359,0x0000,0x0000,0x0000,
-0x1397,0x0000,0x0000,0x0000, 0x1397,0x0000,0x0000,0x0000,
-0x1397,0x0000,0x0000,0x0000, 0x1397,0x0000,0x0000,0x0000,
-0x1399,0x0000,0x0000,0x0000, 0x1399,0x0000,0x0000,0x0000,
-0x1399,0x0000,0x0000,0x0000, 0x1399,0x0000,0x0000,0x0000,
-0x1360,0x0000,0x0000,0x0000, 0x1360,0x0000,0x0000,0x0000,
-0x1360,0x0000,0x0000,0x0000, 0x1360,0x0000,0x0000,0x0000,
-0x135F,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000,
-0x135F,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000,
-0x1361,0x0000,0x0000,0x0000, 0x1361,0x0000,0x0000,0x0000,
-0x1361,0x0000,0x0000,0x0000, 0x1361,0x0000,0x0000,0x0000,
-0x1363,0x0000,0x0000,0x0000, 0x1363,0x0000,0x0000,0x0000,
-0x1363,0x0000,0x0000,0x0000, 0x1363,0x0000,0x0000,0x0000,
-0x1370,0x0000,0x0000,0x0000, 0x1370,0x0000,0x0000,0x0000,
-0x136F,0x0000,0x0000,0x0000, 0x136F,0x0000,0x0000,0x0000,
-0x1371,0x0000,0x0000,0x0000, 0x1371,0x0000,0x0000,0x0000,
-0x136B,0x0000,0x0000,0x0000, 0x136B,0x0000,0x0000,0x0000,
-0x137E,0x0000,0x0000,0x0000, 0x137E,0x0000,0x0000,0x0000,
-0x1377,0x0000,0x0000,0x0000, 0x1377,0x0000,0x0000,0x0000,
-0x139F,0x0000,0x0000,0x0000, 0x139F,0x0000,0x0000,0x0000,
-0x139F,0x0000,0x0000,0x0000, 0x139F,0x0000,0x0000,0x0000,
-0x13A5,0x0000,0x0000,0x0000, 0x13A5,0x0000,0x0000,0x0000,
-0x13A5,0x0000,0x0000,0x0000, 0x13A5,0x0000,0x0000,0x0000,
-0x13A9,0x0000,0x0000,0x0000, 0x13A9,0x0000,0x0000,0x0000,
-0x13A9,0x0000,0x0000,0x0000, 0x13A9,0x0000,0x0000,0x0000,
-0x13A7,0x0000,0x0000,0x0000, 0x13A7,0x0000,0x0000,0x0000,
-0x13A7,0x0000,0x0000,0x0000, 0x13A7,0x0000,0x0000,0x0000,
-0x13B2,0x0000,0x0000,0x0000, 0x13B2,0x0000,0x0000,0x0000,
-0x13B3,0x0000,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000,
-0x13B3,0x0000,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000,
-0x13BC,0x0000,0x0000,0x0000, 0x13BC,0x0000,0x0000,0x0000,
-0x13B9,0x0000,0x0000,0x0000, 0x13B9,0x0000,0x0000,0x0000,
-0x13B9,0x0000,0x0000,0x0000, 0x13B9,0x0000,0x0000,0x0000,
-0x13B8,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000,
-0x13B8,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000,
-0x13CE,0x0000,0x0000,0x0000, 0x13CE,0x0000,0x0000,0x0000,
-0x13CE,0x0000,0x0000,0x0000, 0x13CE,0x0000,0x0000,0x0000,
-0xFBC1,0xFBB2,0x0000,0x0000, 0xFBC1,0xFBB3,0x0000,0x0000,
-0xFBC1,0xFBB4,0x0000,0x0000, 0xFBC1,0xFBB5,0x0000,0x0000,
-0xFBC1,0xFBB6,0x0000,0x0000, 0xFBC1,0xFBB7,0x0000,0x0000,
-0xFBC1,0xFBB8,0x0000,0x0000, 0xFBC1,0xFBB9,0x0000,0x0000,
-0xFBC1,0xFBBA,0x0000,0x0000, 0xFBC1,0xFBBB,0x0000,0x0000,
-0xFBC1,0xFBBC,0x0000,0x0000, 0xFBC1,0xFBBD,0x0000,0x0000,
-0xFBC1,0xFBBE,0x0000,0x0000, 0xFBC1,0xFBBF,0x0000,0x0000,
-0xFBC1,0xFBC0,0x0000,0x0000, 0xFBC1,0xFBC1,0x0000,0x0000,
-0xFBC1,0xFBC2,0x0000,0x0000, 0xFBC1,0xFBC3,0x0000,0x0000,
-0xFBC1,0xFBC4,0x0000,0x0000, 0xFBC1,0xFBC5,0x0000,0x0000,
-0xFBC1,0xFBC6,0x0000,0x0000, 0xFBC1,0xFBC7,0x0000,0x0000,
-0xFBC1,0xFBC8,0x0000,0x0000, 0xFBC1,0xFBC9,0x0000,0x0000,
-0xFBC1,0xFBCA,0x0000,0x0000, 0xFBC1,0xFBCB,0x0000,0x0000,
-0xFBC1,0xFBCC,0x0000,0x0000, 0xFBC1,0xFBCD,0x0000,0x0000,
-0xFBC1,0xFBCE,0x0000,0x0000, 0xFBC1,0xFBCF,0x0000,0x0000,
-0xFBC1,0xFBD0,0x0000,0x0000, 0xFBC1,0xFBD1,0x0000,0x0000,
-0xFBC1,0xFBD2,0x0000,0x0000, 0x13A3,0x0000,0x0000,0x0000,
-0x13A3,0x0000,0x0000,0x0000, 0x13A3,0x0000,0x0000,0x0000,
-0x13A3,0x0000,0x0000,0x0000, 0x13C1,0x0000,0x0000,0x0000,
-0x13C1,0x0000,0x0000,0x0000, 0x13C0,0x0000,0x0000,0x0000,
-0x13C0,0x0000,0x0000,0x0000, 0x13C2,0x0000,0x0000,0x0000,
-0x13C2,0x0000,0x0000,0x0000, 0x13C1,0x1347,0x0000,0x0000,
-0x13C5,0x0000,0x0000,0x0000, 0x13C5,0x0000,0x0000,0x0000,
-0x13BF,0x0000,0x0000,0x0000, 0x13BF,0x0000,0x0000,0x0000,
-0x13C3,0x0000,0x0000,0x0000, 0x13C3,0x0000,0x0000,0x0000,
-0x13CC,0x0000,0x0000,0x0000, 0x13CC,0x0000,0x0000,0x0000,
-0x13CC,0x0000,0x0000,0x0000, 0x13CC,0x0000,0x0000,0x0000,
-0x13C7,0x0000,0x0000,0x0000, 0x13C7,0x0000,0x0000,0x0000,
-0x134F,0x1350,0x0000,0x0000, 0x134F,0x1350,0x0000,0x0000,
-0x134F,0x13BC,0x0000,0x0000, 0x134F,0x13BC,0x0000,0x0000,
-0x134F,0x13BD,0x0000,0x0000, 0x134F,0x13BD,0x0000,0x0000,
-0x134F,0x13C1,0x0000,0x0000, 0x134F,0x13C1,0x0000,0x0000,
-0x134F,0x13C0,0x0000,0x0000, 0x134F,0x13C0,0x0000,0x0000,
-0x134F,0x13C2,0x0000,0x0000, 0x134F,0x13C2,0x0000,0x0000,
-0x134F,0x13CC,0x0000,0x0000, 0x134F,0x13CC,0x0000,0x0000,
-0x134F,0x13CC,0x0000,0x0000, 0x134F,0x13C7,0x0000,0x0000,
-0x134F,0x13C7,0x0000,0x0000, 0x134F,0x13C7,0x0000,0x0000,
-0x13C9,0x0000,0x0000,0x0000, 0x13C9,0x0000,0x0000,0x0000,
-0x13C9,0x0000,0x0000,0x0000, 0x13C9,0x0000,0x0000,0x0000
-};
-
-uint16 page0FCdata[]= { /* FC00 (3 weights per char) */
-0x134F,0x135E,0x0000, 0x134F,0x1364,0x0000, 0x134F,0x13B0,0x0000,
-0x134F,0x13C7,0x0000, 0x134F,0x13C8,0x0000, 0x1352,0x135E,0x0000,
-0x1352,0x1364,0x0000, 0x1352,0x1365,0x0000, 0x1352,0x13B0,0x0000,
-0x1352,0x13C7,0x0000, 0x1352,0x13C8,0x0000, 0x1357,0x135E,0x0000,
-0x1357,0x1364,0x0000, 0x1357,0x1365,0x0000, 0x1357,0x13B0,0x0000,
-0x1357,0x13C7,0x0000, 0x1357,0x13C8,0x0000, 0x1358,0x135E,0x0000,
-0x1358,0x13B0,0x0000, 0x1358,0x13C7,0x0000, 0x1358,0x13C8,0x0000,
-0x135E,0x1364,0x0000, 0x135E,0x13B0,0x0000, 0x1364,0x135E,0x0000,
-0x1364,0x13B0,0x0000, 0x1365,0x135E,0x0000, 0x1365,0x1364,0x0000,
-0x1365,0x13B0,0x0000, 0x1381,0x135E,0x0000, 0x1381,0x1364,0x0000,
-0x1381,0x1365,0x0000, 0x1381,0x13B0,0x0000, 0x1387,0x1364,0x0000,
-0x1387,0x13B0,0x0000, 0x1388,0x135E,0x0000, 0x1388,0x1364,0x0000,
-0x1388,0x1365,0x0000, 0x1388,0x13B0,0x0000, 0x138C,0x1364,0x0000,
-0x138C,0x13B0,0x0000, 0x138D,0x13B0,0x0000, 0x138F,0x135E,0x0000,
-0x138F,0x13B0,0x0000, 0x1390,0x135E,0x0000, 0x1390,0x13B0,0x0000,
-0x1393,0x135E,0x0000, 0x1393,0x1364,0x0000, 0x1393,0x1365,0x0000,
-0x1393,0x13B0,0x0000, 0x1393,0x13C7,0x0000, 0x1393,0x13C8,0x0000,
-0x139B,0x1364,0x0000, 0x139B,0x13B0,0x0000, 0x139B,0x13C7,0x0000,
-0x139B,0x13C8,0x0000, 0x139E,0x1350,0x0000, 0x139E,0x135E,0x0000,
-0x139E,0x1364,0x0000, 0x139E,0x1365,0x0000, 0x139E,0x13AB,0x0000,
-0x139E,0x13B0,0x0000, 0x139E,0x13C7,0x0000, 0x139E,0x13C8,0x0000,
-0x13AB,0x135E,0x0000, 0x13AB,0x1364,0x0000, 0x13AB,0x1365,0x0000,
-0x13AB,0x13B0,0x0000, 0x13AB,0x13C7,0x0000, 0x13AB,0x13C8,0x0000,
-0x13B0,0x135E,0x0000, 0x13B0,0x1364,0x0000, 0x13B0,0x1365,0x0000,
-0x13B0,0x13B0,0x0000, 0x13B0,0x13C7,0x0000, 0x13B0,0x13C8,0x0000,
-0x13B1,0x135E,0x0000, 0x13B1,0x1364,0x0000, 0x13B1,0x1365,0x0000,
-0x13B1,0x13B0,0x0000, 0x13B1,0x13C7,0x0000, 0x13B1,0x13C8,0x0000,
-0x13B7,0x135E,0x0000, 0x13B7,0x13B0,0x0000, 0x13B7,0x13C7,0x0000,
-0x13B7,0x13C8,0x0000, 0x13C8,0x135E,0x0000, 0x13C8,0x1364,0x0000,
-0x13C8,0x1365,0x0000, 0x13C8,0x13B0,0x0000, 0x13C8,0x13C7,0x0000,
-0x13C8,0x13C8,0x0000, 0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000,
-0x13C7,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x134F,0x1375,0x0000, 0x134F,0x1376,0x0000,
-0x134F,0x13B0,0x0000, 0x134F,0x13B1,0x0000, 0x134F,0x13C7,0x0000,
-0x134F,0x13C8,0x0000, 0x1352,0x1375,0x0000, 0x1352,0x1376,0x0000,
-0x1352,0x13B0,0x0000, 0x1352,0x13B1,0x0000, 0x1352,0x13C7,0x0000,
-0x1352,0x13C8,0x0000, 0x1357,0x1375,0x0000, 0x1357,0x1376,0x0000,
-0x1357,0x13B0,0x0000, 0x1357,0x13B1,0x0000, 0x1357,0x13C7,0x0000,
-0x1357,0x13C8,0x0000, 0x1358,0x1375,0x0000, 0x1358,0x1376,0x0000,
-0x1358,0x13B0,0x0000, 0x1358,0x13B1,0x0000, 0x1358,0x13C7,0x0000,
-0x1358,0x13C8,0x0000, 0x1393,0x13C7,0x0000, 0x1393,0x13C8,0x0000,
-0x139B,0x13C7,0x0000, 0x139B,0x13C8,0x0000, 0x139E,0x1350,0x0000,
-0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000, 0x139E,0x13C7,0x0000,
-0x139E,0x13C8,0x0000, 0x13AB,0x13B0,0x0000, 0x13AB,0x13C7,0x0000,
-0x13AB,0x13C8,0x0000, 0x13B0,0x1350,0x0000, 0x13B0,0x13B0,0x0000,
-0x13B1,0x1375,0x0000, 0x13B1,0x1376,0x0000, 0x13B1,0x13B0,0x0000,
-0x13B1,0x13B1,0x0000, 0x13B1,0x13C7,0x0000, 0x13B1,0x13C8,0x0000,
-0x13C7,0x0000,0x0000, 0x13C8,0x1375,0x0000, 0x13C8,0x1376,0x0000,
-0x13C8,0x13B0,0x0000, 0x13C8,0x13B1,0x0000, 0x13C8,0x13C7,0x0000,
-0x13C8,0x13C8,0x0000, 0x134F,0x135E,0x0000, 0x134F,0x1364,0x0000,
-0x134F,0x1365,0x0000, 0x134F,0x13B0,0x0000, 0x134F,0x13B7,0x0000,
-0x1352,0x135E,0x0000, 0x1352,0x1364,0x0000, 0x1352,0x1365,0x0000,
-0x1352,0x13B0,0x0000, 0x1352,0x13B7,0x0000, 0x1357,0x135E,0x0000,
-0x1357,0x1364,0x0000, 0x1357,0x1365,0x0000, 0x1357,0x13B0,0x0000,
-0x1357,0x13B7,0x0000, 0x1358,0x13B0,0x0000, 0x135E,0x1364,0x0000,
-0x135E,0x13B0,0x0000, 0x1364,0x135E,0x0000, 0x1364,0x13B0,0x0000,
-0x1365,0x135E,0x0000, 0x1365,0x13B0,0x0000, 0x1381,0x135E,0x0000,
-0x1381,0x1364,0x0000, 0x1381,0x1365,0x0000, 0x1381,0x13B0,0x0000,
-0x1387,0x1364,0x0000, 0x1387,0x1365,0x0000, 0x1387,0x13B0,0x0000,
-0x1388,0x135E,0x0000, 0x1388,0x1364,0x0000, 0x1388,0x1365,0x0000,
-0x1388,0x13B0,0x0000, 0x138C,0x1364,0x0000, 0x138D,0x13B0,0x0000,
-0x138F,0x135E,0x0000, 0x138F,0x13B0,0x0000, 0x1390,0x135E,0x0000,
-0x1390,0x13B0,0x0000, 0x1393,0x135E,0x0000, 0x1393,0x1364,0x0000,
-0x1393,0x1365,0x0000, 0x1393,0x13B0,0x0000, 0x139B,0x1364,0x0000,
-0x139B,0x13B0,0x0000, 0x139E,0x135E,0x0000, 0x139E,0x1364,0x0000,
-0x139E,0x1365,0x0000, 0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000,
-0x13AB,0x135E,0x0000, 0x13AB,0x1364,0x0000, 0x13AB,0x1365,0x0000,
-0x13AB,0x13B0,0x0000, 0x13AB,0x13B7,0x0000, 0x13B0,0x135E,0x0000,
-0x13B0,0x1364,0x0000, 0x13B0,0x1365,0x0000, 0x13B0,0x13B0,0x0000,
-0x13B1,0x135E,0x0000, 0x13B1,0x1364,0x0000, 0x13B1,0x1365,0x0000,
-0x13B1,0x13B0,0x0000, 0x13B1,0x13B7,0x0000, 0x13B7,0x135E,0x0000,
-0x13B7,0x13B0,0x0000, 0x13B7,0x0000,0x0000, 0x13C8,0x135E,0x0000,
-0x13C8,0x1364,0x0000, 0x13C8,0x1365,0x0000, 0x13C8,0x13B0,0x0000,
-0x13C8,0x13B7,0x0000, 0x134F,0x13B0,0x0000, 0x134F,0x13B7,0x0000,
-0x1352,0x13B0,0x0000, 0x1352,0x13B7,0x0000, 0x1357,0x13B0,0x0000,
-0x1357,0x13B7,0x0000, 0x1358,0x13B0,0x0000, 0x1358,0x13B7,0x0000,
-0x1381,0x13B0,0x0000, 0x1381,0x13B7,0x0000, 0x1382,0x13B0,0x0000,
-0x1382,0x13B7,0x0000, 0x139E,0x13AB,0x0000, 0x139E,0x13B0,0x0000,
-0x13AB,0x13B0,0x0000, 0x13B1,0x13B0,0x0000, 0x13B1,0x13B7,0x0000,
-0x13C8,0x13B0,0x0000, 0x13C8,0x13B7,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x138C,0x13C7,0x0000,
-0x138C,0x13C8,0x0000, 0x138F,0x13C7,0x0000, 0x138F,0x13C8,0x0000,
-0x1390,0x13C7,0x0000, 0x1390,0x13C8,0x0000, 0x1381,0x13C7,0x0000,
-0x1381,0x13C8,0x0000, 0x1382,0x13C7,0x0000, 0x1382,0x13C8,0x0000,
-0x1364,0x13C7,0x0000 };
-
-uint16 page0FDdata[]= { /* FD00 (9 weights per char) */
-0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1390,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1390,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138D,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x02C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x02C1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1364,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1364,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x1364,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x1364,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138C,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1390,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1390,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1390,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1393,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1393,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139B,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139B,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x135E,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x135E,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1364,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1365,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1365,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD90,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFD91,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x135E,0x1365,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B7,0x13B0,0x135E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B7,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13C8,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13C8,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1352,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x135E,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1357,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x1364,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13B0,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1365,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1382,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1388,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13C8,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13C8,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13C8,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139B,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139B,0x13B0,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x1364,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139E,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139E,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13AB,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x1364,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1364,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1393,0x13B0,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1352,0x1364,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139E,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x135E,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13B0,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1381,0x1365,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B1,0x135E,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDC8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDC9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDCF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDDF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDEB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDEE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDEF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13AB,0x13CE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x139B,0x13AB,0x13CE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1350,0x13AB,0x13AB,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1350,0x139E,0x1352,0x1375,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13B0,0x1364,0x13B0,0x1369,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13AB,0x138F,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1375,0x1381,0x13BD,0x13AB,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x138F,0x13AB,0x13C8,0x13B7,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x13BD,0x1381,0x13AB,0x13B0,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x1387,0x13AB,0x13C7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDFA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x135E,0x13AB,0x0209,0x135E,0x13AB,0x1350,0x13AB,0x13B7,0x0000,
-0x1375,0x13C9,0x1350,0x13AB,0x0000,0x0000,0x0000,0x0000,0x0000,
-0x034F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
-0xFBC1,0xFDFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-uint16 page0FEdata[]= { /* FE00 (3 weights per char) */
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0xFBC1,0xFE10,0x0000, 0xFBC1,0xFE11,0x0000,
-0xFBC1,0xFE12,0x0000, 0xFBC1,0xFE13,0x0000, 0xFBC1,0xFE14,0x0000,
-0xFBC1,0xFE15,0x0000, 0xFBC1,0xFE16,0x0000, 0xFBC1,0xFE17,0x0000,
-0xFBC1,0xFE18,0x0000, 0xFBC1,0xFE19,0x0000, 0xFBC1,0xFE1A,0x0000,
-0xFBC1,0xFE1B,0x0000, 0xFBC1,0xFE1C,0x0000, 0xFBC1,0xFE1D,0x0000,
-0xFBC1,0xFE1E,0x0000, 0xFBC1,0xFE1F,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC1,0xFE24,0x0000, 0xFBC1,0xFE25,0x0000, 0xFBC1,0xFE26,0x0000,
-0xFBC1,0xFE27,0x0000, 0xFBC1,0xFE28,0x0000, 0xFBC1,0xFE29,0x0000,
-0xFBC1,0xFE2A,0x0000, 0xFBC1,0xFE2B,0x0000, 0xFBC1,0xFE2C,0x0000,
-0xFBC1,0xFE2D,0x0000, 0xFBC1,0xFE2E,0x0000, 0xFBC1,0xFE2F,0x0000,
-0x025D,0x025D,0x0000, 0x0228,0x0000,0x0000, 0x0227,0x0000,0x0000,
-0x021B,0x0000,0x0000, 0x021B,0x0000,0x0000, 0x0288,0x0000,0x0000,
-0x0289,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x028D,0x0000,0x0000,
-0x02B8,0x0000,0x0000, 0x02B9,0x0000,0x0000, 0x02B6,0x0000,0x0000,
-0x02B7,0x0000,0x0000, 0x02B0,0x0000,0x0000, 0x02B1,0x0000,0x0000,
-0x02AE,0x0000,0x0000, 0x02AF,0x0000,0x0000, 0x02B2,0x0000,0x0000,
-0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, 0x02B5,0x0000,0x0000,
-0x0238,0x0000,0x0000, 0x0239,0x0000,0x0000, 0x028A,0x0000,0x0000,
-0x028B,0x0000,0x0000, 0x0211,0x0000,0x0000, 0x0211,0x0000,0x0000,
-0x0211,0x0000,0x0000, 0x0211,0x0000,0x0000, 0x021B,0x0000,0x0000,
-0x021B,0x0000,0x0000, 0x021B,0x0000,0x0000, 0x022F,0x0000,0x0000,
-0x0237,0x0000,0x0000, 0x025D,0x0000,0x0000, 0xFBC1,0xFE53,0x0000,
-0x023A,0x0000,0x0000, 0x023D,0x0000,0x0000, 0x0255,0x0000,0x0000,
-0x0251,0x0000,0x0000, 0x0228,0x0000,0x0000, 0x0288,0x0000,0x0000,
-0x0289,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x028D,0x0000,0x0000,
-0x02B8,0x0000,0x0000, 0x02B9,0x0000,0x0000, 0x02D2,0x0000,0x0000,
-0x02CF,0x0000,0x0000, 0x02C8,0x0000,0x0000, 0x0428,0x0000,0x0000,
-0x0221,0x0000,0x0000, 0x042C,0x0000,0x0000, 0x042E,0x0000,0x0000,
-0x042D,0x0000,0x0000, 0xFBC1,0xFE67,0x0000, 0x02CE,0x0000,0x0000,
-0x0E0F,0x0000,0x0000, 0x02D3,0x0000,0x0000, 0x02C7,0x0000,0x0000,
-0xFBC1,0xFE6C,0x0000, 0xFBC1,0xFE6D,0x0000, 0xFBC1,0xFE6E,0x0000,
-0xFBC1,0xFE6F,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0xFBC1,0xFE75,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1347,0x0000,0x0000,
-0x1348,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1349,0x0000,0x0000,
-0x1349,0x0000,0x0000, 0x134C,0x0000,0x0000, 0x134C,0x0000,0x0000,
-0x134D,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x134F,0x0000,0x0000,
-0x134F,0x0000,0x0000, 0x134F,0x0000,0x0000, 0x134F,0x0000,0x0000,
-0x1350,0x0000,0x0000, 0x1350,0x0000,0x0000, 0x1352,0x0000,0x0000,
-0x1352,0x0000,0x0000, 0x1352,0x0000,0x0000, 0x1352,0x0000,0x0000,
-0x1356,0x0000,0x0000, 0x1356,0x0000,0x0000, 0x1357,0x0000,0x0000,
-0x1357,0x0000,0x0000, 0x1357,0x0000,0x0000, 0x1357,0x0000,0x0000,
-0x1358,0x0000,0x0000, 0x1358,0x0000,0x0000, 0x1358,0x0000,0x0000,
-0x1358,0x0000,0x0000, 0x135E,0x0000,0x0000, 0x135E,0x0000,0x0000,
-0x135E,0x0000,0x0000, 0x135E,0x0000,0x0000, 0x1364,0x0000,0x0000,
-0x1364,0x0000,0x0000, 0x1364,0x0000,0x0000, 0x1364,0x0000,0x0000,
-0x1365,0x0000,0x0000, 0x1365,0x0000,0x0000, 0x1365,0x0000,0x0000,
-0x1365,0x0000,0x0000, 0x1369,0x0000,0x0000, 0x1369,0x0000,0x0000,
-0x136A,0x0000,0x0000, 0x136A,0x0000,0x0000, 0x1375,0x0000,0x0000,
-0x1375,0x0000,0x0000, 0x1376,0x0000,0x0000, 0x1376,0x0000,0x0000,
-0x1381,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1381,0x0000,0x0000,
-0x1381,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1382,0x0000,0x0000,
-0x1382,0x0000,0x0000, 0x1382,0x0000,0x0000, 0x1387,0x0000,0x0000,
-0x1387,0x0000,0x0000, 0x1387,0x0000,0x0000, 0x1387,0x0000,0x0000,
-0x1388,0x0000,0x0000, 0x1388,0x0000,0x0000, 0x1388,0x0000,0x0000,
-0x1388,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138C,0x0000,0x0000,
-0x138C,0x0000,0x0000, 0x138C,0x0000,0x0000, 0x138D,0x0000,0x0000,
-0x138D,0x0000,0x0000, 0x138D,0x0000,0x0000, 0x138D,0x0000,0x0000,
-0x138F,0x0000,0x0000, 0x138F,0x0000,0x0000, 0x138F,0x0000,0x0000,
-0x138F,0x0000,0x0000, 0x1390,0x0000,0x0000, 0x1390,0x0000,0x0000,
-0x1390,0x0000,0x0000, 0x1390,0x0000,0x0000, 0x1393,0x0000,0x0000,
-0x1393,0x0000,0x0000, 0x1393,0x0000,0x0000, 0x1393,0x0000,0x0000,
-0x139B,0x0000,0x0000, 0x139B,0x0000,0x0000, 0x139B,0x0000,0x0000,
-0x139B,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x139E,0x0000,0x0000,
-0x139E,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x13AB,0x0000,0x0000,
-0x13AB,0x0000,0x0000, 0x13AB,0x0000,0x0000, 0x13AB,0x0000,0x0000,
-0x13B0,0x0000,0x0000, 0x13B0,0x0000,0x0000, 0x13B0,0x0000,0x0000,
-0x13B0,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B1,0x0000,0x0000,
-0x13B1,0x0000,0x0000, 0x13B1,0x0000,0x0000, 0x13B7,0x0000,0x0000,
-0x13B7,0x0000,0x0000, 0x13B7,0x0000,0x0000, 0x13B7,0x0000,0x0000,
-0x13BD,0x0000,0x0000, 0x13BD,0x0000,0x0000, 0x13C7,0x0000,0x0000,
-0x13C7,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13C8,0x0000,0x0000,
-0x13C8,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13AB,0x1348,0x0000,
-0x13AB,0x1348,0x0000, 0x13AB,0x1349,0x0000, 0x13AB,0x1349,0x0000,
-0x13AB,0x134D,0x0000, 0x13AB,0x134D,0x0000, 0x13AB,0x1350,0x0000,
-0x13AB,0x1350,0x0000, 0xFBC1,0xFEFD,0x0000, 0xFBC1,0xFEFE,0x0000,
-0x0000,0x0000,0x0000 };
-
-uint16 page0FFdata[]= { /* FF00 (3 weights per char) */
-0xFBC1,0xFF00,0x0000, 0x0251,0x0000,0x0000, 0x027E,0x0000,0x0000,
-0x02D2,0x0000,0x0000, 0x0E0F,0x0000,0x0000, 0x02D3,0x0000,0x0000,
-0x02CF,0x0000,0x0000, 0x0277,0x0000,0x0000, 0x0288,0x0000,0x0000,
-0x0289,0x0000,0x0000, 0x02C8,0x0000,0x0000, 0x0428,0x0000,0x0000,
-0x022F,0x0000,0x0000, 0x0221,0x0000,0x0000, 0x025D,0x0000,0x0000,
-0x02CC,0x0000,0x0000, 0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000,
-0x0E2B,0x0000,0x0000, 0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000,
-0x0E2E,0x0000,0x0000, 0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000,
-0x0E31,0x0000,0x0000, 0x0E32,0x0000,0x0000, 0x023D,0x0000,0x0000,
-0x023A,0x0000,0x0000, 0x042C,0x0000,0x0000, 0x042D,0x0000,0x0000,
-0x042E,0x0000,0x0000, 0x0255,0x0000,0x0000, 0x02C7,0x0000,0x0000,
-0x0E33,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000,
-0x0E6D,0x0000,0x0000, 0x0E8B,0x0000,0x0000, 0x0EB9,0x0000,0x0000,
-0x0EC1,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000,
-0x0F10,0x0000,0x0000, 0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000,
-0x0F5B,0x0000,0x0000, 0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000,
-0x0FA7,0x0000,0x0000, 0x0FB4,0x0000,0x0000, 0x0FC0,0x0000,0x0000,
-0x0FEA,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000,
-0x1044,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x105A,0x0000,0x0000,
-0x105E,0x0000,0x0000, 0x106A,0x0000,0x0000, 0x028A,0x0000,0x0000,
-0x02CE,0x0000,0x0000, 0x028B,0x0000,0x0000, 0x020F,0x0000,0x0000,
-0x021B,0x0000,0x0000, 0x020C,0x0000,0x0000, 0x0E33,0x0000,0x0000,
-0x0E4A,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E6D,0x0000,0x0000,
-0x0E8B,0x0000,0x0000, 0x0EB9,0x0000,0x0000, 0x0EC1,0x0000,0x0000,
-0x0EE1,0x0000,0x0000, 0x0EFB,0x0000,0x0000, 0x0F10,0x0000,0x0000,
-0x0F21,0x0000,0x0000, 0x0F2E,0x0000,0x0000, 0x0F5B,0x0000,0x0000,
-0x0F64,0x0000,0x0000, 0x0F82,0x0000,0x0000, 0x0FA7,0x0000,0x0000,
-0x0FB4,0x0000,0x0000, 0x0FC0,0x0000,0x0000, 0x0FEA,0x0000,0x0000,
-0x1002,0x0000,0x0000, 0x101F,0x0000,0x0000, 0x1044,0x0000,0x0000,
-0x1051,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105E,0x0000,0x0000,
-0x106A,0x0000,0x0000, 0x028C,0x0000,0x0000, 0x0430,0x0000,0x0000,
-0x028D,0x0000,0x0000, 0x0433,0x0000,0x0000, 0x029A,0x0000,0x0000,
-0x029B,0x0000,0x0000, 0x0266,0x0000,0x0000, 0x02B2,0x0000,0x0000,
-0x02B3,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x022E,0x0000,0x0000,
-0x1E80,0x0000,0x0000, 0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000,
-0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000,
-0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E77,0x0000,0x0000,
-0x1E63,0x0000,0x0000, 0x0E0B,0x0000,0x0000, 0x1E52,0x0000,0x0000,
-0x1E53,0x0000,0x0000, 0x1E54,0x0000,0x0000, 0x1E55,0x0000,0x0000,
-0x1E56,0x0000,0x0000, 0x1E57,0x0000,0x0000, 0x1E58,0x0000,0x0000,
-0x1E59,0x0000,0x0000, 0x1E5A,0x0000,0x0000, 0x1E5B,0x0000,0x0000,
-0x1E5C,0x0000,0x0000, 0x1E5D,0x0000,0x0000, 0x1E5E,0x0000,0x0000,
-0x1E5F,0x0000,0x0000, 0x1E60,0x0000,0x0000, 0x1E61,0x0000,0x0000,
-0x1E62,0x0000,0x0000, 0x1E63,0x0000,0x0000, 0x1E64,0x0000,0x0000,
-0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, 0x1E67,0x0000,0x0000,
-0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, 0x1E6A,0x0000,0x0000,
-0x1E6B,0x0000,0x0000, 0x1E6C,0x0000,0x0000, 0x1E6D,0x0000,0x0000,
-0x1E6E,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E70,0x0000,0x0000,
-0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E73,0x0000,0x0000,
-0x1E74,0x0000,0x0000, 0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000,
-0x1E77,0x0000,0x0000, 0x1E78,0x0000,0x0000, 0x1E79,0x0000,0x0000,
-0x1E7A,0x0000,0x0000, 0x1E7B,0x0000,0x0000, 0x1E7C,0x0000,0x0000,
-0x1E7D,0x0000,0x0000, 0x1E81,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0000,0x0000,0x0000, 0x1DBD,0x0000,0x0000, 0x1D62,0x0000,0x0000,
-0x1D63,0x0000,0x0000, 0x1E02,0x0000,0x0000, 0x1D64,0x0000,0x0000,
-0x1E04,0x0000,0x0000, 0x1E05,0x0000,0x0000, 0x1D65,0x0000,0x0000,
-0x1D66,0x0000,0x0000, 0x1D67,0x0000,0x0000, 0x1E08,0x0000,0x0000,
-0x1E09,0x0000,0x0000, 0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000,
-0x1E0C,0x0000,0x0000, 0x1E0D,0x0000,0x0000, 0x1D7C,0x0000,0x0000,
-0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, 0x1D6A,0x0000,0x0000,
-0x1D83,0x0000,0x0000, 0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000,
-0x1D6D,0x0000,0x0000, 0x1D6E,0x0000,0x0000, 0x1D6F,0x0000,0x0000,
-0x1D70,0x0000,0x0000, 0x1D71,0x0000,0x0000, 0x1D72,0x0000,0x0000,
-0x1D73,0x0000,0x0000, 0x1D74,0x0000,0x0000, 0xFBC1,0xFFBF,0x0000,
-0xFBC1,0xFFC0,0x0000, 0xFBC1,0xFFC1,0x0000, 0x1DBE,0x0000,0x0000,
-0x1DBF,0x0000,0x0000, 0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000,
-0x1DC2,0x0000,0x0000, 0x1DC3,0x0000,0x0000, 0xFBC1,0xFFC8,0x0000,
-0xFBC1,0xFFC9,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000,
-0x1DC6,0x0000,0x0000, 0x1DC7,0x0000,0x0000, 0x1DC8,0x0000,0x0000,
-0x1DC9,0x0000,0x0000, 0xFBC1,0xFFD0,0x0000, 0xFBC1,0xFFD1,0x0000,
-0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, 0x1DCC,0x0000,0x0000,
-0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, 0x1DCF,0x0000,0x0000,
-0xFBC1,0xFFD8,0x0000, 0xFBC1,0xFFD9,0x0000, 0x1DD0,0x0000,0x0000,
-0x1DD1,0x0000,0x0000, 0x1DD2,0x0000,0x0000, 0xFBC1,0xFFDD,0x0000,
-0xFBC1,0xFFDE,0x0000, 0xFBC1,0xFFDF,0x0000, 0x0E0E,0x0000,0x0000,
-0x0E10,0x0000,0x0000, 0x042F,0x0000,0x0000, 0x0210,0x0000,0x0000,
-0x0431,0x0000,0x0000, 0x0E11,0x0000,0x0000, 0x0E20,0x0000,0x0000,
-0xFBC1,0xFFE7,0x0000, 0x05FE,0x0000,0x0000, 0x03AE,0x0000,0x0000,
-0x03B0,0x0000,0x0000, 0x03AF,0x0000,0x0000, 0x03B1,0x0000,0x0000,
-0x069C,0x0000,0x0000, 0x06C7,0x0000,0x0000, 0xFBC1,0xFFEF,0x0000,
-0xFBC1,0xFFF0,0x0000, 0xFBC1,0xFFF1,0x0000, 0xFBC1,0xFFF2,0x0000,
-0xFBC1,0xFFF3,0x0000, 0xFBC1,0xFFF4,0x0000, 0xFBC1,0xFFF5,0x0000,
-0xFBC1,0xFFF6,0x0000, 0xFBC1,0xFFF7,0x0000, 0xFBC1,0xFFF8,0x0000,
-0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,
-0x0DC5,0x0000,0x0000, 0x0DC6,0x0000,0x0000, 0xFBC1,0xFFFE,0x0000,
-0xFBC1,0xFFFF,0x0000 };
-
-uchar uca_length[256]={
-4,3,3,4,3,3,3,3,0,3,3,3,3,3,3,3,
-3,3,3,3,3,2,3,3,3,3,0,0,0,3,3,3,
-5,5,4,3,5,2,3,3,2,2,5,3,0,0,3,3,
-3,3,8,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,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,
-2,2,2,2,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,3,3,4,3,9,3,3
-};
-uint16 *uca_weight[256]={
-page000data,page001data,page002data,page003data,
-page004data,page005data,page006data,page007data,
-NULL ,page009data,page00Adata,page00Bdata,
-page00Cdata,page00Ddata,page00Edata,page00Fdata,
-page010data,page011data,page012data,page013data,
-page014data,page015data,page016data,page017data,
-page018data,page019data,NULL ,NULL ,
-NULL ,page01Ddata,page01Edata,page01Fdata,
-page020data,page021data,page022data,page023data,
-page024data,page025data,page026data,page027data,
-page028data,page029data,page02Adata,page02Bdata,
-NULL ,NULL ,page02Edata,page02Fdata,
-page030data,page031data,page032data,page033data,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,page04Ddata,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-page0A0data,page0A1data,page0A2data,page0A3data,
-page0A4data,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,NULL ,NULL ,NULL ,
-NULL ,page0F9data,page0FAdata,page0FBdata,
-page0FCdata,page0FDdata,page0FEdata,page0FFdata
-};
-
-/*
- Some sources treat LETTER A WITH DIARESIS (00E4,00C4)
- secondary greater than LETTER AE (00E6,00C6).
- http://www.evertype.com/alphabets/icelandic.pdf
- http://developer.mimer.com/collations/charts/icelandic.htm
-
- Other sources do not provide any special rules
- for LETTER A WITH DIARESIS:
- http://www.omniglot.com/writing/icelandic.htm
- http://en.wikipedia.org/wiki/Icelandic_alphabet
- http://oss.software.ibm.com/icu/charts/collation/is.html
-
- Let's go the first way.
-*/
-
-static const char icelandic[]=
- "& A < \\u00E1 <<< \\u00C1 "
- "& D < \\u00F0 <<< \\u00D0 "
- "& E < \\u00E9 <<< \\u00C9 "
- "& I < \\u00ED <<< \\u00CD "
- "& O < \\u00F3 <<< \\u00D3 "
- "& U < \\u00FA <<< \\u00DA "
- "& Y < \\u00FD <<< \\u00DD "
- "& Z < \\u00FE <<< \\u00DE "
- "< \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
- "< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 "
- "< \\u00E5 <<< \\u00C5 ";
-
-/*
- Some sources treat I and Y primary different.
- Other sources treat I and Y the same on primary level.
- We'll go the first way.
-*/
-
-static const char latvian[]=
- "& C < \\u010D <<< \\u010C "
- "& G < \\u0123 <<< \\u0122 "
- "& I < \\u0079 <<< \\u0059 "
- "& K < \\u0137 <<< \\u0136 "
- "& L < \\u013C <<< \\u013B "
- "& N < \\u0146 <<< \\u0145 "
- "& R < \\u0157 <<< \\u0156 "
- "& S < \\u0161 <<< \\u0160 "
- "& Z < \\u017E <<< \\u017D ";
-
-
-static const char romanian[]=
- "& A < \\u0103 <<< \\u0102 < \\u00E2 <<< \\u00C2 "
- "& I < \\u00EE <<< \\u00CE "
- "& S < \\u0219 <<< \\u0218 << \\u015F <<< \\u015E "
- "& T < \\u021B <<< \\u021A << \\u0163 <<< \\u0162 ";
-
-static const char slovenian[]=
- "& C < \\u010D <<< \\u010C "
- "& S < \\u0161 <<< \\u0160 "
- "& Z < \\u017E <<< \\u017D ";
-
-
-static const char polish[]=
- "& A < \\u0105 <<< \\u0104 "
- "& C < \\u0107 <<< \\u0106 "
- "& E < \\u0119 <<< \\u0118 "
- "& L < \\u0142 <<< \\u0141 "
- "& N < \\u0144 <<< \\u0143 "
- "& O < \\u00F3 <<< \\u00D3 "
- "& S < \\u015B <<< \\u015A "
- "& Z < \\u017A <<< \\u0179 < \\u017C <<< \\u017B";
-
-static const char estonian[]=
- "& S < \\u0161 <<< \\u0160 "
- " < \\u007A <<< \\u005A "
- " < \\u017E <<< \\u017D "
- "& W < \\u00F5 <<< \\u00D5 "
- "< \\u00E4 <<< \\u00C4 "
- "< \\u00F6 <<< \\u00D6 "
- "< \\u00FC <<< \\u00DC ";
-
-static const char spanish[]= "& N < \\u00F1 <<< \\u00D1 ";
-
-/*
- Some sources treat V and W as similar on primary level.
- We'll treat V and W as different on primary level.
-*/
-
-static const char swedish[]=
- "& Y <<\\u00FC <<< \\u00DC "
- "& Z < \\u00E5 <<< \\u00C5 "
- "< \\u00E4 <<< \\u00C4 << \\u00E6 <<< \\u00C6 "
- "< \\u00F6 <<< \\u00D6 << \\u00F8 <<< \\u00D8 ";
-
-static const char turkish[]=
- "& C < \\u00E7 <<< \\u00C7 "
- "& G < \\u011F <<< \\u011E "
- "& H < \\u0131 <<< \\u0049 "
- "& O < \\u00F6 <<< \\u00D6 "
- "& S < \\u015F <<< \\u015E "
- "& U < \\u00FC <<< \\u00DC ";
-
-
-static const char czech[]=
- "& C < \\u010D <<< \\u010C "
- "& H < ch <<< Ch <<< CH"
- "& R < \\u0159 <<< \\u0158"
- "& S < \\u0161 <<< \\u0160"
- "& Z < \\u017E <<< \\u017D";
-
-static const char danish[]= /* Also good for Norwegian */
- "& Y << \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170"
- "& Z < \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4"
- " < \\u00F8 <<< \\u00D8 << \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
- " < \\u00E5 <<< \\u00C5 << aa <<< Aa <<< AA";
-
-static const char lithuanian[]=
- "& C << ch <<< Ch <<< CH< \\u010D <<< \\u010C"
- "& E << \\u0119 <<< \\u0118 << \\u0117 <<< \\u0116"
- "& I << y <<< Y"
- "& S < \\u0161 <<< \\u0160"
- "& Z < \\u017E <<< \\u017D";
-
-static const char slovak[]=
- "& A < \\u00E4 <<< \\u00C4"
- "& C < \\u010D <<< \\u010C"
- "& H < ch <<< Ch <<< CH"
- "& O < \\u00F4 <<< \\u00D4"
- "& S < \\u0161 <<< \\u0160"
- "& Z < \\u017E <<< \\u017D";
-
-static const char spanish2[]= /* Also good for Asturian and Galician */
- "&C < ch <<< Ch <<< CH"
- "&L < ll <<< Ll <<< LL"
- "&N < \\u00F1 <<< \\u00D1";
-
-static const char roman[]= /* i.e. Classical Latin */
- "& I << j <<< J "
- "& V << u <<< U ";
-
-/*
- Persian collation support was provided by
- Jody McIntyre <mysql@modernduck.com>
-
- To: internals@lists.mysql.com
- Subject: Persian UTF8 collation support
- Date: 17.08.2004
-
- Contraction is not implemented. Some implementations do perform
- contraction but others do not, and it is able to sort all my test
- strings correctly.
-
- Jody.
-*/
-static const char persian[]=
- "& \\u066D < \\u064E < \\uFE76 < \\uFE77 < \\u0650 < \\uFE7A < \\uFE7B"
- " < \\u064F < \\uFE78 < \\uFE79 < \\u064B < \\uFE70 < \\uFE71"
- " < \\u064D < \\uFE74 < \\u064C < \\uFE72"
- "& \\uFE7F < \\u0653 < \\u0654 < \\u0655 < \\u0670"
- "& \\u0669 < \\u0622 < \\u0627 < \\u0671 < \\u0621 < \\u0623 < \\u0625"
- " < \\u0624 < \\u0626"
- "& \\u0642 < \\u06A9 < \\u0643"
- "& \\u0648 < \\u0647 < \\u0629 < \\u06C0 < \\u06CC < \\u0649 < \\u064A"
- "& \\uFE80 < \\uFE81 < \\uFE82 < \\uFE8D < \\uFE8E < \\uFB50 < \\uFB51"
- " < \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85"
- " < \\uFE86 < \\u0689 < \\u068A"
- "& \\uFEAE < \\uFDFC"
- "& \\uFED8 < \\uFB8E < \\uFB8F < \\uFB90 < \\uFB91 < \\uFED9 < \\uFEDA"
- " < \\uFEDB < \\uFEDC"
- "& \\uFEEE < \\uFEE9 < \\uFEEA < \\uFEEB < \\uFEEC < \\uFE93 < \\uFE94"
- " < \\uFBA4 < \\uFBA5 < \\uFBFC < \\uFBFD < \\uFBFE < \\uFBFF"
- " < \\uFEEF < \\uFEF0 < \\uFEF1 < \\uFEF2 < \\uFEF3 < \\uFEF4"
- " < \\uFEF5 < \\uFEF6 < \\uFEF7 < \\uFEF8 < \\uFEF9 < \\uFEFA"
- " < \\uFEFB < \\uFEFC";
-
-/*
- Esperanto tailoring.
- Contributed by Bertilo Wennergren <bertilow at gmail dot com>
- September 1, 2005
-*/
-static const char esperanto[]=
- "& C < \\u0109 <<< \\u0108"
- "& G < \\u011D <<< \\u011C"
- "& H < \\u0125 <<< \\u0124"
- "& J < \\u0135 <<< \\u0134"
- "& S < \\u015d <<< \\u015c"
- "& U < \\u016d <<< \\u016c";
-
-/*
- A simplified version of Hungarian, without consonant contractions.
-*/
-static const char hungarian[]=
- "&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
- "&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170";
-
-/*
- SCCII Part 1 : Collation Sequence (SLS1134)
- 2006/11/24
- Harshula Jayasuriya <harshula at gmail dot com>
- Language Technology Research Lab, University of Colombo / ICTA
-*/
-#if 0
-static const char sinhala[]=
- "& \\u0D96 < \\u0D82 < \\u0D83"
- "& \\u0DA5 < \\u0DA4"
- "& \\u0DD8 < \\u0DF2 < \\u0DDF < \\u0DF3"
- "& \\u0DDE < \\u0DCA";
-#else
-static const char sinhala[]=
- "& \\u0D96 < \\u0D82 < \\u0D83 < \\u0D9A < \\u0D9B < \\u0D9C < \\u0D9D"
- "< \\u0D9E < \\u0D9F < \\u0DA0 < \\u0DA1 < \\u0DA2 < \\u0DA3"
- "< \\u0DA5 < \\u0DA4 < \\u0DA6"
- "< \\u0DA7 < \\u0DA8 < \\u0DA9 < \\u0DAA < \\u0DAB < \\u0DAC"
- "< \\u0DAD < \\u0DAE < \\u0DAF < \\u0DB0 < \\u0DB1"
- "< \\u0DB3 < \\u0DB4 < \\u0DB5 < \\u0DB6 < \\u0DB7 < \\u0DB8"
- "< \\u0DB9 < \\u0DBA < \\u0DBB < \\u0DBD < \\u0DC0 < \\u0DC1"
- "< \\u0DC2 < \\u0DC3 < \\u0DC4 < \\u0DC5 < \\u0DC6"
- "< \\u0DCF"
- "< \\u0DD0 < \\u0DD1 < \\u0DD2 < \\u0DD3 < \\u0DD4 < \\u0DD6"
- "< \\u0DD8 < \\u0DF2 < \\u0DDF < \\u0DF3 < \\u0DD9 < \\u0DDA"
- "< \\u0DDB < \\u0DDC < \\u0DDD < \\u0DDE < \\u0DCA";
-#endif
-
-
-/*
- Unicode Collation Algorithm:
- Collation element (weight) scanner,
- for consequent scan of collations
- weights from a string.
-*/
-typedef struct my_uca_scanner_st
-{
- const uint16 *wbeg; /* Beginning of the current weight string */
- const uchar *sbeg; /* Beginning of the input string */
- const uchar *send; /* End of the input string */
- uchar *uca_length;
- uint16 **uca_weight;
- uint16 *contractions;
- uint16 implicit[2];
- int page;
- int code;
- CHARSET_INFO *cs;
-} my_uca_scanner;
-
-/*
- Charset dependent scanner part, to optimize
- some character sets.
-*/
-typedef struct my_uca_scanner_handler_st
-{
- void (*init)(my_uca_scanner *scanner, CHARSET_INFO *cs,
- const uchar *str, size_t length);
- int (*next)(my_uca_scanner *scanner);
-} my_uca_scanner_handler;
-
-static uint16 nochar[]= {0,0};
-
-
-#ifdef HAVE_CHARSET_ucs2
-/*
- Initialize collation weight scanner
-
- SYNOPSIS:
- my_uca_scanner_init()
- scanner Pointer to an initialized scanner structure
- cs Character set + collation information
- str Beginning of the string
- length Length of the string.
-
- NOTES:
- Optimized for UCS2
-
- RETURN
- N/A
-*/
-
-static void my_uca_scanner_init_ucs2(my_uca_scanner *scanner,
- CHARSET_INFO *cs __attribute__((unused)),
- const uchar *str, size_t length)
-{
- scanner->wbeg= nochar;
- if (length)
- {
- scanner->sbeg= str;
- scanner->send= str + length - 2;
- scanner->uca_length= cs->sort_order;
- scanner->uca_weight= cs->sort_order_big;
- scanner->contractions= cs->contractions;
- return;
- }
-
- /*
- Sometimes this function is called with
- str=NULL and length=0, which should be
- considered as an empty string.
-
- The above initialization is unsafe for such cases,
- because scanner->send is initialized to (NULL-2), which is 0xFFFFFFFE.
- Then we fall into an endless loop in my_uca_scanner_next_ucs2().
-
- Do special initialization for the case when length=0.
- Initialize scanner->sbeg to an address greater than scanner->send.
- Next call of my_uca_scanner_next_ucs2() will correctly return with -1.
- */
- scanner->sbeg= (uchar*) &nochar[1];
- scanner->send= (uchar*) &nochar[0];
-}
-
-
-/*
- Read next collation element (weight), i.e. converts
- a stream of characters into a stream of their weights.
-
- SYNOPSIS:
- my_uca_scanner_next()
- scanner Address of a previously initialized scanner strucuture
-
- NOTES:
- Optimized for UCS2
-
- Checks if the current character's weight string has been fully scanned,
- if no, then returns the next weight for this character,
- else scans the next character and returns its first weight.
-
- Each character can have number weights from 0 to 8.
-
- Some characters do not have weights at all, 0 weights.
- It means they are ignored during comparison.
-
- Examples:
- 1. 0x0001 START OF HEADING, has no weights, ignored, does
- not produce any weights.
- 2. 0x0061 LATIN SMALL LETTER A, has one weight.
- 0x0E33 will be returned
- 3. 0x00DF LATIN SMALL LETTER SHARP S, aka SZ ligature,
- has two weights. It will return 0x0FEA twice for two
- consequent calls.
- 4. 0x247D PATENTHESIZED NUMBER TEN, has four weights,
- this function will return these numbers in four
- consequent calls: 0x0288, 0x0E2A, 0x0E29, 0x0289
- 5. A string consisting of the above characters:
- 0x0001 0x0061 0x00DF 0x247D
- will return the following weights, one weight per call:
- 0x0E33 0x0FEA 0x0FEA 0x0288, 0x0E2A, 0x0E29, 0x0289
-
- RETURN
- Next weight, a number between 0x0000 and 0xFFFF
- Or -1 on error (END-OF-STRING or ILLEGAL MULTIBYTE SEQUENCE)
-*/
-
-static int my_uca_scanner_next_ucs2(my_uca_scanner *scanner)
-{
-
- /*
- Check if the weights for the previous character have been
- already fully scanned. If yes, then get the next character and
- initialize wbeg and wlength to its weight string.
- */
-
- if (scanner->wbeg[0])
- return *scanner->wbeg++;
-
- do
- {
- uint16 **ucaw= scanner->uca_weight;
- uchar *ucal= scanner->uca_length;
-
- if (scanner->sbeg > scanner->send)
- return -1;
-
- scanner->page= (uchar)scanner->sbeg[0];
- scanner->code= (uchar)scanner->sbeg[1];
- scanner->sbeg+= 2;
-
- if (scanner->contractions && (scanner->sbeg <= scanner->send))
- {
- int cweight;
-
- if (!scanner->page && !scanner->sbeg[0] &&
- (scanner->sbeg[1] > 0x40) && (scanner->sbeg[1] < 0x80) &&
- (scanner->code > 0x40) && (scanner->code < 0x80) &&
- (cweight= scanner->contractions[(scanner->code-0x40)*0x40+scanner->sbeg[1]-0x40]))
- {
- scanner->implicit[0]= 0;
- scanner->wbeg= scanner->implicit;
- scanner->sbeg+=2;
- return cweight;
- }
- }
-
- if (!ucaw[scanner->page])
- goto implicit;
- scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page];
- } while (!scanner->wbeg[0]);
-
- return *scanner->wbeg++;
-
-implicit:
-
- scanner->code= (scanner->page << 8) + scanner->code;
- scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000;
- scanner->implicit[1]= 0;
- scanner->wbeg= scanner->implicit;
-
- scanner->page= scanner->page >> 7;
-
- if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5)
- scanner->page+= 0xFB80;
- else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5)
- scanner->page+= 0xFB40;
- else
- scanner->page+= 0xFBC0;
-
- return scanner->page;
-}
-
-static my_uca_scanner_handler my_ucs2_uca_scanner_handler=
-{
- my_uca_scanner_init_ucs2,
- my_uca_scanner_next_ucs2
-};
-
-#endif
-
-
-/*
- The same two functions for any character set
-*/
-static void my_uca_scanner_init_any(my_uca_scanner *scanner,
- CHARSET_INFO *cs __attribute__((unused)),
- const uchar *str, size_t length)
-{
- /* Note, no needs to initialize scanner->wbeg */
- scanner->sbeg= str;
- scanner->send= str + length;
- scanner->wbeg= nochar;
- scanner->uca_length= cs->sort_order;
- scanner->uca_weight= cs->sort_order_big;
- scanner->contractions= cs->contractions;
- scanner->cs= cs;
-}
-
-static int my_uca_scanner_next_any(my_uca_scanner *scanner)
-{
-
- /*
- Check if the weights for the previous character have been
- already fully scanned. If yes, then get the next character and
- initialize wbeg and wlength to its weight string.
- */
-
- if (scanner->wbeg[0])
- return *scanner->wbeg++;
-
- do
- {
- uint16 **ucaw= scanner->uca_weight;
- uchar *ucal= scanner->uca_length;
- my_wc_t wc;
- int mb_len;
-
- if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc,
- scanner->sbeg,
- scanner->send)) <= 0))
- return -1;
-
- scanner->sbeg+= mb_len;
- if (wc > 0xFFFF)
- {
- /* Return 0xFFFD as weight for all characters outside BMP */
- scanner->wbeg= nochar;
- return 0xFFFD;
- }
- else
- {
- scanner->page= wc >> 8;
- scanner->code= wc & 0xFF;
- }
-
- if (scanner->contractions && !scanner->page &&
- (scanner->code > 0x40) && (scanner->code < 0x80))
- {
- uint page1, code1, cweight;
-
- if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc,
- scanner->sbeg,
- scanner->send)) >=0) &&
- (!(page1= (wc >> 8))) &&
- ((code1= (wc & 0xFF)) > 0x40) &&
- (code1 < 0x80) &&
- (cweight= scanner->contractions[(scanner->code-0x40)*0x40 + code1-0x40]))
- {
- scanner->implicit[0]= 0;
- scanner->wbeg= scanner->implicit;
- scanner->sbeg+= mb_len;
- return cweight;
- }
- }
-
- if (!ucaw[scanner->page])
- goto implicit;
- scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page];
- } while (!scanner->wbeg[0]);
-
- return *scanner->wbeg++;
-
-implicit:
-
- scanner->code= (scanner->page << 8) + scanner->code;
- scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000;
- scanner->implicit[1]= 0;
- scanner->wbeg= scanner->implicit;
-
- scanner->page= scanner->page >> 7;
-
- if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5)
- scanner->page+= 0xFB80;
- else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5)
- scanner->page+= 0xFB40;
- else
- scanner->page+= 0xFBC0;
-
- return scanner->page;
-}
-
-
-static my_uca_scanner_handler my_any_uca_scanner_handler=
-{
- my_uca_scanner_init_any,
- my_uca_scanner_next_any
-};
-
-/*
- Compares two strings according to the collation
-
- SYNOPSIS:
- my_strnncoll_uca()
- cs Character set information
- s First string
- slen First string length
- t Second string
- tlen Seconf string length
-
- NOTES:
- Initializes two weight scanners and gets weights
- corresponding to two strings in a loop. If weights are not
- the same at some step then returns their difference.
-
- In the while() comparison these situations are possible:
- 1. (s_res>0) and (t_res>0) and (s_res == t_res)
- Weights are the same so far, continue comparison
- 2. (s_res>0) and (t_res>0) and (s_res!=t_res)
- A difference has been found, return.
- 3. (s_res>0) and (t_res<0)
- We have reached the end of the second string, or found
- an illegal multibyte sequence in the second string.
- Return a positive number, i.e. the first string is bigger.
- 4. (s_res<0) and (t_res>0)
- We have reached the end of the first string, or found
- an illegal multibyte sequence in the first string.
- Return a negative number, i.e. the second string is bigger.
- 5. (s_res<0) and (t_res<0)
- Both scanners returned -1. It means we have riched
- the end-of-string of illegal-sequence in both strings
- at the same time. Return 0, strings are equal.
-
- RETURN
- Difference between two strings, according to the collation:
- 0 - means strings are equal
- negative number - means the first string is smaller
- positive number - means the first string is bigger
-*/
-
-static int my_strnncoll_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_uca_scanner sscanner;
- my_uca_scanner tscanner;
- int s_res;
- int t_res;
-
- scanner_handler->init(&sscanner, cs, s, slen);
- scanner_handler->init(&tscanner, cs, t, tlen);
-
- do
- {
- s_res= scanner_handler->next(&sscanner);
- t_res= scanner_handler->next(&tscanner);
- } while ( s_res == t_res && s_res >0);
-
- return (t_is_prefix && t_res < 0) ? 0 : (s_res - t_res);
-}
-
-/*
- Compares two strings according to the collation,
- ignoring trailing spaces.
-
- SYNOPSIS:
- my_strnncollsp_uca()
- cs Character set information
- s First string
- slen First string length
- t Second string
- tlen Seconf string length
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- NOTES:
- Works exactly the same with my_strnncoll_uca(),
- but ignores trailing spaces.
-
- In the while() comparison these situations are possible:
- 1. (s_res>0) and (t_res>0) and (s_res == t_res)
- Weights are the same so far, continue comparison
- 2. (s_res>0) and (t_res>0) and (s_res!=t_res)
- A difference has been found, return.
- 3. (s_res>0) and (t_res<0)
- We have reached the end of the second string, or found
- an illegal multibyte sequence in the second string.
- Compare the first string to an infinite array of
- space characters until difference is found, or until
- the end of the first string.
- 4. (s_res<0) and (t_res>0)
- We have reached the end of the first string, or found
- an illegal multibyte sequence in the first string.
- Compare the second string to an infinite array of
- space characters until difference is found or until
- the end of the second steing.
- 5. (s_res<0) and (t_res<0)
- Both scanners returned -1. It means we have riched
- the end-of-string of illegal-sequence in both strings
- at the same time. Return 0, strings are equal.
-
- RETURN
- Difference between two strings, according to the collation:
- 0 - means strings are equal
- negative number - means the first string is smaller
- positive number - means the first string is bigger
-*/
-
-static int my_strnncollsp_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- my_uca_scanner sscanner, tscanner;
- int s_res, t_res;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- scanner_handler->init(&sscanner, cs, s, slen);
- scanner_handler->init(&tscanner, cs, t, tlen);
-
- do
- {
- s_res= scanner_handler->next(&sscanner);
- t_res= scanner_handler->next(&tscanner);
- } while ( s_res == t_res && s_res >0);
-
- if (s_res > 0 && t_res < 0)
- {
- /* Calculate weight for SPACE character */
- t_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
-
- /* compare the first string to spaces */
- do
- {
- if (s_res != t_res)
- return (s_res - t_res);
- s_res= scanner_handler->next(&sscanner);
- } while (s_res > 0);
- return diff_if_only_endspace_difference ? 1 : 0;
- }
-
- if (s_res < 0 && t_res > 0)
- {
- /* Calculate weight for SPACE character */
- s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
-
- /* compare the second string to spaces */
- do
- {
- if (s_res != t_res)
- return (s_res - t_res);
- t_res= scanner_handler->next(&tscanner);
- } while (t_res > 0);
- return diff_if_only_endspace_difference ? -1 : 0;
- }
-
- return ( s_res - t_res );
-}
-
-/*
- Calculates hash value for the given string,
- according to the collation, and ignoring trailing spaces.
-
- SYNOPSIS:
- my_hash_sort_uca()
- cs Character set information
- s String
- slen String's length
- n1 First hash parameter
- n2 Second hash parameter
-
- NOTES:
- Scans consequently weights and updates
- hash parameters n1 and n2. In a case insensitive collation,
- upper and lower case of the same letter will return the same
- weight sequence, and thus will produce the same hash values
- in n1 and n2.
-
- RETURN
- N/A
-*/
-
-static void my_hash_sort_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- int s_res;
- my_uca_scanner scanner;
-
- slen= cs->cset->lengthsp(cs, (char*) s, slen);
- scanner_handler->init(&scanner, cs, s, slen);
-
- while ((s_res= scanner_handler->next(&scanner)) >0)
- {
- n1[0]^= (((n1[0] & 63)+n2[0])*(s_res >> 8))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(s_res & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
- }
-}
-
-
-/*
- For the given string creates its "binary image", suitable
- to be used in binary comparison, i.e. in memcmp().
-
- SYNOPSIS:
- my_strnxfrm_uca()
- cs Character set information
- dst Where to write the image
- dstlen Space available for the image, in bytes
- src The source string
- srclen Length of the source string, in bytes
-
- NOTES:
- In a loop, scans weights from the source string and writes
- them into the binary image. In a case insensitive collation,
- upper and lower cases of the same letter will produce the
- same image subsequences. When we have reached the end-of-string
- or found an illegal multibyte sequence, the loop stops.
-
- It is impossible to restore the original string using its
- binary image.
-
- Binary images are used for bulk comparison purposes,
- e.g. in ORDER BY, when it is more efficient to create
- a binary image and use it instead of weight scanner
- for the original strings for every comparison.
-
- RETURN
- Number of bytes that have been written into the binary image.
-*/
-
-static size_t my_strnxfrm_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- uchar *de= dst + (dstlen & (size_t) ~1); /* add even length for easier code */
- int s_res;
- my_uca_scanner scanner;
- scanner_handler->init(&scanner, cs, src, srclen);
-
- while (dst < de && (s_res= scanner_handler->next(&scanner)) >0)
- {
- dst[0]= s_res >> 8;
- dst[1]= s_res & 0xFF;
- dst+= 2;
- }
- s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
- while (dst < de)
- {
- dst[0]= s_res >> 8;
- dst[1]= s_res & 0xFF;
- dst+= 2;
- }
- if (dstlen & 1) /* if odd number then fill the last char */
- *dst= '\0';
-
- return dstlen;
-}
-
-
-
-/*
- This function compares if two characters are the same.
- The sign +1 or -1 does not matter. The only
- important thing is that the result is 0 or not 0.
- This fact allows us to use memcmp() safely, on both
- little-endian and big-endian machines.
-*/
-
-static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
-{
- size_t page1= wc1 >> MY_UCA_PSHIFT;
- size_t page2= wc2 >> MY_UCA_PSHIFT;
- uchar *ucal= cs->sort_order;
- uint16 **ucaw= cs->sort_order_big;
- size_t length1= ucal[page1];
- size_t length2= ucal[page2];
- uint16 *weight1= ucaw[page1] + (wc1 & MY_UCA_CMASK) * ucal[page1];
- uint16 *weight2= ucaw[page2] + (wc2 & MY_UCA_CMASK) * ucal[page2];
-
- if (!weight1 || !weight2)
- return wc1 != wc2;
-
- if (length1 > length2)
- return memcmp((const void*)weight1, (const void*)weight2, length2*2) ?
- 1: weight1[length2];
-
- if (length1 < length2)
- return memcmp((const void*)weight1, (const void*)weight2, length1*2) ?
- 1 : weight2[length1];
-
- return memcmp((const void*)weight1, (const void*)weight2, length1*2);
-}
-
-/*
-** Compare string against string with wildcard
-** 0 if matched
-** -1 if not matched with wildcard
-** 1 if matched with wildcard
-*/
-
-static
-int my_wildcmp_uca(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- int result= -1; /* Not found, using wildcards */
- my_wc_t s_wc, w_wc;
- int scan;
- int (*mb_wc)(struct charset_info_st *, my_wc_t *,
- const uchar *, const uchar *);
- mb_wc= cs->cset->mb_wc;
-
- while (wildstr != wildend)
- {
- while (1)
- {
- my_bool escaped= 0;
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
-
- if (w_wc == (my_wc_t)w_many)
- {
- result= 1; /* Found an anchor char */
- break;
- }
-
- wildstr+= scan;
- if (w_wc == (my_wc_t)escape)
- {
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
- wildstr+= scan;
- escaped= 1;
- }
-
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
- return 1;
- str+= scan;
-
- if (!escaped && w_wc == (my_wc_t)w_one)
- {
- result= 1; /* Found an anchor char */
- }
- else
- {
- if (my_uca_charcmp(cs,s_wc,w_wc))
- return 1;
- }
- if (wildstr == wildend)
- return (str != str_end); /* Match if both are at end */
- }
-
-
- if (w_wc == (my_wc_t)w_many)
- { /* Found w_many */
-
- /* Remove any '%' and '_' from the wild search string */
- for ( ; wildstr != wildend ; )
- {
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
-
- if (w_wc == (my_wc_t)w_many)
- {
- wildstr+= scan;
- continue;
- }
-
- if (w_wc == (my_wc_t)w_one)
- {
- wildstr+= scan;
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
- return 1;
- str+= scan;
- continue;
- }
- break; /* Not a wild character */
- }
-
- if (wildstr == wildend)
- return 0; /* Ok if w_many is last */
-
- if (str == str_end)
- return -1;
-
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
-
- if (w_wc == (my_wc_t)escape)
- {
- wildstr+= scan;
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
- }
-
- while (1)
- {
- /* Skip until the first character from wildstr is found */
- while (str != str_end)
- {
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
- return 1;
-
- if (!my_uca_charcmp(cs,s_wc,w_wc))
- break;
- str+= scan;
- }
- if (str == str_end)
- return -1;
-
- result= my_wildcmp_uca(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many);
-
- if (result <= 0)
- return result;
-
- str+= scan;
- }
- }
- }
- return (str != str_end ? 1 : 0);
-}
-
-
-/*
- Collation language is implemented according to
- subset of ICU Collation Customization (tailorings):
- http://oss.software.ibm.com/icu/userguide/Collate_Customization.html
-
- Collation language elements:
- Delimiters:
- space - skipped
-
- <char> := A-Z | a-z | \uXXXX
-
- Shift command:
- <shift> := & - reset at this letter.
-
- Diff command:
- <d1> := < - Identifies a primary difference.
- <d2> := << - Identifies a secondary difference.
- <d3> := <<< - Idenfifies a tertiary difference.
-
-
- Collation rules:
- <ruleset> := <rule> { <ruleset> }
-
- <rule> := <d1> <string>
- | <d2> <string>
- | <d3> <string>
- | <shift> <char>
-
- <string> := <char> [ <string> ]
-
- An example, Polish collation:
-
- &A < \u0105 <<< \u0104
- &C < \u0107 <<< \u0106
- &E < \u0119 <<< \u0118
- &L < \u0142 <<< \u0141
- &N < \u0144 <<< \u0143
- &O < \u00F3 <<< \u00D3
- &S < \u015B <<< \u015A
- &Z < \u017A <<< \u017B
-*/
-
-
-typedef enum my_coll_lexem_num_en
-{
- MY_COLL_LEXEM_EOF = 0,
- MY_COLL_LEXEM_DIFF = 1,
- MY_COLL_LEXEM_SHIFT = 4,
- MY_COLL_LEXEM_CHAR = 5,
- MY_COLL_LEXEM_ERROR = 6
-} my_coll_lexem_num;
-
-
-typedef struct my_coll_lexem_st
-{
- const char *beg;
- const char *end;
- const char *prev;
- int diff;
- int code;
-} MY_COLL_LEXEM;
-
-
-/*
- Initialize collation rule lexical anilizer
-
- SYNOPSIS
- my_coll_lexem_init
- lexem Lex analizer to init
- str Const string to parse
- str_end End of the string
- USAGE
-
- RETURN VALUES
- N/A
-*/
-
-static void my_coll_lexem_init(MY_COLL_LEXEM *lexem,
- const char *str, const char *str_end)
-{
- lexem->beg= str;
- lexem->prev= str;
- lexem->end= str_end;
- lexem->diff= 0;
- lexem->code= 0;
-}
-
-
-/*
- Print collation customization expression parse error, with context.
-
- SYNOPSIS
- my_coll_lexem_print_error
- lexem Lex analizer to take context from
- errstr sting to write error to
- errsize errstr size
- txt error message
- USAGE
-
- RETURN VALUES
- N/A
-*/
-
-static void my_coll_lexem_print_error(MY_COLL_LEXEM *lexem,
- char *errstr, size_t errsize,
- const char *txt)
-{
- char tail[30];
- size_t len= lexem->end - lexem->prev;
- strmake (tail, lexem->prev, (size_t) min(len, sizeof(tail)-1));
- errstr[errsize-1]= '\0';
- my_snprintf(errstr,errsize-1,"%s at '%s'", txt, tail);
-}
-
-
-/*
- Convert a hex digit into its numeric value
-
- SYNOPSIS
- ch2x
- ch hex digit to convert
- USAGE
-
- RETURN VALUES
- an integer value in the range 0..15
- -1 on error
-*/
-
-static int ch2x(int ch)
-{
- if (ch >= '0' && ch <= '9')
- return ch - '0';
-
- if (ch >= 'a' && ch <= 'f')
- return 10 + ch - 'a';
-
- if (ch >= 'A' && ch <= 'F')
- return 10 + ch - 'A';
-
- return -1;
-}
-
-
-/*
- Collation language lexical parser:
- Scans the next lexem.
-
- SYNOPSIS
- my_coll_lexem_next
- lexem Lex analizer, previously initialized by
- my_coll_lexem_init.
- USAGE
- Call this function in a loop
-
- RETURN VALUES
- Lexem number: eof, diff, shift, char or error.
-*/
-
-static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem)
-{
- const char *beg;
- my_coll_lexem_num rc;
-
- for (beg= lexem->beg ; beg < lexem->end ; beg++)
- {
- if (*beg == ' ' || *beg == '\t' || *beg == '\r' || *beg == '\n')
- continue;
-
- if (*beg == '&')
- {
- beg++;
- rc= MY_COLL_LEXEM_SHIFT;
- goto ex;
- }
-
- if (beg[0] == '=')
- {
- beg++;
- rc= MY_COLL_LEXEM_DIFF;
- goto ex;
- }
-
- if (beg[0] == '<')
- {
- for (beg++, lexem->diff= 1;
- (beg < lexem->end) &&
- (*beg == '<') && (lexem->diff<3);
- beg++, lexem->diff++);
- rc= MY_COLL_LEXEM_DIFF;
- goto ex;
- }
-
- if ((*beg >= 'a' && *beg <= 'z') || (*beg >= 'A' && *beg <= 'Z'))
- {
- lexem->code= *beg++;
- rc= MY_COLL_LEXEM_CHAR;
- goto ex;
- }
-
- if ((*beg == '\\') && (beg+2 < lexem->end) && (beg[1] == 'u'))
- {
- int ch;
-
- beg+= 2;
- lexem->code= 0;
- while ((beg < lexem->end) && ((ch= ch2x(beg[0])) >= 0))
- {
- lexem->code= (lexem->code << 4) + ch;
- beg++;
- }
- rc= MY_COLL_LEXEM_CHAR;
- goto ex;
- }
-
- rc= MY_COLL_LEXEM_ERROR;
- goto ex;
- }
- rc= MY_COLL_LEXEM_EOF;
-
-ex:
- lexem->prev= lexem->beg;
- lexem->beg= beg;
- return rc;
-}
-
-
-/*
- Collation rule item
-*/
-
-typedef struct my_coll_rule_item_st
-{
- uint base; /* Base character */
- uint curr[2]; /* Current character */
- int diff[3]; /* Primary, Secondary and Tertiary difference */
-} MY_COLL_RULE;
-
-
-/*
- Collation language syntax parser.
- Uses lexical parser.
-
- SYNOPSIS
- my_coll_rule_parse
- rule Collation rule list to load to.
- str A string containin collation language expression.
- str_end End of the string.
- USAGE
-
- RETURN VALUES
- A positive number means the number of rules loaded.
- -1 means ERROR, e.g. too many items, syntax error, etc.
-*/
-
-static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems,
- const char *str, const char *str_end,
- char *errstr, size_t errsize)
-{
- MY_COLL_LEXEM lexem;
- my_coll_lexem_num lexnum;
- my_coll_lexem_num prevlexnum= MY_COLL_LEXEM_ERROR;
- MY_COLL_RULE item;
- int state= 0;
- size_t nitems= 0;
-
- /* Init all variables */
- errstr[0]= '\0';
- bzero(&item, sizeof(item));
- my_coll_lexem_init(&lexem, str, str_end);
-
- while ((lexnum= my_coll_lexem_next(&lexem)))
- {
- if (lexnum == MY_COLL_LEXEM_ERROR)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Unknown character");
- return -1;
- }
-
- switch (state) {
- case 0:
- if (lexnum != MY_COLL_LEXEM_SHIFT)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& expected");
- return -1;
- }
- prevlexnum= lexnum;
- state= 2;
- continue;
-
- case 1:
- if (lexnum != MY_COLL_LEXEM_SHIFT && lexnum != MY_COLL_LEXEM_DIFF)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& or < expected");
- return -1;
- }
- prevlexnum= lexnum;
- state= 2;
- continue;
-
- case 2:
- if (lexnum != MY_COLL_LEXEM_CHAR)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"character expected");
- return -1;
- }
-
- if (prevlexnum == MY_COLL_LEXEM_SHIFT)
- {
- item.base= lexem.code;
- item.diff[0]= 0;
- item.diff[1]= 0;
- item.diff[2]= 0;
- }
- else if (prevlexnum == MY_COLL_LEXEM_DIFF)
- {
- MY_COLL_LEXEM savlex;
- savlex= lexem;
- item.curr[0]= lexem.code;
- if ((lexnum= my_coll_lexem_next(&lexem)) == MY_COLL_LEXEM_CHAR)
- {
- item.curr[1]= lexem.code;
- }
- else
- {
- item.curr[1]= 0;
- lexem=savlex; /* Restore previous parser state */
- }
- if (lexem.diff == 3)
- {
- item.diff[2]++;
- }
- else if (lexem.diff == 2)
- {
- item.diff[1]++;
- item.diff[2]= 0;
- }
- else if (lexem.diff == 1)
- {
- item.diff[0]++;
- item.diff[1]= 0;
- item.diff[2]= 0;
- }
- else if (lexem.diff == 0)
- {
- item.diff[0]= item.diff[1]= item.diff[2]= 0;
- }
- if (nitems >= mitems)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Too many rules");
- return -1;
- }
- rule[nitems++]= item;
- }
- else
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Should never happen");
- return -1;
- }
- state= 1;
- continue;
- }
- }
- return (int) nitems;
-}
-
-#define MY_MAX_COLL_RULE 128
-
-/*
- This function copies an UCS2 collation from
- the default Unicode Collation Algorithm (UCA)
- weights applying tailorings, i.e. a set of
- alternative weights for some characters.
-
- The default UCA weights are stored in uca_weight/uca_length.
- They consist of 256 pages, 256 character each.
-
- If a page is not overwritten by tailoring rules,
- it is copies as is from UCA as is.
-
- If a page contains some overwritten characters, it is
- allocated. Untouched characters are copied from the
- default weights.
-*/
-
-static my_bool create_tailoring(CHARSET_INFO *cs, void *(*alloc)(size_t))
-{
- MY_COLL_RULE rule[MY_MAX_COLL_RULE];
- char errstr[128];
- uchar *newlengths;
- uint16 **newweights;
- const uchar *deflengths= uca_length;
- uint16 **defweights= uca_weight;
- int rc, i;
- int ncontractions= 0;
-
- if (!cs->tailoring)
- return 1;
-
- /* Parse ICU Collation Customization expression */
- if ((rc= my_coll_rule_parse(rule, MY_MAX_COLL_RULE,
- cs->tailoring,
- cs->tailoring + strlen(cs->tailoring),
- errstr, sizeof(errstr))) < 0)
- {
- /*
- TODO: add error message reporting.
- printf("Error: %d '%s'\n", rc, errstr);
- */
- return 1;
- }
-
- if (!cs->caseinfo)
- cs->caseinfo= my_unicase_default;
-
- if (!(newweights= (uint16**) (*alloc)(256*sizeof(uint16*))))
- return 1;
- bzero(newweights, 256*sizeof(uint16*));
-
- if (!(newlengths= (uchar*) (*alloc)(256)))
- return 1;
-
- memcpy(newlengths, deflengths, 256);
-
- /*
- Calculate maximum lenghts for the pages
- which will be overwritten.
- */
- for (i=0; i < rc; i++)
- {
- if (!rule[i].curr[1]) /* If not a contraction */
- {
- uint pageb= (rule[i].base >> 8) & 0xFF;
- uint pagec= (rule[i].curr[0] >> 8) & 0xFF;
-
- if (newlengths[pagec] < deflengths[pageb])
- newlengths[pagec]= deflengths[pageb];
- }
- else
- ncontractions++;
- }
-
- for (i=0; i < rc; i++)
- {
- uint pageb= (rule[i].base >> 8) & 0xFF;
- uint pagec= (rule[i].curr[0] >> 8) & 0xFF;
- uint chb, chc;
-
- if (rule[i].curr[1]) /* Skip contraction */
- continue;
-
- if (!newweights[pagec])
- {
- /* Alloc new page and copy the default UCA weights */
- uint size= 256*newlengths[pagec]*sizeof(uint16);
-
- if (!(newweights[pagec]= (uint16*) (*alloc)(size)))
- return 1;
- bzero((void*) newweights[pagec], size);
-
- for (chc=0 ; chc < 256; chc++)
- {
- memcpy(newweights[pagec] + chc*newlengths[pagec],
- defweights[pagec] + chc*deflengths[pagec],
- deflengths[pagec]*sizeof(uint16));
- }
- }
-
- /*
- Aply the alternative rule:
- shift to the base character and primary difference.
- */
- chc= rule[i].curr[0] & 0xFF;
- chb= rule[i].base & 0xFF;
- memcpy(newweights[pagec] + chc*newlengths[pagec],
- defweights[pageb] + chb*deflengths[pageb],
- deflengths[pageb]*sizeof(uint16));
- /* Apply primary difference */
- newweights[pagec][chc*newlengths[pagec]]+= rule[i].diff[0];
- }
-
- /* Copy non-overwritten pages from the default UCA weights */
- for (i= 0; i < 256 ; i++)
- {
- if (!newweights[i])
- newweights[i]= defweights[i];
- }
-
- cs->sort_order= newlengths;
- cs->sort_order_big= newweights;
- cs->contractions= NULL;
-
- /* Now process contractions */
- if (ncontractions)
- {
- /*
- 8K for weights for basic latin letter pairs,
- plus 256 bytes for "is contraction part" flags.
- */
- uint size= 0x40*0x40*sizeof(uint16) + 256;
- char *contraction_flags;
- if (!(cs->contractions= (uint16*) (*alloc)(size)))
- return 1;
- bzero((void*)cs->contractions, size);
- contraction_flags= ((char*) cs->contractions) + 0x40*0x40;
- for (i=0; i < rc; i++)
- {
- if (rule[i].curr[1])
- {
- uint pageb= (rule[i].base >> 8) & 0xFF;
- uint chb= rule[i].base & 0xFF;
- uint16 *offsb= defweights[pageb] + chb*deflengths[pageb];
- uint offsc;
-
- if (offsb[1] ||
- rule[i].curr[0] < 0x40 || rule[i].curr[0] > 0x7f ||
- rule[i].curr[1] < 0x40 || rule[i].curr[1] > 0x7f)
- {
- /*
- TODO: add error reporting;
- We support only basic latin letters contractions at this point.
- Also, We don't support contractions with weight longer than one.
- Otherwise, we'd need much more memory.
- */
- return 1;
- }
- offsc= (rule[i].curr[0]-0x40)*0x40+(rule[i].curr[1]-0x40);
-
- /* Copy base weight applying primary difference */
- cs->contractions[offsc]= offsb[0] + rule[i].diff[0];
- /* Mark both letters as "is contraction part */
- contraction_flags[rule[i].curr[0]]= 1;
- contraction_flags[rule[i].curr[1]]= 1;
- }
- }
- }
- return 0;
-}
-
-
-/*
- Universal CHARSET_INFO compatible wrappers
- for the above internal functions.
- Should work for any character set.
-*/
-
-static my_bool my_coll_init_uca(CHARSET_INFO *cs, void *(*alloc)(size_t))
-{
- cs->pad_char= ' ';
- cs->ctype= my_charset_utf8_unicode_ci.ctype;
- return create_tailoring(cs, alloc);
-}
-
-static int my_strnncoll_any_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- return my_strnncoll_uca(cs, &my_any_uca_scanner_handler,
- s, slen, t, tlen, t_is_prefix);
-}
-
-static int my_strnncollsp_any_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler,
- s, slen, t, tlen,
- diff_if_only_endspace_difference);
-}
-
-static void my_hash_sort_any_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2);
-}
-
-static size_t my_strnxfrm_any_uca(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler,
- dst, dstlen, src, srclen);
-}
-
-
-#ifdef HAVE_CHARSET_ucs2
-/*
- UCS2 optimized CHARSET_INFO compatible wrappers.
-*/
-static int my_strnncoll_ucs2_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- return my_strnncoll_uca(cs, &my_ucs2_uca_scanner_handler,
- s, slen, t, tlen, t_is_prefix);
-}
-
-static int my_strnncollsp_ucs2_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- return my_strnncollsp_uca(cs, &my_ucs2_uca_scanner_handler,
- s, slen, t, tlen,
- diff_if_only_endspace_difference);
-}
-
-static void my_hash_sort_ucs2_uca(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_hash_sort_uca(cs, &my_ucs2_uca_scanner_handler, s, slen, n1, n2);
-}
-
-static size_t my_strnxfrm_ucs2_uca(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- return my_strnxfrm_uca(cs, &my_ucs2_uca_scanner_handler,
- dst, dstlen, src, srclen);
-}
-
-MY_COLLATION_HANDLER my_collation_ucs2_uca_handler =
-{
- my_coll_init_uca, /* init */
- my_strnncoll_ucs2_uca,
- my_strnncollsp_ucs2_uca,
- my_strnxfrm_ucs2_uca,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_uca,
- NULL,
- my_instr_mb,
- my_hash_sort_ucs2_uca,
- my_propagate_complex
-};
-
-CHARSET_INFO my_charset_ucs2_unicode_ci=
-{
- 128,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_unicode_ci", /* name */
- "", /* comment */
- "", /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_icelandic_uca_ci=
-{
- 129,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_icelandic_ci",/* name */
- "", /* comment */
- icelandic, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_latvian_uca_ci=
-{
- 130,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_latvian_ci", /* name */
- "", /* comment */
- latvian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_romanian_uca_ci=
-{
- 131,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_romanian_ci", /* name */
- "", /* comment */
- romanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_slovenian_uca_ci=
-{
- 132,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_slovenian_ci",/* name */
- "", /* comment */
- slovenian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_polish_uca_ci=
-{
- 133,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_polish_ci", /* name */
- "", /* comment */
- polish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_estonian_uca_ci=
-{
- 134,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_estonian_ci", /* name */
- "", /* comment */
- estonian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_spanish_uca_ci=
-{
- 135,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_spanish_ci", /* name */
- "", /* comment */
- spanish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_swedish_uca_ci=
-{
- 136,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_swedish_ci", /* name */
- "", /* comment */
- swedish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_turkish_uca_ci=
-{
- 137,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_turkish_ci", /* name */
- "", /* comment */
- turkish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_czech_uca_ci=
-{
- 138,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_czech_ci", /* name */
- "", /* comment */
- czech, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_danish_uca_ci=
-{
- 139,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_danish_ci", /* name */
- "", /* comment */
- danish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_lithuanian_uca_ci=
-{
- 140,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_lithuanian_ci",/* name */
- "", /* comment */
- lithuanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_slovak_uca_ci=
-{
- 141,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_slovak_ci", /* name */
- "", /* comment */
- slovak, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-CHARSET_INFO my_charset_ucs2_spanish2_uca_ci=
-{
- 142,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_spanish2_ci", /* name */
- "", /* comment */
- spanish2, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_roman_uca_ci=
-{
- 143,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_roman_ci", /* name */
- "", /* comment */
- roman, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_persian_uca_ci=
-{
- 144,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_persian_ci", /* name */
- "", /* comment */
- persian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_esperanto_uca_ci=
-{
- 145,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_esperanto_ci",/* name */
- "", /* comment */
- esperanto, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_hungarian_uca_ci=
-{
- 146,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_hungarian_ci",/* name */
- "", /* comment */
- hungarian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-CHARSET_INFO my_charset_ucs2_sinhala_uca_ci=
-{
- 147,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
- "ucs2", /* csname */
- "ucs2_sinhala_ci", /* name */
- "", /* comment */
- sinhala, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_uca_handler
-};
-
-
-#endif
-
-
-#ifdef HAVE_CHARSET_utf8
-MY_COLLATION_HANDLER my_collation_any_uca_handler =
-{
- my_coll_init_uca, /* init */
- my_strnncoll_any_uca,
- my_strnncollsp_any_uca,
- my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_uca,
- NULL,
- my_instr_mb,
- my_hash_sort_any_uca,
- my_propagate_complex
-};
-
-/*
- We consider bytes with code more than 127 as a letter.
- This garantees that word boundaries work fine with regular
- expressions. Note, there is no need to mark byte 255 as a
- letter, it is illegal byte in UTF8.
-*/
-static uchar ctype_utf8[] = {
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
-};
-
-extern MY_CHARSET_HANDLER my_charset_utf8_handler;
-
-CHARSET_INFO my_charset_utf8_unicode_ci=
-{
- 192,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_unicode_ci", /* name */
- "", /* comment */
- "", /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf8_icelandic_uca_ci=
-{
- 193,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_icelandic_ci",/* name */
- "", /* comment */
- icelandic, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_latvian_uca_ci=
-{
- 194,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_latvian_ci", /* name */
- "", /* comment */
- latvian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_romanian_uca_ci=
-{
- 195,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_romanian_ci", /* name */
- "", /* comment */
- romanian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_slovenian_uca_ci=
-{
- 196,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_slovenian_ci",/* name */
- "", /* comment */
- slovenian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_polish_uca_ci=
-{
- 197,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_polish_ci", /* name */
- "", /* comment */
- polish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_estonian_uca_ci=
-{
- 198,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_estonian_ci", /* name */
- "", /* comment */
- estonian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_spanish_uca_ci=
-{
- 199,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_spanish_ci", /* name */
- "", /* comment */
- spanish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_swedish_uca_ci=
-{
- 200,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_swedish_ci", /* name */
- "", /* comment */
- swedish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_turkish_uca_ci=
-{
- 201,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_turkish_ci", /* name */
- "", /* comment */
- turkish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 2, /* caseup_multiply */
- 2, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_czech_uca_ci=
-{
- 202,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_czech_ci", /* name */
- "", /* comment */
- czech, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf8_danish_uca_ci=
-{
- 203,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_danish_ci", /* name */
- "", /* comment */
- danish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_lithuanian_uca_ci=
-{
- 204,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_lithuanian_ci",/* name */
- "", /* comment */
- lithuanian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_slovak_uca_ci=
-{
- 205,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_slovak_ci", /* name */
- "", /* comment */
- slovak, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_spanish2_uca_ci=
-{
- 206,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_spanish2_ci", /* name */
- "", /* comment */
- spanish2, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_roman_uca_ci=
-{
- 207,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_roman_ci", /* name */
- "", /* comment */
- roman, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_persian_uca_ci=
-{
- 208,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_persian_ci", /* name */
- "", /* comment */
- persian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_esperanto_uca_ci=
-{
- 209,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_esperanto_ci",/* name */
- "", /* comment */
- esperanto, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_hungarian_uca_ci=
-{
- 210,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf8", /* cs name */
- "utf8_hungarian_ci",/* name */
- "", /* comment */
- hungarian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8_sinhala_uca_ci=
-{
- 211,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
- "utf8", /* cs name */
- "utf8_sinhala_ci", /* name */
- "", /* comment */
- sinhala, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_any_uca_handler
-};
-
-#endif /* HAVE_CHARSET_utf8 */
-
-
-#ifdef HAVE_CHARSET_utf8mb4
-
-extern MY_CHARSET_HANDLER my_charset_utf8mb4_handler;
-
-#define MY_CS_UTF8MB4_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT)
-
-CHARSET_INFO my_charset_utf8mb4_unicode_ci=
-{
- 224,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_unicode_ci",/* name */
- "", /* comment */
- "", /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf8mb4_icelandic_uca_ci=
-{
- 225,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_icelandic_ci",/* name */
- "", /* comment */
- icelandic, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_latvian_uca_ci=
-{
- 226,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_latvian_ci", /* name */
- "", /* comment */
- latvian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_romanian_uca_ci=
-{
- 227,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_romanian_ci", /* name */
- "", /* comment */
- romanian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_slovenian_uca_ci=
-{
- 228,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_slovenian_ci",/* name */
- "", /* comment */
- slovenian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_polish_uca_ci=
-{
- 229,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_polish_ci", /* name */
- "", /* comment */
- polish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_estonian_uca_ci=
-{
- 230,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_estonian_ci", /* name */
- "", /* comment */
- estonian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_spanish_uca_ci=
-{
- 231,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_spanish_ci", /* name */
- "", /* comment */
- spanish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_swedish_uca_ci=
-{
- 232,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_swedish_ci", /* name */
- "", /* comment */
- swedish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_turkish_uca_ci=
-{
- 233,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_turkish_ci", /* name */
- "", /* comment */
- turkish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 2, /* caseup_multiply */
- 2, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_czech_uca_ci=
-{
- 234,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_czech_ci", /* name */
- "", /* comment */
- czech, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf8mb4_danish_uca_ci=
-{
- 235,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_danish_ci", /* name */
- "", /* comment */
- danish, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_lithuanian_uca_ci=
-{
- 236,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_lithuanian_ci",/* name */
- "", /* comment */
- lithuanian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_slovak_uca_ci=
-{
- 237,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_slovak_ci", /* name */
- "", /* comment */
- slovak, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_spanish2_uca_ci=
-{
- 238,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_spanish2_ci", /* name */
- "", /* comment */
- spanish2, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_roman_uca_ci=
-{
- 239,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_roman_ci", /* name */
- "", /* comment */
- roman, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_persian_uca_ci=
-{
- 240,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_persian_ci", /* name */
- "", /* comment */
- persian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_esperanto_uca_ci=
-{
- 241,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_esperanto_ci",/* name */
- "", /* comment */
- esperanto, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_hungarian_uca_ci=
-{
- 242,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_hungarian_ci",/* name */
- "", /* comment */
- hungarian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-CHARSET_INFO my_charset_utf8mb4_sinhala_uca_ci=
-{
- 243,0,0, /* number */
- MY_CS_UTF8MB4_UCA_FLAGS,/* state */
- MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_sinhala_ci",/* name */
- "", /* comment */
- sinhala, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_any_uca_handler
-};
-
-#endif /* HAVE_CHARSET_utf8mb4 */
-
-
-#ifdef HAVE_CHARSET_utf32
-
-MY_COLLATION_HANDLER my_collation_utf32_uca_handler =
-{
- my_coll_init_uca, /* init */
- my_strnncoll_any_uca,
- my_strnncollsp_any_uca,
- my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_uca,
- NULL,
- my_instr_mb,
- my_hash_sort_any_uca,
- my_propagate_complex
-};
-
-extern MY_CHARSET_HANDLER my_charset_utf32_handler;
-
-#define MY_CS_UTF32_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII)
-
-CHARSET_INFO my_charset_utf32_unicode_ci=
-{
- 160,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_unicode_ci", /* name */
- "", /* comment */
- "", /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf32_icelandic_uca_ci=
-{
- 161,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_icelandic_ci",/* name */
- "", /* comment */
- icelandic, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_latvian_uca_ci=
-{
- 162,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_latvian_ci", /* name */
- "", /* comment */
- latvian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_romanian_uca_ci=
-{
- 163,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_romanian_ci", /* name */
- "", /* comment */
- romanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_slovenian_uca_ci=
-{
- 164,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_slovenian_ci",/* name */
- "", /* comment */
- slovenian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_polish_uca_ci=
-{
- 165,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_polish_ci", /* name */
- "", /* comment */
- polish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_estonian_uca_ci=
-{
- 166,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_estonian_ci", /* name */
- "", /* comment */
- estonian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_spanish_uca_ci=
-{
- 167,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_spanish_ci", /* name */
- "", /* comment */
- spanish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_swedish_uca_ci=
-{
- 168,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_swedish_ci", /* name */
- "", /* comment */
- swedish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_turkish_uca_ci=
-{
- 169,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_turkish_ci", /* name */
- "", /* comment */
- turkish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_czech_uca_ci=
-{
- 170,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_czech_ci", /* name */
- "", /* comment */
- czech, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf32_danish_uca_ci=
-{
- 171,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_danish_ci", /* name */
- "", /* comment */
- danish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_lithuanian_uca_ci=
-{
- 172,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_lithuanian_ci",/* name */
- "", /* comment */
- lithuanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_slovak_uca_ci=
-{
- 173,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_slovak_ci", /* name */
- "", /* comment */
- slovak, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_spanish2_uca_ci=
-{
- 174,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_spanish2_ci", /* name */
- "", /* comment */
- spanish2, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_roman_uca_ci=
-{
- 175,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_roman_ci", /* name */
- "", /* comment */
- roman, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_persian_uca_ci=
-{
- 176,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_persian_ci", /* name */
- "", /* comment */
- persian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_esperanto_uca_ci=
-{
- 177,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_esperanto_ci",/* name */
- "", /* comment */
- esperanto, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_hungarian_uca_ci=
-{
- 178,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_hungarian_ci",/* name */
- "", /* comment */
- hungarian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-CHARSET_INFO my_charset_utf32_sinhala_uca_ci=
-{
- 179,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS,/* state */
- "utf32", /* csname */
- "utf32_sinhala_ci", /* name */
- "", /* comment */
- sinhala, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_uca_handler
-};
-
-#endif /* HAVE_CHARSET_utf32 */
-
-
-#ifdef HAVE_CHARSET_utf16
-
-
-MY_COLLATION_HANDLER my_collation_utf16_uca_handler =
-{
- my_coll_init_uca, /* init */
- my_strnncoll_any_uca,
- my_strnncollsp_any_uca,
- my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_uca,
- NULL,
- my_instr_mb,
- my_hash_sort_any_uca,
- my_propagate_complex
-};
-
-extern MY_CHARSET_HANDLER my_charset_utf16_handler;
-
-#define MY_CS_UTF16_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII)
-
-CHARSET_INFO my_charset_utf16_unicode_ci=
-{
- 101,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* csname */
- "utf16_unicode_ci", /* name */
- "", /* comment */
- "", /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf16_icelandic_uca_ci=
-{
- 102,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* csname */
- "utf16_icelandic_ci",/* name */
- "", /* comment */
- icelandic, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_latvian_uca_ci=
-{
- 103,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_latvian_ci", /* name */
- "", /* comment */
- latvian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_romanian_uca_ci=
-{
- 104,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_romanian_ci", /* name */
- "", /* comment */
- romanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_slovenian_uca_ci=
-{
- 105,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_slovenian_ci",/* name */
- "", /* comment */
- slovenian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_polish_uca_ci=
-{
- 106,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_polish_ci", /* name */
- "", /* comment */
- polish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_estonian_uca_ci=
-{
- 107,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_estonian_ci", /* name */
- "", /* comment */
- estonian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_spanish_uca_ci=
-{
- 108,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_spanish_ci", /* name */
- "", /* comment */
- spanish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_swedish_uca_ci=
-{
- 109,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_swedish_ci", /* name */
- "", /* comment */
- swedish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_turkish_uca_ci=
-{
- 110,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_turkish_ci", /* name */
- "", /* comment */
- turkish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_czech_uca_ci=
-{
- 111,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_czech_ci", /* name */
- "", /* comment */
- czech, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-
-CHARSET_INFO my_charset_utf16_danish_uca_ci=
-{
- 112,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_danish_ci", /* name */
- "", /* comment */
- danish, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_lithuanian_uca_ci=
-{
- 113,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_lithuanian_ci",/* name */
- "", /* comment */
- lithuanian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_slovak_uca_ci=
-{
- 114,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_slovak_ci", /* name */
- "", /* comment */
- slovak, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_spanish2_uca_ci=
-{
- 115,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_spanish2_ci",/* name */
- "", /* comment */
- spanish2, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_roman_uca_ci=
-{
- 116,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_roman_ci", /* name */
- "", /* comment */
- roman, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_persian_uca_ci=
-{
- 117,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_persian_ci", /* name */
- "", /* comment */
- persian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_esperanto_uca_ci=
-{
- 118,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_esperanto_ci",/* name */
- "", /* comment */
- esperanto, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_hungarian_uca_ci=
-{
- 119,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_hungarian_ci",/* name */
- "", /* comment */
- hungarian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default,/* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-CHARSET_INFO my_charset_utf16_sinhala_uca_ci=
-{
- 120,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS,/* state */
- "utf16", /* cs name */
- "utf16_sinhala_ci",/* name */
- "", /* comment */
- sinhala, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default,/* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_uca_handler
-};
-
-#endif /* HAVE_CHARSET_utf16 */
-
-
-
-#endif /* HAVE_UCA_COLLATIONS */
diff --git a/dep/mysqllite/strings/ctype-ucs2.c b/dep/mysqllite/strings/ctype-ucs2.c
deleted file mode 100644
index 67be793c3dc..00000000000
--- a/dep/mysqllite/strings/ctype-ucs2.c
+++ /dev/null
@@ -1,3190 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* UCS2 support. Written by Alexander Barkov <bar@mysql.com> */
-
-#include <my_global.h>
-#include <my_sys.h>
-#include "m_string.h"
-#include "m_ctype.h"
-#include <errno.h>
-#include <stdarg.h>
-
-
-#if defined(HAVE_CHARSET_utf16) || defined(HAVE_CHARSET_ucs2)
-#define HAVE_CHARSET_mb2
-#endif
-
-
-#if defined(HAVE_CHARSET_mb2) || defined(HAVE_CHARSET_utf32)
-#define HAVE_CHARSET_mb2_or_mb4
-#endif
-
-
-#ifndef EILSEQ
-#define EILSEQ ENOENT
-#endif
-
-#undef ULONGLONG_MAX
-#define ULONGLONG_MAX (~(ulonglong) 0)
-#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
-#define INIT_CNT 9
-#define LFACTOR ULL(1000000000)
-#define LFACTOR1 ULL(10000000000)
-#define LFACTOR2 ULL(100000000000)
-
-static unsigned long lfactor[9]=
-{ 1L, 10L, 100L, 1000L, 10000L, 100000L, 1000000L, 10000000L, 100000000L };
-
-
-
-#ifdef HAVE_CHARSET_mb2_or_mb4
-static inline int
-my_bincmp(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se - s), tlen= (int) (te - t);
- int len= min(slen, tlen);
- int cmp= memcmp(s, t, len);
- return cmp ? cmp : slen - tlen;
-}
-
-
-static size_t
-my_caseup_str_mb2_or_mb4(CHARSET_INFO * cs __attribute__((unused)),
- char * s __attribute__((unused)))
-{
- DBUG_ASSERT(0);
- return 0;
-}
-
-
-static size_t
-my_casedn_str_mb2_or_mb4(CHARSET_INFO *cs __attribute__((unused)),
- char * s __attribute__((unused)))
-{
- DBUG_ASSERT(0);
- return 0;
-}
-
-
-static int
-my_strcasecmp_mb2_or_mb4(CHARSET_INFO *cs __attribute__((unused)),
- const char *s __attribute__((unused)),
- const char *t __attribute__((unused)))
-{
- DBUG_ASSERT(0);
- return 0;
-}
-
-
-static long
-my_strntol_mb2_or_mb4(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative= 0;
- int overflow;
- int cnv;
- my_wc_t wc;
- register unsigned int cutlim;
- register uint32 cutoff;
- register uint32 res;
- register const uchar *s= (const uchar*) nptr;
- register const uchar *e= (const uchar*) nptr+l;
- const uchar *save;
-
- *err= 0;
- do
- {
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e))>0)
- {
- switch (wc)
- {
- case ' ' : break;
- case '\t': break;
- case '-' : negative= !negative; break;
- case '+' : break;
- default : goto bs;
- }
- }
- else /* No more characters or bad multibyte sequence */
- {
- if (endptr != NULL )
- *endptr= (char*) s;
- err[0]= (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM;
- return 0;
- }
- s+= cnv;
- } while (1);
-
-bs:
-
- overflow= 0;
- res= 0;
- save= s;
- cutoff= ((uint32)~0L) / (uint32) base;
- cutlim= (uint) (((uint32)~0L) % (uint32) base);
-
- do {
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
- {
- s+= cnv;
- if (wc >= '0' && wc <= '9')
- wc-= '0';
- else if (wc >= 'A' && wc <= 'Z')
- wc= wc - 'A' + 10;
- else if (wc >= 'a' && wc <= 'z')
- wc= wc - 'a' + 10;
- else
- break;
- if ((int)wc >= base)
- break;
- if (res > cutoff || (res == cutoff && wc > cutlim))
- overflow= 1;
- else
- {
- res*= (uint32) base;
- res+= wc;
- }
- }
- else if (cnv == MY_CS_ILSEQ)
- {
- if (endptr !=NULL )
- *endptr = (char*) s;
- err[0]= EILSEQ;
- return 0;
- }
- else
- {
- /* No more characters */
- break;
- }
- } while(1);
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (s == save)
- {
- err[0]= EDOM;
- return 0L;
- }
-
- if (negative)
- {
- if (res > (uint32) INT_MIN32)
- overflow= 1;
- }
- else if (res > INT_MAX32)
- overflow= 1;
-
- if (overflow)
- {
- err[0]= ERANGE;
- return negative ? INT_MIN32 : INT_MAX32;
- }
-
- return (negative ? -((long) res) : (long) res);
-}
-
-
-static ulong
-my_strntoul_mb2_or_mb4(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative= 0;
- int overflow;
- int cnv;
- my_wc_t wc;
- register unsigned int cutlim;
- register uint32 cutoff;
- register uint32 res;
- register const uchar *s= (const uchar*) nptr;
- register const uchar *e= (const uchar*) nptr + l;
- const uchar *save;
-
- *err= 0;
- do
- {
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
- {
- switch (wc)
- {
- case ' ' : break;
- case '\t': break;
- case '-' : negative= !negative; break;
- case '+' : break;
- default : goto bs;
- }
- }
- else /* No more characters or bad multibyte sequence */
- {
- if (endptr !=NULL )
- *endptr= (char*)s;
- err[0]= (cnv == MY_CS_ILSEQ) ? EILSEQ : EDOM;
- return 0;
- }
- s+= cnv;
- } while (1);
-
-bs:
-
- overflow= 0;
- res= 0;
- save= s;
- cutoff= ((uint32)~0L) / (uint32) base;
- cutlim= (uint) (((uint32)~0L) % (uint32) base);
-
- do
- {
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
- {
- s+= cnv;
- if (wc >= '0' && wc <= '9')
- wc-= '0';
- else if (wc >= 'A' && wc <= 'Z')
- wc= wc - 'A' + 10;
- else if (wc >= 'a' && wc <= 'z')
- wc= wc - 'a' + 10;
- else
- break;
- if ((int) wc >= base)
- break;
- if (res > cutoff || (res == cutoff && wc > cutlim))
- overflow = 1;
- else
- {
- res*= (uint32) base;
- res+= wc;
- }
- }
- else if (cnv == MY_CS_ILSEQ)
- {
- if (endptr != NULL )
- *endptr= (char*)s;
- err[0]= EILSEQ;
- return 0;
- }
- else
- {
- /* No more characters */
- break;
- }
- } while(1);
-
- if (endptr != NULL)
- *endptr= (char *) s;
-
- if (s == save)
- {
- err[0]= EDOM;
- return 0L;
- }
-
- if (overflow)
- {
- err[0]= (ERANGE);
- return (~(uint32) 0);
- }
-
- return (negative ? -((long) res) : (long) res);
-}
-
-
-static longlong
-my_strntoll_mb2_or_mb4(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative=0;
- int overflow;
- int cnv;
- my_wc_t wc;
- register ulonglong cutoff;
- register unsigned int cutlim;
- register ulonglong res;
- register const uchar *s= (const uchar*) nptr;
- register const uchar *e= (const uchar*) nptr+l;
- const uchar *save;
-
- *err= 0;
- do
- {
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
- {
- switch (wc)
- {
- case ' ' : break;
- case '\t': break;
- case '-' : negative= !negative; break;
- case '+' : break;
- default : goto bs;
- }
- }
- else /* No more characters or bad multibyte sequence */
- {
- if (endptr !=NULL )
- *endptr = (char*)s;
- err[0] = (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM;
- return 0;
- }
- s+=cnv;
- } while (1);
-
-bs:
-
- overflow = 0;
- res = 0;
- save = s;
- cutoff = (~(ulonglong) 0) / (unsigned long int) base;
- cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base);
-
- do {
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
- {
- s+=cnv;
- if ( wc>='0' && wc<='9')
- wc -= '0';
- else if ( wc>='A' && wc<='Z')
- wc = wc - 'A' + 10;
- else if ( wc>='a' && wc<='z')
- wc = wc - 'a' + 10;
- else
- break;
- if ((int)wc >= base)
- break;
- if (res > cutoff || (res == cutoff && wc > cutlim))
- overflow = 1;
- else
- {
- res *= (ulonglong) base;
- res += wc;
- }
- }
- else if (cnv==MY_CS_ILSEQ)
- {
- if (endptr !=NULL )
- *endptr = (char*)s;
- err[0]=EILSEQ;
- return 0;
- }
- else
- {
- /* No more characters */
- break;
- }
- } while(1);
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (s == save)
- {
- err[0]=EDOM;
- return 0L;
- }
-
- if (negative)
- {
- if (res > (ulonglong) LONGLONG_MIN)
- overflow = 1;
- }
- else if (res > (ulonglong) LONGLONG_MAX)
- overflow = 1;
-
- if (overflow)
- {
- err[0]=ERANGE;
- return negative ? LONGLONG_MIN : LONGLONG_MAX;
- }
-
- return (negative ? -((longlong)res) : (longlong)res);
-}
-
-
-static ulonglong
-my_strntoull_mb2_or_mb4(CHARSET_INFO *cs,
- const char *nptr, size_t l, int base,
- char **endptr, int *err)
-{
- int negative= 0;
- int overflow;
- int cnv;
- my_wc_t wc;
- register ulonglong cutoff;
- register unsigned int cutlim;
- register ulonglong res;
- register const uchar *s= (const uchar*) nptr;
- register const uchar *e= (const uchar*) nptr + l;
- const uchar *save;
-
- *err= 0;
- do
- {
- if ((cnv= cs->cset->mb_wc(cs,&wc,s,e)) > 0)
- {
- switch (wc)
- {
- case ' ' : break;
- case '\t': break;
- case '-' : negative= !negative; break;
- case '+' : break;
- default : goto bs;
- }
- }
- else /* No more characters or bad multibyte sequence */
- {
- if (endptr !=NULL )
- *endptr = (char*)s;
- err[0]= (cnv==MY_CS_ILSEQ) ? EILSEQ : EDOM;
- return 0;
- }
- s+=cnv;
- } while (1);
-
-bs:
-
- overflow = 0;
- res = 0;
- save = s;
- cutoff = (~(ulonglong) 0) / (unsigned long int) base;
- cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base);
-
- do
- {
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
- {
- s+=cnv;
- if ( wc>='0' && wc<='9')
- wc -= '0';
- else if ( wc>='A' && wc<='Z')
- wc = wc - 'A' + 10;
- else if ( wc>='a' && wc<='z')
- wc = wc - 'a' + 10;
- else
- break;
- if ((int)wc >= base)
- break;
- if (res > cutoff || (res == cutoff && wc > cutlim))
- overflow = 1;
- else
- {
- res *= (ulonglong) base;
- res += wc;
- }
- }
- else if (cnv==MY_CS_ILSEQ)
- {
- if (endptr !=NULL )
- *endptr = (char*)s;
- err[0]= EILSEQ;
- return 0;
- }
- else
- {
- /* No more characters */
- break;
- }
- } while(1);
-
- if (endptr != NULL)
- *endptr = (char *) s;
-
- if (s == save)
- {
- err[0]= EDOM;
- return 0L;
- }
-
- if (overflow)
- {
- err[0]= ERANGE;
- return (~(ulonglong) 0);
- }
-
- return (negative ? -((longlong) res) : (longlong) res);
-}
-
-
-static double
-my_strntod_mb2_or_mb4(CHARSET_INFO *cs,
- char *nptr, size_t length,
- char **endptr, int *err)
-{
- char buf[256];
- double res;
- register char *b= buf;
- register const uchar *s= (const uchar*) nptr;
- const uchar *end;
- my_wc_t wc;
- int cnv;
-
- *err= 0;
- /* Cut too long strings */
- if (length >= sizeof(buf))
- length= sizeof(buf) - 1;
- end= s + length;
-
- while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0)
- {
- s+= cnv;
- if (wc > (int) (uchar) 'e' || !wc)
- break; /* Can't be part of double */
- *b++= (char) wc;
- }
-
- *endptr= b;
- res= my_strtod(buf, endptr, err);
- *endptr= nptr + cs->mbminlen * (size_t) (*endptr - buf);
- return res;
-}
-
-
-static ulonglong
-my_strntoull10rnd_mb2_or_mb4(CHARSET_INFO *cs,
- const char *nptr, size_t length,
- int unsign_fl,
- char **endptr, int *err)
-{
- char buf[256], *b= buf;
- ulonglong res;
- const uchar *end, *s= (const uchar*) nptr;
- my_wc_t wc;
- int cnv;
-
- /* Cut too long strings */
- if (length >= sizeof(buf))
- length= sizeof(buf)-1;
- end= s + length;
-
- while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0)
- {
- s+= cnv;
- if (wc > (int) (uchar) 'e' || !wc)
- break; /* Can't be a number part */
- *b++= (char) wc;
- }
-
- res= my_strntoull10rnd_8bit(cs, buf, b - buf, unsign_fl, endptr, err);
- *endptr= (char*) nptr + cs->mbminlen * (size_t) (*endptr - buf);
- return res;
-}
-
-
-/*
- This is a fast version optimized for the case of radix 10 / -10
-*/
-
-static size_t
-my_l10tostr_mb2_or_mb4(CHARSET_INFO *cs,
- char *dst, size_t len, int radix, long int val)
-{
- char buffer[66];
- register char *p, *db, *de;
- long int new_val;
- int sl= 0;
- unsigned long int uval = (unsigned long int) val;
-
- p= &buffer[sizeof(buffer) - 1];
- *p= '\0';
-
- if (radix < 0)
- {
- if (val < 0)
- {
- sl= 1;
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (unsigned long int)0 - uval;
- }
- }
-
- new_val = (long) (uval / 10);
- *--p = '0'+ (char) (uval - (unsigned long) new_val * 10);
- val= new_val;
-
- while (val != 0)
- {
- new_val= val / 10;
- *--p= '0' + (char) (val - new_val * 10);
- val= new_val;
- }
-
- if (sl)
- {
- *--p= '-';
- }
-
- for ( db= dst, de= dst + len ; (dst < de) && *p ; p++)
- {
- int cnvres= cs->cset->wc_mb(cs,(my_wc_t)p[0],(uchar*) dst, (uchar*) de);
- if (cnvres > 0)
- dst+= cnvres;
- else
- break;
- }
- return (int) (dst - db);
-}
-
-
-static size_t
-my_ll10tostr_mb2_or_mb4(CHARSET_INFO *cs,
- char *dst, size_t len, int radix, longlong val)
-{
- char buffer[65];
- register char *p, *db, *de;
- long long_val;
- int sl= 0;
- ulonglong uval= (ulonglong) val;
-
- if (radix < 0)
- {
- if (val < 0)
- {
- sl= 1;
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (ulonglong)0 - uval;
- }
- }
-
- p= &buffer[sizeof(buffer)-1];
- *p='\0';
-
- if (uval == 0)
- {
- *--p= '0';
- goto cnv;
- }
-
- while (uval > (ulonglong) LONG_MAX)
- {
- ulonglong quo= uval/(uint) 10;
- uint rem= (uint) (uval- quo* (uint) 10);
- *--p= '0' + rem;
- uval= quo;
- }
-
- long_val= (long) uval;
- while (long_val != 0)
- {
- long quo= long_val/10;
- *--p= (char) ('0' + (long_val - quo*10));
- long_val= quo;
- }
-
-cnv:
- if (sl)
- {
- *--p= '-';
- }
-
- for ( db= dst, de= dst + len ; (dst < de) && *p ; p++)
- {
- int cnvres= cs->cset->wc_mb(cs, (my_wc_t) p[0], (uchar*) dst, (uchar*) de);
- if (cnvres > 0)
- dst+= cnvres;
- else
- break;
- }
- return (int) (dst -db);
-}
-
-#endif /* HAVE_CHARSET_mb2_or_mb4 */
-
-
-#ifdef HAVE_CHARSET_mb2
-static longlong
-my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
- const char *nptr, char **endptr, int *error)
-{
- const char *s, *end, *start, *n_end, *true_end;
- uchar c;
- unsigned long i, j, k;
- ulonglong li;
- int negative;
- ulong cutoff, cutoff2, cutoff3;
-
- s= nptr;
- /* If fixed length string */
- if (endptr)
- {
- /* Make sure string length is even */
- end= s + ((*endptr - s) / 2) * 2;
- while (s < end && !s[0] && (s[1] == ' ' || s[1] == '\t'))
- s+= 2;
- if (s == end)
- goto no_conv;
- }
- else
- {
- /* We don't support null terminated strings in UCS2 */
- goto no_conv;
- }
-
- /* Check for a sign. */
- negative= 0;
- if (!s[0] && s[1] == '-')
- {
- *error= -1; /* Mark as negative number */
- negative= 1;
- s+= 2;
- if (s == end)
- goto no_conv;
- cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2;
- cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100;
- cutoff3= MAX_NEGATIVE_NUMBER % 100;
- }
- else
- {
- *error= 0;
- if (!s[0] && s[1] == '+')
- {
- s+= 2;
- if (s == end)
- goto no_conv;
- }
- cutoff= ULONGLONG_MAX / LFACTOR2;
- cutoff2= ULONGLONG_MAX % LFACTOR2 / 100;
- cutoff3= ULONGLONG_MAX % 100;
- }
-
- /* Handle case where we have a lot of pre-zero */
- if (!s[0] && s[1] == '0')
- {
- i= 0;
- do
- {
- s+= 2;
- if (s == end)
- goto end_i; /* Return 0 */
- }
- while (!s[0] && s[1] == '0');
- n_end= s + 2 * INIT_CNT;
- }
- else
- {
- /* Read first digit to check that it's a valid number */
- if (s[0] || (c= (s[1]-'0')) > 9)
- goto no_conv;
- i= c;
- s+= 2;
- n_end= s + 2 * (INIT_CNT-1);
- }
-
- /* Handle first 9 digits and store them in i */
- if (n_end > end)
- n_end= end;
- for (; s != n_end ; s+= 2)
- {
- if (s[0] || (c= (s[1]-'0')) > 9)
- goto end_i;
- i= i*10+c;
- }
- if (s == end)
- goto end_i;
-
- /* Handle next 9 digits and store them in j */
- j= 0;
- start= s; /* Used to know how much to shift i */
- n_end= true_end= s + 2 * INIT_CNT;
- if (n_end > end)
- n_end= end;
- do
- {
- if (s[0] || (c= (s[1]-'0')) > 9)
- goto end_i_and_j;
- j= j*10+c;
- s+= 2;
- } while (s != n_end);
- if (s == end)
- {
- if (s != true_end)
- goto end_i_and_j;
- goto end3;
- }
- if (s[0] || (c= (s[1]-'0')) > 9)
- goto end3;
-
- /* Handle the next 1 or 2 digits and store them in k */
- k=c;
- s+= 2;
- if (s == end || s[0] || (c= (s[1]-'0')) > 9)
- goto end4;
- k= k*10+c;
- s+= 2;
- *endptr= (char*) s;
-
- /* number string should have ended here */
- if (s != end && !s[0] && (c= (s[1]-'0')) <= 9)
- goto overflow;
-
- /* Check that we didn't get an overflow with the last digit */
- if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) &&
- k > cutoff3)))
- goto overflow;
- li=i*LFACTOR2+ (ulonglong) j*100 + k;
- return (longlong) li;
-
-overflow: /* *endptr is set here */
- *error= MY_ERRNO_ERANGE;
- return negative ? LONGLONG_MIN : (longlong) ULONGLONG_MAX;
-
-end_i:
- *endptr= (char*) s;
- return (negative ? ((longlong) -(long) i) : (longlong) i);
-
-end_i_and_j:
- li= (ulonglong) i * lfactor[(size_t) (s-start) / 2] + j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end3:
- li=(ulonglong) i*LFACTOR+ (ulonglong) j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end4:
- li=(ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k;
- *endptr= (char*) s;
- if (negative)
- {
- if (li > MAX_NEGATIVE_NUMBER)
- goto overflow;
- return -((longlong) li);
- }
- return (longlong) li;
-
-no_conv:
- /* There was no number to convert. */
- *error= MY_ERRNO_EDOM;
- *endptr= (char *) nptr;
- return 0;
-}
-
-
-static size_t
-my_scan_mb2(CHARSET_INFO *cs __attribute__((unused)),
- const char *str, const char *end, int sequence_type)
-{
- const char *str0= str;
- end--; /* for easier loop condition, because of two bytes per character */
-
- switch (sequence_type)
- {
- case MY_SEQ_SPACES:
- for ( ; str < end; str+= 2)
- {
- if (str[0] != '\0' || str[1] != ' ')
- break;
- }
- return (size_t) (str - str0);
- default:
- return 0;
- }
-}
-
-
-static void
-my_fill_mb2(CHARSET_INFO *cs __attribute__((unused)),
- char *s, size_t l, int fill)
-{
- DBUG_ASSERT(fill <= 0xFFFF);
- for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2);
-}
-
-
-static int
-my_vsnprintf_mb2(char *dst, size_t n, const char* fmt, va_list ap)
-{
- char *start=dst, *end= dst + n - 1;
- for (; *fmt ; fmt++)
- {
- if (fmt[0] != '%')
- {
- if (dst == end) /* End of buffer */
- break;
-
- *dst++='\0';
- *dst++= *fmt; /* Copy ordinary char */
- continue;
- }
-
- fmt++;
-
- /* Skip if max size is used (to be compatible with printf) */
- while ( (*fmt >= '0' && *fmt <= '9') || *fmt == '.' || *fmt == '-')
- fmt++;
-
- if (*fmt == 'l')
- fmt++;
-
- if (*fmt == 's') /* String parameter */
- {
- char *par= va_arg(ap, char *);
- size_t plen;
- size_t left_len= (size_t)(end-dst);
- if (!par)
- par= (char*) "(null)";
- plen= strlen(par);
- if (left_len <= plen * 2)
- plen = left_len / 2 - 1;
-
- for ( ; plen ; plen--, dst+=2, par++)
- {
- dst[0]= '\0';
- dst[1]= par[0];
- }
- continue;
- }
- else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */
- {
- int iarg;
- char nbuf[16];
- char *pbuf= nbuf;
-
- if ((size_t) (end - dst) < 32)
- break;
- iarg= va_arg(ap, int);
- if (*fmt == 'd')
- int10_to_str((long) iarg, nbuf, -10);
- else
- int10_to_str((long) (uint) iarg, nbuf,10);
-
- for (; pbuf[0]; pbuf++)
- {
- *dst++= '\0';
- *dst++= *pbuf;
- }
- continue;
- }
-
- /* We come here on '%%', unknown code or too long parameter */
- if (dst == end)
- break;
- *dst++= '\0';
- *dst++= '%'; /* % used as % or unknown code */
- }
-
- DBUG_ASSERT(dst <= end);
- *dst='\0'; /* End of errmessage */
- return (size_t) (dst - start);
-}
-
-
-static size_t
-my_snprintf_mb2(CHARSET_INFO *cs __attribute__((unused)),
- char* to, size_t n, const char* fmt, ...)
-{
- va_list args;
- va_start(args,fmt);
- return my_vsnprintf_mb2(to, n, fmt, args);
-}
-
-
-static size_t
-my_lengthsp_mb2(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr, size_t length)
-{
- const char *end= ptr + length;
- while (end > ptr + 1 && end[-1] == ' ' && end[-2] == '\0')
- end-= 2;
- return (size_t) (end - ptr);
-}
-
-#endif /* HAVE_CHARSET_mb2*/
-
-
-
-
-#ifdef HAVE_CHARSET_utf16
-
-/*
- D800..DB7F - Non-provate surrogate high (896 pages)
- DB80..DBFF - Private surrogate high (128 pages)
- DC00..DFFF - Surrogate low (1024 codes in a page)
-*/
-
-#define MY_UTF16_HIGH_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xD8)
-#define MY_UTF16_LOW_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xDC)
-#define MY_UTF16_SURROGATE(x) (((x) & 0xF800) == 0xD800)
-
-static int
-my_utf16_uni(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e)
-{
- if (s + 2 > e)
- return MY_CS_TOOSMALL2;
-
- /*
- High bytes: 0xD[89AB] = B'110110??'
- Low bytes: 0xD[CDEF] = B'110111??'
- Surrogate mask: 0xFC = B'11111100'
- */
-
- if (MY_UTF16_HIGH_HEAD(*s)) /* Surrogate head */
- {
- if (s + 4 > e)
- return MY_CS_TOOSMALL4;
-
- if (!MY_UTF16_LOW_HEAD(s[2])) /* Broken surrigate pair */
- return MY_CS_ILSEQ;
-
- /*
- s[0]= 110110?? (<< 18)
- s[1]= ???????? (<< 10)
- s[2]= 110111?? (<< 8)
- s[3]= ???????? (<< 0)
- */
-
- *pwc= ((s[0] & 3) << 18) + (s[1] << 10) +
- ((s[2] & 3) << 8) + s[3] + 0x10000;
-
- return 4;
- }
-
- if (MY_UTF16_LOW_HEAD(*s)) /* Low surrogate part without high part */
- return MY_CS_ILSEQ;
-
- *pwc= (s[0] << 8) + s[1];
- return 2;
-}
-
-
-static int
-my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- if (wc <= 0xFFFF)
- {
- if (s + 2 > e)
- return MY_CS_TOOSMALL2;
- if (MY_UTF16_SURROGATE(wc))
- return MY_CS_ILUNI;
- *s++= (uchar) (wc >> 8);
- *s= (uchar) (wc & 0xFF);
- return 2;
- }
-
- if (wc <= 0x10FFFF)
- {
- if (s + 4 > e)
- return MY_CS_TOOSMALL4;
- *s++= (uchar) ((wc-= 0x10000) >> 18) | 0xD8;
- *s++= (uchar) (wc >> 10) & 0xFF;
- *s++= (uchar) ((wc >> 8) & 3) | 0xDC;
- *s= (uchar) wc & 0xFF;
- return 4;
- }
-
- return MY_CS_ILUNI;
-}
-
-
-static inline void
-my_tolower_utf16(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
-}
-
-
-static inline void
-my_toupper_utf16(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
-}
-
-
-static inline void
-my_tosort_utf16(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256)
- {
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
- }
- else
- {
- *wc= MY_CS_REPLACEMENT_CHARACTER;
- }
-}
-
-
-static size_t
-my_caseup_utf16(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((src < srcend) &&
- (res= my_utf16_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
- {
- my_toupper_utf16(uni_plane, &wc);
- if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static void
-my_hash_sort_utf16(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_wc_t wc;
- int res;
- const uchar *e= s+slen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while (e > s + 1 && e[-1] == ' ' && e[-2] == '\0')
- e-= 2;
-
- while ((s < e) && (res= my_utf16_uni(cs, &wc, (uchar *)s, (uchar*)e)) > 0)
- {
- my_tosort_utf16(uni_plane, &wc);
- n1[0]^= (((n1[0] & 63) + n2[0]) * (wc & 0xFF)) + (n1[0] << 8);
- n2[0]+= 3;
- n1[0]^= (((n1[0] & 63) + n2[0]) * (wc >> 8)) + (n1[0] << 8);
- n2[0]+= 3;
- s+= res;
- }
-}
-
-
-static size_t
-my_casedn_utf16(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((src < srcend) &&
- (res= my_utf16_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
- {
- my_tolower_utf16(uni_plane, &wc);
- if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static int
-my_strnncoll_utf16(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res, t_res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while (s < se && t < te)
- {
- s_res= my_utf16_uni(cs, &s_wc, s, se);
- t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf16(uni_plane, &s_wc);
- my_tosort_utf16(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-/**
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
-
- IMPLEMENTATION
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
-static int
-my_strnncollsp_utf16(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- DBUG_ASSERT((slen % 2) == 0);
- DBUG_ASSERT((tlen % 2) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while (s < se && t < te)
- {
- int s_res= my_utf16_uni(cs, &s_wc, s, se);
- int t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf16(uni_plane, &s_wc);
- my_tosort_utf16(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static uint
-my_ismbchar_utf16(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)))
-{
- if (b + 2 > e)
- return 0;
-
- if (MY_UTF16_HIGH_HEAD(*b))
- {
- return (b + 4 <= e) && MY_UTF16_LOW_HEAD(b[2]) ? 4 : 0;
- }
-
- if (MY_UTF16_LOW_HEAD(*b))
- return 0;
-
- return 2;
-}
-
-
-static uint
-my_mbcharlen_utf16(CHARSET_INFO *cs __attribute__((unused)),
- uint c __attribute__((unused)))
-{
- return MY_UTF16_HIGH_HEAD(c) ? 4 : 2;
-}
-
-
-static size_t
-my_numchars_utf16(CHARSET_INFO *cs,
- const char *b, const char *e)
-{
- size_t nchars= 0;
- for ( ; ; nchars++)
- {
- size_t charlen= my_ismbchar_utf16(cs, b, e);
- if (!charlen)
- break;
- b+= charlen;
- }
- return nchars;
-}
-
-
-static size_t
-my_charpos_utf16(CHARSET_INFO *cs,
- const char *b, const char *e, size_t pos)
-{
- const char *b0= b;
- uint charlen;
-
- for ( ; pos; b+= charlen, pos--)
- {
- if (!(charlen= my_ismbchar(cs, b, e)))
- return (e + 2 - b0); /* Error, return pos outside the string */
- }
- return (size_t) (pos ? (e + 2 - b0) : (b - b0));
-}
-
-
-static size_t
-my_well_formed_len_utf16(CHARSET_INFO *cs,
- const char *b, const char *e,
- size_t nchars, int *error)
-{
- const char *b0= b;
- uint charlen;
- *error= 0;
-
- for ( ; nchars; b+= charlen, nchars--)
- {
- if (!(charlen= my_ismbchar(cs, b, e)))
- {
- *error= b < e ? 1 : 0;
- break;
- }
- }
- return (size_t) (b - b0);
-}
-
-
-static int
-my_wildcmp_utf16_ci(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many, uni_plane);
-}
-
-
-static int
-my_wildcmp_utf16_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many, NULL);
-}
-
-
-static int
-my_strnncoll_utf16_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
-
- while ( s < se && t < te )
- {
- s_res= my_utf16_uni(cs,&s_wc, s, se);
- t_res= my_utf16_uni(cs,&t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-static int
-my_strnncollsp_utf16_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
-
- DBUG_ASSERT((slen % 2) == 0);
- DBUG_ASSERT((tlen % 2) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while (s < se && t < te)
- {
- int s_res= my_utf16_uni(cs, &s_wc, s, se);
- int t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static void
-my_hash_sort_utf16_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2)
-{
- const uchar *pos = key;
-
- key+= len;
-
- while (key > pos + 1 && key[-1] == ' ' && key[-2] == '\0')
- key-= 2;
-
- for (; pos < (uchar*) key ; pos++)
- {
- nr1[0]^= (ulong) ((((uint) nr1[0] & 63) + nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+= 3;
- }
-}
-
-
-static MY_COLLATION_HANDLER my_collation_utf16_general_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_utf16,
- my_strnncollsp_utf16,
- my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_utf16_ci,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_utf16,
- my_propagate_simple
-};
-
-
-static MY_COLLATION_HANDLER my_collation_utf16_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_utf16_bin,
- my_strnncollsp_utf16_bin,
- my_strnxfrm_unicode_full_bin,
- my_strnxfrmlen_unicode_full_bin,
- my_like_range_generic,
- my_wildcmp_utf16_bin,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_utf16_bin,
- my_propagate_simple
-};
-
-
-MY_CHARSET_HANDLER my_charset_utf16_handler=
-{
- NULL, /* init */
- my_ismbchar_utf16, /* ismbchar */
- my_mbcharlen_utf16, /* mbcharlen */
- my_numchars_utf16,
- my_charpos_utf16,
- my_well_formed_len_utf16,
- my_lengthsp_mb2,
- my_numcells_mb,
- my_utf16_uni, /* mb_wc */
- my_uni_utf16, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb2_or_mb4,
- my_casedn_str_mb2_or_mb4,
- my_caseup_utf16,
- my_casedn_utf16,
- my_snprintf_mb2,
- my_l10tostr_mb2_or_mb4,
- my_ll10tostr_mb2_or_mb4,
- my_fill_mb2,
- my_strntol_mb2_or_mb4,
- my_strntoul_mb2_or_mb4,
- my_strntoll_mb2_or_mb4,
- my_strntoull_mb2_or_mb4,
- my_strntod_mb2_or_mb4,
- my_strtoll10_mb2,
- my_strntoull10rnd_mb2_or_mb4,
- my_scan_mb2
-};
-
-
-CHARSET_INFO my_charset_utf16_general_ci=
-{
- 54,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf16", /* cs name */
- "utf16_general_ci", /* name */
- "UTF-16 Unicode", /* comment */
- NULL, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_general_ci_handler
-};
-
-
-CHARSET_INFO my_charset_utf16_bin=
-{
- 55,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf16", /* cs name */
- "utf16_bin", /* name */
- "UTF-16 Unicode", /* comment */
- NULL, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf16_handler,
- &my_collation_utf16_bin_handler
-};
-
-#endif /* HAVE_CHARSET_utf16 */
-
-
-#ifdef HAVE_CHARSET_utf32
-
-static int
-my_utf32_uni(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e)
-{
- if (s + 4 > e)
- return MY_CS_TOOSMALL4;
- *pwc= (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]);
- return 4;
-}
-
-
-static int
-my_uni_utf32(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- if (s + 4 > e)
- return MY_CS_TOOSMALL4;
-
- s[0]= (uchar) (wc >> 24);
- s[1]= (uchar) (wc >> 16) & 0xFF;
- s[2]= (uchar) (wc >> 8) & 0xFF;
- s[3]= (uchar) wc & 0xFF;
- return 4;
-}
-
-
-static inline void
-my_tolower_utf32(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
-}
-
-
-static inline void
-my_toupper_utf32(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
-}
-
-
-static inline void
-my_tosort_utf32(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256)
- {
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
- }
- else
- {
- *wc= MY_CS_REPLACEMENT_CHARACTER;
- }
-}
-
-
-static size_t
-my_caseup_utf32(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((src < srcend) &&
- (res= my_utf32_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
- {
- my_toupper_utf32(uni_plane, &wc);
- if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static inline void
-my_hash_add(ulong *n1, ulong *n2, uint ch)
-{
- n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
- n2[0]+= 3;
-}
-
-
-static void
-my_hash_sort_utf32(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_wc_t wc;
- int res;
- const uchar *e= s + slen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- /* Skip trailing spaces */
- while (e > s + 3 && e[-1] == ' ' && !e[-2] && !e[-3] && !e[-4])
- e-= 4;
-
- while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
- {
- my_tosort_utf32(uni_plane, &wc);
- my_hash_add(n1, n2, (uint) (wc >> 24));
- my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF);
- my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF);
- my_hash_add(n1, n2, (uint) (wc & 0xFF));
- s+= res;
- }
-}
-
-
-static size_t
-my_casedn_utf32(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
- {
- my_tolower_utf32(uni_plane,&wc);
- if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static int
-my_strnncoll_utf32(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while (s < se && t < te)
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf32(uni_plane, &s_wc);
- my_tosort_utf32(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-/**
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
-
- IMPLEMENTATION
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
-
-static int
-my_strnncollsp_utf32(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- DBUG_ASSERT((slen % 4) == 0);
- DBUG_ASSERT((tlen % 4) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while ( s < se && t < te )
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf32(uni_plane, &s_wc);
- my_tosort_utf32(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf32_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t
-my_strnxfrmlen_utf32(CHARSET_INFO *cs __attribute__((unused)), size_t len)
-{
- return len / 2;
-}
-
-
-static uint
-my_ismbchar_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)))
-{
- return 4;
-}
-
-
-static uint
-my_mbcharlen_utf32(CHARSET_INFO *cs __attribute__((unused)) ,
- uint c __attribute__((unused)))
-{
- return 4;
-}
-
-
-static int
-my_vsnprintf_utf32(char *dst, size_t n, const char* fmt, va_list ap)
-{
- char *start= dst, *end= dst + n;
- DBUG_ASSERT((n % 4) == 0);
- for (; *fmt ; fmt++)
- {
- if (fmt[0] != '%')
- {
- if (dst >= end) /* End of buffer */
- break;
-
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '\0';
- *dst++= *fmt; /* Copy ordinary char */
- continue;
- }
-
- fmt++;
-
- /* Skip if max size is used (to be compatible with printf) */
- while ( (*fmt>='0' && *fmt<='9') || *fmt == '.' || *fmt == '-')
- fmt++;
-
- if (*fmt == 'l')
- fmt++;
-
- if (*fmt == 's') /* String parameter */
- {
- reg2 char *par= va_arg(ap, char *);
- size_t plen;
- size_t left_len= (size_t)(end - dst);
- if (!par) par= (char*)"(null)";
- plen= strlen(par);
- if (left_len <= plen*4)
- plen= left_len / 4 - 1;
-
- for ( ; plen ; plen--, dst+= 4, par++)
- {
- dst[0]= '\0';
- dst[1]= '\0';
- dst[2]= '\0';
- dst[3]= par[0];
- }
- continue;
- }
- else if (*fmt == 'd' || *fmt == 'u') /* Integer parameter */
- {
- register int iarg;
- char nbuf[16];
- char *pbuf= nbuf;
-
- if ((size_t) (end - dst) < 64)
- break;
- iarg= va_arg(ap, int);
- if (*fmt == 'd')
- int10_to_str((long) iarg, nbuf, -10);
- else
- int10_to_str((long) (uint) iarg,nbuf,10);
-
- for (; pbuf[0]; pbuf++)
- {
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '\0';
- *dst++= *pbuf;
- }
- continue;
- }
-
- /* We come here on '%%', unknown code or too long parameter */
- if (dst == end)
- break;
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '%'; /* % used as % or unknown code */
- }
-
- DBUG_ASSERT(dst < end);
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '\0';
- *dst++= '\0'; /* End of errmessage */
- return (size_t) (dst - start - 4);
-}
-
-
-static size_t
-my_snprintf_utf32(CHARSET_INFO *cs __attribute__((unused)),
- char* to, size_t n, const char* fmt, ...)
-{
- va_list args;
- va_start(args,fmt);
- return my_vsnprintf_utf32(to, n, fmt, args);
-}
-
-
-static longlong
-my_strtoll10_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *nptr, char **endptr, int *error)
-{
- const char *s, *end, *start, *n_end, *true_end;
- uchar c;
- unsigned long i, j, k;
- ulonglong li;
- int negative;
- ulong cutoff, cutoff2, cutoff3;
-
- s= nptr;
- /* If fixed length string */
- if (endptr)
- {
- /* Make sure string length is even */
- end= s + ((*endptr - s) / 4) * 4;
- while (s < end && !s[0] && !s[1] && !s[2] &&
- (s[3] == ' ' || s[3] == '\t'))
- s+= 4;
- if (s == end)
- goto no_conv;
- }
- else
- {
- /* We don't support null terminated strings in UCS2 */
- goto no_conv;
- }
-
- /* Check for a sign. */
- negative= 0;
- if (!s[0] && !s[1] && !s[2] && s[3] == '-')
- {
- *error= -1; /* Mark as negative number */
- negative= 1;
- s+= 4;
- if (s == end)
- goto no_conv;
- cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2;
- cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100;
- cutoff3= MAX_NEGATIVE_NUMBER % 100;
- }
- else
- {
- *error= 0;
- if (!s[0] && !s[1] && !s[2] && s[3] == '+')
- {
- s+= 4;
- if (s == end)
- goto no_conv;
- }
- cutoff= ULONGLONG_MAX / LFACTOR2;
- cutoff2= ULONGLONG_MAX % LFACTOR2 / 100;
- cutoff3= ULONGLONG_MAX % 100;
- }
-
- /* Handle case where we have a lot of pre-zero */
- if (!s[0] && !s[1] && !s[2] && s[3] == '0')
- {
- i= 0;
- do
- {
- s+= 4;
- if (s == end)
- goto end_i; /* Return 0 */
- }
- while (!s[0] && !s[1] && !s[2] && s[3] == '0');
- n_end= s + 4 * INIT_CNT;
- }
- else
- {
- /* Read first digit to check that it's a valid number */
- if (s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9)
- goto no_conv;
- i= c;
- s+= 4;
- n_end= s + 4 * (INIT_CNT-1);
- }
-
- /* Handle first 9 digits and store them in i */
- if (n_end > end)
- n_end= end;
- for (; s != n_end ; s+= 4)
- {
- if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9)
- goto end_i;
- i= i * 10 + c;
- }
- if (s == end)
- goto end_i;
-
- /* Handle next 9 digits and store them in j */
- j= 0;
- start= s; /* Used to know how much to shift i */
- n_end= true_end= s + 4 * INIT_CNT;
- if (n_end > end)
- n_end= end;
- do
- {
- if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9)
- goto end_i_and_j;
- j= j * 10 + c;
- s+= 4;
- } while (s != n_end);
- if (s == end)
- {
- if (s != true_end)
- goto end_i_and_j;
- goto end3;
- }
- if (s[0] || s[1] || s[2] || (c= (s[3] - '0')) > 9)
- goto end3;
-
- /* Handle the next 1 or 2 digits and store them in k */
- k=c;
- s+= 4;
- if (s == end || s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9)
- goto end4;
- k= k * 10 + c;
- s+= 2;
- *endptr= (char*) s;
-
- /* number string should have ended here */
- if (s != end && !s[0] && !s[1] && !s[2] && (c= (s[3] - '0')) <= 9)
- goto overflow;
-
- /* Check that we didn't get an overflow with the last digit */
- if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) &&
- k > cutoff3)))
- goto overflow;
- li= i * LFACTOR2+ (ulonglong) j * 100 + k;
- return (longlong) li;
-
-overflow: /* *endptr is set here */
- *error= MY_ERRNO_ERANGE;
- return negative ? LONGLONG_MIN : (longlong) ULONGLONG_MAX;
-
-end_i:
- *endptr= (char*) s;
- return (negative ? ((longlong) -(long) i) : (longlong) i);
-
-end_i_and_j:
- li= (ulonglong) i * lfactor[(size_t) (s-start) / 4] + j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end3:
- li= (ulonglong) i*LFACTOR+ (ulonglong) j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end4:
- li= (ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k;
- *endptr= (char*) s;
- if (negative)
- {
- if (li > MAX_NEGATIVE_NUMBER)
- goto overflow;
- return -((longlong) li);
- }
- return (longlong) li;
-
-no_conv:
- /* There was no number to convert. */
- *error= MY_ERRNO_EDOM;
- *endptr= (char *) nptr;
- return 0;
-}
-
-
-static size_t
-my_numchars_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e)
-{
- return (size_t) (e - b) / 4;
-}
-
-
-static size_t
-my_charpos_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e, size_t pos)
-{
- size_t string_length= (size_t) (e - b);
- return pos * 4 > string_length ? string_length + 4 : pos * 4;
-}
-
-
-static size_t
-my_well_formed_len_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t nchars, int *error)
-{
- /* Ensure string length is divisible by 4 */
- const char *b0= b;
- size_t length= e - b;
- DBUG_ASSERT((length % 4) == 0);
- *error= 0;
- nchars*= 4;
- if (length > nchars)
- {
- length= nchars;
- e= b + nchars;
- }
- for (; b < e; b+= 4)
- {
- /* Don't accept characters greater than U+10FFFF */
- if (b[0] || (uchar) b[1] > 0x10)
- {
- *error= 1;
- return b - b0;
- }
- }
- return length;
-}
-
-
-static
-void my_fill_utf32(CHARSET_INFO *cs,
- char *s, size_t slen, int fill)
-{
- char buf[10];
- uint buflen;
- char *e= s + slen;
-
- DBUG_ASSERT((slen % 4) == 0);
-
- buflen= cs->cset->wc_mb(cs, (my_wc_t) fill, (uchar*) buf,
- (uchar*) buf + sizeof(buf));
- DBUG_ASSERT(buflen == 4);
- while (s < e)
- {
- memcpy(s, buf, 4);
- s+= 4;
- }
-}
-
-
-static size_t
-my_lengthsp_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr, size_t length)
-{
- const char *end= ptr + length;
- DBUG_ASSERT((length % 4) == 0);
- while (end > ptr + 3 && end[-1] == ' ' && !end[-2] && !end[-3] && !end[-4])
- end-= 4;
- return (size_t) (end - ptr);
-}
-
-
-static int
-my_wildcmp_utf32_ci(CHARSET_INFO *cs,
- const char *str, const char *str_end,
- const char *wildstr, const char *wildend,
- int escape, int w_one, int w_many)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many, uni_plane);
-}
-
-
-static int
-my_wildcmp_utf32_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many, NULL);
-}
-
-
-static int
-my_strnncoll_utf32_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
-
- while (s < se && t < te)
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t-te) : ((se - s) - (te - t)));
-}
-
-
-static inline my_wc_t
-my_utf32_get(const uchar *s)
-{
- return
- ((my_wc_t) s[0] << 24) +
- ((my_wc_t) s[1] << 16) +
- ((my_wc_t) s[2] << 8) +
- s[3];
-}
-
-
-static int
-my_strnncollsp_utf32_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *se, *te;
- size_t minlen;
-
- DBUG_ASSERT((slen % 4) == 0);
- DBUG_ASSERT((tlen % 4) == 0);
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 4)
- {
- my_wc_t s_wc= my_utf32_get(s);
- my_wc_t t_wc= my_utf32_get(t);
- if (s_wc != t_wc)
- return s_wc > t_wc ? 1 : -1;
-
- s+= 4;
- t+= 4;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 4)
- {
- my_wc_t s_wc= my_utf32_get(s);
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return 0;
-}
-
-
-static size_t
-my_scan_utf32(CHARSET_INFO *cs,
- const char *str, const char *end, int sequence_type)
-{
- const char *str0= str;
-
- switch (sequence_type)
- {
- case MY_SEQ_SPACES:
- for ( ; str < end; )
- {
- my_wc_t wc;
- int res= my_utf32_uni(cs, &wc, (uchar*) str, (uchar*) end);
- if (res < 0 || wc != ' ')
- break;
- str+= res;
- }
- return (size_t) (str - str0);
- default:
- return 0;
- }
-}
-
-
-static MY_COLLATION_HANDLER my_collation_utf32_general_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_utf32,
- my_strnncollsp_utf32,
- my_strnxfrm_unicode,
- my_strnxfrmlen_utf32,
- my_like_range_generic,
- my_wildcmp_utf32_ci,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_utf32,
- my_propagate_simple
-};
-
-
-static MY_COLLATION_HANDLER my_collation_utf32_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_utf32_bin,
- my_strnncollsp_utf32_bin,
- my_strnxfrm_unicode_full_bin,
- my_strnxfrmlen_unicode_full_bin,
- my_like_range_generic,
- my_wildcmp_utf32_bin,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_utf32,
- my_propagate_simple
-};
-
-
-MY_CHARSET_HANDLER my_charset_utf32_handler=
-{
- NULL, /* init */
- my_ismbchar_utf32,
- my_mbcharlen_utf32,
- my_numchars_utf32,
- my_charpos_utf32,
- my_well_formed_len_utf32,
- my_lengthsp_utf32,
- my_numcells_mb,
- my_utf32_uni,
- my_uni_utf32,
- my_mb_ctype_mb,
- my_caseup_str_mb2_or_mb4,
- my_casedn_str_mb2_or_mb4,
- my_caseup_utf32,
- my_casedn_utf32,
- my_snprintf_utf32,
- my_l10tostr_mb2_or_mb4,
- my_ll10tostr_mb2_or_mb4,
- my_fill_utf32,
- my_strntol_mb2_or_mb4,
- my_strntoul_mb2_or_mb4,
- my_strntoll_mb2_or_mb4,
- my_strntoull_mb2_or_mb4,
- my_strntod_mb2_or_mb4,
- my_strtoll10_utf32,
- my_strntoull10rnd_mb2_or_mb4,
- my_scan_utf32
-};
-
-
-CHARSET_INFO my_charset_utf32_general_ci=
-{
- 60,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf32", /* cs name */
- "utf32_general_ci", /* name */
- "UTF-32 Unicode", /* comment */
- NULL, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_general_ci_handler
-};
-
-
-CHARSET_INFO my_charset_utf32_bin=
-{
- 61,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII,
- "utf32", /* cs name */
- "utf32_bin", /* name */
- "UTF-32 Unicode", /* comment */
- NULL, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 4, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf32_handler,
- &my_collation_utf32_bin_handler
-};
-
-
-#endif /* HAVE_CHARSET_utf32 */
-
-
-#ifdef HAVE_CHARSET_ucs2
-
-static uchar ctype_ucs2[] = {
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 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
-};
-
-static uchar to_lower_ucs2[] = {
- 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, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-static uchar to_upper_ucs2[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-
-static int my_ucs2_uni(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t * pwc, const uchar *s, const uchar *e)
-{
- if (s+2 > e) /* Need 2 characters */
- return MY_CS_TOOSMALL2;
-
- *pwc= ((uchar)s[0]) * 256 + ((uchar)s[1]);
- return 2;
-}
-
-static int my_uni_ucs2(CHARSET_INFO *cs __attribute__((unused)) ,
- my_wc_t wc, uchar *r, uchar *e)
-{
- if ( r+2 > e )
- return MY_CS_TOOSMALL2;
-
- if (wc > 0xFFFF) /* UCS2 does not support characters outside BMP */
- return MY_CS_ILUNI;
-
- r[0]= (uchar) (wc >> 8);
- r[1]= (uchar) (wc & 0xFF);
- return 2;
-}
-
-
-static size_t my_caseup_ucs2(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((src < srcend) &&
- (res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
- if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static void my_hash_sort_ucs2(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_wc_t wc;
- int res;
- const uchar *e=s+slen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while (e > s+1 && e[-1] == ' ' && e[-2] == '\0')
- e-= 2;
-
- while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0)
- {
- int plane = (wc>>8) & 0xFF;
- wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
- n2[0]+=3;
- s+=res;
- }
-}
-
-
-static size_t my_casedn_ucs2(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- my_wc_t wc;
- int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
-
- while ((src < srcend) &&
- (res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
- if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend))
- break;
- src+= res;
- }
- return srclen;
-}
-
-
-static int my_strnncoll_ucs2(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_ucs2_uni(cs,&s_wc, s, se);
- t_res=my_ucs2_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-/*
- Compare strings, discarding end space
-
- SYNOPSIS
- my_strnncollsp_ucs2()
- cs character set handler
- a First string to compare
- a_length Length of 'a'
- b Second string to compare
- b_length Length of 'b'
-
- IMPLEMENTATION
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- RETURN
- < 0 a < b
- = 0 a == b
- > 0 a > b
-*/
-
-static int my_strnncollsp_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *se, *te;
- size_t minlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- /* extra safety to make sure the lengths are even numbers */
- slen&= ~1;
- tlen&= ~1;
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 2)
- {
- int s_wc = uni_plane[s[0]] ? (int) uni_plane[s[0]][s[1]].sort :
- (((int) s[0]) << 8) + (int) s[1];
-
- int t_wc = uni_plane[t[0]] ? (int) uni_plane[t[0]][t[1]].sort :
- (((int) t[0]) << 8) + (int) t[1];
- if ( s_wc != t_wc )
- return s_wc > t_wc ? 1 : -1;
-
- s+= 2;
- t+= 2;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 2)
- {
- if (s[0] || s[1] != ' ')
- return (s[0] == 0 && s[1] < ' ') ? -swap : swap;
- }
- }
- return 0;
-}
-
-
-static uint my_ismbchar_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)))
-{
- return 2;
-}
-
-
-static uint my_mbcharlen_ucs2(CHARSET_INFO *cs __attribute__((unused)) ,
- uint c __attribute__((unused)))
-{
- return 2;
-}
-
-
-static
-size_t my_numchars_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e)
-{
- return (size_t) (e-b)/2;
-}
-
-
-static
-size_t my_charpos_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)),
- size_t pos)
-{
- size_t string_length= (size_t) (e - b);
- return pos > string_length ? string_length + 2 : pos * 2;
-}
-
-
-static
-size_t my_well_formed_len_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t nchars, int *error)
-{
- /* Ensure string length is dividable with 2 */
- size_t nbytes= ((size_t) (e-b)) & ~(size_t) 1;
- *error= 0;
- nchars*= 2;
- return min(nbytes, nchars);
-}
-
-
-static
-int my_wildcmp_ucs2_ci(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
- escape,w_one,w_many,uni_plane);
-}
-
-
-static
-int my_wildcmp_ucs2_bin(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
- escape,w_one,w_many,NULL);
-}
-
-
-static
-int my_strnncoll_ucs2_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
-
- while ( s < se && t < te )
- {
- s_res=my_ucs2_uni(cs,&s_wc, s, se);
- t_res=my_ucs2_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-static int my_strnncollsp_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *se, *te;
- size_t minlen;
-
- /* extra safety to make sure the lengths are even numbers */
- slen= (slen >> 1) << 1;
- tlen= (tlen >> 1) << 1;
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 2)
- {
- int s_wc= s[0] * 256 + s[1];
- int t_wc= t[0] * 256 + t[1];
- if ( s_wc != t_wc )
- return s_wc > t_wc ? 1 : -1;
-
- s+= 2;
- t+= 2;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 2)
- {
- if (s[0] || s[1] != ' ')
- return (s[0] == 0 && s[1] < ' ') ? -swap : swap;
- }
- }
- return 0;
-}
-
-
-static
-void my_hash_sort_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2)
-{
- const uchar *pos = key;
-
- key+= len;
-
- while (key > pos+1 && key[-1] == ' ' && key[-2] == '\0')
- key-= 2;
-
- for (; pos < (uchar*) key ; pos++)
- {
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
- }
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ucs2_general_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_ucs2,
- my_strnncollsp_ucs2,
- my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_ucs2_ci,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_ucs2,
- my_propagate_simple
-};
-
-
-static MY_COLLATION_HANDLER my_collation_ucs2_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_ucs2_bin,
- my_strnncollsp_ucs2_bin,
- my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
- my_like_range_generic,
- my_wildcmp_ucs2_bin,
- my_strcasecmp_mb2_or_mb4,
- my_instr_mb,
- my_hash_sort_ucs2_bin,
- my_propagate_simple
-};
-
-
-MY_CHARSET_HANDLER my_charset_ucs2_handler=
-{
- NULL, /* init */
- my_ismbchar_ucs2, /* ismbchar */
- my_mbcharlen_ucs2, /* mbcharlen */
- my_numchars_ucs2,
- my_charpos_ucs2,
- my_well_formed_len_ucs2,
- my_lengthsp_mb2,
- my_numcells_mb,
- my_ucs2_uni, /* mb_wc */
- my_uni_ucs2, /* wc_mb */
- my_mb_ctype_mb,
- my_caseup_str_mb2_or_mb4,
- my_casedn_str_mb2_or_mb4,
- my_caseup_ucs2,
- my_casedn_ucs2,
- my_snprintf_mb2,
- my_l10tostr_mb2_or_mb4,
- my_ll10tostr_mb2_or_mb4,
- my_fill_mb2,
- my_strntol_mb2_or_mb4,
- my_strntoul_mb2_or_mb4,
- my_strntoll_mb2_or_mb4,
- my_strntoull_mb2_or_mb4,
- my_strntod_mb2_or_mb4,
- my_strtoll10_mb2,
- my_strntoull10rnd_mb2_or_mb4,
- my_scan_mb2
-};
-
-
-CHARSET_INFO my_charset_ucs2_general_ci=
-{
- 35,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_general_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_ucs2, /* ctype */
- to_lower_ucs2, /* to_lower */
- to_upper_ucs2, /* to_upper */
- to_upper_ucs2, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_general_ci_handler
-};
-
-CHARSET_INFO my_charset_ucs2_bin=
-{
- 90,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII,
- "ucs2", /* cs name */
- "ucs2_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_ucs2, /* ctype */
- to_lower_ucs2, /* to_lower */
- to_upper_ucs2, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 2, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_ucs2_handler,
- &my_collation_ucs2_bin_handler
-};
-
-
-#endif /* HAVE_CHARSET_ucs2 */
diff --git a/dep/mysqllite/strings/ctype-utf8.c b/dep/mysqllite/strings/ctype-utf8.c
deleted file mode 100644
index 324f6b9aafb..00000000000
--- a/dep/mysqllite/strings/ctype-utf8.c
+++ /dev/null
@@ -1,5238 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* UTF8 according RFC 2279 */
-/* Written by Alexander Barkov <bar@udm.net> */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-#include <errno.h>
-
-#ifndef EILSEQ
-#define EILSEQ ENOENT
-#endif
-
-
-#define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci"
-#define MY_UTF8MB3_GENERAL_CS MY_UTF8MB3 "_general_cs"
-#define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin"
-#define MY_UTF8MB4_GENERAL_CI MY_UTF8MB4 "_general_ci"
-#define MY_UTF8MB4_GENERAL_CS MY_UTF8MB4 "_general_cs"
-#define MY_UTF8MB4_BIN MY_UTF8MB4 "_bin"
-
-
-
-#ifndef HAVE_CHARSET_utf8
-#define HAVE_CHARSET_utf8
-#endif
-
-#ifdef HAVE_CHARSET_utf8
-#define HAVE_UNIDATA
-#endif
-
-#ifdef HAVE_CHARSET_ucs2
-#define HAVE_UNIDATA
-#endif
-
-#ifdef HAVE_CHARSET_utf16
-#define HAVE_UNIDATA
-#endif
-
-#ifdef HAVE_CHARSET_utf32
-#define HAVE_UNIDATA
-#endif
-
-#ifdef HAVE_UNIDATA
-
-#include "my_uctype.h"
-
-static MY_UNICASE_INFO plane00[]={
- {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
- {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
- {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
- {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
- {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
- {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
- {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
- {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
- {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
- {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
- {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
- {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
- {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
- {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
- {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
- {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
- {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
- {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
- {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
- {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
- {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
- {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
- {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
- {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
- {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
- {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
- {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
- {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
- {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
- {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
- {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
- {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
- {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
- {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
- {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
- {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
- {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
- {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
- {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
- {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
- {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
- {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
- {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
- {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
- {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
- {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
- {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
- {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
- {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
- {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
- {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
- {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
- {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049},
- {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
- {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
- {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
- {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
- {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
- {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
- {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
- {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
- {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
- {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
- {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
- {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
- {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
- {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
- {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
- {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
- {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
- {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
- {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
- {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
- {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
- {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
- {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
- {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
- {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
- {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
- {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
- {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
- {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
- {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
- {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
- {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
- {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
- {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
- {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
- {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
- {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
- {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
- {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
- {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
- {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
- {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
- {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
- {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
- {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
- {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
- {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
- {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
- {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
- {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
- {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
- {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
- {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
- {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
- {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
- {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
- {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
- {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
- {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053},
- {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
- {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
- {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
- {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
- {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
- {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
- {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
- {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
- {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
- {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
- {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
- {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
- {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
- {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
- {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
- {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
-};
-
-
-
-static MY_UNICASE_INFO plane01[]={
- {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
- {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041},
- {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041},
- {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043},
- {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043},
- {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043},
- {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043},
- {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044},
- {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110},
- {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045},
- {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045},
- {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045},
- {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045},
- {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045},
- {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047},
- {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047},
- {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047},
- {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047},
- {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048},
- {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126},
- {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049},
- {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049},
- {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049},
- {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049},
- {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049},
- {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132},
- {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A},
- {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B},
- {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C},
- {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C},
- {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C},
- {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F},
- {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141},
- {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E},
- {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E},
- {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E},
- {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149},
- {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A},
- {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F},
- {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F},
- {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F},
- {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152},
- {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052},
- {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052},
- {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052},
- {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053},
- {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053},
- {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053},
- {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053},
- {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054},
- {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054},
- {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166},
- {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055},
- {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055},
- {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055},
- {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055},
- {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055},
- {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055},
- {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057},
- {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059},
- {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A},
- {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A},
- {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A},
- {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053},
- {0x0180,0x0180,0x0180}, {0x0181,0x0253,0x0181},
- {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182},
- {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184},
- {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187},
- {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189},
- {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B},
- {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D},
- {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F},
- {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191},
- {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193},
- {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6},
- {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197},
- {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198},
- {0x019A,0x019A,0x019A}, {0x019B,0x019B,0x019B},
- {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D},
- {0x019E,0x019E,0x019E}, {0x019F,0x0275,0x019F},
- {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F},
- {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2},
- {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4},
- {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7},
- {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9},
- {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB},
- {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC},
- {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055},
- {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1},
- {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3},
- {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5},
- {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7},
- {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8},
- {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB},
- {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC},
- {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7},
- {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1},
- {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3},
- {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4},
- {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7},
- {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7},
- {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA},
- {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041},
- {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049},
- {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F},
- {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055},
- {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055},
- {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055},
- {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055},
- {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055},
- {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E},
- {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041},
- {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041},
- {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6},
- {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4},
- {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047},
- {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B},
- {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F},
- {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F},
- {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7},
- {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1},
- {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1},
- {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047},
- {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7},
- {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E},
- {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041},
- {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6},
- {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8}
-};
-
-static MY_UNICASE_INFO plane02[]={
- {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041},
- {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041},
- {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045},
- {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045},
- {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049},
- {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049},
- {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F},
- {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F},
- {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052},
- {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052},
- {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055},
- {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055},
- {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053},
- {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054},
- {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C},
- {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048},
- {0x0220,0x0220,0x0220}, {0x0221,0x0221,0x0221},
- {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222},
- {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224},
- {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041},
- {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045},
- {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F},
- {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F},
- {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F},
- {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F},
- {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059},
- {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235},
- {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237},
- {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239},
- {0x023A,0x023A,0x023A}, {0x023B,0x023B,0x023B},
- {0x023C,0x023C,0x023C}, {0x023D,0x023D,0x023D},
- {0x023E,0x023E,0x023E}, {0x023F,0x023F,0x023F},
- {0x0240,0x0240,0x0240}, {0x0241,0x0241,0x0241},
- {0x0242,0x0242,0x0242}, {0x0243,0x0243,0x0243},
- {0x0244,0x0244,0x0244}, {0x0245,0x0245,0x0245},
- {0x0246,0x0246,0x0246}, {0x0247,0x0247,0x0247},
- {0x0248,0x0248,0x0248}, {0x0249,0x0249,0x0249},
- {0x024A,0x024A,0x024A}, {0x024B,0x024B,0x024B},
- {0x024C,0x024C,0x024C}, {0x024D,0x024D,0x024D},
- {0x024E,0x024E,0x024E}, {0x024F,0x024F,0x024F},
- {0x0250,0x0250,0x0250}, {0x0251,0x0251,0x0251},
- {0x0252,0x0252,0x0252}, {0x0181,0x0253,0x0181},
- {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255},
- {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A},
- {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F},
- {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190},
- {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D},
- {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F},
- {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261},
- {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194},
- {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265},
- {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267},
- {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196},
- {0x026A,0x026A,0x026A}, {0x026B,0x026B,0x026B},
- {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D},
- {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C},
- {0x0270,0x0270,0x0270}, {0x0271,0x0271,0x0271},
- {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273},
- {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F},
- {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277},
- {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279},
- {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B},
- {0x027C,0x027C,0x027C}, {0x027D,0x027D,0x027D},
- {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F},
- {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281},
- {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9},
- {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285},
- {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287},
- {0x01AE,0x0288,0x01AE}, {0x0289,0x0289,0x0289},
- {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2},
- {0x028C,0x028C,0x028C}, {0x028D,0x028D,0x028D},
- {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F},
- {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291},
- {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293},
- {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295},
- {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297},
- {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299},
- {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B},
- {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D},
- {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F},
- {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1},
- {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3},
- {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5},
- {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7},
- {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9},
- {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB},
- {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD},
- {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF},
- {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1},
- {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3},
- {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5},
- {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7},
- {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9},
- {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB},
- {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD},
- {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF},
- {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1},
- {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3},
- {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5},
- {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7},
- {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9},
- {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB},
- {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD},
- {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF},
- {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1},
- {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3},
- {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5},
- {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7},
- {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9},
- {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB},
- {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD},
- {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF},
- {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1},
- {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3},
- {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5},
- {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7},
- {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9},
- {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB},
- {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED},
- {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF},
- {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1},
- {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3},
- {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5},
- {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7},
- {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9},
- {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB},
- {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD},
- {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF}
-};
-
-static MY_UNICASE_INFO plane03[]={
- {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301},
- {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303},
- {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305},
- {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307},
- {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309},
- {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B},
- {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D},
- {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F},
- {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311},
- {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313},
- {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315},
- {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317},
- {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319},
- {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B},
- {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D},
- {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F},
- {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321},
- {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323},
- {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325},
- {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327},
- {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329},
- {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B},
- {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D},
- {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F},
- {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331},
- {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333},
- {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335},
- {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337},
- {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339},
- {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B},
- {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D},
- {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F},
- {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341},
- {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343},
- {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399},
- {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347},
- {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349},
- {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B},
- {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D},
- {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F},
- {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351},
- {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353},
- {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355},
- {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357},
- {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359},
- {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B},
- {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D},
- {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F},
- {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361},
- {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363},
- {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365},
- {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367},
- {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369},
- {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B},
- {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D},
- {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F},
- {0x0370,0x0370,0x0370}, {0x0371,0x0371,0x0371},
- {0x0372,0x0372,0x0372}, {0x0373,0x0373,0x0373},
- {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375},
- {0x0376,0x0376,0x0376}, {0x0377,0x0377,0x0377},
- {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379},
- {0x037A,0x037A,0x037A}, {0x037B,0x037B,0x037B},
- {0x037C,0x037C,0x037C}, {0x037D,0x037D,0x037D},
- {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F},
- {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381},
- {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383},
- {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385},
- {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387},
- {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397},
- {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B},
- {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D},
- {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9},
- {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391},
- {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
- {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
- {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
- {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
- {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
- {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
- {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
- {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
- {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3},
- {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
- {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
- {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
- {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
- {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395},
- {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399},
- {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391},
- {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393},
- {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395},
- {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397},
- {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399},
- {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B},
- {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D},
- {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F},
- {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1},
- {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3},
- {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5},
- {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7},
- {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9},
- {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5},
- {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5},
- {0x038F,0x03CE,0x03A9}, {0x03CF,0x03CF,0x03CF},
- {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398},
- {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2},
- {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6},
- {0x03A0,0x03D6,0x03A0}, {0x03D7,0x03D7,0x03D7},
- {0x03D8,0x03D8,0x03D8}, {0x03D9,0x03D9,0x03D9},
- {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA},
- {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC},
- {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE},
- {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0},
- {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2},
- {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4},
- {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6},
- {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8},
- {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA},
- {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC},
- {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE},
- {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1},
- {0x03A3,0x03F2,0x03A3}, {0x03F3,0x03F3,0x03F3},
- {0x03F4,0x03F4,0x03F4}, {0x03F5,0x03F5,0x03F5},
- {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F7,0x03F7},
- {0x03F8,0x03F8,0x03F8}, {0x03F9,0x03F9,0x03F9},
- {0x03FA,0x03FA,0x03FA}, {0x03FB,0x03FB,0x03FB},
- {0x03FC,0x03FC,0x03FC}, {0x03FD,0x03FD,0x03FD},
- {0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF}
-};
-
-static MY_UNICASE_INFO plane04[]={
- {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
- {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
- {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
- {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
- {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
- {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
- {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
- {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
- {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
- {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
- {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
- {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
- {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
- {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
- {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
- {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
- {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
- {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
- {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
- {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
- {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
- {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
- {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
- {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
- {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411},
- {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413},
- {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415},
- {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417},
- {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419},
- {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B},
- {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D},
- {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F},
- {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421},
- {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423},
- {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425},
- {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427},
- {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429},
- {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B},
- {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D},
- {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F},
- {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
- {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
- {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
- {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406},
- {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409},
- {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B},
- {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418},
- {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F},
- {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460},
- {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462},
- {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464},
- {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466},
- {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468},
- {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A},
- {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C},
- {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E},
- {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470},
- {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472},
- {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474},
- {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474},
- {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478},
- {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A},
- {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C},
- {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E},
- {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480},
- {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483},
- {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485},
- {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487},
- {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489},
- {0x048A,0x048A,0x048A}, {0x048B,0x048B,0x048B},
- {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C},
- {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E},
- {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490},
- {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492},
- {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494},
- {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496},
- {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498},
- {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A},
- {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C},
- {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E},
- {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0},
- {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2},
- {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4},
- {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6},
- {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8},
- {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA},
- {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC},
- {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE},
- {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0},
- {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2},
- {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4},
- {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6},
- {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8},
- {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA},
- {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC},
- {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE},
- {0x04C0,0x04C0,0x04C0}, {0x04C1,0x04C2,0x0416},
- {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3},
- {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C5,0x04C5},
- {0x04C6,0x04C6,0x04C6}, {0x04C7,0x04C8,0x04C7},
- {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04C9,0x04C9},
- {0x04CA,0x04CA,0x04CA}, {0x04CB,0x04CC,0x04CB},
- {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CD,0x04CD},
- {0x04CE,0x04CE,0x04CE}, {0x04CF,0x04CF,0x04CF},
- {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410},
- {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410},
- {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4},
- {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415},
- {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8},
- {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8},
- {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416},
- {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417},
- {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0},
- {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418},
- {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418},
- {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E},
- {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8},
- {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8},
- {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D},
- {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423},
- {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423},
- {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423},
- {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427},
- {0x04F6,0x04F6,0x04F6}, {0x04F7,0x04F7,0x04F7},
- {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B},
- {0x04FA,0x04FA,0x04FA}, {0x04FB,0x04FB,0x04FB},
- {0x04FC,0x04FC,0x04FC}, {0x04FD,0x04FD,0x04FD},
- {0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF}
-};
-
-static MY_UNICASE_INFO plane05[]={
- {0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501},
- {0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503},
- {0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505},
- {0x0506,0x0506,0x0506}, {0x0507,0x0507,0x0507},
- {0x0508,0x0508,0x0508}, {0x0509,0x0509,0x0509},
- {0x050A,0x050A,0x050A}, {0x050B,0x050B,0x050B},
- {0x050C,0x050C,0x050C}, {0x050D,0x050D,0x050D},
- {0x050E,0x050E,0x050E}, {0x050F,0x050F,0x050F},
- {0x0510,0x0510,0x0510}, {0x0511,0x0511,0x0511},
- {0x0512,0x0512,0x0512}, {0x0513,0x0513,0x0513},
- {0x0514,0x0514,0x0514}, {0x0515,0x0515,0x0515},
- {0x0516,0x0516,0x0516}, {0x0517,0x0517,0x0517},
- {0x0518,0x0518,0x0518}, {0x0519,0x0519,0x0519},
- {0x051A,0x051A,0x051A}, {0x051B,0x051B,0x051B},
- {0x051C,0x051C,0x051C}, {0x051D,0x051D,0x051D},
- {0x051E,0x051E,0x051E}, {0x051F,0x051F,0x051F},
- {0x0520,0x0520,0x0520}, {0x0521,0x0521,0x0521},
- {0x0522,0x0522,0x0522}, {0x0523,0x0523,0x0523},
- {0x0524,0x0524,0x0524}, {0x0525,0x0525,0x0525},
- {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527},
- {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529},
- {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B},
- {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D},
- {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F},
- {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531},
- {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
- {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
- {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
- {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
- {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
- {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
- {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
- {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
- {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
- {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
- {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
- {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
- {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
- {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
- {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
- {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
- {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
- {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
- {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557},
- {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559},
- {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B},
- {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D},
- {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F},
- {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531},
- {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533},
- {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535},
- {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537},
- {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539},
- {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B},
- {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D},
- {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F},
- {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541},
- {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543},
- {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545},
- {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547},
- {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549},
- {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B},
- {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D},
- {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F},
- {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551},
- {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553},
- {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555},
- {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587},
- {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589},
- {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B},
- {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D},
- {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F},
- {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591},
- {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593},
- {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595},
- {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597},
- {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599},
- {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B},
- {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D},
- {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F},
- {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1},
- {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3},
- {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5},
- {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7},
- {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9},
- {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB},
- {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD},
- {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF},
- {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1},
- {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3},
- {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5},
- {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7},
- {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9},
- {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB},
- {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD},
- {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF},
- {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1},
- {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3},
- {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5},
- {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7},
- {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9},
- {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB},
- {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD},
- {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF},
- {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1},
- {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3},
- {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5},
- {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7},
- {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9},
- {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB},
- {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD},
- {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF},
- {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1},
- {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3},
- {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5},
- {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7},
- {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9},
- {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB},
- {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED},
- {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF},
- {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1},
- {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3},
- {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5},
- {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7},
- {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9},
- {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB},
- {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD},
- {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF}
-};
-
-static MY_UNICASE_INFO plane1E[]={
- {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041},
- {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042},
- {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042},
- {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042},
- {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043},
- {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044},
- {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044},
- {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044},
- {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044},
- {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044},
- {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045},
- {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045},
- {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045},
- {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045},
- {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045},
- {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046},
- {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047},
- {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048},
- {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048},
- {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048},
- {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048},
- {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048},
- {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049},
- {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049},
- {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B},
- {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B},
- {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B},
- {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C},
- {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C},
- {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C},
- {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C},
- {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D},
- {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D},
- {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D},
- {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E},
- {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E},
- {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E},
- {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E},
- {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F},
- {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F},
- {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F},
- {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F},
- {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050},
- {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050},
- {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052},
- {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052},
- {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052},
- {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052},
- {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053},
- {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053},
- {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053},
- {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053},
- {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053},
- {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054},
- {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054},
- {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054},
- {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054},
- {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055},
- {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055},
- {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055},
- {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055},
- {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055},
- {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056},
- {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056},
- {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057},
- {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057},
- {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057},
- {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057},
- {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057},
- {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058},
- {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058},
- {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059},
- {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A},
- {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A},
- {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A},
- {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054},
- {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059},
- {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053},
- {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D},
- {0x1E9E,0x1E9E,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F},
- {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041},
- {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041},
- {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041},
- {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041},
- {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041},
- {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041},
- {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041},
- {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041},
- {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041},
- {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041},
- {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041},
- {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041},
- {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045},
- {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045},
- {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045},
- {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045},
- {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045},
- {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045},
- {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045},
- {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045},
- {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049},
- {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049},
- {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F},
- {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F},
- {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F},
- {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F},
- {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F},
- {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F},
- {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F},
- {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F},
- {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F},
- {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F},
- {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F},
- {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F},
- {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055},
- {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055},
- {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055},
- {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055},
- {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055},
- {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055},
- {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055},
- {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059},
- {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059},
- {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059},
- {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059},
- {0x1EFA,0x1EFA,0x1EFA}, {0x1EFB,0x1EFB,0x1EFB},
- {0x1EFC,0x1EFC,0x1EFC}, {0x1EFD,0x1EFD,0x1EFD},
- {0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF}
-};
-
-static MY_UNICASE_INFO plane1F[]={
- {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
- {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
- {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
- {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
- {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
- {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
- {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
- {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391},
- {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
- {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
- {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
- {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17},
- {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395},
- {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395},
- {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395},
- {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F},
- {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
- {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
- {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
- {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
- {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397},
- {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397},
- {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397},
- {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397},
- {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
- {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
- {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
- {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
- {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399},
- {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399},
- {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399},
- {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399},
- {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
- {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
- {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
- {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47},
- {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F},
- {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F},
- {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F},
- {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F},
- {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5},
- {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5},
- {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5},
- {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5},
- {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5},
- {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5},
- {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5},
- {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5},
- {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
- {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
- {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
- {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
- {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9},
- {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9},
- {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9},
- {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9},
- {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
- {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
- {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
- {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
- {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
- {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
- {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
- {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F},
- {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
- {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
- {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
- {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
- {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391},
- {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391},
- {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391},
- {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391},
- {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
- {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
- {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
- {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
- {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397},
- {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397},
- {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397},
- {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397},
- {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
- {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
- {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
- {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
- {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9},
- {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9},
- {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9},
- {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9},
- {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
- {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391},
- {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5},
- {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391},
- {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391},
- {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB},
- {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD},
- {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF},
- {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1},
- {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397},
- {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5},
- {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397},
- {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9},
- {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB},
- {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD},
- {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF},
- {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
- {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3},
- {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5},
- {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399},
- {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399},
- {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB},
- {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD},
- {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF},
- {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
- {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3},
- {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1},
- {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5},
- {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5},
- {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB},
- {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED},
- {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF},
- {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1},
- {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9},
- {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5},
- {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9},
- {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9},
- {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB},
- {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD},
- {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF}
-};
-
-static MY_UNICASE_INFO plane21[]={
- {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101},
- {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103},
- {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105},
- {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107},
- {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109},
- {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B},
- {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D},
- {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F},
- {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111},
- {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113},
- {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115},
- {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117},
- {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119},
- {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B},
- {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D},
- {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F},
- {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121},
- {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123},
- {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125},
- {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127},
- {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129},
- {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B},
- {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D},
- {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F},
- {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131},
- {0x2132,0x2132,0x2132}, {0x2133,0x2133,0x2133},
- {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135},
- {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137},
- {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139},
- {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B},
- {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D},
- {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F},
- {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141},
- {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143},
- {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145},
- {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147},
- {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149},
- {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B},
- {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D},
- {0x214E,0x214E,0x214E}, {0x214F,0x214F,0x214F},
- {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151},
- {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153},
- {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155},
- {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157},
- {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159},
- {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B},
- {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D},
- {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F},
- {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
- {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
- {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
- {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
- {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
- {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
- {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
- {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
- {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161},
- {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163},
- {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165},
- {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167},
- {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169},
- {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B},
- {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D},
- {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F},
- {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181},
- {0x2182,0x2182,0x2182}, {0x2183,0x2183,0x2183},
- {0x2184,0x2184,0x2184}, {0x2185,0x2185,0x2185},
- {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187},
- {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189},
- {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B},
- {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D},
- {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F},
- {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191},
- {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193},
- {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195},
- {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197},
- {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199},
- {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B},
- {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D},
- {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F},
- {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1},
- {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3},
- {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5},
- {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7},
- {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9},
- {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB},
- {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD},
- {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF},
- {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1},
- {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3},
- {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5},
- {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7},
- {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9},
- {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB},
- {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD},
- {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF},
- {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1},
- {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3},
- {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5},
- {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7},
- {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9},
- {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB},
- {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD},
- {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF},
- {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1},
- {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3},
- {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5},
- {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7},
- {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9},
- {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB},
- {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD},
- {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF},
- {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1},
- {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3},
- {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5},
- {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7},
- {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9},
- {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB},
- {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED},
- {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF},
- {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1},
- {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3},
- {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5},
- {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7},
- {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9},
- {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB},
- {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD},
- {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF}
-};
-
-static MY_UNICASE_INFO plane24[]={
- {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401},
- {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403},
- {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405},
- {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407},
- {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409},
- {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B},
- {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D},
- {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F},
- {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411},
- {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413},
- {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415},
- {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417},
- {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419},
- {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B},
- {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D},
- {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F},
- {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421},
- {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423},
- {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425},
- {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427},
- {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429},
- {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B},
- {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D},
- {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F},
- {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431},
- {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433},
- {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435},
- {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437},
- {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439},
- {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B},
- {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D},
- {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F},
- {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441},
- {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443},
- {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445},
- {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447},
- {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449},
- {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B},
- {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D},
- {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F},
- {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451},
- {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453},
- {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455},
- {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457},
- {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459},
- {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B},
- {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D},
- {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F},
- {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461},
- {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463},
- {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465},
- {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467},
- {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469},
- {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B},
- {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D},
- {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F},
- {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471},
- {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473},
- {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475},
- {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477},
- {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479},
- {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B},
- {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D},
- {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F},
- {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481},
- {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483},
- {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485},
- {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487},
- {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489},
- {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B},
- {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D},
- {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F},
- {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491},
- {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493},
- {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495},
- {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497},
- {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499},
- {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B},
- {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D},
- {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F},
- {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1},
- {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3},
- {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5},
- {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7},
- {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9},
- {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB},
- {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD},
- {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF},
- {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1},
- {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3},
- {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5},
- {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
- {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
- {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
- {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
- {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
- {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
- {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
- {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
- {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
- {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
- {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
- {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
- {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
- {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7},
- {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9},
- {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB},
- {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD},
- {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF},
- {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1},
- {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3},
- {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5},
- {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7},
- {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9},
- {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB},
- {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD},
- {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF},
- {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB},
- {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED},
- {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF},
- {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1},
- {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3},
- {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5},
- {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7},
- {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9},
- {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB},
- {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD},
- {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF}
-};
-
-static MY_UNICASE_INFO planeFF[]={
- {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01},
- {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03},
- {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05},
- {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07},
- {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09},
- {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B},
- {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D},
- {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F},
- {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11},
- {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13},
- {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15},
- {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17},
- {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19},
- {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B},
- {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D},
- {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F},
- {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21},
- {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
- {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
- {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
- {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
- {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
- {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
- {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
- {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
- {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
- {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
- {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
- {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
- {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B},
- {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D},
- {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F},
- {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21},
- {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23},
- {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25},
- {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27},
- {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29},
- {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B},
- {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D},
- {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F},
- {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31},
- {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33},
- {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35},
- {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37},
- {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39},
- {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B},
- {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D},
- {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F},
- {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61},
- {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63},
- {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65},
- {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67},
- {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69},
- {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B},
- {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D},
- {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F},
- {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71},
- {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73},
- {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75},
- {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77},
- {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79},
- {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B},
- {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D},
- {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F},
- {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81},
- {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83},
- {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85},
- {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87},
- {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89},
- {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B},
- {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D},
- {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F},
- {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91},
- {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93},
- {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95},
- {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97},
- {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99},
- {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B},
- {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D},
- {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F},
- {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1},
- {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3},
- {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5},
- {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7},
- {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9},
- {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB},
- {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD},
- {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF},
- {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1},
- {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3},
- {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5},
- {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7},
- {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9},
- {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB},
- {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD},
- {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF},
- {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1},
- {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3},
- {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5},
- {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7},
- {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9},
- {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB},
- {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD},
- {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF},
- {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1},
- {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3},
- {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5},
- {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7},
- {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9},
- {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB},
- {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD},
- {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF},
- {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1},
- {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3},
- {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5},
- {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7},
- {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9},
- {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB},
- {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED},
- {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF},
- {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1},
- {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3},
- {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5},
- {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7},
- {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9},
- {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB},
- {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD},
- {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF}
-};
-
-MY_UNICASE_INFO *my_unicase_default[256]={
- plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
- NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
-
-};
-
-
-/*
- Turkish lower/upper mapping:
- 1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
- 0x0131 LATIN SMALL LETTER DOTLESS I
- 2. UPPER(0x0069 LATIN SMALL LETTER I) ->
- 0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
-*/
-
-static MY_UNICASE_INFO turk00[]=
-{
- {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
- {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
- {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
- {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007},
- {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009},
- {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B},
- {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D},
- {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F},
- {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011},
- {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013},
- {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015},
- {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017},
- {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019},
- {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B},
- {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D},
- {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F},
- {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021},
- {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023},
- {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025},
- {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027},
- {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029},
- {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B},
- {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D},
- {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F},
- {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031},
- {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033},
- {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035},
- {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037},
- {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039},
- {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B},
- {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D},
- {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F},
- {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041},
- {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
- {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
- {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
- {0x0048,0x0068,0x0048}, {0x0049,0x0131,0x0049},
- {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
- {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
- {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
- {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
- {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
- {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
- {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
- {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
- {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B},
- {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D},
- {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F},
- {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041},
- {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043},
- {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045},
- {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047},
- {0x0048,0x0068,0x0048}, {0x0130,0x0069,0x0049},
- {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B},
- {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D},
- {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F},
- {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051},
- {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053},
- {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055},
- {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057},
- {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059},
- {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B},
- {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D},
- {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F},
- {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081},
- {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083},
- {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085},
- {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087},
- {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089},
- {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B},
- {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D},
- {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F},
- {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091},
- {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093},
- {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095},
- {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097},
- {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099},
- {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B},
- {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D},
- {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F},
- {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1},
- {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3},
- {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5},
- {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7},
- {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9},
- {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB},
- {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD},
- {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF},
- {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1},
- {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3},
- {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C},
- {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7},
- {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9},
- {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB},
- {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD},
- {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF},
- {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
- {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
- {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
- {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
- {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
- {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
- {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
- {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
- {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
- {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
- {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
- {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7},
- {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
- {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
- {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
- {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x00DF},
- {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041},
- {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041},
- {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041},
- {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043},
- {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045},
- {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045},
- {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049},
- {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049},
- {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E},
- {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F},
- {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F},
- {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7},
- {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055},
- {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055},
- {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059},
- {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059}
-};
-
-
-
-MY_UNICASE_INFO *my_unicase_turkish[256]=
-{
- turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, plane1E, plane1F,
- NULL, plane21, NULL, NULL, plane24, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
-};
-
-
-static inline void
-my_tosort_unicode(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256)
- {
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
- }
- else
- {
- *wc= MY_CS_REPLACEMENT_CHARACTER;
- }
-}
-
-
-/*
-** Compare string against string with wildcard
-** This function is used in UTF8 and UCS2
-**
-** 0 if matched
-** -1 if not matched with wildcard
-** 1 if matched with wildcard
-*/
-
-int
-my_wildcmp_unicode(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many,
- MY_UNICASE_INFO **weights)
-{
- int result= -1; /* Not found, using wildcards */
- my_wc_t s_wc, w_wc;
- int scan;
- int (*mb_wc)(struct charset_info_st *, my_wc_t *,
- const uchar *, const uchar *);
- mb_wc= cs->cset->mb_wc;
-
- while (wildstr != wildend)
- {
- while (1)
- {
- my_bool escaped= 0;
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
-
- if (w_wc == (my_wc_t) w_many)
- {
- result= 1; /* Found an anchor char */
- break;
- }
-
- wildstr+= scan;
- if (w_wc == (my_wc_t) escape && wildstr < wildend)
- {
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
- wildstr+= scan;
- escaped= 1;
- }
-
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
- return 1;
- str+= scan;
-
- if (!escaped && w_wc == (my_wc_t) w_one)
- {
- result= 1; /* Found an anchor char */
- }
- else
- {
- if (weights)
- {
- my_tosort_unicode(weights, &s_wc);
- my_tosort_unicode(weights, &w_wc);
- }
- if (s_wc != w_wc)
- return 1; /* No match */
- }
- if (wildstr == wildend)
- return (str != str_end); /* Match if both are at end */
- }
-
-
- if (w_wc == (my_wc_t) w_many)
- { /* Found w_many */
-
- /* Remove any '%' and '_' from the wild search string */
- for ( ; wildstr != wildend ; )
- {
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
-
- if (w_wc == (my_wc_t)w_many)
- {
- wildstr+= scan;
- continue;
- }
-
- if (w_wc == (my_wc_t)w_one)
- {
- wildstr+= scan;
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <=0)
- return 1;
- str+= scan;
- continue;
- }
- break; /* Not a wild character */
- }
-
- if (wildstr == wildend)
- return 0; /* Ok if w_many is last */
-
- if (str == str_end)
- return -1;
-
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <=0)
- return 1;
- wildstr+= scan;
-
- if (w_wc == (my_wc_t)escape)
- {
- if (wildstr < wildend)
- {
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <=0)
- return 1;
- wildstr+= scan;
- }
- }
-
- while (1)
- {
- /* Skip until the first character from wildstr is found */
- while (str != str_end)
- {
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <=0)
- return 1;
- if (weights)
- {
- my_tosort_unicode(weights, &s_wc);
- my_tosort_unicode(weights, &w_wc);
- }
-
- if (s_wc == w_wc)
- break;
- str+= scan;
- }
- if (str == str_end)
- return -1;
-
- str+= scan;
- result= my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many,
- weights);
- if (result <= 0)
- return result;
- }
- }
- }
- return (str != str_end ? 1 : 0);
-}
-
-
-/*
- Store sorting weights using 2 bytes per character.
-
- This function is shared between
- - utf8mb3_general_ci, utf8_bin, ucs2_general_ci, ucs2_bin
- which support BMP only (U+0000..U+FFFF).
- - utf8mb4_general_ci, utf16_general_ci, utf32_general_ci,
- which map all supplementary characters to weight 0xFFFD.
-*/
-size_t
-my_strnxfrm_unicode(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- my_wc_t wc;
- int res;
- uchar *de= dst + dstlen;
- uchar *de_beg= de - 1;
- const uchar *se = src + srclen;
- MY_UNICASE_INFO **uni_plane= (cs->state & MY_CS_BINSORT) ?
- NULL : cs->caseinfo;
- LINT_INIT(wc);
- DBUG_ASSERT(src);
-
- while (dst < de_beg)
- {
- if ((res= cs->cset->mb_wc(cs,&wc, src, se)) <= 0)
- break;
- src+=res;
-
- if (uni_plane)
- my_tosort_unicode(uni_plane, &wc);
-
- *dst++= (uchar) (wc >> 8);
- if (dst < de)
- *dst++= (uchar) (wc & 0xFF);
- }
-
- while (dst < de_beg) /* Fill the tail with keys for space character */
- {
- *dst++= 0x00;
- *dst++= 0x20;
- }
-
- if (dst < de) /* Clear the last byte, if "dstlen" was an odd number */
- *dst= 0x00;
-
- return dstlen;
-}
-
-
-/*
- Store sorting weights using 3 bytes per character.
- This function is shared between utf8mb4_bin, utf16_bin, utf32_bin.
-*/
-size_t
-my_strnxfrm_unicode_full_bin(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- my_wc_t wc;
- uchar *de= dst + dstlen;
- uchar *de_beg= de - 2; /* The beginning of the last chunk */
- const uchar *se = src + srclen;
-
- LINT_INIT(wc);
- DBUG_ASSERT(src);
- DBUG_ASSERT(cs->state & MY_CS_BINSORT);
-
- while (dst < de_beg)
- {
- int res;
- if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0)
- break;
- src+= res;
- *dst++= (uchar) (wc >> 16);
- *dst++= (uchar) ((wc >> 8) & 0xFF);
- *dst++= (uchar) (wc & 0xFF);
- }
-
- while (dst < de_beg) /* Fill the tail with keys for space character */
- {
- *dst++= 0x00;
- *dst++= 0x00;
- *dst++= 0x20;
- }
-
- /* Clear the last one or two bytes, if "dstlen" was not divisible by 3 */
- if (dst < de)
- {
- *dst++= 0x00;
- if (dst < de)
- *dst= 0x00;
- }
-
- return dstlen;
-}
-
-
-size_t
-my_strnxfrmlen_unicode_full_bin(CHARSET_INFO *cs, size_t len)
-{
- return ((len + 3) / cs->mbmaxlen) * 3;
-}
-#endif /* HAVE_UNIDATA */
-
-
-#ifdef HAVE_CHARSET_utf8
-
-/*
- We consider bytes with code more than 127 as a letter.
- This garantees that word boundaries work fine with regular
- expressions. Note, there is no need to mark byte 255 as a
- letter, it is illegal byte in UTF8.
-*/
-static uchar ctype_utf8[] = {
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
-};
-
-/* The below are taken from usa7 implementation */
-
-static uchar to_lower_utf8[] = {
- 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, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-static uchar to_upper_utf8[] = {
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-static inline int bincmp(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se-s), tlen= (int) (te-t);
- int len=min(slen,tlen);
- int cmp= memcmp(s,t,len);
- return cmp ? cmp : slen-tlen;
-}
-
-
-static int my_utf8_uni(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t * pwc, const uchar *s, const uchar *e)
-{
- uchar c;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- c= s[0];
- if (c < 0x80)
- {
- *pwc = c;
- return 1;
- }
- else if (c < 0xc2)
- return MY_CS_ILSEQ;
- else if (c < 0xe0)
- {
- if (s+2 > e) /* We need 2 characters */
- return MY_CS_TOOSMALL2;
-
- if (!((s[1] ^ 0x80) < 0x40))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
- return 2;
- }
- else if (c < 0xf0)
- {
- if (s+3 > e) /* We need 3 characters */
- return MY_CS_TOOSMALL3;
-
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 &&
- (c >= 0xe1 || s[1] >= 0xa0)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
- return 3;
- }
-#ifdef UNICODE_32BIT
- else if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+4 > e) /* We need 4 characters */
- return MY_CS_TOOSMALL4;
-
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (s[3] ^ 0x80) < 0x40 &&
- (c >= 0xf1 || s[1] >= 0x90)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
-
- return 4;
- }
- else if (c < 0xfc && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+5 >e) /* We need 5 characters */
- return MY_CS_TOOSMALL5;
-
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (s[3] ^ 0x80) < 0x40 &&
- (s[4] ^ 0x80) < 0x40 &&
- (c >= 0xf9 || s[1] >= 0x88)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x03) << 24) |
- ((my_wc_t) (s[1] ^ 0x80) << 18) |
- ((my_wc_t) (s[2] ^ 0x80) << 12) |
- ((my_wc_t) (s[3] ^ 0x80) << 6) |
- (my_wc_t) (s[4] ^ 0x80);
- return 5;
- }
- else if (c < 0xfe && sizeof(my_wc_t)*8 >= 32)
- {
- if ( s+6 >e ) /* We need 6 characters */
- return MY_CS_TOOSMALL6;
-
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (s[3] ^ 0x80) < 0x40 &&
- (s[4] ^ 0x80) < 0x40 &&
- (s[5] ^ 0x80) < 0x40 &&
- (c >= 0xfd || s[1] >= 0x84)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x01) << 30)
- | ((my_wc_t) (s[1] ^ 0x80) << 24)
- | ((my_wc_t) (s[2] ^ 0x80) << 18)
- | ((my_wc_t) (s[3] ^ 0x80) << 12)
- | ((my_wc_t) (s[4] ^ 0x80) << 6)
- | (my_wc_t) (s[5] ^ 0x80);
- return 6;
- }
-#endif
- return MY_CS_ILSEQ;
-}
-
-
-/*
- The same as above, but without range check
- for example, for a null-terminated string
-*/
-static int my_utf8_uni_no_range(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t * pwc, const uchar *s)
-{
- uchar c;
-
- c= s[0];
- if (c < 0x80)
- {
- *pwc = c;
- return 1;
- }
-
- if (c < 0xc2)
- return MY_CS_ILSEQ;
-
- if (c < 0xe0)
- {
- if (!((s[1] ^ 0x80) < 0x40))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
- return 2;
- }
-
- if (c < 0xf0)
- {
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (c >= 0xe1 || s[1] >= 0xa0)))
- return MY_CS_ILSEQ;
-
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
- return 3;
- }
- return MY_CS_ILSEQ;
-}
-
-
-static int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *r, uchar *e)
-{
- int count;
-
- if (r >= e)
- return MY_CS_TOOSMALL;
-
- if (wc < 0x80)
- count = 1;
- else if (wc < 0x800)
- count = 2;
- else if (wc < 0x10000)
- count = 3;
-#ifdef UNICODE_32BIT
- else if (wc < 0x200000)
- count = 4;
- else if (wc < 0x4000000)
- count = 5;
- else if (wc <= 0x7fffffff)
- count = 6;
-#endif
- else return MY_CS_ILUNI;
-
- /*
- e is a character after the string r, not the last character of it.
- Because of it (r+count > e), not (r+count-1 >e )
- */
- if ( r+count > e )
- return MY_CS_TOOSMALLN(count);
-
- switch (count) {
- /* Fall through all cases!!! */
-#ifdef UNICODE_32BIT
- case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000;
- case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000;
- case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
-#endif
- case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
- case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
- case 1: r[0] = (uchar) wc;
- }
- return count;
-}
-
-
-/*
- The same as above, but without range check.
-*/
-static int my_uni_utf8_no_range(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *r)
-{
- int count;
-
- if (wc < 0x80)
- count= 1;
- else if (wc < 0x800)
- count= 2;
- else if (wc < 0x10000)
- count= 3;
- else
- return MY_CS_ILUNI;
-
- switch (count)
- {
- /* Fall through all cases!!! */
- case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800;
- case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0;
- case 1: r[0]= (uchar) wc;
- }
- return count;
-}
-
-
-static size_t my_caseup_utf8(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
-
- while ((src < srcend) &&
- (srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
- if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- return (size_t) (dst - dst0);
-}
-
-
-static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_wc_t wc;
- int res;
- const uchar *e=s+slen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- /*
- Remove end space. We have to do this to be able to compare
- 'A ' and 'A' as identical
- */
- while (e > s && e[-1] == ' ')
- e--;
-
- while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 )
- {
- int plane = (wc>>8) & 0xFF;
- wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
- n2[0]+=3;
- s+=res;
- }
-}
-
-
-static size_t my_caseup_str_utf8(CHARSET_INFO *cs, char *src)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *dst= src, *dst0= src;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(cs->caseup_multiply == 1);
-
- while (*src &&
- (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
- if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- *dst= '\0';
- return (size_t) (dst - dst0);
-}
-
-
-static size_t my_casedn_utf8(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
-
- while ((src < srcend) &&
- (srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
- if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- return (size_t) (dst - dst0);
-}
-
-
-static size_t my_casedn_str_utf8(CHARSET_INFO *cs, char *src)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *dst= src, *dst0= src;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(cs->casedn_multiply == 1);
-
- while (*src &&
- (srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
- {
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
- if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
-
- /*
- In rare cases lower string can be shorter than
- the original string, for example:
-
- "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE"
- (which is 0xC4B0 in utf8, i.e. two bytes)
-
- is converted into
-
- "U+0069 LATIN SMALL LETTER I"
- (which is 0x69 in utf8, i.e. one byte)
-
- So, we need to put '\0' terminator after converting.
- */
-
- *dst= '\0';
- return (size_t) (dst - dst0);
-}
-
-
-static int my_strnncoll_utf8(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc), t_wc;
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare byte by byte value */
- return bincmp(s, se, t, te);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-
-
-/*
- Compare strings, discarding end space
-
- SYNOPSIS
- my_strnncollsp_utf8()
- cs character set handler
- a First string to compare
- a_length Length of 'a'
- b Second string to compare
- b_length Length of 'b'
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- IMPLEMENTATION
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- RETURN
- < 0 a < b
- = 0 a == b
- > 0 a > b
-*/
-
-static int my_strnncollsp_utf8(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int s_res, t_res, res;
- my_wc_t UNINIT_VAR(s_wc),t_wc;
- const uchar *se= s+slen, *te= t+tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare byte by byte value */
- return bincmp(s, se, t, te);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
-
- slen= (size_t) (se-s);
- tlen= (size_t) (te-t);
- res= 0;
-
- if (slen != tlen)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
- /*
- This following loop uses the fact that in UTF-8
- all multibyte characters are greater than space,
- and all multibyte head characters are greater than
- space. It means if we meet a character greater
- than space, it always means that the longer string
- is greater. So we can reuse the same loop from the
- 8bit version, without having to process full multibute
- sequences.
- */
- for ( ; s < se; s++)
- {
- if (*s != ' ')
- return (*s < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-/*
- Compare 0-terminated UTF8 strings.
-
- SYNOPSIS
- my_strcasecmp_utf8()
- cs character set handler
- s First 0-terminated string to compare
- t Second 0-terminated string to compare
-
- IMPLEMENTATION
-
- RETURN
- - negative number if s < t
- - positive number if s > t
- - 0 is the strings are equal
-*/
-
-static
-int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- while (s[0] && t[0])
- {
- my_wc_t s_wc,t_wc;
-
- if ((uchar) s[0] < 128)
- {
- /*
- s[0] is between 0 and 127.
- It represents a single byte character.
- Convert it into weight according to collation.
- */
- s_wc= plane00[(uchar) s[0]].tolower;
- s++;
- }
- else
- {
- int plane, res;
-
- /*
- Scan a multibyte character.
-
- In the future it is worth to write a special version of my_utf8_uni()
- for 0-terminated strings which will not take in account length. Now
- we call the regular version of my_utf8_uni() with s+3 in the
- last argument. s+3 is enough to scan any multibyte sequence.
-
- Calling the regular version of my_utf8_uni is safe for 0-terminated
- strings: we will never lose the end of the string:
- If we have 0 character in the middle of a multibyte sequence,
- then my_utf8_uni will always return a negative number, so the
- loop with finish.
- */
-
- res= my_utf8_uni(cs,&s_wc, (const uchar*)s, (const uchar*) s + 3);
-
- /*
- In the case of wrong multibyte sequence we will
- call strcmp() for byte-to-byte comparison.
- */
- if (res <= 0)
- return strcmp(s, t);
- s+= res;
-
- /* Convert Unicode code into weight according to collation */
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].tolower : s_wc;
- }
-
-
- /* Do the same for the second string */
-
- if ((uchar) t[0] < 128)
- {
- /* Convert single byte character into weight */
- t_wc= plane00[(uchar) t[0]].tolower;
- t++;
- }
- else
- {
- int plane;
- int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3);
- if (res <= 0)
- return strcmp(s, t);
- t+= res;
-
- /* Convert code into weight */
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].tolower : t_wc;
- }
-
- /* Now we have two weights, let's compare them */
- if ( s_wc != t_wc )
- return ((int) s_wc) - ((int) t_wc);
- }
- return ((int)(uchar)s[0]) - ((int) (uchar) t[0]);
-}
-
-
-static
-int my_wildcmp_utf8(CHARSET_INFO *cs,
- const char *str,const char *str_end,
- const char *wildstr,const char *wildend,
- int escape, int w_one, int w_many)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
- escape,w_one,w_many,uni_plane);
-}
-
-
-static
-size_t my_strnxfrmlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
- size_t len)
-{
- return (len * 2 + 2) / 3;
-}
-
-
-static uint my_ismbchar_utf8(CHARSET_INFO *cs,const char *b, const char *e)
-{
- my_wc_t wc;
- int res= my_utf8_uni(cs,&wc, (const uchar*)b, (const uchar*)e);
- return (res>1) ? res : 0;
-}
-
-static uint my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
- uint c)
-{
- if (c < 0x80)
- return 1;
- else if (c < 0xc2)
- return 0; /* Illegal mb head */
- else if (c < 0xe0)
- return 2;
- else if (c < 0xf0)
- return 3;
-#ifdef UNICODE_32BIT
- else if (c < 0xf8)
- return 4;
- else if (c < 0xfc)
- return 5;
- else if (c < 0xfe)
- return 6;
-#endif
- return 0; /* Illegal mb head */;
-}
-
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_utf8,
- my_strnncollsp_utf8,
- my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
- my_like_range_mb,
- my_wildcmp_utf8,
- my_strcasecmp_utf8,
- my_instr_mb,
- my_hash_sort_utf8,
- my_propagate_complex
-};
-
-MY_CHARSET_HANDLER my_charset_utf8_handler=
-{
- NULL, /* init */
- my_ismbchar_utf8,
- my_mbcharlen_utf8,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_mb,
- my_lengthsp_8bit,
- my_numcells_mb,
- my_utf8_uni,
- my_uni_utf8,
- my_mb_ctype_mb,
- my_caseup_str_utf8,
- my_casedn_str_utf8,
- my_caseup_utf8,
- my_casedn_utf8,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-
-CHARSET_INFO my_charset_utf8_general_ci=
-{
- 33,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE, /* state */
- "utf8", /* cs name */
- "utf8_general_ci", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_utf8, /* ctype */
- to_lower_utf8, /* to_lower */
- to_upper_utf8, /* to_upper */
- to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_ci_handler
-};
-
-
-CHARSET_INFO my_charset_utf8_bin=
-{
- 83,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */
- "utf8", /* cs name */
- "utf8_bin", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_utf8, /* ctype */
- to_lower_utf8, /* to_lower */
- to_upper_utf8, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_mb_bin_handler
-};
-
-#ifdef HAVE_UTF8_GENERAL_CS
-
-/*
- * These functions bacically do the same as their original, except
- * that they return 0 only when two comparing unicode strings are
- * strictly the same in case-sensitive way. See "save_diff" local
- * variable to what they actually do.
- */
-
-static int my_strnncoll_utf8_cs(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t s_wc,t_wc;
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
- int save_diff = 0;
- int diff;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
-
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
-
- if ( save_diff == 0 )
- {
- save_diff = ((int)s_wc) - ((int)t_wc);
- }
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return ((int) s_wc) - ((int) t_wc);
- }
-
- s+=s_res;
- t+=t_res;
- }
- diff = ( (se-s) - (te-t) );
- return t_is_prefix ? t-te : ((diff == 0) ? save_diff : diff);
-}
-
-static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int s_res, t_res, res;
- my_wc_t s_wc, t_wc;
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- int save_diff= 0;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
-
- if ( save_diff == 0 )
- {
- save_diff = ((int)s_wc) - ((int)t_wc);
- }
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return ((int) s_wc) - ((int) t_wc);
- }
-
- s+=s_res;
- t+=t_res;
- }
-
- slen= se-s;
- tlen= te-t;
- res= 0;
-
- if (slen != tlen)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
- /*
- This following loop uses the fact that in UTF-8
- all multibyte characters are greater than space,
- and all multibyte head characters are greater than
- space. It means if we meet a character greater
- than space, it always means that the longer string
- is greater. So we can reuse the same loop from the
- 8bit version, without having to process full multibute
- sequences.
- */
- for ( ; s < se; s++)
- {
- if (*s != (uchar) ' ')
- return (*s < (uchar) ' ') ? -swap : swap;
- }
- }
- return save_diff;
-}
-
-static MY_COLLATION_HANDLER my_collation_cs_handler =
-{
- NULL, /* init */
- my_strnncoll_utf8_cs,
- my_strnncollsp_utf8_cs,
- my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
- my_like_range_simple,
- my_wildcmp_mb,
- my_strcasecmp_utf8,
- my_instr_mb,
- my_hash_sort_utf8,
- my_propagate_simple
-};
-
-CHARSET_INFO my_charset_utf8_general_cs=
-{
- 254,0,0, /* number */
- MY_CS_COMPILED|MY_CS_UNICODE, /* state */
- "utf8", /* cs name */
- "utf8_general_cs", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_utf8, /* ctype */
- to_lower_utf8, /* to_lower */
- to_upper_utf8, /* to_upper */
- to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 0, /* min_sort_char */
- 255, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8_handler,
- &my_collation_cs_handler
-};
-#endif /* Cybozu Hack */
-
-
-/*
- File system encoding components:
-
-Code range Pattern Number Used Unused Blocks
------------------------------------------------------------------------------
-00C0..017F [.][0..4][g..z] 5*20= 100 97 3 Latin1 Supplement + Ext A
-0370..03FF [.][5..9][g..z] 5*20= 100 88 12 Greek + Coptic
-0400..052F [.][g..z][0..6] 20*7= 140 140 137 Cyrillic
-0530..058F [.][g..z][7..8] 20*2= 40 38 2 Armenian
-2160..217F [.][g..z][9] 20*1= 20 16 4 Number Forms
-0180..02AF [.][g..z][a..k] 28*11=220 203 17 Latin Ext B + IPA
-1E00..0EFF [.][g..z][l..r] 20*7= 140 136 4 Latin Additional Extended
-1F00..1FFF [.][g..z][s..z] 20*8= 160 144 16 Greek Extended
-.... .... [.][a..f][g..z] 6*20= 120 0 120 RESERVED
-24B6..24E9 [.][@][a..z] 26 26 0 Enclosed Alphanumerics
-FF21..FF5A [.][a..z][@] 26 26 0 Full Width forms
-
-All other characters are encoded using five bytes:
-
-[.][0..9a..z][0..9a..z][0..9a..z][0..9a..z]
-
-*/
-
-
-static uint16 touni[5994]=
-{
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00C0,
- 0x00C1,0x00C2,0x00C3,0x00C4,0x00C5,0x00C6,0x00C7,0x00C8,
- 0x00C9,0x00CA,0x00CB,0x00CC,0x00CD,0x00CE,0x00CF,0x00D0,
- 0x00D1,0x00D2,0x00D3,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,
- 0x00E1,0x00E2,0x00E3,0x00E4,0x00E5,0x00E6,0x00E7,0x00E8,
- 0x00E9,0x00EA,0x00EB,0x00EC,0x00ED,0x00EE,0x00EF,0x00F0,
- 0x00F1,0x00F2,0x00F3,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00D4,
- 0x00D5,0x00D6,0x0000,0x00D8,0x00D9,0x00DA,0x00DB,0x00DC,
- 0x00DD,0x00DE,0x0178,0x0100,0x0102,0x0104,0x0106,0x0108,
- 0x010A,0x010C,0x010E,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F4,
- 0x00F5,0x00F6,0x00DF,0x00F8,0x00F9,0x00FA,0x00FB,0x00FC,
- 0x00FD,0x00FE,0x00FF,0x0101,0x0103,0x0105,0x0107,0x0109,
- 0x010B,0x010D,0x010F,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0110,
- 0x0112,0x0114,0x0116,0x0118,0x011A,0x011C,0x011E,0x0120,
- 0x0122,0x0124,0x0126,0x0128,0x012A,0x012C,0x012E,0x0000,
- 0x0132,0x0134,0x0136,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0111,
- 0x0113,0x0115,0x0117,0x0119,0x011B,0x011D,0x011F,0x0121,
- 0x0123,0x0125,0x0127,0x0129,0x012B,0x012D,0x012F,0x0131,
- 0x0133,0x0135,0x0137,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0139,0x013B,0x013D,0x013F,0x0141,0x0143,0x0145,0x0147,
- 0x0000,0x014A,0x014C,0x014E,0x0150,0x0152,0x0154,0x0156,
- 0x0158,0x015A,0x015C,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0138,
- 0x013A,0x013C,0x013E,0x0140,0x0142,0x0144,0x0146,0x0148,
- 0x0149,0x014B,0x014D,0x014F,0x0151,0x0153,0x0155,0x0157,
- 0x0159,0x015B,0x015D,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015E,
- 0x0160,0x0162,0x0164,0x0166,0x0168,0x016A,0x016C,0x016E,
- 0x0170,0x0172,0x0174,0x0176,0x0179,0x017B,0x017D,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x015F,
- 0x0161,0x0163,0x0165,0x0167,0x0169,0x016B,0x016D,0x016F,
- 0x0171,0x0173,0x0175,0x0177,0x017A,0x017C,0x017E,0x017F,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0390,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0386,
- 0x0388,0x0389,0x038A,0x0000,0x0391,0x0000,0x0393,0x0394,
- 0x0395,0x0396,0x0397,0x0000,0x0399,0x0000,0x039B,0x039C,
- 0x039D,0x039E,0x039F,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03AC,
- 0x03AD,0x03AE,0x03AF,0x03B0,0x03B1,0x03B2,0x03B3,0x03B4,
- 0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,0x03BB,0x03BC,
- 0x03BD,0x03BE,0x03BF,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x03A1,0x0000,0x0000,0x03A4,0x03A5,0x0000,0x03A7,0x03A8,
- 0x03A9,0x03AA,0x03AB,0x038C,0x038E,0x038F,0x0000,0x0392,
- 0x0398,0x03D2,0x03D3,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03C0,
- 0x03C1,0x03C2,0x03C3,0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,
- 0x03C9,0x03CA,0x03CB,0x03CC,0x03CD,0x03CE,0x0000,0x03D0,
- 0x03D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03D4,
- 0x03A6,0x03A0,0x0000,0x0000,0x03DA,0x03DC,0x03DE,0x03E0,
- 0x03E2,0x03E4,0x03E6,0x03E8,0x03EA,0x03EC,0x03EE,0x039A,
- 0x0000,0x03A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x03D5,0x03D6,0x03D7,0x03D9,0x03DB,0x03DD,0x03DF,0x03E1,
- 0x03E3,0x03E5,0x03E7,0x03E9,0x03EB,0x03ED,0x03EF,0x03F0,
- 0x03F1,0x03F2,0x03F3,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x03FD,0x03FE,0x03FF,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x03F5,
- 0x03F6,0x03F8,0x03FB,0x03FC,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x24B6,0x24B7,0x24B8,0x24B9,0x24BA,0x24BB,0x24BC,
- 0x24BD,0x24BE,0x24BF,0x24C0,0x24C1,0x24C2,0x24C3,0x24C4,
- 0x24C5,0x24C6,0x24C7,0x24C8,0x24C9,0x24CA,0x24CB,0x24CC,
- 0x24CD,0x24CE,0x24CF,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x24D0,0x24D1,0x24D2,0x24D3,0x24D4,0x24D5,0x24D6,
- 0x24D7,0x24D8,0x24D9,0x24DA,0x24DB,0x24DC,0x24DD,0x24DE,
- 0x24DF,0x24E0,0x24E1,0x24E2,0x24E3,0x24E4,0x24E5,0x24E6,
- 0x24E7,0x24E8,0x24E9,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0410,0x0424,0x0408,0x0478,0x04A6,0x04CD,0x04F4,0x0000,
- 0x0544,0x2160,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x01B3,0x01DE,0x0208,0x0230,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E00,0x1E28,0x1E50,0x1E78,
- 0x1E60,0x1EBE,0x1EE6,0x1F08,0x1F2A,0x0000,0x1F6C,0x1F88,
- 0x1FAC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0411,0x0425,0x0409,0x047A,0x04A8,0x0000,0x04F6,0x0531,
- 0x0545,0x2161,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0182,0x01B5,0x01E0,0x020A,0x0232,0x0000,0x0000,
- 0x019D,0x0000,0x0000,0x0000,0x1E02,0x1E2A,0x1E52,0x1E7A,
- 0x0000,0x1EC0,0x1EE8,0x1F09,0x1F2B,0x0000,0x1F6D,0x1F89,
- 0x1FAD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0412,0x0426,0x040A,0x047C,0x04AA,0x04D0,0x04F8,0x0532,
- 0x0546,0x2162,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0184,0x01B8,0x01E2,0x020C,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E04,0x1E2C,0x1E54,0x1E7C,
- 0x0000,0x1EC2,0x1EEA,0x1F0A,0x1F2C,0x0000,0x1F6E,0x1F8A,
- 0x1FAE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0413,0x0427,0x040B,0x047E,0x04AC,0x04D2,0x0000,0x0533,
- 0x0547,0x2163,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0187,0x0000,0x01E4,0x020E,0x0000,0x0000,0x0193,
- 0x0000,0x01AE,0x0000,0x0000,0x1E06,0x1E2E,0x1E56,0x1E7E,
- 0x0000,0x1EC4,0x1EEC,0x1F0B,0x1F2D,0x0000,0x1F6F,0x1F8B,
- 0x1FAF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0414,0x0428,0x040C,0x0480,0x04AE,0x04D4,0x0000,0x0534,
- 0x0548,0x2164,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x018B,0x0000,0x01E6,0x0210,0x0000,0x0000,0x0000,
- 0x019F,0x0000,0x0000,0x0000,0x1E08,0x1E30,0x1E58,0x1E80,
- 0x0000,0x1EC6,0x1EEE,0x1F0C,0x1F2E,0x0000,0x1FBA,0x1F8C,
- 0x1FB8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0415,0x0429,0x040D,0x0000,0x04B0,0x04D6,0x0000,0x0535,
- 0x0549,0x2165,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x01E8,0x0212,0x0000,0x0000,0x0000,
- 0x0000,0x01B1,0x0000,0x0000,0x1E0A,0x1E32,0x1E5A,0x1E82,
- 0x1EA0,0x1EC8,0x1EF0,0x1F0D,0x1F2F,0x1F59,0x1FBB,0x1F8D,
- 0x1FB9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0416,0x042A,0x040E,0x048A,0x04B2,0x04D8,0x0000,0x0536,
- 0x054A,0x2166,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0191,0x0000,0x01EA,0x0214,0x0000,0x0000,0x0194,
- 0x0000,0x01B2,0x0000,0x0000,0x1E0C,0x1E34,0x1E5C,0x1E84,
- 0x1EA2,0x1ECA,0x1EF2,0x1F0E,0x1F38,0x0000,0x1FC8,0x1F8E,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0417,0x042B,0x040F,0x048C,0x04B4,0x04DA,0x0000,0x0537,
- 0x054B,0x2167,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01F6,0x01BC,0x01EC,0x0216,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E0E,0x1E36,0x1E5E,0x1E86,
- 0x1EA4,0x1ECC,0x1EF4,0x1F0F,0x1F39,0x1F5B,0x1FC9,0x1F8F,
- 0x1FBC,0x1FE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0418,0x042C,0x0460,0x048E,0x04B6,0x04DC,0x0000,0x0538,
- 0x054C,0x2168,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0198,0x01C4,0x01EE,0x0218,0x023A,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E10,0x1E38,0x0000,0x1E88,
- 0x1EA6,0x1ECE,0x1EF6,0x1F18,0x1F3A,0x0000,0x1FCA,0x1F98,
- 0x0000,0x1FE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0419,0x042D,0x0462,0x0490,0x04B8,0x04DE,0x0500,0x0539,
- 0x054D,0x2169,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x023D,0x01C7,0x0000,0x021A,0x023B,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E12,0x1E3A,0x1E62,0x1E8A,
- 0x1EA8,0x1ED0,0x1EF8,0x1F19,0x1F3B,0x1F5D,0x1FCB,0x1F99,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041A,0x042E,0x0464,0x0492,0x04BA,0x04E0,0x0502,0x053A,
- 0x054E,0x216A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x01CA,0x01F1,0x021C,0x023E,0x0181,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E14,0x1E3C,0x1E64,0x1E8C,
- 0x1EAA,0x1ED2,0x0000,0x1F1A,0x1F3C,0x0000,0x1FDA,0x1F9A,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041B,0x042F,0x0466,0x0494,0x04BC,0x04E2,0x0504,0x053B,
- 0x054F,0x216B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0220,0x01CD,0x01F4,0x021E,0x0000,0x0186,0x0197,
- 0x0000,0x0000,0x0000,0x0000,0x1E16,0x1E3E,0x1E66,0x1E8E,
- 0x1EAC,0x1ED4,0x0000,0x1F1B,0x1F3D,0x1F5F,0x1FDB,0x1F9B,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041C,0x0400,0x0468,0x0496,0x04BE,0x04E4,0x0506,0x053C,
- 0x0550,0x216C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A0,0x01CF,0x01F8,0x0000,0x0000,0x0000,0x0196,
- 0x0000,0x0000,0x0000,0x0000,0x1E18,0x1E40,0x1E68,0x1E90,
- 0x1EAE,0x1ED6,0x0000,0x1F1C,0x1F3E,0x0000,0x1FF8,0x1F9C,
- 0x0000,0x1FEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041D,0x0401,0x046A,0x0498,0x04C0,0x04E6,0x0508,0x053D,
- 0x0551,0x216D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A2,0x01D1,0x01FA,0x0222,0x0000,0x0189,0x0000,
- 0x0000,0x01B7,0x0000,0x0000,0x1E1A,0x1E42,0x1E6A,0x1E92,
- 0x1EB0,0x1ED8,0x0000,0x1F1D,0x1F3F,0x0000,0x1FF9,0x1F9D,
- 0x1FCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041E,0x0402,0x046C,0x049A,0x04C1,0x04E8,0x050A,0x053E,
- 0x0552,0x216E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A4,0x01D3,0x01FC,0x0224,0x0000,0x018A,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E1C,0x1E44,0x1E6C,0x1E94,
- 0x1EB2,0x1EDA,0x0000,0x0000,0x1F48,0x0000,0x1FEA,0x1F9E,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x041F,0x0403,0x046E,0x049C,0x04C3,0x04EA,0x050C,0x053F,
- 0x0553,0x216F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A7,0x01D5,0x01FE,0x0226,0x0000,0x0000,0x0000,
- 0x01A6,0x0241,0x0000,0x0000,0x1E1E,0x1E46,0x1E6E,0x0000,
- 0x1EB4,0x1EDC,0x0000,0x0000,0x1F49,0x0000,0x1FEB,0x1F9F,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0420,0x0404,0x0470,0x049E,0x04C5,0x04EC,0x050E,0x0540,
- 0x0554,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x01D7,0x0200,0x0228,0x0000,0x018F,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E20,0x1E48,0x1E70,0x0000,
- 0x1EB6,0x1EDE,0x0000,0x0000,0x1F4A,0x1F68,0x1FFA,0x1FA8,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0421,0x0405,0x0472,0x04A0,0x04C7,0x04EE,0x0000,0x0541,
- 0x0555,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x01D9,0x0202,0x022A,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E22,0x1E4A,0x1E72,0x0000,
- 0x1EB8,0x1EE0,0x0000,0x0000,0x1F4B,0x1F69,0x1FFB,0x1FA9,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0422,0x0406,0x0474,0x04A2,0x04C9,0x04F0,0x0000,0x0542,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01AC,0x01DB,0x0204,0x022C,0x0000,0x0190,0x019C,
- 0x01A9,0x0000,0x0000,0x0000,0x1E24,0x1E4C,0x1E74,0x0000,
- 0x1EBA,0x1EE2,0x0000,0x1F28,0x1F4C,0x1F6A,0x0000,0x1FAA,
- 0x1FD8,0x1FFC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0423,0x0407,0x0476,0x04A4,0x04CB,0x04F2,0x0000,0x0543,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01AF,0x018E,0x0206,0x022E,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x1E26,0x1E4E,0x1E76,0x0000,
- 0x1EBC,0x1EE4,0x0000,0x1F29,0x1F4D,0x1F6B,0x0000,0x1FAB,
- 0x1FD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0430,0x0444,0x0458,0x0479,0x04A7,0x04CE,0x04F5,0x0000,
- 0x0574,0x2170,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0180,0x01B4,0x01DF,0x0209,0x0231,0x0000,0x025D,
- 0x0271,0x0285,0x0299,0x02AD,0x1E01,0x1E29,0x1E51,0x1E79,
- 0x1E9B,0x1EBF,0x1EE7,0x1F00,0x1F22,0x0000,0x1F64,0x1F80,
- 0x1FA4,0x1FD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0431,0x0445,0x0459,0x047B,0x04A9,0x0000,0x04F7,0x0561,
- 0x0575,0x2171,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0183,0x01B6,0x01E1,0x020B,0x0233,0x0000,0x025E,
- 0x0272,0x0286,0x029A,0x02AE,0x1E03,0x1E2B,0x1E53,0x1E7B,
- 0x0000,0x1EC1,0x1EE9,0x1F01,0x1F23,0x0000,0x1F65,0x1F81,
- 0x1FA5,0x1FD3,0x1FF6,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0432,0x0446,0x045A,0x047D,0x04AB,0x04D1,0x04F9,0x0562,
- 0x0576,0x2172,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0185,0x01B9,0x01E3,0x020D,0x0234,0x0000,0x025F,
- 0x0273,0x0287,0x029B,0x02AF,0x1E05,0x1E2D,0x1E55,0x1E7D,
- 0x0000,0x1EC3,0x1EEB,0x1F02,0x1F24,0x0000,0x1F66,0x1F82,
- 0x1FA6,0x0000,0x1FF7,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0433,0x0447,0x045B,0x047F,0x04AD,0x04D3,0x0000,0x0563,
- 0x0577,0x2173,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0188,0x01BA,0x01E5,0x020F,0x0235,0x0000,0x0260,
- 0x0274,0x0288,0x029C,0x0000,0x1E07,0x1E2F,0x1E57,0x1E7F,
- 0x0000,0x1EC5,0x1EED,0x1F03,0x1F25,0x0000,0x1F67,0x1F83,
- 0x1FA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0434,0x0448,0x045C,0x0481,0x04AF,0x04D5,0x0000,0x0564,
- 0x0578,0x2174,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x018C,0x01BB,0x01E7,0x0211,0x0236,0x0000,0x0261,
- 0x0275,0x0289,0x029D,0x0000,0x1E09,0x1E31,0x1E59,0x1E81,
- 0x0000,0x1EC7,0x1EEF,0x1F04,0x1F26,0x1F50,0x1F70,0x1F84,
- 0x1FB0,0x1FD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0435,0x0449,0x045D,0x0000,0x04B1,0x04D7,0x0000,0x0565,
- 0x0579,0x2175,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x018D,0x0000,0x01E9,0x0213,0x0237,0x0000,0x0262,
- 0x0276,0x028A,0x029E,0x0000,0x1E0B,0x1E33,0x1E5B,0x1E83,
- 0x1EA1,0x1EC9,0x1EF1,0x1F05,0x1F27,0x1F51,0x1F71,0x1F85,
- 0x1FB1,0x1FD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0436,0x044A,0x045E,0x048B,0x04B3,0x04D9,0x0000,0x0566,
- 0x057A,0x2176,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0192,0x01BE,0x01EB,0x0215,0x0238,0x0000,0x0263,
- 0x0277,0x028B,0x029F,0x0000,0x1E0D,0x1E35,0x1E5D,0x1E85,
- 0x1EA3,0x1ECB,0x1EF3,0x1F06,0x1F30,0x1F52,0x1F72,0x1F86,
- 0x1FB2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0437,0x044B,0x045F,0x048D,0x04B5,0x04DB,0x0000,0x0567,
- 0x057B,0x2177,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0195,0x01BD,0x01ED,0x0217,0x0239,0x0250,0x0264,
- 0x0278,0x028C,0x02A0,0x0000,0x1E0F,0x1E37,0x1E5F,0x1E87,
- 0x1EA5,0x1ECD,0x1EF5,0x1F07,0x1F31,0x1F53,0x1F73,0x1F87,
- 0x1FB3,0x1FE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0438,0x044C,0x0461,0x048F,0x04B7,0x04DD,0x0000,0x0568,
- 0x057C,0x2178,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0199,0x01C6,0x01EF,0x0219,0x0000,0x0251,0x0265,
- 0x0279,0x028D,0x02A1,0x0000,0x1E11,0x1E39,0x1E61,0x1E89,
- 0x1EA7,0x1ECF,0x1EF7,0x1F10,0x1F32,0x1F54,0x1F74,0x1F90,
- 0x1FB4,0x1FE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0439,0x044D,0x0463,0x0491,0x04B9,0x04DF,0x0501,0x0569,
- 0x057D,0x2179,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF50,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x019A,0x01C9,0x01F0,0x021B,0x023C,0x0252,0x0266,
- 0x027A,0x028E,0x02A2,0x0000,0x1E13,0x1E3B,0x1E63,0x1E8B,
- 0x1EA9,0x1ED1,0x1EF9,0x1F11,0x1F33,0x1F55,0x1F75,0x1F91,
- 0x0000,0x1FE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043A,0x044E,0x0465,0x0493,0x04BB,0x04E1,0x0503,0x056A,
- 0x057E,0x217A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF51,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x019B,0x01CC,0x01F3,0x021D,0x0000,0x0253,0x0267,
- 0x027B,0x028F,0x02A3,0x0000,0x1E15,0x1E3D,0x1E65,0x1E8D,
- 0x1EAB,0x1ED3,0x0000,0x1F12,0x1F34,0x1F56,0x1F76,0x1F92,
- 0x1FB6,0x1FE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043B,0x044F,0x0467,0x0495,0x04BD,0x04E3,0x0505,0x056B,
- 0x057F,0x217B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF52,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x019E,0x01CE,0x01F5,0x021F,0x023F,0x0254,0x0268,
- 0x027C,0x0290,0x02A4,0x0000,0x1E17,0x1E3F,0x1E67,0x1E8F,
- 0x1EAD,0x1ED5,0x0000,0x1F13,0x1F35,0x1F57,0x1F77,0x1F93,
- 0x1FB7,0x1FE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043C,0x0450,0x0469,0x0497,0x04BF,0x04E5,0x0507,0x056C,
- 0x0580,0x217C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF53,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A1,0x01D0,0x01F9,0x0221,0x0240,0x0255,0x0269,
- 0x027D,0x0291,0x02A5,0x0000,0x1E19,0x1E41,0x1E69,0x1E91,
- 0x1EAF,0x1ED7,0x0000,0x1F14,0x1F36,0x0000,0x1F78,0x1F94,
- 0x1FC2,0x1FE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043D,0x0451,0x046B,0x0499,0x0000,0x04E7,0x0509,0x056D,
- 0x0581,0x217D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF54,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A3,0x01D2,0x01FB,0x0223,0x0000,0x0256,0x026A,
- 0x027E,0x0292,0x02A6,0x0000,0x1E1B,0x1E43,0x1E6B,0x1E93,
- 0x1EB1,0x1ED9,0x0000,0x1F15,0x1F37,0x0000,0x1F79,0x1F95,
- 0x1FC3,0x1FE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043E,0x0452,0x046D,0x049B,0x04C2,0x04E9,0x050B,0x056E,
- 0x0582,0x217E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF55,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A5,0x01D4,0x01FD,0x0225,0x0000,0x0257,0x026B,
- 0x027F,0x0293,0x02A7,0x0000,0x1E1D,0x1E45,0x1E6D,0x1E95,
- 0x1EB3,0x1EDB,0x0000,0x0000,0x1F40,0x0000,0x1F7A,0x1F96,
- 0x1FC4,0x1FE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x043F,0x0453,0x046F,0x049D,0x04C4,0x04EB,0x050D,0x056F,
- 0x0583,0x217F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF56,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01A8,0x01D6,0x01FF,0x0227,0x0000,0x0258,0x026C,
- 0x0280,0x0294,0x02A8,0x0000,0x1E1F,0x1E47,0x1E6F,0x1E96,
- 0x1EB5,0x1EDD,0x0000,0x0000,0x1F41,0x0000,0x1F7B,0x1F97,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0440,0x0454,0x0471,0x049F,0x04C6,0x04ED,0x050F,0x0570,
- 0x0584,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF57,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01AA,0x01D8,0x0201,0x0229,0x0000,0x0259,0x026D,
- 0x0281,0x0295,0x02A9,0x0000,0x1E21,0x1E49,0x1E71,0x1E97,
- 0x1EB7,0x1EDF,0x0000,0x0000,0x1F42,0x1F60,0x1F7C,0x1FA0,
- 0x1FC6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0441,0x0455,0x0473,0x04A1,0x04C8,0x04EF,0x0000,0x0571,
- 0x0585,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF58,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01AB,0x01DA,0x0203,0x022B,0x0000,0x025A,0x026E,
- 0x0282,0x0296,0x02AA,0x0000,0x1E23,0x1E4B,0x1E73,0x1E98,
- 0x1EB9,0x1EE1,0x0000,0x0000,0x1F43,0x1F61,0x1F7D,0x1FA1,
- 0x1FC7,0x1FF2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0442,0x0456,0x0475,0x04A3,0x04CA,0x04F1,0x0000,0x0572,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF59,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01AD,0x01DC,0x0205,0x022D,0x0000,0x025B,0x026F,
- 0x0283,0x0297,0x02AB,0x0000,0x1E25,0x1E4D,0x1E75,0x1E99,
- 0x1EBB,0x1EE3,0x0000,0x1F20,0x1F44,0x1F62,0x0000,0x1FA2,
- 0x1FD0,0x1FF3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0443,0x0457,0x0477,0x04A5,0x04CC,0x04F3,0x0000,0x0573,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0xFF5A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x01B0,0x01DD,0x0207,0x022F,0x0000,0x025C,0x0270,
- 0x0284,0x0298,0x02AC,0x0000,0x1E27,0x1E4F,0x1E77,0x1E9A,
- 0x1EBD,0x1EE5,0x0000,0x1F21,0x1F45,0x1F63,0x0000,0x1FA3,
- 0x1FD1,0x1FF4
-};
-
-
-/* 00C0-05FF */
-static uint16 uni_0C00_05FF[1344]=
-{
- 0x0017,0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,
- 0x001F,0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,
- 0x0027,0x0028,0x0029,0x002A,0x0067,0x0068,0x0069,0x0000,
- 0x006B,0x006C,0x006D,0x006E,0x006F,0x0070,0x0071,0x008A,
- 0x0037,0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,
- 0x003F,0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,
- 0x0047,0x0048,0x0049,0x004A,0x0087,0x0088,0x0089,0x0000,
- 0x008B,0x008C,0x008D,0x008E,0x008F,0x0090,0x0091,0x0092,
- 0x0073,0x0093,0x0074,0x0094,0x0075,0x0095,0x0076,0x0096,
- 0x0077,0x0097,0x0078,0x0098,0x0079,0x0099,0x007A,0x009A,
- 0x00B7,0x00D7,0x00B8,0x00D8,0x00B9,0x00D9,0x00BA,0x00DA,
- 0x00BB,0x00DB,0x00BC,0x00DC,0x00BD,0x00DD,0x00BE,0x00DE,
- 0x00BF,0x00DF,0x00C0,0x00E0,0x00C1,0x00E1,0x00C2,0x00E2,
- 0x00C3,0x00E3,0x00C4,0x00E4,0x00C5,0x00E5,0x00C6,0x00E6,
- 0x0000,0x00E7,0x00C8,0x00E8,0x00C9,0x00E9,0x00CA,0x00EA,
- 0x0127,0x0108,0x0128,0x0109,0x0129,0x010A,0x012A,0x010B,
- 0x012B,0x010C,0x012C,0x010D,0x012D,0x010E,0x012E,0x010F,
- 0x012F,0x0130,0x0111,0x0131,0x0112,0x0132,0x0113,0x0133,
- 0x0114,0x0134,0x0115,0x0135,0x0116,0x0136,0x0117,0x0137,
- 0x0118,0x0138,0x0119,0x0139,0x011A,0x013A,0x0157,0x0177,
- 0x0158,0x0178,0x0159,0x0179,0x015A,0x017A,0x015B,0x017B,
- 0x015C,0x017C,0x015D,0x017D,0x015E,0x017E,0x015F,0x017F,
- 0x0160,0x0180,0x0161,0x0181,0x0162,0x0182,0x0163,0x0183,
- 0x0072,0x0164,0x0184,0x0165,0x0185,0x0166,0x0186,0x0187,
- 0x1161,0x0A86,0x07B1,0x11B1,0x0801,0x1201,0x0AD6,0x0851,
- 0x1251,0x0B76,0x0BC6,0x08A1,0x12A1,0x12F1,0x0D52,0x0C66,
- 0x0D06,0x0941,0x1341,0x0857,0x0947,0x1391,0x0B27,0x0AD7,
- 0x09E1,0x13E1,0x1431,0x1481,0x0D07,0x07B8,0x14D1,0x08A8,
- 0x0B21,0x1521,0x0B71,0x1571,0x0BC1,0x15C1,0x0C18,0x0C11,
- 0x1611,0x0D08,0x1661,0x16B1,0x0D01,0x1701,0x0859,0x0D51,
- 0x1751,0x08F9,0x0949,0x0762,0x1162,0x07B2,0x11B2,0x0B79,
- 0x0802,0x1202,0x1252,0x12A2,0x0992,0x1392,0x1342,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x09E2,0x0000,0x13E2,0x0A32,
- 0x0000,0x1432,0x0A82,0x0000,0x1482,0x0AD2,0x14D2,0x0B22,
- 0x1522,0x0B72,0x1572,0x0BC2,0x15C2,0x0C12,0x1612,0x0C62,
- 0x1662,0x0CB2,0x16B2,0x0D02,0x1702,0x1752,0x0763,0x1163,
- 0x07B3,0x11B3,0x0803,0x1203,0x0853,0x1253,0x08A3,0x12A3,
- 0x08F3,0x12F3,0x0943,0x1343,0x0993,0x1393,0x09E3,0x13E3,
- 0x1433,0x0A83,0x0000,0x1483,0x0AD3,0x14D3,0x0991,0x0000,
- 0x0B23,0x1523,0x0B73,0x1573,0x0BC3,0x15C3,0x0C13,0x1613,
- 0x0C63,0x1663,0x0CB3,0x16B3,0x0D03,0x1703,0x0D53,0x1753,
- 0x0764,0x1164,0x07B4,0x11B4,0x0804,0x1204,0x0854,0x1254,
- 0x08A4,0x12A4,0x08F4,0x12F4,0x0944,0x1344,0x0994,0x1394,
- 0x09E4,0x13E4,0x0A34,0x1434,0x0A84,0x1484,0x0AD4,0x14D4,
- 0x0AD1,0x1524,0x0B74,0x1574,0x0BC4,0x15C4,0x0C14,0x1614,
- 0x0C64,0x1664,0x0CB4,0x16B4,0x0D04,0x1704,0x0D54,0x1754,
- 0x0765,0x1165,0x07B5,0x11B5,0x1205,0x1255,0x12A5,0x12F5,
- 0x1345,0x1395,0x09E5,0x0A35,0x1435,0x0A31,0x0A85,0x14D5,
- 0x1525,0x0C19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x1396,0x13E6,0x1436,0x1486,0x14D6,0x1526,0x1576,0x15C6,
- 0x1616,0x1666,0x16B6,0x1706,0x1756,0x1167,0x11B7,0x1207,
- 0x1257,0x12A7,0x12F7,0x1347,0x1397,0x13E7,0x1437,0x1487,
- 0x14D7,0x1527,0x1577,0x15C7,0x1617,0x1667,0x16B7,0x1707,
- 0x1757,0x1168,0x11B8,0x1208,0x1258,0x12A8,0x12F8,0x1348,
- 0x1398,0x13E8,0x1438,0x1488,0x14D8,0x1528,0x1578,0x15C8,
- 0x1618,0x1668,0x16B8,0x1708,0x1758,0x1169,0x11B9,0x1209,
- 0x1259,0x12A9,0x12F9,0x1349,0x1399,0x13E9,0x1439,0x1489,
- 0x14D9,0x1529,0x1579,0x15C9,0x1619,0x1669,0x16B9,0x1709,
- 0x1759,0x116A,0x11BA,0x120A,0x125A,0x12AA,0x12FA,0x134A,
- 0x139A,0x13EA,0x143A,0x148A,0x14DA,0x152A,0x157A,0x15CA,
- 0x161A,0x166A,0x16BA,0x170A,0x175A,0x116B,0x11BB,0x120B,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01F7,0x0000,
- 0x01F8,0x01F9,0x01FA,0x0000,0x0253,0x0000,0x0254,0x0255,
- 0x01D9,0x01FC,0x0257,0x01FE,0x01FF,0x0200,0x0201,0x0202,
- 0x0258,0x0204,0x02A7,0x0206,0x0207,0x0208,0x0209,0x020A,
- 0x0299,0x0248,0x0000,0x02A9,0x024B,0x024C,0x0298,0x024E,
- 0x024F,0x0250,0x0251,0x0252,0x0217,0x0218,0x0219,0x021A,
- 0x021B,0x021C,0x021D,0x021E,0x021F,0x0220,0x0221,0x0222,
- 0x0223,0x0224,0x0225,0x0226,0x0227,0x0228,0x0229,0x022A,
- 0x0267,0x0268,0x0269,0x026A,0x026B,0x026C,0x026D,0x026E,
- 0x026F,0x0270,0x0271,0x0272,0x0273,0x0274,0x0275,0x0000,
- 0x0277,0x0278,0x0259,0x025A,0x0297,0x02B8,0x02B9,0x02BA,
- 0x0000,0x02BB,0x029C,0x02BC,0x029D,0x02BD,0x029E,0x02BE,
- 0x029F,0x02BF,0x02A0,0x02C0,0x02A1,0x02C1,0x02A2,0x02C2,
- 0x02A3,0x02C3,0x02A4,0x02C4,0x02A5,0x02C5,0x02A6,0x02C6,
- 0x02C7,0x02C8,0x02C9,0x02CA,0x0000,0x0307,0x0308,0x0000,
- 0x0309,0x0000,0x0000,0x030A,0x030B,0x02EC,0x02ED,0x02EE,
- 0x0AF1,0x0B41,0x0B91,0x0BE1,0x0C31,0x0C81,0x0CD1,0x0D21,
- 0x0732,0x0782,0x07D2,0x0822,0x0872,0x08C2,0x0912,0x0962,
- 0x0730,0x0780,0x07D0,0x0820,0x0870,0x08C0,0x0910,0x0960,
- 0x09B0,0x0A00,0x0A50,0x0AA0,0x0AF0,0x0B40,0x0B90,0x0BE0,
- 0x0C30,0x0C80,0x0CD0,0x0D20,0x0731,0x0781,0x07D1,0x0821,
- 0x0871,0x08C1,0x0911,0x0961,0x09B1,0x0A01,0x0A51,0x0AA1,
- 0x1130,0x1180,0x11D0,0x1220,0x1270,0x12C0,0x1310,0x1360,
- 0x13B0,0x1400,0x1450,0x14A0,0x14F0,0x1540,0x1590,0x15E0,
- 0x1630,0x1680,0x16D0,0x1720,0x1131,0x1181,0x11D1,0x1221,
- 0x1271,0x12C1,0x1311,0x1361,0x13B1,0x1401,0x1451,0x14A1,
- 0x14F1,0x1541,0x1591,0x15E1,0x1631,0x1681,0x16D1,0x1721,
- 0x1132,0x1182,0x11D2,0x1222,0x1272,0x12C2,0x1312,0x1362,
- 0x09B2,0x13B2,0x0A02,0x1402,0x0A52,0x1452,0x0AA2,0x14A2,
- 0x0AF2,0x14F2,0x0B42,0x1542,0x0B92,0x1592,0x0BE2,0x15E2,
- 0x0C32,0x1632,0x0C82,0x1682,0x0CD2,0x16D2,0x0D22,0x1722,
- 0x0733,0x1133,0x0783,0x1183,0x07D3,0x11D3,0x0823,0x1223,
- 0x0873,0x1273,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0913,0x1313,0x0963,0x1363,0x09B3,0x13B3,
- 0x0A03,0x1403,0x0A53,0x1453,0x0AA3,0x14A3,0x0AF3,0x14F3,
- 0x0B43,0x1543,0x0B93,0x1593,0x0BE3,0x15E3,0x0C33,0x1633,
- 0x0C83,0x1683,0x0CD3,0x16D3,0x0D23,0x1723,0x0734,0x1134,
- 0x0784,0x1184,0x07D4,0x11D4,0x0824,0x1224,0x0874,0x1274,
- 0x08C4,0x12C4,0x0914,0x1314,0x0964,0x1364,0x09B4,0x13B4,
- 0x0A04,0x1404,0x0A54,0x1454,0x0AA4,0x14A4,0x0AF4,0x14F4,
- 0x0B44,0x0B94,0x1594,0x0BE4,0x15E4,0x0C34,0x1634,0x0C84,
- 0x1684,0x0CD4,0x16D4,0x0D24,0x1724,0x0735,0x1135,0x0000,
- 0x07D5,0x11D5,0x0825,0x1225,0x0875,0x1275,0x08C5,0x12C5,
- 0x0915,0x1315,0x0965,0x1365,0x09B5,0x13B5,0x0A05,0x1405,
- 0x0A55,0x1455,0x0AA5,0x14A5,0x0AF5,0x14F5,0x0B45,0x1545,
- 0x0B95,0x1595,0x0BE5,0x15E5,0x0C35,0x1635,0x0C85,0x1685,
- 0x0CD5,0x16D5,0x0D25,0x1725,0x0736,0x1136,0x0786,0x1186,
- 0x07D6,0x11D6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0A06,0x1406,0x0A56,0x1456,0x0AA6,0x14A6,0x0AF6,0x14F6,
- 0x0B46,0x1546,0x0B96,0x1596,0x0BE6,0x15E6,0x0C36,0x1636,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0787,0x07D7,0x0827,0x0877,0x08C7,0x0917,0x0967,
- 0x09B7,0x0A07,0x0A57,0x0AA7,0x0AF7,0x0B47,0x0B97,0x0BE7,
- 0x0C37,0x0C87,0x0CD7,0x0D27,0x0738,0x0788,0x07D8,0x0828,
- 0x0878,0x08C8,0x0918,0x0968,0x09B8,0x0A08,0x0A58,0x0AA8,
- 0x0AF8,0x0B48,0x0B98,0x0BE8,0x0C38,0x0C88,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x1187,0x11D7,0x1227,0x1277,0x12C7,0x1317,0x1367,
- 0x13B7,0x1407,0x1457,0x14A7,0x14F7,0x1547,0x1597,0x15E7,
- 0x1637,0x1687,0x16D7,0x1727,0x1138,0x1188,0x11D8,0x1228,
- 0x1278,0x12C8,0x1318,0x1368,0x13B8,0x1408,0x1458,0x14A8,
- 0x14F8,0x1548,0x1598,0x15E8,0x1638,0x1688,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-
-/* 1E00-1FFF */
-static uint16 uni_1E00_1FFF[512]=
-{
- 0x076C,0x116C,0x07BC,0x11BC,0x080C,0x120C,0x085C,0x125C,
- 0x08AC,0x12AC,0x08FC,0x12FC,0x094C,0x134C,0x099C,0x139C,
- 0x09EC,0x13EC,0x0A3C,0x143C,0x0A8C,0x148C,0x0ADC,0x14DC,
- 0x0B2C,0x152C,0x0B7C,0x157C,0x0BCC,0x15CC,0x0C1C,0x161C,
- 0x0C6C,0x166C,0x0CBC,0x16BC,0x0D0C,0x170C,0x0D5C,0x175C,
- 0x076D,0x116D,0x07BD,0x11BD,0x080D,0x120D,0x085D,0x125D,
- 0x08AD,0x12AD,0x08FD,0x12FD,0x094D,0x134D,0x099D,0x139D,
- 0x09ED,0x13ED,0x0A3D,0x143D,0x0A8D,0x148D,0x0ADD,0x14DD,
- 0x0B2D,0x152D,0x0B7D,0x157D,0x0BCD,0x15CD,0x0C1D,0x161D,
- 0x0C6D,0x166D,0x0CBD,0x16BD,0x0D0D,0x170D,0x0D5D,0x175D,
- 0x076E,0x116E,0x07BE,0x11BE,0x080E,0x120E,0x085E,0x125E,
- 0x08AE,0x12AE,0x08FE,0x12FE,0x094E,0x134E,0x099E,0x139E,
- 0x0770,0x13EE,0x0A3E,0x143E,0x0A8E,0x148E,0x0ADE,0x14DE,
- 0x0B2E,0x152E,0x0B7E,0x157E,0x0BCE,0x15CE,0x0C1E,0x161E,
- 0x0C6E,0x166E,0x0CBE,0x16BE,0x0D0E,0x170E,0x0D5E,0x175E,
- 0x076F,0x116F,0x07BF,0x11BF,0x080F,0x120F,0x085F,0x125F,
- 0x08AF,0x12AF,0x08FF,0x12FF,0x094F,0x134F,0x099F,0x139F,
- 0x09EF,0x13EF,0x0A3F,0x143F,0x0A8F,0x148F,0x0ADF,0x14DF,
- 0x0B2F,0x152F,0x0B7F,0x157F,0x0BCF,0x15CF,0x161F,0x166F,
- 0x16BF,0x170F,0x175F,0x1170,0x0000,0x0000,0x0000,0x0000,
- 0x0900,0x1300,0x0950,0x1350,0x09A0,0x13A0,0x09F0,0x13F0,
- 0x0A40,0x1440,0x0A90,0x1490,0x0AE0,0x14E0,0x0B30,0x1530,
- 0x0B80,0x1580,0x0BD0,0x15D0,0x0C20,0x1620,0x0C70,0x1670,
- 0x0CC0,0x16C0,0x0D10,0x1710,0x0D60,0x1760,0x0771,0x1171,
- 0x07C1,0x11C1,0x0811,0x1211,0x0861,0x1261,0x08B1,0x12B1,
- 0x0901,0x1301,0x0951,0x1351,0x09A1,0x13A1,0x09F1,0x13F1,
- 0x0A41,0x1441,0x0A91,0x1491,0x0AE1,0x14E1,0x0B31,0x1531,
- 0x0B81,0x1581,0x0BD1,0x15D1,0x0C21,0x1621,0x0C71,0x1671,
- 0x0CC1,0x16C1,0x0D11,0x1711,0x0D61,0x1761,0x0772,0x1172,
- 0x07C2,0x11C2,0x0812,0x1212,0x0862,0x1262,0x08B2,0x12B2,
- 0x0902,0x1302,0x0952,0x1352,0x09A2,0x13A2,0x09F2,0x13F2,
- 0x0A42,0x1442,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x1173,0x11C3,0x1213,0x1263,0x12B3,0x1303,0x1353,0x13A3,
- 0x0773,0x07C3,0x0813,0x0863,0x08B3,0x0903,0x0953,0x09A3,
- 0x13F3,0x1443,0x1493,0x14E3,0x1533,0x1583,0x0000,0x0000,
- 0x09F3,0x0A43,0x0A93,0x0AE3,0x0B33,0x0B83,0x0000,0x0000,
- 0x1713,0x1763,0x1174,0x11C4,0x1214,0x1264,0x12B4,0x1304,
- 0x0D13,0x0D63,0x0774,0x07C4,0x0814,0x0864,0x08B4,0x0904,
- 0x1354,0x13A4,0x13F4,0x1444,0x1494,0x14E4,0x1534,0x1584,
- 0x0954,0x09A4,0x09F4,0x0A44,0x0A94,0x0AE4,0x0B34,0x0B84,
- 0x15D4,0x1624,0x1674,0x16C4,0x1714,0x1764,0x0000,0x0000,
- 0x0BD4,0x0C24,0x0C74,0x0CC4,0x0D14,0x0D64,0x0000,0x0000,
- 0x12B5,0x1305,0x1355,0x13A5,0x13F5,0x1445,0x1495,0x14E5,
- 0x0000,0x0905,0x0000,0x09A5,0x0000,0x0A45,0x0000,0x0AE5,
- 0x1675,0x16C5,0x1715,0x1765,0x1176,0x11C6,0x1216,0x1266,
- 0x0C75,0x0CC5,0x0D15,0x0D65,0x0776,0x07C6,0x0816,0x0866,
- 0x12B6,0x1306,0x1356,0x13A6,0x13F6,0x1446,0x1496,0x14E6,
- 0x1536,0x1586,0x15D6,0x1626,0x1676,0x16C6,0x0000,0x0000,
- 0x1177,0x11C7,0x1217,0x1267,0x12B7,0x1307,0x1357,0x13A7,
- 0x0777,0x07C7,0x0817,0x0867,0x08B7,0x0907,0x0957,0x09A7,
- 0x13F7,0x1447,0x1497,0x14E7,0x1537,0x1587,0x15D7,0x1627,
- 0x09F7,0x0A47,0x0A97,0x0AE7,0x0B37,0x0B87,0x0BD7,0x0C27,
- 0x1677,0x16C7,0x1717,0x1767,0x1178,0x11C8,0x1218,0x1268,
- 0x0C77,0x0CC7,0x0D17,0x0D67,0x0778,0x07C8,0x0818,0x0868,
- 0x12B8,0x1308,0x1358,0x13A8,0x13F8,0x0000,0x1498,0x14E8,
- 0x08B8,0x0908,0x08B6,0x0906,0x09A8,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x1538,0x1588,0x15D8,0x0000,0x1678,0x16C8,
- 0x0956,0x09A6,0x09F6,0x0A46,0x0B88,0x0000,0x0000,0x0000,
- 0x1718,0x1768,0x1179,0x11C9,0x0000,0x0000,0x12B9,0x1309,
- 0x0D18,0x0D68,0x0A96,0x0AE6,0x0000,0x0000,0x0000,0x0000,
- 0x13A9,0x13F9,0x1449,0x1499,0x14E9,0x1539,0x1589,0x15D9,
- 0x09A9,0x09F9,0x0BD6,0x0C26,0x0B39,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x16C9,0x1719,0x0000,0x0000,0x11CA,0x121A,
- 0x0B36,0x0B86,0x0C76,0x0CC6,0x0D19,0x0000,0x0000,0x0000
-};
-
-
-/* 2160-217F */
-static uint16 uni_2160_217F[32]=
-{
- 0x0739,0x0789,0x07D9,0x0829,0x0879,0x08C9,0x0919,0x0969,
- 0x09B9,0x0A09,0x0A59,0x0AA9,0x0AF9,0x0B49,0x0B99,0x0BE9,
- 0x1139,0x1189,0x11D9,0x1229,0x1279,0x12C9,0x1319,0x1369,
- 0x13B9,0x1409,0x1459,0x14A9,0x14F9,0x1549,0x1599,0x15E9
-};
-
-
-/* 24B0-24EF */
-static uint16 uni_24B0_24EF[64]=
-{
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0511,0x0512,
- 0x0513,0x0514,0x0515,0x0516,0x0517,0x0518,0x0519,0x051A,
- 0x051B,0x051C,0x051D,0x051E,0x051F,0x0520,0x0521,0x0522,
- 0x0523,0x0524,0x0525,0x0526,0x0527,0x0528,0x0529,0x052A,
- 0x0531,0x0532,0x0533,0x0534,0x0535,0x0536,0x0537,0x0538,
- 0x0539,0x053A,0x053B,0x053C,0x053D,0x053E,0x053F,0x0540,
- 0x0541,0x0542,0x0543,0x0544,0x0545,0x0546,0x0547,0x0548,
- 0x0549,0x054A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-
-/* FF20-FF5F */
-static uint16 uni_FF20_FF5F[64]=
-{
- 0x0000,0x0560,0x05B0,0x0600,0x0650,0x06A0,0x06F0,0x0740,
- 0x0790,0x07E0,0x0830,0x0880,0x08D0,0x0920,0x0970,0x09C0,
- 0x0A10,0x0A60,0x0AB0,0x0B00,0x0B50,0x0BA0,0x0BF0,0x0C40,
- 0x0C90,0x0CE0,0x0D30,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0F60,0x0FB0,0x1000,0x1050,0x10A0,0x10F0,0x1140,
- 0x1190,0x11E0,0x1230,0x1280,0x12D0,0x1320,0x1370,0x13C0,
- 0x1410,0x1460,0x14B0,0x1500,0x1550,0x15A0,0x15F0,0x1640,
- 0x1690,0x16E0,0x1730,0x0000,0x0000,0x0000,0x0000,0x0000
-};
-
-
-
-
-
-/*
- Returns
- a number 0..15, if a valid HEX digit in lower case,
- -1 otherwise.
-*/
-
-static int hexlo(int x)
-{
- static char hex_lo_digit[256]=
- {
- -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, /* !"#$%&'()*+,-./ */
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,-1,-1,-1,-1,-1,-1, /* 0123456789:;<=>? */
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* @ABCDEFGHIJKLMNO */
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* PQRSTUVWXYZ[\]^_ */
- -1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* `abcdefghijklmno */
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* pqrstuvwxyz{|}~. */
- -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,-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,-1,-1,-1,-1, /* ................ */
- -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* ................ */
- };
- return hex_lo_digit[(unsigned int) x];
-}
-
-
-/*
- Safe characters:
- '\0' NULL
- A..Z capital letters,
- a..z small letters
- 0..9 digits
- _ underscore
-*/
-static char filename_safe_char[128]=
-{
- 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, /* !"#$%&'()*+,-./ */
- 1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0, /* 0123456789:;<=>? */
- 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* @ABCDEFGHIJKLMNO */
- 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, /* PQRSTUVWXYZ[\]^_ */
- 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* `abcdefghijklmno */
- 1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, /* pqrstuvwxyz{|}~. */
-};
-
-#define MY_FILENAME_ESCAPE '@'
-
-static int
-my_mb_wc_filename(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s, const uchar *e)
-{
- int byte1, byte2;
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- if (*s < 128 && filename_safe_char[*s])
- {
- *pwc= *s;
- return 1;
- }
-
- if (*s != MY_FILENAME_ESCAPE)
- return MY_CS_ILSEQ;
-
- if (s + 3 > e)
- return MY_CS_TOOSMALL3;
-
- byte1= s[1];
- byte2= s[2];
-
- if (byte1 >= 0x30 && byte1 <= 0x7F &&
- byte2 >= 0x30 && byte2 <= 0x7F)
- {
- int code= (byte1 - 0x30) * 80 + byte2 - 0x30;
- if (code < 5994 && touni[code])
- {
- *pwc= touni[code];
- return 3;
- }
- if (byte1 == '@' && byte2 == '@')
- {
- *pwc= 0;
- return 3;
- }
- }
-
- if (s + 4 > e)
- return MY_CS_TOOSMALL4;
-
- if ((byte1= hexlo(byte1)) >= 0 &&
- (byte2= hexlo(byte2)) >= 0)
- {
- int byte3= hexlo(s[3]);
- int byte4= hexlo(s[4]);
- if (byte3 >=0 && byte4 >=0)
- {
- *pwc= (byte1 << 12) + (byte2 << 8) + (byte3 << 4) + byte4;
- return 5;
- }
- }
-
- return MY_CS_ILSEQ;
-}
-
-
-static int
-my_wc_mb_filename(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *s, uchar *e)
-{
- int code;
- char hex[]= "0123456789abcdef";
- if (wc < 128 && filename_safe_char[wc])
- {
- *s= (uchar) wc;
- return 1;
- }
-
- if (s + 3 > e)
- return MY_CS_TOOSMALL3;
-
- *s++= MY_FILENAME_ESCAPE;
- if ((wc >= 0x00C0 && wc <= 0x05FF && (code= uni_0C00_05FF[wc - 0x00C0])) ||
- (wc >= 0x1E00 && wc <= 0x1FFF && (code= uni_1E00_1FFF[wc - 0x1E00])) ||
- (wc >= 0x2160 && wc <= 0x217F && (code= uni_2160_217F[wc - 0x2160])) ||
- (wc >= 0x24B0 && wc <= 0x24EF && (code= uni_24B0_24EF[wc - 0x24B0])) ||
- (wc >= 0xFF20 && wc <= 0xFF5F && (code= uni_FF20_FF5F[wc - 0xFF20])))
- {
- *s++= (code / 80) + 0x30;
- *s++= (code % 80) + 0x30;
- return 3;
- }
-
- /* Non letter */
- if (s + 5 > e)
- return MY_CS_TOOSMALL5;
-
- *s++= hex[(wc >> 12) & 15];
- *s++= hex[(wc >> 8) & 15];
- *s++= hex[(wc >> 4) & 15];
- *s++= hex[(wc) & 15];
- return 5;
-}
-
-
-static MY_COLLATION_HANDLER my_collation_filename_handler =
-{
- NULL, /* init */
- my_strnncoll_utf8,
- my_strnncollsp_utf8,
- my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
- my_like_range_mb,
- my_wildcmp_utf8,
- my_strcasecmp_utf8,
- my_instr_mb,
- my_hash_sort_utf8,
- my_propagate_complex
-};
-
-static MY_CHARSET_HANDLER my_charset_filename_handler=
-{
- NULL, /* init */
- my_ismbchar_utf8,
- my_mbcharlen_utf8,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_mb,
- my_lengthsp_8bit,
- my_numcells_mb,
- my_mb_wc_filename,
- my_wc_mb_filename,
- my_mb_ctype_mb,
- my_caseup_str_utf8,
- my_casedn_str_utf8,
- my_caseup_utf8,
- my_casedn_utf8,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-
-CHARSET_INFO my_charset_filename=
-{
- 17,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_HIDDEN|MY_CS_NONASCII,
- "filename", /* cs name */
- "filename", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_utf8, /* ctype */
- to_lower_utf8, /* to_lower */
- to_upper_utf8, /* to_upper */
- to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 5, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_filename_handler,
- &my_collation_filename_handler
-};
-
-#ifdef MY_TEST_UTF8
-#include <stdio.h>
-
-static void test_mb(CHARSET_INFO *cs, uchar *s)
-{
- while(*s)
- {
- if (my_ismbhead_utf8(cs,*s))
- {
- uint len=my_mbcharlen_utf8(cs,*s);
- while(len--)
- {
- printf("%c",*s);
- s++;
- }
- printf("\n");
- }
- else
- {
- printf("%c\n",*s);
- s++;
- }
- }
-}
-
-int main()
-{
- char str[1024]=" utf8 test проба ПЕРРпо-РУССКИ";
- CHARSET_INFO *cs;
-
- test_mb(cs,(uchar*)str);
-
- printf("orig :'%s'\n",str);
-
- my_caseup_utf8(cs,str,15);
- printf("caseup :'%s'\n",str);
-
- my_caseup_str_utf8(cs,str);
- printf("caseup_str:'%s'\n",str);
-
- my_casedn_utf8(cs,str,15);
- printf("casedn :'%s'\n",str);
-
- my_casedn_str_utf8(cs,str);
- printf("casedn_str:'%s'\n",str);
-
- return 0;
-}
-
-#endif
-
-#endif /* HAVE_CHARSET_UTF8 */
-
-
-
-#ifdef HAVE_CHARSET_utf8mb4
-
-/*
- We consider bytes with code more than 127 as a letter.
- This garantees that word boundaries work fine with regular
- expressions. Note, there is no need to mark byte 255 as a
- letter, it is illegal byte in UTF8.
-*/
-static uchar ctype_utf8mb4[]=
-{
- 0,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 72, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 132,132,132,132,132,132,132,132,132,132, 16, 16, 16, 16, 16, 16,
- 16,129,129,129,129,129,129, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 16, 16, 16, 16,
- 16,130,130,130,130,130,130, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 16, 16, 16, 32,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
-};
-
-
-static uchar to_lower_utf8mb4[]=
-{
- 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, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122, 91, 92, 93, 94, 95,
- 96, 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,
- 112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-
-static uchar to_upper_utf8mb4[]=
-{
- 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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,123,124,125,126,127,
- 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,
- 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,
- 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,
- 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,
- 192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,
- 208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,
- 224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,
- 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
-};
-
-
-static inline int
-bincmp_utf8mb4(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se - s), tlen= (int) (te - t);
- int len= min(slen, tlen);
- int cmp= memcmp(s, t, len);
- return cmp ? cmp : slen - tlen;
-}
-
-
-static int
-my_mb_wc_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t * pwc, const uchar *s, const uchar *e)
-{
- uchar c;
-
- if (s >= e)
- return MY_CS_TOOSMALL;
-
- c= s[0];
- if (c < 0x80)
- {
- *pwc= c;
- return 1;
- }
- else if (c < 0xc2)
- return MY_CS_ILSEQ;
- else if (c < 0xe0)
- {
- if (s + 2 > e) /* We need 2 characters */
- return MY_CS_TOOSMALL2;
-
- if (!((s[1] ^ 0x80) < 0x40))
- return MY_CS_ILSEQ;
-
- *pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
- return 2;
- }
- else if (c < 0xf0)
- {
- if (s + 3 > e) /* We need 3 characters */
- return MY_CS_TOOSMALL3;
-
- if (!((s[1] ^ 0x80) < 0x40 && (s[2] ^ 0x80) < 0x40 &&
- (c >= 0xe1 || s[1] >= 0xa0)))
- return MY_CS_ILSEQ;
-
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
- return 3;
- }
- else if (c < 0xf5)
- {
- if (s + 4 > e) /* We need 4 characters */
- return MY_CS_TOOSMALL4;
-
- /*
- UTF-8 quick four-byte mask:
- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- Encoding allows to encode U+00010000..U+001FFFFF
-
- The maximum character defined in the Unicode standard is U+0010FFFF.
- Higher characters U+00110000..U+001FFFFF are not used.
-
- 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min)
- 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max)
-
- Valid codes:
- [F0][90..BF][80..BF][80..BF]
- [F1][80..BF][80..BF][80..BF]
- [F2][80..BF][80..BF][80..BF]
- [F3][80..BF][80..BF][80..BF]
- [F4][80..8F][80..BF][80..BF]
- */
-
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (s[3] ^ 0x80) < 0x40 &&
- (c >= 0xf1 || s[1] >= 0x90) &&
- (c <= 0xf3 || s[1] <= 0x8F)))
- return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
- return 4;
- }
- return MY_CS_ILSEQ;
-}
-
-
-/*
- The same as above, but without range check
- for example, for a null-terminated string
-*/
-static int
-my_mb_wc_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t *pwc, const uchar *s)
-{
- uchar c;
-
- c= s[0];
- if (c < 0x80)
- {
- *pwc = c;
- return 1;
- }
-
- if (c < 0xc2)
- return MY_CS_ILSEQ;
-
- if (c < 0xe0)
- {
- if (!((s[1] ^ 0x80) < 0x40))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
- return 2;
- }
-
- if (c < 0xf0)
- {
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (c >= 0xe1 || s[1] >= 0xa0)))
- return MY_CS_ILSEQ;
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
- return 3;
- }
- else if (c < 0xf5)
- {
- if (!((s[1] ^ 0x80) < 0x40 &&
- (s[2] ^ 0x80) < 0x40 &&
- (s[3] ^ 0x80) < 0x40 &&
- (c >= 0xf1 || s[1] >= 0x90) &&
- (c <= 0xf3 || s[1] <= 0x8F)))
- return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
- return 4;
- }
- return MY_CS_ILSEQ;
-}
-
-
-static int
-my_wc_mb_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *r, uchar *e)
-{
- int count;
-
- if (r >= e)
- return MY_CS_TOOSMALL;
-
- if (wc < 0x80)
- count= 1;
- else if (wc < 0x800)
- count= 2;
- else if (wc < 0x10000)
- count= 3;
- else if (wc < 0x200000)
- count= 4;
- else return MY_CS_ILUNI;
-
- if (r + count > e)
- return MY_CS_TOOSMALLN(count);
-
- switch (count) {
- /* Fall through all cases!!! */
- case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
- case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
- case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
- case 1: r[0] = (uchar) wc;
- }
- return count;
-}
-
-
-/*
- The same as above, but without range check.
-*/
-static int
-my_wc_mb_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc, uchar *r)
-{
- int count;
-
- if (wc < 0x80)
- count= 1;
- else if (wc < 0x800)
- count= 2;
- else if (wc < 0x10000)
- count= 3;
- else if (wc < 0x200000)
- count= 4;
- else
- return MY_CS_ILUNI;
-
- switch (count)
- {
- /* Fall through all cases!!! */
- case 4: r[3]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x10000;
- case 3: r[2]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0x800;
- case 2: r[1]= (uchar) (0x80 | (wc & 0x3f)); wc= wc >> 6; wc |= 0xc0;
- case 1: r[0]= (uchar) wc;
- }
- return count;
-}
-
-
-static inline void
-my_tolower_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
-}
-
-
-static inline void
-my_toupper_utf8mb4(MY_UNICASE_INFO **uni_plane, my_wc_t *wc)
-{
- int page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
-}
-
-
-static size_t
-my_caseup_utf8mb4(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
-
- while ((src < srcend) &&
- (srcres= my_mb_wc_utf8mb4(cs, &wc,
- (uchar *) src, (uchar*) srcend)) > 0)
- {
- my_toupper_utf8mb4(uni_plane, &wc);
- if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- return (size_t) (dst - dst0);
-}
-
-
-static inline void
-my_hash_add(ulong *n1, ulong *n2, uint ch)
-{
- n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
- n2[0]+= 3;
-}
-
-
-static void
-my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
-{
- my_wc_t wc;
- int res;
- const uchar *e= s + slen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
-
- /*
- Remove end space. We do this to be able to compare
- 'A ' and 'A' as identical
- */
- while (e > s && e[-1] == ' ')
- e--;
-
- while ((res= my_mb_wc_utf8mb4(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
- {
- my_tosort_unicode(uni_plane, &wc);
- my_hash_add(n1, n2, (uint) (wc & 0xFF));
- my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF);
- if (wc > 0xFFFF)
- {
- /*
- Put the highest byte only if it is non-zero,
- to make hash functions for utf8mb3 and utf8mb4
- compatible for BMP characters.
- This is useful to keep order of records in
- test results, e.g. for "SHOW GRANTS".
- */
- my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF);
- }
- s+= res;
- }
-}
-
-
-static size_t
-my_caseup_str_utf8mb4(CHARSET_INFO *cs, char *src)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *dst= src, *dst0= src;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(cs->caseup_multiply == 1);
-
- while (*src &&
- (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0)
- {
- my_toupper_utf8mb4(uni_plane, &wc);
- if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- *dst= '\0';
- return (size_t) (dst - dst0);
-}
-
-
-static size_t
-my_casedn_utf8mb4(CHARSET_INFO *cs,
- char *src, size_t srclen,
- char *dst, size_t dstlen)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
-
- while ((src < srcend) &&
- (srcres= my_mb_wc_utf8mb4(cs, &wc,
- (uchar*) src, (uchar*) srcend)) > 0)
- {
- my_tolower_utf8mb4(uni_plane, &wc);
- if ((dstres= my_wc_mb_utf8mb4(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
- return (size_t) (dst - dst0);
-}
-
-
-static size_t
-my_casedn_str_utf8mb4(CHARSET_INFO *cs, char *src)
-{
- my_wc_t wc;
- int srcres, dstres;
- char *dst= src, *dst0= src;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- DBUG_ASSERT(cs->casedn_multiply == 1);
-
- while (*src &&
- (srcres= my_mb_wc_utf8mb4_no_range(cs, &wc, (uchar *) src)) > 0)
- {
- my_tolower_utf8mb4(uni_plane, &wc);
- if ((dstres= my_wc_mb_utf8mb4_no_range(cs, wc, (uchar*) dst)) <= 0)
- break;
- src+= srcres;
- dst+= dstres;
- }
-
- /*
- In rare cases lower string can be shorter than
- the original string, for example:
-
- "U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE"
- (which is 0xC4B0 in utf8, i.e. two bytes)
-
- is converted into
-
- "U+0069 LATIN SMALL LETTER I"
- (which is 0x69 in utf8, i.e. one byte)
-
- So, we need to put '\0' terminator after converting.
- */
-
- *dst= '\0';
- return (size_t) (dst - dst0);
-}
-
-
-static int
-my_strnncoll_utf8mb4(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_wc_t s_wc,t_wc;
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- LINT_INIT(s_wc);
- LINT_INIT(t_wc);
-
- while ( s < se && t < te )
- {
- int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
- int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return bincmp_utf8mb4(s, se, t, te);
- }
-
- my_tosort_unicode(uni_plane, &s_wc);
- my_tosort_unicode(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-/**
-
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
- @param diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
-static int
-my_strnncollsp_utf8mb4(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t s_wc, t_wc;
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- LINT_INIT(s_wc);
- LINT_INIT(t_wc);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while ( s < se && t < te )
- {
- int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
- int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return bincmp_utf8mb4(s, se, t, te);
- }
-
- my_tosort_unicode(uni_plane, &s_wc);
- my_tosort_unicode(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
-
- slen= (size_t) (se-s);
- tlen= (size_t) (te-t);
- res= 0;
-
- if (slen != tlen)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
- /*
- This following loop uses the fact that in UTF-8
- all multibyte characters are greater than space,
- and all multibyte head characters are greater than
- space. It means if we meet a character greater
- than space, it always means that the longer string
- is greater. So we can reuse the same loop from the
- 8bit version, without having to process full multibute
- sequences.
- */
- for ( ; s < se; s++)
- {
- if (*s != ' ')
- return (*s < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-/**
- Compare 0-terminated UTF8 strings.
-
- @param cs character set handler
- @param s First 0-terminated string to compare
- @param t Second 0-terminated string to compare
-
- @return Comparison result.
- @retval negative number if s < t
- @retval positive number if s > t
- @retval 0 is the strings are equal
-*/
-
-static int
-my_strcasecmp_utf8mb4(CHARSET_INFO *cs, const char *s, const char *t)
-{
- MY_UNICASE_INFO **uni_plane= cs->caseinfo;
- while (s[0] && t[0])
- {
- my_wc_t s_wc,t_wc;
-
- if ((uchar) s[0] < 128)
- {
- /*
- s[0] is between 0 and 127.
- It represents a single byte character.
- Convert it into weight according to collation.
- */
- s_wc= plane00[(uchar) s[0]].tolower;
- s++;
- }
- else
- {
- int res= my_mb_wc_utf8mb4_no_range(cs, &s_wc, (const uchar*) s);
-
- /*
- In the case of wrong multibyte sequence we will
- call strcmp() for byte-to-byte comparison.
- */
- if (res <= 0)
- return strcmp(s, t);
- s+= res;
-
- my_tolower_utf8mb4(uni_plane, &s_wc);
- }
-
-
- /* Do the same for the second string */
-
- if ((uchar) t[0] < 128)
- {
- /* Convert single byte character into weight */
- t_wc= plane00[(uchar) t[0]].tolower;
- t++;
- }
- else
- {
- int res= my_mb_wc_utf8mb4_no_range(cs, &t_wc, (const uchar*) t);
- if (res <= 0)
- return strcmp(s, t);
- t+= res;
-
- my_tolower_utf8mb4(uni_plane, &t_wc);
- }
-
- /* Now we have two weights, let's compare them */
- if ( s_wc != t_wc )
- return ((int) s_wc) - ((int) t_wc);
- }
- return ((int) (uchar) s[0]) - ((int) (uchar) t[0]);
-}
-
-
-static int
-my_wildcmp_utf8mb4(CHARSET_INFO *cs,
- const char *str, const char *strend,
- const char *wildstr, const char *wildend,
- int escape, int w_one, int w_many)
-{
- return my_wildcmp_unicode(cs, str, strend, wildstr, wildend,
- escape, w_one, w_many, cs->caseinfo);
-}
-
-
-static size_t
-my_strnxfrmlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), size_t len)
-{
- /* TODO: fix when working on WL "Unicode new version" */
- return (len * 2 + 2) / 4;
-}
-
-
-static uint
-my_ismbchar_utf8mb4(CHARSET_INFO *cs, const char *b, const char *e)
-{
- my_wc_t wc;
- int res= my_mb_wc_utf8mb4(cs,&wc, (const uchar*)b, (const uchar*)e);
- return (res > 1) ? res : 0;
-}
-
-
-static uint
-my_mbcharlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), uint c)
-{
- if (c < 0x80)
- return 1;
- if (c < 0xc2)
- return 0; /* Illegal mb head */
- if (c < 0xe0)
- return 2;
- if (c < 0xf0)
- return 3;
- if (c < 0xf8)
- return 4;
- return 0; /* Illegal mb head */;
-}
-
-
-static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler=
-{
- NULL, /* init */
- my_strnncoll_utf8mb4,
- my_strnncollsp_utf8mb4,
- my_strnxfrm_unicode,
- my_strnxfrmlen_utf8mb4,
- my_like_range_mb,
- my_wildcmp_utf8mb4,
- my_strcasecmp_utf8mb4,
- my_instr_mb,
- my_hash_sort_utf8mb4,
- my_propagate_complex
-};
-
-
-static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_mb_bin,
- my_strnncollsp_mb_bin,
- my_strnxfrm_unicode_full_bin,
- my_strnxfrmlen_unicode_full_bin,
- my_like_range_mb,
- my_wildcmp_mb_bin,
- my_strcasecmp_mb_bin,
- my_instr_mb,
- my_hash_sort_mb_bin,
- my_propagate_simple
-};
-
-
-MY_CHARSET_HANDLER my_charset_utf8mb4_handler=
-{
- NULL, /* init */
- my_ismbchar_utf8mb4,
- my_mbcharlen_utf8mb4,
- my_numchars_mb,
- my_charpos_mb,
- my_well_formed_len_mb,
- my_lengthsp_8bit,
- my_numcells_mb,
- my_mb_wc_utf8mb4,
- my_wc_mb_utf8mb4,
- my_mb_ctype_mb,
- my_caseup_str_utf8mb4,
- my_casedn_str_utf8mb4,
- my_caseup_utf8mb4,
- my_casedn_utf8mb4,
- my_snprintf_8bit,
- my_long10_to_str_8bit,
- my_longlong10_to_str_8bit,
- my_fill_8bit,
- my_strntol_8bit,
- my_strntoul_8bit,
- my_strntoll_8bit,
- my_strntoull_8bit,
- my_strntod_8bit,
- my_strtoll10_8bit,
- my_strntoull10rnd_8bit,
- my_scan_8bit
-};
-
-
-
-CHARSET_INFO my_charset_utf8mb4_general_ci=
-{
- 45,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */
- MY_UTF8MB4, /* cs name */
- MY_UTF8MB4_GENERAL_CI,/* name */
- "UTF-8 Unicode", /* comment */
- NULL, /* tailoring */
- ctype_utf8mb4, /* ctype */
- to_lower_utf8mb4, /* to_lower */
- to_upper_utf8mb4, /* to_upper */
- to_upper_utf8mb4, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_utf8mb4_general_ci_handler
-};
-
-
-CHARSET_INFO my_charset_utf8mb4_bin=
-{
- 46,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT, /* state */
- MY_UTF8MB4, /* cs name */
- MY_UTF8MB4_BIN, /* name */
- "UTF-8 Unicode", /* comment */
- NULL, /* tailoring */
- ctype_utf8mb4, /* ctype */
- to_lower_utf8mb4, /* to_lower */
- to_upper_utf8mb4, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 1, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 4, /* mbmaxlen */
- 0, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_utf8mb4_handler,
- &my_collation_utf8mb4_bin_handler
-};
-
-#endif /* HAVE_CHARSET_utf8mb4 */
diff --git a/dep/mysqllite/strings/ctype-win1250ch.c b/dep/mysqllite/strings/ctype-win1250ch.c
deleted file mode 100644
index d9d092beb8f..00000000000
--- a/dep/mysqllite/strings/ctype-win1250ch.c
+++ /dev/null
@@ -1,715 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Shared, independent copyright: (C) 2001 Jan Pazdziora.
-
- Development of this software was supported by Neocortex, s.r.o.
- MySQL AB expresses its gratitude to Jan for for giving us this software.
-
- Bug reports and suggestions are always welcome.
-
- This file implements the collating sequence for Windows-1250
- character set. It merely extends the binary sorting of US-ASCII
- by adding characters with diacritical marks into proper places.
- In addition, it sorts 'ch' between 'h' and 'i', and the sorting
- is case sensitive, with uppercase being sorted first, in the
- second pass.
-*/
-
-/*
- * This comment is parsed by configure to create ctype.c,
- * so don't change it unless you know what you are doing.
- *
- * .configure. strxfrm_multiply_win1250ch=2
- */
-
-#define REAL_MYSQL
-#ifdef REAL_MYSQL
-
-#include "my_global.h"
-#include "m_string.h"
-#include "m_ctype.h"
-
-#else
-
-#include <stdio.h>
-#define uchar unsigned char
-
-#endif
-
-#ifdef HAVE_CHARSET_cp1250
-
-
-static uint16 tab_cp1250_uni[256]={
- 0,0x0001,0x0002,0x0003,0x0004,0x0005,0x0006,0x0007,
-0x0008,0x0009,0x000A,0x000B,0x000C,0x000D,0x000E,0x000F,
-0x0010,0x0011,0x0012,0x0013,0x0014,0x0015,0x0016,0x0017,
-0x0018,0x0019,0x001A,0x001B,0x001C,0x001D,0x001E,0x001F,
-0x0020,0x0021,0x0022,0x0023,0x0024,0x0025,0x0026,0x0027,
-0x0028,0x0029,0x002A,0x002B,0x002C,0x002D,0x002E,0x002F,
-0x0030,0x0031,0x0032,0x0033,0x0034,0x0035,0x0036,0x0037,
-0x0038,0x0039,0x003A,0x003B,0x003C,0x003D,0x003E,0x003F,
-0x0040,0x0041,0x0042,0x0043,0x0044,0x0045,0x0046,0x0047,
-0x0048,0x0049,0x004A,0x004B,0x004C,0x004D,0x004E,0x004F,
-0x0050,0x0051,0x0052,0x0053,0x0054,0x0055,0x0056,0x0057,
-0x0058,0x0059,0x005A,0x005B,0x005C,0x005D,0x005E,0x005F,
-0x0060,0x0061,0x0062,0x0063,0x0064,0x0065,0x0066,0x0067,
-0x0068,0x0069,0x006A,0x006B,0x006C,0x006D,0x006E,0x006F,
-0x0070,0x0071,0x0072,0x0073,0x0074,0x0075,0x0076,0x0077,
-0x0078,0x0079,0x007A,0x007B,0x007C,0x007D,0x007E,0x007F,
-0x20AC, 0,0x201A, 0,0x201E,0x2026,0x2020,0x2021,
- 0,0x2030,0x0160,0x2039,0x015A,0x0164,0x017D,0x0179,
- 0,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014,
- 0,0x2122,0x0161,0x203A,0x015B,0x0165,0x017E,0x017A,
-0x00A0,0x02C7,0x02D8,0x0141,0x00A4,0x0104,0x00A6,0x00A7,
-0x00A8,0x00A9,0x015E,0x00AB,0x00AC,0x00AD,0x00AE,0x017B,
-0x00B0,0x00B1,0x02DB,0x0142,0x00B4,0x00B5,0x00B6,0x00B7,
-0x00B8,0x0105,0x015F,0x00BB,0x013D,0x02DD,0x013E,0x017C,
-0x0154,0x00C1,0x00C2,0x0102,0x00C4,0x0139,0x0106,0x00C7,
-0x010C,0x00C9,0x0118,0x00CB,0x011A,0x00CD,0x00CE,0x010E,
-0x0110,0x0143,0x0147,0x00D3,0x00D4,0x0150,0x00D6,0x00D7,
-0x0158,0x016E,0x00DA,0x0170,0x00DC,0x00DD,0x0162,0x00DF,
-0x0155,0x00E1,0x00E2,0x0103,0x00E4,0x013A,0x0107,0x00E7,
-0x010D,0x00E9,0x0119,0x00EB,0x011B,0x00ED,0x00EE,0x010F,
-0x0111,0x0144,0x0148,0x00F3,0x00F4,0x0151,0x00F6,0x00F7,
-0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
-};
-
-
-/* 0000-00FD , 254 chars */
-static uchar tab_uni_cp1250_plane00[]={
-0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
-0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
-0x20,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,0x7F,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0xA0,0x00,0x00,0x00,0xA4,0x00,0xA6,0xA7,0xA8,0xA9,0x00,0xAB,0xAC,0xAD,0xAE,0x00,
-0xB0,0xB1,0x00,0x00,0xB4,0xB5,0xB6,0xB7,0xB8,0x00,0x00,0xBB,0x00,0x00,0x00,0x00,
-0x00,0xC1,0xC2,0x00,0xC4,0x00,0x00,0xC7,0x00,0xC9,0x00,0xCB,0x00,0xCD,0xCE,0x00,
-0x00,0x00,0x00,0xD3,0xD4,0x00,0xD6,0xD7,0x00,0x00,0xDA,0x00,0xDC,0xDD,0x00,0xDF,
-0x00,0xE1,0xE2,0x00,0xE4,0x00,0x00,0xE7,0x00,0xE9,0x00,0xEB,0x00,0xED,0xEE,0x00,
-0x00,0x00,0x00,0xF3,0xF4,0x00,0xF6,0xF7,0x00,0x00,0xFA,0x00,0xFC,0xFD};
-
-/* 0102-017E , 125 chars */
-static uchar tab_uni_cp1250_plane01[]={
-0xC3,0xE3,0xA5,0xB9,0xC6,0xE6,0x00,0x00,0x00,0x00,0xC8,0xE8,0xCF,0xEF,0xD0,0xF0,
-0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0xEA,0xCC,0xEC,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC5,0xE5,0x00,0x00,0xBC,0xBE,0x00,0x00,0xA3,
-0xB3,0xD1,0xF1,0x00,0x00,0xD2,0xF2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD5,0xF5,
-0x00,0x00,0xC0,0xE0,0x00,0x00,0xD8,0xF8,0x8C,0x9C,0x00,0x00,0xAA,0xBA,0x8A,0x9A,
-0xDE,0xFE,0x8D,0x9D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xD9,0xF9,0xDB,0xFB,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8F,0x9F,0xAF,0xBF,0x8E,0x9E};
-
-/* 2013-20AC , 154 chars */
-static uchar tab_uni_cp1250_plane20[]={
-0x96,0x97,0x00,0x00,0x00,0x91,0x92,0x82,0x00,0x93,0x94,0x84,0x00,0x86,0x87,0x95,
-0x00,0x00,0x00,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x89,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x8B,0x9B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80};
-
-/* 02C7-02DD , 23 chars */
-static uchar tab_uni_cp1250_plane02[]={
-0xA1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-0x00,0xA2,0xFF,0x00,0xB2,0x00,0xBD};
-
-/* 2122-2122 , 1 chars */
-static uchar tab_uni_cp1250_plane21[]={
-0x99};
-
-
-static MY_UNI_IDX idx_uni_cp1250[]={
- {0x0000,0x00FD,tab_uni_cp1250_plane00},
- {0x0102,0x017E,tab_uni_cp1250_plane01},
- {0x2013,0x20AC,tab_uni_cp1250_plane20},
- {0x02C7,0x02DD,tab_uni_cp1250_plane02},
- {0x2122,0x2122,tab_uni_cp1250_plane21},
- {0,0,NULL}
-};
-
-
-static uchar ctype_win1250ch[] = {
-0x00,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x28, 0x28, 0x28, 0x28, 0x28, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x48, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84,
-0x84, 0x84, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-0x10, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x10, 0x10, 0x10, 0x10, 0x10,
-0x10, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x10, 0x10, 0x10, 0x10, 0x20,
-0x20, 0x20, 0x10, 0x20, 0x10, 0x10, 0x10, 0x10,
-0x20, 0x10, 0x01, 0x10, 0x01, 0x01, 0x01, 0x01,
-0x20, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
-0x20, 0x10, 0x02, 0x10, 0x02, 0x02, 0x02, 0x02,
-0x48, 0x10, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01,
-0x10, 0x10, 0x01, 0x10, 0x10, 0x10, 0x10, 0x01,
-0x10, 0x10, 0x10, 0x02, 0x10, 0x10, 0x10, 0x10,
-0x10, 0x02, 0x02, 0x10, 0x01, 0x10, 0x02, 0x02,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x10,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x10
-};
-
-static uchar to_lower_win1250ch[] = {
-0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
-0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
-0x20, 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, 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, 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, 0x7f,
-0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
-0x88, 0x89, 0x9a, 0x8b, 0x9c, 0x9d, 0x9e, 0x9f,
-0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
-0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
-0xa0, 0xa1, 0xa2, 0xb3, 0xa4, 0xb9, 0xa6, 0xdf,
-0xa8, 0xa9, 0xba, 0xab, 0xac, 0xad, 0xae, 0xbf,
-0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
-0xb8, 0xb9, 0xba, 0xbb, 0xbe, 0xbd, 0xbe, 0xbf,
-0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
-0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
-0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xd7,
-0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xdf,
-0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
-0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
-0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
-0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff
-};
-
-static uchar to_upper_win1250ch[] = {
-0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
-0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
-0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
-0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
-0x20, 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, 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, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
-0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
-0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
-0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
-0x98, 0x99, 0x8a, 0x9b, 0x8c, 0x8d, 0x8e, 0x8f,
-0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
-0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
-0xb0, 0xb1, 0xb2, 0xa3, 0xb4, 0xb5, 0xb6, 0xb7,
-0xb8, 0xa5, 0xaa, 0xbb, 0xbc, 0xbd, 0xbc, 0xaf,
-0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
-0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
-0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
-0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xa7,
-0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
-0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
-0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xf7,
-0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xff
-};
-
-
-
-static uchar sort_order_win1250ch[] = {
-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, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
-80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
-96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
-112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
-128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
-160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
-176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
-192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
-208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
-224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
-240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
-};
-
-static uchar _sort_order_win1250ch1[] = {
-0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
-0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
-0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
-0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
-/* space ord 32 0x20 */
-0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,
-0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91,
-/* 0 ord 48 0x30 */
-0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99,
-0x9a, 0x9b,
- /* colon ord 58 0x3a */
- 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1,
-0xa2,
- /* A ord 65 0x41 */
- 0xa4, 0xa5,
- /* C ord 67 0x43 */
- 0xff, 0xa8, 0xa9, 0xaa, 0xab,
-0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
-0xb5, 0xb6,
- /* R ord 82 0x52 */
- 0xb7,
- /* S ord 83 0x53 */
- 0xb9, 0xbc, 0xbd, 0xbe, 0xbf,
-0xc0, 0xc1, 0xc2,
- /* [ ord 91 0x5b */
- 0xc4, 0xc5, 0xc6, 0xc7, 0xc8,
-0xc9,
- /* a ord 97 0x61 */
- 0xa4, 0xa5, 0xff, 0xa8, 0xa9, 0xaa, 0xab,
-0xac, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
-0xb5, 0xb6, 0xb7, 0xb9, 0xbc, 0xbd, 0xbe, 0xbf,
-0xc0, 0xc1, 0xc2,
- /* { ord 123 0x7b */
- 0xca, 0xcb, 0xcc, 0xcd, 0x81,
-0x81, 0x81, 0xce, 0x81, 0xcf, 0xd0, 0xd1, 0xd2,
-0x81, 0xd3,
- /* Scaron ord 138 0x8a */
- 0xba, 0xd4, 0xb9, 0xbc, 0xc3, 0xc2,
-0x81, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb,
-0x81, 0xdc, 0xba, 0xdd, 0xb9, 0xbc, 0xc3, 0xc2,
-/* nobreakspace ord 160 0xa0 */
-0x82, 0xde, 0xdf, 0xb1, 0xe0, 0xa4, 0xe1, 0xe2,
-0xe3, 0xe4, 0xb9, 0xe5, 0xe6, 0xe7, 0xe8, 0xc2,
-0xe9, 0xea, 0xeb, 0xb1, 0xed, 0xee, 0x81, 0xef,
-/* cedilla ord 183 0xb8 */
-0xf0, 0xa4, 0xb9, 0xf1, 0xb1, 0xf2, 0xb1, 0xc2,
-0xb7, 0xa4, 0xa4, 0xa4, 0xa4, 0xb1, 0xa6, 0xa6,
-0xa7, 0xa9, 0xa9, 0xa9, 0xa9, 0xae, 0xae, 0xa8,
-/* Eth ord 208 0xd0 */
-0xa8, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xf3,
-0xb8, 0xbd, 0xbd, 0xbd, 0xbd, 0xc1, 0xbc, 0xbb,
-/* racute ord 224 0xe0 */
-0xb7, 0xa4, 0xa4, 0xa4, 0xa4, 0xb1, 0xa6, 0xa6,
-0xa7, 0xa9, 0xa9, 0xa9, 0xa9, 0xae, 0xae, 0xa8,
-/* eth ord 240 0xf0 */
-0xa8, 0xb3, 0xb3, 0xb4, 0xb4, 0xb4, 0xb4, 0xf4,
-0xb8, 0xbd, 0xbd, 0xbd, 0xbd, 0xc1, 0xbc, 0xf5
-};
-
-static uchar _sort_order_win1250ch2[] = {
-0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
-0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11,
-0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
-0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21,
-/* space ord 32 0x20 */
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-/* 0 ord 48 0x30 */
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01,
- /* colon ord 58 0x3a */
- 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01,
- /* A ord 65 0x41 */
- 0x01, 0x01,
- /* C ord 67 0x43 */
- 0xff, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01,
- /* R ord 82 0x52 */
- 0x01,
- /* S ord 83 0x53 */
- 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01, 0x01, 0x01,
- /* [ ord 91 0x5b */
- 0x01, 0x01, 0x01, 0x01, 0x01,
-0x01,
- /* a ord 97 0x61 */
- 0x02, 0x02, 0xff, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
-0x02, 0x02, 0x02,
- /* { ord 123 0x7b */
- 0x01, 0x01, 0x01, 0x01, 0x22,
-0x23, 0x24, 0x01, 0x25, 0x01, 0x01, 0x01, 0x01,
-0x26, 0x01,
- /* Scaron ord 138 0x8a */
- 0x01, 0x01, 0x03, 0x03, 0x01, 0x05,
-0x27, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
-0x28, 0x01, 0x02, 0x01, 0x04, 0x04, 0x02, 0x06,
-/* nobreakspace ord 160 0xa0 */
-0x02, 0x01, 0x01, 0x07, 0x01, 0x11, 0x01, 0x01,
-0x01, 0x01, 0x05, 0x01, 0x01, 0x01, 0x01, 0x03,
-0x01, 0x01, 0x01, 0x08, 0x01, 0x01, 0x29, 0x01,
-/* cedilla ord 184 0xb8 */
-0x01, 0x12, 0x06, 0x01, 0x05, 0x01, 0x06, 0x04,
-0x03, 0x03, 0x05, 0x07, 0x09, 0x03, 0x03, 0x05,
-0x01, 0x03, 0x09, 0x07, 0x05, 0x03, 0x05, 0x03,
-/* Eth ord 208 0xd0 */
-0x05, 0x03, 0x05, 0x03, 0x05, 0x09, 0x07, 0x01,
-0x01, 0x05, 0x03, 0x09, 0x07, 0x03, 0x05, 0x01,
-/* racute ord 224 0xe0 */
-0x04, 0x04, 0x06, 0x08, 0x0a, 0x04, 0x04, 0x06,
-0x02, 0x04, 0x0a, 0x08, 0x06, 0x04, 0x06, 0x04,
-/* eth ord 240 0xf0 */
-0x06, 0x04, 0x06, 0x04, 0x06, 0x0a, 0x08, 0x01,
-0x02, 0x06, 0x04, 0x0a, 0x08, 0x04, 0x06, 0x01
-};
-
-struct wordvalue {
- const uchar *word;
- uchar pass1;
- uchar pass2;
-};
-static struct wordvalue doubles[] = {
- { (uchar*) "ch", 0xad, 0x03 },
- { (uchar*) "c", 0xa6, 0x02 },
- { (uchar*) "Ch", 0xad, 0x02 },
- { (uchar*) "CH", 0xad, 0x01 },
- { (uchar*) "C", 0xa6, 0x01 },
-};
-
-#define NEXT_CMP_VALUE(src, p, pass, value, len) \
- while (1) { \
- if (IS_END(p, src, len)) { \
- if (pass == 0 && len > 0) { p= src; pass++; } \
- else { value = 0; break; } \
- } \
- value = ((pass == 0) ? _sort_order_win1250ch1[*p] \
- : _sort_order_win1250ch2[*p]); \
- if (value == 0xff) { \
- int i; \
- for (i = 0; i < (int) sizeof(doubles); i++) { \
- const uchar *patt = doubles[i].word; \
- const uchar *q = (const uchar *) p; \
- while (*patt \
- && !(IS_END(q, src, len)) \
- && (*patt == *q)) { \
- patt++; q++; \
- } \
- if (!(*patt)) { \
- value = (int)((pass == 0) \
- ? doubles[i].pass1 \
- : doubles[i].pass2); \
- p = (const uchar *) q - 1; \
- break; \
- } \
- } \
- } \
- p++; \
- break; \
- }
-
-#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len))
-
-static int my_strnncoll_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s1, size_t len1,
- const uchar *s2, size_t len2,
- my_bool s2_is_prefix)
-{
- int v1, v2;
- const uchar *p1, * p2;
- int pass1 = 0, pass2 = 0;
- int diff;
-
- if (s2_is_prefix && len1 > len2)
- len1=len2;
-
- p1 = s1; p2 = s2;
-
- do
- {
- NEXT_CMP_VALUE(s1, p1, pass1, v1, (int)len1);
- NEXT_CMP_VALUE(s2, p2, pass2, v2, (int)len2);
- if ((diff = v1 - v2))
- return diff;
- } while (v1);
- return 0;
-}
-
-
-/*
- TODO: Has to be fixed as strnncollsp in ctype-simple
-*/
-
-static
-int my_strnncollsp_win1250ch(CHARSET_INFO * cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- for ( ; slen && s[slen-1] == ' ' ; slen--);
- for ( ; tlen && t[tlen-1] == ' ' ; tlen--);
- return my_strnncoll_win1250ch(cs,s,slen,t,tlen,0);
-}
-
-
-static size_t my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- int value;
- const uchar *p;
- int pass = 0;
- size_t totlen = 0;
- p = src;
-
- do {
- NEXT_CMP_VALUE(src, p, pass, value, (int)srclen);
- if (totlen <= len)
- dest[totlen] = value;
- totlen++;
- } while (value) ;
- if (len > totlen)
- bfill(dest + totlen, len - totlen, ' ');
- return len;
-}
-
-#undef IS_END
-
-#ifdef REAL_MYSQL
-
-static uchar like_range_prefix_min_win1250ch[]=
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 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, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-/*
- The letter "C" is a special case:
- "CH" is sorted between "H" and "I".
- prefix_max for "C" is "I": prefix_max[0x43] == 0x49
- prefix_max for "c" is "i": prefix_max[0x63] == 0x69
- For all other characters: prefix_max[i] == i
-*/
-
-static uchar like_range_prefix_max_win1250ch[]=
-{
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 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, 0x49, 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, 0x69, 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, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
- 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
-};
-
-#define min_sort_char '\x20'
-#define max_sort_char '\xff'
-
-/*
-** Calculate min_str and max_str that ranges a LIKE string.
-** Arguments:
-** ptr Pointer to LIKE string.
-** ptr_length Length of LIKE string.
-** escape Escape character in LIKE. (Normally '\').
-** All escape characters should be removed from min_str and max_str
-** res_length Length of min_str and max_str.
-** min_str Smallest case sensitive string that ranges LIKE.
-** Should be space padded to res_length.
-** max_str Largest case sensitive string that ranges LIKE.
-** Normally padded with the biggest character sort value.
-**
-** The function should return 0 if ok and 1 if the LIKE string can't be
-** optimized !
-*/
-
-static my_bool
-my_like_range_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
- const char *ptr, size_t ptr_length,
- pbool escape, pbool w_one, pbool w_many,
- size_t res_length,
- char *min_str, char *max_str,
- size_t *min_length, size_t *max_length)
-{
-
- int only_min_found= 1;
- const char *end = ptr + ptr_length;
- char *min_org = min_str;
- char *min_end = min_str + res_length;
-
- /* return 1; */
-
- for (; ptr != end && min_str != min_end ; ptr++)
- {
- if (*ptr == escape && ptr+1 != end)
- ptr++; /* Skip escape */
- else if (*ptr == w_one || *ptr == w_many) /* '_' or '%' in SQL */
- break;
- *min_str= like_range_prefix_min_win1250ch[(uint) (uchar) (*ptr)];
- if (*min_str != min_sort_char)
- only_min_found= 0;
- min_str++;
- *max_str++= like_range_prefix_max_win1250ch[(uint) (uchar) (*ptr)];
- }
-
- if (cs->state & MY_CS_BINSORT)
- *min_length= (size_t) (min_str - min_org);
- else
- {
- /* 'a\0\0... is the smallest possible string */
- *min_length= res_length;
- }
- /* a\ff\ff... is the biggest possible string */
- *max_length= res_length;
-
- while (min_str != min_end)
- {
- *min_str++ = min_sort_char;
- *max_str++ = max_sort_char;
- }
- return (only_min_found);
-}
-
-
-static MY_COLLATION_HANDLER my_collation_czech_ci_handler =
-{
- NULL, /* init */
- my_strnncoll_win1250ch,
- my_strnncollsp_win1250ch,
- my_strnxfrm_win1250ch,
- my_strnxfrmlen_simple,
- my_like_range_win1250ch,
- my_wildcmp_8bit,
- my_strcasecmp_8bit,
- my_instr_simple,
- my_hash_sort_simple,
- my_propagate_simple
-};
-
-
-CHARSET_INFO my_charset_cp1250_czech_ci =
-{
- 34,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */
- "cp1250", /* cs name */
- "cp1250_czech_cs", /* name */
- "", /* comment */
- NULL, /* tailoring */
- ctype_win1250ch,
- to_lower_win1250ch,
- to_upper_win1250ch,
- sort_order_win1250ch,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- tab_cp1250_uni, /* tab_to_uni */
- idx_uni_cp1250, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 2, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 1, /* mbmaxlen */
- 0, /* min_sort_char */
- 0, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
- &my_charset_8bit_handler,
- &my_collation_czech_ci_handler
-};
-
-
-#endif /* REAL_MYSQL */
-
-#endif /* HAVE_CHARSET_cp1250 */
diff --git a/dep/mysqllite/strings/ctype.c b/dep/mysqllite/strings/ctype.c
deleted file mode 100644
index 4891e657b6e..00000000000
--- a/dep/mysqllite/strings/ctype.c
+++ /dev/null
@@ -1,430 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_ctype.h>
-#include <my_xml.h>
-#ifndef SCO
-#include <m_string.h>
-#endif
-
-
-/*
-
- This files implements routines which parse XML based
- character set and collation description files.
-
- Unicode collations are encoded according to
-
- Unicode Technical Standard #35
- Locale Data Markup Language (LDML)
- http://www.unicode.org/reports/tr35/
-
- and converted into ICU string according to
-
- Collation Customization
- http://oss.software.ibm.com/icu/userguide/Collate_Customization.html
-
-*/
-
-static char *mstr(char *str,const char *src,size_t l1,size_t l2)
-{
- l1= l1<l2 ? l1 : l2;
- memcpy(str,src,l1);
- str[l1]='\0';
- return str;
-}
-
-struct my_cs_file_section_st
-{
- int state;
- const char *str;
-};
-
-#define _CS_MISC 1
-#define _CS_ID 2
-#define _CS_CSNAME 3
-#define _CS_FAMILY 4
-#define _CS_ORDER 5
-#define _CS_COLNAME 6
-#define _CS_FLAG 7
-#define _CS_CHARSET 8
-#define _CS_COLLATION 9
-#define _CS_UPPERMAP 10
-#define _CS_LOWERMAP 11
-#define _CS_UNIMAP 12
-#define _CS_COLLMAP 13
-#define _CS_CTYPEMAP 14
-#define _CS_PRIMARY_ID 15
-#define _CS_BINARY_ID 16
-#define _CS_CSDESCRIPT 17
-#define _CS_RESET 18
-#define _CS_DIFF1 19
-#define _CS_DIFF2 20
-#define _CS_DIFF3 21
-#define _CS_IDENTICAL 22
-
-
-static struct my_cs_file_section_st sec[] =
-{
- {_CS_MISC, "xml"},
- {_CS_MISC, "xml/version"},
- {_CS_MISC, "xml/encoding"},
- {_CS_MISC, "charsets"},
- {_CS_MISC, "charsets/max-id"},
- {_CS_CHARSET, "charsets/charset"},
- {_CS_PRIMARY_ID, "charsets/charset/primary-id"},
- {_CS_BINARY_ID, "charsets/charset/binary-id"},
- {_CS_CSNAME, "charsets/charset/name"},
- {_CS_FAMILY, "charsets/charset/family"},
- {_CS_CSDESCRIPT, "charsets/charset/description"},
- {_CS_MISC, "charsets/charset/alias"},
- {_CS_MISC, "charsets/charset/ctype"},
- {_CS_CTYPEMAP, "charsets/charset/ctype/map"},
- {_CS_MISC, "charsets/charset/upper"},
- {_CS_UPPERMAP, "charsets/charset/upper/map"},
- {_CS_MISC, "charsets/charset/lower"},
- {_CS_LOWERMAP, "charsets/charset/lower/map"},
- {_CS_MISC, "charsets/charset/unicode"},
- {_CS_UNIMAP, "charsets/charset/unicode/map"},
- {_CS_COLLATION, "charsets/charset/collation"},
- {_CS_COLNAME, "charsets/charset/collation/name"},
- {_CS_ID, "charsets/charset/collation/id"},
- {_CS_ORDER, "charsets/charset/collation/order"},
- {_CS_FLAG, "charsets/charset/collation/flag"},
- {_CS_COLLMAP, "charsets/charset/collation/map"},
- {_CS_RESET, "charsets/charset/collation/rules/reset"},
- {_CS_DIFF1, "charsets/charset/collation/rules/p"},
- {_CS_DIFF2, "charsets/charset/collation/rules/s"},
- {_CS_DIFF3, "charsets/charset/collation/rules/t"},
- {_CS_IDENTICAL, "charsets/charset/collation/rules/i"},
- {0, NULL}
-};
-
-static struct my_cs_file_section_st * cs_file_sec(const char *attr, size_t len)
-{
- struct my_cs_file_section_st *s;
- for (s=sec; s->str; s++)
- {
- if (!strncmp(attr,s->str,len))
- return s;
- }
- return NULL;
-}
-
-#define MY_CS_CSDESCR_SIZE 64
-#define MY_CS_TAILORING_SIZE 1024
-
-typedef struct my_cs_file_info
-{
- char csname[MY_CS_NAME_SIZE];
- char name[MY_CS_NAME_SIZE];
- uchar ctype[MY_CS_CTYPE_TABLE_SIZE];
- uchar to_lower[MY_CS_TO_LOWER_TABLE_SIZE];
- uchar to_upper[MY_CS_TO_UPPER_TABLE_SIZE];
- uchar sort_order[MY_CS_SORT_ORDER_TABLE_SIZE];
- uint16 tab_to_uni[MY_CS_TO_UNI_TABLE_SIZE];
- char comment[MY_CS_CSDESCR_SIZE];
- char tailoring[MY_CS_TAILORING_SIZE];
- size_t tailoring_length;
- CHARSET_INFO cs;
- int (*add_collation)(CHARSET_INFO *cs);
-} MY_CHARSET_LOADER;
-
-
-
-static int fill_uchar(uchar *a,uint size,const char *str, size_t len)
-{
- uint i= 0;
- const char *s, *b, *e=str+len;
-
- for (s=str ; s < e ; i++)
- {
- for ( ; (s < e) && strchr(" \t\r\n",s[0]); s++) ;
- b=s;
- for ( ; (s < e) && !strchr(" \t\r\n",s[0]); s++) ;
- if (s == b || i > size)
- break;
- a[i]= (uchar) strtoul(b,NULL,16);
- }
- return 0;
-}
-
-static int fill_uint16(uint16 *a,uint size,const char *str, size_t len)
-{
- uint i= 0;
-
- const char *s, *b, *e=str+len;
- for (s=str ; s < e ; i++)
- {
- for ( ; (s < e) && strchr(" \t\r\n",s[0]); s++) ;
- b=s;
- for ( ; (s < e) && !strchr(" \t\r\n",s[0]); s++) ;
- if (s == b || i > size)
- break;
- a[i]= (uint16) strtol(b,NULL,16);
- }
- return 0;
-}
-
-
-static int cs_enter(MY_XML_PARSER *st,const char *attr, size_t len)
-{
- struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data;
- struct my_cs_file_section_st *s= cs_file_sec(attr,len);
-
- if ( s && (s->state == _CS_CHARSET))
- bzero(&i->cs,sizeof(i->cs));
-
- if (s && (s->state == _CS_COLLATION))
- i->tailoring_length= 0;
-
- return MY_XML_OK;
-}
-
-
-static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len)
-{
- struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data;
- struct my_cs_file_section_st *s= cs_file_sec(attr,len);
- int state= s ? s->state : 0;
- int rc;
-
- switch(state){
- case _CS_COLLATION:
- rc= i->add_collation ? i->add_collation(&i->cs) : MY_XML_OK;
- break;
- default:
- rc=MY_XML_OK;
- }
- return rc;
-}
-
-
-static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len)
-{
- struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data;
- struct my_cs_file_section_st *s;
- int state= (int)((s=cs_file_sec(st->attr, strlen(st->attr))) ? s->state :
- 0);
-
- switch (state) {
- case _CS_ID:
- i->cs.number= strtol(attr,(char**)NULL,10);
- break;
- case _CS_BINARY_ID:
- i->cs.binary_number= strtol(attr,(char**)NULL,10);
- break;
- case _CS_PRIMARY_ID:
- i->cs.primary_number= strtol(attr,(char**)NULL,10);
- break;
- case _CS_COLNAME:
- i->cs.name=mstr(i->name,attr,len,MY_CS_NAME_SIZE-1);
- break;
- case _CS_CSNAME:
- i->cs.csname=mstr(i->csname,attr,len,MY_CS_NAME_SIZE-1);
- break;
- case _CS_CSDESCRIPT:
- i->cs.comment=mstr(i->comment,attr,len,MY_CS_CSDESCR_SIZE-1);
- break;
- case _CS_FLAG:
- if (!strncmp("primary",attr,len))
- i->cs.state|= MY_CS_PRIMARY;
- else if (!strncmp("binary",attr,len))
- i->cs.state|= MY_CS_BINSORT;
- else if (!strncmp("compiled",attr,len))
- i->cs.state|= MY_CS_COMPILED;
- break;
- case _CS_UPPERMAP:
- fill_uchar(i->to_upper,MY_CS_TO_UPPER_TABLE_SIZE,attr,len);
- i->cs.to_upper=i->to_upper;
- break;
- case _CS_LOWERMAP:
- fill_uchar(i->to_lower,MY_CS_TO_LOWER_TABLE_SIZE,attr,len);
- i->cs.to_lower=i->to_lower;
- break;
- case _CS_UNIMAP:
- fill_uint16(i->tab_to_uni,MY_CS_TO_UNI_TABLE_SIZE,attr,len);
- i->cs.tab_to_uni=i->tab_to_uni;
- break;
- case _CS_COLLMAP:
- fill_uchar(i->sort_order,MY_CS_SORT_ORDER_TABLE_SIZE,attr,len);
- i->cs.sort_order=i->sort_order;
- break;
- case _CS_CTYPEMAP:
- fill_uchar(i->ctype,MY_CS_CTYPE_TABLE_SIZE,attr,len);
- i->cs.ctype=i->ctype;
- break;
- case _CS_RESET:
- case _CS_DIFF1:
- case _CS_DIFF2:
- case _CS_DIFF3:
- case _CS_IDENTICAL:
- {
- /*
- Convert collation description from
- Locale Data Markup Language (LDML)
- into ICU Collation Customization expression.
- */
- char arg[16];
- const char *cmd[]= {"&","<","<<","<<<","="};
- i->cs.tailoring= i->tailoring;
- mstr(arg,attr,len,sizeof(arg)-1);
- if (i->tailoring_length + 20 < sizeof(i->tailoring))
- {
- char *dst= i->tailoring_length + i->tailoring;
- i->tailoring_length+= sprintf(dst," %s %s",cmd[state-_CS_RESET],arg);
- }
- }
- }
- return MY_XML_OK;
-}
-
-
-my_bool my_parse_charset_xml(const char *buf, size_t len,
- int (*add_collation)(CHARSET_INFO *cs))
-{
- MY_XML_PARSER p;
- struct my_cs_file_info i;
- my_bool rc;
-
- my_xml_parser_create(&p);
- my_xml_set_enter_handler(&p,cs_enter);
- my_xml_set_value_handler(&p,cs_value);
- my_xml_set_leave_handler(&p,cs_leave);
- i.add_collation= add_collation;
- my_xml_set_user_data(&p,(void*)&i);
- rc= (my_xml_parse(&p,buf,len) == MY_XML_OK) ? FALSE : TRUE;
- my_xml_parser_free(&p);
- return rc;
-}
-
-
-/*
- Check repertoire: detect pure ascii strings
-*/
-uint
-my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong length)
-{
- const char *strend= str + length;
- if (cs->mbminlen == 1)
- {
- for ( ; str < strend; str++)
- {
- if (((uchar) *str) > 0x7F)
- return MY_REPERTOIRE_UNICODE30;
- }
- }
- else
- {
- my_wc_t wc;
- int chlen;
- for (;
- (chlen= cs->cset->mb_wc(cs, &wc, (uchar*) str, (uchar*) strend)) > 0;
- str+= chlen)
- {
- if (wc > 0x7F)
- return MY_REPERTOIRE_UNICODE30;
- }
- }
- return MY_REPERTOIRE_ASCII;
-}
-
-
-/*
- Returns repertoire for charset
-*/
-uint my_charset_repertoire(CHARSET_INFO *cs)
-{
- return cs->state & MY_CS_PUREASCII ?
- MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
-}
-
-
-/*
- Detect whether a character set is ASCII compatible.
-
- Returns TRUE for:
-
- - all 8bit character sets whose Unicode mapping of 0x7B is '{'
- (ignores swe7 which maps 0x7B to "LATIN LETTER A WITH DIAERESIS")
-
- - all multi-byte character sets having mbminlen == 1
- (ignores ucs2 whose mbminlen is 2)
-
- TODO:
-
- When merging to 5.2, this function should be changed
- to check a new flag MY_CS_NONASCII,
-
- return (cs->flag & MY_CS_NONASCII) ? 0 : 1;
-
- This flag was previously added into 5.2 under terms
- of WL#3759 "Optimize identifier conversion in client-server protocol"
- especially to mark character sets not compatible with ASCII.
-
- We won't backport this flag to 5.0 or 5.1.
- This function is Ok for 5.0 and 5.1, because we're not going
- to introduce new tricky character sets between 5.0 and 5.2.
-*/
-my_bool
-my_charset_is_ascii_based(CHARSET_INFO *cs)
-{
- return
- (cs->mbmaxlen == 1 && cs->tab_to_uni && cs->tab_to_uni['{'] == '{') ||
- (cs->mbminlen == 1 && cs->mbmaxlen > 1);
-}
-
-
-/*
- Detect if a character set is 8bit,
- and it is pure ascii, i.e. doesn't have
- characters outside U+0000..U+007F
- This functions is shared between "conf_to_src"
- and dynamic charsets loader in "mysqld".
-*/
-my_bool
-my_charset_is_8bit_pure_ascii(CHARSET_INFO *cs)
-{
- size_t code;
- if (!cs->tab_to_uni)
- return 0;
- for (code= 0; code < 256; code++)
- {
- if (cs->tab_to_uni[code] > 0x7F)
- return 0;
- }
- return 1;
-}
-
-
-/*
- Shared function between conf_to_src and mysys.
- Check if a 8bit character set is compatible with
- ascii on the range 0x00..0x7F.
-*/
-my_bool
-my_charset_is_ascii_compatible(CHARSET_INFO *cs)
-{
- uint i;
- if (!cs->tab_to_uni)
- return 1;
- for (i= 0; i < 128; i++)
- {
- if (cs->tab_to_uni[i] != i)
- return 0;
- }
- return 1;
-}
diff --git a/dep/mysqllite/strings/decimal.c b/dep/mysqllite/strings/decimal.c
deleted file mode 100644
index 7625ed80ec3..00000000000
--- a/dep/mysqllite/strings/decimal.c
+++ /dev/null
@@ -1,3128 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#line 18 "decimal.c"
-
-/*
-=======================================================================
- NOTE: this library implements SQL standard "exact numeric" type
- and is not at all generic, but rather intentinally crippled to
- follow the standard :)
-=======================================================================
- Quoting the standard
- (SQL:2003, Part 2 Foundations, aka ISO/IEC 9075-2:2003)
-
-4.4.2 Characteristics of numbers, page 27:
-
- An exact numeric type has a precision P and a scale S. P is a positive
- integer that determines the number of significant digits in a
- particular radix R, where R is either 2 or 10. S is a non-negative
- integer. Every value of an exact numeric type of scale S is of the
- form n*10^{-S}, where n is an integer such that ­-R^P <= n <= R^P.
-
- [...]
-
- If an assignment of some number would result in a loss of its most
- significant digit, an exception condition is raised. If least
- significant digits are lost, implementation-defined rounding or
- truncating occurs, with no exception condition being raised.
-
- [...]
-
- Whenever an exact or approximate numeric value is assigned to an exact
- numeric value site, an approximation of its value that preserves
- leading significant digits after rounding or truncating is represented
- in the declared type of the target. The value is converted to have the
- precision and scale of the target. The choice of whether to truncate
- or round is implementation-defined.
-
- [...]
-
- All numeric values between the smallest and the largest value,
- inclusive, in a given exact numeric type have an approximation
- obtained by rounding or truncation for that type; it is
- implementation-defined which other numeric values have such
- approximations.
-
-5.3 <literal>, page 143
-
- <exact numeric literal> ::=
- <unsigned integer> [ <period> [ <unsigned integer> ] ]
- | <period> <unsigned integer>
-
-6.1 <data type>, page 165:
-
- 19) The <scale> of an <exact numeric type> shall not be greater than
- the <precision> of the <exact numeric type>.
-
- 20) For the <exact numeric type>s DECIMAL and NUMERIC:
-
- a) The maximum value of <precision> is implementation-defined.
- <precision> shall not be greater than this value.
- b) The maximum value of <scale> is implementation-defined. <scale>
- shall not be greater than this maximum value.
-
- 21) NUMERIC specifies the data type exact numeric, with the decimal
- precision and scale specified by the <precision> and <scale>.
-
- 22) DECIMAL specifies the data type exact numeric, with the decimal
- scale specified by the <scale> and the implementation-defined
- decimal precision equal to or greater than the value of the
- specified <precision>.
-
-6.26 <numeric value expression>, page 241:
-
- 1) If the declared type of both operands of a dyadic arithmetic
- operator is exact numeric, then the declared type of the result is
- an implementation-defined exact numeric type, with precision and
- scale determined as follows:
-
- a) Let S1 and S2 be the scale of the first and second operands
- respectively.
- b) The precision of the result of addition and subtraction is
- implementation-defined, and the scale is the maximum of S1 and S2.
- c) The precision of the result of multiplication is
- implementation-defined, and the scale is S1 + S2.
- d) The precision and scale of the result of division are
- implementation-defined.
-*/
-
-#include <my_global.h>
-#include <m_ctype.h>
-#include <myisampack.h>
-#include <my_sys.h> /* for my_alloca */
-#include <m_string.h>
-#include <decimal.h>
-
-/*
- Internally decimal numbers are stored base 10^9 (see DIG_BASE below)
- So one variable of type decimal_digit_t is limited:
-
- 0 < decimal_digit <= DIG_MAX < DIG_BASE
-
- in the struct st_decimal_t:
-
- intg is the number of *decimal* digits (NOT number of decimal_digit_t's !)
- before the point
- frac - number of decimal digits after the point
- buf is an array of decimal_digit_t's
- len is the length of buf (length of allocated space) in decimal_digit_t's,
- not in bytes
-*/
-typedef decimal_digit_t dec1;
-typedef longlong dec2;
-
-#define DIG_PER_DEC1 9
-#define DIG_MASK 100000000
-#define DIG_BASE 1000000000
-#define DIG_MAX (DIG_BASE-1)
-#define DIG_BASE2 ((dec2)DIG_BASE * (dec2)DIG_BASE)
-#define ROUND_UP(X) (((X)+DIG_PER_DEC1-1)/DIG_PER_DEC1)
-static const dec1 powers10[DIG_PER_DEC1+1]={
- 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000};
-static const int dig2bytes[DIG_PER_DEC1+1]={0, 1, 1, 2, 2, 3, 3, 4, 4, 4};
-static const dec1 frac_max[DIG_PER_DEC1-1]={
- 900000000, 990000000, 999000000,
- 999900000, 999990000, 999999000,
- 999999900, 999999990 };
-
-#ifdef HAVE_purify
-#define sanity(d) DBUG_ASSERT((d)->len > 0)
-#else
-#define sanity(d) DBUG_ASSERT((d)->len >0 && ((d)->buf[0] | \
- (d)->buf[(d)->len-1] | 1))
-#endif
-
-#define FIX_INTG_FRAC_ERROR(len, intg1, frac1, error) \
- do \
- { \
- if (unlikely(intg1+frac1 > (len))) \
- { \
- if (unlikely(intg1 > (len))) \
- { \
- intg1=(len); \
- frac1=0; \
- error=E_DEC_OVERFLOW; \
- } \
- else \
- { \
- frac1=(len)-intg1; \
- error=E_DEC_TRUNCATED; \
- } \
- } \
- else \
- error=E_DEC_OK; \
- } while(0)
-
-#define ADD(to, from1, from2, carry) /* assume carry <= 1 */ \
- do \
- { \
- dec1 a=(from1)+(from2)+(carry); \
- DBUG_ASSERT((carry) <= 1); \
- if (((carry)= a >= DIG_BASE)) /* no division here! */ \
- a-=DIG_BASE; \
- (to)=a; \
- } while(0)
-
-#define ADD2(to, from1, from2, carry) \
- do \
- { \
- dec2 a=((dec2)(from1))+(from2)+(carry); \
- if (((carry)= a >= DIG_BASE)) \
- a-=DIG_BASE; \
- if (unlikely(a >= DIG_BASE)) \
- { \
- a-=DIG_BASE; \
- carry++; \
- } \
- (to)=(dec1) a; \
- } while(0)
-
-#define SUB(to, from1, from2, carry) /* to=from1-from2 */ \
- do \
- { \
- dec1 a=(from1)-(from2)-(carry); \
- if (((carry)= a < 0)) \
- a+=DIG_BASE; \
- (to)=a; \
- } while(0)
-
-#define SUB2(to, from1, from2, carry) /* to=from1-from2 */ \
- do \
- { \
- dec1 a=(from1)-(from2)-(carry); \
- if (((carry)= a < 0)) \
- a+=DIG_BASE; \
- if (unlikely(a < 0)) \
- { \
- a+=DIG_BASE; \
- carry++; \
- } \
- (to)=a; \
- } while(0)
-
-/*
- Get maximum value for given precision and scale
-
- SYNOPSIS
- max_decimal()
- precision/scale - see decimal_bin_size() below
- to - decimal where where the result will be stored
- to->buf and to->len must be set.
-*/
-
-void max_decimal(int precision, int frac, decimal_t *to)
-{
- int intpart;
- dec1 *buf= to->buf;
- DBUG_ASSERT(precision && precision >= frac);
-
- to->sign= 0;
- if ((intpart= to->intg= (precision - frac)))
- {
- int firstdigits= intpart % DIG_PER_DEC1;
- if (firstdigits)
- *buf++= powers10[firstdigits] - 1; /* get 9 99 999 ... */
- for(intpart/= DIG_PER_DEC1; intpart; intpart--)
- *buf++= DIG_MAX;
- }
-
- if ((to->frac= frac))
- {
- int lastdigits= frac % DIG_PER_DEC1;
- for(frac/= DIG_PER_DEC1; frac; frac--)
- *buf++= DIG_MAX;
- if (lastdigits)
- *buf= frac_max[lastdigits - 1];
- }
-}
-
-
-static dec1 *remove_leading_zeroes(decimal_t *from, int *intg_result)
-{
- int intg= from->intg, i;
- dec1 *buf0= from->buf;
- i= ((intg - 1) % DIG_PER_DEC1) + 1;
- while (intg > 0 && *buf0 == 0)
- {
- intg-= i;
- i= DIG_PER_DEC1;
- buf0++;
- }
- if (intg > 0)
- {
- for (i= (intg - 1) % DIG_PER_DEC1; *buf0 < powers10[i--]; intg--) ;
- DBUG_ASSERT(intg > 0);
- }
- else
- intg=0;
- *intg_result= intg;
- return buf0;
-}
-
-
-/*
- Count actual length of fraction part (without ending zeroes)
-
- SYNOPSIS
- decimal_actual_fraction()
- from number for processing
-*/
-
-int decimal_actual_fraction(decimal_t *from)
-{
- int frac= from->frac, i;
- dec1 *buf0= from->buf + ROUND_UP(from->intg) + ROUND_UP(frac) - 1;
-
- if (frac == 0)
- return 0;
-
- i= ((frac - 1) % DIG_PER_DEC1 + 1);
- while (frac > 0 && *buf0 == 0)
- {
- frac-= i;
- i= DIG_PER_DEC1;
- buf0--;
- }
- if (frac > 0)
- {
- for (i= DIG_PER_DEC1 - ((frac - 1) % DIG_PER_DEC1);
- *buf0 % powers10[i++] == 0;
- frac--) ;
- }
- return frac;
-}
-
-
-/*
- Convert decimal to its printable string representation
-
- SYNOPSIS
- decimal2string()
- from - value to convert
- to - points to buffer where string representation
- should be stored
- *to_len - in: size of to buffer
- out: length of the actually written string
- fixed_precision - 0 if representation can be variable length and
- fixed_decimals will not be checked in this case.
- Put number as with fixed point position with this
- number of digits (sign counted and decimal point is
- counted)
- fixed_decimals - number digits after point.
- filler - character to fill gaps in case of fixed_precision > 0
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW
-*/
-
-int decimal2string(decimal_t *from, char *to, int *to_len,
- int fixed_precision, int fixed_decimals,
- char filler)
-{
- int len, intg, frac= from->frac, i, intg_len, frac_len, fill;
- /* number digits before decimal point */
- int fixed_intg= (fixed_precision ?
- (fixed_precision - fixed_decimals) : 0);
- int error=E_DEC_OK;
- char *s=to;
- dec1 *buf, *buf0=from->buf, tmp;
-
- DBUG_ASSERT(*to_len >= 2+from->sign);
-
- /* removing leading zeroes */
- buf0= remove_leading_zeroes(from, &intg);
- if (unlikely(intg+frac==0))
- {
- intg=1;
- tmp=0;
- buf0=&tmp;
- }
-
- if (!(intg_len= fixed_precision ? fixed_intg : intg))
- intg_len= 1;
- frac_len= fixed_precision ? fixed_decimals : frac;
- len= from->sign + intg_len + test(frac) + frac_len;
- if (fixed_precision)
- {
- if (frac > fixed_decimals)
- {
- error= E_DEC_TRUNCATED;
- frac= fixed_decimals;
- }
- if (intg > fixed_intg)
- {
- error= E_DEC_OVERFLOW;
- intg= fixed_intg;
- }
- }
- else if (unlikely(len > --*to_len)) /* reserve one byte for \0 */
- {
- int j= len-*to_len;
- error= (frac && j <= frac + 1) ? E_DEC_TRUNCATED : E_DEC_OVERFLOW;
- if (frac && j >= frac + 1) j--;
- if (j > frac)
- {
- intg-= j-frac;
- frac= 0;
- }
- else
- frac-=j;
- len= from->sign + intg_len + test(frac) + frac_len;
- }
- *to_len=len;
- s[len]=0;
-
- if (from->sign)
- *s++='-';
-
- if (frac)
- {
- char *s1= s + intg_len;
- fill= frac_len - frac;
- buf=buf0+ROUND_UP(intg);
- *s1++='.';
- for (; frac>0; frac-=DIG_PER_DEC1)
- {
- dec1 x=*buf++;
- for (i=min(frac, DIG_PER_DEC1); i; i--)
- {
- dec1 y=x/DIG_MASK;
- *s1++='0'+(uchar)y;
- x-=y*DIG_MASK;
- x*=10;
- }
- }
- for(; fill; fill--)
- *s1++=filler;
- }
-
- fill= intg_len - intg;
- if (intg == 0)
- fill--; /* symbol 0 before digital point */
- for(; fill; fill--)
- *s++=filler;
- if (intg)
- {
- s+=intg;
- for (buf=buf0+ROUND_UP(intg); intg>0; intg-=DIG_PER_DEC1)
- {
- dec1 x=*--buf;
- for (i=min(intg, DIG_PER_DEC1); i; i--)
- {
- dec1 y=x/10;
- *--s='0'+(uchar)(x-y*10);
- x=y;
- }
- }
- }
- else
- *s= '0';
- return error;
-}
-
-
-/*
- Return bounds of decimal digits in the number
-
- SYNOPSIS
- digits_bounds()
- from - decimal number for processing
- start_result - index (from 0 ) of first decimal digits will
- be written by this address
- end_result - index of position just after last decimal digit
- be written by this address
-*/
-
-static void digits_bounds(decimal_t *from, int *start_result, int *end_result)
-{
- int start, stop, i;
- dec1 *buf_beg= from->buf;
- dec1 *end= from->buf + ROUND_UP(from->intg) + ROUND_UP(from->frac);
- dec1 *buf_end= end - 1;
-
- /* find non-zero digit from number begining */
- while (buf_beg < end && *buf_beg == 0)
- buf_beg++;
-
- if (buf_beg >= end)
- {
- /* it is zero */
- *start_result= *end_result= 0;
- return;
- }
-
- /* find non-zero decimal digit from number begining */
- if (buf_beg == from->buf && from->intg)
- {
- start= DIG_PER_DEC1 - (i= ((from->intg-1) % DIG_PER_DEC1 + 1));
- i--;
- }
- else
- {
- i= DIG_PER_DEC1 - 1;
- start= (int) ((buf_beg - from->buf) * DIG_PER_DEC1);
- }
- if (buf_beg < end)
- for (; *buf_beg < powers10[i--]; start++) ;
- *start_result= start; /* index of first decimal digit (from 0) */
-
- /* find non-zero digit at the end */
- while (buf_end > buf_beg && *buf_end == 0)
- buf_end--;
- /* find non-zero decimal digit from the end */
- if (buf_end == end - 1 && from->frac)
- {
- stop= (int) (((buf_end - from->buf) * DIG_PER_DEC1 +
- (i= ((from->frac - 1) % DIG_PER_DEC1 + 1))));
- i= DIG_PER_DEC1 - i + 1;
- }
- else
- {
- stop= (int) ((buf_end - from->buf + 1) * DIG_PER_DEC1);
- i= 1;
- }
- for (; *buf_end % powers10[i++] == 0; stop--) ;
- *end_result= stop; /* index of position after last decimal digit (from 0) */
-}
-
-
-/*
- Left shift for alignment of data in buffer
-
- SYNOPSIS
- do_mini_left_shift()
- dec pointer to decimal number which have to be shifted
- shift number of decimal digits on which it should be shifted
- beg/end bounds of decimal digits (see digits_bounds())
-
- NOTE
- Result fitting in the buffer should be garanted.
- 'shift' have to be from 1 to DIG_PER_DEC1-1 (inclusive)
-*/
-
-void do_mini_left_shift(decimal_t *dec, int shift, int beg, int last)
-{
- dec1 *from= dec->buf + ROUND_UP(beg + 1) - 1;
- dec1 *end= dec->buf + ROUND_UP(last) - 1;
- int c_shift= DIG_PER_DEC1 - shift;
- DBUG_ASSERT(from >= dec->buf);
- DBUG_ASSERT(end < dec->buf + dec->len);
- if (beg % DIG_PER_DEC1 < shift)
- *(from - 1)= (*from) / powers10[c_shift];
- for(; from < end; from++)
- *from= ((*from % powers10[c_shift]) * powers10[shift] +
- (*(from + 1)) / powers10[c_shift]);
- *from= (*from % powers10[c_shift]) * powers10[shift];
-}
-
-
-/*
- Right shift for alignment of data in buffer
-
- SYNOPSIS
- do_mini_left_shift()
- dec pointer to decimal number which have to be shifted
- shift number of decimal digits on which it should be shifted
- beg/end bounds of decimal digits (see digits_bounds())
-
- NOTE
- Result fitting in the buffer should be garanted.
- 'shift' have to be from 1 to DIG_PER_DEC1-1 (inclusive)
-*/
-
-void do_mini_right_shift(decimal_t *dec, int shift, int beg, int last)
-{
- dec1 *from= dec->buf + ROUND_UP(last) - 1;
- dec1 *end= dec->buf + ROUND_UP(beg + 1) - 1;
- int c_shift= DIG_PER_DEC1 - shift;
- DBUG_ASSERT(from < dec->buf + dec->len);
- DBUG_ASSERT(end >= dec->buf);
- if (DIG_PER_DEC1 - ((last - 1) % DIG_PER_DEC1 + 1) < shift)
- *(from + 1)= (*from % powers10[shift]) * powers10[c_shift];
- for(; from > end; from--)
- *from= (*from / powers10[shift] +
- (*(from - 1) % powers10[shift]) * powers10[c_shift]);
- *from= *from / powers10[shift];
-}
-
-
-/*
- Shift of decimal digits in given number (with rounding if it need)
-
- SYNOPSIS
- decimal_shift()
- dec number to be shifted
- shift number of decimal positions
- shift > 0 means shift to left shift
- shift < 0 meand right shift
- NOTE
- In fact it is multipling on 10^shift.
- RETURN
- E_DEC_OK OK
- E_DEC_OVERFLOW operation lead to overflow, number is untoched
- E_DEC_TRUNCATED number was rounded to fit into buffer
-*/
-
-int decimal_shift(decimal_t *dec, int shift)
-{
- /* index of first non zero digit (all indexes from 0) */
- int beg;
- /* index of position after last decimal digit */
- int end;
- /* index of digit position just after point */
- int point= ROUND_UP(dec->intg) * DIG_PER_DEC1;
- /* new point position */
- int new_point= point + shift;
- /* number of digits in result */
- int digits_int, digits_frac;
- /* length of result and new fraction in big digits*/
- int new_len, new_frac_len;
- /* return code */
- int err= E_DEC_OK;
- int new_front;
-
- if (shift == 0)
- return E_DEC_OK;
-
- digits_bounds(dec, &beg, &end);
-
- if (beg == end)
- {
- decimal_make_zero(dec);
- return E_DEC_OK;
- }
-
- digits_int= new_point - beg;
- set_if_bigger(digits_int, 0);
- digits_frac= end - new_point;
- set_if_bigger(digits_frac, 0);
-
- if ((new_len= ROUND_UP(digits_int) + (new_frac_len= ROUND_UP(digits_frac))) >
- dec->len)
- {
- int lack= new_len - dec->len;
- int diff;
-
- if (new_frac_len < lack)
- return E_DEC_OVERFLOW; /* lack more then we have in fraction */
-
- /* cat off fraction part to allow new number to fit in our buffer */
- err= E_DEC_TRUNCATED;
- new_frac_len-= lack;
- diff= digits_frac - (new_frac_len * DIG_PER_DEC1);
- /* Make rounding method as parameter? */
- decimal_round(dec, dec, end - point - diff, HALF_UP);
- end-= diff;
- digits_frac= new_frac_len * DIG_PER_DEC1;
-
- if (end <= beg)
- {
- /*
- we lost all digits (they will be shifted out of buffer), so we can
- just return 0
- */
- decimal_make_zero(dec);
- return E_DEC_TRUNCATED;
- }
- }
-
- if (shift % DIG_PER_DEC1)
- {
- int l_mini_shift, r_mini_shift, mini_shift;
- int do_left;
- /*
- Calculate left/right shift to align decimal digits inside our bug
- digits correctly
- */
- if (shift > 0)
- {
- l_mini_shift= shift % DIG_PER_DEC1;
- r_mini_shift= DIG_PER_DEC1 - l_mini_shift;
- /*
- It is left shift so prefer left shift, but if we have not place from
- left, we have to have it from right, because we checked length of
- result
- */
- do_left= l_mini_shift <= beg;
- DBUG_ASSERT(do_left || (dec->len * DIG_PER_DEC1 - end) >= r_mini_shift);
- }
- else
- {
- r_mini_shift= (-shift) % DIG_PER_DEC1;
- l_mini_shift= DIG_PER_DEC1 - r_mini_shift;
- /* see comment above */
- do_left= !((dec->len * DIG_PER_DEC1 - end) >= r_mini_shift);
- DBUG_ASSERT(!do_left || l_mini_shift <= beg);
- }
- if (do_left)
- {
- do_mini_left_shift(dec, l_mini_shift, beg, end);
- mini_shift=- l_mini_shift;
- }
- else
- {
- do_mini_right_shift(dec, r_mini_shift, beg, end);
- mini_shift= r_mini_shift;
- }
- new_point+= mini_shift;
- /*
- If number is shifted and correctly aligned in buffer we can
- finish
- */
- if (!(shift+= mini_shift) && (new_point - digits_int) < DIG_PER_DEC1)
- {
- dec->intg= digits_int;
- dec->frac= digits_frac;
- return err; /* already shifted as it should be */
- }
- beg+= mini_shift;
- end+= mini_shift;
- }
-
- /* if new 'decimal front' is in first digit, we do not need move digits */
- if ((new_front= (new_point - digits_int)) >= DIG_PER_DEC1 ||
- new_front < 0)
- {
- /* need to move digits */
- int d_shift;
- dec1 *to, *barier;
- if (new_front > 0)
- {
- /* move left */
- d_shift= new_front / DIG_PER_DEC1;
- to= dec->buf + (ROUND_UP(beg + 1) - 1 - d_shift);
- barier= dec->buf + (ROUND_UP(end) - 1 - d_shift);
- DBUG_ASSERT(to >= dec->buf);
- DBUG_ASSERT(barier + d_shift < dec->buf + dec->len);
- for(; to <= barier; to++)
- *to= *(to + d_shift);
- for(barier+= d_shift; to <= barier; to++)
- *to= 0;
- d_shift= -d_shift;
- }
- else
- {
- /* move right */
- d_shift= (1 - new_front) / DIG_PER_DEC1;
- to= dec->buf + ROUND_UP(end) - 1 + d_shift;
- barier= dec->buf + ROUND_UP(beg + 1) - 1 + d_shift;
- DBUG_ASSERT(to < dec->buf + dec->len);
- DBUG_ASSERT(barier - d_shift >= dec->buf);
- for(; to >= barier; to--)
- *to= *(to - d_shift);
- for(barier-= d_shift; to >= barier; to--)
- *to= 0;
- }
- d_shift*= DIG_PER_DEC1;
- beg+= d_shift;
- end+= d_shift;
- new_point+= d_shift;
- }
-
- /*
- If there are gaps then fill ren with 0.
-
- Only one of following 'for' loops will work becouse beg <= end
- */
- beg= ROUND_UP(beg + 1) - 1;
- end= ROUND_UP(end) - 1;
- DBUG_ASSERT(new_point >= 0);
-
- /* We don't want negative new_point below */
- if (new_point != 0)
- new_point= ROUND_UP(new_point) - 1;
-
- if (new_point > end)
- {
- do
- {
- dec->buf[new_point]=0;
- } while (--new_point > end);
- }
- else
- {
- for (; new_point < beg; new_point++)
- dec->buf[new_point]= 0;
- }
- dec->intg= digits_int;
- dec->frac= digits_frac;
- return err;
-}
-
-
-/*
- Convert string to decimal
-
- SYNOPSIS
- internal_str2decl()
- from - value to convert. Doesn't have to be \0 terminated!
- to - decimal where where the result will be stored
- to->buf and to->len must be set.
- end - Pointer to pointer to end of string. Will on return be
- set to the char after the last used character
- fixed - use to->intg, to->frac as limits for input number
-
- NOTE
- to->intg and to->frac can be modified even when fixed=1
- (but only decreased, in this case)
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_BAD_NUM/E_DEC_OOM
- In case of E_DEC_FATAL_ERROR *to is set to decimal zero
- (to make error handling easier)
-*/
-
-int
-internal_str2dec(const char *from, decimal_t *to, char **end, my_bool fixed)
-{
- const char *s= from, *s1, *endp, *end_of_string= *end;
- int i, intg, frac, error, intg1, frac1;
- dec1 x,*buf;
- sanity(to);
-
- error= E_DEC_BAD_NUM; /* In case of bad number */
- while (s < end_of_string && my_isspace(&my_charset_latin1, *s))
- s++;
- if (s == end_of_string)
- goto fatal_error;
-
- if ((to->sign= (*s == '-')))
- s++;
- else if (*s == '+')
- s++;
-
- s1=s;
- while (s < end_of_string && my_isdigit(&my_charset_latin1, *s))
- s++;
- intg= (int) (s-s1);
- if (s < end_of_string && *s=='.')
- {
- endp= s+1;
- while (endp < end_of_string && my_isdigit(&my_charset_latin1, *endp))
- endp++;
- frac= (int) (endp - s - 1);
- }
- else
- {
- frac= 0;
- endp= s;
- }
-
- *end= (char*) endp;
-
- if (frac+intg == 0)
- goto fatal_error;
-
- error= 0;
- if (fixed)
- {
- if (frac > to->frac)
- {
- error=E_DEC_TRUNCATED;
- frac=to->frac;
- }
- if (intg > to->intg)
- {
- error=E_DEC_OVERFLOW;
- intg=to->intg;
- }
- intg1=ROUND_UP(intg);
- frac1=ROUND_UP(frac);
- if (intg1+frac1 > to->len)
- {
- error= E_DEC_OOM;
- goto fatal_error;
- }
- }
- else
- {
- intg1=ROUND_UP(intg);
- frac1=ROUND_UP(frac);
- FIX_INTG_FRAC_ERROR(to->len, intg1, frac1, error);
- if (unlikely(error))
- {
- frac=frac1*DIG_PER_DEC1;
- if (error == E_DEC_OVERFLOW)
- intg=intg1*DIG_PER_DEC1;
- }
- }
- /* Error is guranteed to be set here */
- to->intg=intg;
- to->frac=frac;
-
- buf=to->buf+intg1;
- s1=s;
-
- for (x=0, i=0; intg; intg--)
- {
- x+= (*--s - '0')*powers10[i];
-
- if (unlikely(++i == DIG_PER_DEC1))
- {
- *--buf=x;
- x=0;
- i=0;
- }
- }
- if (i)
- *--buf=x;
-
- buf=to->buf+intg1;
- for (x=0, i=0; frac; frac--)
- {
- x= (*++s1 - '0') + x*10;
-
- if (unlikely(++i == DIG_PER_DEC1))
- {
- *buf++=x;
- x=0;
- i=0;
- }
- }
- if (i)
- *buf=x*powers10[DIG_PER_DEC1-i];
-
- /* Handle exponent */
- if (endp+1 < end_of_string && (*endp == 'e' || *endp == 'E'))
- {
- int str_error;
- longlong exponent= my_strtoll10(endp+1, (char**) &end_of_string,
- &str_error);
-
- if (end_of_string != endp +1) /* If at least one digit */
- {
- *end= (char*) end_of_string;
- if (str_error > 0)
- {
- error= E_DEC_BAD_NUM;
- goto fatal_error;
- }
- if (exponent > INT_MAX/2 || (str_error == 0 && exponent < 0))
- {
- error= E_DEC_OVERFLOW;
- goto fatal_error;
- }
- if (exponent < INT_MIN/2 && error != E_DEC_OVERFLOW)
- {
- error= E_DEC_TRUNCATED;
- goto fatal_error;
- }
- if (error != E_DEC_OVERFLOW)
- error= decimal_shift(to, (int) exponent);
- }
- }
- return error;
-
-fatal_error:
- decimal_make_zero(to);
- return error;
-}
-
-
-/*
- Convert decimal to double
-
- SYNOPSIS
- decimal2double()
- from - value to convert
- to - result will be stored there
-
- RETURN VALUE
- E_DEC_OK/E_DEC_OVERFLOW/E_DEC_TRUNCATED
-*/
-
-int decimal2double(decimal_t *from, double *to)
-{
- char strbuf[FLOATING_POINT_BUFFER], *end;
- int len= sizeof(strbuf);
- int rc, error;
-
- rc = decimal2string(from, strbuf, &len, 0, 0, 0);
- end= strbuf + len;
-
- DBUG_PRINT("info", ("interm.: %s", strbuf));
-
- *to= my_strtod(strbuf, &end, &error);
-
- DBUG_PRINT("info", ("result: %f", *to));
-
- return (rc != E_DEC_OK) ? rc : (error ? E_DEC_OVERFLOW : E_DEC_OK);
-}
-
-/*
- Convert double to decimal
-
- SYNOPSIS
- double2decimal()
- from - value to convert
- to - result will be stored there
-
- RETURN VALUE
- E_DEC_OK/E_DEC_OVERFLOW/E_DEC_TRUNCATED
-*/
-
-int double2decimal(double from, decimal_t *to)
-{
- char buff[FLOATING_POINT_BUFFER], *end;
- int res;
- DBUG_ENTER("double2decimal");
- end= buff + my_gcvt(from, MY_GCVT_ARG_DOUBLE, sizeof(buff) - 1, buff, NULL);
- res= string2decimal(buff, to, &end);
- DBUG_PRINT("exit", ("res: %d", res));
- DBUG_RETURN(res);
-}
-
-
-static int ull2dec(ulonglong from, decimal_t *to)
-{
- int intg1, error=E_DEC_OK;
- ulonglong x=from;
- dec1 *buf;
-
- sanity(to);
-
- for (intg1=1; from >= DIG_BASE; intg1++, from/=DIG_BASE) ;
- if (unlikely(intg1 > to->len))
- {
- intg1=to->len;
- error=E_DEC_OVERFLOW;
- }
- to->frac=0;
- to->intg=intg1*DIG_PER_DEC1;
-
- for (buf=to->buf+intg1; intg1; intg1--)
- {
- ulonglong y=x/DIG_BASE;
- *--buf=(dec1)(x-y*DIG_BASE);
- x=y;
- }
- return error;
-}
-
-int ulonglong2decimal(ulonglong from, decimal_t *to)
-{
- to->sign=0;
- return ull2dec(from, to);
-}
-
-int longlong2decimal(longlong from, decimal_t *to)
-{
- if ((to->sign= from < 0))
- return ull2dec(-from, to);
- return ull2dec(from, to);
-}
-
-int decimal2ulonglong(decimal_t *from, ulonglong *to)
-{
- dec1 *buf=from->buf;
- ulonglong x=0;
- int intg, frac;
-
- if (from->sign)
- {
- *to=ULL(0);
- return E_DEC_OVERFLOW;
- }
-
- for (intg=from->intg; intg > 0; intg-=DIG_PER_DEC1)
- {
- ulonglong y=x;
- x=x*DIG_BASE + *buf++;
- if (unlikely(y > ((ulonglong) ULONGLONG_MAX/DIG_BASE) || x < y))
- {
- *to=ULONGLONG_MAX;
- return E_DEC_OVERFLOW;
- }
- }
- *to=x;
- for (frac=from->frac; unlikely(frac > 0); frac-=DIG_PER_DEC1)
- if (*buf++)
- return E_DEC_TRUNCATED;
- return E_DEC_OK;
-}
-
-int decimal2longlong(decimal_t *from, longlong *to)
-{
- dec1 *buf=from->buf;
- longlong x=0;
- int intg, frac;
-
- for (intg=from->intg; intg > 0; intg-=DIG_PER_DEC1)
- {
- longlong y=x;
- /*
- Attention: trick!
- we're calculating -|from| instead of |from| here
- because |LONGLONG_MIN| > LONGLONG_MAX
- so we can convert -9223372036854775808 correctly
- */
- x=x*DIG_BASE - *buf++;
- if (unlikely(y < (LONGLONG_MIN/DIG_BASE) || x > y))
- {
- /*
- the decimal is bigger than any possible integer
- return border integer depending on the sign
- */
- *to= from->sign ? LONGLONG_MIN : LONGLONG_MAX;
- return E_DEC_OVERFLOW;
- }
- }
- /* boundary case: 9223372036854775808 */
- if (unlikely(from->sign==0 && x == LONGLONG_MIN))
- {
- *to= LONGLONG_MAX;
- return E_DEC_OVERFLOW;
- }
-
- *to=from->sign ? x : -x;
- for (frac=from->frac; unlikely(frac > 0); frac-=DIG_PER_DEC1)
- if (*buf++)
- return E_DEC_TRUNCATED;
- return E_DEC_OK;
-}
-
-/*
- Convert decimal to its binary fixed-length representation
- two representations of the same length can be compared with memcmp
- with the correct -1/0/+1 result
-
- SYNOPSIS
- decimal2bin()
- from - value to convert
- to - points to buffer where string representation should be stored
- precision/scale - see decimal_bin_size() below
-
- NOTE
- the buffer is assumed to be of the size decimal_bin_size(precision, scale)
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW
-
- DESCRIPTION
- for storage decimal numbers are converted to the "binary" format.
-
- This format has the following properties:
- 1. length of the binary representation depends on the {precision, scale}
- as provided by the caller and NOT on the intg/frac of the decimal to
- convert.
- 2. binary representations of the same {precision, scale} can be compared
- with memcmp - with the same result as decimal_cmp() of the original
- decimals (not taking into account possible precision loss during
- conversion).
-
- This binary format is as follows:
- 1. First the number is converted to have a requested precision and scale.
- 2. Every full DIG_PER_DEC1 digits of intg part are stored in 4 bytes
- as is
- 3. The first intg % DIG_PER_DEC1 digits are stored in the reduced
- number of bytes (enough bytes to store this number of digits -
- see dig2bytes)
- 4. same for frac - full decimal_digit_t's are stored as is,
- the last frac % DIG_PER_DEC1 digits - in the reduced number of bytes.
- 5. If the number is negative - every byte is inversed.
- 5. The very first bit of the resulting byte array is inverted (because
- memcmp compares unsigned bytes, see property 2 above)
-
- Example:
-
- 1234567890.1234
-
- internally is represented as 3 decimal_digit_t's
-
- 1 234567890 123400000
-
- (assuming we want a binary representation with precision=14, scale=4)
- in hex it's
-
- 00-00-00-01 0D-FB-38-D2 07-5A-EF-40
-
- now, middle decimal_digit_t is full - it stores 9 decimal digits. It goes
- into binary representation as is:
-
-
- ........... 0D-FB-38-D2 ............
-
- First decimal_digit_t has only one decimal digit. We can store one digit in
- one byte, no need to waste four:
-
- 01 0D-FB-38-D2 ............
-
- now, last digit. It's 123400000. We can store 1234 in two bytes:
-
- 01 0D-FB-38-D2 04-D2
-
- So, we've packed 12 bytes number in 7 bytes.
- And now we invert the highest bit to get the final result:
-
- 81 0D FB 38 D2 04 D2
-
- And for -1234567890.1234 it would be
-
- 7E F2 04 37 2D FB 2D
-*/
-int decimal2bin(decimal_t *from, uchar *to, int precision, int frac)
-{
- dec1 mask=from->sign ? -1 : 0, *buf1=from->buf, *stop1;
- int error=E_DEC_OK, intg=precision-frac,
- isize1, intg1, intg1x, from_intg,
- intg0=intg/DIG_PER_DEC1,
- frac0=frac/DIG_PER_DEC1,
- intg0x=intg-intg0*DIG_PER_DEC1,
- frac0x=frac-frac0*DIG_PER_DEC1,
- frac1=from->frac/DIG_PER_DEC1,
- frac1x=from->frac-frac1*DIG_PER_DEC1,
- isize0=intg0*sizeof(dec1)+dig2bytes[intg0x],
- fsize0=frac0*sizeof(dec1)+dig2bytes[frac0x],
- fsize1=frac1*sizeof(dec1)+dig2bytes[frac1x];
- const int orig_isize0= isize0;
- const int orig_fsize0= fsize0;
- uchar *orig_to= to;
-
- buf1= remove_leading_zeroes(from, &from_intg);
-
- if (unlikely(from_intg+fsize1==0))
- {
- mask=0; /* just in case */
- intg=1;
- buf1=&mask;
- }
-
- intg1=from_intg/DIG_PER_DEC1;
- intg1x=from_intg-intg1*DIG_PER_DEC1;
- isize1=intg1*sizeof(dec1)+dig2bytes[intg1x];
-
- if (intg < from_intg)
- {
- buf1+=intg1-intg0+(intg1x>0)-(intg0x>0);
- intg1=intg0; intg1x=intg0x;
- error=E_DEC_OVERFLOW;
- }
- else if (isize0 > isize1)
- {
- while (isize0-- > isize1)
- *to++= (char)mask;
- }
- if (fsize0 < fsize1)
- {
- frac1=frac0; frac1x=frac0x;
- error=E_DEC_TRUNCATED;
- }
- else if (fsize0 > fsize1 && frac1x)
- {
- if (frac0 == frac1)
- {
- frac1x=frac0x;
- fsize0= fsize1;
- }
- else
- {
- frac1++;
- frac1x=0;
- }
- }
-
- /* intg1x part */
- if (intg1x)
- {
- int i=dig2bytes[intg1x];
- dec1 x=(*buf1++ % powers10[intg1x]) ^ mask;
- switch (i)
- {
- case 1: mi_int1store(to, x); break;
- case 2: mi_int2store(to, x); break;
- case 3: mi_int3store(to, x); break;
- case 4: mi_int4store(to, x); break;
- default: DBUG_ASSERT(0);
- }
- to+=i;
- }
-
- /* intg1+frac1 part */
- for (stop1=buf1+intg1+frac1; buf1 < stop1; to+=sizeof(dec1))
- {
- dec1 x=*buf1++ ^ mask;
- DBUG_ASSERT(sizeof(dec1) == 4);
- mi_int4store(to, x);
- }
-
- /* frac1x part */
- if (frac1x)
- {
- dec1 x;
- int i=dig2bytes[frac1x],
- lim=(frac1 < frac0 ? DIG_PER_DEC1 : frac0x);
- while (frac1x < lim && dig2bytes[frac1x] == i)
- frac1x++;
- x=(*buf1 / powers10[DIG_PER_DEC1 - frac1x]) ^ mask;
- switch (i)
- {
- case 1: mi_int1store(to, x); break;
- case 2: mi_int2store(to, x); break;
- case 3: mi_int3store(to, x); break;
- case 4: mi_int4store(to, x); break;
- default: DBUG_ASSERT(0);
- }
- to+=i;
- }
- if (fsize0 > fsize1)
- {
- uchar *to_end= orig_to + orig_fsize0 + orig_isize0;
-
- while (fsize0-- > fsize1 && to < to_end)
- *to++= (uchar)mask;
- }
- orig_to[0]^= 0x80;
-
- /* Check that we have written the whole decimal and nothing more */
- DBUG_ASSERT(to == orig_to + orig_fsize0 + orig_isize0);
- return error;
-}
-
-/*
- Restores decimal from its binary fixed-length representation
-
- SYNOPSIS
- bin2decimal()
- from - value to convert
- to - result
- precision/scale - see decimal_bin_size() below
-
- NOTE
- see decimal2bin()
- the buffer is assumed to be of the size decimal_bin_size(precision, scale)
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW
-*/
-
-int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale)
-{
- int error=E_DEC_OK, intg=precision-scale,
- intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1,
- intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1,
- intg1=intg0+(intg0x>0), frac1=frac0+(frac0x>0);
- dec1 *buf=to->buf, mask=(*from & 0x80) ? 0 : -1;
- const uchar *stop;
- uchar *d_copy;
- int bin_size= decimal_bin_size(precision, scale);
-
- sanity(to);
- d_copy= (uchar*) my_alloca(bin_size);
- memcpy(d_copy, from, bin_size);
- d_copy[0]^= 0x80;
- from= d_copy;
-
- FIX_INTG_FRAC_ERROR(to->len, intg1, frac1, error);
- if (unlikely(error))
- {
- if (intg1 < intg0+(intg0x>0))
- {
- from+=dig2bytes[intg0x]+sizeof(dec1)*(intg0-intg1);
- frac0=frac0x=intg0x=0;
- intg0=intg1;
- }
- else
- {
- frac0x=0;
- frac0=frac1;
- }
- }
-
- to->sign=(mask != 0);
- to->intg=intg0*DIG_PER_DEC1+intg0x;
- to->frac=frac0*DIG_PER_DEC1+frac0x;
-
- if (intg0x)
- {
- int i=dig2bytes[intg0x];
- dec1 UNINIT_VAR(x);
- switch (i)
- {
- case 1: x=mi_sint1korr(from); break;
- case 2: x=mi_sint2korr(from); break;
- case 3: x=mi_sint3korr(from); break;
- case 4: x=mi_sint4korr(from); break;
- default: DBUG_ASSERT(0);
- }
- from+=i;
- *buf=x ^ mask;
- if (((ulonglong)*buf) >= (ulonglong) powers10[intg0x+1])
- goto err;
- if (buf > to->buf || *buf != 0)
- buf++;
- else
- to->intg-=intg0x;
- }
- for (stop=from+intg0*sizeof(dec1); from < stop; from+=sizeof(dec1))
- {
- DBUG_ASSERT(sizeof(dec1) == 4);
- *buf=mi_sint4korr(from) ^ mask;
- if (((uint32)*buf) > DIG_MAX)
- goto err;
- if (buf > to->buf || *buf != 0)
- buf++;
- else
- to->intg-=DIG_PER_DEC1;
- }
- DBUG_ASSERT(to->intg >=0);
- for (stop=from+frac0*sizeof(dec1); from < stop; from+=sizeof(dec1))
- {
- DBUG_ASSERT(sizeof(dec1) == 4);
- *buf=mi_sint4korr(from) ^ mask;
- if (((uint32)*buf) > DIG_MAX)
- goto err;
- buf++;
- }
- if (frac0x)
- {
- int i=dig2bytes[frac0x];
- dec1 UNINIT_VAR(x);
- switch (i)
- {
- case 1: x=mi_sint1korr(from); break;
- case 2: x=mi_sint2korr(from); break;
- case 3: x=mi_sint3korr(from); break;
- case 4: x=mi_sint4korr(from); break;
- default: DBUG_ASSERT(0);
- }
- *buf=(x ^ mask) * powers10[DIG_PER_DEC1 - frac0x];
- if (((uint32)*buf) > DIG_MAX)
- goto err;
- buf++;
- }
- my_afree(d_copy);
- return error;
-
-err:
- my_afree(d_copy);
- decimal_make_zero(((decimal_t*) to));
- return(E_DEC_BAD_NUM);
-}
-
-/*
- Returns the size of array to hold a decimal with given precision and scale
-
- RETURN VALUE
- size in dec1
- (multiply by sizeof(dec1) to get the size if bytes)
-*/
-
-int decimal_size(int precision, int scale)
-{
- DBUG_ASSERT(scale >= 0 && precision > 0 && scale <= precision);
- return ROUND_UP(precision-scale)+ROUND_UP(scale);
-}
-
-/*
- Returns the size of array to hold a binary representation of a decimal
-
- RETURN VALUE
- size in bytes
-*/
-
-int decimal_bin_size(int precision, int scale)
-{
- int intg=precision-scale,
- intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1,
- intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1;
-
- DBUG_ASSERT(scale >= 0 && precision > 0 && scale <= precision);
- return intg0*sizeof(dec1)+dig2bytes[intg0x]+
- frac0*sizeof(dec1)+dig2bytes[frac0x];
-}
-
-/*
- Rounds the decimal to "scale" digits
-
- SYNOPSIS
- decimal_round()
- from - decimal to round,
- to - result buffer. from==to is allowed
- scale - to what position to round. can be negative!
- mode - round to nearest even or truncate
-
- NOTES
- scale can be negative !
- one TRUNCATED error (line XXX below) isn't treated very logical :(
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED
-*/
-
-int
-decimal_round(decimal_t *from, decimal_t *to, int scale,
- decimal_round_mode mode)
-{
- int frac0=scale>0 ? ROUND_UP(scale) : scale/DIG_PER_DEC1,
- frac1=ROUND_UP(from->frac), UNINIT_VAR(round_digit),
- intg0=ROUND_UP(from->intg), error=E_DEC_OK, len=to->len,
- intg1=ROUND_UP(from->intg +
- (((intg0 + frac0)>0) && (from->buf[0] == DIG_MAX)));
- dec1 *buf0=from->buf, *buf1=to->buf, x, y, carry=0;
- int first_dig;
-
- sanity(to);
-
- switch (mode) {
- case HALF_UP:
- case HALF_EVEN: round_digit=5; break;
- case CEILING: round_digit= from->sign ? 10 : 0; break;
- case FLOOR: round_digit= from->sign ? 0 : 10; break;
- case TRUNCATE: round_digit=10; break;
- default: DBUG_ASSERT(0);
- }
-
- if (unlikely(frac0+intg0 > len))
- {
- frac0=len-intg0;
- scale=frac0*DIG_PER_DEC1;
- error=E_DEC_TRUNCATED;
- }
-
- if (scale+from->intg < 0)
- {
- decimal_make_zero(to);
- return E_DEC_OK;
- }
-
- if (to != from || intg1>intg0)
- {
- dec1 *p0= buf0+intg0+max(frac1, frac0);
- dec1 *p1= buf1+intg1+max(frac1, frac0);
-
- while (buf0 < p0)
- *(--p1) = *(--p0);
- if (unlikely(intg1 > intg0))
- to->buf[0]= 0;
-
- intg0= intg1;
- buf0=to->buf;
- buf1=to->buf;
- to->sign=from->sign;
- to->intg=min(intg0, len)*DIG_PER_DEC1;
- }
-
- if (frac0 > frac1)
- {
- buf1+=intg0+frac1;
- while (frac0-- > frac1)
- *buf1++=0;
- goto done;
- }
-
- if (scale >= from->frac)
- goto done; /* nothing to do */
-
- buf0+=intg0+frac0-1;
- buf1+=intg0+frac0-1;
- if (scale == frac0*DIG_PER_DEC1)
- {
- int do_inc= FALSE;
- DBUG_ASSERT(frac0+intg0 >= 0);
- switch (round_digit) {
- case 0:
- {
- dec1 *p0= buf0 + (frac1-frac0);
- for (; p0 > buf0; p0--)
- {
- if (*p0)
- {
- do_inc= TRUE;
- break;
- }
- }
- break;
- }
- case 5:
- {
- x= buf0[1]/DIG_MASK;
- do_inc= (x>5) || ((x == 5) &&
- (mode == HALF_UP || (frac0+intg0 > 0 && *buf0 & 1)));
- break;
- }
- default:
- break;
- }
- if (do_inc)
- {
- if (frac0+intg0>0)
- (*buf1)++;
- else
- *(++buf1)=DIG_BASE;
- }
- else if (frac0+intg0==0)
- {
- decimal_make_zero(to);
- return E_DEC_OK;
- }
- }
- else
- {
- /* TODO - fix this code as it won't work for CEILING mode */
- int pos=frac0*DIG_PER_DEC1-scale-1;
- DBUG_ASSERT(frac0+intg0 > 0);
- x=*buf1 / powers10[pos];
- y=x % 10;
- if (y > round_digit ||
- (round_digit == 5 && y == 5 && (mode == HALF_UP || (x/10) & 1)))
- x+=10;
- *buf1=powers10[pos]*(x-y);
- }
- /*
- In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside
- the buffer are as follows.
-
- Before <1, 5e8>
- After <2, 5e8>
-
- Hence we need to set the 2nd field to 0.
- The same holds if we round 1.5e-9 to 2e-9.
- */
- if (frac0 < frac1)
- {
- dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0);
- dec1 *end= to->buf + len;
-
- while (buf < end)
- *buf++=0;
- }
- if (*buf1 >= DIG_BASE)
- {
- carry=1;
- *buf1-=DIG_BASE;
- while (carry && --buf1 >= to->buf)
- ADD(*buf1, *buf1, 0, carry);
- if (unlikely(carry))
- {
- /* shifting the number to create space for new digit */
- if (frac0+intg0 >= len)
- {
- frac0--;
- scale=frac0*DIG_PER_DEC1;
- error=E_DEC_TRUNCATED; /* XXX */
- }
- for (buf1=to->buf+intg0+max(frac0,0); buf1 > to->buf; buf1--)
- {
- buf1[0]=buf1[-1];
- }
- *buf1=1;
- to->intg++;
- }
- }
- else
- {
- for (;;)
- {
- if (likely(*buf1))
- break;
- if (buf1-- == to->buf)
- {
- /* making 'zero' with the proper scale */
- dec1 *p0= to->buf + frac0 + 1;
- to->intg=1;
- to->frac= max(scale, 0);
- to->sign= 0;
- for (buf1= to->buf; buf1<p0; buf1++)
- *buf1= 0;
- return E_DEC_OK;
- }
- }
- }
-
- /* Here we check 999.9 -> 1000 case when we need to increase intg */
- first_dig= to->intg % DIG_PER_DEC1;
- if (first_dig && (*buf1 >= powers10[first_dig]))
- to->intg++;
-
- if (scale<0)
- scale=0;
-
-done:
- to->frac=scale;
- return error;
-}
-
-/*
- Returns the size of the result of the operation
-
- SYNOPSIS
- decimal_result_size()
- from1 - operand of the unary operation or first operand of the
- binary operation
- from2 - second operand of the binary operation
- op - operation. one char '+', '-', '*', '/' are allowed
- others may be added later
- param - extra param to the operation. unused for '+', '-', '*'
- scale increment for '/'
-
- NOTE
- returned valued may be larger than the actual buffer requred
- in the operation, as decimal_result_size, by design, operates on
- precision/scale values only and not on the actual decimal number
-
- RETURN VALUE
- size of to->buf array in dec1 elements. to get size in bytes
- multiply by sizeof(dec1)
-*/
-
-int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, int param)
-{
- switch (op) {
- case '-':
- return ROUND_UP(max(from1->intg, from2->intg)) +
- ROUND_UP(max(from1->frac, from2->frac));
- case '+':
- return ROUND_UP(max(from1->intg, from2->intg)+1) +
- ROUND_UP(max(from1->frac, from2->frac));
- case '*':
- return ROUND_UP(from1->intg+from2->intg)+
- ROUND_UP(from1->frac)+ROUND_UP(from2->frac);
- case '/':
- return ROUND_UP(from1->intg+from2->intg+1+from1->frac+from2->frac+param);
- default: DBUG_ASSERT(0);
- }
- return -1; /* shut up the warning */
-}
-
-static int do_add(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg),
- frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac),
- frac0=max(frac1, frac2), intg0=max(intg1, intg2), error;
- dec1 *buf1, *buf2, *buf0, *stop, *stop2, x, carry;
-
- sanity(to);
-
- /* is there a need for extra word because of carry ? */
- x=intg1 > intg2 ? from1->buf[0] :
- intg2 > intg1 ? from2->buf[0] :
- from1->buf[0] + from2->buf[0] ;
- if (unlikely(x > DIG_MAX-1)) /* yes, there is */
- {
- intg0++;
- to->buf[0]=0; /* safety */
- }
-
- FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error);
- if (unlikely(error == E_DEC_OVERFLOW))
- {
- max_decimal(to->len * DIG_PER_DEC1, 0, to);
- return error;
- }
-
- buf0=to->buf+intg0+frac0;
-
- to->sign=from1->sign;
- to->frac=max(from1->frac, from2->frac);
- to->intg=intg0*DIG_PER_DEC1;
- if (unlikely(error))
- {
- set_if_smaller(to->frac, frac0*DIG_PER_DEC1);
- set_if_smaller(frac1, frac0);
- set_if_smaller(frac2, frac0);
- set_if_smaller(intg1, intg0);
- set_if_smaller(intg2, intg0);
- }
-
- /* part 1 - max(frac) ... min (frac) */
- if (frac1 > frac2)
- {
- buf1=from1->buf+intg1+frac1;
- stop=from1->buf+intg1+frac2;
- buf2=from2->buf+intg2+frac2;
- stop2=from1->buf+(intg1 > intg2 ? intg1-intg2 : 0);
- }
- else
- {
- buf1=from2->buf+intg2+frac2;
- stop=from2->buf+intg2+frac1;
- buf2=from1->buf+intg1+frac1;
- stop2=from2->buf+(intg2 > intg1 ? intg2-intg1 : 0);
- }
- while (buf1 > stop)
- *--buf0=*--buf1;
-
- /* part 2 - min(frac) ... min(intg) */
- carry=0;
- while (buf1 > stop2)
- {
- ADD(*--buf0, *--buf1, *--buf2, carry);
- }
-
- /* part 3 - min(intg) ... max(intg) */
- buf1= intg1 > intg2 ? ((stop=from1->buf)+intg1-intg2) :
- ((stop=from2->buf)+intg2-intg1) ;
- while (buf1 > stop)
- {
- ADD(*--buf0, *--buf1, 0, carry);
- }
-
- if (unlikely(carry))
- *--buf0=1;
- DBUG_ASSERT(buf0 == to->buf || buf0 == to->buf+1);
-
- return error;
-}
-
-/* to=from1-from2.
- if to==0, return -1/0/+1 - the result of the comparison */
-static int do_sub(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg),
- frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac);
- int frac0=max(frac1, frac2), error;
- dec1 *buf1, *buf2, *buf0, *stop1, *stop2, *start1, *start2, carry=0;
-
- /* let carry:=1 if from2 > from1 */
- start1=buf1=from1->buf; stop1=buf1+intg1;
- start2=buf2=from2->buf; stop2=buf2+intg2;
- if (unlikely(*buf1 == 0))
- {
- while (buf1 < stop1 && *buf1 == 0)
- buf1++;
- start1=buf1;
- intg1= (int) (stop1-buf1);
- }
- if (unlikely(*buf2 == 0))
- {
- while (buf2 < stop2 && *buf2 == 0)
- buf2++;
- start2=buf2;
- intg2= (int) (stop2-buf2);
- }
- if (intg2 > intg1)
- carry=1;
- else if (intg2 == intg1)
- {
- dec1 *end1= stop1 + (frac1 - 1);
- dec1 *end2= stop2 + (frac2 - 1);
- while (unlikely((buf1 <= end1) && (*end1 == 0)))
- end1--;
- while (unlikely((buf2 <= end2) && (*end2 == 0)))
- end2--;
- frac1= (int) (end1 - stop1) + 1;
- frac2= (int) (end2 - stop2) + 1;
- while (buf1 <=end1 && buf2 <= end2 && *buf1 == *buf2)
- buf1++, buf2++;
- if (buf1 <= end1)
- {
- if (buf2 <= end2)
- carry= *buf2 > *buf1;
- else
- carry= 0;
- }
- else
- {
- if (buf2 <= end2)
- carry=1;
- else /* short-circuit everything: from1 == from2 */
- {
- if (to == 0) /* decimal_cmp() */
- return 0;
- decimal_make_zero(to);
- return E_DEC_OK;
- }
- }
- }
-
- if (to == 0) /* decimal_cmp() */
- return carry == from1->sign ? 1 : -1;
-
- sanity(to);
-
- to->sign=from1->sign;
-
- /* ensure that always from1 > from2 (and intg1 >= intg2) */
- if (carry)
- {
- swap_variables(decimal_t *,from1,from1);
- swap_variables(dec1 *,start1, start2);
- swap_variables(int,intg1,intg2);
- swap_variables(int,frac1,frac2);
- to->sign= 1 - to->sign;
- }
-
- FIX_INTG_FRAC_ERROR(to->len, intg1, frac0, error);
- buf0=to->buf+intg1+frac0;
-
- to->frac=max(from1->frac, from2->frac);
- to->intg=intg1*DIG_PER_DEC1;
- if (unlikely(error))
- {
- set_if_smaller(to->frac, frac0*DIG_PER_DEC1);
- set_if_smaller(frac1, frac0);
- set_if_smaller(frac2, frac0);
- set_if_smaller(intg2, intg1);
- }
- carry=0;
-
- /* part 1 - max(frac) ... min (frac) */
- if (frac1 > frac2)
- {
- buf1=start1+intg1+frac1;
- stop1=start1+intg1+frac2;
- buf2=start2+intg2+frac2;
- while (frac0-- > frac1)
- *--buf0=0;
- while (buf1 > stop1)
- *--buf0=*--buf1;
- }
- else
- {
- buf1=start1+intg1+frac1;
- buf2=start2+intg2+frac2;
- stop2=start2+intg2+frac1;
- while (frac0-- > frac2)
- *--buf0=0;
- while (buf2 > stop2)
- {
- SUB(*--buf0, 0, *--buf2, carry);
- }
- }
-
- /* part 2 - min(frac) ... intg2 */
- while (buf2 > start2)
- {
- SUB(*--buf0, *--buf1, *--buf2, carry);
- }
-
- /* part 3 - intg2 ... intg1 */
- while (carry && buf1 > start1)
- {
- SUB(*--buf0, *--buf1, 0, carry);
- }
-
- while (buf1 > start1)
- *--buf0=*--buf1;
-
- while (buf0 > to->buf)
- *--buf0=0;
-
- return error;
-}
-
-int decimal_intg(decimal_t *from)
-{
- int res;
- remove_leading_zeroes(from, &res);
- return res;
-}
-
-int decimal_add(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- if (likely(from1->sign == from2->sign))
- return do_add(from1, from2, to);
- return do_sub(from1, from2, to);
-}
-
-int decimal_sub(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- if (likely(from1->sign == from2->sign))
- return do_sub(from1, from2, to);
- return do_add(from1, from2, to);
-}
-
-int decimal_cmp(decimal_t *from1, decimal_t *from2)
-{
- if (likely(from1->sign == from2->sign))
- return do_sub(from1, from2, 0);
- return from1->sign > from2->sign ? -1 : 1;
-}
-
-int decimal_is_zero(decimal_t *from)
-{
- dec1 *buf1=from->buf,
- *end=buf1+ROUND_UP(from->intg)+ROUND_UP(from->frac);
- while (buf1 < end)
- if (*buf1++)
- return 0;
- return 1;
-}
-
-/*
- multiply two decimals
-
- SYNOPSIS
- decimal_mul()
- from1, from2 - factors
- to - product
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW;
-
- NOTES
- in this implementation, with sizeof(dec1)=4 we have DIG_PER_DEC1=9,
- and 63-digit number will take only 7 dec1 words (basically a 7-digit
- "base 999999999" number). Thus there's no need in fast multiplication
- algorithms, 7-digit numbers can be multiplied with a naive O(n*n)
- method.
-
- XXX if this library is to be used with huge numbers of thousands of
- digits, fast multiplication must be implemented.
-*/
-int decimal_mul(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg),
- frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac),
- intg0=ROUND_UP(from1->intg+from2->intg),
- frac0=frac1+frac2, error, i, j, d_to_move;
- dec1 *buf1=from1->buf+intg1, *buf2=from2->buf+intg2, *buf0,
- *start2, *stop2, *stop1, *start0, carry;
-
- sanity(to);
-
- i=intg0; /* save 'ideal' values */
- j=frac0;
- FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error); /* bound size */
- to->sign=from1->sign != from2->sign;
- to->frac=from1->frac+from2->frac; /* store size in digits */
- to->intg=intg0*DIG_PER_DEC1;
-
- if (unlikely(error))
- {
- set_if_smaller(to->frac, frac0*DIG_PER_DEC1);
- set_if_smaller(to->intg, intg0*DIG_PER_DEC1);
- if (unlikely(i > intg0)) /* bounded integer-part */
- {
- i-=intg0;
- j=i >> 1;
- intg1-= j;
- intg2-=i-j;
- frac1=frac2=0; /* frac0 is already 0 here */
- }
- else /* bounded fract part */
- {
- j-=frac0;
- i=j >> 1;
- if (frac1 <= frac2)
- {
- frac1-= i;
- frac2-=j-i;
- }
- else
- {
- frac2-= i;
- frac1-=j-i;
- }
- }
- }
- start0=to->buf+intg0+frac0-1;
- start2=buf2+frac2-1;
- stop1=buf1-intg1;
- stop2=buf2-intg2;
-
- bzero(to->buf, (intg0+frac0)*sizeof(dec1));
-
- for (buf1+=frac1-1; buf1 >= stop1; buf1--, start0--)
- {
- carry=0;
- for (buf0=start0, buf2=start2; buf2 >= stop2; buf2--, buf0--)
- {
- dec1 hi, lo;
- dec2 p= ((dec2)*buf1) * ((dec2)*buf2);
- hi=(dec1)(p/DIG_BASE);
- lo=(dec1)(p-((dec2)hi)*DIG_BASE);
- ADD2(*buf0, *buf0, lo, carry);
- carry+=hi;
- }
- if (carry)
- {
- if (buf0 < to->buf)
- return E_DEC_OVERFLOW;
- ADD2(*buf0, *buf0, 0, carry);
- }
- for (buf0--; carry; buf0--)
- {
- if (buf0 < to->buf)
- return E_DEC_OVERFLOW;
- ADD(*buf0, *buf0, 0, carry);
- }
- }
-
- /* Now we have to check for -0.000 case */
- if (to->sign)
- {
- dec1 *buf= to->buf;
- dec1 *end= to->buf + intg0 + frac0;
- DBUG_ASSERT(buf != end);
- for (;;)
- {
- if (*buf)
- break;
- if (++buf == end)
- {
- /* We got decimal zero */
- decimal_make_zero(to);
- break;
- }
- }
- }
- buf1= to->buf;
- d_to_move= intg0 + ROUND_UP(to->frac);
- while (!*buf1 && (to->intg > DIG_PER_DEC1))
- {
- buf1++;
- to->intg-= DIG_PER_DEC1;
- d_to_move--;
- }
- if (to->buf < buf1)
- {
- dec1 *cur_d= to->buf;
- for (; d_to_move--; cur_d++, buf1++)
- *cur_d= *buf1;
- }
- return error;
-}
-
-/*
- naive division algorithm (Knuth's Algorithm D in 4.3.1) -
- it's ok for short numbers
- also we're using alloca() to allocate a temporary buffer
-
- XXX if this library is to be used with huge numbers of thousands of
- digits, fast division must be implemented and alloca should be
- changed to malloc (or at least fallback to malloc if alloca() fails)
- but then, decimal_mul() should be rewritten too :(
-*/
-static int do_div_mod(decimal_t *from1, decimal_t *from2,
- decimal_t *to, decimal_t *mod, int scale_incr)
-{
- int frac1=ROUND_UP(from1->frac)*DIG_PER_DEC1, prec1=from1->intg+frac1,
- frac2=ROUND_UP(from2->frac)*DIG_PER_DEC1, prec2=from2->intg+frac2,
- UNINIT_VAR(error), i, intg0, frac0, len1, len2, dintg, div_mod=(!mod);
- dec1 *buf0, *buf1=from1->buf, *buf2=from2->buf, *tmp1,
- *start2, *stop2, *stop1, *stop0, norm2, carry, *start1, dcarry;
- dec2 norm_factor, x, guess, y;
-
- if (mod)
- to=mod;
-
- sanity(to);
-
- /* removing all the leading zeroes */
- i= ((prec2 - 1) % DIG_PER_DEC1) + 1;
- while (prec2 > 0 && *buf2 == 0)
- {
- prec2-= i;
- i= DIG_PER_DEC1;
- buf2++;
- }
- if (prec2 <= 0) /* short-circuit everything: from2 == 0 */
- return E_DEC_DIV_ZERO;
- for (i= (prec2 - 1) % DIG_PER_DEC1; *buf2 < powers10[i--]; prec2--) ;
- DBUG_ASSERT(prec2 > 0);
-
- i=((prec1-1) % DIG_PER_DEC1)+1;
- while (prec1 > 0 && *buf1 == 0)
- {
- prec1-=i;
- i=DIG_PER_DEC1;
- buf1++;
- }
- if (prec1 <= 0)
- { /* short-circuit everything: from1 == 0 */
- decimal_make_zero(to);
- return E_DEC_OK;
- }
- for (i=(prec1-1) % DIG_PER_DEC1; *buf1 < powers10[i--]; prec1--) ;
- DBUG_ASSERT(prec1 > 0);
-
- /* let's fix scale_incr, taking into account frac1,frac2 increase */
- if ((scale_incr-= frac1 - from1->frac + frac2 - from2->frac) < 0)
- scale_incr=0;
-
- dintg=(prec1-frac1)-(prec2-frac2)+(*buf1 >= *buf2);
- if (dintg < 0)
- {
- dintg/=DIG_PER_DEC1;
- intg0=0;
- }
- else
- intg0=ROUND_UP(dintg);
- if (mod)
- {
- /* we're calculating N1 % N2.
- The result will have
- frac=max(frac1, frac2), as for subtraction
- intg=intg2
- */
- to->sign=from1->sign;
- to->frac=max(from1->frac, from2->frac);
- frac0=0;
- }
- else
- {
- /*
- we're calculating N1/N2. N1 is in the buf1, has prec1 digits
- N2 is in the buf2, has prec2 digits. Scales are frac1 and
- frac2 accordingly.
- Thus, the result will have
- frac = ROUND_UP(frac1+frac2+scale_incr)
- and
- intg = (prec1-frac1) - (prec2-frac2) + 1
- prec = intg+frac
- */
- frac0=ROUND_UP(frac1+frac2+scale_incr);
- FIX_INTG_FRAC_ERROR(to->len, intg0, frac0, error);
- to->sign=from1->sign != from2->sign;
- to->intg=intg0*DIG_PER_DEC1;
- to->frac=frac0*DIG_PER_DEC1;
- }
- buf0=to->buf;
- stop0=buf0+intg0+frac0;
- if (likely(div_mod))
- while (dintg++ < 0)
- *buf0++=0;
-
- len1=(i=ROUND_UP(prec1))+ROUND_UP(2*frac2+scale_incr+1) + 1;
- set_if_bigger(len1, 3);
- if (!(tmp1=(dec1 *)my_alloca(len1*sizeof(dec1))))
- return E_DEC_OOM;
- memcpy(tmp1, buf1, i*sizeof(dec1));
- bzero(tmp1+i, (len1-i)*sizeof(dec1));
-
- start1=tmp1;
- stop1=start1+len1;
- start2=buf2;
- stop2=buf2+ROUND_UP(prec2)-1;
-
- /* removing end zeroes */
- while (*stop2 == 0 && stop2 >= start2)
- stop2--;
- len2= (int) (stop2++ - start2);
-
- /*
- calculating norm2 (normalized *start2) - we need *start2 to be large
- (at least > DIG_BASE/2), but unlike Knuth's Alg. D we don't want to
- normalize input numbers (as we don't make a copy of the divisor).
- Thus we normalize first dec1 of buf2 only, and we'll normalize *start1
- on the fly for the purpose of guesstimation only.
- It's also faster, as we're saving on normalization of buf2
- */
- norm_factor=DIG_BASE/(*start2+1);
- norm2=(dec1)(norm_factor*start2[0]);
- if (likely(len2>0))
- norm2+=(dec1)(norm_factor*start2[1]/DIG_BASE);
-
- if (*start1 < *start2)
- dcarry=*start1++;
- else
- dcarry=0;
-
- /* main loop */
- for (; buf0 < stop0; buf0++)
- {
- /* short-circuit, if possible */
- if (unlikely(dcarry == 0 && *start1 < *start2))
- guess=0;
- else
- {
- /* D3: make a guess */
- x=start1[0]+((dec2)dcarry)*DIG_BASE;
- y=start1[1];
- guess=(norm_factor*x+norm_factor*y/DIG_BASE)/norm2;
- if (unlikely(guess >= DIG_BASE))
- guess=DIG_BASE-1;
- if (likely(len2>0))
- {
- /* hmm, this is a suspicious trick - I removed normalization here */
- if (start2[1]*guess > (x-guess*start2[0])*DIG_BASE+y)
- guess--;
- if (unlikely(start2[1]*guess > (x-guess*start2[0])*DIG_BASE+y))
- guess--;
- DBUG_ASSERT(start2[1]*guess <= (x-guess*start2[0])*DIG_BASE+y);
- }
-
- /* D4: multiply and subtract */
- buf2=stop2;
- buf1=start1+len2;
- DBUG_ASSERT(buf1 < stop1);
- for (carry=0; buf2 > start2; buf1--)
- {
- dec1 hi, lo;
- x=guess * (*--buf2);
- hi=(dec1)(x/DIG_BASE);
- lo=(dec1)(x-((dec2)hi)*DIG_BASE);
- SUB2(*buf1, *buf1, lo, carry);
- carry+=hi;
- }
- carry= dcarry < carry;
-
- /* D5: check the remainder */
- if (unlikely(carry))
- {
- /* D6: correct the guess */
- guess--;
- buf2=stop2;
- buf1=start1+len2;
- for (carry=0; buf2 > start2; buf1--)
- {
- ADD(*buf1, *buf1, *--buf2, carry);
- }
- }
- }
- if (likely(div_mod))
- *buf0=(dec1)guess;
- dcarry= *start1;
- start1++;
- }
- if (mod)
- {
- /*
- now the result is in tmp1, it has
- intg=prec1-frac1
- frac=max(frac1, frac2)=to->frac
- */
- if (dcarry)
- *--start1=dcarry;
- buf0=to->buf;
- intg0=(int) (ROUND_UP(prec1-frac1)-(start1-tmp1));
- frac0=ROUND_UP(to->frac);
- error=E_DEC_OK;
- if (unlikely(frac0==0 && intg0==0))
- {
- decimal_make_zero(to);
- goto done;
- }
- if (intg0<=0)
- {
- if (unlikely(-intg0 >= to->len))
- {
- decimal_make_zero(to);
- error=E_DEC_TRUNCATED;
- goto done;
- }
- stop1=start1+frac0;
- frac0+=intg0;
- to->intg=0;
- while (intg0++ < 0)
- *buf0++=0;
- }
- else
- {
- if (unlikely(intg0 > to->len))
- {
- frac0=0;
- intg0=to->len;
- error=E_DEC_OVERFLOW;
- goto done;
- }
- DBUG_ASSERT(intg0 <= ROUND_UP(from2->intg));
- stop1=start1+frac0+intg0;
- to->intg=min(intg0*DIG_PER_DEC1, from2->intg);
- }
- if (unlikely(intg0+frac0 > to->len))
- {
- stop1-=frac0+intg0-to->len;
- frac0=to->len-intg0;
- to->frac=frac0*DIG_PER_DEC1;
- error=E_DEC_TRUNCATED;
- }
- DBUG_ASSERT(buf0 + (stop1 - start1) <= to->buf + to->len);
- while (start1 < stop1)
- *buf0++=*start1++;
- }
-done:
- my_afree(tmp1);
- return error;
-}
-
-/*
- division of two decimals
-
- SYNOPSIS
- decimal_div()
- from1 - dividend
- from2 - divisor
- to - quotient
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_DIV_ZERO;
-
- NOTES
- see do_div_mod()
-*/
-
-int
-decimal_div(decimal_t *from1, decimal_t *from2, decimal_t *to, int scale_incr)
-{
- return do_div_mod(from1, from2, to, 0, scale_incr);
-}
-
-/*
- modulus
-
- SYNOPSIS
- decimal_mod()
- from1 - dividend
- from2 - divisor
- to - modulus
-
- RETURN VALUE
- E_DEC_OK/E_DEC_TRUNCATED/E_DEC_OVERFLOW/E_DEC_DIV_ZERO;
-
- NOTES
- see do_div_mod()
-
- DESCRIPTION
- the modulus R in R = M mod N
-
- is defined as
-
- 0 <= |R| < |M|
- sign R == sign M
- R = M - k*N, where k is integer
-
- thus, there's no requirement for M or N to be integers
-*/
-
-int decimal_mod(decimal_t *from1, decimal_t *from2, decimal_t *to)
-{
- return do_div_mod(from1, from2, 0, to, 0);
-}
-
-#ifdef MAIN
-
-int full= 0;
-decimal_t a, b, c;
-char buf1[100], buf2[100], buf3[100];
-
-void dump_decimal(decimal_t *d)
-{
- int i;
- printf("/* intg=%d, frac=%d, sign=%d, buf[]={", d->intg, d->frac, d->sign);
- for (i=0; i < ROUND_UP(d->frac)+ROUND_UP(d->intg)-1; i++)
- printf("%09d, ", d->buf[i]);
- printf("%09d} */ ", d->buf[i]);
-}
-
-
-void check_result_code(int actual, int want)
-{
- if (actual != want)
- {
- printf("\n^^^^^^^^^^^^^ must return %d\n", want);
- exit(1);
- }
-}
-
-
-void print_decimal(decimal_t *d, const char *orig, int actual, int want)
-{
- char s[100];
- int slen=sizeof(s);
-
- if (full) dump_decimal(d);
- decimal2string(d, s, &slen, 0, 0, 0);
- printf("'%s'", s);
- check_result_code(actual, want);
- if (orig && strcmp(orig, s))
- {
- printf("\n^^^^^^^^^^^^^ must've been '%s'\n", orig);
- exit(1);
- }
-}
-
-void test_d2s()
-{
- char s[100];
- int slen, res;
-
- /***********************************/
- printf("==== decimal2string ====\n");
- a.buf[0]=12345; a.intg=5; a.frac=0; a.sign=0;
- slen=sizeof(s);
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-
- a.buf[1]=987000000; a.frac=3;
- slen=sizeof(s);
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-
- a.sign=1;
- slen=sizeof(s);
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-
- slen=8;
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-
- slen=5;
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-
- a.buf[0]=987000000; a.frac=3; a.intg=0;
- slen=sizeof(s);
- res=decimal2string(&a, s, &slen, 0, 0, 0);
- dump_decimal(&a); printf(" --> res=%d str='%s' len=%d\n", res, s, slen);
-}
-
-void test_s2d(const char *s, const char *orig, int ex)
-{
- char s1[100], *end;
- int res;
- sprintf(s1, "'%s'", s);
- end= strend(s);
- printf("len=%2d %-30s => res=%d ", a.len, s1,
- (res= string2decimal(s, &a, &end)));
- print_decimal(&a, orig, res, ex);
- printf("\n");
-}
-
-void test_d2f(const char *s, int ex)
-{
- char s1[100], *end;
- double x;
- int res;
-
- sprintf(s1, "'%s'", s);
- end= strend(s);
- string2decimal(s, &a, &end);
- res=decimal2double(&a, &x);
- if (full) dump_decimal(&a);
- printf("%-40s => res=%d %.*g\n", s1, res, a.intg+a.frac, x);
- check_result_code(res, ex);
-}
-
-void test_d2b2d(const char *str, int p, int s, const char *orig, int ex)
-{
- char s1[100], buf[100], *end;
- int res, i, size=decimal_bin_size(p, s);
-
- sprintf(s1, "'%s'", str);
- end= strend(str);
- string2decimal(str, &a, &end);
- res=decimal2bin(&a, buf, p, s);
- printf("%-31s {%2d, %2d} => res=%d size=%-2d ", s1, p, s, res, size);
- if (full)
- {
- printf("0x");
- for (i=0; i < size; i++)
- printf("%02x", ((uchar *)buf)[i]);
- }
- res=bin2decimal(buf, &a, p, s);
- printf(" => res=%d ", res);
- print_decimal(&a, orig, res, ex);
- printf("\n");
-}
-
-void test_f2d(double from, int ex)
-{
- int res;
-
- res=double2decimal(from, &a);
- printf("%-40.*f => res=%d ", DBL_DIG-2, from, res);
- print_decimal(&a, 0, res, ex);
- printf("\n");
-}
-
-void test_ull2d(ulonglong from, const char *orig, int ex)
-{
- char s[100];
- int res;
-
- res=ulonglong2decimal(from, &a);
- longlong10_to_str(from,s,10);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&a, orig, res, ex);
- printf("\n");
-}
-
-void test_ll2d(longlong from, const char *orig, int ex)
-{
- char s[100];
- int res;
-
- res=longlong2decimal(from, &a);
- longlong10_to_str(from,s,-10);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&a, orig, res, ex);
- printf("\n");
-}
-
-void test_d2ull(const char *s, const char *orig, int ex)
-{
- char s1[100], *end;
- ulonglong x;
- int res;
-
- end= strend(s);
- string2decimal(s, &a, &end);
- res=decimal2ulonglong(&a, &x);
- if (full) dump_decimal(&a);
- longlong10_to_str(x,s1,10);
- printf("%-40s => res=%d %s\n", s, res, s1);
- check_result_code(res, ex);
- if (orig && strcmp(orig, s1))
- {
- printf("\n^^^^^^^^^^^^^ must've been '%s'\n", orig);
- exit(1);
- }
-}
-
-void test_d2ll(const char *s, const char *orig, int ex)
-{
- char s1[100], *end;
- longlong x;
- int res;
-
- end= strend(s);
- string2decimal(s, &a, &end);
- res=decimal2longlong(&a, &x);
- if (full) dump_decimal(&a);
- longlong10_to_str(x,s1,-10);
- printf("%-40s => res=%d %s\n", s, res, s1);
- check_result_code(res, ex);
- if (orig && strcmp(orig, s1))
- {
- printf("\n^^^^^^^^^^^^^ must've been '%s'\n", orig);
- exit(1);
- }
-}
-
-void test_da(const char *s1, const char *s2, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' + '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_add(&a, &b, &c);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&c, orig, res, ex);
- printf("\n");
-}
-
-void test_ds(const char *s1, const char *s2, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' - '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_sub(&a, &b, &c);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&c, orig, res, ex);
- printf("\n");
-}
-
-void test_dc(const char *s1, const char *s2, int orig)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' <=> '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_cmp(&a, &b);
- printf("%-40s => res=%d\n", s, res);
- if (orig != res)
- {
- printf("\n^^^^^^^^^^^^^ must've been %d\n", orig);
- exit(1);
- }
-}
-
-void test_dm(const char *s1, const char *s2, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' * '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_mul(&a, &b, &c);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&c, orig, res, ex);
- printf("\n");
-}
-
-void test_dv(const char *s1, const char *s2, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' / '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_div(&a, &b, &c, 5);
- printf("%-40s => res=%d ", s, res);
- check_result_code(res, ex);
- if (res == E_DEC_DIV_ZERO)
- printf("E_DEC_DIV_ZERO");
- else
- print_decimal(&c, orig, res, ex);
- printf("\n");
-}
-
-void test_md(const char *s1, const char *s2, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' %% '%s'", s1, s2);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- end= strend(s2);
- string2decimal(s2, &b, &end);
- res=decimal_mod(&a, &b, &c);
- printf("%-40s => res=%d ", s, res);
- check_result_code(res, ex);
- if (res == E_DEC_DIV_ZERO)
- printf("E_DEC_DIV_ZERO");
- else
- print_decimal(&c, orig, res, ex);
- printf("\n");
-}
-
-const char *round_mode[]=
-{"TRUNCATE", "HALF_EVEN", "HALF_UP", "CEILING", "FLOOR"};
-
-void test_ro(const char *s1, int n, decimal_round_mode mode, const char *orig,
- int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s', %d, %s", s1, n, round_mode[mode]);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- res=decimal_round(&a, &b, n, mode);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&b, orig, res, ex);
- printf("\n");
-}
-
-
-void test_mx(int precision, int frac, const char *orig)
-{
- char s[100];
- sprintf(s, "%d, %d", precision, frac);
- max_decimal(precision, frac, &a);
- printf("%-40s => ", s);
- print_decimal(&a, orig, 0, 0);
- printf("\n");
-}
-
-
-void test_pr(const char *s1, int prec, int dec, char filler, const char *orig,
- int ex)
-{
- char s[100], *end;
- char s2[100];
- int slen= sizeof(s2);
- int res;
-
- sprintf(s, filler ? "'%s', %d, %d, '%c'" : "'%s', %d, %d, '\\0'",
- s1, prec, dec, filler);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- res= decimal2string(&a, s2, &slen, prec, dec, filler);
- printf("%-40s => res=%d '%s'", s, res, s2);
- check_result_code(res, ex);
- if (orig && strcmp(orig, s2))
- {
- printf("\n^^^^^^^^^^^^^ must've been '%s'\n", orig);
- exit(1);
- }
- printf("\n");
-}
-
-
-void test_sh(const char *s1, int shift, const char *orig, int ex)
-{
- char s[100], *end;
- int res;
- sprintf(s, "'%s' %s %d", s1, ((shift < 0) ? ">>" : "<<"), abs(shift));
- end= strend(s1);
- string2decimal(s1, &a, &end);
- res= decimal_shift(&a, shift);
- printf("%-40s => res=%d ", s, res);
- print_decimal(&a, orig, res, ex);
- printf("\n");
-}
-
-
-void test_fr(const char *s1, const char *orig)
-{
- char s[100], *end;
- sprintf(s, "'%s'", s1);
- printf("%-40s => ", s);
- end= strend(s1);
- string2decimal(s1, &a, &end);
- a.frac= decimal_actual_fraction(&a);
- print_decimal(&a, orig, 0, 0);
- printf("\n");
-}
-
-
-int main()
-{
- a.buf=(void*)buf1;
- a.len=sizeof(buf1)/sizeof(dec1);
- b.buf=(void*)buf2;
- b.len=sizeof(buf2)/sizeof(dec1);
- c.buf=(void*)buf3;
- c.len=sizeof(buf3)/sizeof(dec1);
-
- if (full)
- test_d2s();
-
- printf("==== string2decimal ====\n");
- test_s2d("12345", "12345", 0);
- test_s2d("12345.", "12345", 0);
- test_s2d("123.45", "123.45", 0);
- test_s2d("-123.45", "-123.45", 0);
- test_s2d(".00012345000098765", "0.00012345000098765", 0);
- test_s2d(".12345000098765", "0.12345000098765", 0);
- test_s2d("-.000000012345000098765", "-0.000000012345000098765", 0);
- test_s2d("1234500009876.5", "1234500009876.5", 0);
- a.len=1;
- test_s2d("123450000098765", "98765", 2);
- test_s2d("123450.000098765", "123450", 1);
- a.len=sizeof(buf1)/sizeof(dec1);
- test_s2d("123E5", "12300000", 0);
- test_s2d("123E-2", "1.23", 0);
-
- printf("==== decimal2double ====\n");
- test_d2f("12345", 0);
- test_d2f("123.45", 0);
- test_d2f("-123.45", 0);
- test_d2f("0.00012345000098765", 0);
- test_d2f("1234500009876.5", 0);
-
- printf("==== double2decimal ====\n");
- test_f2d(12345, 0);
- test_f2d(1.0/3, 0);
- test_f2d(-123.45, 0);
- test_f2d(0.00012345000098765, 0);
- test_f2d(1234500009876.5, 0);
-
- printf("==== ulonglong2decimal ====\n");
- test_ull2d(ULL(12345), "12345", 0);
- test_ull2d(ULL(0), "0", 0);
- test_ull2d(ULL(18446744073709551615), "18446744073709551615", 0);
-
- printf("==== decimal2ulonglong ====\n");
- test_d2ull("12345", "12345", 0);
- test_d2ull("0", "0", 0);
- test_d2ull("18446744073709551615", "18446744073709551615", 0);
- test_d2ull("18446744073709551616", "18446744073", 2);
- test_d2ull("-1", "0", 2);
- test_d2ull("1.23", "1", 1);
- test_d2ull("9999999999999999999999999.000", "9999999999999999", 2);
-
- printf("==== longlong2decimal ====\n");
- test_ll2d(LL(-12345), "-12345", 0);
- test_ll2d(LL(-1), "-1", 0);
- test_ll2d(LL(-9223372036854775807), "-9223372036854775807", 0);
- test_ll2d(ULL(9223372036854775808), "-9223372036854775808", 0);
-
- printf("==== decimal2longlong ====\n");
- test_d2ll("18446744073709551615", "18446744073", 2);
- test_d2ll("-1", "-1", 0);
- test_d2ll("-1.23", "-1", 1);
- test_d2ll("-9223372036854775807", "-9223372036854775807", 0);
- test_d2ll("-9223372036854775808", "-9223372036854775808", 0);
- test_d2ll("9223372036854775808", "9223372036854775807", 2);
-
- printf("==== do_add ====\n");
- test_da(".00012345000098765" ,"123.45", "123.45012345000098765", 0);
- test_da(".1" ,".45", "0.55", 0);
- test_da("1234500009876.5" ,".00012345000098765", "1234500009876.50012345000098765", 0);
- test_da("9999909999999.5" ,".555", "9999910000000.055", 0);
- test_da("99999999" ,"1", "100000000", 0);
- test_da("989999999" ,"1", "990000000", 0);
- test_da("999999999" ,"1", "1000000000", 0);
- test_da("12345" ,"123.45", "12468.45", 0);
- test_da("-12345" ,"-123.45", "-12468.45", 0);
- test_ds("-12345" ,"123.45", "-12468.45", 0);
- test_ds("12345" ,"-123.45", "12468.45", 0);
-
- printf("==== do_sub ====\n");
- test_ds(".00012345000098765", "123.45","-123.44987654999901235", 0);
- test_ds("1234500009876.5", ".00012345000098765","1234500009876.49987654999901235", 0);
- test_ds("9999900000000.5", ".555","9999899999999.945", 0);
- test_ds("1111.5551", "1111.555","0.0001", 0);
- test_ds(".555", ".555","0", 0);
- test_ds("10000000", "1","9999999", 0);
- test_ds("1000001000", ".1","1000000999.9", 0);
- test_ds("1000000000", ".1","999999999.9", 0);
- test_ds("12345", "123.45","12221.55", 0);
- test_ds("-12345", "-123.45","-12221.55", 0);
- test_da("-12345", "123.45","-12221.55", 0);
- test_da("12345", "-123.45","12221.55", 0);
- test_ds("123.45", "12345","-12221.55", 0);
- test_ds("-123.45", "-12345","12221.55", 0);
- test_da("123.45", "-12345","-12221.55", 0);
- test_da("-123.45", "12345","12221.55", 0);
- test_da("5", "-6.0","-1.0", 0);
-
- printf("==== decimal_mul ====\n");
- test_dm("12", "10","120", 0);
- test_dm("-123.456", "98765.4321","-12193185.1853376", 0);
- test_dm("-123456000000", "98765432100000","-12193185185337600000000000", 0);
- test_dm("123456", "987654321","121931851853376", 0);
- test_dm("123456", "9876543210","1219318518533760", 0);
- test_dm("123", "0.01","1.23", 0);
- test_dm("123", "0","0", 0);
-
- printf("==== decimal_div ====\n");
- test_dv("120", "10","12.000000000", 0);
- test_dv("123", "0.01","12300.000000000", 0);
- test_dv("120", "100000000000.00000","0.000000001200000000", 0);
- test_dv("123", "0","", 4);
- test_dv("0", "0", "", 4);
- test_dv("-12193185.1853376", "98765.4321","-123.456000000000000000", 0);
- test_dv("121931851853376", "987654321","123456.000000000", 0);
- test_dv("0", "987","0", 0);
- test_dv("1", "3","0.333333333", 0);
- test_dv("1.000000000000", "3","0.333333333333333333", 0);
- test_dv("1", "1","1.000000000", 0);
- test_dv("0.0123456789012345678912345", "9999999999","0.000000000001234567890246913578148141", 0);
- test_dv("10.333000000", "12.34500","0.837019036046982584042122316", 0);
- test_dv("10.000000000060", "2","5.000000000030000000", 0);
-
- printf("==== decimal_mod ====\n");
- test_md("234","10","4", 0);
- test_md("234.567","10.555","2.357", 0);
- test_md("-234.567","10.555","-2.357", 0);
- test_md("234.567","-10.555","2.357", 0);
- c.buf[1]=0x3ABECA;
- test_md("99999999999999999999999999999999999999","3","0", 0);
- if (c.buf[1] != 0x3ABECA)
- {
- printf("%X - overflow\n", c.buf[1]);
- exit(1);
- }
-
- printf("==== decimal2bin/bin2decimal ====\n");
- test_d2b2d("-10.55", 4, 2,"-10.55", 0);
- test_d2b2d("0.0123456789012345678912345", 30, 25,"0.0123456789012345678912345", 0);
- test_d2b2d("12345", 5, 0,"12345", 0);
- test_d2b2d("12345", 10, 3,"12345.000", 0);
- test_d2b2d("123.45", 10, 3,"123.450", 0);
- test_d2b2d("-123.45", 20, 10,"-123.4500000000", 0);
- test_d2b2d(".00012345000098765", 15, 14,"0.00012345000098", 0);
- test_d2b2d(".00012345000098765", 22, 20,"0.00012345000098765000", 0);
- test_d2b2d(".12345000098765", 30, 20,"0.12345000098765000000", 0);
- test_d2b2d("-.000000012345000098765", 30, 20,"-0.00000001234500009876", 0);
- test_d2b2d("1234500009876.5", 30, 5,"1234500009876.50000", 0);
- test_d2b2d("111111111.11", 10, 2,"11111111.11", 0);
- test_d2b2d("000000000.01", 7, 3,"0.010", 0);
- test_d2b2d("123.4", 10, 2, "123.40", 0);
-
-
- printf("==== decimal_cmp ====\n");
- test_dc("12","13",-1);
- test_dc("13","12",1);
- test_dc("-10","10",-1);
- test_dc("10","-10",1);
- test_dc("-12","-13",1);
- test_dc("0","12",-1);
- test_dc("-10","0",-1);
- test_dc("4","4",0);
-
- printf("==== decimal_round ====\n");
- test_ro("5678.123451",-4,TRUNCATE,"0", 0);
- test_ro("5678.123451",-3,TRUNCATE,"5000", 0);
- test_ro("5678.123451",-2,TRUNCATE,"5600", 0);
- test_ro("5678.123451",-1,TRUNCATE,"5670", 0);
- test_ro("5678.123451",0,TRUNCATE,"5678", 0);
- test_ro("5678.123451",1,TRUNCATE,"5678.1", 0);
- test_ro("5678.123451",2,TRUNCATE,"5678.12", 0);
- test_ro("5678.123451",3,TRUNCATE,"5678.123", 0);
- test_ro("5678.123451",4,TRUNCATE,"5678.1234", 0);
- test_ro("5678.123451",5,TRUNCATE,"5678.12345", 0);
- test_ro("5678.123451",6,TRUNCATE,"5678.123451", 0);
- test_ro("-5678.123451",-4,TRUNCATE,"0", 0);
- memset(buf2, 33, sizeof(buf2));
- test_ro("99999999999999999999999999999999999999",-31,TRUNCATE,"99999990000000000000000000000000000000", 0);
- test_ro("15.1",0,HALF_UP,"15", 0);
- test_ro("15.5",0,HALF_UP,"16", 0);
- test_ro("15.9",0,HALF_UP,"16", 0);
- test_ro("-15.1",0,HALF_UP,"-15", 0);
- test_ro("-15.5",0,HALF_UP,"-16", 0);
- test_ro("-15.9",0,HALF_UP,"-16", 0);
- test_ro("15.1",1,HALF_UP,"15.1", 0);
- test_ro("-15.1",1,HALF_UP,"-15.1", 0);
- test_ro("15.17",1,HALF_UP,"15.2", 0);
- test_ro("15.4",-1,HALF_UP,"20", 0);
- test_ro("-15.4",-1,HALF_UP,"-20", 0);
- test_ro("5.4",-1,HALF_UP,"10", 0);
- test_ro(".999", 0, HALF_UP, "1", 0);
- memset(buf2, 33, sizeof(buf2));
- test_ro("999999999", -9, HALF_UP, "1000000000", 0);
- test_ro("15.1",0,HALF_EVEN,"15", 0);
- test_ro("15.5",0,HALF_EVEN,"16", 0);
- test_ro("14.5",0,HALF_EVEN,"14", 0);
- test_ro("15.9",0,HALF_EVEN,"16", 0);
- test_ro("15.1",0,CEILING,"16", 0);
- test_ro("-15.1",0,CEILING,"-15", 0);
- test_ro("15.1",0,FLOOR,"15", 0);
- test_ro("-15.1",0,FLOOR,"-16", 0);
- test_ro("999999999999999999999.999", 0, CEILING,"1000000000000000000000", 0);
- test_ro("-999999999999999999999.999", 0, FLOOR,"-1000000000000000000000", 0);
-
- b.buf[0]=DIG_BASE+1;
- b.buf++;
- test_ro(".3", 0, HALF_UP, "0", 0);
- b.buf--;
- if (b.buf[0] != DIG_BASE+1)
- {
- printf("%d - underflow\n", b.buf[0]);
- exit(1);
- }
-
- printf("==== max_decimal ====\n");
- test_mx(1,1,"0.9");
- test_mx(1,0,"9");
- test_mx(2,1,"9.9");
- test_mx(4,2,"99.99");
- test_mx(6,3,"999.999");
- test_mx(8,4,"9999.9999");
- test_mx(10,5,"99999.99999");
- test_mx(12,6,"999999.999999");
- test_mx(14,7,"9999999.9999999");
- test_mx(16,8,"99999999.99999999");
- test_mx(18,9,"999999999.999999999");
- test_mx(20,10,"9999999999.9999999999");
- test_mx(20,20,"0.99999999999999999999");
- test_mx(20,0,"99999999999999999999");
- test_mx(40,20,"99999999999999999999.99999999999999999999");
-
- printf("==== decimal2string ====\n");
- test_pr("123.123", 0, 0, 0, "123.123", 0);
- test_pr("123.123", 7, 3, '0', "123.123", 0);
- test_pr("123.123", 9, 3, '0', "00123.123", 0);
- test_pr("123.123", 9, 4, '0', "0123.1230", 0);
- test_pr("123.123", 9, 5, '0', "123.12300", 0);
- test_pr("123.123", 9, 2, '0', "000123.12", 1);
- test_pr("123.123", 9, 6, '0', "23.123000", 2);
-
- printf("==== decimal_shift ====\n");
- test_sh("123.123", 1, "1231.23", 0);
- test_sh("123457189.123123456789000", 1, "1234571891.23123456789", 0);
- test_sh("123457189.123123456789000", 4, "1234571891231.23456789", 0);
- test_sh("123457189.123123456789000", 8, "12345718912312345.6789", 0);
- test_sh("123457189.123123456789000", 9, "123457189123123456.789", 0);
- test_sh("123457189.123123456789000", 10, "1234571891231234567.89", 0);
- test_sh("123457189.123123456789000", 17, "12345718912312345678900000", 0);
- test_sh("123457189.123123456789000", 18, "123457189123123456789000000", 0);
- test_sh("123457189.123123456789000", 19, "1234571891231234567890000000", 0);
- test_sh("123457189.123123456789000", 26, "12345718912312345678900000000000000", 0);
- test_sh("123457189.123123456789000", 27, "123457189123123456789000000000000000", 0);
- test_sh("123457189.123123456789000", 28, "1234571891231234567890000000000000000", 0);
- test_sh("000000000000000000000000123457189.123123456789000", 26, "12345718912312345678900000000000000", 0);
- test_sh("00000000123457189.123123456789000", 27, "123457189123123456789000000000000000", 0);
- test_sh("00000000000000000123457189.123123456789000", 28, "1234571891231234567890000000000000000", 0);
- test_sh("123", 1, "1230", 0);
- test_sh("123", 10, "1230000000000", 0);
- test_sh(".123", 1, "1.23", 0);
- test_sh(".123", 10, "1230000000", 0);
- test_sh(".123", 14, "12300000000000", 0);
- test_sh("000.000", 1000, "0", 0);
- test_sh("000.", 1000, "0", 0);
- test_sh(".000", 1000, "0", 0);
- test_sh("1", 1000, "1", 2);
- test_sh("123.123", -1, "12.3123", 0);
- test_sh("123987654321.123456789000", -1, "12398765432.1123456789", 0);
- test_sh("123987654321.123456789000", -2, "1239876543.21123456789", 0);
- test_sh("123987654321.123456789000", -3, "123987654.321123456789", 0);
- test_sh("123987654321.123456789000", -8, "1239.87654321123456789", 0);
- test_sh("123987654321.123456789000", -9, "123.987654321123456789", 0);
- test_sh("123987654321.123456789000", -10, "12.3987654321123456789", 0);
- test_sh("123987654321.123456789000", -11, "1.23987654321123456789", 0);
- test_sh("123987654321.123456789000", -12, "0.123987654321123456789", 0);
- test_sh("123987654321.123456789000", -13, "0.0123987654321123456789", 0);
- test_sh("123987654321.123456789000", -14, "0.00123987654321123456789", 0);
- test_sh("00000087654321.123456789000", -14, "0.00000087654321123456789", 0);
- a.len= 2;
- test_sh("123.123", -2, "1.23123", 0);
- test_sh("123.123", -3, "0.123123", 0);
- test_sh("123.123", -6, "0.000123123", 0);
- test_sh("123.123", -7, "0.0000123123", 0);
- test_sh("123.123", -15, "0.000000000000123123", 0);
- test_sh("123.123", -16, "0.000000000000012312", 1);
- test_sh("123.123", -17, "0.000000000000001231", 1);
- test_sh("123.123", -18, "0.000000000000000123", 1);
- test_sh("123.123", -19, "0.000000000000000012", 1);
- test_sh("123.123", -20, "0.000000000000000001", 1);
- test_sh("123.123", -21, "0", 1);
- test_sh(".000000000123", -1, "0.0000000000123", 0);
- test_sh(".000000000123", -6, "0.000000000000000123", 0);
- test_sh(".000000000123", -7, "0.000000000000000012", 1);
- test_sh(".000000000123", -8, "0.000000000000000001", 1);
- test_sh(".000000000123", -9, "0", 1);
- test_sh(".000000000123", 1, "0.00000000123", 0);
- test_sh(".000000000123", 8, "0.0123", 0);
- test_sh(".000000000123", 9, "0.123", 0);
- test_sh(".000000000123", 10, "1.23", 0);
- test_sh(".000000000123", 17, "12300000", 0);
- test_sh(".000000000123", 18, "123000000", 0);
- test_sh(".000000000123", 19, "1230000000", 0);
- test_sh(".000000000123", 20, "12300000000", 0);
- test_sh(".000000000123", 21, "123000000000", 0);
- test_sh(".000000000123", 22, "1230000000000", 0);
- test_sh(".000000000123", 23, "12300000000000", 0);
- test_sh(".000000000123", 24, "123000000000000", 0);
- test_sh(".000000000123", 25, "1230000000000000", 0);
- test_sh(".000000000123", 26, "12300000000000000", 0);
- test_sh(".000000000123", 27, "123000000000000000", 0);
- test_sh(".000000000123", 28, "0.000000000123", 2);
- test_sh("123456789.987654321", -1, "12345678.998765432", 1);
- test_sh("123456789.987654321", -2, "1234567.899876543", 1);
- test_sh("123456789.987654321", -8, "1.234567900", 1);
- test_sh("123456789.987654321", -9, "0.123456789987654321", 0);
- test_sh("123456789.987654321", -10, "0.012345678998765432", 1);
- test_sh("123456789.987654321", -17, "0.000000001234567900", 1);
- test_sh("123456789.987654321", -18, "0.000000000123456790", 1);
- test_sh("123456789.987654321", -19, "0.000000000012345679", 1);
- test_sh("123456789.987654321", -26, "0.000000000000000001", 1);
- test_sh("123456789.987654321", -27, "0", 1);
- test_sh("123456789.987654321", 1, "1234567900", 1);
- test_sh("123456789.987654321", 2, "12345678999", 1);
- test_sh("123456789.987654321", 4, "1234567899877", 1);
- test_sh("123456789.987654321", 8, "12345678998765432", 1);
- test_sh("123456789.987654321", 9, "123456789987654321", 0);
- test_sh("123456789.987654321", 10, "123456789.987654321", 2);
- test_sh("123456789.987654321", 0, "123456789.987654321", 0);
- a.len= sizeof(buf1)/sizeof(dec1);
-
- printf("==== decimal_actual_fraction ====\n");
- test_fr("1.123456789000000000", "1.123456789");
- test_fr("1.12345678000000000", "1.12345678");
- test_fr("1.1234567000000000", "1.1234567");
- test_fr("1.123456000000000", "1.123456");
- test_fr("1.12345000000000", "1.12345");
- test_fr("1.1234000000000", "1.1234");
- test_fr("1.123000000000", "1.123");
- test_fr("1.12000000000", "1.12");
- test_fr("1.1000000000", "1.1");
- test_fr("1.000000000", "1");
- test_fr("1.0", "1");
- test_fr("10000000000000000000.0", "10000000000000000000");
-
- return 0;
-}
-#endif
diff --git a/dep/mysqllite/strings/dtoa.c b/dep/mysqllite/strings/dtoa.c
deleted file mode 100644
index d64c420b499..00000000000
--- a/dep/mysqllite/strings/dtoa.c
+++ /dev/null
@@ -1,2793 +0,0 @@
-/* Copyright (C) 2007 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/****************************************************************
-
- This file incorporates work covered by the following copyright and
- permission notice:
-
- The author of this software is David M. Gay.
-
- Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose without fee is hereby granted, provided that this entire notice
- is included in all copies of any software which is or includes a copy
- or modification of this software and in all copies of the supporting
- documentation for such software.
-
- THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
-
- ***************************************************************/
-
-#include <my_base.h> /* for EOVERFLOW on Windows */
-#include <my_global.h>
-#include <m_string.h> /* for memcpy and NOT_FIXED_DEC */
-
-/**
- Appears to suffice to not call malloc() in most cases.
- @todo
- see if it is possible to get rid of malloc().
- this constant is sufficient to avoid malloc() on all inputs I have tried.
-*/
-#define DTOA_BUFF_SIZE (420 * sizeof(void *))
-
-/* Magic value returned by dtoa() to indicate overflow */
-#define DTOA_OVERFLOW 9999
-
-static double my_strtod_int(const char *, char **, int *, char *, size_t);
-static char *dtoa(double, int, int, int *, int *, char **, char *, size_t);
-static void dtoa_free(char *, char *, size_t);
-
-/**
- @brief
- Converts a given floating point number to a zero-terminated string
- representation using the 'f' format.
-
- @details
- This function is a wrapper around dtoa() to do the same as
- sprintf(to, "%-.*f", precision, x), though the conversion is usually more
- precise. The only difference is in handling [-,+]infinity and nan values,
- in which case we print '0\0' to the output string and indicate an overflow.
-
- @param x the input floating point number.
- @param precision the number of digits after the decimal point.
- All properties of sprintf() apply:
- - if the number of significant digits after the decimal
- point is less than precision, the resulting string is
- right-padded with zeros
- - if the precision is 0, no decimal point appears
- - if a decimal point appears, at least one digit appears
- before it
- @param to pointer to the output buffer. The longest string which
- my_fcvt() can return is FLOATING_POINT_BUFFER bytes
- (including the terminating '\0').
- @param error if not NULL, points to a location where the status of
- conversion is stored upon return.
- FALSE successful conversion
- TRUE the input number is [-,+]infinity or nan.
- The output string in this case is always '0'.
- @return number of written characters (excluding terminating '\0')
-*/
-
-size_t my_fcvt(double x, int precision, char *to, my_bool *error)
-{
- int decpt, sign, len, i;
- char *res, *src, *end, *dst= to;
- char buf[DTOA_BUFF_SIZE];
- DBUG_ASSERT(precision >= 0 && precision < NOT_FIXED_DEC && to != NULL);
-
- res= dtoa(x, 5, precision, &decpt, &sign, &end, buf, sizeof(buf));
-
- if (decpt == DTOA_OVERFLOW)
- {
- dtoa_free(res, buf, sizeof(buf));
- *to++= '0';
- *to= '\0';
- if (error != NULL)
- *error= TRUE;
- return 1;
- }
-
- src= res;
- len= end - src;
-
- if (sign)
- *dst++= '-';
-
- if (decpt <= 0)
- {
- *dst++= '0';
- *dst++= '.';
- for (i= decpt; i < 0; i++)
- *dst++= '0';
- }
-
- for (i= 1; i <= len; i++)
- {
- *dst++= *src++;
- if (i == decpt && i < len)
- *dst++= '.';
- }
- while (i++ <= decpt)
- *dst++= '0';
-
- if (precision > 0)
- {
- if (len <= decpt)
- *dst++= '.';
-
- for (i= precision - max(0, (len - decpt)); i > 0; i--)
- *dst++= '0';
- }
-
- *dst= '\0';
- if (error != NULL)
- *error= FALSE;
-
- dtoa_free(res, buf, sizeof(buf));
-
- return dst - to;
-}
-
-/**
- @brief
- Converts a given floating point number to a zero-terminated string
- representation with a given field width using the 'e' format
- (aka scientific notation) or the 'f' one.
-
- @details
- The format is chosen automatically to provide the most number of significant
- digits (and thus, precision) with a given field width. In many cases, the
- result is similar to that of sprintf(to, "%g", x) with a few notable
- differences:
- - the conversion is usually more precise than C library functions.
- - there is no 'precision' argument. instead, we specify the number of
- characters available for conversion (i.e. a field width).
- - the result never exceeds the specified field width. If the field is too
- short to contain even a rounded decimal representation, my_gcvt()
- indicates overflow and truncates the output string to the specified width.
- - float-type arguments are handled differently than double ones. For a
- float input number (i.e. when the 'type' argument is MY_GCVT_ARG_FLOAT)
- we deliberately limit the precision of conversion by FLT_DIG digits to
- avoid garbage past the significant digits.
- - unlike sprintf(), in cases where the 'e' format is preferred, we don't
- zero-pad the exponent to save space for significant digits. The '+' sign
- for a positive exponent does not appear for the same reason.
-
- @param x the input floating point number.
- @param type is either MY_GCVT_ARG_FLOAT or MY_GCVT_ARG_DOUBLE.
- Specifies the type of the input number (see notes above).
- @param width field width in characters. The minimal field width to
- hold any number representation (albeit rounded) is 7
- characters ("-Ne-NNN").
- @param to pointer to the output buffer. The result is always
- zero-terminated, and the longest returned string is thus
- 'width + 1' bytes.
- @param error if not NULL, points to a location where the status of
- conversion is stored upon return.
- FALSE successful conversion
- TRUE the input number is [-,+]infinity or nan.
- The output string in this case is always '0'.
- @return number of written characters (excluding terminating '\0')
-
- @todo
- Check if it is possible and makes sense to do our own rounding on top of
- dtoa() instead of calling dtoa() twice in (rare) cases when the resulting
- string representation does not fit in the specified field width and we want
- to re-round the input number with fewer significant digits. Examples:
-
- my_gcvt(-9e-3, ..., 4, ...);
- my_gcvt(-9e-3, ..., 2, ...);
- my_gcvt(1.87e-3, ..., 4, ...);
- my_gcvt(55, ..., 1, ...);
-
- We do our best to minimize such cases by:
-
- - passing to dtoa() the field width as the number of significant digits
-
- - removing the sign of the number early (and decreasing the width before
- passing it to dtoa())
-
- - choosing the proper format to preserve the most number of significant
- digits.
-*/
-
-size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
- my_bool *error)
-{
- int decpt, sign, len, exp_len;
- char *res, *src, *end, *dst= to, *dend= dst + width;
- char buf[DTOA_BUFF_SIZE];
- my_bool have_space, force_e_format;
- DBUG_ASSERT(width > 0 && to != NULL);
-
- /* We want to remove '-' from equations early */
- if (x < 0.)
- width--;
-
- res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : min(width, FLT_DIG),
- &decpt, &sign, &end, buf, sizeof(buf));
- if (decpt == DTOA_OVERFLOW)
- {
- dtoa_free(res, buf, sizeof(buf));
- *to++= '0';
- *to= '\0';
- if (error != NULL)
- *error= TRUE;
- return 1;
- }
-
- if (error != NULL)
- *error= FALSE;
-
- src= res;
- len= end - res;
-
- /*
- Number of digits in the exponent from the 'e' conversion.
- The sign of the exponent is taken into account separetely, we don't need
- to count it here.
- */
- exp_len= 1 + (decpt >= 101 || decpt <= -99) + (decpt >= 11 || decpt <= -9);
-
- /*
- Do we have enough space for all digits in the 'f' format?
- Let 'len' be the number of significant digits returned by dtoa,
- and F be the length of the resulting decimal representation.
- Consider the following cases:
- 1. decpt <= 0, i.e. we have "0.NNN" => F = len - decpt + 2
- 2. 0 < decpt < len, i.e. we have "NNN.NNN" => F = len + 1
- 3. len <= decpt, i.e. we have "NNN00" => F = decpt
- */
- have_space= (decpt <= 0 ? len - decpt + 2 :
- decpt > 0 && decpt < len ? len + 1 :
- decpt) <= width;
- /*
- The following is true when no significant digits can be placed with the
- specified field width using the 'f' format, and the 'e' format
- will not be truncated.
- */
- force_e_format= (decpt <= 0 && width <= 2 - decpt && width >= 3 + exp_len);
- /*
- Assume that we don't have enough space to place all significant digits in
- the 'f' format. We have to choose between the 'e' format and the 'f' one
- to keep as many significant digits as possible.
- Let E and F be the lengths of decimal representaion in the 'e' and 'f'
- formats, respectively. We want to use the 'f' format if, and only if F <= E.
- Consider the following cases:
- 1. decpt <= 0.
- F = len - decpt + 2 (see above)
- E = len + (len > 1) + 1 + 1 (decpt <= -99) + (decpt <= -9) + 1
- ("N.NNe-MMM")
- (F <= E) <=> (len == 1 && decpt >= -1) || (len > 1 && decpt >= -2)
- We also need to ensure that if the 'f' format is chosen,
- the field width allows us to place at least one significant digit
- (i.e. width > 2 - decpt). If not, we prefer the 'e' format.
- 2. 0 < decpt < len
- F = len + 1 (see above)
- E = len + 1 + 1 + ... ("N.NNeMMM")
- F is always less than E.
- 3. len <= decpt <= width
- In this case we have enough space to represent the number in the 'f'
- format, so we prefer it with some exceptions.
- 4. width < decpt
- The number cannot be represented in the 'f' format at all, always use
- the 'e' 'one.
- */
- if ((have_space ||
- /*
- Not enough space, let's see if the 'f' format provides the most number
- of significant digits.
- */
- ((decpt <= width && (decpt >= -1 || (decpt == -2 &&
- (len > 1 || !force_e_format)))) &&
- !force_e_format)) &&
-
- /*
- Use the 'e' format in some cases even if we have enough space for the
- 'f' one. See comment for MAX_DECPT_FOR_F_FORMAT.
- */
- (!have_space || (decpt >= -MAX_DECPT_FOR_F_FORMAT + 1 &&
- (decpt <= MAX_DECPT_FOR_F_FORMAT || len > decpt))))
- {
- /* 'f' format */
- int i;
-
- width-= (decpt < len) + (decpt <= 0 ? 1 - decpt : 0);
-
- /* Do we have to truncate any digits? */
- if (width < len)
- {
- if (width < decpt)
- {
- if (error != NULL)
- *error= TRUE;
- width= decpt;
- }
-
- /*
- We want to truncate (len - width) least significant digits after the
- decimal point. For this we are calling dtoa with mode=5, passing the
- number of significant digits = (len-decpt) - (len-width) = width-decpt
- */
- dtoa_free(res, buf, sizeof(buf));
- res= dtoa(x, 5, width - decpt, &decpt, &sign, &end, buf, sizeof(buf));
- src= res;
- len= end - res;
- }
-
- if (len == 0)
- {
- /* Underflow. Just print '0' and exit */
- *dst++= '0';
- goto end;
- }
-
- /*
- At this point we are sure we have enough space to put all digits
- returned by dtoa
- */
- if (sign && dst < dend)
- *dst++= '-';
- if (decpt <= 0)
- {
- if (dst < dend)
- *dst++= '0';
- if (len > 0 && dst < dend)
- *dst++= '.';
- for (; decpt < 0 && dst < dend; decpt++)
- *dst++= '0';
- }
-
- for (i= 1; i <= len && dst < dend; i++)
- {
- *dst++= *src++;
- if (i == decpt && i < len && dst < dend)
- *dst++= '.';
- }
- while (i++ <= decpt && dst < dend)
- *dst++= '0';
- }
- else
- {
- /* 'e' format */
- int decpt_sign= 0;
-
- if (--decpt < 0)
- {
- decpt= -decpt;
- width--;
- decpt_sign= 1;
- }
- width-= 1 + exp_len; /* eNNN */
-
- if (len > 1)
- width--;
-
- if (width <= 0)
- {
- /* Overflow */
- if (error != NULL)
- *error= TRUE;
- width= 0;
- }
-
- /* Do we have to truncate any digits? */
- if (width < len)
- {
- /* Yes, re-convert with a smaller width */
- dtoa_free(res, buf, sizeof(buf));
- res= dtoa(x, 4, width, &decpt, &sign, &end, buf, sizeof(buf));
- src= res;
- len= end - res;
- if (--decpt < 0)
- decpt= -decpt;
- }
- /*
- At this point we are sure we have enough space to put all digits
- returned by dtoa
- */
- if (sign && dst < dend)
- *dst++= '-';
- if (dst < dend)
- *dst++= *src++;
- if (len > 1 && dst < dend)
- {
- *dst++= '.';
- while (src < end && dst < dend)
- *dst++= *src++;
- }
- if (dst < dend)
- *dst++= 'e';
- if (decpt_sign && dst < dend)
- *dst++= '-';
-
- if (decpt >= 100 && dst < dend)
- {
- *dst++= decpt / 100 + '0';
- decpt%= 100;
- if (dst < dend)
- *dst++= decpt / 10 + '0';
- }
- else if (decpt >= 10 && dst < dend)
- *dst++= decpt / 10 + '0';
- if (dst < dend)
- *dst++= decpt % 10 + '0';
-
- }
-
-end:
- dtoa_free(res, buf, sizeof(buf));
- *dst= '\0';
-
- return dst - to;
-}
-
-/**
- @brief
- Converts string to double (string does not have to be zero-terminated)
-
- @details
- This is a wrapper around dtoa's version of strtod().
-
- @param str input string
- @param end address of a pointer to the first character after the input
- string. Upon return the pointer is set to point to the first
- rejected character.
- @param error Upon return is set to EOVERFLOW in case of underflow or
- overflow.
-
- @return The resulting double value. In case of underflow, 0.0 is
- returned. In case overflow, signed DBL_MAX is returned.
-*/
-
-double my_strtod(const char *str, char **end, int *error)
-{
- char buf[DTOA_BUFF_SIZE];
- double res;
- DBUG_ASSERT(end != NULL && ((str != NULL && *end != NULL) ||
- (str == NULL && *end == NULL)) &&
- error != NULL);
-
- res= my_strtod_int(str, end, error, buf, sizeof(buf));
- return (*error == 0) ? res : (res < 0 ? -DBL_MAX : DBL_MAX);
-}
-
-
-double my_atof(const char *nptr)
-{
- int error;
- const char *end= nptr+65535; /* Should be enough */
- return (my_strtod(nptr, (char**) &end, &error));
-}
-
-
-/****************************************************************
- *
- * The author of this software is David M. Gay.
- *
- * Copyright (c) 1991, 2000, 2001 by Lucent Technologies.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose without fee is hereby granted, provided that this entire notice
- * is included in all copies of any software which is or includes a copy
- * or modification of this software and in all copies of the supporting
- * documentation for such software.
- *
- * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
- * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR LUCENT MAKES ANY
- * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
- * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
- *
- ***************************************************************/
-/* Please send bug reports to David M. Gay (dmg at acm dot org,
- * with " at " changed at "@" and " dot " changed to "."). */
-
-/*
- Original copy of the software is located at http://www.netlib.org/fp/dtoa.c
- It was adjusted to serve MySQL server needs:
- * strtod() was modified to not expect a zero-terminated string.
- It now honors 'se' (end of string) argument as the input parameter,
- not just as the output one.
- * in dtoa(), in case of overflow/underflow/NaN result string now contains "0";
- decpt is set to DTOA_OVERFLOW to indicate overflow.
- * support for VAX, IBM mainframe and 16-bit hardware removed
- * we always assume that 64-bit integer type is available
- * support for Kernigan-Ritchie style headers (pre-ANSI compilers)
- removed
- * all gcc warnings ironed out
- * we always assume multithreaded environment, so we had to change
- memory allocation procedures to use stack in most cases;
- malloc is used as the last resort.
- * pow5mult rewritten to use pre-calculated pow5 list instead of
- the one generated on the fly.
-*/
-
-
-/*
- On a machine with IEEE extended-precision registers, it is
- necessary to specify double-precision (53-bit) rounding precision
- before invoking strtod or dtoa. If the machine uses (the equivalent
- of) Intel 80x87 arithmetic, the call
- _control87(PC_53, MCW_PC);
- does this with many compilers. Whether this or another call is
- appropriate depends on the compiler; for this to work, it may be
- necessary to #include "float.h" or another system-dependent header
- file.
-*/
-
-/*
- #define Honor_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
- and dtoa should round accordingly.
- #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3
- and Honor_FLT_ROUNDS is not #defined.
-
- TODO: check if we can get rid of the above two
-*/
-
-typedef int32 Long;
-typedef uint32 ULong;
-typedef int64 LLong;
-typedef uint64 ULLong;
-
-typedef union { double d; ULong L[2]; } U;
-
-#if defined(WORDS_BIGENDIAN) || (defined(__FLOAT_WORD_ORDER) && \
- (__FLOAT_WORD_ORDER == __BIG_ENDIAN))
-#define word0(x) (x)->L[0]
-#define word1(x) (x)->L[1]
-#else
-#define word0(x) (x)->L[1]
-#define word1(x) (x)->L[0]
-#endif
-
-#define dval(x) (x)->d
-
-/* #define P DBL_MANT_DIG */
-/* Ten_pmax= floor(P*log(2)/log(5)) */
-/* Bletch= (highest power of 2 < DBL_MAX_10_EXP) / 16 */
-/* Quick_max= floor((P-1)*log(FLT_RADIX)/log(10) - 1) */
-/* Int_max= floor(P*log(FLT_RADIX)/log(10) - 1) */
-
-#define Exp_shift 20
-#define Exp_shift1 20
-#define Exp_msk1 0x100000
-#define Exp_mask 0x7ff00000
-#define P 53
-#define Bias 1023
-#define Emin (-1022)
-#define Exp_1 0x3ff00000
-#define Exp_11 0x3ff00000
-#define Ebits 11
-#define Frac_mask 0xfffff
-#define Frac_mask1 0xfffff
-#define Ten_pmax 22
-#define Bletch 0x10
-#define Bndry_mask 0xfffff
-#define Bndry_mask1 0xfffff
-#define LSB 1
-#define Sign_bit 0x80000000
-#define Log2P 1
-#define Tiny1 1
-#define Quick_max 14
-#define Int_max 14
-
-#ifndef Flt_Rounds
-#ifdef FLT_ROUNDS
-#define Flt_Rounds FLT_ROUNDS
-#else
-#define Flt_Rounds 1
-#endif
-#endif /*Flt_Rounds*/
-
-#ifdef Honor_FLT_ROUNDS
-#define Rounding rounding
-#undef Check_FLT_ROUNDS
-#define Check_FLT_ROUNDS
-#else
-#define Rounding Flt_Rounds
-#endif
-
-#define rounded_product(a,b) a*= b
-#define rounded_quotient(a,b) a/= b
-
-#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1))
-#define Big1 0xffffffff
-#define FFFFFFFF 0xffffffffUL
-
-/* This is tested to be enough for dtoa */
-
-#define Kmax 15
-
-#define Bcopy(x,y) memcpy((char *)&x->sign, (char *)&y->sign, \
- 2*sizeof(int) + y->wds*sizeof(ULong))
-
-/* Arbitrary-length integer */
-
-typedef struct Bigint
-{
- union {
- ULong *x; /* points right after this Bigint object */
- struct Bigint *next; /* to maintain free lists */
- } p;
- int k; /* 2^k = maxwds */
- int maxwds; /* maximum length in 32-bit words */
- int sign; /* not zero if number is negative */
- int wds; /* current length in 32-bit words */
-} Bigint;
-
-
-/* A simple stack-memory based allocator for Bigints */
-
-typedef struct Stack_alloc
-{
- char *begin;
- char *free;
- char *end;
- /*
- Having list of free blocks lets us reduce maximum required amount
- of memory from ~4000 bytes to < 1680 (tested on x86).
- */
- Bigint *freelist[Kmax+1];
-} Stack_alloc;
-
-
-/*
- Try to allocate object on stack, and resort to malloc if all
- stack memory is used. Ensure allocated objects to be aligned by the pointer
- size in order to not break the alignment rules when storing a pointer to a
- Bigint.
-*/
-
-static Bigint *Balloc(int k, Stack_alloc *alloc)
-{
- Bigint *rv;
- if (k <= Kmax && alloc->freelist[k])
- {
- rv= alloc->freelist[k];
- alloc->freelist[k]= rv->p.next;
- }
- else
- {
- int x, len;
-
- x= 1 << k;
- len= MY_ALIGN(sizeof(Bigint) + x * sizeof(ULong), SIZEOF_CHARP);
-
- if (alloc->free + len <= alloc->end)
- {
- rv= (Bigint*) alloc->free;
- alloc->free+= len;
- }
- else
- rv= (Bigint*) malloc(len);
-
- rv->k= k;
- rv->maxwds= x;
- }
- rv->sign= rv->wds= 0;
- rv->p.x= (ULong*) (rv + 1);
- return rv;
-}
-
-
-/*
- If object was allocated on stack, try putting it to the free
- list. Otherwise call free().
-*/
-
-static void Bfree(Bigint *v, Stack_alloc *alloc)
-{
- char *gptr= (char*) v; /* generic pointer */
- if (gptr < alloc->begin || gptr >= alloc->end)
- free(gptr);
- else if (v->k <= Kmax)
- {
- /*
- Maintain free lists only for stack objects: this way we don't
- have to bother with freeing lists in the end of dtoa;
- heap should not be used normally anyway.
- */
- v->p.next= alloc->freelist[v->k];
- alloc->freelist[v->k]= v;
- }
-}
-
-
-/*
- This is to place return value of dtoa in: tries to use stack
- as well, but passes by free lists management and just aligns len by
- the pointer size in order to not break the alignment rules when storing a
- pointer to a Bigint.
-*/
-
-static char *dtoa_alloc(int i, Stack_alloc *alloc)
-{
- char *rv;
- int aligned_size= MY_ALIGN(i, SIZEOF_CHARP);
- if (alloc->free + aligned_size <= alloc->end)
- {
- rv= alloc->free;
- alloc->free+= aligned_size;
- }
- else
- rv= malloc(i);
- return rv;
-}
-
-
-/*
- dtoa_free() must be used to free values s returned by dtoa()
- This is the counterpart of dtoa_alloc()
-*/
-
-static void dtoa_free(char *gptr, char *buf, size_t buf_size)
-{
- if (gptr < buf || gptr >= buf + buf_size)
- free(gptr);
-}
-
-
-/* Bigint arithmetic functions */
-
-/* Multiply by m and add a */
-
-static Bigint *multadd(Bigint *b, int m, int a, Stack_alloc *alloc)
-{
- int i, wds;
- ULong *x;
- ULLong carry, y;
- Bigint *b1;
-
- wds= b->wds;
- x= b->p.x;
- i= 0;
- carry= a;
- do
- {
- y= *x * (ULLong)m + carry;
- carry= y >> 32;
- *x++= (ULong)(y & FFFFFFFF);
- }
- while (++i < wds);
- if (carry)
- {
- if (wds >= b->maxwds)
- {
- b1= Balloc(b->k+1, alloc);
- Bcopy(b1, b);
- Bfree(b, alloc);
- b= b1;
- }
- b->p.x[wds++]= (ULong) carry;
- b->wds= wds;
- }
- return b;
-}
-
-
-static Bigint *s2b(const char *s, int nd0, int nd, ULong y9, Stack_alloc *alloc)
-{
- Bigint *b;
- int i, k;
- Long x, y;
-
- x= (nd + 8) / 9;
- for (k= 0, y= 1; x > y; y <<= 1, k++) ;
- b= Balloc(k, alloc);
- b->p.x[0]= y9;
- b->wds= 1;
-
- i= 9;
- if (9 < nd0)
- {
- s+= 9;
- do
- b= multadd(b, 10, *s++ - '0', alloc);
- while (++i < nd0);
- s++;
- }
- else
- s+= 10;
- for(; i < nd; i++)
- b= multadd(b, 10, *s++ - '0', alloc);
- return b;
-}
-
-
-static int hi0bits(register ULong x)
-{
- register int k= 0;
-
- if (!(x & 0xffff0000))
- {
- k= 16;
- x<<= 16;
- }
- if (!(x & 0xff000000))
- {
- k+= 8;
- x<<= 8;
- }
- if (!(x & 0xf0000000))
- {
- k+= 4;
- x<<= 4;
- }
- if (!(x & 0xc0000000))
- {
- k+= 2;
- x<<= 2;
- }
- if (!(x & 0x80000000))
- {
- k++;
- if (!(x & 0x40000000))
- return 32;
- }
- return k;
-}
-
-
-static int lo0bits(ULong *y)
-{
- register int k;
- register ULong x= *y;
-
- if (x & 7)
- {
- if (x & 1)
- return 0;
- if (x & 2)
- {
- *y= x >> 1;
- return 1;
- }
- *y= x >> 2;
- return 2;
- }
- k= 0;
- if (!(x & 0xffff))
- {
- k= 16;
- x>>= 16;
- }
- if (!(x & 0xff))
- {
- k+= 8;
- x>>= 8;
- }
- if (!(x & 0xf))
- {
- k+= 4;
- x>>= 4;
- }
- if (!(x & 0x3))
- {
- k+= 2;
- x>>= 2;
- }
- if (!(x & 1))
- {
- k++;
- x>>= 1;
- if (!x)
- return 32;
- }
- *y= x;
- return k;
-}
-
-
-/* Convert integer to Bigint number */
-
-static Bigint *i2b(int i, Stack_alloc *alloc)
-{
- Bigint *b;
-
- b= Balloc(1, alloc);
- b->p.x[0]= i;
- b->wds= 1;
- return b;
-}
-
-
-/* Multiply two Bigint numbers */
-
-static Bigint *mult(Bigint *a, Bigint *b, Stack_alloc *alloc)
-{
- Bigint *c;
- int k, wa, wb, wc;
- ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0;
- ULong y;
- ULLong carry, z;
-
- if (a->wds < b->wds)
- {
- c= a;
- a= b;
- b= c;
- }
- k= a->k;
- wa= a->wds;
- wb= b->wds;
- wc= wa + wb;
- if (wc > a->maxwds)
- k++;
- c= Balloc(k, alloc);
- for (x= c->p.x, xa= x + wc; x < xa; x++)
- *x= 0;
- xa= a->p.x;
- xae= xa + wa;
- xb= b->p.x;
- xbe= xb + wb;
- xc0= c->p.x;
- for (; xb < xbe; xc0++)
- {
- if ((y= *xb++))
- {
- x= xa;
- xc= xc0;
- carry= 0;
- do
- {
- z= *x++ * (ULLong)y + *xc + carry;
- carry= z >> 32;
- *xc++= (ULong) (z & FFFFFFFF);
- }
- while (x < xae);
- *xc= (ULong) carry;
- }
- }
- for (xc0= c->p.x, xc= xc0 + wc; wc > 0 && !*--xc; --wc) ;
- c->wds= wc;
- return c;
-}
-
-
-/*
- Precalculated array of powers of 5: tested to be enough for
- vasting majority of dtoa_r cases.
-*/
-
-static ULong powers5[]=
-{
- 625UL,
-
- 390625UL,
-
- 2264035265UL, 35UL,
-
- 2242703233UL, 762134875UL, 1262UL,
-
- 3211403009UL, 1849224548UL, 3668416493UL, 3913284084UL, 1593091UL,
-
- 781532673UL, 64985353UL, 253049085UL, 594863151UL, 3553621484UL,
- 3288652808UL, 3167596762UL, 2788392729UL, 3911132675UL, 590UL,
-
- 2553183233UL, 3201533787UL, 3638140786UL, 303378311UL, 1809731782UL,
- 3477761648UL, 3583367183UL, 649228654UL, 2915460784UL, 487929380UL,
- 1011012442UL, 1677677582UL, 3428152256UL, 1710878487UL, 1438394610UL,
- 2161952759UL, 4100910556UL, 1608314830UL, 349175UL
-};
-
-
-static Bigint p5_a[]=
-{
- /* { x } - k - maxwds - sign - wds */
- { { powers5 }, 1, 1, 0, 1 },
- { { powers5 + 1 }, 1, 1, 0, 1 },
- { { powers5 + 2 }, 1, 2, 0, 2 },
- { { powers5 + 4 }, 2, 3, 0, 3 },
- { { powers5 + 7 }, 3, 5, 0, 5 },
- { { powers5 + 12 }, 4, 10, 0, 10 },
- { { powers5 + 22 }, 5, 19, 0, 19 }
-};
-
-#define P5A_MAX (sizeof(p5_a)/sizeof(*p5_a) - 1)
-
-static Bigint *pow5mult(Bigint *b, int k, Stack_alloc *alloc)
-{
- Bigint *b1, *p5, *p51;
- int i;
- static int p05[3]= { 5, 25, 125 };
-
- if ((i= k & 3))
- b= multadd(b, p05[i-1], 0, alloc);
-
- if (!(k>>= 2))
- return b;
- p5= p5_a;
- for (;;)
- {
- if (k & 1)
- {
- b1= mult(b, p5, alloc);
- Bfree(b, alloc);
- b= b1;
- }
- if (!(k>>= 1))
- break;
- /* Calculate next power of 5 */
- if (p5 < p5_a + P5A_MAX)
- ++p5;
- else if (p5 == p5_a + P5A_MAX)
- p5= mult(p5, p5, alloc);
- else
- {
- p51= mult(p5, p5, alloc);
- Bfree(p5, alloc);
- p5= p51;
- }
- }
- return b;
-}
-
-
-static Bigint *lshift(Bigint *b, int k, Stack_alloc *alloc)
-{
- int i, k1, n, n1;
- Bigint *b1;
- ULong *x, *x1, *xe, z;
-
- n= k >> 5;
- k1= b->k;
- n1= n + b->wds + 1;
- for (i= b->maxwds; n1 > i; i<<= 1)
- k1++;
- b1= Balloc(k1, alloc);
- x1= b1->p.x;
- for (i= 0; i < n; i++)
- *x1++= 0;
- x= b->p.x;
- xe= x + b->wds;
- if (k&= 0x1f)
- {
- k1= 32 - k;
- z= 0;
- do
- {
- *x1++= *x << k | z;
- z= *x++ >> k1;
- }
- while (x < xe);
- if ((*x1= z))
- ++n1;
- }
- else
- do
- *x1++= *x++;
- while (x < xe);
- b1->wds= n1 - 1;
- Bfree(b, alloc);
- return b1;
-}
-
-
-static int cmp(Bigint *a, Bigint *b)
-{
- ULong *xa, *xa0, *xb, *xb0;
- int i, j;
-
- i= a->wds;
- j= b->wds;
- if (i-= j)
- return i;
- xa0= a->p.x;
- xa= xa0 + j;
- xb0= b->p.x;
- xb= xb0 + j;
- for (;;)
- {
- if (*--xa != *--xb)
- return *xa < *xb ? -1 : 1;
- if (xa <= xa0)
- break;
- }
- return 0;
-}
-
-
-static Bigint *diff(Bigint *a, Bigint *b, Stack_alloc *alloc)
-{
- Bigint *c;
- int i, wa, wb;
- ULong *xa, *xae, *xb, *xbe, *xc;
- ULLong borrow, y;
-
- i= cmp(a,b);
- if (!i)
- {
- c= Balloc(0, alloc);
- c->wds= 1;
- c->p.x[0]= 0;
- return c;
- }
- if (i < 0)
- {
- c= a;
- a= b;
- b= c;
- i= 1;
- }
- else
- i= 0;
- c= Balloc(a->k, alloc);
- c->sign= i;
- wa= a->wds;
- xa= a->p.x;
- xae= xa + wa;
- wb= b->wds;
- xb= b->p.x;
- xbe= xb + wb;
- xc= c->p.x;
- borrow= 0;
- do
- {
- y= (ULLong)*xa++ - *xb++ - borrow;
- borrow= y >> 32 & (ULong)1;
- *xc++= (ULong) (y & FFFFFFFF);
- }
- while (xb < xbe);
- while (xa < xae)
- {
- y= *xa++ - borrow;
- borrow= y >> 32 & (ULong)1;
- *xc++= (ULong) (y & FFFFFFFF);
- }
- while (!*--xc)
- wa--;
- c->wds= wa;
- return c;
-}
-
-
-static double ulp(U *x)
-{
- register Long L;
- U u;
-
- L= (word0(x) & Exp_mask) - (P - 1)*Exp_msk1;
- word0(&u) = L;
- word1(&u) = 0;
- return dval(&u);
-}
-
-
-static double b2d(Bigint *a, int *e)
-{
- ULong *xa, *xa0, w, y, z;
- int k;
- U d;
-#define d0 word0(&d)
-#define d1 word1(&d)
-
- xa0= a->p.x;
- xa= xa0 + a->wds;
- y= *--xa;
- k= hi0bits(y);
- *e= 32 - k;
- if (k < Ebits)
- {
- d0= Exp_1 | y >> (Ebits - k);
- w= xa > xa0 ? *--xa : 0;
- d1= y << ((32-Ebits) + k) | w >> (Ebits - k);
- goto ret_d;
- }
- z= xa > xa0 ? *--xa : 0;
- if (k-= Ebits)
- {
- d0= Exp_1 | y << k | z >> (32 - k);
- y= xa > xa0 ? *--xa : 0;
- d1= z << k | y >> (32 - k);
- }
- else
- {
- d0= Exp_1 | y;
- d1= z;
- }
- ret_d:
-#undef d0
-#undef d1
- return dval(&d);
-}
-
-
-static Bigint *d2b(U *d, int *e, int *bits, Stack_alloc *alloc)
-{
- Bigint *b;
- int de, k;
- ULong *x, y, z;
- int i;
-#define d0 word0(d)
-#define d1 word1(d)
-
- b= Balloc(1, alloc);
- x= b->p.x;
-
- z= d0 & Frac_mask;
- d0 &= 0x7fffffff; /* clear sign bit, which we ignore */
- if ((de= (int)(d0 >> Exp_shift)))
- z|= Exp_msk1;
- if ((y= d1))
- {
- if ((k= lo0bits(&y)))
- {
- x[0]= y | z << (32 - k);
- z>>= k;
- }
- else
- x[0]= y;
- i= b->wds= (x[1]= z) ? 2 : 1;
- }
- else
- {
- k= lo0bits(&z);
- x[0]= z;
- i= b->wds= 1;
- k+= 32;
- }
- if (de)
- {
- *e= de - Bias - (P-1) + k;
- *bits= P - k;
- }
- else
- {
- *e= de - Bias - (P-1) + 1 + k;
- *bits= 32*i - hi0bits(x[i-1]);
- }
- return b;
-#undef d0
-#undef d1
-}
-
-
-static double ratio(Bigint *a, Bigint *b)
-{
- U da, db;
- int k, ka, kb;
-
- dval(&da)= b2d(a, &ka);
- dval(&db)= b2d(b, &kb);
- k= ka - kb + 32*(a->wds - b->wds);
- if (k > 0)
- word0(&da)+= k*Exp_msk1;
- else
- {
- k= -k;
- word0(&db)+= k*Exp_msk1;
- }
- return dval(&da) / dval(&db);
-}
-
-static const double tens[] =
-{
- 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9,
- 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19,
- 1e20, 1e21, 1e22
-};
-
-static const double bigtens[]= { 1e16, 1e32, 1e64, 1e128, 1e256 };
-static const double tinytens[]=
-{ 1e-16, 1e-32, 1e-64, 1e-128,
- 9007199254740992.*9007199254740992.e-256 /* = 2^106 * 1e-53 */
-};
-/*
- The factor of 2^53 in tinytens[4] helps us avoid setting the underflow
- flag unnecessarily. It leads to a song and dance at the end of strtod.
-*/
-#define Scale_Bit 0x10
-#define n_bigtens 5
-
-/*
- strtod for IEEE--arithmetic machines.
-
- This strtod returns a nearest machine number to the input decimal
- string (or sets errno to EOVERFLOW). Ties are broken by the IEEE round-even
- rule.
-
- Inspired loosely by William D. Clinger's paper "How to Read Floating
- Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101].
-
- Modifications:
-
- 1. We only require IEEE (not IEEE double-extended).
- 2. We get by with floating-point arithmetic in a case that
- Clinger missed -- when we're computing d * 10^n
- for a small integer d and the integer n is not too
- much larger than 22 (the maximum integer k for which
- we can represent 10^k exactly), we may be able to
- compute (d*10^k) * 10^(e-k) with just one roundoff.
- 3. Rather than a bit-at-a-time adjustment of the binary
- result in the hard case, we use floating-point
- arithmetic to determine the adjustment to within
- one bit; only in really hard cases do we need to
- compute a second residual.
- 4. Because of 3., we don't need a large table of powers of 10
- for ten-to-e (just some small tables, e.g. of 10^k
- for 0 <= k <= 22).
-*/
-
-static double my_strtod_int(const char *s00, char **se, int *error, char *buf, size_t buf_size)
-{
- int scale;
- int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, UNINIT_VAR(c), dsign,
- e, e1, esign, i, j, k, nd, nd0, nf, nz, nz0, sign;
- const char *s, *s0, *s1, *end = *se;
- double aadj, aadj1;
- U aadj2, adj, rv, rv0;
- Long L;
- ULong y, z;
- Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;
-#ifdef SET_INEXACT
- int inexact, oldinexact;
-#endif
-#ifdef Honor_FLT_ROUNDS
- int rounding;
-#endif
- Stack_alloc alloc;
-
- *error= 0;
-
- alloc.begin= alloc.free= buf;
- alloc.end= buf + buf_size;
- memset(alloc.freelist, 0, sizeof(alloc.freelist));
-
- sign= nz0= nz= 0;
- dval(&rv)= 0.;
- for (s= s00; s < end; s++)
- switch (*s) {
- case '-':
- sign= 1;
- /* no break */
- case '+':
- s++;
- goto break2;
- case '\t':
- case '\n':
- case '\v':
- case '\f':
- case '\r':
- case ' ':
- continue;
- default:
- goto break2;
- }
- break2:
- if (s >= end)
- goto ret0;
-
- if (*s == '0')
- {
- nz0= 1;
- while (++s < end && *s == '0') ;
- if (s >= end)
- goto ret;
- }
- s0= s;
- y= z= 0;
- for (nd= nf= 0; s < end && (c= *s) >= '0' && c <= '9'; nd++, s++)
- if (nd < 9)
- y= 10*y + c - '0';
- else if (nd < 16)
- z= 10*z + c - '0';
- nd0= nd;
- if (s < end - 1 && c == '.')
- {
- c= *++s;
- if (!nd)
- {
- for (; s < end && c == '0'; c= *++s)
- nz++;
- if (s < end && c > '0' && c <= '9')
- {
- s0= s;
- nf+= nz;
- nz= 0;
- goto have_dig;
- }
- goto dig_done;
- }
- for (; s < end && c >= '0' && c <= '9'; c = *++s)
- {
- have_dig:
- nz++;
- if (c-= '0')
- {
- nf+= nz;
- for (i= 1; i < nz; i++)
- if (nd++ < 9)
- y*= 10;
- else if (nd <= DBL_DIG + 1)
- z*= 10;
- if (nd++ < 9)
- y= 10*y + c;
- else if (nd <= DBL_DIG + 1)
- z= 10*z + c;
- nz= 0;
- }
- }
- }
- dig_done:
- e= 0;
- if (s < end && (c == 'e' || c == 'E'))
- {
- if (!nd && !nz && !nz0)
- goto ret0;
- s00= s;
- esign= 0;
- if (++s < end)
- switch (c= *s) {
- case '-':
- esign= 1;
- case '+':
- c= *++s;
- }
- if (s < end && c >= '0' && c <= '9')
- {
- while (s < end && c == '0')
- c= *++s;
- if (s < end && c > '0' && c <= '9') {
- L= c - '0';
- s1= s;
- while (++s < end && (c= *s) >= '0' && c <= '9')
- L= 10*L + c - '0';
- if (s - s1 > 8 || L > 19999)
- /* Avoid confusion from exponents
- * so large that e might overflow.
- */
- e= 19999; /* safe for 16 bit ints */
- else
- e= (int)L;
- if (esign)
- e= -e;
- }
- else
- e= 0;
- }
- else
- s= s00;
- }
- if (!nd)
- {
- if (!nz && !nz0)
- {
- ret0:
- s= s00;
- sign= 0;
- }
- goto ret;
- }
- e1= e -= nf;
-
- /*
- Now we have nd0 digits, starting at s0, followed by a
- decimal point, followed by nd-nd0 digits. The number we're
- after is the integer represented by those digits times
- 10**e
- */
-
- if (!nd0)
- nd0= nd;
- k= nd < DBL_DIG + 1 ? nd : DBL_DIG + 1;
- dval(&rv)= y;
- if (k > 9)
- {
-#ifdef SET_INEXACT
- if (k > DBL_DIG)
- oldinexact = get_inexact();
-#endif
- dval(&rv)= tens[k - 9] * dval(&rv) + z;
- }
- bd0= 0;
- if (nd <= DBL_DIG
-#ifndef Honor_FLT_ROUNDS
- && Flt_Rounds == 1
-#endif
- )
- {
- if (!e)
- goto ret;
- if (e > 0)
- {
- if (e <= Ten_pmax)
- {
-#ifdef Honor_FLT_ROUNDS
- /* round correctly FLT_ROUNDS = 2 or 3 */
- if (sign)
- {
- rv.d= -rv.d;
- sign= 0;
- }
-#endif
- /* rv = */ rounded_product(dval(&rv), tens[e]);
- goto ret;
- }
- i= DBL_DIG - nd;
- if (e <= Ten_pmax + i)
- {
- /*
- A fancier test would sometimes let us do
- this for larger i values.
- */
-#ifdef Honor_FLT_ROUNDS
- /* round correctly FLT_ROUNDS = 2 or 3 */
- if (sign)
- {
- rv.d= -rv.d;
- sign= 0;
- }
-#endif
- e-= i;
- dval(&rv)*= tens[i];
- /* rv = */ rounded_product(dval(&rv), tens[e]);
- goto ret;
- }
- }
-#ifndef Inaccurate_Divide
- else if (e >= -Ten_pmax)
- {
-#ifdef Honor_FLT_ROUNDS
- /* round correctly FLT_ROUNDS = 2 or 3 */
- if (sign)
- {
- rv.d= -rv.d;
- sign= 0;
- }
-#endif
- /* rv = */ rounded_quotient(dval(&rv), tens[-e]);
- goto ret;
- }
-#endif
- }
- e1+= nd - k;
-
-#ifdef SET_INEXACT
- inexact= 1;
- if (k <= DBL_DIG)
- oldinexact= get_inexact();
-#endif
- scale= 0;
-#ifdef Honor_FLT_ROUNDS
- if ((rounding= Flt_Rounds) >= 2)
- {
- if (sign)
- rounding= rounding == 2 ? 0 : 2;
- else
- if (rounding != 2)
- rounding= 0;
- }
-#endif
-
- /* Get starting approximation = rv * 10**e1 */
-
- if (e1 > 0)
- {
- if ((i= e1 & 15))
- dval(&rv)*= tens[i];
- if (e1&= ~15)
- {
- if (e1 > DBL_MAX_10_EXP)
- {
- ovfl:
- *error= EOVERFLOW;
- /* Can't trust HUGE_VAL */
-#ifdef Honor_FLT_ROUNDS
- switch (rounding)
- {
- case 0: /* toward 0 */
- case 3: /* toward -infinity */
- word0(&rv)= Big0;
- word1(&rv)= Big1;
- break;
- default:
- word0(&rv)= Exp_mask;
- word1(&rv)= 0;
- }
-#else /*Honor_FLT_ROUNDS*/
- word0(&rv)= Exp_mask;
- word1(&rv)= 0;
-#endif /*Honor_FLT_ROUNDS*/
-#ifdef SET_INEXACT
- /* set overflow bit */
- dval(&rv0)= 1e300;
- dval(&rv0)*= dval(&rv0);
-#endif
- if (bd0)
- goto retfree;
- goto ret;
- }
- e1>>= 4;
- for(j= 0; e1 > 1; j++, e1>>= 1)
- if (e1 & 1)
- dval(&rv)*= bigtens[j];
- /* The last multiplication could overflow. */
- word0(&rv)-= P*Exp_msk1;
- dval(&rv)*= bigtens[j];
- if ((z= word0(&rv) & Exp_mask) > Exp_msk1 * (DBL_MAX_EXP + Bias - P))
- goto ovfl;
- if (z > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P))
- {
- /* set to largest number (Can't trust DBL_MAX) */
- word0(&rv)= Big0;
- word1(&rv)= Big1;
- }
- else
- word0(&rv)+= P*Exp_msk1;
- }
- }
- else if (e1 < 0)
- {
- e1= -e1;
- if ((i= e1 & 15))
- dval(&rv)/= tens[i];
- if ((e1>>= 4))
- {
- if (e1 >= 1 << n_bigtens)
- goto undfl;
- if (e1 & Scale_Bit)
- scale= 2 * P;
- for(j= 0; e1 > 0; j++, e1>>= 1)
- if (e1 & 1)
- dval(&rv)*= tinytens[j];
- if (scale && (j = 2 * P + 1 - ((word0(&rv) & Exp_mask) >> Exp_shift)) > 0)
- {
- /* scaled rv is denormal; zap j low bits */
- if (j >= 32)
- {
- word1(&rv)= 0;
- if (j >= 53)
- word0(&rv)= (P + 2) * Exp_msk1;
- else
- word0(&rv)&= 0xffffffff << (j - 32);
- }
- else
- word1(&rv)&= 0xffffffff << j;
- }
- if (!dval(&rv))
- {
- undfl:
- dval(&rv)= 0.;
- if (bd0)
- goto retfree;
- goto ret;
- }
- }
- }
-
- /* Now the hard part -- adjusting rv to the correct value.*/
-
- /* Put digits into bd: true value = bd * 10^e */
-
- bd0= s2b(s0, nd0, nd, y, &alloc);
-
- for(;;)
- {
- bd= Balloc(bd0->k, &alloc);
- Bcopy(bd, bd0);
- bb= d2b(&rv, &bbe, &bbbits, &alloc); /* rv = bb * 2^bbe */
- bs= i2b(1, &alloc);
-
- if (e >= 0)
- {
- bb2= bb5= 0;
- bd2= bd5= e;
- }
- else
- {
- bb2= bb5= -e;
- bd2= bd5= 0;
- }
- if (bbe >= 0)
- bb2+= bbe;
- else
- bd2-= bbe;
- bs2= bb2;
-#ifdef Honor_FLT_ROUNDS
- if (rounding != 1)
- bs2++;
-#endif
- j= bbe - scale;
- i= j + bbbits - 1; /* logb(rv) */
- if (i < Emin) /* denormal */
- j+= P - Emin;
- else
- j= P + 1 - bbbits;
- bb2+= j;
- bd2+= j;
- bd2+= scale;
- i= bb2 < bd2 ? bb2 : bd2;
- if (i > bs2)
- i= bs2;
- if (i > 0)
- {
- bb2-= i;
- bd2-= i;
- bs2-= i;
- }
- if (bb5 > 0)
- {
- bs= pow5mult(bs, bb5, &alloc);
- bb1= mult(bs, bb, &alloc);
- Bfree(bb, &alloc);
- bb= bb1;
- }
- if (bb2 > 0)
- bb= lshift(bb, bb2, &alloc);
- if (bd5 > 0)
- bd= pow5mult(bd, bd5, &alloc);
- if (bd2 > 0)
- bd= lshift(bd, bd2, &alloc);
- if (bs2 > 0)
- bs= lshift(bs, bs2, &alloc);
- delta= diff(bb, bd, &alloc);
- dsign= delta->sign;
- delta->sign= 0;
- i= cmp(delta, bs);
-#ifdef Honor_FLT_ROUNDS
- if (rounding != 1)
- {
- if (i < 0)
- {
- /* Error is less than an ulp */
- if (!delta->p.x[0] && delta->wds <= 1)
- {
- /* exact */
-#ifdef SET_INEXACT
- inexact= 0;
-#endif
- break;
- }
- if (rounding)
- {
- if (dsign)
- {
- adj.d= 1.;
- goto apply_adj;
- }
- }
- else if (!dsign)
- {
- adj.d= -1.;
- if (!word1(&rv) && !(word0(&rv) & Frac_mask))
- {
- y= word0(&rv) & Exp_mask;
- if (!scale || y > 2*P*Exp_msk1)
- {
- delta= lshift(delta, Log2P, &alloc);
- if (cmp(delta, bs) <= 0)
- adj.d= -0.5;
- }
- }
- apply_adj:
- if (scale && (y= word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1)
- word0(&adj)+= (2 * P + 1) * Exp_msk1 - y;
- dval(&rv)+= adj.d * ulp(&rv);
- }
- break;
- }
- adj.d= ratio(delta, bs);
- if (adj.d < 1.)
- adj.d= 1.;
- if (adj.d <= 0x7ffffffe)
- {
- /* adj = rounding ? ceil(adj) : floor(adj); */
- y= adj.d;
- if (y != adj.d)
- {
- if (!((rounding >> 1) ^ dsign))
- y++;
- adj.d= y;
- }
- }
- if (scale && (y= word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1)
- word0(&adj)+= (2 * P + 1) * Exp_msk1 - y;
- adj.d*= ulp(&rv);
- if (dsign)
- dval(&rv)+= adj.d;
- else
- dval(&rv)-= adj.d;
- goto cont;
- }
-#endif /*Honor_FLT_ROUNDS*/
-
- if (i < 0)
- {
- /*
- Error is less than half an ulp -- check for special case of mantissa
- a power of two.
- */
- if (dsign || word1(&rv) || word0(&rv) & Bndry_mask ||
- (word0(&rv) & Exp_mask) <= (2 * P + 1) * Exp_msk1)
- {
-#ifdef SET_INEXACT
- if (!delta->x[0] && delta->wds <= 1)
- inexact= 0;
-#endif
- break;
- }
- if (!delta->p.x[0] && delta->wds <= 1)
- {
- /* exact result */
-#ifdef SET_INEXACT
- inexact= 0;
-#endif
- break;
- }
- delta= lshift(delta, Log2P, &alloc);
- if (cmp(delta, bs) > 0)
- goto drop_down;
- break;
- }
- if (i == 0)
- {
- /* exactly half-way between */
- if (dsign)
- {
- if ((word0(&rv) & Bndry_mask1) == Bndry_mask1 &&
- word1(&rv) ==
- ((scale && (y = word0(&rv) & Exp_mask) <= 2 * P * Exp_msk1) ?
- (0xffffffff & (0xffffffff << (2*P+1-(y>>Exp_shift)))) :
- 0xffffffff))
- {
- /*boundary case -- increment exponent*/
- word0(&rv)= (word0(&rv) & Exp_mask) + Exp_msk1;
- word1(&rv) = 0;
- dsign = 0;
- break;
- }
- }
- else if (!(word0(&rv) & Bndry_mask) && !word1(&rv))
- {
- drop_down:
- /* boundary case -- decrement exponent */
- if (scale)
- {
- L= word0(&rv) & Exp_mask;
- if (L <= (2 *P + 1) * Exp_msk1)
- {
- if (L > (P + 2) * Exp_msk1)
- /* round even ==> accept rv */
- break;
- /* rv = smallest denormal */
- goto undfl;
- }
- }
- L= (word0(&rv) & Exp_mask) - Exp_msk1;
- word0(&rv)= L | Bndry_mask1;
- word1(&rv)= 0xffffffff;
- break;
- }
- if (!(word1(&rv) & LSB))
- break;
- if (dsign)
- dval(&rv)+= ulp(&rv);
- else
- {
- dval(&rv)-= ulp(&rv);
- if (!dval(&rv))
- goto undfl;
- }
- dsign= 1 - dsign;
- break;
- }
- if ((aadj= ratio(delta, bs)) <= 2.)
- {
- if (dsign)
- aadj= aadj1= 1.;
- else if (word1(&rv) || word0(&rv) & Bndry_mask)
- {
- if (word1(&rv) == Tiny1 && !word0(&rv))
- goto undfl;
- aadj= 1.;
- aadj1= -1.;
- }
- else
- {
- /* special case -- power of FLT_RADIX to be rounded down... */
- if (aadj < 2. / FLT_RADIX)
- aadj= 1. / FLT_RADIX;
- else
- aadj*= 0.5;
- aadj1= -aadj;
- }
- }
- else
- {
- aadj*= 0.5;
- aadj1= dsign ? aadj : -aadj;
-#ifdef Check_FLT_ROUNDS
- switch (Rounding)
- {
- case 2: /* towards +infinity */
- aadj1-= 0.5;
- break;
- case 0: /* towards 0 */
- case 3: /* towards -infinity */
- aadj1+= 0.5;
- }
-#else
- if (Flt_Rounds == 0)
- aadj1+= 0.5;
-#endif /*Check_FLT_ROUNDS*/
- }
- y= word0(&rv) & Exp_mask;
-
- /* Check for overflow */
-
- if (y == Exp_msk1 * (DBL_MAX_EXP + Bias - 1))
- {
- dval(&rv0)= dval(&rv);
- word0(&rv)-= P * Exp_msk1;
- adj.d= aadj1 * ulp(&rv);
- dval(&rv)+= adj.d;
- if ((word0(&rv) & Exp_mask) >= Exp_msk1 * (DBL_MAX_EXP + Bias - P))
- {
- if (word0(&rv0) == Big0 && word1(&rv0) == Big1)
- goto ovfl;
- word0(&rv)= Big0;
- word1(&rv)= Big1;
- goto cont;
- }
- else
- word0(&rv)+= P * Exp_msk1;
- }
- else
- {
- if (scale && y <= 2 * P * Exp_msk1)
- {
- if (aadj <= 0x7fffffff)
- {
- if ((z= (ULong) aadj) <= 0)
- z= 1;
- aadj= z;
- aadj1= dsign ? aadj : -aadj;
- }
- dval(&aadj2) = aadj1;
- word0(&aadj2)+= (2 * P + 1) * Exp_msk1 - y;
- aadj1= dval(&aadj2);
- adj.d= aadj1 * ulp(&rv);
- dval(&rv)+= adj.d;
- if (rv.d == 0.)
- goto undfl;
- }
- else
- {
- adj.d= aadj1 * ulp(&rv);
- dval(&rv)+= adj.d;
- }
- }
- z= word0(&rv) & Exp_mask;
-#ifndef SET_INEXACT
- if (!scale)
- if (y == z)
- {
- /* Can we stop now? */
- L= (Long)aadj;
- aadj-= L;
- /* The tolerances below are conservative. */
- if (dsign || word1(&rv) || word0(&rv) & Bndry_mask)
- {
- if (aadj < .4999999 || aadj > .5000001)
- break;
- }
- else if (aadj < .4999999 / FLT_RADIX)
- break;
- }
-#endif
- cont:
- Bfree(bb, &alloc);
- Bfree(bd, &alloc);
- Bfree(bs, &alloc);
- Bfree(delta, &alloc);
- }
-#ifdef SET_INEXACT
- if (inexact)
- {
- if (!oldinexact)
- {
- word0(&rv0)= Exp_1 + (70 << Exp_shift);
- word1(&rv0)= 0;
- dval(&rv0)+= 1.;
- }
- }
- else if (!oldinexact)
- clear_inexact();
-#endif
- if (scale)
- {
- word0(&rv0)= Exp_1 - 2 * P * Exp_msk1;
- word1(&rv0)= 0;
- dval(&rv)*= dval(&rv0);
- }
-#ifdef SET_INEXACT
- if (inexact && !(word0(&rv) & Exp_mask))
- {
- /* set underflow bit */
- dval(&rv0)= 1e-300;
- dval(&rv0)*= dval(&rv0);
- }
-#endif
- retfree:
- Bfree(bb, &alloc);
- Bfree(bd, &alloc);
- Bfree(bs, &alloc);
- Bfree(bd0, &alloc);
- Bfree(delta, &alloc);
- ret:
- *se= (char *)s;
- return sign ? -dval(&rv) : dval(&rv);
-}
-
-
-static int quorem(Bigint *b, Bigint *S)
-{
- int n;
- ULong *bx, *bxe, q, *sx, *sxe;
- ULLong borrow, carry, y, ys;
-
- n= S->wds;
- if (b->wds < n)
- return 0;
- sx= S->p.x;
- sxe= sx + --n;
- bx= b->p.x;
- bxe= bx + n;
- q= *bxe / (*sxe + 1); /* ensure q <= true quotient */
- if (q)
- {
- borrow= 0;
- carry= 0;
- do
- {
- ys= *sx++ * (ULLong)q + carry;
- carry= ys >> 32;
- y= *bx - (ys & FFFFFFFF) - borrow;
- borrow= y >> 32 & (ULong)1;
- *bx++= (ULong) (y & FFFFFFFF);
- }
- while (sx <= sxe);
- if (!*bxe)
- {
- bx= b->p.x;
- while (--bxe > bx && !*bxe)
- --n;
- b->wds= n;
- }
- }
- if (cmp(b, S) >= 0)
- {
- q++;
- borrow= 0;
- carry= 0;
- bx= b->p.x;
- sx= S->p.x;
- do
- {
- ys= *sx++ + carry;
- carry= ys >> 32;
- y= *bx - (ys & FFFFFFFF) - borrow;
- borrow= y >> 32 & (ULong)1;
- *bx++= (ULong) (y & FFFFFFFF);
- }
- while (sx <= sxe);
- bx= b->p.x;
- bxe= bx + n;
- if (!*bxe)
- {
- while (--bxe > bx && !*bxe)
- --n;
- b->wds= n;
- }
- }
- return q;
-}
-
-
-/*
- dtoa for IEEE arithmetic (dmg): convert double to ASCII string.
-
- Inspired by "How to Print Floating-Point Numbers Accurately" by
- Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 112-126].
-
- Modifications:
- 1. Rather than iterating, we use a simple numeric overestimate
- to determine k= floor(log10(d)). We scale relevant
- quantities using O(log2(k)) rather than O(k) multiplications.
- 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't
- try to generate digits strictly left to right. Instead, we
- compute with fewer bits and propagate the carry if necessary
- when rounding the final digit up. This is often faster.
- 3. Under the assumption that input will be rounded nearest,
- mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22.
- That is, we allow equality in stopping tests when the
- round-nearest rule will give the same floating-point value
- as would satisfaction of the stopping test with strict
- inequality.
- 4. We remove common factors of powers of 2 from relevant
- quantities.
- 5. When converting floating-point integers less than 1e16,
- we use floating-point arithmetic rather than resorting
- to multiple-precision integers.
- 6. When asked to produce fewer than 15 digits, we first try
- to get by with floating-point arithmetic; we resort to
- multiple-precision integer arithmetic only if we cannot
- guarantee that the floating-point calculation has given
- the correctly rounded result. For k requested digits and
- "uniformly" distributed input, the probability is
- something like 10^(k-15) that we must resort to the Long
- calculation.
- */
-
-static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign,
- char **rve, char *buf, size_t buf_size)
-{
- /*
- Arguments ndigits, decpt, sign are similar to those
- of ecvt and fcvt; trailing zeros are suppressed from
- the returned string. If not null, *rve is set to point
- to the end of the return value. If d is +-Infinity or NaN,
- then *decpt is set to DTOA_OVERFLOW.
-
- mode:
- 0 ==> shortest string that yields d when read in
- and rounded to nearest.
- 1 ==> like 0, but with Steele & White stopping rule;
- e.g. with IEEE P754 arithmetic , mode 0 gives
- 1e23 whereas mode 1 gives 9.999999999999999e22.
- 2 ==> max(1,ndigits) significant digits. This gives a
- return value similar to that of ecvt, except
- that trailing zeros are suppressed.
- 3 ==> through ndigits past the decimal point. This
- gives a return value similar to that from fcvt,
- except that trailing zeros are suppressed, and
- ndigits can be negative.
- 4,5 ==> similar to 2 and 3, respectively, but (in
- round-nearest mode) with the tests of mode 0 to
- possibly return a shorter string that rounds to d.
- With IEEE arithmetic and compilation with
- -DHonor_FLT_ROUNDS, modes 4 and 5 behave the same
- as modes 2 and 3 when FLT_ROUNDS != 1.
- 6-9 ==> Debugging modes similar to mode - 4: don't try
- fast floating-point estimate (if applicable).
-
- Values of mode other than 0-9 are treated as mode 0.
-
- Sufficient space is allocated to the return value
- to hold the suppressed trailing zeros.
- */
-
- int bbits, b2, b5, be, dig, i, ieps, UNINIT_VAR(ilim), ilim0,
- UNINIT_VAR(ilim1), j, j1, k, k0, k_check, leftright, m2, m5, s2, s5,
- spec_case, try_quick;
- Long L;
- int denorm;
- ULong x;
- Bigint *b, *b1, *delta, *mlo, *mhi, *S;
- U d2, eps, u;
- double ds;
- char *s, *s0;
-#ifdef Honor_FLT_ROUNDS
- int rounding;
-#endif
- Stack_alloc alloc;
-
- alloc.begin= alloc.free= buf;
- alloc.end= buf + buf_size;
- memset(alloc.freelist, 0, sizeof(alloc.freelist));
-
- u.d= dd;
- if (word0(&u) & Sign_bit)
- {
- /* set sign for everything, including 0's and NaNs */
- *sign= 1;
- word0(&u) &= ~Sign_bit; /* clear sign bit */
- }
- else
- *sign= 0;
-
- /* If infinity, set decpt to DTOA_OVERFLOW, if 0 set it to 1 */
- if (((word0(&u) & Exp_mask) == Exp_mask && (*decpt= DTOA_OVERFLOW)) ||
- (!dval(&u) && (*decpt= 1)))
- {
- /* Infinity, NaN, 0 */
- char *res= (char*) dtoa_alloc(2, &alloc);
- res[0]= '0';
- res[1]= '\0';
- if (rve)
- *rve= res + 1;
- return res;
- }
-
-#ifdef Honor_FLT_ROUNDS
- if ((rounding= Flt_Rounds) >= 2)
- {
- if (*sign)
- rounding= rounding == 2 ? 0 : 2;
- else
- if (rounding != 2)
- rounding= 0;
- }
-#endif
-
- b= d2b(&u, &be, &bbits, &alloc);
- if ((i= (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1))))
- {
- dval(&d2)= dval(&u);
- word0(&d2) &= Frac_mask1;
- word0(&d2) |= Exp_11;
-
- /*
- log(x) ~=~ log(1.5) + (x-1.5)/1.5
- log10(x) = log(x) / log(10)
- ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10))
- log10(d)= (i-Bias)*log(2)/log(10) + log10(d2)
-
- This suggests computing an approximation k to log10(d) by
-
- k= (i - Bias)*0.301029995663981
- + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 );
-
- We want k to be too large rather than too small.
- The error in the first-order Taylor series approximation
- is in our favor, so we just round up the constant enough
- to compensate for any error in the multiplication of
- (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077,
- and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14,
- adding 1e-13 to the constant term more than suffices.
- Hence we adjust the constant term to 0.1760912590558.
- (We could get a more accurate k by invoking log10,
- but this is probably not worthwhile.)
- */
-
- i-= Bias;
- denorm= 0;
- }
- else
- {
- /* d is denormalized */
-
- i= bbits + be + (Bias + (P-1) - 1);
- x= i > 32 ? word0(&u) << (64 - i) | word1(&u) >> (i - 32)
- : word1(&u) << (32 - i);
- dval(&d2)= x;
- word0(&d2)-= 31*Exp_msk1; /* adjust exponent */
- i-= (Bias + (P-1) - 1) + 1;
- denorm= 1;
- }
- ds= (dval(&d2)-1.5)*0.289529654602168 + 0.1760912590558 + i*0.301029995663981;
- k= (int)ds;
- if (ds < 0. && ds != k)
- k--; /* want k= floor(ds) */
- k_check= 1;
- if (k >= 0 && k <= Ten_pmax)
- {
- if (dval(&u) < tens[k])
- k--;
- k_check= 0;
- }
- j= bbits - i - 1;
- if (j >= 0)
- {
- b2= 0;
- s2= j;
- }
- else
- {
- b2= -j;
- s2= 0;
- }
- if (k >= 0)
- {
- b5= 0;
- s5= k;
- s2+= k;
- }
- else
- {
- b2-= k;
- b5= -k;
- s5= 0;
- }
- if (mode < 0 || mode > 9)
- mode= 0;
-
-#ifdef Check_FLT_ROUNDS
- try_quick= Rounding == 1;
-#else
- try_quick= 1;
-#endif
-
- if (mode > 5)
- {
- mode-= 4;
- try_quick= 0;
- }
- leftright= 1;
- switch (mode) {
- case 0:
- case 1:
- ilim= ilim1= -1;
- i= 18;
- ndigits= 0;
- break;
- case 2:
- leftright= 0;
- /* no break */
- case 4:
- if (ndigits <= 0)
- ndigits= 1;
- ilim= ilim1= i= ndigits;
- break;
- case 3:
- leftright= 0;
- /* no break */
- case 5:
- i= ndigits + k + 1;
- ilim= i;
- ilim1= i - 1;
- if (i <= 0)
- i= 1;
- }
- s= s0= dtoa_alloc(i, &alloc);
-
-#ifdef Honor_FLT_ROUNDS
- if (mode > 1 && rounding != 1)
- leftright= 0;
-#endif
-
- if (ilim >= 0 && ilim <= Quick_max && try_quick)
- {
- /* Try to get by with floating-point arithmetic. */
- i= 0;
- dval(&d2)= dval(&u);
- k0= k;
- ilim0= ilim;
- ieps= 2; /* conservative */
- if (k > 0)
- {
- ds= tens[k&0xf];
- j= k >> 4;
- if (j & Bletch)
- {
- /* prevent overflows */
- j&= Bletch - 1;
- dval(&u)/= bigtens[n_bigtens-1];
- ieps++;
- }
- for (; j; j>>= 1, i++)
- {
- if (j & 1)
- {
- ieps++;
- ds*= bigtens[i];
- }
- }
- dval(&u)/= ds;
- }
- else if ((j1= -k))
- {
- dval(&u)*= tens[j1 & 0xf];
- for (j= j1 >> 4; j; j>>= 1, i++)
- {
- if (j & 1)
- {
- ieps++;
- dval(&u)*= bigtens[i];
- }
- }
- }
- if (k_check && dval(&u) < 1. && ilim > 0)
- {
- if (ilim1 <= 0)
- goto fast_failed;
- ilim= ilim1;
- k--;
- dval(&u)*= 10.;
- ieps++;
- }
- dval(&eps)= ieps*dval(&u) + 7.;
- word0(&eps)-= (P-1)*Exp_msk1;
- if (ilim == 0)
- {
- S= mhi= 0;
- dval(&u)-= 5.;
- if (dval(&u) > dval(&eps))
- goto one_digit;
- if (dval(&u) < -dval(&eps))
- goto no_digits;
- goto fast_failed;
- }
- if (leftright)
- {
- /* Use Steele & White method of only generating digits needed. */
- dval(&eps)= 0.5/tens[ilim-1] - dval(&eps);
- for (i= 0;;)
- {
- L= (Long) dval(&u);
- dval(&u)-= L;
- *s++= '0' + (int)L;
- if (dval(&u) < dval(&eps))
- goto ret1;
- if (1. - dval(&u) < dval(&eps))
- goto bump_up;
- if (++i >= ilim)
- break;
- dval(&eps)*= 10.;
- dval(&u)*= 10.;
- }
- }
- else
- {
- /* Generate ilim digits, then fix them up. */
- dval(&eps)*= tens[ilim-1];
- for (i= 1;; i++, dval(&u)*= 10.)
- {
- L= (Long)(dval(&u));
- if (!(dval(&u)-= L))
- ilim= i;
- *s++= '0' + (int)L;
- if (i == ilim)
- {
- if (dval(&u) > 0.5 + dval(&eps))
- goto bump_up;
- else if (dval(&u) < 0.5 - dval(&eps))
- {
- while (*--s == '0');
- s++;
- goto ret1;
- }
- break;
- }
- }
- }
- fast_failed:
- s= s0;
- dval(&u)= dval(&d2);
- k= k0;
- ilim= ilim0;
- }
-
- /* Do we have a "small" integer? */
-
- if (be >= 0 && k <= Int_max)
- {
- /* Yes. */
- ds= tens[k];
- if (ndigits < 0 && ilim <= 0)
- {
- S= mhi= 0;
- if (ilim < 0 || dval(&u) <= 5*ds)
- goto no_digits;
- goto one_digit;
- }
- for (i= 1;; i++, dval(&u)*= 10.)
- {
- L= (Long)(dval(&u) / ds);
- dval(&u)-= L*ds;
-#ifdef Check_FLT_ROUNDS
- /* If FLT_ROUNDS == 2, L will usually be high by 1 */
- if (dval(&u) < 0)
- {
- L--;
- dval(&u)+= ds;
- }
-#endif
- *s++= '0' + (int)L;
- if (!dval(&u))
- {
- break;
- }
- if (i == ilim)
- {
-#ifdef Honor_FLT_ROUNDS
- if (mode > 1)
- {
- switch (rounding) {
- case 0: goto ret1;
- case 2: goto bump_up;
- }
- }
-#endif
- dval(&u)+= dval(&u);
- if (dval(&u) > ds || (dval(&u) == ds && L & 1))
- {
-bump_up:
- while (*--s == '9')
- if (s == s0)
- {
- k++;
- *s= '0';
- break;
- }
- ++*s++;
- }
- break;
- }
- }
- goto ret1;
- }
-
- m2= b2;
- m5= b5;
- mhi= mlo= 0;
- if (leftright)
- {
- i = denorm ? be + (Bias + (P-1) - 1 + 1) : 1 + P - bbits;
- b2+= i;
- s2+= i;
- mhi= i2b(1, &alloc);
- }
- if (m2 > 0 && s2 > 0)
- {
- i= m2 < s2 ? m2 : s2;
- b2-= i;
- m2-= i;
- s2-= i;
- }
- if (b5 > 0)
- {
- if (leftright)
- {
- if (m5 > 0)
- {
- mhi= pow5mult(mhi, m5, &alloc);
- b1= mult(mhi, b, &alloc);
- Bfree(b, &alloc);
- b= b1;
- }
- if ((j= b5 - m5))
- b= pow5mult(b, j, &alloc);
- }
- else
- b= pow5mult(b, b5, &alloc);
- }
- S= i2b(1, &alloc);
- if (s5 > 0)
- S= pow5mult(S, s5, &alloc);
-
- /* Check for special case that d is a normalized power of 2. */
-
- spec_case= 0;
- if ((mode < 2 || leftright)
-#ifdef Honor_FLT_ROUNDS
- && rounding == 1
-#endif
- )
- {
- if (!word1(&u) && !(word0(&u) & Bndry_mask) &&
- word0(&u) & (Exp_mask & ~Exp_msk1)
- )
- {
- /* The special case */
- b2+= Log2P;
- s2+= Log2P;
- spec_case= 1;
- }
- }
-
- /*
- Arrange for convenient computation of quotients:
- shift left if necessary so divisor has 4 leading 0 bits.
-
- Perhaps we should just compute leading 28 bits of S once
- a nd for all and pass them and a shift to quorem, so it
- can do shifts and ors to compute the numerator for q.
- */
- if ((i= ((s5 ? 32 - hi0bits(S->p.x[S->wds-1]) : 1) + s2) & 0x1f))
- i= 32 - i;
- if (i > 4)
- {
- i-= 4;
- b2+= i;
- m2+= i;
- s2+= i;
- }
- else if (i < 4)
- {
- i+= 28;
- b2+= i;
- m2+= i;
- s2+= i;
- }
- if (b2 > 0)
- b= lshift(b, b2, &alloc);
- if (s2 > 0)
- S= lshift(S, s2, &alloc);
- if (k_check)
- {
- if (cmp(b,S) < 0)
- {
- k--;
- /* we botched the k estimate */
- b= multadd(b, 10, 0, &alloc);
- if (leftright)
- mhi= multadd(mhi, 10, 0, &alloc);
- ilim= ilim1;
- }
- }
- if (ilim <= 0 && (mode == 3 || mode == 5))
- {
- if (ilim < 0 || cmp(b,S= multadd(S,5,0, &alloc)) <= 0)
- {
- /* no digits, fcvt style */
-no_digits:
- k= -1 - ndigits;
- goto ret;
- }
-one_digit:
- *s++= '1';
- k++;
- goto ret;
- }
- if (leftright)
- {
- if (m2 > 0)
- mhi= lshift(mhi, m2, &alloc);
-
- /*
- Compute mlo -- check for special case that d is a normalized power of 2.
- */
-
- mlo= mhi;
- if (spec_case)
- {
- mhi= Balloc(mhi->k, &alloc);
- Bcopy(mhi, mlo);
- mhi= lshift(mhi, Log2P, &alloc);
- }
-
- for (i= 1;;i++)
- {
- dig= quorem(b,S) + '0';
- /* Do we yet have the shortest decimal string that will round to d? */
- j= cmp(b, mlo);
- delta= diff(S, mhi, &alloc);
- j1= delta->sign ? 1 : cmp(b, delta);
- Bfree(delta, &alloc);
- if (j1 == 0 && mode != 1 && !(word1(&u) & 1)
-#ifdef Honor_FLT_ROUNDS
- && rounding >= 1
-#endif
- )
- {
- if (dig == '9')
- goto round_9_up;
- if (j > 0)
- dig++;
- *s++= dig;
- goto ret;
- }
- if (j < 0 || (j == 0 && mode != 1 && !(word1(&u) & 1)))
- {
- if (!b->p.x[0] && b->wds <= 1)
- {
- goto accept_dig;
- }
-#ifdef Honor_FLT_ROUNDS
- if (mode > 1)
- switch (rounding) {
- case 0: goto accept_dig;
- case 2: goto keep_dig;
- }
-#endif /*Honor_FLT_ROUNDS*/
- if (j1 > 0)
- {
- b= lshift(b, 1, &alloc);
- j1= cmp(b, S);
- if ((j1 > 0 || (j1 == 0 && dig & 1))
- && dig++ == '9')
- goto round_9_up;
- }
-accept_dig:
- *s++= dig;
- goto ret;
- }
- if (j1 > 0)
- {
-#ifdef Honor_FLT_ROUNDS
- if (!rounding)
- goto accept_dig;
-#endif
- if (dig == '9')
- { /* possible if i == 1 */
-round_9_up:
- *s++= '9';
- goto roundoff;
- }
- *s++= dig + 1;
- goto ret;
- }
-#ifdef Honor_FLT_ROUNDS
-keep_dig:
-#endif
- *s++= dig;
- if (i == ilim)
- break;
- b= multadd(b, 10, 0, &alloc);
- if (mlo == mhi)
- mlo= mhi= multadd(mhi, 10, 0, &alloc);
- else
- {
- mlo= multadd(mlo, 10, 0, &alloc);
- mhi= multadd(mhi, 10, 0, &alloc);
- }
- }
- }
- else
- for (i= 1;; i++)
- {
- *s++= dig= quorem(b,S) + '0';
- if (!b->p.x[0] && b->wds <= 1)
- {
- goto ret;
- }
- if (i >= ilim)
- break;
- b= multadd(b, 10, 0, &alloc);
- }
-
- /* Round off last digit */
-
-#ifdef Honor_FLT_ROUNDS
- switch (rounding) {
- case 0: goto trimzeros;
- case 2: goto roundoff;
- }
-#endif
- b= lshift(b, 1, &alloc);
- j= cmp(b, S);
- if (j > 0 || (j == 0 && dig & 1))
- {
-roundoff:
- while (*--s == '9')
- if (s == s0)
- {
- k++;
- *s++= '1';
- goto ret;
- }
- ++*s++;
- }
- else
- {
-#ifdef Honor_FLT_ROUNDS
-trimzeros:
-#endif
- while (*--s == '0');
- s++;
- }
-ret:
- Bfree(S, &alloc);
- if (mhi)
- {
- if (mlo && mlo != mhi)
- Bfree(mlo, &alloc);
- Bfree(mhi, &alloc);
- }
-ret1:
- Bfree(b, &alloc);
- *s= 0;
- *decpt= k + 1;
- if (rve)
- *rve= s;
- return s0;
-}
diff --git a/dep/mysqllite/strings/int2str.c b/dep/mysqllite/strings/int2str.c
deleted file mode 100644
index ecc214d58d5..00000000000
--- a/dep/mysqllite/strings/int2str.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include "m_string.h"
-
-/*
- _dig_vec arrays are public because they are used in several outer places.
-*/
-char _dig_vec_upper[] =
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
-char _dig_vec_lower[] =
- "0123456789abcdefghijklmnopqrstuvwxyz";
-
-
-/*
- Convert integer to its string representation in given scale of notation.
-
- SYNOPSIS
- int2str()
- val - value to convert
- dst - points to buffer where string representation should be stored
- radix - radix of scale of notation
- upcase - set to 1 if we should use upper-case digits
-
- DESCRIPTION
- Converts the (long) integer value to its character form and moves it to
- the destination buffer followed by a terminating NUL.
- If radix is -2..-36, val is taken to be SIGNED, if radix is 2..36, val is
- taken to be UNSIGNED. That is, val is signed if and only if radix is.
- All other radixes treated as bad and nothing will be changed in this case.
-
- For conversion to decimal representation (radix is -10 or 10) one can use
- optimized int10_to_str() function.
-
- RETURN VALUE
- Pointer to ending NUL character or NullS if radix is bad.
-*/
-
-char *
-int2str(register long int val, register char *dst, register int radix,
- int upcase)
-{
- char buffer[65];
- register char *p;
- long int new_val;
- char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower;
- ulong uval= (ulong) val;
-
- if (radix < 0)
- {
- if (radix < -36 || radix > -2)
- return NullS;
- if (val < 0)
- {
- *dst++ = '-';
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (ulong)0 - uval;
- }
- radix = -radix;
- }
- else if (radix > 36 || radix < 2)
- return NullS;
-
- /*
- The slightly contorted code which follows is due to the fact that
- few machines directly support unsigned long / and %. Certainly
- the VAX C compiler generates a subroutine call. In the interests
- of efficiency (hollow laugh) I let this happen for the first digit
- only; after that "val" will be in range so that signed integer
- division will do. Sorry 'bout that. CHECK THE CODE PRODUCED BY
- YOUR C COMPILER. The first % and / should be unsigned, the second
- % and / signed, but C compilers tend to be extraordinarily
- sensitive to minor details of style. This works on a VAX, that's
- all I claim for it.
- */
- p = &buffer[sizeof(buffer)-1];
- *p = '\0';
- new_val= uval / (ulong) radix;
- *--p = dig_vec[(uchar) (uval- (ulong) new_val*(ulong) radix)];
- val = new_val;
-#ifdef HAVE_LDIV
- while (val != 0)
- {
- ldiv_t res;
- res=ldiv(val,radix);
- *--p = dig_vec[res.rem];
- val= res.quot;
- }
-#else
- while (val != 0)
- {
- new_val=val/radix;
- *--p = dig_vec[(uchar) (val-new_val*radix)];
- val= new_val;
- }
-#endif
- while ((*dst++ = *p++) != 0) ;
- return dst-1;
-}
-
-
-/*
- Converts integer to its string representation in decimal notation.
-
- SYNOPSIS
- int10_to_str()
- val - value to convert
- dst - points to buffer where string representation should be stored
- radix - flag that shows whenever val should be taken as signed or not
-
- DESCRIPTION
- This is version of int2str() function which is optimized for normal case
- of radix 10/-10. It takes only sign of radix parameter into account and
- not its absolute value.
-
- RETURN VALUE
- Pointer to ending NUL character.
-*/
-
-char *int10_to_str(long int val,char *dst,int radix)
-{
- char buffer[65];
- register char *p;
- long int new_val;
- unsigned long int uval = (unsigned long int) val;
-
- if (radix < 0) /* -10 */
- {
- if (val < 0)
- {
- *dst++ = '-';
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (unsigned long int)0 - uval;
- }
- }
-
- p = &buffer[sizeof(buffer)-1];
- *p = '\0';
- new_val= (long) (uval / 10);
- *--p = '0'+ (char) (uval - (unsigned long) new_val * 10);
- val = new_val;
-
- while (val != 0)
- {
- new_val=val/10;
- *--p = '0' + (char) (val-new_val*10);
- val= new_val;
- }
- while ((*dst++ = *p++) != 0) ;
- return dst-1;
-}
diff --git a/dep/mysqllite/strings/is_prefix.c b/dep/mysqllite/strings/is_prefix.c
deleted file mode 100644
index 451cd468b7e..00000000000
--- a/dep/mysqllite/strings/is_prefix.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : is_prefix.c
- Author : Michael Widenius
- Defines: is_prefix()
-
- is_prefix(s, t) returns 1 if s starts with t.
- A empty t is allways a prefix.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-int is_prefix(register const char *s, register const char *t)
-{
- while (*t)
- if (*s++ != *t++) return 0;
- return 1; /* WRONG */
-}
diff --git a/dep/mysqllite/strings/latin2.def b/dep/mysqllite/strings/latin2.def
deleted file mode 100644
index 159d01894f3..00000000000
--- a/dep/mysqllite/strings/latin2.def
+++ /dev/null
@@ -1,478 +0,0 @@
-; Character code definition file for latin2 languages (for use with cset)
-; it's written for Czech, but may be used generally; works
-; minimum for Slovenian alphabet too (or at least I hope so)
-;
-; Written by Jaromir Dolecek <dolecek@ics.muni.cz>
-;
-; Notes of defined sorting order:
-; Upper/Lower case is ignored
-; All characters with the accents are sorted after appropriate
-; character without accent in order:
-; Xacute, Xring , Xcaron, Xslash, Xcedilla, Xogonek, Xcircumflex,
-; Xbreve, Xhungarumlaut, Xdieresis, Xdotaccent
-;
-latin2
-***
-NUL 0 C
-SOH C
-STX C
-ETX C
-EOT C
-ENQ C
-ACK C
-BEL C
-BS C
-HT CS
-LF CS
-VT CS
-FF CS
-CR CS
-SO C
-SI C
-DLE C
-DC1 C
-DC2 C
-DC3 C
-DC4 C
-NAK C
-SYN C
-ETB C
-CAN C
-EM C
-SUB C
-ESC C
-FS C
-GS C
-RS C
-US C
-/space BS
-/exclam P
-/quotedbl P
-/numbersign P
-/dollar P
-/percent P
-/ampersand P
-/quoteright P
-/parenleft P
-/parenright P
-/asterisk P
-/plus P
-/comma P
-/minus P
-/period P
-/slash P
-/zero NX
-/one NX
-/two NX
-/three NX
-/four NX
-/five NX
-/six NX
-/seven NX
-/eight NX
-/nine NX
-/colon P
-/semicolon P
-/less P
-/equal P
-/greater P
-/question P
-/at P
-/A UX
-/B UX
-/C UX
-/D UX
-/E UX
-/F UX
-/G U
-/H U
-/I U
-/J U
-/K U
-/L U
-/M U
-/N U
-/O U
-/P U
-/Q U
-/R U
-/S U
-/T U
-/U U
-/V U
-/W U
-/X U
-/Y U
-/Z U
-/bracketleft P
-/backslash P
-/bracketright P
-/asciicircum P
-/underscore P
-/quoteleft P
-/a LX
-/b LX
-/c LX
-/d LX
-/e LX
-/f LX
-/g L
-/h L
-/i L
-/j L
-/k L
-/l L
-/m L
-/n L
-/o L
-/p L
-/q L
-/r L
-/s L
-/t L
-/u L
-/v L
-/w L
-/x L
-/y L
-/z L
-/braceleft P
-/bar P
-/braceright P
-/tilde P
-NUL_ C
-SOH_ C
-STX_ C
-ETX_ C
-EOT_ C
-ENQ_ C
-ACK_ C
-BEL_ C
-BS_ C
-HT_ CS
-LF_ CS
-VT_ CS
-FF_ CS
-CR_ CS
-SO_ C
-SI_ C
-DLE_ C
-DC1_ C
-DC2_ C
-DC3_ C
-DC4_ C
-NAK_ C
-SYN_ C
-ETB_ C
-CAN_ C
-EM_ C
-SUB_ C
-ESC_ C
-FS_ C
-GS_ C
-RS_ C
-US_ C
-/space_ SB
-/Aogonek U
-/breve P
-/Lslash U
-/currency P
-/Lcaron U
-/Sacute U
-/dieresis P
-/Scaron 169 U
-/Scedilla U
-/Tcaron U
-/Zacute U
-/hyphen P
-/Zcaron U
-/Zdotaccent U
-/degree P
-/aogonek L
-/ogonek P
-/lslash L
-/acute P
-/lcaron L
-/sacute L
-/caron P
-/cedilla P
-/scaron L
-/scedilla L
-/tcaron L
-/zacute L
-/hungarumlaut P
-/zcaron L
-/zdotaccent L
-/Racute U
-/Aacute U
-/Acircumflex U
-/Abreve U
-/Adieresis U
-/Lacute U
-/Cacute U
-/Ccedilla U
-/Ccaron U
-/Eacute U
-/Eogonek U
-/Edieresis U
-/Ecaron U
-/Iacute U
-/Icircumflex U
-/Dcaron U
-/Eth P
-/Nacute U
-/Ncaron U
-/Oacute U
-/Ocircumflex U
-/Ohungarumlaut U
-/Odieresis U
-/multiply P
-/Rcaron U
-/Uring U
-/Uacute U
-/Uhungarumlaut U
-/Udieresis U
-/Yacute U
-/Tcedilla U
-/germandbls P
-/racute L
-/aacute L
-/acircumflex L
-/abreve L
-/adieresis L
-/lacute L
-/cacute L
-/ccedilla L
-/ccaron L
-/eacute L
-/eogonek L
-/edieresis L
-/ecaron L
-/iacute L
-/icircumflex L
-/dcaron L
-/dbar L
-/nacute L
-/ncaron L
-/oacute L
-/ocircumflex L
-/ohungarumlaut L
-/odieresis L
-/divide P
-/rcaron L
-/uring L
-/uacute L
-/uhungarumlaut L
-/udieresis L
-/yacute L
-/tcedilla L
-/dotaccent P
-***
-/A /a
-/B /b
-/C /c
-/D /d
-/E /e
-/F /f
-/G /g
-/H /h
-/I /i
-/J /j
-/K /k
-/L /l
-/M /m
-/N /n
-/O /o
-/P /p
-/Q /q
-/R /r
-/S /s
-/T /t
-/U /u
-/V /v
-/W /w
-/X /x
-/Y /y
-/Z /z
-/Aogonek /aogonek
-/Lslash /lslash
-/Lcaron /lcaron
-/Sacute /sacute
-/Scaron /scaron
-/Scedilla /scedilla
-/Tcaron /tcaron
-/Zacute /zacute
-/Zcaron /zcaron
-/Zdotaccent /zdotaccent
-/Racute /racute
-/Aacute /aacute
-/Acircumflex /acircumflex
-/Abreve /abreve
-/Adieresis /adieresis
-/Lacute /lacute
-/Cacute /cacute
-/Ccedilla /ccedilla
-/Ccaron /ccaron
-/Eacute /eacute
-/Eogonek /eogonek
-/Edieresis /edieresis
-/Ecaron /ecaron
-/Iacute /iacute
-/Icircumflex /icircumflex
-/Dcaron /dcaron
-/Nacute /nacute
-/Ncaron /ncaron
-/Oacute /oacute
-/Ocircumflex /ocircumflex
-/Ohungarumlaut /ohungarumlaut
-/Odieresis /odieresis
-/Rcaron /rcaron
-/Uring /uring
-/Uacute /uacute
-/Uhungarumlaut /uhungarumlaut
-/Udieresis /udieresis
-/Yacute /yacute
-/Tcedilla /tcedilla
-***
-NUL NUL_
-SOH SOH_
-STX STX_
-ETX ETX_
-EOT EOT_
-ENQ ENQ_
-ACK ACK_
-BEL BEL_
-BS BS_
-HT HT_
-LF LF_
-VT VT_
-FF FF_
-CR CR_
-SO SO_
-SI SI_
-DLE DLE_
-DC1 DC1_
-DC2 DC2_
-DC3 DC3_
-DC4 DC4_
-NAK NAK_
-SYN SYN_
-ETB ETB_
-CAN CAN_
-EM EM_
-SUB SUB_
-ESC ESC_
-FS FS_
-GS GS_
-RS RS_
-US US_
-/space
-/exclam
-/quotedbl
-/numbersign
-/dollar
-/percent
-/ampersand
-/quoteright
-/parenleft
-/parenright
-/asterisk
-/plus
-/comma
-/minus
-/period
-/slash
-/zero
-/one
-/two
-/three
-/four
-/five
-/six
-/seven
-/eight
-/nine
-/colon
-/semicolon
-/less
-/equal
-/greater
-/question
-/at
-/A /a
-/Aogonek /aogonek
-/Aacute /aacute
-/Acircumflex /acircumflex
-/Abreve /abreve
-/Adieresis /adieresis
-/B /b
-/C /c
-/Cacute /cacute
-/Ccaron /ccaron
-/Ccedilla /ccedilla
-/D /d
-/Dcaron /dcaron
-/E /e
-/Eacute /eacute
-/Ecaron /ecaron
-/Eogonek /eogonek
-/Edieresis /edieresis
-/F /f
-/G /g
-/H /h
-/I /i
-/Icircumflex
-/icircumflex
-/Iacute /iacute
-/J /j
-/K /k
-/L /l
-/Lslash /lslash
-/Lcaron /lcaron
-/Lacute /lacute
-/M /m
-/N /n
-/Nacute /nacute
-/Ncaron /ncaron
-/O /o
-/Oacute /oacute
-/Ocircumflex /ocircumflex
-/Ohungarumlaut /ohungarumlaut
-/Odieresis /odieresis
-/P /p
-/Q /q
-/R /r
-/Racute /racute
-/Rcaron /rcaron
-/S /s
-/Sacute /sacute
-/Scaron /scaron
-/Scedilla /scedilla
-/T /t
-/Tcaron /tcaron
-/Tcedilla /tcedilla
-/U /u
-/Uacute /uacute
-/Uring /uring
-/Uhungarumlaut /uhungarumlaut
-/Udieresis /udieresis
-/V /v
-/W /w
-/X /x
-/Y /y
-/Yacute /yacute
-/Z /z
-/Zacute /zacute
-/Zcaron /zcaron
-/Zdotaccent /zdotaccent
-/bracketleft
-/backslash
-/bracketright
-/asciicircum
-/underscore
-/quoteleft
-/braceleft
-/bar
-/braceright
-/tilde
-***
diff --git a/dep/mysqllite/strings/llstr.c b/dep/mysqllite/strings/llstr.c
deleted file mode 100644
index 643cf36a311..00000000000
--- a/dep/mysqllite/strings/llstr.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Defines: llstr();
-
- llstr(value, buff);
-
- This function saves a longlong value in a buffer and returns the pointer to
- the buffer. This is useful when trying to portable print longlong
- variables with printf() as there is no usable printf() standard one can use.
-*/
-
-
-#include <my_global.h>
-#include "m_string.h"
-
-char *llstr(longlong value,char *buff)
-{
- longlong10_to_str(value,buff,-10);
- return buff;
-}
-
-char *ullstr(longlong value,char *buff)
-{
- longlong10_to_str(value,buff,10);
- return buff;
-}
diff --git a/dep/mysqllite/strings/longlong2str.c b/dep/mysqllite/strings/longlong2str.c
deleted file mode 100644
index 641ae0955d3..00000000000
--- a/dep/mysqllite/strings/longlong2str.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Defines: longlong2str();
-
- longlong2str(dst, radix, val)
- converts the (longlong) integer "val" to character form and moves it to
- the destination string "dst" followed by a terminating NUL. The
- result is normally a pointer to this NUL character, but if the radix
- is dud the result will be NullS and nothing will be changed.
-
- If radix is -2..-36, val is taken to be SIGNED.
- If radix is 2.. 36, val is taken to be UNSIGNED.
- That is, val is signed if and only if radix is. You will normally
- use radix -10 only through itoa and ltoa, for radix 2, 8, or 16
- unsigned is what you generally want.
-
- _dig_vec is public just in case someone has a use for it.
- The definitions of itoa and ltoa are actually macros in m_string.h,
- but this is where the code is.
-
- Note: The standard itoa() returns a pointer to the argument, when int2str
- returns the pointer to the end-null.
- itoa assumes that 10 -base numbers are allways signed and other arn't.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-#ifndef ll2str
-
-/*
- This assumes that longlong multiplication is faster than longlong division.
-*/
-
-char *ll2str(longlong val,char *dst,int radix, int upcase)
-{
- char buffer[65];
- register char *p;
- long long_val;
- char *dig_vec= upcase ? _dig_vec_upper : _dig_vec_lower;
- ulonglong uval= (ulonglong) val;
-
- if (radix < 0)
- {
- if (radix < -36 || radix > -2) return (char*) 0;
- if (val < 0) {
- *dst++ = '-';
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (ulonglong)0 - uval;
- }
- radix = -radix;
- }
- else
- {
- if (radix > 36 || radix < 2) return (char*) 0;
- }
- if (uval == 0)
- {
- *dst++='0';
- *dst='\0';
- return dst;
- }
- p = &buffer[sizeof(buffer)-1];
- *p = '\0';
-
- while (uval > (ulonglong) LONG_MAX)
- {
- ulonglong quo= uval/(uint) radix;
- uint rem= (uint) (uval- quo* (uint) radix);
- *--p= dig_vec[rem];
- uval= quo;
- }
- long_val= (long) uval;
- while (long_val != 0)
- {
- long quo= long_val/radix;
- *--p= dig_vec[(uchar) (long_val - quo*radix)];
- long_val= quo;
- }
- while ((*dst++ = *p++) != 0) ;
- return dst-1;
-}
-#endif
-
-#ifndef longlong10_to_str
-char *longlong10_to_str(longlong val,char *dst,int radix)
-{
- char buffer[65];
- register char *p;
- long long_val;
- ulonglong uval= (ulonglong) val;
-
- if (radix < 0)
- {
- if (val < 0)
- {
- *dst++ = '-';
- /* Avoid integer overflow in (-val) for LONGLONG_MIN (BUG#31799). */
- uval = (ulonglong)0 - uval;
- }
- }
-
- if (uval == 0)
- {
- *dst++='0';
- *dst='\0';
- return dst;
- }
- p = &buffer[sizeof(buffer)-1];
- *p = '\0';
-
- while (uval > (ulonglong) LONG_MAX)
- {
- ulonglong quo= uval/(uint) 10;
- uint rem= (uint) (uval- quo* (uint) 10);
- *--p = _dig_vec_upper[rem];
- uval= quo;
- }
- long_val= (long) uval;
- while (long_val != 0)
- {
- long quo= long_val/10;
- *--p = _dig_vec_upper[(uchar) (long_val - quo*10)];
- long_val= quo;
- }
- while ((*dst++ = *p++) != 0) ;
- return dst-1;
-}
-#endif
diff --git a/dep/mysqllite/strings/my_strchr.c b/dep/mysqllite/strings/my_strchr.c
deleted file mode 100644
index 08fa51ba17a..00000000000
--- a/dep/mysqllite/strings/my_strchr.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2005 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-
-#define NEQ(A, B) ((A) != (B))
-#define EQU(A, B) ((A) == (B))
-
-/**
- Macro for the body of the string scanning.
-
- @param CS The character set of the string
- @param STR Pointer to beginning of string
- @param END Pointer to one-after-end of string
- @param ACC Pointer to beginning of accept (or reject) string
- @param LEN Length of accept (or reject) string
- @param CMP is a function-like for doing the comparison of two characters.
- */
-
-#define SCAN_STRING(CS, STR, END, ACC, LEN, CMP) \
- do { \
- uint mbl; \
- const char *ptr_str, *ptr_acc; \
- const char *acc_end= (ACC) + (LEN); \
- for (ptr_str= (STR) ; ptr_str < (END) ; ptr_str+= mbl) \
- { \
- mbl= my_mbcharlen((CS), *(uchar*)ptr_str); \
- if (mbl < 2) \
- { \
- DBUG_ASSERT(mbl == 1); \
- for (ptr_acc= (ACC) ; ptr_acc < acc_end ; ++ptr_acc) \
- if (CMP(*ptr_acc, *ptr_str)) \
- goto end; \
- } \
- } \
-end: \
- return (size_t) (ptr_str - (STR)); \
- } while (0)
-
-
-/*
- my_strchr(cs, str, end, c) returns a pointer to the first place in
- str where c (1-byte character) occurs, or NULL if c does not occur
- in str. This function is multi-byte safe.
- TODO: should be moved to CHARSET_INFO if it's going to be called
- frequently.
-*/
-
-char *my_strchr(CHARSET_INFO *cs, const char *str, const char *end,
- pchar c)
-{
- uint mbl;
- while (str < end)
- {
- mbl= my_mbcharlen(cs, *(uchar *)str);
- if (mbl < 2)
- {
- if (*str == c)
- return((char *)str);
- str++;
- }
- else
- str+= mbl;
- }
- return(0);
-}
-
-/**
- Calculate the length of the initial segment of 'str' which consists
- entirely of characters not in 'reject'.
-
- @note The reject string points to single-byte characters so it is
- only possible to find the first occurrence of a single-byte
- character. Multi-byte characters in 'str' are treated as not
- matching any character in the reject string.
-
- @todo should be moved to CHARSET_INFO if it's going to be called
- frequently.
-
- @internal The implementation builds on the assumption that 'str' is long,
- while 'reject' is short. So it compares each character in string
- with the characters in 'reject' in a tight loop over the characters
- in 'reject'.
-*/
-
-size_t my_strcspn(CHARSET_INFO *cs, const char *str, const char *str_end,
- const char *reject)
-{
- SCAN_STRING(cs, str, str_end, reject, strlen(reject), EQU);
-}
diff --git a/dep/mysqllite/strings/my_strtoll10.c b/dep/mysqllite/strings/my_strtoll10.c
deleted file mode 100644
index b9fc4b4be8e..00000000000
--- a/dep/mysqllite/strings/my_strtoll10.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <my_sys.h> /* Needed for MY_ERRNO_ERANGE */
-#include <m_string.h>
-
-#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
-#define INIT_CNT 9
-#define LFACTOR ULL(1000000000)
-#define LFACTOR1 ULL(10000000000)
-#define LFACTOR2 ULL(100000000000)
-
-static unsigned long lfactor[9]=
-{
- 1L, 10L, 100L, 1000L, 10000L, 100000L, 1000000L, 10000000L, 100000000L
-};
-
-/*
- Convert a string to an to unsigned long long integer value
-
- SYNOPSYS
- my_strtoll10()
- nptr in pointer to the string to be converted
- endptr in/out pointer to the end of the string/
- pointer to the stop character
- error out returned error code
-
- DESCRIPTION
- This function takes the decimal representation of integer number
- from string nptr and converts it to an signed or unsigned
- long long integer value.
- Space characters and tab are ignored.
- A sign character might precede the digit characters. The number
- may have any number of pre-zero digits.
-
- The function stops reading the string nptr at the first character
- that is not a decimal digit. If endptr is not NULL then the function
- will not read characters after *endptr.
-
- RETURN VALUES
- Value of string as a signed/unsigned longlong integer
-
- if no error and endptr != NULL, it will be set to point at the character
- after the number
-
- The error parameter contains information how things went:
- -1 Number was an ok negative number
- 0 ok
- ERANGE If the the value of the converted number exceeded the
- maximum negative/unsigned long long integer.
- In this case the return value is ~0 if value was
- positive and LONGLONG_MIN if value was negative.
- EDOM If the string didn't contain any digits. In this case
- the return value is 0.
-
- If endptr is not NULL the function will store the end pointer to
- the stop character here.
-*/
-
-
-longlong my_strtoll10(const char *nptr, char **endptr, int *error)
-{
- const char *s, *end, *start, *n_end, *true_end;
- char *dummy;
- uchar c;
- unsigned long i, j, k;
- ulonglong li;
- int negative;
- ulong cutoff, cutoff2, cutoff3;
-
- s= nptr;
- /* If fixed length string */
- if (endptr)
- {
- end= *endptr;
- while (s != end && (*s == ' ' || *s == '\t'))
- s++;
- if (s == end)
- goto no_conv;
- }
- else
- {
- endptr= &dummy; /* Easier end test */
- while (*s == ' ' || *s == '\t')
- s++;
- if (!*s)
- goto no_conv;
- /* This number must be big to guard against a lot of pre-zeros */
- end= s+65535; /* Can't be longer than this */
- }
-
- /* Check for a sign. */
- negative= 0;
- if (*s == '-')
- {
- *error= -1; /* Mark as negative number */
- negative= 1;
- if (++s == end)
- goto no_conv;
- cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2;
- cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100;
- cutoff3= MAX_NEGATIVE_NUMBER % 100;
- }
- else
- {
- *error= 0;
- if (*s == '+')
- {
- if (++s == end)
- goto no_conv;
- }
- cutoff= ULONGLONG_MAX / LFACTOR2;
- cutoff2= ULONGLONG_MAX % LFACTOR2 / 100;
- cutoff3= ULONGLONG_MAX % 100;
- }
-
- /* Handle case where we have a lot of pre-zero */
- if (*s == '0')
- {
- i= 0;
- do
- {
- if (++s == end)
- goto end_i; /* Return 0 */
- }
- while (*s == '0');
- n_end= s+ INIT_CNT;
- }
- else
- {
- /* Read first digit to check that it's a valid number */
- if ((c= (*s-'0')) > 9)
- goto no_conv;
- i= c;
- n_end= ++s+ INIT_CNT-1;
- }
-
- /* Handle first 9 digits and store them in i */
- if (n_end > end)
- n_end= end;
- for (; s != n_end ; s++)
- {
- if ((c= (*s-'0')) > 9)
- goto end_i;
- i= i*10+c;
- }
- if (s == end)
- goto end_i;
-
- /* Handle next 9 digits and store them in j */
- j= 0;
- start= s; /* Used to know how much to shift i */
- n_end= true_end= s + INIT_CNT;
- if (n_end > end)
- n_end= end;
- do
- {
- if ((c= (*s-'0')) > 9)
- goto end_i_and_j;
- j= j*10+c;
- } while (++s != n_end);
- if (s == end)
- {
- if (s != true_end)
- goto end_i_and_j;
- goto end3;
- }
- if ((c= (*s-'0')) > 9)
- goto end3;
-
- /* Handle the next 1 or 2 digits and store them in k */
- k=c;
- if (++s == end || (c= (*s-'0')) > 9)
- goto end4;
- k= k*10+c;
- *endptr= (char*) ++s;
-
- /* number string should have ended here */
- if (s != end && (c= (*s-'0')) <= 9)
- goto overflow;
-
- /* Check that we didn't get an overflow with the last digit */
- if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) &&
- k > cutoff3)))
- goto overflow;
- li=i*LFACTOR2+ (ulonglong) j*100 + k;
- return (longlong) li;
-
-overflow: /* *endptr is set here */
- *error= MY_ERRNO_ERANGE;
- return negative ? LONGLONG_MIN : (longlong) ULONGLONG_MAX;
-
-end_i:
- *endptr= (char*) s;
- return (negative ? ((longlong) -(long) i) : (longlong) i);
-
-end_i_and_j:
- li= (ulonglong) i * lfactor[(uint) (s-start)] + j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end3:
- li=(ulonglong) i*LFACTOR+ (ulonglong) j;
- *endptr= (char*) s;
- return (negative ? -((longlong) li) : (longlong) li);
-
-end4:
- li=(ulonglong) i*LFACTOR1+ (ulonglong) j * 10 + k;
- *endptr= (char*) s;
- if (negative)
- {
- if (li > MAX_NEGATIVE_NUMBER)
- goto overflow;
- return -((longlong) li);
- }
- return (longlong) li;
-
-no_conv:
- /* There was no number to convert. */
- *error= MY_ERRNO_EDOM;
- *endptr= (char *) nptr;
- return 0;
-}
diff --git a/dep/mysqllite/strings/my_vsnprintf.c b/dep/mysqllite/strings/my_vsnprintf.c
deleted file mode 100644
index e9786dacfdc..00000000000
--- a/dep/mysqllite/strings/my_vsnprintf.c
+++ /dev/null
@@ -1,681 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_string.h>
-#include <stdarg.h>
-#include <m_ctype.h>
-
-
-#define MAX_ARGS 32 /* max positional args count*/
-#define MAX_PRINT_INFO 32 /* max print position count */
-
-#define LENGTH_ARG 1
-#define WIDTH_ARG 2
-#define PREZERO_ARG 4
-#define ESCAPED_ARG 8
-
-typedef struct pos_arg_info ARGS_INFO;
-typedef struct print_info PRINT_INFO;
-
-struct pos_arg_info
-{
- char arg_type; /* argument type */
- uint have_longlong; /* used from integer values */
- char *str_arg; /* string value of the arg */
- longlong longlong_arg; /* integer value of the arg */
- double double_arg; /* double value of the arg */
-};
-
-
-struct print_info
-{
- char arg_type; /* argument type */
- size_t arg_idx; /* index of the positional arg */
- size_t length; /* print width or arg index */
- size_t width; /* print width or arg index */
- uint flags;
- const char *begin; /**/
- const char *end; /**/
-};
-
-
-/**
- Calculates print length or index of positional argument
-
- @param fmt processed string
- @param length print length or index of positional argument
- @param pre_zero returns flags with PREZERO_ARG set if necessary
-
- @retval
- string position right after length digits
-*/
-
-static const char *get_length(const char *fmt, size_t *length, uint *pre_zero)
-{
- for (; my_isdigit(&my_charset_latin1, *fmt); fmt++)
- {
- *length= *length * 10 + (uint)(*fmt - '0');
- if (!*length)
- *pre_zero|= PREZERO_ARG; /* first digit was 0 */
- }
- return fmt;
-}
-
-
-/**
- Calculates print width or index of positional argument
-
- @param fmt processed string
- @param width print width or index of positional argument
-
- @retval
- string position right after width digits
-*/
-
-static const char *get_width(const char *fmt, size_t *width)
-{
- for (; my_isdigit(&my_charset_latin1, *fmt); fmt++)
- {
- *width= *width * 10 + (uint)(*fmt - '0');
- }
- return fmt;
-}
-
-/**
- Calculates print width or index of positional argument
-
- @param fmt processed string
- @param have_longlong TRUE if longlong is required
-
- @retval
- string position right after modifier symbol
-*/
-
-static const char *check_longlong(const char *fmt, uint *have_longlong)
-{
- *have_longlong= 0;
- if (*fmt == 'l')
- {
- fmt++;
- if (*fmt != 'l')
- *have_longlong= (sizeof(long) == sizeof(longlong));
- else
- {
- fmt++;
- *have_longlong= 1;
- }
- }
- else if (*fmt == 'z')
- {
- fmt++;
- *have_longlong= (sizeof(size_t) == sizeof(longlong));
- }
- return fmt;
-}
-
-
-/**
- Returns escaped string
-
- @param cs string charset
- @param to buffer where escaped string will be placed
- @param end end of buffer
- @param par string to escape
- @param par_len string length
- @param quote_char character for quoting
-
- @retval
- position in buffer which points on the end of escaped string
-*/
-
-static char *backtick_string(CHARSET_INFO *cs, char *to, char *end,
- char *par, size_t par_len, char quote_char)
-{
- uint char_len;
- char *start= to;
- char *par_end= par + par_len;
- size_t buff_length= (size_t) (end - to);
-
- if (buff_length <= par_len)
- goto err;
- *start++= quote_char;
-
- for ( ; par < par_end; par+= char_len)
- {
- uchar c= *(uchar *) par;
- if (!(char_len= my_mbcharlen(cs, c)))
- char_len= 1;
- if (char_len == 1 && c == (uchar) quote_char )
- {
- if (start + 1 >= end)
- goto err;
- *start++= quote_char;
- }
- if (start + char_len >= end)
- goto err;
- start= strnmov(start, par, char_len);
- }
-
- if (start + 1 >= end)
- goto err;
- *start++= quote_char;
- return start;
-
-err:
- *to='\0';
- return to;
-}
-
-
-/**
- Prints string argument
-*/
-
-static char *process_str_arg(CHARSET_INFO *cs, char *to, char *end,
- size_t width, char *par, uint print_type)
-{
- int well_formed_error;
- size_t plen, left_len= (size_t) (end - to) + 1;
- if (!par)
- par = (char*) "(null)";
-
- plen= strnlen(par, width);
- if (left_len <= plen)
- plen = left_len - 1;
- plen= cs->cset->well_formed_len(cs, par, par + plen,
- width, &well_formed_error);
- if (print_type & ESCAPED_ARG)
- to= backtick_string(cs, to, end, par, plen, '`');
- else
- to= strnmov(to,par,plen);
- return to;
-}
-
-
-/**
- Prints binary argument
-*/
-
-static char *process_bin_arg(char *to, char *end, size_t width, char *par)
-{
- DBUG_ASSERT(to <= end);
- if (to + width + 1 > end)
- width= end - to - 1; /* sign doesn't matter */
- memmove(to, par, width);
- to+= width;
- return to;
-}
-
-
-/**
- Prints double or float argument
-*/
-
-static char *process_dbl_arg(char *to, char *end, size_t width,
- double par, char arg_type)
-{
- if (width == SIZE_T_MAX)
- width= FLT_DIG; /* width not set, use default */
- else if (width >= NOT_FIXED_DEC)
- width= NOT_FIXED_DEC - 1; /* max.precision for my_fcvt() */
- width= min(width, (size_t)(end-to) - 1);
-
- if (arg_type == 'f')
- to+= my_fcvt(par, (int)width , to, NULL);
- else
- to+= my_gcvt(par, MY_GCVT_ARG_DOUBLE, (int) width , to, NULL);
- return to;
-}
-
-
-/**
- Prints integer argument
-*/
-
-static char *process_int_arg(char *to, char *end, size_t length,
- longlong par, char arg_type, uint print_type)
-{
- size_t res_length, to_length;
- char *store_start= to, *store_end;
- char buff[32];
-
- if ((to_length= (size_t) (end-to)) < 16 || length)
- store_start= buff;
-
- if (arg_type == 'd' || arg_type == 'i')
- store_end= longlong10_to_str(par, store_start, -10);
- else if (arg_type == 'u')
- store_end= longlong10_to_str(par, store_start, 10);
- else if (arg_type == 'p')
- {
- store_start[0]= '0';
- store_start[1]= 'x';
- store_end= ll2str(par, store_start + 2, 16, 0);
- }
- else if (arg_type == 'o')
- {
- store_end= ll2str(par, store_start, 8, 0);
- }
- else
- {
- DBUG_ASSERT(arg_type == 'X' || arg_type =='x');
- store_end= ll2str(par, store_start, 16, (arg_type == 'X'));
- }
-
- if ((res_length= (size_t) (store_end - store_start)) > to_length)
- return to; /* num doesn't fit in output */
- /* If %#d syntax was used, we have to pre-zero/pre-space the string */
- if (store_start == buff)
- {
- length= min(length, to_length);
- if (res_length < length)
- {
- size_t diff= (length- res_length);
- bfill(to, diff, (print_type & PREZERO_ARG) ? '0' : ' ');
- if (arg_type == 'p' && print_type & PREZERO_ARG)
- {
- if (diff > 1)
- to[1]= 'x';
- else
- store_start[0]= 'x';
- store_start[1]= '0';
- }
- to+= diff;
- }
- bmove(to, store_start, res_length);
- }
- to+= res_length;
- return to;
-}
-
-
-/**
- Procesed positional arguments.
-
- @param cs string charset
- @param to buffer where processed string will be place
- @param end end of buffer
- @param par format string
- @param arg_index arg index of the first occurrence of positional arg
- @param ap list of parameters
-
- @retval
- end of buffer where processed string is placed
-*/
-
-static char *process_args(CHARSET_INFO *cs, char *to, char *end,
- const char* fmt, size_t arg_index, va_list ap)
-{
- ARGS_INFO args_arr[MAX_ARGS];
- PRINT_INFO print_arr[MAX_PRINT_INFO];
- uint idx= 0, arg_count= arg_index;
-
-start:
- /* Here we are at the beginning of positional argument, right after $ */
- arg_index--;
- print_arr[idx].flags= 0;
- if (*fmt == '`')
- {
- print_arr[idx].flags|= ESCAPED_ARG;
- fmt++;
- }
- if (*fmt == '-')
- fmt++;
- print_arr[idx].length= print_arr[idx].width= 0;
- /* Get print length */
- if (*fmt == '*')
- {
- fmt++;
- fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags);
- print_arr[idx].length--;
- DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS);
- args_arr[print_arr[idx].length].arg_type= 'd';
- print_arr[idx].flags|= LENGTH_ARG;
- arg_count= max(arg_count, print_arr[idx].length + 1);
- fmt++;
- }
- else
- fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags);
-
- if (*fmt == '.')
- {
- fmt++;
- /* Get print width */
- if (*fmt == '*')
- {
- fmt++;
- fmt= get_width(fmt, &print_arr[idx].width);
- print_arr[idx].width--;
- DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS);
- args_arr[print_arr[idx].width].arg_type= 'd';
- print_arr[idx].flags|= WIDTH_ARG;
- arg_count= max(arg_count, print_arr[idx].width + 1);
- fmt++;
- }
- else
- fmt= get_width(fmt, &print_arr[idx].width);
- }
- else
- print_arr[idx].width= SIZE_T_MAX;
-
- fmt= check_longlong(fmt, &args_arr[arg_index].have_longlong);
- if (*fmt == 'p')
- args_arr[arg_index].have_longlong= (sizeof(void *) == sizeof(longlong));
- args_arr[arg_index].arg_type= print_arr[idx].arg_type= *fmt;
-
- print_arr[idx].arg_idx= arg_index;
- print_arr[idx].begin= ++fmt;
-
- while (*fmt && *fmt != '%')
- fmt++;
-
- if (!*fmt) /* End of format string */
- {
- uint i;
- print_arr[idx].end= fmt;
- /* Obtain parameters from the list */
- for (i= 0 ; i < arg_count; i++)
- {
- switch (args_arr[i].arg_type) {
- case 's':
- case 'b':
- args_arr[i].str_arg= va_arg(ap, char *);
- break;
- case 'f':
- case 'g':
- args_arr[i].double_arg= va_arg(ap, double);
- break;
- case 'd':
- case 'i':
- case 'u':
- case 'x':
- case 'X':
- case 'o':
- case 'p':
- if (args_arr[i].have_longlong)
- args_arr[i].longlong_arg= va_arg(ap,longlong);
- else if (args_arr[i].arg_type == 'd' || args_arr[i].arg_type == 'i')
- args_arr[i].longlong_arg= va_arg(ap, int);
- else
- args_arr[i].longlong_arg= va_arg(ap, uint);
- break;
- case 'c':
- args_arr[i].longlong_arg= va_arg(ap, int);
- break;
- default:
- DBUG_ASSERT(0);
- }
- }
- /* Print result string */
- for (i= 0; i <= idx; i++)
- {
- size_t width= 0, length= 0;
- switch (print_arr[i].arg_type) {
- case 's':
- {
- char *par= args_arr[print_arr[i].arg_idx].str_arg;
- width= (print_arr[i].flags & WIDTH_ARG)
- ? (size_t)args_arr[print_arr[i].width].longlong_arg
- : print_arr[i].width;
- to= process_str_arg(cs, to, end, width, par, print_arr[i].flags);
- break;
- }
- case 'b':
- {
- char *par = args_arr[print_arr[i].arg_idx].str_arg;
- width= (print_arr[i].flags & WIDTH_ARG)
- ? (size_t)args_arr[print_arr[i].width].longlong_arg
- : print_arr[i].width;
- to= process_bin_arg(to, end, width, par);
- break;
- }
- case 'c':
- {
- if (to == end)
- break;
- *to++= (char) args_arr[print_arr[i].arg_idx].longlong_arg;
- break;
- }
- case 'f':
- case 'g':
- {
- double d= args_arr[print_arr[i].arg_idx].double_arg;
- width= (print_arr[i].flags & WIDTH_ARG) ?
- (uint)args_arr[print_arr[i].width].longlong_arg : print_arr[i].width;
- to= process_dbl_arg(to, end, width, d, print_arr[i].arg_type);
- break;
- }
- case 'd':
- case 'i':
- case 'u':
- case 'x':
- case 'X':
- case 'o':
- case 'p':
- {
- /* Integer parameter */
- longlong larg;
- length= (print_arr[i].flags & LENGTH_ARG)
- ? (size_t)args_arr[print_arr[i].length].longlong_arg
- : print_arr[i].length;
-
- if (args_arr[print_arr[i].arg_idx].have_longlong)
- larg = args_arr[print_arr[i].arg_idx].longlong_arg;
- else if (print_arr[i].arg_type == 'd' || print_arr[i].arg_type == 'i' )
- larg = (int) args_arr[print_arr[i].arg_idx].longlong_arg;
- else
- larg= (uint) args_arr[print_arr[i].arg_idx].longlong_arg;
-
- to= process_int_arg(to, end, length, larg, print_arr[i].arg_type,
- print_arr[i].flags);
- break;
- }
- default:
- break;
- }
-
- if (to == end)
- break;
-
- length= min(end - to , print_arr[i].end - print_arr[i].begin);
- if (to + length < end)
- length++;
- to= strnmov(to, print_arr[i].begin, length);
- }
- DBUG_ASSERT(to <= end);
- *to='\0'; /* End of errmessage */
- return to;
- }
- else
- {
- /* Process next positional argument*/
- DBUG_ASSERT(*fmt == '%');
- print_arr[idx].end= fmt - 1;
- idx++;
- fmt++;
- arg_index= 0;
- fmt= get_width(fmt, &arg_index);
- DBUG_ASSERT(*fmt == '$');
- fmt++;
- arg_count= max(arg_count, arg_index);
- goto start;
- }
-
- return 0;
-}
-
-
-
-/**
- Produces output string according to a format string
-
- See the detailed documentation around my_snprintf_service_st
-
- @param cs string charset
- @param to buffer where processed string will be place
- @param n size of buffer
- @param par format string
- @param ap list of parameters
-
- @retval
- length of result string
-*/
-
-size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
- const char* fmt, va_list ap)
-{
- char *start=to, *end=to+n-1;
- size_t length, width;
- uint print_type, have_longlong;
-
- for (; *fmt ; fmt++)
- {
- if (*fmt != '%')
- {
- if (to == end) /* End of buffer */
- break;
- *to++= *fmt; /* Copy ordinary char */
- continue;
- }
- fmt++; /* skip '%' */
-
- length= width= 0;
- print_type= 0;
-
- /* Read max fill size (only used with %d and %u) */
- if (my_isdigit(&my_charset_latin1, *fmt))
- {
- fmt= get_length(fmt, &length, &print_type);
- if (*fmt == '$')
- {
- to= process_args(cs, to, end, (fmt+1), length, ap);
- return (size_t) (to - start);
- }
- }
- else
- {
- if (*fmt == '`')
- {
- print_type|= ESCAPED_ARG;
- fmt++;
- }
- if (*fmt == '-')
- fmt++;
- if (*fmt == '*')
- {
- fmt++;
- length= va_arg(ap, int);
- }
- else
- fmt= get_length(fmt, &length, &print_type);
- }
-
- if (*fmt == '.')
- {
- fmt++;
- if (*fmt == '*')
- {
- fmt++;
- width= va_arg(ap, int);
- }
- else
- fmt= get_width(fmt, &width);
- }
- else
- width= SIZE_T_MAX;
-
- fmt= check_longlong(fmt, &have_longlong);
-
- if (*fmt == 's') /* String parameter */
- {
- reg2 char *par= va_arg(ap, char *);
- to= process_str_arg(cs, to, end, width, par, print_type);
- continue;
- }
- else if (*fmt == 'b') /* Buffer parameter */
- {
- char *par = va_arg(ap, char *);
- to= process_bin_arg(to, end, width, par);
- continue;
- }
- else if (*fmt == 'f' || *fmt == 'g')
- {
- double d= va_arg(ap, double);
- to= process_dbl_arg(to, end, width, d, *fmt);
- continue;
- }
- else if (*fmt == 'd' || *fmt == 'i' || *fmt == 'u' || *fmt == 'x' ||
- *fmt == 'X' || *fmt == 'p' || *fmt == 'o')
- {
- /* Integer parameter */
- longlong larg;
- if (*fmt == 'p')
- have_longlong= (sizeof(void *) == sizeof(longlong));
-
- if (have_longlong)
- larg = va_arg(ap,longlong);
- else if (*fmt == 'd' || *fmt == 'i')
- larg = va_arg(ap, int);
- else
- larg= va_arg(ap, uint);
-
- to= process_int_arg(to, end, length, larg, *fmt, print_type);
- continue;
- }
- else if (*fmt == 'c') /* Character parameter */
- {
- register int larg;
- if (to == end)
- break;
- larg = va_arg(ap, int);
- *to++= (char) larg;
- continue;
- }
-
- /* We come here on '%%', unknown code or too long parameter */
- if (to == end)
- break;
- *to++='%'; /* % used as % or unknown code */
- }
- DBUG_ASSERT(to <= end);
- *to='\0'; /* End of errmessage */
- return (size_t) (to - start);
-}
-
-
-/*
- Limited snprintf() implementations
-
- exported to plugins as a service, see the detailed documentation
- around my_snprintf_service_st
-*/
-
-size_t my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
-{
- return my_vsnprintf_ex(&my_charset_latin1, to, n, fmt, ap);
-}
-
-
-size_t my_snprintf(char* to, size_t n, const char* fmt, ...)
-{
- size_t result;
- va_list args;
- va_start(args,fmt);
- result= my_vsnprintf(to, n, fmt, args);
- va_end(args);
- return result;
-}
-
diff --git a/dep/mysqllite/strings/str2int.c b/dep/mysqllite/strings/str2int.c
deleted file mode 100644
index c4a4c07eeff..00000000000
--- a/dep/mysqllite/strings/str2int.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- str2int(src, radix, lower, upper, &val)
- converts the string pointed to by src to an integer and stores it in
- val. It skips leading spaces and tabs (but not newlines, formfeeds,
- backspaces), then it accepts an optional sign and a sequence of digits
- in the specified radix. The result should satisfy lower <= *val <= upper.
- The result is a pointer to the first character after the number;
- trailing spaces will NOT be skipped.
-
- If an error is detected, the result will be NullS, the value put
- in val will be 0, and errno will be set to
- EDOM if there are no digits
- ERANGE if the result would overflow or otherwise fail to lie
- within the specified bounds.
- Check that the bounds are right for your machine.
- This looks amazingly complicated for what you probably thought was an
- easy task. Coping with integer overflow and the asymmetric range of
- twos complement machines is anything but easy.
-
- So that users of atoi and atol can check whether an error occured,
- I have taken a wholly unprecedented step: errno is CLEARED if this
- call has no problems.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-#include "m_ctype.h"
-#include "my_sys.h" /* defines errno */
-#include <errno.h>
-
-#define char_val(X) (X >= '0' && X <= '9' ? X-'0' :\
- X >= 'A' && X <= 'Z' ? X-'A'+10 :\
- X >= 'a' && X <= 'z' ? X-'a'+10 :\
- '\177')
-
-char *str2int(register const char *src, register int radix, long int lower,
- long int upper, long int *val)
-{
- int sign; /* is number negative (+1) or positive (-1) */
- int n; /* number of digits yet to be converted */
- long limit; /* "largest" possible valid input */
- long scale; /* the amount to multiply next digit by */
- long sofar; /* the running value */
- register int d; /* (negative of) next digit */
- char *start;
- int digits[32]; /* Room for numbers */
-
- /* Make sure *val is sensible in case of error */
-
- *val = 0;
-
- /* Check that the radix is in the range 2..36 */
-
-#ifndef DBUG_OFF
- if (radix < 2 || radix > 36) {
- errno=EDOM;
- return NullS;
- }
-#endif
-
- /* The basic problem is: how do we handle the conversion of
- a number without resorting to machine-specific code to
- check for overflow? Obviously, we have to ensure that
- no calculation can overflow. We are guaranteed that the
- "lower" and "upper" arguments are valid machine integers.
- On sign-and-magnitude, twos-complement, and ones-complement
- machines all, if +|n| is representable, so is -|n|, but on
- twos complement machines the converse is not true. So the
- "maximum" representable number has a negative representative.
- Limit is set to min(-|lower|,-|upper|); this is the "largest"
- number we are concerned with. */
-
- /* Calculate Limit using Scale as a scratch variable */
-
- if ((limit = lower) > 0) limit = -limit;
- if ((scale = upper) > 0) scale = -scale;
- if (scale < limit) limit = scale;
-
- /* Skip leading spaces and check for a sign.
- Note: because on a 2s complement machine MinLong is a valid
- integer but |MinLong| is not, we have to keep the current
- converted value (and the scale!) as *negative* numbers,
- so the sign is the opposite of what you might expect.
- */
- while (my_isspace(&my_charset_latin1,*src)) src++;
- sign = -1;
- if (*src == '+') src++; else
- if (*src == '-') src++, sign = 1;
-
- /* Skip leading zeros so that we never compute a power of radix
- in scale that we won't have a need for. Otherwise sticking
- enough 0s in front of a number could cause the multiplication
- to overflow when it neededn't.
- */
- start=(char*) src;
- while (*src == '0') src++;
-
- /* Move over the remaining digits. We have to convert from left
- to left in order to avoid overflow. Answer is after last digit.
- */
-
- for (n = 0; (digits[n]=char_val(*src)) < radix && n < 20; n++,src++) ;
-
- /* Check that there is at least one digit */
-
- if (start == src) {
- errno=EDOM;
- return NullS;
- }
-
- /* The invariant we want to maintain is that src is just
- to the right of n digits, we've converted k digits to
- sofar, scale = -radix**k, and scale < sofar < 0. Now
- if the final number is to be within the original
- Limit, we must have (to the left)*scale+sofar >= Limit,
- or (to the left)*scale >= Limit-sofar, i.e. the digits
- to the left of src must form an integer <= (Limit-sofar)/(scale).
- In particular, this is true of the next digit. In our
- incremental calculation of Limit,
-
- IT IS VITAL that (-|N|)/(-|D|) = |N|/|D|
- */
-
- for (sofar = 0, scale = -1; --n >= 1;)
- {
- if ((long) -(d=digits[n]) < limit) {
- errno=ERANGE;
- return NullS;
- }
- limit = (limit+d)/radix, sofar += d*scale; scale *= radix;
- }
- if (n == 0)
- {
- if ((long) -(d=digits[n]) < limit) /* get last digit */
- {
- errno=ERANGE;
- return NullS;
- }
- sofar+=d*scale;
- }
-
- /* Now it might still happen that sofar = -32768 or its equivalent,
- so we can't just multiply by the sign and check that the result
- is in the range lower..upper. All of this caution is a right
- pain in the neck. If only there were a standard routine which
- says generate thus and such a signal on integer overflow...
- But not enough machines can do it *SIGH*.
- */
- if (sign < 0)
- {
- if (sofar < -LONG_MAX || (sofar= -sofar) > upper)
- {
- errno=ERANGE;
- return NullS;
- }
- }
- else if (sofar < lower)
- {
- errno=ERANGE;
- return NullS;
- }
- *val = sofar;
- errno=0; /* indicate that all went well */
- return (char*) src;
-}
-
- /* Theese are so slow compared with ordinary, optimized atoi */
-
-#ifdef WANT_OUR_ATOI
-
-int atoi(const char *src)
-{
- long val;
- str2int(src, 10, (long) INT_MIN, (long) INT_MAX, &val);
- return (int) val;
-}
-
-
-long atol(const char *src)
-{
- long val;
- str2int(src, 10, LONG_MIN, LONG_MAX, &val);
- return val;
-}
-
-#endif /* WANT_OUR_ATOI */
diff --git a/dep/mysqllite/strings/str_alloc.c b/dep/mysqllite/strings/str_alloc.c
deleted file mode 100644
index 615ad1ba1e2..00000000000
--- a/dep/mysqllite/strings/str_alloc.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include <my_global.h>
-#include <m_string.h>
-
-static void *my_str_malloc_default(size_t size)
-{
- void *ret= malloc(size);
- if (!ret)
- exit(1);
- return ret;
-}
-
-static void my_str_free_default(void *ptr)
-{
- free(ptr);
-}
-
-void *(*my_str_malloc)(size_t)= &my_str_malloc_default;
-void (*my_str_free)(void *)= &my_str_free_default;
diff --git a/dep/mysqllite/strings/strappend.c b/dep/mysqllite/strings/strappend.c
deleted file mode 100644
index bb926f74665..00000000000
--- a/dep/mysqllite/strings/strappend.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strappend.c
- Author : Monty
- Updated: 1987.02.07
- Defines: strappend()
-
- strappend(dest, len, fill) appends fill-characters to a string so that
- the result length == len. If the string is longer than len it's
- trunked. The des+len character is allways set to NULL.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-
-void strappend(register char *s, size_t len, pchar fill)
-{
- register char *endpos;
-
- endpos = s+len;
- while (*s++);
- s--;
- while (s<endpos) *(s++) = fill;
- *(endpos) = '\0';
-} /* strappend */
diff --git a/dep/mysqllite/strings/strcend.c b/dep/mysqllite/strings/strcend.c
deleted file mode 100644
index e08ad2b1e75..00000000000
--- a/dep/mysqllite/strings/strcend.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strcend.c
- Author : Michael Widenius: ifdef MC68000
- Updated: 20 April 1984
- Defines: strcend()
-
- strcend(s, c) returns a pointer to the first place in s where c
- occurs, or a pointer to the end-null of s if c does not occur in s.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char *strcend(register const char *s, register pchar c)
-{
- for (;;)
- {
- if (*s == (char) c) return (char*) s;
- if (!*s++) return (char*) s-1;
- }
-}
-
diff --git a/dep/mysqllite/strings/strcont.c b/dep/mysqllite/strings/strcont.c
deleted file mode 100644
index 5a518a3550f..00000000000
--- a/dep/mysqllite/strings/strcont.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strcont.c
- Author : Monty
- Updated: 1988.07.27
- Defines: strcont()
-
- strcont(str, set) if str contanies any character in the string set.
- The result is the position of the first found character in str, or NullS
- if there isn't anything found.
-
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char * strcont(reg1 const char *str,reg2 const char *set)
-{
- reg3 char * start = (char *) set;
-
- while (*str)
- {
- while (*set)
- {
- if (*set++ == *str)
- return ((char*) str);
- }
- set=start; str++;
- }
- return (NullS);
-} /* strcont */
diff --git a/dep/mysqllite/strings/strend.c b/dep/mysqllite/strings/strend.c
deleted file mode 100644
index d70a5d648d5..00000000000
--- a/dep/mysqllite/strings/strend.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* File : strend.c
- Author : Richard A. O'Keefe.
- Updated: 23 April 1984
- Defines: strend()
-
- strend(s) returns a character pointer to the NUL which ends s. That
- is, strend(s)-s == strlen(s). This is useful for adding things at
- the end of strings. It is redundant, because strchr(s,'\0') could
- be used instead, but this is clearer and faster.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char *strend(register const char *s)
-{
- while (*s++);
- return (char*) (s-1);
-}
-
diff --git a/dep/mysqllite/strings/strfill.c b/dep/mysqllite/strings/strfill.c
deleted file mode 100644
index 4b1fe67b206..00000000000
--- a/dep/mysqllite/strings/strfill.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strfill.c
- Author : Monty
- Updated: 1987.04.16
- Defines: strfill()
-
- strfill(dest, len, fill) makes a string of fill-characters. The result
- string is of length == len. The des+len character is allways set to NULL.
- strfill() returns pointer to dest+len;
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char * strfill(char *s, size_t len, pchar fill)
-{
- while (len--) *s++ = fill;
- *(s) = '\0';
- return(s);
-} /* strfill */
diff --git a/dep/mysqllite/strings/strmake.c b/dep/mysqllite/strings/strmake.c
deleted file mode 100644
index 2d5fa5e36aa..00000000000
--- a/dep/mysqllite/strings/strmake.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strmake.c
- Author : Michael Widenius
- Updated: 20 Jul 1984
- Defines: strmake()
-
- strmake(dst,src,length) moves length characters, or until end, of src to
- dst and appends a closing NUL to dst.
- Note that if strlen(src) >= length then dst[length] will be set to \0
- strmake() returns pointer to closing null
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char *strmake(register char *dst, register const char *src, size_t length)
-{
-#ifdef EXTRA_DEBUG
- /*
- 'length' is the maximum length of the string; the buffer needs
- to be one character larger to accomodate the terminating '\0'.
- This is easy to get wrong, so we make sure we write to the
- entire length of the buffer to identify incorrect buffer-sizes.
- We only initialise the "unused" part of the buffer here, a) for
- efficiency, and b) because dst==src is allowed, so initialising
- the entire buffer would overwrite the source-string. Also, we
- write a character rather than '\0' as this makes spotting these
- problems in the results easier.
- */
- uint n= 0;
- while (n < length && src[n++]);
- memset(dst + n, (int) 'Z', length - n + 1);
-#endif
-
- while (length--)
- if (! (*dst++ = *src++))
- return dst-1;
- *dst=0;
- return dst;
-}
diff --git a/dep/mysqllite/strings/strmov.c b/dep/mysqllite/strings/strmov.c
deleted file mode 100644
index 4d4915d27a0..00000000000
--- a/dep/mysqllite/strings/strmov.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- strmov(dst, src) moves all the characters of src (including the
- closing NUL) to dst, and returns a pointer to the new closing NUL in
- dst. The similar UNIX routine strcpy returns the old value of dst,
- which I have never found useful. strmov(strmov(dst,a),b) moves a//b
- into dst, which seems useful.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-#ifdef strmov
-#undef strmov
-#define strmov strmov_overlapp
-#endif
-
-char *strmov(register char *dst, register const char *src)
-{
- while ((*dst++ = *src++)) ;
- return dst-1;
-}
-
diff --git a/dep/mysqllite/strings/strnlen.c b/dep/mysqllite/strings/strnlen.c
deleted file mode 100644
index 826cd5ae5dd..00000000000
--- a/dep/mysqllite/strings/strnlen.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* File : strnlen.c
- Author : Michael Widenius
- Updated: 20 April 1984
- Defines: strnlen.
- strnlen(s, len) returns the length of s or len if s is longer than len.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-#ifndef HAVE_STRNLEN
-
-size_t strnlen(register const char *s, register size_t maxlen)
-{
- const char *end= (const char *)memchr(s, '\0', maxlen);
- return end ? (size_t) (end - s) : maxlen;
-}
-
-#endif
diff --git a/dep/mysqllite/strings/strnmov.c b/dep/mysqllite/strings/strnmov.c
deleted file mode 100644
index 7e26877637b..00000000000
--- a/dep/mysqllite/strings/strnmov.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- strnmov(dst,src,length) moves length characters, or until end, of src to
- dst and appends a closing NUL to dst if src is shorter than length.
- The result is a pointer to the first NUL in dst, or is dst+n if dst was
- truncated.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-
-char *strnmov(register char *dst, register const char *src, size_t n)
-{
- while (n-- != 0) {
- if (!(*dst++ = *src++)) {
- return (char*) dst-1;
- }
- }
- return dst;
-}
diff --git a/dep/mysqllite/strings/strxmov.c b/dep/mysqllite/strings/strxmov.c
deleted file mode 100644
index 9dd2c936620..00000000000
--- a/dep/mysqllite/strings/strxmov.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* File : strxmov.c
- Author : Richard A. O'Keefe.
- Updated: 25 may 1984
- Defines: strxmov()
-
- strxmov(dst, src1, ..., srcn, NullS)
- moves the concatenation of src1,...,srcn to dst, terminates it
- with a NUL character, and returns a pointer to the terminating NUL.
- It is just like strmov except that it concatenates multiple sources.
- Beware: the last argument should be the null character pointer.
- Take VERY great care not to omit it! Also be careful to use NullS
- and NOT to use 0, as on some machines 0 is not the same size as a
- character pointer, or not the same bit pattern as NullS.
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-#include <stdarg.h>
-
-char *strxmov(char *dst,const char *src, ...)
-{
- va_list pvar;
-
- va_start(pvar,src);
- while (src != NullS) {
- while ((*dst++ = *src++)) ;
- dst--;
- src = va_arg(pvar, char *);
- }
- va_end(pvar);
- *dst = 0; /* there might have been no sources! */
- return dst;
-}
diff --git a/dep/mysqllite/strings/strxnmov.c b/dep/mysqllite/strings/strxnmov.c
deleted file mode 100644
index 16469be6e45..00000000000
--- a/dep/mysqllite/strings/strxnmov.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2002 MySQL AB
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; version 2
- of the License.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with this library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA */
-
-/* File : strxnmov.c
- Author : Richard A. O'Keefe.
- Updated: 2 June 1984
- Defines: strxnmov()
-
- strxnmov(dst, len, src1, ..., srcn, NullS)
- moves the first len characters of the concatenation of src1,...,srcn
- to dst and add a closing NUL character.
- It is just like strnmov except that it concatenates multiple sources.
- Beware: the last argument should be the null character pointer.
- Take VERY great care not to omit it! Also be careful to use NullS
- and NOT to use 0, as on some machines 0 is not the same size as a
- character pointer, or not the same bit pattern as NullS.
-
- NOTE
- strxnmov is like strnmov in that it moves up to len
- characters; dst will be padded on the right with one '\0' character.
- if total-string-length >= length then dst[length] will be set to \0
-*/
-
-#include <my_global.h>
-#include "m_string.h"
-#include <stdarg.h>
-
-char *strxnmov(char *dst, size_t len, const char *src, ...)
-{
- va_list pvar;
- char *end_of_dst=dst+len;
-
- va_start(pvar,src);
- while (src != NullS)
- {
- do
- {
- if (dst == end_of_dst)
- goto end;
- }
- while ((*dst++ = *src++));
- dst--;
- src = va_arg(pvar, char *);
- }
-end:
- *dst=0;
- va_end(pvar);
- return dst;
-}
diff --git a/dep/mysqllite/strings/t_ctype.h b/dep/mysqllite/strings/t_ctype.h
deleted file mode 100644
index af4f3ebbaa1..00000000000
--- a/dep/mysqllite/strings/t_ctype.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Copyright (C) 1998, 1999 by Pruet Boonma, all rights reserved.
- Copyright (C) 1998 by Theppitak Karoonboonyanan, all rights reserved.
- Permission to use, copy, modify, distribute and sell this software
- and its documentation for any purpose is hereby granted without fee,
- provided that the above copyright notice appear in all copies.
- Smaphan Raruenrom and Pruet Boonma makes no representations about
- the suitability of this software for any purpose. It is provided
- "as is" without express or implied warranty.
-*/
-
-/*
- LC_COLLATE category + Level information
-*/
-
-#ifndef _t_ctype_h
-#define _t_ctype_h
-
-typedef unsigned char tchar;
-
-#define TOT_LEVELS 5
-#define LAST_LEVEL 4 /* TOT_LEVELS - 1 */
-
-#define IGNORE 0
-
-
-/* level 1 symbols & order */
-enum l1_symbols {
- L1_08 = TOT_LEVELS,
- L1_18,
- L1_28,
- L1_38,
- L1_48,
- L1_58,
- L1_68,
- L1_78,
- L1_88,
- L1_98,
- L1_A8,
- L1_B8,
- L1_C8,
- L1_D8,
- L1_E8,
- L1_F8,
- L1_G8,
- L1_H8,
- L1_I8,
- L1_J8,
- L1_K8,
- L1_L8,
- L1_M8,
- L1_N8,
- L1_O8,
- L1_P8,
- L1_Q8,
- L1_R8,
- L1_S8,
- L1_T8,
- L1_U8,
- L1_V8,
- L1_W8,
- L1_X8,
- L1_Y8,
- L1_Z8,
- L1_KO_KAI,
- L1_KHO_KHAI,
- L1_KHO_KHUAT,
- L1_KHO_KHWAI,
- L1_KHO_KHON,
- L1_KHO_RAKHANG,
- L1_NGO_NGU,
- L1_CHO_CHAN,
- L1_CHO_CHING,
- L1_CHO_CHANG,
- L1_SO_SO,
- L1_CHO_CHOE,
- L1_YO_YING,
- L1_DO_CHADA,
- L1_TO_PATAK,
- L1_THO_THAN,
- L1_THO_NANGMONTHO,
- L1_THO_PHUTHAO,
- L1_NO_NEN,
- L1_DO_DEK,
- L1_TO_TAO,
- L1_THO_THUNG,
- L1_THO_THAHAN,
- L1_THO_THONG,
- L1_NO_NU,
- L1_BO_BAIMAI,
- L1_PO_PLA,
- L1_PHO_PHUNG,
- L1_FO_FA,
- L1_PHO_PHAN,
- L1_FO_FAN,
- L1_PHO_SAMPHAO,
- L1_MO_MA,
- L1_YO_YAK,
- L1_RO_RUA,
- L1_RU,
- L1_LO_LING,
- L1_LU,
- L1_WO_WAEN,
- L1_SO_SALA,
- L1_SO_RUSI,
- L1_SO_SUA,
- L1_HO_HIP,
- L1_LO_CHULA,
- L1_O_ANG,
- L1_HO_NOKHUK,
- L1_NKHIT,
- L1_SARA_A,
- L1_MAI_HAN_AKAT,
- L1_SARA_AA,
- L1_SARA_AM,
- L1_SARA_I,
- L1_SARA_II,
- L1_SARA_UE,
- L1_SARA_UEE,
- L1_SARA_U,
- L1_SARA_UU,
- L1_SARA_E,
- L1_SARA_AE,
- L1_SARA_O,
- L1_SARA_AI_MAIMUAN,
- L1_SARA_AI_MAIMALAI
-};
-
-/* level 2 symbols & order */
-enum l2_symbols {
- L2_BLANK = TOT_LEVELS,
- L2_THAII,
- L2_YAMAK,
- L2_PINTHU,
- L2_GARAN,
- L2_TYKHU,
- L2_TONE1,
- L2_TONE2,
- L2_TONE3,
- L2_TONE4
-};
-
-/* level 3 symbols & order */
-enum l3_symbols {
- L3_BLANK = TOT_LEVELS,
- L3_SPACE,
- L3_NB_SACE,
- L3_LOW_LINE,
- L3_HYPHEN,
- L3_COMMA,
- L3_SEMICOLON,
- L3_COLON,
- L3_EXCLAMATION,
- L3_QUESTION,
- L3_SOLIDUS,
- L3_FULL_STOP,
- L3_PAIYAN_NOI,
- L3_MAI_YAMOK,
- L3_GRAVE,
- L3_CIRCUMFLEX,
- L3_TILDE,
- L3_APOSTROPHE,
- L3_QUOTATION,
- L3_L_PARANTHESIS,
- L3_L_BRACKET,
- L3_L_BRACE,
- L3_R_BRACE,
- L3_R_BRACKET,
- L3_R_PARENTHESIS,
- L3_AT,
- L3_BAHT,
- L3_DOLLAR,
- L3_FONGMAN,
- L3_ANGKHANKHU,
- L3_KHOMUT,
- L3_ASTERISK,
- L3_BK_SOLIDUS,
- L3_AMPERSAND,
- L3_NUMBER,
- L3_PERCENT,
- L3_PLUS,
- L3_LESS_THAN,
- L3_EQUAL,
- L3_GREATER_THAN,
- L3_V_LINE
-};
-
-/* level 4 symbols & order */
-enum l4_symbols {
- L4_BLANK = TOT_LEVELS,
- L4_MIN,
- L4_CAP,
- L4_EXT
-};
-
-enum level_symbols {
- L_UPRUPR = TOT_LEVELS,
- L_UPPER,
- L_MIDDLE,
- L_LOWER
-};
-
-#define _is(c) (t_ctype[(c)][LAST_LEVEL])
-#define _level 8
-#define _consnt 16
-#define _ldvowel 32
-#define _fllwvowel 64
-#define _uprvowel 128
-#define _lwrvowel 256
-#define _tone 512
-#define _diacrt1 1024
-#define _diacrt2 2048
-#define _combine 4096
-#define _stone 8192
-#define _tdig 16384
-#define _rearvowel (_fllwvowel | _uprvowel | _lwrvowel)
-#define _diacrt (_diacrt1 | _diacrt2)
-#define levelof(c) ( _is(c) & _level )
-#define isthai(c) ( (c) >= 128 )
-#define istalpha(c) ( _is(c) & (_consnt|_ldvowel|_rearvowel|\
- _tone|_diacrt1|_diacrt2) )
-#define isconsnt(c) ( _is(c) & _consnt )
-#define isldvowel(c) ( _is(c) & _ldvowel )
-#define isfllwvowel(c) ( _is(c) & _fllwvowel )
-#define ismidvowel(c) ( _is(c) & (_ldvowel|_fllwvowel) )
-#define isuprvowel(c) ( _is(c) & _uprvowel )
-#define islwrvowel(c) ( _is(c) & _lwrvowel )
-#define isuprlwrvowel(c) ( _is(c) & (_lwrvowel | _uprvowel))
-#define isrearvowel(c) ( _is(c) & _rearvowel )
-#define isvowel(c) ( _is(c) & (_ldvowel|_rearvowel) )
-#define istone(c) ( _is(c) & _tone )
-#define isunldable(c) ( _is(c) & (_rearvowel|_tone|_diacrt1|_diacrt2) )
-#define iscombinable(c) ( _is(c) & _combine )
-#define istdigit(c) ( _is(c) & _tdig )
-#define isstone(c) ( _is(c) & _stone )
-#define isdiacrt1(c) ( _is(c) & _diacrt1)
-#define isdiacrt2(c) ( _is(c) & _diacrt2)
-#define isdiacrt(c) ( _is(c) & _diacrt)
-
-/* Function prototype called by sql/field.cc */
-void ThNormalize(uchar* ptr, uint field_length, const uchar* from, uint length);
-
-#endif
diff --git a/dep/mysqllite/strings/xml.c b/dep/mysqllite/strings/xml.c
deleted file mode 100644
index f3cfaad54fa..00000000000
--- a/dep/mysqllite/strings/xml.c
+++ /dev/null
@@ -1,496 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "my_global.h"
-#include "m_string.h"
-#include "my_xml.h"
-
-
-#define MY_XML_UNKNOWN 'U'
-#define MY_XML_EOF 'E'
-#define MY_XML_STRING 'S'
-#define MY_XML_IDENT 'I'
-#define MY_XML_EQ '='
-#define MY_XML_LT '<'
-#define MY_XML_GT '>'
-#define MY_XML_SLASH '/'
-#define MY_XML_COMMENT 'C'
-#define MY_XML_TEXT 'T'
-#define MY_XML_QUESTION '?'
-#define MY_XML_EXCLAM '!'
-#define MY_XML_CDATA 'D'
-
-typedef struct xml_attr_st
-{
- const char *beg;
- const char *end;
-} MY_XML_ATTR;
-
-
-/*
- XML ctype:
-*/
-#define MY_XML_ID0 0x01 /* Identifier initial character */
-#define MY_XML_ID1 0x02 /* Identifier medial character */
-#define MY_XML_SPC 0x08 /* Spacing character */
-
-
-/*
- http://www.w3.org/TR/REC-xml/
- [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
- CombiningChar | Extender
- [5] Name ::= (Letter | '_' | ':') (NameChar)*
-*/
-
-static char my_xml_ctype[256]=
-{
-/*00*/ 0,0,0,0,0,0,0,0,0,8,8,0,0,8,0,0,
-/*10*/ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-/*20*/ 8,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0, /* !"#$%&'()*+,-./ */
-/*30*/ 2,2,2,2,2,2,2,2,2,2,3,0,0,0,0,0, /* 0123456789:;<=>? */
-/*40*/ 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, /* @ABCDEFGHIJKLMNO */
-/*50*/ 3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3, /* PQRSTUVWXYZ[\]^_ */
-/*60*/ 0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, /* `abcdefghijklmno */
-/*70*/ 3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0, /* pqrstuvwxyz{|}~ */
-/*80*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*90*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*A0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*B0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*C0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*D0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*E0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-/*F0*/ 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
-};
-
-#define my_xml_is_space(c) (my_xml_ctype[(uchar) (c)] & MY_XML_SPC)
-#define my_xml_is_id0(c) (my_xml_ctype[(uchar) (c)] & MY_XML_ID0)
-#define my_xml_is_id1(c) (my_xml_ctype[(uchar) (c)] & MY_XML_ID1)
-
-
-static const char *lex2str(int lex)
-{
- switch(lex)
- {
- case MY_XML_EOF: return "END-OF-INPUT";
- case MY_XML_STRING: return "STRING";
- case MY_XML_IDENT: return "IDENT";
- case MY_XML_CDATA: return "CDATA";
- case MY_XML_EQ: return "'='";
- case MY_XML_LT: return "'<'";
- case MY_XML_GT: return "'>'";
- case MY_XML_SLASH: return "'/'";
- case MY_XML_COMMENT: return "COMMENT";
- case MY_XML_TEXT: return "TEXT";
- case MY_XML_QUESTION: return "'?'";
- case MY_XML_EXCLAM: return "'!'";
- }
- return "unknown token";
-}
-
-static void my_xml_norm_text(MY_XML_ATTR *a)
-{
- for ( ; (a->beg < a->end) && my_xml_is_space(a->beg[0]) ; a->beg++ );
- for ( ; (a->beg < a->end) && my_xml_is_space(a->end[-1]) ; a->end-- );
-}
-
-
-static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a)
-{
- int lex;
-
- for (; ( p->cur < p->end) && my_xml_is_space(p->cur[0]) ; p->cur++);
-
- if (p->cur >= p->end)
- {
- a->beg=p->end;
- a->end=p->end;
- lex=MY_XML_EOF;
- goto ret;
- }
-
- a->beg=p->cur;
- a->end=p->cur;
-
- if ((p->end - p->cur > 3) && !memcmp(p->cur,"<!--",4))
- {
- for (; (p->cur < p->end) && memcmp(p->cur, "-->", 3); p->cur++)
- {}
- if (!memcmp(p->cur, "-->", 3))
- p->cur+=3;
- a->end=p->cur;
- lex=MY_XML_COMMENT;
- }
- else if (!memcmp(p->cur, "<![CDATA[",9))
- {
- p->cur+= 9;
- for (; p->cur < p->end - 2 ; p->cur++)
- {
- if (p->cur[0] == ']' && p->cur[1] == ']' && p->cur[2] == '>')
- {
- p->cur+= 3;
- a->end= p->cur;
- break;
- }
- }
- lex= MY_XML_CDATA;
- }
- else if (strchr("?=/<>!",p->cur[0]))
- {
- p->cur++;
- a->end=p->cur;
- lex=a->beg[0];
- }
- else if ( (p->cur[0] == '"') || (p->cur[0] == '\'') )
- {
- p->cur++;
- for (; ( p->cur < p->end ) && (p->cur[0] != a->beg[0]); p->cur++)
- {}
- a->end=p->cur;
- if (a->beg[0] == p->cur[0])p->cur++;
- a->beg++;
- if (!(p->flags & MY_XML_FLAG_SKIP_TEXT_NORMALIZATION))
- my_xml_norm_text(a);
- lex=MY_XML_STRING;
- }
- else if (my_xml_is_id0(p->cur[0]))
- {
- p->cur++;
- while (p->cur < p->end && my_xml_is_id1(p->cur[0]))
- p->cur++;
- a->end=p->cur;
- my_xml_norm_text(a);
- lex=MY_XML_IDENT;
- }
- else
- lex= MY_XML_UNKNOWN;
-
-#if 0
- printf("LEX=%s[%d]\n",lex2str(lex),a->end-a->beg);
-#endif
-
-ret:
- return lex;
-}
-
-
-static int my_xml_value(MY_XML_PARSER *st, const char *str, size_t len)
-{
- return (st->value) ? (st->value)(st,str,len) : MY_XML_OK;
-}
-
-
-static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len)
-{
- if ((size_t) (st->attrend-st->attr+len+1) > sizeof(st->attr))
- {
- sprintf(st->errstr,"To deep XML");
- return MY_XML_ERROR;
- }
- if (st->attrend > st->attr)
- {
- st->attrend[0]= '/';
- st->attrend++;
- }
- memcpy(st->attrend,str,len);
- st->attrend+=len;
- st->attrend[0]='\0';
- if (st->flags & MY_XML_FLAG_RELATIVE_NAMES)
- return st->enter ? st->enter(st, str, len) : MY_XML_OK;
- else
- return st->enter ? st->enter(st,st->attr,st->attrend-st->attr) : MY_XML_OK;
-}
-
-
-static void mstr(char *s,const char *src,size_t l1, size_t l2)
-{
- l1 = l1<l2 ? l1 : l2;
- memcpy(s,src,l1);
- s[l1]='\0';
-}
-
-
-static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen)
-{
- char *e;
- size_t glen;
- char s[32];
- char g[32];
- int rc;
-
- /* Find previous '/' or beginning */
- for (e=p->attrend; (e>p->attr) && (e[0] != '/') ; e--);
- glen = (size_t) ((e[0] == '/') ? (p->attrend-e-1) : p->attrend-e);
-
- if (str && (slen != glen))
- {
- mstr(s,str,sizeof(s)-1,slen);
- if (glen)
- {
- mstr(g,e+1,sizeof(g)-1,glen),
- sprintf(p->errstr,"'</%s>' unexpected ('</%s>' wanted)",s,g);
- }
- else
- sprintf(p->errstr,"'</%s>' unexpected (END-OF-INPUT wanted)", s);
- return MY_XML_ERROR;
- }
-
- if (p->flags & MY_XML_FLAG_RELATIVE_NAMES)
- rc= p->leave_xml ? p->leave_xml(p, str, slen) : MY_XML_OK;
- else
- rc= (p->leave_xml ? p->leave_xml(p,p->attr,p->attrend-p->attr) :
- MY_XML_OK);
-
- *e='\0';
- p->attrend=e;
-
- return rc;
-}
-
-
-int my_xml_parse(MY_XML_PARSER *p,const char *str, size_t len)
-{
- p->attrend=p->attr;
- p->beg=str;
- p->cur=str;
- p->end=str+len;
-
- while ( p->cur < p->end )
- {
- MY_XML_ATTR a;
- if (p->cur[0] == '<')
- {
- int lex;
- int question=0;
- int exclam=0;
-
- lex=my_xml_scan(p,&a);
-
- if (MY_XML_COMMENT == lex)
- continue;
-
- if (lex == MY_XML_CDATA)
- {
- a.beg+= 9;
- a.end-= 3;
- my_xml_value(p, a.beg, (size_t) (a.end-a.beg));
- continue;
- }
-
- lex=my_xml_scan(p,&a);
-
- if (MY_XML_SLASH == lex)
- {
- if (MY_XML_IDENT != (lex=my_xml_scan(p,&a)))
- {
- sprintf(p->errstr,"%s unexpected (ident wanted)",lex2str(lex));
- return MY_XML_ERROR;
- }
- if (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg)))
- return MY_XML_ERROR;
- lex=my_xml_scan(p,&a);
- goto gt;
- }
-
- if (MY_XML_EXCLAM == lex)
- {
- lex=my_xml_scan(p,&a);
- exclam=1;
- }
- else if (MY_XML_QUESTION == lex)
- {
- lex=my_xml_scan(p,&a);
- question=1;
- }
-
- if (MY_XML_IDENT == lex)
- {
- p->current_node_type= MY_XML_NODE_TAG;
- if (MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg)))
- return MY_XML_ERROR;
- }
- else
- {
- sprintf(p->errstr,"%s unexpected (ident or '/' wanted)",
- lex2str(lex));
- return MY_XML_ERROR;
- }
-
- while ((MY_XML_IDENT == (lex=my_xml_scan(p,&a))) ||
- ((MY_XML_STRING == lex && exclam)))
- {
- MY_XML_ATTR b;
- if (MY_XML_EQ == (lex=my_xml_scan(p,&b)))
- {
- lex=my_xml_scan(p,&b);
- if ( (lex == MY_XML_IDENT) || (lex == MY_XML_STRING) )
- {
- p->current_node_type= MY_XML_NODE_ATTR;
- if ((MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg))) ||
- (MY_XML_OK != my_xml_value(p,b.beg,(size_t) (b.end-b.beg))) ||
- (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg))))
- return MY_XML_ERROR;
- }
- else
- {
- sprintf(p->errstr,"%s unexpected (ident or string wanted)",
- lex2str(lex));
- return MY_XML_ERROR;
- }
- }
- else if (MY_XML_IDENT == lex)
- {
- p->current_node_type= MY_XML_NODE_ATTR;
- if ((MY_XML_OK != my_xml_enter(p,a.beg,(size_t) (a.end-a.beg))) ||
- (MY_XML_OK != my_xml_leave(p,a.beg,(size_t) (a.end-a.beg))))
- return MY_XML_ERROR;
- }
- else if ((MY_XML_STRING == lex) && exclam)
- {
- /*
- We are in <!DOCTYPE>, e.g.
- <!DOCTYPE name SYSTEM "SystemLiteral">
- <!DOCTYPE name PUBLIC "PublidLiteral" "SystemLiteral">
- Just skip "SystemLiteral" and "PublicidLiteral"
- */
- }
- else
- break;
- }
-
- if (lex == MY_XML_SLASH)
- {
- if (MY_XML_OK != my_xml_leave(p,NULL,0))
- return MY_XML_ERROR;
- lex=my_xml_scan(p,&a);
- }
-
-gt:
- if (question)
- {
- if (lex != MY_XML_QUESTION)
- {
- sprintf(p->errstr,"%s unexpected ('?' wanted)",lex2str(lex));
- return MY_XML_ERROR;
- }
- if (MY_XML_OK != my_xml_leave(p,NULL,0))
- return MY_XML_ERROR;
- lex=my_xml_scan(p,&a);
- }
-
- if (exclam)
- {
- if (MY_XML_OK != my_xml_leave(p,NULL,0))
- return MY_XML_ERROR;
- }
-
- if (lex != MY_XML_GT)
- {
- sprintf(p->errstr,"%s unexpected ('>' wanted)",lex2str(lex));
- return MY_XML_ERROR;
- }
- }
- else
- {
- a.beg=p->cur;
- for ( ; (p->cur < p->end) && (p->cur[0] != '<') ; p->cur++);
- a.end=p->cur;
-
- if (!(p->flags & MY_XML_FLAG_SKIP_TEXT_NORMALIZATION))
- my_xml_norm_text(&a);
- if (a.beg != a.end)
- {
- my_xml_value(p,a.beg,(size_t) (a.end-a.beg));
- }
- }
- }
-
- if (p->attr[0])
- {
- sprintf(p->errstr,"unexpected END-OF-INPUT");
- return MY_XML_ERROR;
- }
- return MY_XML_OK;
-}
-
-
-void my_xml_parser_create(MY_XML_PARSER *p)
-{
- bzero((void*)p,sizeof(p[0]));
-}
-
-
-void my_xml_parser_free(MY_XML_PARSER *p __attribute__((unused)))
-{
-}
-
-
-void my_xml_set_value_handler(MY_XML_PARSER *p,
- int (*action)(MY_XML_PARSER *p, const char *s,
- size_t l))
-{
- p->value=action;
-}
-
-void my_xml_set_enter_handler(MY_XML_PARSER *p,
- int (*action)(MY_XML_PARSER *p, const char *s,
- size_t l))
-{
- p->enter=action;
-}
-
-
-void my_xml_set_leave_handler(MY_XML_PARSER *p,
- int (*action)(MY_XML_PARSER *p, const char *s,
- size_t l))
-{
- p->leave_xml=action;
-}
-
-
-void my_xml_set_user_data(MY_XML_PARSER *p, void *user_data)
-{
- p->user_data=user_data;
-}
-
-
-const char *my_xml_error_string(MY_XML_PARSER *p)
-{
- return p->errstr;
-}
-
-
-size_t my_xml_error_pos(MY_XML_PARSER *p)
-{
- const char *beg=p->beg;
- const char *s;
- for ( s=p->beg ; s<p->cur; s++)
- {
- if (s[0] == '\n')
- beg=s;
- }
- return (size_t) (p->cur-beg);
-}
-
-uint my_xml_error_lineno(MY_XML_PARSER *p)
-{
- uint res=0;
- const char *s;
- for (s=p->beg ; s<p->cur; s++)
- {
- if (s[0] == '\n')
- res++;
- }
- return res;
-}
diff --git a/dep/mysqllite/vio/vio.c b/dep/mysqllite/vio/vio.c
deleted file mode 100644
index 48f103c33e8..00000000000
--- a/dep/mysqllite/vio/vio.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Note that we can't have assertion on file descriptors; The reason for
- this is that during mysql shutdown, another thread can close a file
- we are working on. In this case we should just return read errors from
- the file descriptior.
-*/
-
-#include "vio_priv.h"
-
-#if defined(__WIN__) || defined(HAVE_SMEM)
-
-/**
- Stub poll_read method that defaults to indicate that there
- is data to read.
-
- Used for named pipe and shared memory VIO types.
-
- @param vio Unused.
- @param timeout Unused.
-
- @retval FALSE There is data to read.
-*/
-
-static my_bool no_poll_read(Vio *vio __attribute__((unused)),
- uint timeout __attribute__((unused)))
-{
- return FALSE;
-}
-
-#endif
-
-static my_bool has_no_data(Vio *vio __attribute__((unused)))
-{
- return FALSE;
-}
-
-/*
- * Helper to fill most of the Vio* with defaults.
- */
-
-static void vio_init(Vio* vio, enum enum_vio_type type,
- my_socket sd, HANDLE hPipe, uint flags)
-{
- DBUG_ENTER("vio_init");
- DBUG_PRINT("enter", ("type: %d sd: %d flags: %d", type, sd, flags));
-
-#ifndef HAVE_VIO_READ_BUFF
- flags&= ~VIO_BUFFERED_READ;
-#endif
- bzero((char*) vio, sizeof(*vio));
- vio->type = type;
- vio->sd = sd;
- vio->hPipe = hPipe;
- vio->localhost= flags & VIO_LOCALHOST;
- if ((flags & VIO_BUFFERED_READ) &&
- !(vio->read_buffer= (char*)my_malloc(VIO_READ_BUFFER_SIZE, MYF(MY_WME))))
- flags&= ~VIO_BUFFERED_READ;
-#ifdef _WIN32
- if (type == VIO_TYPE_NAMEDPIPE)
- {
- vio->viodelete =vio_delete;
- vio->vioerrno =vio_errno;
- vio->read =vio_read_pipe;
- vio->write =vio_write_pipe;
- vio->fastsend =vio_fastsend;
- vio->viokeepalive =vio_keepalive;
- vio->should_retry =vio_should_retry;
- vio->was_interrupted=vio_was_interrupted;
- vio->vioclose =vio_close_pipe;
- vio->peer_addr =vio_peer_addr;
- vio->vioblocking =vio_blocking;
- vio->is_blocking =vio_is_blocking;
-
- vio->poll_read =no_poll_read;
- vio->is_connected =vio_is_connected_pipe;
- vio->has_data =has_no_data;
-
- vio->timeout=vio_win32_timeout;
- /* Set default timeout */
- vio->read_timeout_ms= INFINITE;
- vio->write_timeout_ms= INFINITE;
- vio->pipe_overlapped.hEvent= CreateEvent(NULL, TRUE, FALSE, NULL);
- DBUG_VOID_RETURN;
- }
-#endif
-#ifdef HAVE_SMEM
- if (type == VIO_TYPE_SHARED_MEMORY)
- {
- vio->viodelete =vio_delete;
- vio->vioerrno =vio_errno;
- vio->read =vio_read_shared_memory;
- vio->write =vio_write_shared_memory;
- vio->fastsend =vio_fastsend;
- vio->viokeepalive =vio_keepalive;
- vio->should_retry =vio_should_retry;
- vio->was_interrupted=vio_was_interrupted;
- vio->vioclose =vio_close_shared_memory;
- vio->peer_addr =vio_peer_addr;
- vio->vioblocking =vio_blocking;
- vio->is_blocking =vio_is_blocking;
-
- vio->poll_read =no_poll_read;
- vio->is_connected =vio_is_connected_shared_memory;
- vio->has_data =has_no_data;
-
- /* Currently, shared memory is on Windows only, hence the below is ok*/
- vio->timeout= vio_win32_timeout;
- /* Set default timeout */
- vio->read_timeout_ms= INFINITE;
- vio->write_timeout_ms= INFINITE;
- DBUG_VOID_RETURN;
- }
-#endif
-#ifdef HAVE_OPENSSL
- if (type == VIO_TYPE_SSL)
- {
- vio->viodelete =vio_ssl_delete;
- vio->vioerrno =vio_errno;
- vio->read =vio_ssl_read;
- vio->write =vio_ssl_write;
- vio->fastsend =vio_fastsend;
- vio->viokeepalive =vio_keepalive;
- vio->should_retry =vio_should_retry;
- vio->was_interrupted=vio_was_interrupted;
- vio->vioclose =vio_ssl_close;
- vio->peer_addr =vio_peer_addr;
- vio->vioblocking =vio_ssl_blocking;
- vio->is_blocking =vio_is_blocking;
- vio->timeout =vio_timeout;
- vio->poll_read =vio_poll_read;
- vio->is_connected =vio_is_connected;
- vio->has_data =vio_ssl_has_data;
- DBUG_VOID_RETURN;
- }
-#endif /* HAVE_OPENSSL */
- vio->viodelete =vio_delete;
- vio->vioerrno =vio_errno;
- vio->read= (flags & VIO_BUFFERED_READ) ? vio_read_buff : vio_read;
- vio->write =vio_write;
- vio->fastsend =vio_fastsend;
- vio->viokeepalive =vio_keepalive;
- vio->should_retry =vio_should_retry;
- vio->was_interrupted =vio_was_interrupted;
- vio->vioclose =vio_close;
- vio->peer_addr =vio_peer_addr;
- vio->vioblocking =vio_blocking;
- vio->is_blocking =vio_is_blocking;
- vio->timeout =vio_timeout;
- vio->poll_read =vio_poll_read;
- vio->is_connected =vio_is_connected;
- vio->has_data= (flags & VIO_BUFFERED_READ) ?
- vio_buff_has_data : has_no_data;
- DBUG_VOID_RETURN;
-}
-
-
-/* Reset initialized VIO to use with another transport type */
-
-void vio_reset(Vio* vio, enum enum_vio_type type,
- my_socket sd, HANDLE hPipe, uint flags)
-{
- my_free(vio->read_buffer);
- vio_init(vio, type, sd, hPipe, flags);
-}
-
-
-/* Open the socket or TCP/IP connection and read the fnctl() status */
-
-Vio *vio_new(my_socket sd, enum enum_vio_type type, uint flags)
-{
- Vio *vio;
- DBUG_ENTER("vio_new");
- DBUG_PRINT("enter", ("sd: %d", sd));
- if ((vio = (Vio*) my_malloc(sizeof(*vio),MYF(MY_WME))))
- {
- vio_init(vio, type, sd, 0, flags);
- sprintf(vio->desc,
- (vio->type == VIO_TYPE_SOCKET ? "socket (%d)" : "TCP/IP (%d)"),
- vio->sd);
-#if !defined(__WIN__)
-#if !defined(NO_FCNTL_NONBLOCK)
- /*
- We call fcntl() to set the flags and then immediately read them back
- to make sure that we and the system are in agreement on the state of
- things.
-
- An example of why we need to do this is FreeBSD (and apparently some
- other BSD-derived systems, like Mac OS X), where the system sometimes
- reports that the socket is set for non-blocking when it really will
- block.
- */
- fcntl(sd, F_SETFL, 0);
- vio->fcntl_mode= fcntl(sd, F_GETFL);
-#elif defined(HAVE_SYS_IOCTL_H) /* hpux */
- /* Non blocking sockets doesn't work good on HPUX 11.0 */
- (void) ioctl(sd,FIOSNBIO,0);
- vio->fcntl_mode &= ~O_NONBLOCK;
-#endif
-#else /* !defined(__WIN__) */
- {
- /* set to blocking mode by default */
- ulong arg=0, r;
- r = ioctlsocket(sd,FIONBIO,(void*) &arg);
- vio->fcntl_mode &= ~O_NONBLOCK;
- }
-#endif
- }
- DBUG_RETURN(vio);
-}
-
-
-#ifdef __WIN__
-
-Vio *vio_new_win32pipe(HANDLE hPipe)
-{
- Vio *vio;
- DBUG_ENTER("vio_new_handle");
- if ((vio = (Vio*) my_malloc(sizeof(Vio),MYF(MY_WME))))
- {
- vio_init(vio, VIO_TYPE_NAMEDPIPE, 0, hPipe, VIO_LOCALHOST);
- strmov(vio->desc, "named pipe");
- }
- DBUG_RETURN(vio);
-}
-
-#ifdef HAVE_SMEM
-Vio *vio_new_win32shared_memory(HANDLE handle_file_map, HANDLE handle_map,
- HANDLE event_server_wrote, HANDLE event_server_read,
- HANDLE event_client_wrote, HANDLE event_client_read,
- HANDLE event_conn_closed)
-{
- Vio *vio;
- DBUG_ENTER("vio_new_win32shared_memory");
- if ((vio = (Vio*) my_malloc(sizeof(Vio),MYF(MY_WME))))
- {
- vio_init(vio, VIO_TYPE_SHARED_MEMORY, 0, 0, VIO_LOCALHOST);
- vio->handle_file_map= handle_file_map;
- vio->handle_map= handle_map;
- vio->event_server_wrote= event_server_wrote;
- vio->event_server_read= event_server_read;
- vio->event_client_wrote= event_client_wrote;
- vio->event_client_read= event_client_read;
- vio->event_conn_closed= event_conn_closed;
- vio->shared_memory_remain= 0;
- vio->shared_memory_pos= handle_map;
- strmov(vio->desc, "shared memory");
- }
- DBUG_RETURN(vio);
-}
-#endif
-#endif
-
-
-void vio_delete(Vio* vio)
-{
- if (!vio)
- return; /* It must be safe to delete null pointers. */
-
- if (vio->type != VIO_CLOSED)
- vio->vioclose(vio);
- my_free(vio->read_buffer);
- my_free(vio);
-}
-
-
-/*
- Cleanup memory allocated by vio or the
- components below it when application finish
-
-*/
-void vio_end(void)
-{
-#ifdef HAVE_YASSL
- yaSSL_CleanUp();
-#endif
-}
diff --git a/dep/mysqllite/vio/vio_priv.h b/dep/mysqllite/vio/vio_priv.h
deleted file mode 100644
index 1bfb857b039..00000000000
--- a/dep/mysqllite/vio/vio_priv.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef VIO_PRIV_INCLUDED
-#define VIO_PRIV_INCLUDED
-
-/* Copyright (C) 2003 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/* Structures and functions private to the vio package */
-
-#define DONT_MAP_VIO
-#include <my_global.h>
-#include <mysql_com.h>
-#include <my_sys.h>
-#include <m_string.h>
-#include <violite.h>
-
-#ifndef __WIN__
-#include <sys/socket.h>
-#include <netdb.h>
-#endif
-
-#ifdef _WIN32
-void vio_win32_timeout(Vio *vio, uint which, uint timeout);
-#endif
-
-#ifdef __WIN__
-size_t vio_read_pipe(Vio *vio, uchar * buf, size_t size);
-size_t vio_write_pipe(Vio *vio, const uchar * buf, size_t size);
-my_bool vio_is_connected_pipe(Vio *vio);
-int vio_close_pipe(Vio * vio);
-#endif
-
-#ifdef HAVE_SMEM
-size_t vio_read_shared_memory(Vio *vio, uchar * buf, size_t size);
-size_t vio_write_shared_memory(Vio *vio, const uchar * buf, size_t size);
-my_bool vio_is_connected_shared_memory(Vio *vio);
-int vio_close_shared_memory(Vio * vio);
-#endif
-
-void vio_timeout(Vio *vio,uint which, uint timeout);
-my_bool vio_buff_has_data(Vio *vio);
-
-#ifdef HAVE_OPENSSL
-#include "my_net.h" /* needed because of struct in_addr */
-
-size_t vio_ssl_read(Vio *vio,uchar* buf, size_t size);
-size_t vio_ssl_write(Vio *vio,const uchar* buf, size_t size);
-
-/* When the workday is over... */
-int vio_ssl_close(Vio *vio);
-void vio_ssl_delete(Vio *vio);
-
-int vio_ssl_blocking(Vio *vio, my_bool set_blocking_mode, my_bool *old_mode);
-
-my_bool vio_ssl_has_data(Vio *vio);
-
-#endif /* HAVE_OPENSSL */
-#endif /* VIO_PRIV_INCLUDED */
diff --git a/dep/mysqllite/vio/viosocket.c b/dep/mysqllite/vio/viosocket.c
deleted file mode 100644
index 163eb279d45..00000000000
--- a/dep/mysqllite/vio/viosocket.c
+++ /dev/null
@@ -1,1100 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Note that we can't have assertion on file descriptors; The reason for
- this is that during mysql shutdown, another thread can close a file
- we are working on. In this case we should just return read errors from
- the file descriptior.
-*/
-
-#include "vio_priv.h"
-
-int vio_errno(Vio *vio __attribute__((unused)))
-{
- return socket_errno; /* On Win32 this mapped to WSAGetLastError() */
-}
-
-
-size_t vio_read(Vio * vio, uchar* buf, size_t size)
-{
- size_t r;
- DBUG_ENTER("vio_read");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
- (uint) size));
-
- /* Ensure nobody uses vio_read_buff and vio_read simultaneously */
- DBUG_ASSERT(vio->read_end == vio->read_pos);
-#ifdef __WIN__
- r = recv(vio->sd, buf, size,0);
-#else
- errno=0; /* For linux */
- r = read(vio->sd, buf, size);
-#endif /* __WIN__ */
-#ifndef DBUG_OFF
- if (r == (size_t) -1)
- {
- DBUG_PRINT("vio_error", ("Got error %d during read",errno));
- }
-#endif /* DBUG_OFF */
- DBUG_PRINT("exit", ("%ld", (long) r));
- DBUG_RETURN(r);
-}
-
-
-/*
- Buffered read: if average read size is small it may
- reduce number of syscalls.
-*/
-
-size_t vio_read_buff(Vio *vio, uchar* buf, size_t size)
-{
- size_t rc;
-#define VIO_UNBUFFERED_READ_MIN_SIZE 2048
- DBUG_ENTER("vio_read_buff");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
- (uint) size));
-
- if (vio->read_pos < vio->read_end)
- {
- rc= min((size_t) (vio->read_end - vio->read_pos), size);
- memcpy(buf, vio->read_pos, rc);
- vio->read_pos+= rc;
- /*
- Do not try to read from the socket now even if rc < size:
- vio_read can return -1 due to an error or non-blocking mode, and
- the safest way to handle it is to move to a separate branch.
- */
- }
- else if (size < VIO_UNBUFFERED_READ_MIN_SIZE)
- {
- rc= vio_read(vio, (uchar*) vio->read_buffer, VIO_READ_BUFFER_SIZE);
- if (rc != 0 && rc != (size_t) -1)
- {
- if (rc > size)
- {
- vio->read_pos= vio->read_buffer + size;
- vio->read_end= vio->read_buffer + rc;
- rc= size;
- }
- memcpy(buf, vio->read_buffer, rc);
- }
- }
- else
- rc= vio_read(vio, buf, size);
- DBUG_RETURN(rc);
-#undef VIO_UNBUFFERED_READ_MIN_SIZE
-}
-
-my_bool vio_buff_has_data(Vio *vio)
-{
- return (vio->read_pos != vio->read_end);
-}
-
-size_t vio_write(Vio * vio, const uchar* buf, size_t size)
-{
- size_t r;
- DBUG_ENTER("vio_write");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
- (uint) size));
-#ifdef __WIN__
- r = send(vio->sd, buf, size,0);
-#else
- r = write(vio->sd, buf, size);
-#endif /* __WIN__ */
-#ifndef DBUG_OFF
- if (r == (size_t) -1)
- {
- DBUG_PRINT("vio_error", ("Got error on write: %d",socket_errno));
- }
-#endif /* DBUG_OFF */
- DBUG_PRINT("exit", ("%u", (uint) r));
- DBUG_RETURN(r);
-}
-
-int vio_blocking(Vio * vio __attribute__((unused)), my_bool set_blocking_mode,
- my_bool *old_mode)
-{
- int r=0;
- DBUG_ENTER("vio_blocking");
-
- *old_mode= test(!(vio->fcntl_mode & O_NONBLOCK));
- DBUG_PRINT("enter", ("set_blocking_mode: %d old_mode: %d",
- (int) set_blocking_mode, (int) *old_mode));
-
-#if !defined(__WIN__)
-#if !defined(NO_FCNTL_NONBLOCK)
- if (vio->sd >= 0)
- {
- int old_fcntl=vio->fcntl_mode;
- if (set_blocking_mode)
- vio->fcntl_mode &= ~O_NONBLOCK; /* clear bit */
- else
- vio->fcntl_mode |= O_NONBLOCK; /* set bit */
- if (old_fcntl != vio->fcntl_mode)
- {
- r= fcntl(vio->sd, F_SETFL, vio->fcntl_mode);
- if (r == -1)
- {
- DBUG_PRINT("info", ("fcntl failed, errno %d", errno));
- vio->fcntl_mode= old_fcntl;
- }
- }
- }
-#else
- r= set_blocking_mode ? 0 : 1;
-#endif /* !defined(NO_FCNTL_NONBLOCK) */
-#else /* !defined(__WIN__) */
- if (vio->type != VIO_TYPE_NAMEDPIPE && vio->type != VIO_TYPE_SHARED_MEMORY)
- {
- ulong arg;
- int old_fcntl=vio->fcntl_mode;
- if (set_blocking_mode)
- {
- arg = 0;
- vio->fcntl_mode &= ~O_NONBLOCK; /* clear bit */
- }
- else
- {
- arg = 1;
- vio->fcntl_mode |= O_NONBLOCK; /* set bit */
- }
- if (old_fcntl != vio->fcntl_mode)
- r = ioctlsocket(vio->sd,FIONBIO,(void*) &arg);
- }
- else
- r= test(!(vio->fcntl_mode & O_NONBLOCK)) != set_blocking_mode;
-#endif /* !defined(__WIN__) */
- DBUG_PRINT("exit", ("%d", r));
- DBUG_RETURN(r);
-}
-
-my_bool
-vio_is_blocking(Vio * vio)
-{
- my_bool r;
- DBUG_ENTER("vio_is_blocking");
- r = !(vio->fcntl_mode & O_NONBLOCK);
- DBUG_PRINT("exit", ("%d", (int) r));
- DBUG_RETURN(r);
-}
-
-
-int vio_fastsend(Vio * vio __attribute__((unused)))
-{
- int r=0;
- DBUG_ENTER("vio_fastsend");
-
-#if defined(IPTOS_THROUGHPUT)
- {
- int tos = IPTOS_THROUGHPUT;
- r= setsockopt(vio->sd, IPPROTO_IP, IP_TOS, (void *) &tos, sizeof(tos));
- }
-#endif /* IPTOS_THROUGHPUT */
- if (!r)
- {
-#ifdef __WIN__
- BOOL nodelay= 1;
-#else
- int nodelay = 1;
-#endif
-
- r= setsockopt(vio->sd, IPPROTO_TCP, TCP_NODELAY,
- IF_WIN((const char*), (void*)) &nodelay,
- sizeof(nodelay));
-
- }
- if (r)
- {
- DBUG_PRINT("warning", ("Couldn't set socket option for fast send"));
- r= -1;
- }
- DBUG_PRINT("exit", ("%d", r));
- DBUG_RETURN(r);
-}
-
-int vio_keepalive(Vio* vio, my_bool set_keep_alive)
-{
- int r=0;
- uint opt = 0;
- DBUG_ENTER("vio_keepalive");
- DBUG_PRINT("enter", ("sd: %d set_keep_alive: %d", vio->sd, (int)
- set_keep_alive));
- if (vio->type != VIO_TYPE_NAMEDPIPE)
- {
- if (set_keep_alive)
- opt = 1;
- r = setsockopt(vio->sd, SOL_SOCKET, SO_KEEPALIVE, (char *) &opt,
- sizeof(opt));
- }
- DBUG_RETURN(r);
-}
-
-
-my_bool
-vio_should_retry(Vio * vio)
-{
- int en = socket_errno;
- /*
- man 2 read write
- EAGAIN or EWOULDBLOCK when a socket is a non-blocking mode means
- that the read/write would block.
- man 7 socket
- EAGAIN or EWOULDBLOCK when a socket is in a blocking mode means
- that the corresponding receiving or sending timeout was reached.
- */
- return en == SOCKET_EINTR ||
- (!vio_is_blocking(vio) &&
- (en == SOCKET_EAGAIN || en == SOCKET_EWOULDBLOCK));
-}
-
-
-my_bool
-vio_was_interrupted(Vio *vio __attribute__((unused)))
-{
- int en= socket_errno;
- return (en == SOCKET_EAGAIN || en == SOCKET_EINTR ||
- en == SOCKET_EWOULDBLOCK || en == SOCKET_ETIMEDOUT);
-}
-
-
-int vio_close(Vio * vio)
-{
- int r=0;
- DBUG_ENTER("vio_close");
-
- if (vio->type != VIO_CLOSED)
- {
- DBUG_ASSERT(vio->type == VIO_TYPE_TCPIP ||
- vio->type == VIO_TYPE_SOCKET ||
- vio->type == VIO_TYPE_SSL);
-
- DBUG_ASSERT(vio->sd >= 0);
- if (shutdown(vio->sd, SHUT_RDWR))
- r= -1;
- if (closesocket(vio->sd))
- r= -1;
- }
- if (r)
- {
- DBUG_PRINT("vio_error", ("close() failed, error: %d",socket_errno));
- /* FIXME: error handling (not critical for MySQL) */
- }
- vio->type= VIO_CLOSED;
- vio->sd= -1;
- DBUG_RETURN(r);
-}
-
-
-const char *vio_description(Vio * vio)
-{
- return vio->desc;
-}
-
-enum enum_vio_type vio_type(Vio* vio)
-{
- return vio->type;
-}
-
-my_socket vio_fd(Vio* vio)
-{
- return vio->sd;
-}
-
-/**
- Convert a sock-address (AF_INET or AF_INET6) into the "normalized" form,
- which is the IPv4 form for IPv4-mapped or IPv4-compatible IPv6 addresses.
-
- @note Background: when IPv4 and IPv6 are used simultaneously, IPv4
- addresses may be written in a form of IPv4-mapped or IPv4-compatible IPv6
- addresses. That means, one address (a.b.c.d) can be written in three forms:
- - IPv4: a.b.c.d;
- - IPv4-compatible IPv6: ::a.b.c.d;
- - IPv4-mapped IPv4: ::ffff:a.b.c.d;
-
- Having three forms of one address makes it a little difficult to compare
- addresses with each other (the IPv4-compatible IPv6-address of foo.bar
- will be different from the IPv4-mapped IPv6-address of foo.bar).
-
- @note This function can be made public when it's needed.
-
- @param src [in] source IP address (AF_INET or AF_INET6).
- @param src_length [in] length of the src.
- @param dst [out] a buffer to store normalized IP address
- (sockaddr_storage).
- @param dst_length [out] actual length of the normalized IP address.
-*/
-static void vio_get_normalized_ip(const struct sockaddr *src,
- int src_length,
- struct sockaddr *dst,
- int *dst_length)
-{
- switch (src->sa_family) {
- case AF_INET:
- memcpy(dst, src, src_length);
- *dst_length= src_length;
- break;
-
-#ifdef HAVE_IPV6
- case AF_INET6:
- {
- const struct sockaddr_in6 *src_addr6= (const struct sockaddr_in6 *) src;
- const struct in6_addr *src_ip6= &(src_addr6->sin6_addr);
- const uint32 *src_ip6_int32= (uint32 *) src_ip6->s6_addr;
-
- if (IN6_IS_ADDR_V4MAPPED(src_ip6) || IN6_IS_ADDR_V4COMPAT(src_ip6))
- {
- struct sockaddr_in *dst_ip4= (struct sockaddr_in *) dst;
-
- /*
- This is an IPv4-mapped or IPv4-compatible IPv6 address. It should
- be converted to the IPv4 form.
- */
-
- *dst_length= sizeof (struct sockaddr_in);
-
- memset(dst_ip4, 0, *dst_length);
- dst_ip4->sin_family= AF_INET;
- dst_ip4->sin_port= src_addr6->sin6_port;
-
- /*
- In an IPv4 mapped or compatible address, the last 32 bits represent
- the IPv4 address. The byte orders for IPv6 and IPv4 addresses are
- the same, so a simple copy is possible.
- */
- dst_ip4->sin_addr.s_addr= src_ip6_int32[3];
- }
- else
- {
- /* This is a "native" IPv6 address. */
-
- memcpy(dst, src, src_length);
- *dst_length= src_length;
- }
-
- break;
- }
-#endif /* HAVE_IPV6 */
- }
-}
-
-
-/**
- Return the normalized IP address string for a sock-address.
-
- The idea is to return an IPv4-address for an IPv4-mapped and
- IPv4-compatible IPv6 address.
-
- The function writes the normalized IP address to the given buffer.
- The buffer should have enough space, otherwise error flag is returned.
- The system constant INET6_ADDRSTRLEN can be used to reserve buffers of
- the right size.
-
- @param addr [in] sockaddr object (AF_INET or AF_INET6).
- @param addr_length [in] length of the addr.
- @param ip_string [out] buffer to write normalized IP address.
- @param ip_string_size [in] size of the ip_string.
-
- @return Error status.
- @retval TRUE in case of error (the ip_string buffer is not enough).
- @retval FALSE on success.
-*/
-
-my_bool vio_get_normalized_ip_string(const struct sockaddr *addr,
- int addr_length,
- char *ip_string,
- size_t ip_string_size)
-{
- struct sockaddr_storage norm_addr_storage;
- struct sockaddr *norm_addr= (struct sockaddr *) &norm_addr_storage;
- int norm_addr_length;
- int err_code;
-
- vio_get_normalized_ip(addr, addr_length, norm_addr, &norm_addr_length);
-
- err_code= vio_getnameinfo(norm_addr, ip_string, ip_string_size, NULL, 0,
- NI_NUMERICHOST);
-
- if (!err_code)
- return FALSE;
-
- DBUG_PRINT("error", ("getnameinfo() failed with %d (%s).",
- (int) err_code,
- (const char *) gai_strerror(err_code)));
- return TRUE;
-}
-
-
-/**
- Return IP address and port of a VIO client socket.
-
- The function returns an IPv4 address if IPv6 support is disabled.
-
- The function returns an IPv4 address if the client socket is associated
- with an IPv4-compatible or IPv4-mapped IPv6 address. Otherwise, the native
- IPv6 address is returned.
-*/
-
-my_bool vio_peer_addr(Vio *vio, char *ip_buffer, uint16 *port,
- size_t ip_buffer_size)
-{
- DBUG_ENTER("vio_peer_addr");
- DBUG_PRINT("enter", ("Client socked fd: %d", (int) vio->sd));
-
- if (vio->localhost)
- {
- /*
- Initialize vio->remote and vio->addLen. Set vio->remote to IPv4 loopback
- address.
- */
- struct in_addr *ip4= &((struct sockaddr_in *) &(vio->remote))->sin_addr;
-
- vio->remote.ss_family= AF_INET;
- vio->addrLen= sizeof (struct sockaddr_in);
-
- ip4->s_addr= htonl(INADDR_LOOPBACK);
-
- /* Initialize ip_buffer and port. */
-
- strmov(ip_buffer, "127.0.0.1");
- *port= 0;
- }
- else
- {
- int err_code;
- char port_buffer[NI_MAXSERV];
-
- struct sockaddr_storage addr_storage;
- struct sockaddr *addr= (struct sockaddr *) &addr_storage;
- size_socket addr_length= sizeof (addr_storage);
-
- /* Get sockaddr by socked fd. */
-
- err_code= getpeername(vio->sd, addr, &addr_length);
-
- if (err_code)
- {
- DBUG_PRINT("exit", ("getpeername() gave error: %d", socket_errno));
- DBUG_RETURN(TRUE);
- }
-
- /* Normalize IP address. */
-
- vio_get_normalized_ip(addr, addr_length,
- (struct sockaddr *) &vio->remote, &vio->addrLen);
-
- /* Get IP address & port number. */
-
- err_code= vio_getnameinfo((struct sockaddr *) &vio->remote,
- ip_buffer, ip_buffer_size,
- port_buffer, NI_MAXSERV,
- NI_NUMERICHOST | NI_NUMERICSERV);
-
- if (err_code)
- {
- DBUG_PRINT("exit", ("getnameinfo() gave error: %s",
- gai_strerror(err_code)));
- DBUG_RETURN(TRUE);
- }
-
- *port= (uint16) strtol(port_buffer, NULL, 10);
- }
-
- DBUG_PRINT("exit", ("Client IP address: %s; port: %d",
- (const char *) ip_buffer,
- (int) *port));
- DBUG_RETURN(FALSE);
-}
-
-
-/**
- Indicate whether there is data to read on a given socket.
-
- @note An exceptional condition event and/or errors are
- interpreted as if there is data to read.
-
- @param sd A connected socket.
- @param timeout Maximum time in seconds to poll.
-
- @retval FALSE There is data to read.
- @retval TRUE There is no data to read.
-*/
-
-static my_bool socket_poll_read(my_socket sd, uint timeout)
-{
-#ifdef __WIN__
- int res;
- my_socket fd= sd;
- fd_set readfds, errorfds;
- struct timeval tm;
- DBUG_ENTER("socket_poll_read");
- tm.tv_sec= timeout;
- tm.tv_usec= 0;
- FD_ZERO(&readfds);
- FD_ZERO(&errorfds);
- FD_SET(fd, &readfds);
- FD_SET(fd, &errorfds);
- /* The first argument is ignored on Windows, so a conversion to int is OK */
- if ((res= select((int) fd, &readfds, NULL, &errorfds, &tm) <= 0))
- {
- DBUG_RETURN(res < 0 ? 0 : 1);
- }
- res= FD_ISSET(fd, &readfds) || FD_ISSET(fd, &errorfds);
- DBUG_RETURN(!res);
-#elif defined(HAVE_POLL)
- struct pollfd fds;
- int res;
- DBUG_ENTER("socket_poll_read");
- fds.fd=sd;
- fds.events=POLLIN;
- fds.revents=0;
- if ((res=poll(&fds,1,(int) timeout*1000)) <= 0)
- {
- DBUG_RETURN(res < 0 ? 0 : 1); /* Don't return 1 on errors */
- }
- DBUG_RETURN(fds.revents & (POLLIN | POLLERR | POLLHUP) ? 0 : 1);
-#else
- return 0;
-#endif
-}
-
-
-/**
- Retrieve the amount of data that can be read from a socket.
-
- @param vio A VIO object.
- @param bytes[out] The amount of bytes available.
-
- @retval FALSE Success.
- @retval TRUE Failure.
-*/
-
-static my_bool socket_peek_read(Vio *vio, uint *bytes)
-{
-#ifdef __WIN__
- int len;
- if (ioctlsocket(vio->sd, FIONREAD, &len))
- return TRUE;
- *bytes= len;
- return FALSE;
-#elif FIONREAD_IN_SYS_IOCTL
- int len;
- if (ioctl(vio->sd, FIONREAD, &len) < 0)
- return TRUE;
- *bytes= len;
- return FALSE;
-#else
- char buf[1024];
- ssize_t res= recv(vio->sd, &buf, sizeof(buf), MSG_PEEK);
- if (res < 0)
- return TRUE;
- *bytes= res;
- return FALSE;
-#endif
-}
-
-
-/**
- Indicate whether there is data to read on a given socket.
-
- @remark Errors are interpreted as if there is data to read.
-
- @param sd A connected socket.
- @param timeout Maximum time in seconds to wait.
-
- @retval FALSE There is data (or EOF) to read. Also FALSE if error.
- @retval TRUE There is _NO_ data to read or timed out.
-*/
-
-my_bool vio_poll_read(Vio *vio, uint timeout)
-{
- my_socket sd= vio->sd;
- DBUG_ENTER("vio_poll_read");
-#ifdef HAVE_OPENSSL
- if (vio->type == VIO_TYPE_SSL)
- sd= SSL_get_fd((SSL*) vio->ssl_arg);
-#endif
- DBUG_RETURN(socket_poll_read(sd, timeout));
-}
-
-
-/**
- Determine if the endpoint of a connection is still available.
-
- @remark The socket is assumed to be disconnected if an EOF
- condition is encountered.
-
- @param vio The VIO object.
-
- @retval TRUE EOF condition not found.
- @retval FALSE EOF condition is signaled.
-*/
-
-my_bool vio_is_connected(Vio *vio)
-{
- uint bytes= 0;
- DBUG_ENTER("vio_is_connected");
-
- /* In the presence of errors the socket is assumed to be connected. */
-
- /*
- The first step of detecting a EOF condition is veryfing
- whether there is data to read. Data in this case would
- be the EOF.
- */
- if (vio_poll_read(vio, 0))
- DBUG_RETURN(TRUE);
-
- /*
- The second step is read() or recv() from the socket returning
- 0 (EOF). Unfortunelly, it's not possible to call read directly
- as we could inadvertently read meaningful connection data.
- Simulate a read by retrieving the number of bytes available to
- read -- 0 meaning EOF.
- */
- if (socket_peek_read(vio, &bytes))
- DBUG_RETURN(TRUE);
-
-#ifdef HAVE_OPENSSL
- /* There might be buffered data at the SSL layer. */
- if (!bytes && vio->type == VIO_TYPE_SSL)
- bytes= SSL_pending((SSL*) vio->ssl_arg);
-#endif
-
- DBUG_RETURN(bytes ? TRUE : FALSE);
-}
-
-
-void vio_timeout(Vio *vio, uint which, uint timeout)
-{
-#if defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO)
- int r;
- DBUG_ENTER("vio_timeout");
-
- {
-#ifdef __WIN__
- /* Windows expects time in milliseconds as int */
- int wait_timeout= (int) timeout * 1000;
-#else
- /* POSIX specifies time as struct timeval. */
- struct timeval wait_timeout;
- wait_timeout.tv_sec= timeout;
- wait_timeout.tv_usec= 0;
-#endif
-
- r= setsockopt(vio->sd, SOL_SOCKET, which ? SO_SNDTIMEO : SO_RCVTIMEO,
- IF_WIN((const char*), (const void*))&wait_timeout,
- sizeof(wait_timeout));
-
- }
-
- if (r != 0)
- DBUG_PRINT("error", ("setsockopt failed: %d, errno: %d", r, socket_errno));
-
- DBUG_VOID_RETURN;
-#else
-/*
- Platforms not suporting setting of socket timeout should either use
- thr_alarm or just run without read/write timeout(s)
-*/
-#endif
-}
-
-
-#ifdef __WIN__
-
-/*
- Finish pending IO on pipe. Honor wait timeout
-*/
-static size_t pipe_complete_io(Vio* vio, char* buf, size_t size, DWORD timeout_ms)
-{
- DWORD length;
- DWORD ret;
-
- DBUG_ENTER("pipe_complete_io");
-
- ret= WaitForSingleObject(vio->pipe_overlapped.hEvent, timeout_ms);
- /*
- WaitForSingleObjects will normally return WAIT_OBJECT_O (success, IO completed)
- or WAIT_TIMEOUT.
- */
- if(ret != WAIT_OBJECT_0)
- {
- CancelIo(vio->hPipe);
- DBUG_PRINT("error",("WaitForSingleObject() returned %d", ret));
- DBUG_RETURN((size_t)-1);
- }
-
- if (!GetOverlappedResult(vio->hPipe,&(vio->pipe_overlapped),&length, FALSE))
- {
- DBUG_PRINT("error",("GetOverlappedResult() returned last error %d",
- GetLastError()));
- DBUG_RETURN((size_t)-1);
- }
-
- DBUG_RETURN(length);
-}
-
-
-size_t vio_read_pipe(Vio * vio, uchar *buf, size_t size)
-{
- DWORD bytes_read;
- size_t retval;
- DBUG_ENTER("vio_read_pipe");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
- (uint) size));
-
- if (ReadFile(vio->hPipe, buf, (DWORD)size, &bytes_read,
- &(vio->pipe_overlapped)))
- {
- retval= bytes_read;
- }
- else
- {
- if (GetLastError() != ERROR_IO_PENDING)
- {
- DBUG_PRINT("error",("ReadFile() returned last error %d",
- GetLastError()));
- DBUG_RETURN((size_t)-1);
- }
- retval= pipe_complete_io(vio, buf, size,vio->read_timeout_ms);
- }
-
- DBUG_PRINT("exit", ("%lld", (longlong)retval));
- DBUG_RETURN(retval);
-}
-
-
-size_t vio_write_pipe(Vio * vio, const uchar* buf, size_t size)
-{
- DWORD bytes_written;
- size_t retval;
- DBUG_ENTER("vio_write_pipe");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
- (uint) size));
-
- if (WriteFile(vio->hPipe, buf, (DWORD)size, &bytes_written,
- &(vio->pipe_overlapped)))
- {
- retval= bytes_written;
- }
- else
- {
- if (GetLastError() != ERROR_IO_PENDING)
- {
- DBUG_PRINT("vio_error",("WriteFile() returned last error %d",
- GetLastError()));
- DBUG_RETURN((size_t)-1);
- }
- retval= pipe_complete_io(vio, (char *)buf, size, vio->write_timeout_ms);
- }
-
- DBUG_PRINT("exit", ("%lld", (longlong)retval));
- DBUG_RETURN(retval);
-}
-
-
-my_bool vio_is_connected_pipe(Vio *vio)
-{
- if (PeekNamedPipe(vio->hPipe, NULL, 0, NULL, NULL, NULL))
- return TRUE;
- else
- return (GetLastError() != ERROR_BROKEN_PIPE);
-}
-
-
-int vio_close_pipe(Vio * vio)
-{
- int r;
- DBUG_ENTER("vio_close_pipe");
-
- CancelIo(vio->hPipe);
- CloseHandle(vio->pipe_overlapped.hEvent);
- DisconnectNamedPipe(vio->hPipe);
- r= CloseHandle(vio->hPipe);
- if (r)
- {
- DBUG_PRINT("vio_error", ("close() failed, error: %d",GetLastError()));
- /* FIXME: error handling (not critical for MySQL) */
- }
- vio->type= VIO_CLOSED;
- vio->sd= -1;
- DBUG_RETURN(r);
-}
-
-
-void vio_win32_timeout(Vio *vio, uint which , uint timeout_sec)
-{
- DWORD timeout_ms;
- /*
- Windows is measuring timeouts in milliseconds. Check for possible int
- overflow.
- */
- if (timeout_sec > UINT_MAX/1000)
- timeout_ms= INFINITE;
- else
- timeout_ms= timeout_sec * 1000;
-
- /* which == 1 means "write", which == 0 means "read".*/
- if(which)
- vio->write_timeout_ms= timeout_ms;
- else
- vio->read_timeout_ms= timeout_ms;
-}
-
-
-#ifdef HAVE_SMEM
-
-size_t vio_read_shared_memory(Vio * vio, uchar* buf, size_t size)
-{
- size_t length;
- size_t remain_local;
- char *current_postion;
- HANDLE events[2];
-
- DBUG_ENTER("vio_read_shared_memory");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
-
- remain_local = size;
- current_postion=buf;
-
- events[0]= vio->event_server_wrote;
- events[1]= vio->event_conn_closed;
-
- do
- {
- if (vio->shared_memory_remain == 0)
- {
- /*
- WaitForMultipleObjects can return next values:
- WAIT_OBJECT_0+0 - event from vio->event_server_wrote
- WAIT_OBJECT_0+1 - event from vio->event_conn_closed. We can't read
- anything
- WAIT_ABANDONED_0 and WAIT_TIMEOUT - fail. We can't read anything
- */
- if (WaitForMultipleObjects(array_elements(events), events, FALSE,
- vio->read_timeout_ms) != WAIT_OBJECT_0)
- {
- DBUG_RETURN(-1);
- };
-
- vio->shared_memory_pos = vio->handle_map;
- vio->shared_memory_remain = uint4korr((ulong*)vio->shared_memory_pos);
- vio->shared_memory_pos+=4;
- }
-
- length = size;
-
- if (vio->shared_memory_remain < length)
- length = vio->shared_memory_remain;
- if (length > remain_local)
- length = remain_local;
-
- memcpy(current_postion,vio->shared_memory_pos,length);
-
- vio->shared_memory_remain-=length;
- vio->shared_memory_pos+=length;
- current_postion+=length;
- remain_local-=length;
-
- if (!vio->shared_memory_remain)
- {
- if (!SetEvent(vio->event_client_read))
- DBUG_RETURN(-1);
- }
- } while (remain_local);
- length = size;
-
- DBUG_PRINT("exit", ("%lu", (ulong) length));
- DBUG_RETURN(length);
-}
-
-
-size_t vio_write_shared_memory(Vio * vio, const uchar* buf, size_t size)
-{
- size_t length, remain, sz;
- HANDLE pos;
- const uchar *current_postion;
- HANDLE events[2];
-
- DBUG_ENTER("vio_write_shared_memory");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
-
- remain = size;
- current_postion = buf;
-
- events[0]= vio->event_server_read;
- events[1]= vio->event_conn_closed;
-
- while (remain != 0)
- {
- if (WaitForMultipleObjects(array_elements(events), events, FALSE,
- vio->write_timeout_ms) != WAIT_OBJECT_0)
- {
- DBUG_RETURN((size_t) -1);
- }
-
- sz= (remain > shared_memory_buffer_length ? shared_memory_buffer_length :
- remain);
-
- int4store(vio->handle_map,sz);
- pos = vio->handle_map + 4;
- memcpy(pos,current_postion,sz);
- remain-=sz;
- current_postion+=sz;
- if (!SetEvent(vio->event_client_wrote))
- DBUG_RETURN((size_t) -1);
- }
- length = size;
-
- DBUG_PRINT("exit", ("%lu", (ulong) length));
- DBUG_RETURN(length);
-}
-
-
-my_bool vio_is_connected_shared_memory(Vio *vio)
-{
- return (WaitForSingleObject(vio->event_conn_closed, 0) != WAIT_OBJECT_0);
-}
-
-
-/**
- Close shared memory and DBUG_PRINT any errors that happen on closing.
- @return Zero if all closing functions succeed, and nonzero otherwise.
-*/
-int vio_close_shared_memory(Vio * vio)
-{
- int error_count= 0;
- DBUG_ENTER("vio_close_shared_memory");
- if (vio->type != VIO_CLOSED)
- {
- /*
- Set event_conn_closed for notification of both client and server that
- connection is closed
- */
- SetEvent(vio->event_conn_closed);
- /*
- Close all handlers. UnmapViewOfFile and CloseHandle return non-zero
- result if they are success.
- */
- if (UnmapViewOfFile(vio->handle_map) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("UnmapViewOfFile() failed"));
- }
- if (CloseHandle(vio->event_server_wrote) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->esw) failed"));
- }
- if (CloseHandle(vio->event_server_read) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->esr) failed"));
- }
- if (CloseHandle(vio->event_client_wrote) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->ecw) failed"));
- }
- if (CloseHandle(vio->event_client_read) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->ecr) failed"));
- }
- if (CloseHandle(vio->handle_file_map) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->hfm) failed"));
- }
- if (CloseHandle(vio->event_conn_closed) == 0)
- {
- error_count++;
- DBUG_PRINT("vio_error", ("CloseHandle(vio->ecc) failed"));
- }
- }
- vio->type= VIO_CLOSED;
- vio->sd= -1;
- DBUG_RETURN(error_count);
-}
-#endif /* HAVE_SMEM */
-#endif /* __WIN__ */
-
-
-/**
- Number of bytes in the read buffer.
-
- @return number of bytes in the read buffer or < 0 if error.
-*/
-
-ssize_t vio_pending(Vio *vio)
-{
-#ifdef HAVE_OPENSSL
- SSL *ssl= (SSL*) vio->ssl_arg;
-#endif
-
- if (vio->read_pos < vio->read_end)
- return vio->read_end - vio->read_pos;
-
-#ifdef HAVE_OPENSSL
- if (ssl)
- return SSL_pending(ssl);
-#endif
-
- return 0;
-}
-
-
-/**
- This is a wrapper for the system getnameinfo(), because different OS
- differ in the getnameinfo() implementation:
- - Solaris 10 requires that the 2nd argument (salen) must match the
- actual size of the struct sockaddr_storage passed to it;
- - Mac OS X has sockaddr_in::sin_len and sockaddr_in6::sin6_len and
- requires them to be filled.
-*/
-
-int vio_getnameinfo(const struct sockaddr *sa,
- char *hostname, size_t hostname_size,
- char *port, size_t port_size,
- int flags)
-{
- int sa_length= 0;
-
- switch (sa->sa_family) {
- case AF_INET:
- sa_length= sizeof (struct sockaddr_in);
-#ifdef HAVE_SOCKADDR_IN_SIN_LEN
- ((struct sockaddr_in *) sa)->sin_len= sa_length;
-#endif /* HAVE_SOCKADDR_IN_SIN_LEN */
- break;
-
-#ifdef HAVE_IPV6
- case AF_INET6:
- sa_length= sizeof (struct sockaddr_in6);
-# ifdef HAVE_SOCKADDR_IN6_SIN6_LEN
- ((struct sockaddr_in6 *) sa)->sin6_len= sa_length;
-# endif /* HAVE_SOCKADDR_IN6_SIN6_LEN */
- break;
-#endif /* HAVE_IPV6 */
- }
-
- return getnameinfo(sa, sa_length,
- hostname, hostname_size,
- port, port_size,
- flags);
-}
diff --git a/dep/mysqllite/vio/viossl.c b/dep/mysqllite/vio/viossl.c
deleted file mode 100644
index 5cb5f36f20d..00000000000
--- a/dep/mysqllite/vio/viossl.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-/*
- Note that we can't have assertion on file descriptors; The reason for
- this is that during mysql shutdown, another thread can close a file
- we are working on. In this case we should just return read errors from
- the file descriptior.
-*/
-
-#include "vio_priv.h"
-
-#ifdef HAVE_OPENSSL
-
-static void
-report_errors(SSL* ssl)
-{
- unsigned long l;
- const char *file;
- const char *data;
- int line, flags;
-#ifndef DBUG_OFF
- char buf[512];
-#endif
-
- DBUG_ENTER("report_errors");
-
- while ((l= ERR_get_error_line_data(&file,&line,&data,&flags)))
- {
- DBUG_PRINT("error", ("OpenSSL: %s:%s:%d:%s\n", ERR_error_string(l,buf),
- file,line,(flags&ERR_TXT_STRING)?data:"")) ;
- }
-
- if (ssl)
- DBUG_PRINT("error", ("error: %s",
- ERR_error_string(SSL_get_error(ssl, l), buf)));
-
- DBUG_PRINT("info", ("socket_errno: %d", socket_errno));
- DBUG_VOID_RETURN;
-}
-
-
-size_t vio_ssl_read(Vio *vio, uchar* buf, size_t size)
-{
- size_t r;
- DBUG_ENTER("vio_ssl_read");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u ssl: 0x%lx",
- vio->sd, (long) buf, (uint) size, (long) vio->ssl_arg));
-
- r= SSL_read((SSL*) vio->ssl_arg, buf, size);
-#ifndef DBUG_OFF
- if (r == (size_t) -1)
- report_errors((SSL*) vio->ssl_arg);
-#endif
- DBUG_PRINT("exit", ("%u", (uint) r));
- DBUG_RETURN(r);
-}
-
-
-size_t vio_ssl_write(Vio *vio, const uchar* buf, size_t size)
-{
- size_t r;
- DBUG_ENTER("vio_ssl_write");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd,
- (long) buf, (uint) size));
-
- r= SSL_write((SSL*) vio->ssl_arg, buf, size);
-#ifndef DBUG_OFF
- if (r == (size_t) -1)
- report_errors((SSL*) vio->ssl_arg);
-#endif
- DBUG_PRINT("exit", ("%u", (uint) r));
- DBUG_RETURN(r);
-}
-
-
-int vio_ssl_close(Vio *vio)
-{
- int r= 0;
- SSL *ssl= (SSL*)vio->ssl_arg;
- DBUG_ENTER("vio_ssl_close");
-
- if (ssl)
- {
- /*
- THE SSL standard says that SSL sockets must send and receive a close_notify
- alert on socket shutdown to avoid truncation attacks. However, this can
- cause problems since we often hold a lock during shutdown and this IO can
- take an unbounded amount of time to complete. Since our packets are self
- describing with length, we aren't vunerable to these attacks. Therefore,
- we just shutdown by closing the socket (quiet shutdown).
- */
- SSL_set_quiet_shutdown(ssl, 1);
-
- switch ((r= SSL_shutdown(ssl))) {
- case 1:
- /* Shutdown successful */
- break;
- case 0:
- /*
- Shutdown not yet finished - since the socket is going to
- be closed there is no need to call SSL_shutdown() a second
- time to wait for the other side to respond
- */
- break;
- default: /* Shutdown failed */
- DBUG_PRINT("vio_error", ("SSL_shutdown() failed, error: %d",
- SSL_get_error(ssl, r)));
- break;
- }
- }
- DBUG_RETURN(vio_close(vio));
-}
-
-
-void vio_ssl_delete(Vio *vio)
-{
- if (!vio)
- return; /* It must be safe to delete null pointer */
-
- if (vio->type == VIO_TYPE_SSL)
- vio_ssl_close(vio); /* Still open, close connection first */
-
- if (vio->ssl_arg)
- {
- SSL_free((SSL*) vio->ssl_arg);
- vio->ssl_arg= 0;
- }
-
- vio_delete(vio);
-}
-
-
-static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout,
- int (*connect_accept_func)(SSL*))
-{
- SSL *ssl;
- my_bool unused;
- my_bool was_blocking;
-
- DBUG_ENTER("ssl_do");
- DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx",
- (long) ptr, vio->sd, (long) ptr->ssl_context));
-
- /* Set socket to blocking if not already set */
- vio_blocking(vio, 1, &was_blocking);
-
- if (!(ssl= SSL_new(ptr->ssl_context)))
- {
- DBUG_PRINT("error", ("SSL_new failure"));
- report_errors(ssl);
- vio_blocking(vio, was_blocking, &unused);
- DBUG_RETURN(1);
- }
- DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout));
- SSL_clear(ssl);
- SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout);
- SSL_set_fd(ssl, vio->sd);
-
- if (connect_accept_func(ssl) < 1)
- {
- DBUG_PRINT("error", ("SSL_connect/accept failure"));
- report_errors(ssl);
- SSL_free(ssl);
- vio_blocking(vio, was_blocking, &unused);
- DBUG_RETURN(1);
- }
-
- /*
- Connection succeeded. Install new function handlers,
- change type, set sd to the fd used when connecting
- and set pointer to the SSL structure
- */
- vio_reset(vio, VIO_TYPE_SSL, SSL_get_fd(ssl), 0, 0);
- vio->ssl_arg= (void*)ssl;
-
-#ifndef DBUG_OFF
- {
- /* Print some info about the peer */
- X509 *cert;
- char buf[512];
-
- DBUG_PRINT("info",("SSL connection succeeded"));
- DBUG_PRINT("info",("Using cipher: '%s'" , SSL_get_cipher_name(ssl)));
-
- if ((cert= SSL_get_peer_certificate (ssl)))
- {
- DBUG_PRINT("info",("Peer certificate:"));
- X509_NAME_oneline(X509_get_subject_name(cert), buf, sizeof(buf));
- DBUG_PRINT("info",("\t subject: '%s'", buf));
- X509_NAME_oneline(X509_get_issuer_name(cert), buf, sizeof(buf));
- DBUG_PRINT("info",("\t issuer: '%s'", buf));
- X509_free(cert);
- }
- else
- DBUG_PRINT("info",("Peer does not have certificate."));
-
- if (SSL_get_shared_ciphers(ssl, buf, sizeof(buf)))
- {
- DBUG_PRINT("info",("shared_ciphers: '%s'", buf));
- }
- else
- DBUG_PRINT("info",("no shared ciphers!"));
- }
-#endif
-
- DBUG_RETURN(0);
-}
-
-
-int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
-{
- DBUG_ENTER("sslaccept");
- DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_accept));
-}
-
-
-int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout)
-{
- DBUG_ENTER("sslconnect");
- DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_connect));
-}
-
-
-int vio_ssl_blocking(Vio *vio __attribute__((unused)),
- my_bool set_blocking_mode,
- my_bool *old_mode)
-{
- /* Mode is always blocking */
- *old_mode= 1;
- /* Return error if we try to change to non_blocking mode */
- return (set_blocking_mode ? 0 : 1);
-}
-
-my_bool vio_ssl_has_data(Vio *vio)
-{
- return SSL_pending(vio->ssl_arg) > 0 ? TRUE : FALSE;
-}
-
-#endif /* HAVE_OPENSSL */
diff --git a/dep/mysqllite/vio/viosslfactories.c b/dep/mysqllite/vio/viosslfactories.c
deleted file mode 100644
index 4971dec37fb..00000000000
--- a/dep/mysqllite/vio/viosslfactories.c
+++ /dev/null
@@ -1,315 +0,0 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program 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; version 2 of the License.
-
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-
-#include "vio_priv.h"
-
-#ifdef HAVE_OPENSSL
-
-static my_bool ssl_algorithms_added = FALSE;
-static my_bool ssl_error_strings_loaded= FALSE;
-
-static unsigned char dh512_p[]=
-{
- 0xDA,0x58,0x3C,0x16,0xD9,0x85,0x22,0x89,0xD0,0xE4,0xAF,0x75,
- 0x6F,0x4C,0xCA,0x92,0xDD,0x4B,0xE5,0x33,0xB8,0x04,0xFB,0x0F,
- 0xED,0x94,0xEF,0x9C,0x8A,0x44,0x03,0xED,0x57,0x46,0x50,0xD3,
- 0x69,0x99,0xDB,0x29,0xD7,0x76,0x27,0x6B,0xA2,0xD3,0xD4,0x12,
- 0xE2,0x18,0xF4,0xDD,0x1E,0x08,0x4C,0xF6,0xD8,0x00,0x3E,0x7C,
- 0x47,0x74,0xE8,0x33,
-};
-
-static unsigned char dh512_g[]={
- 0x02,
-};
-
-static DH *get_dh512(void)
-{
- DH *dh;
- if ((dh=DH_new()))
- {
- dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
- dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);
- if (! dh->p || ! dh->g)
- {
- DH_free(dh);
- dh=0;
- }
- }
- return(dh);
-}
-
-
-static void
-report_errors()
-{
- unsigned long l;
- const char* file;
- const char* data;
- int line,flags;
-
- DBUG_ENTER("report_errors");
-
- while ((l=ERR_get_error_line_data(&file,&line,&data,&flags)) != 0)
- {
-#ifndef DBUG_OFF /* Avoid warning */
- char buf[200];
- DBUG_PRINT("error", ("OpenSSL: %s:%s:%d:%s\n", ERR_error_string(l,buf),
- file,line,(flags & ERR_TXT_STRING) ? data : "")) ;
-#endif
- }
- DBUG_VOID_RETURN;
-}
-
-static const char*
-ssl_error_string[] =
-{
- "No error",
- "Unable to get certificate",
- "Unable to get private key",
- "Private key does not match the certificate public key"
- "SSL_CTX_set_default_verify_paths failed",
- "Failed to set ciphers to use",
- "SSL_CTX_new failed"
-};
-
-const char*
-sslGetErrString(enum enum_ssl_init_error e)
-{
- DBUG_ASSERT(SSL_INITERR_NOERROR < e && e < SSL_INITERR_LASTERR);
- return ssl_error_string[e];
-}
-
-static int
-vio_set_cert_stuff(SSL_CTX *ctx, const char *cert_file, const char *key_file,
- enum enum_ssl_init_error* error)
-{
- DBUG_ENTER("vio_set_cert_stuff");
- DBUG_PRINT("enter", ("ctx: 0x%lx cert_file: %s key_file: %s",
- (long) ctx, cert_file, key_file));
- if (cert_file)
- {
- if (SSL_CTX_use_certificate_file(ctx, cert_file, SSL_FILETYPE_PEM) <= 0)
- {
- *error= SSL_INITERR_CERT;
- DBUG_PRINT("error",("%s from file '%s'", sslGetErrString(*error), cert_file));
- DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE););
- fprintf(stderr, "SSL error: %s from '%s'\n", sslGetErrString(*error),
- cert_file);
- fflush(stderr);
- DBUG_RETURN(1);
- }
-
- if (!key_file)
- key_file= cert_file;
-
- if (SSL_CTX_use_PrivateKey_file(ctx, key_file, SSL_FILETYPE_PEM) <= 0)
- {
- *error= SSL_INITERR_KEY;
- DBUG_PRINT("error", ("%s from file '%s'", sslGetErrString(*error), key_file));
- DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE););
- fprintf(stderr, "SSL error: %s from '%s'\n", sslGetErrString(*error),
- key_file);
- fflush(stderr);
- DBUG_RETURN(1);
- }
-
- /*
- If we are using DSA, we can copy the parameters from the private key
- Now we know that a key and cert have been set against the SSL context
- */
- if (!SSL_CTX_check_private_key(ctx))
- {
- *error= SSL_INITERR_NOMATCH;
- DBUG_PRINT("error", ("%s",sslGetErrString(*error)));
- DBUG_EXECUTE("error", ERR_print_errors_fp(DBUG_FILE););
- fprintf(stderr, "SSL error: %s\n", sslGetErrString(*error));
- fflush(stderr);
- DBUG_RETURN(1);
- }
- }
- DBUG_RETURN(0);
-}
-
-
-static void check_ssl_init()
-{
- if (!ssl_algorithms_added)
- {
- ssl_algorithms_added= TRUE;
- SSL_library_init();
- OpenSSL_add_all_algorithms();
-
- }
-
- if (!ssl_error_strings_loaded)
- {
- ssl_error_strings_loaded= TRUE;
- SSL_load_error_strings();
- }
-}
-
-/************************ VioSSLFd **********************************/
-static struct st_VioSSLFd *
-new_VioSSLFd(const char *key_file, const char *cert_file,
- const char *ca_file, const char *ca_path,
- const char *cipher, SSL_METHOD *method,
- enum enum_ssl_init_error* error)
-{
- DH *dh;
- struct st_VioSSLFd *ssl_fd;
- DBUG_ENTER("new_VioSSLFd");
- DBUG_PRINT("enter",
- ("key_file: '%s' cert_file: '%s' ca_file: '%s' ca_path: '%s' "
- "cipher: '%s'",
- key_file ? key_file : "NULL",
- cert_file ? cert_file : "NULL",
- ca_file ? ca_file : "NULL",
- ca_path ? ca_path : "NULL",
- cipher ? cipher : "NULL"));
-
- check_ssl_init();
-
- if (!(ssl_fd= ((struct st_VioSSLFd*)
- my_malloc(sizeof(struct st_VioSSLFd),MYF(0)))))
- DBUG_RETURN(0);
-
- if (!(ssl_fd->ssl_context= SSL_CTX_new(method)))
- {
- *error= SSL_INITERR_MEMFAIL;
- DBUG_PRINT("error", ("%s", sslGetErrString(*error)));
- report_errors();
- my_free(ssl_fd);
- DBUG_RETURN(0);
- }
-
- /*
- Set the ciphers that can be used
- NOTE: SSL_CTX_set_cipher_list will return 0 if
- none of the provided ciphers could be selected
- */
- if (cipher &&
- SSL_CTX_set_cipher_list(ssl_fd->ssl_context, cipher) == 0)
- {
- *error= SSL_INITERR_CIPHERS;
- DBUG_PRINT("error", ("%s", sslGetErrString(*error)));
- report_errors();
- SSL_CTX_free(ssl_fd->ssl_context);
- my_free(ssl_fd);
- DBUG_RETURN(0);
- }
-
- /* Load certs from the trusted ca */
- if (SSL_CTX_load_verify_locations(ssl_fd->ssl_context, ca_file, ca_path) == 0)
- {
- DBUG_PRINT("warning", ("SSL_CTX_load_verify_locations failed"));
- if (SSL_CTX_set_default_verify_paths(ssl_fd->ssl_context) == 0)
- {
- *error= SSL_INITERR_BAD_PATHS;
- DBUG_PRINT("error", ("%s", sslGetErrString(*error)));
- report_errors();
- SSL_CTX_free(ssl_fd->ssl_context);
- my_free(ssl_fd);
- DBUG_RETURN(0);
- }
- }
-
- if (vio_set_cert_stuff(ssl_fd->ssl_context, cert_file, key_file, error))
- {
- DBUG_PRINT("error", ("vio_set_cert_stuff failed"));
- report_errors();
- SSL_CTX_free(ssl_fd->ssl_context);
- my_free(ssl_fd);
- DBUG_RETURN(0);
- }
-
- /* DH stuff */
- dh=get_dh512();
- SSL_CTX_set_tmp_dh(ssl_fd->ssl_context, dh);
- DH_free(dh);
-
- DBUG_PRINT("exit", ("OK 1"));
-
- DBUG_RETURN(ssl_fd);
-}
-
-
-/************************ VioSSLConnectorFd **********************************/
-struct st_VioSSLFd *
-new_VioSSLConnectorFd(const char *key_file, const char *cert_file,
- const char *ca_file, const char *ca_path,
- const char *cipher)
-{
- struct st_VioSSLFd *ssl_fd;
- int verify= SSL_VERIFY_PEER;
- enum enum_ssl_init_error dummy;
-
- /*
- Turn off verification of servers certificate if both
- ca_file and ca_path is set to NULL
- */
- if (ca_file == 0 && ca_path == 0)
- verify= SSL_VERIFY_NONE;
-
- if (!(ssl_fd= new_VioSSLFd(key_file, cert_file, ca_file,
- ca_path, cipher, TLSv1_client_method(), &dummy)))
- {
- return 0;
- }
-
- /* Init the VioSSLFd as a "connector" ie. the client side */
-
- SSL_CTX_set_verify(ssl_fd->ssl_context, verify, NULL);
-
- return ssl_fd;
-}
-
-
-/************************ VioSSLAcceptorFd **********************************/
-struct st_VioSSLFd *
-new_VioSSLAcceptorFd(const char *key_file, const char *cert_file,
- const char *ca_file, const char *ca_path,
- const char *cipher, enum enum_ssl_init_error* error)
-{
- struct st_VioSSLFd *ssl_fd;
- int verify= SSL_VERIFY_PEER | SSL_VERIFY_CLIENT_ONCE;
- if (!(ssl_fd= new_VioSSLFd(key_file, cert_file, ca_file,
- ca_path, cipher, TLSv1_server_method(), error)))
- {
- return 0;
- }
- /* Init the the VioSSLFd as a "acceptor" ie. the server side */
-
- /* Set max number of cached sessions, returns the previous size */
- SSL_CTX_sess_set_cache_size(ssl_fd->ssl_context, 128);
-
- SSL_CTX_set_verify(ssl_fd->ssl_context, verify, NULL);
-
- /*
- Set session_id - an identifier for this server session
- Use the ssl_fd pointer
- */
- SSL_CTX_set_session_id_context(ssl_fd->ssl_context,
- (const unsigned char *)ssl_fd,
- sizeof(ssl_fd));
-
- return ssl_fd;
-}
-
-void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd)
-{
- SSL_CTX_free(fd->ssl_context);
- my_free(fd);
-}
-#endif /* HAVE_OPENSSL */